类 LoopTool.ManagedIterator

java.lang.Object
org.apache.velocity.tools.generic.LoopTool.ManagedIterator
所有已实现的接口:
Iterator
封闭类:
LoopTool

public static class LoopTool.ManagedIterator extends Object implements Iterator
Iterator implementation that wraps a standard 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.ActionConditions to be added in order to have it automatically skip over or stop before certain elements in the iterator.
  • 字段详细资料

  • 构造器详细资料

  • 方法详细资料

    • getName

      public String getName()
      Returns the name of this instance.
    • isFirst

      public boolean isFirst()
      Returns true if either 0 or 1 elements have been returned by next().
    • isLast

      public 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.ActionConditions set for this instance. Otherwise, returns false.
    • getFirst

      public boolean getFirst()
      Returns the result of isFirst(). Exists to allow $loop.this.first syntax.
    • getLast

      public boolean getLast()
      Returns the result of isLast(). Exists to allow $loop.this.last syntax.
    • hasNext

      public boolean hasNext()
      Returns true if there are more elements in the iterator being managed by this instance which satisfy all the LoopTool.ActionConditions set for this instance. Returns false if there are no more valid elements available.
      指定者:
      hasNext 在接口中 Iterator
    • getHasNext

      public boolean getHasNext()
      Returns the result of hasNext(). Exists to allow $loop.this.hasNext syntax.
    • hasNext

      private boolean hasNext(boolean popWhenDone)
    • cacheNext

      private boolean cacheNext(boolean popWhenDone)
    • shiftSynced

      private void shiftSynced()
    • isSyncedWith

      public boolean isSyncedWith(String name)
      Returns true if this ManagedIterator has a sync'ed iterator with the specified name.
    • get

      public Object get(String name)
      Returns the parallel value from the specified sync'ed iterator. If no sync'ed iterator exists with that name or that iterator is finished, this will return null.
    • getCount

      public int getCount()
      Returns the number of elements returned by next() so far.
    • getIndex

      public int getIndex()
      Returns the 0-based index of the current item.
    • next

      public Object next()
      Returns the next element that meets the set LoopTool.ActionConditions (if any) in the iterator being managed. If there are none left, then this will throw a NoSuchElementException.
      指定者:
      next 在接口中 Iterator
    • remove

      public void remove()
      This operation is unsupported.
      指定者:
      remove 在接口中 Iterator
    • stop

      public void stop()
      Stops this iterator from doing any further iteration.
    • exclude

      public LoopTool.ManagedIterator exclude(Object compare)
      Directs this instance to completely exclude any elements equal to the specified Object.
      返回:
      This same LoopTool.ManagedIterator instance
    • stop

      public LoopTool.ManagedIterator stop(Object compare)
      Directs this instance to stop iterating immediately prior to any element equal to the specified Object.
      返回:
      This same LoopTool.ManagedIterator instance
    • condition

      public LoopTool.ManagedIterator condition(LoopTool.ActionCondition condition)
      Adds a new LoopTool.ActionCondition for this instance to check against the elements in the iterator being managed.
      返回:
      This same LoopTool.ManagedIterator instance
    • sync

      public 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.

      返回:
      This same LoopTool.ManagedIterator instance
      另请参阅:
    • sync

      public LoopTool.ManagedIterator sync(Object iterable, String name)
      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 specified here (e.g. $loop.name or $loop.get('name')) and are automatically updated for each iteration by this instance.
      返回:
      This same LoopTool.ManagedIterator instance
      另请参阅:
    • toString

      public String toString()
      覆盖:
      toString 在类中 Object