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:org.pshdl.model.impl.AbstractHDLVariable.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  v a2s .  c om*/
        public boolean hasNext() {
            if ((current != null) && !current.hasNext()) {
                current = null;
            }
            while (current == null) {
                switch (pos++) {
                case 0:
                    if ((dimensions != null) && (dimensions.size() != 0)) {
                        final List<Iterator<? extends IHDLObject>> iters = Lists
                                .newArrayListWithCapacity(dimensions.size());
                        for (final HDLExpression o : dimensions) {
                            iters.add(Iterators.forArray(o));
                            iters.add(o.deepIterator());
                        }
                        current = Iterators.concat(iters.iterator());
                    }
                    break;
                case 1:
                    if (defaultValue != null) {
                        current = Iterators.concat(Iterators.forArray(defaultValue),
                                defaultValue.deepIterator());
                    }
                    break;
                case 2:
                    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;
                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> createDynamicAccessibleIterable(final Transform<T> transform) {
    return new Iterable<T>() {

        @Override/*from w ww .  jav a  2 s.c o m*/
        public Iterator<T> iterator() {
            Set<Iterable<T>> iterable = BeanManagers.getDirectlyAccessibleComponents(BeanManagerImpl.this,
                    transform);
            return Iterators
                    .concat(Iterators.transform(iterable.iterator(), IterableToIteratorFunction.<T>instance()));
        }

    };
}

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

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

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

        @Override/*from w w w  . ja  v  a2  s  .co  m*/
        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 ((stmnts != null) && (stmnts.size() != 0)) {
                        final List<Iterator<? extends IHDLObject>> iters = Lists
                                .newArrayListWithCapacity(stmnts.size());
                        for (final HDLStatement o : stmnts) {
                            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.jeffplaisance.util.fingertree.Deep.java

@Override
public Iterator<T> iterator() {
    final Iterator<T> middleIteratorThunk = new Iterator<T>() {

        Iterator<T> middleIterator = null;

        Iterator<T> getMiddleIterator() {
            if (middleIterator == null) {
                middleIterator = Iterators
                        .concat(Iterators.transform(middle.iterator(), new Function<Node<V, T>, Iterator<T>>() {
                            @Override
                            public Iterator<T> apply(Node<V, T> ts) {
                                return ts.iterator();
                            }//from   w w w . j  av a  2 s .c o m
                        }));
            }
            return middleIterator;
        }

        @Override
        public boolean hasNext() {
            return getMiddleIterator().hasNext();
        }

        @Override
        public T next() {
            return getMiddleIterator().next();
        }

        @Override
        public void remove() {
            throw new UnsupportedOperationException();
        }
    };
    return Iterators.concat(prefix.iterator(), middleIteratorThunk, suffix.iterator());
}

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;/*w  w  w  . j ava 2s .c  o  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:org.pshdl.model.impl.AbstractHDLInterfaceRef.java

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

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

        @Override//from  w w w . j  a  v a 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;
                case 2:
                    if ((ifArray != null) && (ifArray.size() != 0)) {
                        final List<Iterator<? extends IHDLObject>> iters = Lists
                                .newArrayListWithCapacity(ifArray.size());
                        for (final HDLExpression o : ifArray) {
                            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.AbstractHDLUnresolvedFragment.java

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

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

        @Override/*from  w  w  w  .  jav  a  2 s. com*/
        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;
                case 2:
                    if (sub != null) {
                        current = Iterators.concat(Iterators.forArray(sub), sub.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.AbstractHDLUnresolvedFragmentFunction.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 2s  .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;
                case 2:
                    if (sub != null) {
                        current = Iterators.concat(Iterators.forArray(sub), sub.deepIterator());
                    }
                    break;
                case 3:
                    if ((params != null) && (params.size() != 0)) {
                        final List<Iterator<? extends IHDLObject>> iters = Lists
                                .newArrayListWithCapacity(params.size());
                        for (final HDLExpression o : params) {
                            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.diqube.data.types.dbl.dict.FpcDoubleDictionary.java

@Override
public Iterator<Pair<Long, Double>> iterator() {
    List<Iterator<Pair<Long, Double>>> pageIterators = pages.values().stream().map(page -> page.iterator())
            .collect(Collectors.toList());
    return Iterators.concat(pageIterators.iterator());
}

From source file:org.pshdl.model.impl.AbstractHDLDirectGeneration.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 . co  m
        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 (var != null) {
                        current = Iterators.concat(Iterators.forArray(var), var.deepIterator());
                    }
                    break;
                case 2:
                    if ((arguments != null) && (arguments.size() != 0)) {
                        final List<Iterator<? extends IHDLObject>> iters = Lists
                                .newArrayListWithCapacity(arguments.size());
                        for (final HDLArgument o : arguments) {
                            iters.add(Iterators.forArray(o));
                            iters.add(o.deepIterator());
                        }
                        current = Iterators.concat(iters.iterator());
                    }
                    break;
                case 3:
                    if (hIf != null) {
                        current = Iterators.concat(Iterators.forArray(hIf), hIf.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");
        }

    };
}