@Override public String getDelimiter() { return delegate.getDelimiter(); }
@Override public String getDelimiter() { return delegate.getDelimiter(); }
@Override public String getDelimiter() { return delegate.getDelimiter(); }
@Override public String getDelimiter() { return delegate.getDelimiter(); }
private SortedSet<StorageMetadata> filterPrefix(SortedSet<StorageMetadata> contents, final ListContainerOptions options) { contents = newTreeSet(filter(contents, new Predicate<StorageMetadata>() { public boolean apply(StorageMetadata o) { return o != null && o.getName().replace(File.separatorChar, '/').startsWith(options.getPrefix()); } })); if (options.getDelimiter() != null) { return extractCommonPrefixes(contents, options.getDelimiter(), options.getPrefix()); } return contents; }
private SortedSet<StorageMetadata> filterPrefix(SortedSet<StorageMetadata> contents, final ListContainerOptions options) { contents = newTreeSet(filter(contents, new Predicate<StorageMetadata>() { public boolean apply(StorageMetadata o) { return o != null && o.getName().replace(File.separatorChar, '/').startsWith(options.getPrefix()); } })); if (options.getDelimiter() != null) { return extractCommonPrefixes(contents, options.getDelimiter(), options.getPrefix()); } return contents; }
private SortedSet<StorageMetadata> filterPrefix(SortedSet<StorageMetadata> contents, final ListContainerOptions options) { contents = newTreeSet(filter(contents, new Predicate<StorageMetadata>() { public boolean apply(StorageMetadata o) { return o != null && o.getName().replace(File.separatorChar, '/').startsWith(options.getPrefix()); } })); if (options.getDelimiter() != null || !options.isRecursive()) { String delimiter = options.getDelimiter() == null ? storageStrategy.getSeparator() : options.getDelimiter(); return extractCommonPrefixes(contents, delimiter, options.getPrefix()); } return contents; }
private SortedSet<StorageMetadata> filterPrefix(SortedSet<StorageMetadata> contents, final ListContainerOptions options) { contents = newTreeSet(filter(contents, new Predicate<StorageMetadata>() { public boolean apply(StorageMetadata o) { return o != null && o.getName().replace(File.separatorChar, '/').startsWith(options.getPrefix()); } })); if (options.getDelimiter() != null || !options.isRecursive()) { String delimiter = options.getDelimiter() == null ? storageStrategy.getSeparator() : options.getDelimiter(); return extractCommonPrefixes(contents, delimiter, options.getPrefix()); } return contents; }
CrawlBlobStoreIterator(BlobStore blobStore, String containerName, ListContainerOptions options) { this.blobStore = Objects.requireNonNull(blobStore); this.containerName = Objects.requireNonNull(containerName); this.options = Objects.requireNonNull(options); if (options.getDelimiter() == null && options.getDir() == null) { this.options.recursive(); } advance(); }
@Test public void testDelimiter() { ListContainerOptions options = new ListContainerOptions(); options.delimiter("-"); assertEquals(options.getDelimiter(), "-"); }
/** * This implementation invokes {@link AtmosClient#listDirectory} */ @Override public PageSet<? extends StorageMetadata> list(String container, org.jclouds.blobstore.options.ListContainerOptions options) { // TODO: recursive? if (!Strings.nullToEmpty(options.getDelimiter()).equals("/") && !Strings.isNullOrEmpty(options.getPrefix())) { throw new IllegalArgumentException("Atmos can only list via prefix if delimiter is / and the prefix matches an existing directory"); } container = AtmosUtils.adjustContainerIfDirOptionPresent(container, options); if (!Strings.isNullOrEmpty(options.getPrefix())) { // this only works when the prefix exactly matches a directory, the common usage container += "/" + options.getPrefix(); } ListOptions nativeOptions = container2ContainerListOptions.apply(options); // until includeMeta() option works for namespace interface PageSet<? extends StorageMetadata> list = container2ResourceList.apply(sync.listDirectory(container, nativeOptions)); return options.isDetailed() ? fetchBlobMetadataProvider.get().setContainerName(container).apply(list) : list; }
/** * This implementation invokes {@link AtmosClient#listDirectory} */ @Override public PageSet<? extends StorageMetadata> list(String container, org.jclouds.blobstore.options.ListContainerOptions options) { // TODO: recursive? if (!Strings.nullToEmpty(options.getDelimiter()).equals("/") && !Strings.isNullOrEmpty(options.getPrefix())) { throw new IllegalArgumentException("Atmos can only list via prefix if delimiter is / and the prefix matches an existing directory"); } container = AtmosUtils.adjustContainerIfDirOptionPresent(container, options); if (!Strings.isNullOrEmpty(options.getPrefix())) { // this only works when the prefix exactly matches a directory, the common usage container += "/" + options.getPrefix(); } ListOptions nativeOptions = container2ContainerListOptions.apply(options); // until includeMeta() option works for namespace interface PageSet<? extends StorageMetadata> list = container2ResourceList.apply(sync.listDirectory(container, nativeOptions)); return options.isDetailed() ? fetchBlobMetadataProvider.get().setContainerName(container).apply(list) : list; }
public ListObjectOptions apply(ListContainerOptions from) { if (from.getDir() != null && (from.getPrefix() != null || from.getDelimiter() != null)) { throw new IllegalArgumentException("Cannot pass both directory and prefix/delimiter"); ListObjectOptions httpOptions = new ListObjectOptions(); if (!from.isRecursive() && from.getDelimiter() == null) { httpOptions = httpOptions.delimiter("/"); if (from.getDelimiter() != null) { httpOptions = httpOptions.delimiter(from.getDelimiter());
public ListObjectOptions apply(ListContainerOptions from) { if (from.getDir() != null && (from.getPrefix() != null || from.getDelimiter() != null)) { throw new IllegalArgumentException("Cannot pass both directory and prefix/delimiter"); ListObjectOptions httpOptions = new ListObjectOptions(); if (!from.isRecursive() && from.getDelimiter() == null) { httpOptions = httpOptions.delimiter("/"); if (from.getDelimiter() != null) { httpOptions = httpOptions.delimiter(from.getDelimiter());
delimiter = "/"; if (options.getDelimiter() != null) { delimiter = options.getDelimiter();
delimiter = "/"; if (options.getDelimiter() != null) { delimiter = options.getDelimiter();
delimiter = "/"; if (options.getDelimiter() != null) { delimiter = options.getDelimiter();
throw new IllegalArgumentException("Cannot set both directory and prefix"); if (((from.getDir() != null) || from.isRecursive()) && from.getDelimiter() != null) { throw new IllegalArgumentException("Cannot set delimiter and directory or recursive options together"); if (from.getDelimiter() != null) { httpOptions.delimiter(from.getDelimiter());
throw new IllegalArgumentException("Cannot set both directory and prefix"); if (((from.getDir() != null) || from.isRecursive()) && from.getDelimiter() != null) { throw new IllegalArgumentException("Cannot set delimiter and directory or recursive options together"); if (from.getDelimiter() != null) { httpOptions.delimiter(from.getDelimiter());
LOGGER.debug("list container:" + objectHandle.getContainer() + " prefix:" + listContainerOptions.getPrefix() + " del:" + listContainerOptions.getDelimiter()); org.jclouds.blobstore.domain.PageSet<? extends org.jclouds.blobstore.domain.StorageMetadata> ps = blobStore.list(objectHandle.getContainer(), listContainerOptions); LinkedHashSet<StorageMetadata> set = new LinkedHashSet<StorageMetadata>();