diff --git a/apis/filesystem/src/main/java/org/jclouds/filesystem/strategy/internal/FilesystemStorageStrategyImpl.java b/apis/filesystem/src/main/java/org/jclouds/filesystem/strategy/internal/FilesystemStorageStrategyImpl.java index 07c2efb001..6c6f8258e3 100644 --- a/apis/filesystem/src/main/java/org/jclouds/filesystem/strategy/internal/FilesystemStorageStrategyImpl.java +++ b/apis/filesystem/src/main/java/org/jclouds/filesystem/strategy/internal/FilesystemStorageStrategyImpl.java @@ -22,7 +22,6 @@ import static com.google.common.base.Preconditions.checkNotNull; import java.io.File; import java.io.IOException; -import java.util.HashSet; import java.util.Set; import javax.annotation.Resource; @@ -30,8 +29,10 @@ import javax.inject.Inject; import javax.inject.Named; import javax.inject.Provider; +import com.google.common.base.Function; import com.google.common.base.Throwables; import com.google.common.collect.ImmutableList; +import com.google.common.collect.Sets; import com.google.common.io.ByteStreams; import com.google.common.io.Files; @@ -158,22 +159,19 @@ public class FilesystemStorageStrategyImpl implements LocalStorageStrategy { filesystemContainerNameValidator.validate(container); // check if container exists // TODO maybe an error is more appropriate + Set blobNames = Sets.newHashSet(); if (!containerExists(container)) { - return new HashSet(); + return blobNames; } File containerFile = openFolder(container); final int containerPathLength = containerFile.getAbsolutePath().length() + 1; - Set blobNames = new HashSet() { - - private static final long serialVersionUID = 3152191346558570795L; - + populateBlobKeysInContainer(containerFile, blobNames, new Function() { @Override - public boolean add(String e) { - return super.add(e.substring(containerPathLength)); + public String apply(String string) { + return string.substring(containerPathLength); } - }; - populateBlobKeysInContainer(containerFile, blobNames); + }); return blobNames; } @@ -433,13 +431,14 @@ public class FilesystemStorageStrategyImpl implements LocalStorageStrategy { return folder; } - private void populateBlobKeysInContainer(File directory, Set blobNames) { + private static void populateBlobKeysInContainer(File directory, Set blobNames, + Function function) { File[] children = directory.listFiles(); for (File child : children) { if (child.isFile()) { - blobNames.add(child.getAbsolutePath()); + blobNames.add(function.apply(child.getAbsolutePath())); } else if (child.isDirectory()) { - populateBlobKeysInContainer(child, blobNames); + populateBlobKeysInContainer(child, blobNames, function); } } }