public static class LoopTool.ManagedIterator extends Object implements Iterator
Iterator
and allows it to be prematurely stopped, skipped ahead, and
associated with a name for advanced nested loop control.
This also allows a arbitrary LoopTool.ActionCondition
s to be added
in order to have it automatically skip over or stop before
certain elements in the iterator.Constructor and Description |
---|
ManagedIterator(String name,
Iterator iterator,
LoopTool owner) |
Modifier and Type | Method and Description |
---|---|
LoopTool.ManagedIterator |
condition(LoopTool.ActionCondition condition)
Adds a new
LoopTool.ActionCondition for this instance to check
against the elements in the iterator being managed. |
LoopTool.ManagedIterator |
exclude(Object compare)
Directs this instance to completely exclude
any elements equal to the specified Object.
|
Object |
get(String name)
Returns the parallel value from the specified sync'ed iterator.
|
int |
getCount()
Returns the number of elements returned by
next() so far. |
boolean |
getFirst()
Returns the result of
isFirst() . |
boolean |
getHasNext()
Returns the result of
hasNext() . |
int |
getIndex()
Returns the 0-based index of the current item.
|
boolean |
getLast()
Returns the result of
isLast() . |
String |
getName()
Returns the name of this instance.
|
boolean |
hasNext()
Returns true if there are more elements in the iterator
being managed by this instance which satisfy all the
LoopTool.ActionCondition s set for this instance. |
boolean |
isFirst()
Returns true if either 0 or 1 elements have been returned
by
next() . |
boolean |
isLast()
Returns true if the last element returned by
next()
is the last element available in the iterator being managed
which satisfies any/all LoopTool.ActionCondition s set for this
instance. |
boolean |
isSyncedWith(String name)
Returns
true if this ManagedIterator has a sync'ed
iterator with the specified name. |
Object |
next()
Returns the next element that meets the set
LoopTool.ActionCondition s
(if any) in the iterator being managed. |
void |
remove()
This operation is unsupported.
|
void |
stop()
Stops this iterator from doing any further iteration.
|
LoopTool.ManagedIterator |
stop(Object compare)
Directs this instance to stop iterating immediately prior to
any element equal to the specified Object.
|
LoopTool.ManagedIterator |
sync(Object iterable)
Adds another iterator to be kept in sync with the one
being managed by this instance.
|
LoopTool.ManagedIterator |
sync(Object iterable,
String name)
Adds another iterator to be kept in sync with the one
being managed by this instance.
|
String |
toString() |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
forEachRemaining
public String getName()
public boolean isFirst()
next()
.public boolean isLast()
next()
is the last element available in the iterator being managed
which satisfies any/all LoopTool.ActionCondition
s set for this
instance. Otherwise, returns false.public boolean getFirst()
isFirst()
. Exists to allow $loop.this.first syntax.public boolean getLast()
isLast()
. Exists to allow $loop.this.last syntax.public boolean hasNext()
LoopTool.ActionCondition
s set for this instance. Returns
false if there are no more valid elements available.public boolean getHasNext()
hasNext()
. Exists to allow $loop.this.hasNext syntax.public boolean isSyncedWith(String name)
true
if this ManagedIterator has a sync'ed
iterator with the specified name.public Object get(String name)
null
.public int getCount()
next()
so far.public int getIndex()
public Object next()
LoopTool.ActionCondition
s
(if any) in the iterator being managed. If there are none left, then
this will throw a NoSuchElementException
.public void remove()
public void stop()
public LoopTool.ManagedIterator exclude(Object compare)
LoopTool.ManagedIterator
instancepublic LoopTool.ManagedIterator stop(Object compare)
LoopTool.ManagedIterator
instancepublic LoopTool.ManagedIterator condition(LoopTool.ActionCondition condition)
LoopTool.ActionCondition
for this instance to check
against the elements in the iterator being managed.LoopTool.ManagedIterator
instancepublic LoopTool.ManagedIterator sync(Object iterable)
Adds another iterator to be kept in sync with the one being managed by this instance. The values of the parallel iterator can be retrieved from the LoopTool under the name s"synced" (e.g. $loop.synched or $loop.get('synced')) and are automatically updated for each iteration by this instance.
NOTE: if you are sync'ing multiple iterators
with the same managed iterator, you must use
sync(Object,String)
or else your the later iterators
will simply replace the earlier ones under the default
'synced' key.
LoopTool.ManagedIterator
instanceLoopTool.SyncedIterator
,
get(String)
public LoopTool.ManagedIterator sync(Object iterable, String name)
LoopTool.ManagedIterator
instanceLoopTool.SyncedIterator
,
get(String)
Copyright © 2002–2014 Apache Software Foundation. All rights reserved.