Class 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

      Fields 
      Modifier and Type Field Description
      private boolean auto  
      private int index  
      private java.lang.Object[] list  
    • Constructor Summary

      Constructors 
      Constructor Description
      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

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      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