org.apache.velocity.tools.generic
Class Alternator

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

public class Alternator
extends java.lang.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: Alternator.java 603419 2007-12-12 00:04:07Z nbubna $

Field Summary
private  boolean auto
           
private  int index
           
private  java.lang.Object[] list
           
 
Constructor Summary
Alternator(boolean auto, java.lang.Object... list)
          Creates a new Alternator for the specified list with the specified automatic shifting preference.
Alternator(java.lang.Object... list)
          Creates a new Alternator for the specified list.
 
Method Summary
 java.lang.Object getCurrent()
          Returns the current item without shifting the list index.
 java.lang.Object getNext()
          Returns the current item, then shifts the list index.
 boolean isAuto()
           
 void setAuto(boolean auto)
          If set to true, the list index will shift automatically after a call to toString().
 void shift()
          Manually shifts the list index.
 java.lang.String toString()
          Returns a string representation of the current item or null if the current item is null.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

list

private java.lang.Object[] list

index

private int index

auto

private boolean auto
Constructor Detail

Alternator

public Alternator(java.lang.Object... list)
Creates a new Alternator for the specified list. Alternation defaults to automatic.


Alternator

public Alternator(boolean auto,
                  java.lang.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 Detail

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().


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 java.lang.Object getCurrent()
Returns the current item without shifting the list index.


getNext

public java.lang.Object getNext()
Returns the current item, then shifts the list index.


toString

public java.lang.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 java.lang.Object


Copyright (c) 2003-2007 Apache Software Foundation