Add deleteIfEmpty to openstack-swift
diff --git a/openstack-swift/src/main/java/org/jclouds/openstack/swift/v1/blobstore/RegionScopedSwiftBlobStore.java b/openstack-swift/src/main/java/org/jclouds/openstack/swift/v1/blobstore/RegionScopedSwiftBlobStore.java
index 211f8c8..4ba6a1e 100644
--- a/openstack-swift/src/main/java/org/jclouds/openstack/swift/v1/blobstore/RegionScopedSwiftBlobStore.java
+++ b/openstack-swift/src/main/java/org/jclouds/openstack/swift/v1/blobstore/RegionScopedSwiftBlobStore.java
@@ -285,6 +285,15 @@
       containerCache.invalidate(container);
    }
 
+   @Override
+   public boolean deleteContainerIfEmpty(String container) {
+      boolean deleted = api.getContainerApiForRegion(regionId).deleteIfEmpty(container);
+      if (deleted) {
+         containerCache.invalidate(container);
+      }
+      return deleted;
+   }
+
    protected final LoadingCache<String, Optional<Container>> containerCache = CacheBuilder.newBuilder().build(
          new CacheLoader<String, Optional<Container>>() {
             public Optional<Container> load(String container) {
diff --git a/openstack-swift/src/main/java/org/jclouds/openstack/swift/v1/blobstore/internal/SubmissionAsyncBlobStore.java b/openstack-swift/src/main/java/org/jclouds/openstack/swift/v1/blobstore/internal/SubmissionAsyncBlobStore.java
index 3710270..41580f7 100644
--- a/openstack-swift/src/main/java/org/jclouds/openstack/swift/v1/blobstore/internal/SubmissionAsyncBlobStore.java
+++ b/openstack-swift/src/main/java/org/jclouds/openstack/swift/v1/blobstore/internal/SubmissionAsyncBlobStore.java
@@ -172,6 +172,15 @@
    }
 
    @Override
+   public ListenableFuture<Boolean> deleteContainerIfEmpty(final String container) {
+      return executor.submit(new Callable<Boolean>() {
+         public Boolean call() {
+            return delegate().deleteContainerIfEmpty(container);
+         }
+      });
+   }
+
+   @Override
    public ListenableFuture<Boolean> directoryExists(final String container, final String directory) {
       return executor.submit(new Callable<Boolean>() {
          public Boolean call() {