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

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

Introduction

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

Prototype

protected UnmodifiableIterator() 

Source Link

Document

Constructor for use by subclasses.

Usage

From source file:org.roda.core.common.iterables.CloseableIterables.java

/**
 * Returns an iterator over the iterators of the given iterables.
 *///  w  ww .j  a v  a  2 s  .  c  om
private static <T> UnmodifiableIterator<Iterator<? extends T>> iterators(
        Iterable<? extends Iterable<? extends T>> iterables) {
    final Iterator<? extends Iterable<? extends T>> iterableIterator = iterables.iterator();
    return new UnmodifiableIterator<Iterator<? extends T>>() {
        @Override
        public boolean hasNext() {
            return iterableIterator.hasNext();
        }

        @Override
        public Iterator<? extends T> next() {
            return iterableIterator.next().iterator();
        }
    };
}

From source file:com.eventsourcing.h2.index.UniqueIndex.java

@Override
public ResultSet<EntityHandle<O>> retrieve(Query<EntityHandle<O>> query, QueryOptions queryOptions) {
    Class<?> queryClass = query.getClass();
    if (queryClass.equals(Equal.class)) {
        final Equal<EntityHandle<O>, A> equal = (Equal<EntityHandle<O>, A>) query;
        byte[] val = map.get(encodeKey(equal.getValue()));
        final EntityHandle<O> obj = val == null ? null
                : new ResolvedEntityHandle<O>(decodeVal(val).getObject());

        return new ResultSet<EntityHandle<O>>() {
            @Override/* w ww  .j a v a2 s .c  om*/
            public Iterator<EntityHandle<O>> iterator() {
                return new UnmodifiableIterator<EntityHandle<O>>() {
                    boolean hasNext = (obj != null);

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

                    @Override
                    public EntityHandle<O> next() {
                        this.hasNext = false;
                        return obj;
                    }
                };
            }

            @Override
            public boolean contains(EntityHandle<O> object) {
                return (object != null && obj != null && object.equals(obj));
            }

            @Override
            public boolean matches(EntityHandle<O> object) {
                return query.matches(object, queryOptions);
            }

            @Override
            public Query<EntityHandle<O>> getQuery() {
                return query;
            }

            @Override
            public QueryOptions getQueryOptions() {
                return queryOptions;
            }

            @Override
            public int getRetrievalCost() {
                return INDEX_RETRIEVAL_COST;
            }

            @Override
            public int getMergeCost() {
                return obj == null ? 0 : 1;
            }

            @Override
            public int size() {
                return obj == null ? 0 : 1;
            }

            @Override
            public void close() {

            }
        };
    }
    throw new IllegalArgumentException("Unsupported query: " + query);
}

From source file:com.github.rconner.anansi.Elements.java

private static Iterable<PersistentList<Step<Object, String>>> iterableWalker(
        final PersistentList<Step<Object, String>> walk) {
    final Iterable<?> iterable = (Iterable<?>) walk.first().getTo();
    return new Iterable<PersistentList<Step<Object, String>>>() {
        @Override/*w  w  w. j a v a 2s  . c o  m*/
        public Iterator<PersistentList<Step<Object, String>>> iterator() {
            return new UnmodifiableIterator<PersistentList<Step<Object, String>>>() {
                private final Iterator<?> delegate = iterable.iterator();
                private int index;

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

                @Override
                public PersistentList<Step<Object, String>> next() {
                    final Object element = delegate.next();
                    final String over = "[" + index++ + "]";
                    return walk.add(Step.newInstance(element, over));
                }
            };
        }
    };
}

From source file:org.apache.giraph.edge.LongDoubleHashMapEdges.java

@Override
public Iterator<Edge<LongWritable, DoubleWritable>> iterator() {
    // Returns an iterator that reuses objects.
    return new UnmodifiableIterator<Edge<LongWritable, DoubleWritable>>() {
        /** Wrapped map iterator. */
        private ObjectIterator<Long2DoubleMap.Entry> mapIterator = edgeMap.long2DoubleEntrySet().fastIterator();
        /** Representative edge object. */
        private ReusableEdge<LongWritable, DoubleWritable> representativeEdge = EdgeFactory
                .createReusable(new LongWritable(), new DoubleWritable());

        @Override//from w  w w. j  a  v  a 2 s  .co m
        public boolean hasNext() {
            return mapIterator.hasNext();
        }

        @Override
        public Edge<LongWritable, DoubleWritable> next() {
            Long2DoubleMap.Entry nextEntry = mapIterator.next();
            representativeEdge.getTargetVertexId().set(nextEntry.getLongKey());
            representativeEdge.getValue().set(nextEntry.getDoubleValue());
            return representativeEdge;
        }
    };
}

From source file:org.jclouds.collect.AdvanceUntilEmptyIterable.java

/**
 * Combines all the pages into a single unmodifiable iterable. ex.
 * /*from   w ww  . jav  a 2  s.  c  o  m*/
 * <pre>
 * FluentIterable<StorageMetadata> blobs = blobstore.list(...).concat();
 * for (StorageMetadata blob : blobs) {
 *     process(blob);
 * }
 * </pre>
 * 
 * @see Iterators#concat
 */
public FluentIterable<E> concat() {
    final Iterator<FluentIterable<E>> iterator = iterator();
    final UnmodifiableIterator<Iterator<E>> unmodifiable = new UnmodifiableIterator<Iterator<E>>() {
        @Override
        public boolean hasNext() {
            return iterator.hasNext();
        }

        @Override
        public Iterator<E> next() {
            return iterator.next().iterator();
        }
    };
    return new FluentIterable<E>() {
        @Override
        public Iterator<E> iterator() {
            return Iterators.concat(unmodifiable);
        }
    };
}

From source file:org.elasticsearch.common.collect.ImmutableOpenIntMap.java

/**
 * Returns a direct iterator over the keys.
 *//* ww  w  .j  a  v  a 2  s  . co  m*/
public UnmodifiableIterator<Integer> keysIt() {
    final Iterator<IntCursor> iterator = map.keys().iterator();
    return new UnmodifiableIterator<Integer>() {
        @Override
        public boolean hasNext() {
            return iterator.hasNext();
        }

        @Override
        public Integer next() {
            return iterator.next().value;
        }
    };
}

From source file:org.elasticsearch.common.collect.ImmutableOpenLongMap.java

/**
 * Returns a direct iterator over the keys.
 *//*from www .ja  va  2 s .  c  o  m*/
public UnmodifiableIterator<Long> keysIt() {
    final Iterator<LongCursor> iterator = map.keys().iterator();
    return new UnmodifiableIterator<Long>() {
        @Override
        public boolean hasNext() {
            return iterator.hasNext();
        }

        @Override
        public Long next() {
            return iterator.next().value;
        }
    };
}

From source file:org.elasticsearch.common.util.DoubleObjectPagedHashMap.java

@Override
public Iterator<Cursor<T>> iterator() {
    return new UnmodifiableIterator<Cursor<T>>() {

        boolean cached;
        final Cursor<T> cursor;
        {/*from w  ww . j a v a2 s. c  om*/
            cursor = new Cursor<>();
            cursor.index = -1;
            cached = false;
        }

        @Override
        public boolean hasNext() {
            if (!cached) {
                while (true) {
                    ++cursor.index;
                    if (cursor.index >= capacity()) {
                        break;
                    } else if (used(cursor.index)) {
                        cursor.key = keys.get(cursor.index);
                        cursor.value = values.get(cursor.index);
                        break;
                    }
                }
                cached = true;
            }
            return cursor.index < capacity();
        }

        @Override
        public Cursor<T> next() {
            if (!hasNext()) {
                throw new NoSuchElementException();
            }
            cached = false;
            return cursor;
        }

    };
}

From source file:org.elasticsearch.common.collect.ImmutableOpenMap.java

/**
 * Returns a direct iterator over the keys.
 *//*from  w  w  w  .  j  a va2 s .  c  o m*/
public UnmodifiableIterator<KType> keysIt() {
    final Iterator<ObjectCursor<KType>> iterator = map.keys().iterator();
    return new UnmodifiableIterator<KType>() {
        @Override
        public boolean hasNext() {
            return iterator.hasNext();
        }

        @Override
        public KType next() {
            return iterator.next().value;
        }
    };
}

From source file:org.apache.giraph.edge.LongDoubleArrayEdges.java

@Override
public Iterator<Edge<LongWritable, DoubleWritable>> iterator() {
    // Returns an iterator that reuses objects.
    return new UnmodifiableIterator<Edge<LongWritable, DoubleWritable>>() {
        /** Wrapped neighbors iterator. */
        private LongIterator neighborsIt = neighbors.iterator();
        /** Wrapped edge values iterator. */
        private DoubleIterator edgeValuesIt = edgeValues.iterator();
        /** Representative edge object. */
        private Edge<LongWritable, DoubleWritable> representativeEdge = EdgeFactory.create(new LongWritable(),
                new DoubleWritable());

        @Override//ww  w. jav a  2 s  .c o m
        public boolean hasNext() {
            return neighborsIt.hasNext();
        }

        @Override
        public Edge<LongWritable, DoubleWritable> next() {
            representativeEdge.getTargetVertexId().set(neighborsIt.nextLong());
            representativeEdge.getValue().set(edgeValuesIt.nextDouble());
            return representativeEdge;
        }
    };
}