public class LazyItemIterator extends Object implements NodeIterator, PropertyIterator, VersionIterator
LazyItemIterator
is an id-based iterator that instantiates
the Item
s only when they are requested.
Important: Item
s that appear to be nonexistent
for some reason (e.g. because of insufficient access rights or because they
have been removed since the iterator has been retrieved) are silently
skipped. As a result the size of the iterator as reported by
getSize()
always returns -1.
Constructor and Description |
---|
LazyItemIterator(ItemManager itemMgr,
HierarchyManager hierarchyMgr,
Iterator<? extends ItemId> itemIds)
Creates a new
LazyItemIterator instance. |
LazyItemIterator(ItemManager itemMgr,
Iterator<? extends HierarchyEntry> hierarchyEntryIterator)
Creates a new
LazyItemIterator instance. |
Modifier and Type | Method and Description |
---|---|
long |
getPosition() |
long |
getSize()
Returns the number of
Item s in this iterator or -1 if the
size is unknown. |
boolean |
hasNext() |
Object |
next() |
Node |
nextNode() |
Property |
nextProperty() |
Version |
nextVersion() |
void |
remove() |
void |
skip(long skipNum) |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
forEachRemaining
public LazyItemIterator(ItemManager itemMgr, Iterator<? extends HierarchyEntry> hierarchyEntryIterator)
LazyItemIterator
instance.itemMgr
- item managerhierarchyEntryIterator
- Iterator over HierarchyEntriespublic LazyItemIterator(ItemManager itemMgr, HierarchyManager hierarchyMgr, Iterator<? extends ItemId> itemIds) throws ItemNotFoundException, RepositoryException
LazyItemIterator
instance.itemMgr
- hierarchyMgr
- itemIds
- ItemNotFoundException
RepositoryException
public Node nextNode()
nextNode
in interface NodeIterator
NodeIterator.nextNode()
public Property nextProperty()
nextProperty
in interface PropertyIterator
PropertyIterator.nextProperty()
public Version nextVersion()
nextVersion
in interface VersionIterator
VersionIterator.nextVersion()
public long getPosition()
getPosition
in interface RangeIterator
RangeIterator.getPosition()
public long getSize()
Item
s in this iterator or -1 if the
size is unknown.
Note: The number returned by this method may differ from the number
of Item
s actually returned by calls to hasNext() / getNextNode().
This is caused by the lazy instantiation behaviour of this iterator,
that may detect only upon iteration that an Item has been invalidated
or removed in the mean time. As soon as an invalid Item
is
detected, the size of this iterator is adjusted.
getSize
in interface RangeIterator
Item
s in this iterator.RangeIterator.getSize()
public void skip(long skipNum)
skip
in interface RangeIterator
RangeIterator.skip(long)
public boolean hasNext()
hasNext
in interface Iterator
Iterator.hasNext()
public Object next()
next
in interface Iterator
Iterator.next()
public void remove()
remove
in interface Iterator
UnsupportedOperationException
- always since removal is not implemented.Iterator.remove()
Copyright © 2004–2022 The Apache Software Foundation. All rights reserved.