Example usage for com.google.common.collect Iterators concat

List of usage examples for com.google.common.collect Iterators concat

Introduction

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

Prototype

public static <T> Iterator<T> concat(final Iterator<? extends Iterator<? extends T>> inputs) 

Source Link

Document

Combines multiple iterators into a single iterator.

Usage

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

private Iterator<LocatedFileStatus> listPrefix(Path path) {
    String key = keyFromPath(path);
    if (!key.isEmpty()) {
        key += "/";
    }/*from   w  ww .  j a  v a  2 s.  c o  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:org.pshdl.model.impl.AbstractHDLVariableRef.java

@Override
public Iterator<IHDLObject> deepIterator() {
    return new Iterator<IHDLObject>() {

        private int pos = 0;
        private Iterator<? extends IHDLObject> current;

        @Override//w w w.  java 2 s .c o m
        public boolean hasNext() {
            if ((current != null) && !current.hasNext()) {
                current = null;
            }
            while (current == null) {
                switch (pos++) {
                case 0:
                    if ((array != null) && (array.size() != 0)) {
                        final List<Iterator<? extends IHDLObject>> iters = Lists
                                .newArrayListWithCapacity(array.size());
                        for (final HDLExpression o : array) {
                            iters.add(Iterators.forArray(o));
                            iters.add(o.deepIterator());
                        }
                        current = Iterators.concat(iters.iterator());
                    }
                    break;
                case 1:
                    if ((bits != null) && (bits.size() != 0)) {
                        final List<Iterator<? extends IHDLObject>> iters = Lists
                                .newArrayListWithCapacity(bits.size());
                        for (final HDLRange o : bits) {
                            iters.add(Iterators.forArray(o));
                            iters.add(o.deepIterator());
                        }
                        current = Iterators.concat(iters.iterator());
                    }
                    break;
                default:
                    return false;
                }
            }
            return (current != null) && current.hasNext();
        }

        @Override
        public IHDLObject next() {
            return current.next();
        }

        @Override
        public void remove() {
            throw new IllegalArgumentException("Not supported");
        }

    };
}

From source file:com.dataart.spreadsheetanalytics.engine.PoiWorkbookConverters.java

public PoiProxyCellIterator(PoiProxyCell[][][][] tile0) {
    final List<Iterator<PoiProxyCell>> iterators = new ArrayList<>(10);
    for (PoiProxyCell[][][] tile1 : tile0) {
        if (tile1 == null) {
            continue;
        }//ww  w.j a  v a 2s .  c o m

        for (PoiProxyCell[][] tile2 : tile1) {
            if (tile2 == null) {
                continue;
            }

            for (PoiProxyCell[] tile3 : tile2) {
                if (tile3 == null) {
                    continue;
                }

                iterators.add(Iterators.filter(Iterators.forArray(tile3), Predicates.notNull()));
            }
        }
    }

    this.iterator = Iterators.concat(iterators.iterator());
}

From source file:org.metastatic.rsync.TwoKeyMap.java

/**
 * Return an unmodifiable set of the SubTable objects in this class.
 *
 * @return A set of all sub-tables from this class.
 * @since 1.1//from  www .  ja  va2  s . com
 */
public Set<Entry<ChecksumPair, T>> entrySet() {
    return new AbstractSet<Entry<ChecksumPair, T>>() {
        @Override
        public Iterator<Entry<ChecksumPair, T>> iterator() {
            Iterator<Iterator<Entry<ChecksumPair, T>>> it = Iterators.transform(map.entrySet().iterator(),
                    new Function<Entry<Integer, Map<StrongKey, Value<T>>>, Iterator<Entry<ChecksumPair, T>>>() {
                        @Override
                        public Iterator<Entry<ChecksumPair, T>> apply(
                                final Entry<Integer, Map<StrongKey, Value<T>>> input) {
                            final Iterator<Entry<StrongKey, Value<T>>> it = input.getValue().entrySet()
                                    .iterator();
                            return new Iterator<Entry<ChecksumPair, T>>() {
                                @Override
                                public boolean hasNext() {
                                    return it.hasNext();
                                }

                                @Override
                                public Entry<ChecksumPair, T> next() {
                                    Entry<StrongKey, Value<T>> next = it.next();
                                    return new AbstractMap.SimpleEntry<ChecksumPair, T>(
                                            new ChecksumPair(next.getValue().weakKey, next.getKey().getBytes()),
                                            next.getValue().value);
                                }

                                @Override
                                public void remove() {
                                    it.remove();
                                }
                            };
                        }
                    });
            return Iterators.concat(it);
        }

        @Override
        public int size() {
            return TwoKeyMap.this.size();
        }
    };
}

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;// w w w  .  j av  a2 s.  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:org.pshdl.model.impl.AbstractHDLForLoop.java

@Override
public Iterator<IHDLObject> deepIterator() {
    return new Iterator<IHDLObject>() {

        private int pos = 0;
        private Iterator<? extends IHDLObject> current;

        @Override//  ww  w. j a va  2 s .co m
        public boolean hasNext() {
            if ((current != null) && !current.hasNext()) {
                current = null;
            }
            while (current == null) {
                switch (pos++) {
                case 0:
                    if ((range != null) && (range.size() != 0)) {
                        final List<Iterator<? extends IHDLObject>> iters = Lists
                                .newArrayListWithCapacity(range.size());
                        for (final HDLRange o : range) {
                            iters.add(Iterators.forArray(o));
                            iters.add(o.deepIterator());
                        }
                        current = Iterators.concat(iters.iterator());
                    }
                    break;
                case 1:
                    if (param != null) {
                        current = Iterators.concat(Iterators.forArray(param), param.deepIterator());
                    }
                    break;
                case 2:
                    if ((dos != null) && (dos.size() != 0)) {
                        final List<Iterator<? extends IHDLObject>> iters = Lists
                                .newArrayListWithCapacity(dos.size());
                        for (final HDLStatement o : dos) {
                            iters.add(Iterators.forArray(o));
                            iters.add(o.deepIterator());
                        }
                        current = Iterators.concat(iters.iterator());
                    }
                    break;
                default:
                    return false;
                }
            }
            return (current != null) && current.hasNext();
        }

        @Override
        public IHDLObject next() {
            return current.next();
        }

        @Override
        public void remove() {
            throw new IllegalArgumentException("Not supported");
        }

    };
}

From source file:org.pshdl.model.impl.AbstractHDLInlineFunction.java

@Override
public Iterator<IHDLObject> deepIterator() {
    return new Iterator<IHDLObject>() {

        private int pos = 0;
        private Iterator<? extends IHDLObject> current;

        @Override/*  w  w w.j  a va2s  . com*/
        public boolean hasNext() {
            if ((current != null) && !current.hasNext()) {
                current = null;
            }
            while (current == null) {
                switch (pos++) {
                case 0:
                    if ((annotations != null) && (annotations.size() != 0)) {
                        final List<Iterator<? extends IHDLObject>> iters = Lists
                                .newArrayListWithCapacity(annotations.size());
                        for (final HDLAnnotation o : annotations) {
                            iters.add(Iterators.forArray(o));
                            iters.add(o.deepIterator());
                        }
                        current = Iterators.concat(iters.iterator());
                    }
                    break;
                case 1:
                    if ((args != null) && (args.size() != 0)) {
                        final List<Iterator<? extends IHDLObject>> iters = Lists
                                .newArrayListWithCapacity(args.size());
                        for (final HDLFunctionParameter o : args) {
                            iters.add(Iterators.forArray(o));
                            iters.add(o.deepIterator());
                        }
                        current = Iterators.concat(iters.iterator());
                    }
                    break;
                case 2:
                    if (returnType != null) {
                        current = Iterators.concat(Iterators.forArray(returnType), returnType.deepIterator());
                    }
                    break;
                case 3:
                    if (expr != null) {
                        current = Iterators.concat(Iterators.forArray(expr), expr.deepIterator());
                    }
                    break;
                default:
                    return false;
                }
            }
            return (current != null) && current.hasNext();
        }

        @Override
        public IHDLObject next() {
            return current.next();
        }

        @Override
        public void remove() {
            throw new IllegalArgumentException("Not supported");
        }

    };
}

From source file:org.pshdl.model.impl.AbstractHDLNativeFunction.java

@Override
public Iterator<IHDLObject> deepIterator() {
    return new Iterator<IHDLObject>() {

        private int pos = 0;
        private Iterator<? extends IHDLObject> current;

        @Override/*from   ww  w. j av  a 2s.com*/
        public boolean hasNext() {
            if ((current != null) && !current.hasNext()) {
                current = null;
            }
            while (current == null) {
                switch (pos++) {
                case 0:
                    if ((annotations != null) && (annotations.size() != 0)) {
                        final List<Iterator<? extends IHDLObject>> iters = Lists
                                .newArrayListWithCapacity(annotations.size());
                        for (final HDLAnnotation o : annotations) {
                            iters.add(Iterators.forArray(o));
                            iters.add(o.deepIterator());
                        }
                        current = Iterators.concat(iters.iterator());
                    }
                    break;
                case 1:
                    if ((args != null) && (args.size() != 0)) {
                        final List<Iterator<? extends IHDLObject>> iters = Lists
                                .newArrayListWithCapacity(args.size());
                        for (final HDLFunctionParameter o : args) {
                            iters.add(Iterators.forArray(o));
                            iters.add(o.deepIterator());
                        }
                        current = Iterators.concat(iters.iterator());
                    }
                    break;
                case 2:
                    if (returnType != null) {
                        current = Iterators.concat(Iterators.forArray(returnType), returnType.deepIterator());
                    }
                    break;
                default:
                    return false;
                }
            }
            return (current != null) && current.hasNext();
        }

        @Override
        public IHDLObject next() {
            return current.next();
        }

        @Override
        public void remove() {
            throw new IllegalArgumentException("Not supported");
        }

    };
}

From source file:org.pshdl.model.impl.AbstractHDLPackage.java

@Override
public Iterator<IHDLObject> deepIterator() {
    return new Iterator<IHDLObject>() {

        private int pos = 0;
        private Iterator<? extends IHDLObject> current;

        @Override/*  w  w w  .j  av a 2 s. co m*/
        public boolean hasNext() {
            if ((current != null) && !current.hasNext()) {
                current = null;
            }
            while (current == null) {
                switch (pos++) {
                case 0:
                    if ((units != null) && (units.size() != 0)) {
                        final List<Iterator<? extends IHDLObject>> iters = Lists
                                .newArrayListWithCapacity(units.size());
                        for (final HDLUnit o : units) {
                            iters.add(Iterators.forArray(o));
                            iters.add(o.deepIterator());
                        }
                        current = Iterators.concat(iters.iterator());
                    }
                    break;
                case 1:
                    if ((declarations != null) && (declarations.size() != 0)) {
                        final List<Iterator<? extends IHDLObject>> iters = Lists
                                .newArrayListWithCapacity(declarations.size());
                        for (final HDLDeclaration o : declarations) {
                            iters.add(Iterators.forArray(o));
                            iters.add(o.deepIterator());
                        }
                        current = Iterators.concat(iters.iterator());
                    }
                    break;
                default:
                    return false;
                }
            }
            return (current != null) && current.hasNext();
        }

        @Override
        public IHDLObject next() {
            return current.next();
        }

        @Override
        public void remove() {
            throw new IllegalArgumentException("Not supported");
        }

    };
}

From source file:org.jboss.weld.manager.BeanManagerImpl.java

private <T> Iterable<T> createDynamicGlobalIterable(final Transform<T> transform) {
    return new Iterable<T>() {
        @Override/*from www . j  av  a 2s  .  com*/
        public Iterator<T> iterator() {
            Set<Iterable<T>> result = new HashSet<Iterable<T>>();
            for (BeanManagerImpl manager : managers) {
                result.add(transform.transform(manager));
            }
            return Iterators
                    .concat(Iterators.transform(result.iterator(), IterableToIteratorFunction.<T>instance()));
        }
    };
}