net.sf.jett.tag
Class MultiForEachTag

java.lang.Object
  extended by net.sf.jett.tag.BaseTag
      extended by net.sf.jett.tag.BaseLoopTag
          extended by net.sf.jett.tag.MultiForEachTag
All Implemented Interfaces:
Tag

public class MultiForEachTag
extends BaseLoopTag

A MultiForEachTag represents a repetitively placed Block of Cells, with each repetition corresponding to the same index into multiple Collections. The vars attribute represents the variable names corresponding to what each Collection's item is known by. The optional indexVar attribute is the name of the variable that holds the iterator index. The optional limit attribute specifies a limit to the number of iterations to be run for the Collections. If the limit is greater than the number of items in any of the collections, then blank blocks will result, with the exact result dependent on "past end action" rules.


Attributes:

Author:
Randy Gettman

Field Summary
static java.lang.String ATTR_COLLECTIONS
          Attribute for specifying the Collections over which to iterate.
static java.lang.String ATTR_INDEXVAR
          Attribute for specifying the name of the variable to be exposed that indicates the 0-based index position into the Collection.
static java.lang.String ATTR_LIMIT
          Attribute for specifying the number of iterations to be displayed.
static java.lang.String ATTR_VARS
          Attribute for specifying the "looping variable" names.
 
Fields inherited from class net.sf.jett.tag.BaseLoopTag
ATTR_COLLAPSE, ATTR_COPY_RIGHT, ATTR_FIXED, ATTR_GROUP_DIR, ATTR_ON_LOOP_PROCESSED, ATTR_PAST_END_ACTION, GROUP_DIR_COLS, GROUP_DIR_NONE, GROUP_DIR_ROWS, PAST_END_ACTION_CLEAR, PAST_END_ACTION_REMOVE
 
Fields inherited from class net.sf.jett.tag.BaseTag
ATTR_ON_PROCESSED, SPEC_SEP
 
Constructor Summary
MultiForEachTag()
           
 
Method Summary
protected  void afterBlockProcessed(TagContext context, Block currBlock, java.lang.Object item, int index)
          Remove the values from the List of collection item values from the Map of beans.
protected  void beforeBlockProcessed(TagContext context, Block currBlock, java.lang.Object item, int index)
          Place the values from the List of collection item values into the Map of beans.
protected  java.util.List<java.lang.String> getCollectionNames()
          Returns the names of the Collections that are being used in this MultiForEachTag.
protected  int getCollectionSize()
          Returns the maximum size of the collections being iterated.
protected  java.util.Iterator<java.util.List<java.lang.Object>> getLoopIterator()
          Returns an Iterator that iterates over all the items of all specified Collections of values.
 java.lang.String getName()
          Returns this Tag's name.
protected  int getNumIterations()
          Returns the number of iterations.
 java.util.List<java.lang.String> getOptionalAttributes()
          Returns the List of optional attribute names.
 java.util.List<java.lang.String> getRequiredAttributes()
          Returns the List of required attribute names.
 void setCollectionNames(java.util.List<java.lang.String> collExpressions)
          Sets the List of collection expressions.
 void setCollections(java.util.List<java.util.Collection<java.lang.Object>> collections)
          Sets the List of Collections to be processed.
 void setIndexVarName(java.lang.String indexVarName)
          Sets the "looping" variable name.
 void setLimit(int limit)
          Sets the limit on the number of iterations.
 void setVarNames(java.util.List<java.lang.String> varNames)
          Sets the List of variable names.
 void validateAttributes()
          Validates the attributes for this Tag.
 
Methods inherited from class net.sf.jett.tag.BaseLoopTag
getPastEndAction, process, setCollapsed, setCopyRight, setFixed, setGroupDirection, setOnLoopProcessed, setPastEndAction
 
Methods inherited from class net.sf.jett.tag.BaseTag
checkAttributes, clearBlock, deleteBlock, getAttributes, getContext, getWorkbookContext, isBodiless, processTag, removeBlock, setAttributes, setBodiless, setContext, setWorkbookContext
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

ATTR_COLLECTIONS

public static final java.lang.String ATTR_COLLECTIONS
Attribute for specifying the Collections over which to iterate.

See Also:
Constant Field Values

ATTR_VARS

public static final java.lang.String ATTR_VARS
Attribute for specifying the "looping variable" names.

See Also:
Constant Field Values

ATTR_INDEXVAR

public static final java.lang.String ATTR_INDEXVAR
Attribute for specifying the name of the variable to be exposed that indicates the 0-based index position into the Collection.

See Also:
Constant Field Values

ATTR_LIMIT

public static final java.lang.String ATTR_LIMIT
Attribute for specifying the number of iterations to be displayed.

See Also:
Constant Field Values
Constructor Detail

MultiForEachTag

public MultiForEachTag()
Method Detail

setCollections

public void setCollections(java.util.List<java.util.Collection<java.lang.Object>> collections)
Sets the List of Collections to be processed.

Parameters:
collections - A List of Collections.
Since:
0.3.0

setCollectionNames

public void setCollectionNames(java.util.List<java.lang.String> collExpressions)
Sets the List of collection expressions.

Parameters:
collExpressions - A List of collection expressions.
Since:
0.3.0

setVarNames

public void setVarNames(java.util.List<java.lang.String> varNames)
Sets the List of variable names.

Parameters:
varNames - The List of variable names.
Since:
0.3.0

setIndexVarName

public void setIndexVarName(java.lang.String indexVarName)
Sets the "looping" variable name.

Parameters:
indexVarName - The "looping" variable name.
Since:
0.3.0

setLimit

public void setLimit(int limit)
Sets the limit on the number of iterations.

Parameters:
limit - The limit on the number of iterations.

getName

public java.lang.String getName()
Returns this Tag's name.

Returns:
This Tag's name.

getRequiredAttributes

public java.util.List<java.lang.String> getRequiredAttributes()
Returns the List of required attribute names.

Overrides:
getRequiredAttributes in class BaseLoopTag
Returns:
The List of required attribute names.

getOptionalAttributes

public java.util.List<java.lang.String> getOptionalAttributes()
Returns the List of optional attribute names.

Overrides:
getOptionalAttributes in class BaseLoopTag
Returns:
The List of optional attribute names.

validateAttributes

public void validateAttributes()
                        throws TagParseException
Validates the attributes for this Tag. The "items" attribute must be a Collection. The "limit", if present, must be a non-negative integer.

Overrides:
validateAttributes in class BaseLoopTag
Throws:
TagParseException - If the attribute values are illegal or unacceptable.

getCollectionNames

protected java.util.List<java.lang.String> getCollectionNames()
Returns the names of the Collections that are being used in this MultiForEachTag.

Specified by:
getCollectionNames in class BaseLoopTag
Returns:
A List of one collection name.

getNumIterations

protected int getNumIterations()
Returns the number of iterations.

Specified by:
getNumIterations in class BaseLoopTag
Returns:
The number of iterations.

getCollectionSize

protected int getCollectionSize()
Returns the maximum size of the collections being iterated.

Specified by:
getCollectionSize in class BaseLoopTag
Returns:
The maximum size of the collections being iterated.

getLoopIterator

protected java.util.Iterator<java.util.List<java.lang.Object>> getLoopIterator()
Returns an Iterator that iterates over all the items of all specified Collections of values. Its item is a List of items created by pulling values from all Collections using the same index for each Collection.

Specified by:
getLoopIterator in class BaseLoopTag
Returns:
An Iterator.

beforeBlockProcessed

protected void beforeBlockProcessed(TagContext context,
                                    Block currBlock,
                                    java.lang.Object item,
                                    int index)
Place the values from the List of collection item values into the Map of beans.

Specified by:
beforeBlockProcessed in class BaseLoopTag
Parameters:
context - The TagContext.
currBlock - The Block that is about to processed.
item - The Object that resulted from the iterator.
index - The iteration index (0-based).

afterBlockProcessed

protected void afterBlockProcessed(TagContext context,
                                   Block currBlock,
                                   java.lang.Object item,
                                   int index)
Remove the values from the List of collection item values from the Map of beans.

Specified by:
afterBlockProcessed in class BaseLoopTag
Parameters:
context - The TagContext.
index - The iteration index (0-based).
item - The Object that resulted from the iterator.
currBlock - The Block that was just processed.


Copyright © 2012-2013 Jett Team. All Rights Reserved.