Example usage for com.google.common.collect AbstractSequentialIterator AbstractSequentialIterator

List of usage examples for com.google.common.collect AbstractSequentialIterator AbstractSequentialIterator

Introduction

In this page you can find the example usage for com.google.common.collect AbstractSequentialIterator AbstractSequentialIterator.

Prototype

protected AbstractSequentialIterator(@Nullable T firstOrNull) 

Source Link

Document

Creates a new iterator with the given first element, or, if firstOrNull is null, creates a new empty iterator.

Usage

From source file:com.proofpoint.event.collector.combiner.S3PrefixListing.java

@Override
public Iterator<String> iterator() {
    Iterator<ObjectListing> objectListings = new AbstractSequentialIterator<ObjectListing>(
            s3Client.listObjects(listObjectsRequest)) {
        @Override//from  w w  w .  j a  v  a 2 s . co  m
        protected ObjectListing computeNext(ObjectListing previous) {
            if (!previous.isTruncated()) {
                return null;
            }
            return s3Client.listNextBatchOfObjects(previous);
        }
    };

    return Iterators
            .concat(Iterators.transform(objectListings, new Function<ObjectListing, Iterator<String>>() {
                @Override
                public Iterator<String> apply(ObjectListing input) {
                    return input.getCommonPrefixes().iterator();
                }
            }));
}

From source file:com.proofpoint.event.collector.combiner.S3ObjectListing.java

@Override
public Iterator<S3ObjectSummary> iterator() {
    Iterator<ObjectListing> objectListings = new AbstractSequentialIterator<ObjectListing>(
            s3Client.listObjects(listObjectsRequest)) {
        @Override/*  ww w .  j  a  v a  2 s . c  o  m*/
        protected ObjectListing computeNext(ObjectListing previous) {
            if (!previous.isTruncated()) {
                return null;
            }
            return s3Client.listNextBatchOfObjects(previous);
        }
    };

    return Iterators.concat(
            Iterators.transform(objectListings, new Function<ObjectListing, Iterator<S3ObjectSummary>>() {
                @Override
                public Iterator<S3ObjectSummary> apply(ObjectListing input) {
                    return input.getObjectSummaries().iterator();
                }
            }));
}

From source file:org.apache.aurora.scheduler.http.api.security.ShiroAuthorizingParamInterceptor.java

/**
 * Return each method in the inheritance hierarchy of method in the order described by
 * {@link AuthorizingParam}./*from   w ww . j a  v  a  2s  .  c  o  m*/
 *
 * @see org.apache.aurora.scheduler.http.api.security.AuthorizingParam
 */
private static Iterable<Method> getCandidateMethods(final Method method) {
    return () -> new AbstractSequentialIterator<Method>(method) {
        @Override
        protected Method computeNext(Method previous) {
            String name = previous.getName();
            Class<?>[] parameterTypes = previous.getParameterTypes();
            Class<?> declaringClass = previous.getDeclaringClass();

            if (declaringClass.isInterface()) {
                return null;
            }

            Iterable<Class<?>> searchOrder = ImmutableList.<Class<?>>builder()
                    .addAll(Optional.fromNullable(declaringClass.getSuperclass()).asSet())
                    .addAll(ImmutableList.copyOf(declaringClass.getInterfaces())).build();

            for (Class<?> klazz : searchOrder) {
                try {
                    return klazz.getMethod(name, parameterTypes);
                } catch (NoSuchMethodException ignored) {
                    // Expected.
                }
            }

            return null;
        }
    };
}

From source file:edu.mit.streamjit.util.bytecode.Klass.java

/**
 * Returns an iterable of all superclasses of this class, in ascending
 * order; thus, the first class is the immediate superclass.
 * @return an an iterable of all superclasses of this class
 *//*from   ww  w. j  ava 2 s.c om*/
public Iterable<Klass> superclasses() {
    return new Iterable<Klass>() {
        @Override
        public Iterator<Klass> iterator() {
            return new AbstractSequentialIterator<Klass>(getSuperclass()) {
                @Override
                protected Klass computeNext(Klass previous) {
                    return previous.getSuperclass();
                }
            };
        }
    };
}

From source file:com.facebook.presto.hive.PrestoS3FileSystem.java

private Iterator<LocatedFileStatus> listPrefix(Path path) {
    String key = keyFromPath(path);
    if (!key.isEmpty()) {
        key += "/";
    }//from   ww  w .j  a v a2s. co m

    ListObjectsRequest request = new ListObjectsRequest().withBucketName(uri.getHost()).withPrefix(key)
            .withDelimiter("/");

    STATS.newListObjectsCall();
    Iterator<ObjectListing> listings = new AbstractSequentialIterator<ObjectListing>(s3.listObjects(request)) {
        @Override
        protected ObjectListing computeNext(ObjectListing previous) {
            if (!previous.isTruncated()) {
                return null;
            }
            return s3.listNextBatchOfObjects(previous);
        }
    };

    return Iterators.concat(Iterators.transform(listings, this::statusFromListing));
}

From source file:google.registry.util.CidrAddressBlock.java

@Override
public Iterator<InetAddress> iterator() {
    return new AbstractSequentialIterator<InetAddress>(ip) {
        @Override/* w w w.  j  a  v  a2  s  .  c o m*/
        protected InetAddress computeNext(InetAddress previous) {
            if (InetAddresses.isMaximum(previous)) {
                return null;
            }

            InetAddress next = InetAddresses.increment(previous);
            return (contains(next)) ? next : null;
        }
    };
}

From source file:com.splicemachine.fs.s3.PrestoS3FileSystem.java

private Iterator<LocatedFileStatus> listPrefix(Path path) {
    String key = keyFromPath(path);
    if (!key.isEmpty()) {
        key += PATH_SEPARATOR;//from  www .  j  ava  2s  . c  o  m
    }

    ListObjectsRequest request = new ListObjectsRequest().withBucketName(uri.getHost()).withPrefix(key)
            .withDelimiter(PATH_SEPARATOR);

    STATS.newListObjectsCall();
    Iterator<ObjectListing> listings = new AbstractSequentialIterator<ObjectListing>(s3.listObjects(request)) {
        @Override
        protected ObjectListing computeNext(ObjectListing previous) {
            if (!previous.isTruncated()) {
                return null;
            }
            return s3.listNextBatchOfObjects(previous);
        }
    };

    return Iterators.concat(Iterators.transform(listings, this::statusFromListing));
}

From source file:io.prestosql.plugin.hive.s3.PrestoS3FileSystem.java

private Iterator<LocatedFileStatus> listPrefix(Path path) {
    String key = keyFromPath(path);
    if (!key.isEmpty()) {
        key += PATH_SEPARATOR;//from  ww  w  .  j  av  a2s .  co m
    }

    ListObjectsRequest request = new ListObjectsRequest().withBucketName(getBucketName(uri)).withPrefix(key)
            .withDelimiter(PATH_SEPARATOR);

    STATS.newListObjectsCall();
    Iterator<ObjectListing> listings = new AbstractSequentialIterator<ObjectListing>(s3.listObjects(request)) {
        @Override
        protected ObjectListing computeNext(ObjectListing previous) {
            if (!previous.isTruncated()) {
                return null;
            }
            return s3.listNextBatchOfObjects(previous);
        }
    };

    return Iterators.concat(Iterators.transform(listings, this::statusFromListing));
}

From source file:com.google.cloud.genomics.utils.Paginator.java

/**
 * Search for objects. Warning: the returned {@link Iterable} may throw {@link SearchException}
 * during iteration; users are encouraged to call
 * {@link #search(Object, GenomicsRequestInitializer, Callback, RetryPolicy)} instead.
 *
 * @param request The search request.//from w  ww.  j  a  va  2  s  .  c  o  m
 * @param initializer The {@link GenomicsRequestInitializer} to initialize requests with.
 * @param retryPolicy A retry policy specifying behavior when a request fails
 *     (usually due to SocketTimeoutExceptions)
 * @return A lazy stream of search results.
 */
public final Iterable<ItemT> search(final RequestT request,
        final GenomicsRequestInitializer<? super RequestSubT> initializer, final RetryPolicy retryPolicy) {
    final ApiT api = getApi(genomics);
    return FluentIterable.from(new Iterable<Pair>() {
        @Override
        public Iterator<Pair> iterator() {
            try {
                return new AbstractSequentialIterator<Pair>(
                        new Pair(createSearch(api, request, Optional.<String>absent()), null)) {
                    @Override
                    protected Pair computeNext(Pair pair) {
                        return Optional.fromNullable(pair.request).transform(new Function<RequestSubT, Pair>() {
                            @Override
                            public Pair apply(RequestSubT search) {
                                try {
                                    initializer.initialize(search);
                                    ResponseT response = retryPolicy.execute(search);
                                    Optional<String> pageToken = Optional
                                            .fromNullable(Strings.emptyToNull(getNextPageToken(response)));
                                    return new Pair(
                                            pageToken.isPresent() ? createSearch(api, request, pageToken)
                                                    : null,
                                            response);
                                } catch (IOException e) {
                                    throw new SearchException(e);
                                }
                            }
                        }).orNull();
                    }
                };
            } catch (IOException e) {
                throw new SearchException(e);
            }
        }
    }).skip(1).transform(new Function<Pair, ResponseT>() {
        @Override
        public ResponseT apply(Pair pair) {
            return pair.response;
        }
    }).transformAndConcat(new Function<ResponseT, Iterable<ItemT>>() {
        @Override
        public Iterable<ItemT> apply(ResponseT response) {
            return Optional.fromNullable(getResponses(response)).or(Collections.<ItemT>emptyList());
        }
    });
}

From source file:io.prestosql.plugin.hive.parquet.AbstractTestParquetReader.java

private static Iterable<Double> doubleSequence(double start, double step, int items) {
    return () -> new AbstractSequentialIterator<Double>(start) {
        private int item;

        @Override/*from  ww w .  j  a v  a 2 s .c  om*/
        protected Double computeNext(Double previous) {
            if (item >= items) {
                return null;
            }
            item++;
            return previous + step;
        }
    };
}