Class Alternator

java.lang.Object
org.apache.velocity.tools.generic.Alternator

public class Alternator extends Object
Utility class for easily alternating over values in a list.

Example usage:

java...
     String[] myColors = new String[]{"red", "blue"};
     context.put("color", new Alternator(myColors));
     String[] myStyles = new String[]{"hip", "fly", "groovy"};
     // demonstrate manual alternation with this one
     context.put("style", new Alternator(false, myStyles));

template...
     #foreach( $foo in [1..5] )
      $foo is $color and $style.next
     #end

output...
     1 is red and hip
     2 is blue and fly
     3 is red and groovy
     4 is blue and hip
     5 is red and fly
Since:
Velocity Tools 1.2
Version:
$Id$
  • Constructor Summary

    Constructors
    Constructor
    Description
    Alternator(boolean auto, Object... list)
    Creates a new Alternator for the specified list with the specified automatic shifting preference.
    Alternator(Object... list)
    Creates a new Alternator for the specified list.
  • Method Summary

    Modifier and Type
    Method
    Description
    Returns the current item without shifting the list index.
    Returns the current item, then shifts the list index.
    boolean
     
    void
    setAuto(boolean auto)
    If set to true, the list index will shift automatically after a call to toString().
    void
    Manually shifts the list index.
    Returns a string representation of the current item or null if the current item is null.

    Methods inherited from class Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
  • Constructor Details

    • Alternator

      public Alternator(Object... list)
      Creates a new Alternator for the specified list. Alternation defaults to automatic.
      Parameters:
      list - the elements to alternate over
    • Alternator

      public Alternator(boolean auto, Object... list)
      Creates a new Alternator for the specified list with the specified automatic shifting preference.
      Parameters:
      auto - See setAuto(boolean auto).
      list - The elements to alternate over
  • Method Details

    • isAuto

      public boolean isAuto()
      Returns:
      Whether this Alternator shifts the list index automatically after a call to toString().
    • setAuto

      public void setAuto(boolean auto)
      If set to true, the list index will shift automatically after a call to toString().
      Parameters:
      auto - flag value
    • shift

      public void shift()
      Manually shifts the list index. If it reaches the end of the list, it will start over again at zero.
    • getCurrent

      public Object getCurrent()
      Returns the current item without shifting the list index.
      Returns:
      current item
    • getNext

      public Object getNext()
      Returns the current item, then shifts the list index.
      Returns:
      current item
    • toString

      public String toString()
      Returns a string representation of the current item or null if the current item is null. If auto is true, this will shift after returning the current item.
      Overrides:
      toString in class Object
      Returns:
      string representation of the current item