List of usage examples for com.google.common.collect UnmodifiableIterator UnmodifiableIterator
protected UnmodifiableIterator()
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; } }; }