atg.droplet
Class TableForEach

java.lang.Object
  extended by atg.nucleus.logging.VariableArgumentApplicationLoggingImpl
      extended by atg.nucleus.GenericService
          extended by atg.nucleus.TimedOperationService
              extended by atg.nucleus.servlet.ServletService
                  extended by atg.nucleus.servlet.HttpServletService
                      extended by atg.servlet.DynamoServlet
                          extended by atg.droplet.TableForEach
All Implemented Interfaces:
NameContextBindingListener, NameContextElement, NameResolver, AdminableService, ApplicationLogging, atg.nucleus.logging.ApplicationLoggingSender, atg.nucleus.logging.TraceApplicationLogging, atg.nucleus.logging.VariableArgumentApplicationLogging, ComponentNameResolver, Service, ServiceListener, ParameterServlet, java.util.EventListener, javax.servlet.Servlet

public class TableForEach
extends DynamoServlet

This droplet extends the functionality of ForEach by allowing the output to be rendered in a table-like format. The numColumns parameter specifies the number of columns the array should be partitioned into. The array is striped across the columns.

The output parameter is rendered for each "cell" in the table. Note that if the array size is not a multiple of the number of columns, output is rendered with a null element parameter for the remaining columns in the last row. A Switch droplet can be used to conditionally "fill in" the missing items.

A complete description of the parameters to the TableForEach droplet are:

array
The parameter that defines the list of items to output. This parameter can be a general Collection (Vectors, Lists, Sets), Iterator, Enumeration, Map, Dictionary or an array.
elementName
The optional parameter that should be used for the name of the element which is bound into the scope of the output oparam.
indexName
The optional parameter that should be used for the name of the index value which is bound into the scope of the output oparam.
numColumns
Specifies the number of columns to partition the array into.
outputStart
This parameter is rendered before any output tags if the array is not empty.
outputEnd
This parameter is rendered after all output tags if the array is not empty.
outputRowStart
This parameter is rendered once for each row, before any output tags for that row.
outputRowEnd
This parameter is rendered once for each row, after all output tags for that row.
output
This parameter is rendered once for each element in the array.
empty
This optional parameter is rendered if the array contains no elements.
rowIndex
This parameter is set to the current row index each time one of the output parameters is rendered.
columnIndex
This parameter is set to the current column index each time one of the output parameters is rendered.
index
This parameter is set to the (0-based) index of the current element of the array each time the output parameter is rendered.
count
This parameter is set to the (1-based) count of the current element of the array each time the output parameter is rendered.
element
This parameter is set to the current element of the array each time the output parameter is rendered. If the array size is not a multiple of the number of columns, element is set to null for the remaining items in the last row.
key
This parameter is set once for each element in the array if the array parameter refers to a Map or Dictionary.
reverseOrder
A boolean value that specifies whether the traversal order in the array should be back to front, or front to back. 'true' sorts from back to front. This parameter only takes effect if the sortProperties are not set.

See Also:
ForEach

Field Summary
static java.lang.String ARRAY
           
static java.lang.String CLASS_VERSION
          Class version string
static java.lang.String COLUMN_INDEX
           
static java.lang.String COUNT
           
static java.lang.String ELEMENT
           
static java.lang.String ELEMENT_NAME
           
static java.lang.String EMPTY
           
static java.lang.String INDEX
           
static java.lang.String INDEX_NAME
           
static java.lang.String KEY
           
static java.lang.String NUM_COLUMNS
           
static java.lang.String OUTPUT
           
static java.lang.String OUTPUT_END
           
static java.lang.String OUTPUT_ROW_END
           
static java.lang.String OUTPUT_ROW_START
           
static java.lang.String OUTPUT_START
           
static java.lang.String ROW_INDEX
           
 
Fields inherited from class atg.servlet.DynamoServlet
mAllowCleanupRequest, mParameters
 
Fields inherited from class atg.nucleus.servlet.ServletService
SERVLET_INFO_KEY
 
Fields inherited from class atg.nucleus.GenericService
SERVICE_INFO_KEY
 
Fields inherited from interface atg.nucleus.logging.TraceApplicationLogging
DEFAULT_LOG_TRACE_STATUS
 
Fields inherited from interface atg.nucleus.logging.ApplicationLogging
DEFAULT_LOG_DEBUG_STATUS, DEFAULT_LOG_ERROR_STATUS, DEFAULT_LOG_INFO_STATUS, DEFAULT_LOG_WARNING_STATUS
 
Constructor Summary
TableForEach()
           
 
Method Summary
 java.lang.Object getArray(DynamoHttpServletRequest pRequest)
          Gets the array-like value (e.g., array, Vector, Enumeration) to be used by this droplet from the request.
 void service(DynamoHttpServletRequest pRequest, DynamoHttpServletResponse pResponse)
          Called when a request needs to be processed.
protected  void serviceArray(java.lang.Object pArray, int pNumColumns, java.lang.String pIndexName, java.lang.String pElementName, DynamoHttpServletRequest pRequest, DynamoHttpServletResponse pResponse, java.lang.Class pOriginalClass)
          Renders the range operation for array objects
protected  void serviceCollection(java.util.Collection pCollection, int pNumColumns, java.lang.String pIndexName, java.lang.String pElementName, DynamoHttpServletRequest pRequest, DynamoHttpServletResponse pResponse)
          Renders the range operation for Collection objects
protected  void serviceDictionary(java.util.Dictionary pDictionary, int pNumColumns, java.lang.String pIndexName, java.lang.String pElementName, DynamoHttpServletRequest pRequest, DynamoHttpServletResponse pResponse)
          Renders the range operation for Dictionary objects
protected  void serviceEnumeration(java.util.Enumeration pEnumeration, int pNumColumns, java.lang.String pIndexName, java.lang.String pElementName, DynamoHttpServletRequest pRequest, DynamoHttpServletResponse pResponse)
          Renders the range operation for Enumeration objects
protected  void serviceIterator(java.util.Iterator pIterator, int pNumColumns, java.lang.String pIndexName, java.lang.String pElementName, DynamoHttpServletRequest pRequest, DynamoHttpServletResponse pResponse)
          Renders the range operation for Iterator objects
protected  void serviceList(java.util.List pList, int pNumColumns, java.lang.String pIndexName, java.lang.String pElementName, DynamoHttpServletRequest pRequest, DynamoHttpServletResponse pResponse)
          Renders the range operation for List objects
protected  void serviceMap(java.util.Map pMap, int pNumColumns, java.lang.String pIndexName, java.lang.String pElementName, DynamoHttpServletRequest pRequest, DynamoHttpServletResponse pResponse)
          Renders the range operation for Map objects
 
Methods inherited from class atg.servlet.DynamoServlet
doDelete, doGet, doPost, doPut, getParameter, getParameters, getServletContext, service, service, setParameter
 
Methods inherited from class atg.nucleus.servlet.ServletService
destroy, getServletConfig, getServletInfo, init, setServletInfo
 
Methods inherited from class atg.nucleus.TimedOperationService
getAverageRequestHandlingTime, getHandledRequestCount, getRequestStartTime, getTotalRequestHandlingTime, isKeepingStatistics, notifyHandledRequest, resetStatistics, setKeepingStatistics
 
Methods inherited from class atg.nucleus.GenericService
addLogListener, createAdminServlet, doStartService, doStopService, getAbsoluteName, getAdminServlet, getLoggingForVlogging, getLogListenerCount, getLogListeners, getName, getNameContext, getNucleus, getRoot, getServiceConfiguration, getServiceInfo, isLoggingDebug, isLoggingError, isLoggingInfo, isLoggingTrace, isLoggingWarning, isRunning, logDebug, logDebug, logDebug, logError, logError, logError, logInfo, logInfo, logInfo, logTrace, logTrace, logTrace, logWarning, logWarning, logWarning, nameContextElementBound, nameContextElementUnbound, removeLogListener, resolveName, resolveName, resolveName, resolveName, sendLogEvent, setLoggingDebug, setLoggingError, setLoggingInfo, setLoggingTrace, setLoggingWarning, setNucleus, setServiceInfo, startService, stopService
 
Methods inherited from class atg.nucleus.logging.VariableArgumentApplicationLoggingImpl
vlogDebug, vlogDebug, vlogDebug, vlogDebug, vlogError, vlogError, vlogError, vlogError, vlogInfo, vlogInfo, vlogInfo, vlogInfo, vlogTrace, vlogTrace, vlogTrace, vlogTrace, vlogWarning, vlogWarning, vlogWarning, vlogWarning
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

CLASS_VERSION

public static java.lang.String CLASS_VERSION
Class version string


ARRAY

public static final java.lang.String ARRAY
See Also:
Constant Field Values

NUM_COLUMNS

public static final java.lang.String NUM_COLUMNS
See Also:
Constant Field Values

INDEX_NAME

public static final java.lang.String INDEX_NAME
See Also:
Constant Field Values

ELEMENT_NAME

public static final java.lang.String ELEMENT_NAME
See Also:
Constant Field Values

OUTPUT_START

public static final java.lang.String OUTPUT_START
See Also:
Constant Field Values

OUTPUT_END

public static final java.lang.String OUTPUT_END
See Also:
Constant Field Values

OUTPUT_ROW_START

public static final java.lang.String OUTPUT_ROW_START
See Also:
Constant Field Values

OUTPUT_ROW_END

public static final java.lang.String OUTPUT_ROW_END
See Also:
Constant Field Values

OUTPUT

public static final java.lang.String OUTPUT
See Also:
Constant Field Values

EMPTY

public static final java.lang.String EMPTY
See Also:
Constant Field Values

ROW_INDEX

public static final java.lang.String ROW_INDEX
See Also:
Constant Field Values

COLUMN_INDEX

public static final java.lang.String COLUMN_INDEX
See Also:
Constant Field Values

INDEX

public static final java.lang.String INDEX
See Also:
Constant Field Values

COUNT

public static final java.lang.String COUNT
See Also:
Constant Field Values

ELEMENT

public static final java.lang.String ELEMENT
See Also:
Constant Field Values

KEY

public static final java.lang.String KEY
See Also:
Constant Field Values
Constructor Detail

TableForEach

public TableForEach()
Method Detail

getArray

public java.lang.Object getArray(DynamoHttpServletRequest pRequest)
Gets the array-like value (e.g., array, Vector, Enumeration) to be used by this droplet from the request. Subclasses may override this method to extract the array by some means other than simply looking up its parameter value in the request.


service

public void service(DynamoHttpServletRequest pRequest,
                    DynamoHttpServletResponse pResponse)
             throws javax.servlet.ServletException,
                    java.io.IOException
Called when a request needs to be processed.

Overrides:
service in class DynamoServlet
Parameters:
pRequest - the request to be processed
pResponse - the response object for this request
Throws:
javax.servlet.ServletException - if an application specific error occurred processing this request
java.io.IOException - if an error occurred reading data from the request or writing data to the response

serviceArray

protected void serviceArray(java.lang.Object pArray,
                            int pNumColumns,
                            java.lang.String pIndexName,
                            java.lang.String pElementName,
                            DynamoHttpServletRequest pRequest,
                            DynamoHttpServletResponse pResponse,
                            java.lang.Class pOriginalClass)
                     throws javax.servlet.ServletException,
                            java.io.IOException
Renders the range operation for array objects

Parameters:
pArray - the object to iterate
pNumColumns - Specifies the number of columns to partition the array into.
pIndexName - the parameter name to use for the index
pElementName - the parameter name to use for the element
pRequest - the request to be processed
pResponse - the response object for this request
Throws:
javax.servlet.ServletException - if an application specific error occurred processing this request
java.io.IOException - if an error occurred reading data from the request or writing data to the response

serviceList

protected void serviceList(java.util.List pList,
                           int pNumColumns,
                           java.lang.String pIndexName,
                           java.lang.String pElementName,
                           DynamoHttpServletRequest pRequest,
                           DynamoHttpServletResponse pResponse)
                    throws javax.servlet.ServletException,
                           java.io.IOException
Renders the range operation for List objects

Parameters:
pList - the object to iterate
pNumColumns - Specifies the number of columns to partition the array into.
pIndexName - the parameter name to use for the index
pElementName - the parameter name to use for the element
pRequest - the request to be processed
pResponse - the response object for this request
Throws:
javax.servlet.ServletException - if an application specific error occurred processing this request
java.io.IOException - if an error occurred reading data from the request or writing data to the response

serviceCollection

protected void serviceCollection(java.util.Collection pCollection,
                                 int pNumColumns,
                                 java.lang.String pIndexName,
                                 java.lang.String pElementName,
                                 DynamoHttpServletRequest pRequest,
                                 DynamoHttpServletResponse pResponse)
                          throws javax.servlet.ServletException,
                                 java.io.IOException
Renders the range operation for Collection objects

Parameters:
pCollection - the object to iterate
pNumColumns - Specifies the number of columns to partition the array into.
pIndexName - the parameter name to use for the index
pElementName - the parameter name to use for the element
pRequest - the request to be processed
pResponse - the response object for this request
Throws:
javax.servlet.ServletException - if an application specific error occurred processing this request
java.io.IOException - if an error occurred reading data from the request or writing data to the response

serviceIterator

protected void serviceIterator(java.util.Iterator pIterator,
                               int pNumColumns,
                               java.lang.String pIndexName,
                               java.lang.String pElementName,
                               DynamoHttpServletRequest pRequest,
                               DynamoHttpServletResponse pResponse)
                        throws javax.servlet.ServletException,
                               java.io.IOException
Renders the range operation for Iterator objects

Parameters:
pIterator - the object to iterate
pNumColumns - Specifies the number of columns to partition the array into.
pIndexName - the parameter name to use for the index
pElementName - the parameter name to use for the element
pRequest - the request to be processed
pResponse - the response object for this request
Throws:
javax.servlet.ServletException - if an application specific error occurred processing this request
java.io.IOException - if an error occurred reading data from the request or writing data to the response

serviceEnumeration

protected void serviceEnumeration(java.util.Enumeration pEnumeration,
                                  int pNumColumns,
                                  java.lang.String pIndexName,
                                  java.lang.String pElementName,
                                  DynamoHttpServletRequest pRequest,
                                  DynamoHttpServletResponse pResponse)
                           throws javax.servlet.ServletException,
                                  java.io.IOException
Renders the range operation for Enumeration objects

Parameters:
pEnumeration - the object to iterate
pNumColumns - Specifies the number of columns to partition the array into.
pIndexName - the parameter name to use for the index
pElementName - the parameter name to use for the element
pRequest - the request to be processed
pResponse - the response object for this request
Throws:
javax.servlet.ServletException - if an application specific error occurred processing this request
java.io.IOException - if an error occurred reading data from the request or writing data to the response

serviceMap

protected void serviceMap(java.util.Map pMap,
                          int pNumColumns,
                          java.lang.String pIndexName,
                          java.lang.String pElementName,
                          DynamoHttpServletRequest pRequest,
                          DynamoHttpServletResponse pResponse)
                   throws javax.servlet.ServletException,
                          java.io.IOException
Renders the range operation for Map objects

Parameters:
pMap - the object to iterate
pNumColumns - Specifies the number of columns to partition the array into.
pIndexName - the parameter name to use for the index
pElementName - the parameter name to use for the element
pRequest - the request to be processed
pResponse - the response object for this request
Throws:
javax.servlet.ServletException - if an application specific error occurred processing this request
java.io.IOException - if an error occurred reading data from the request or writing data to the response

serviceDictionary

protected void serviceDictionary(java.util.Dictionary pDictionary,
                                 int pNumColumns,
                                 java.lang.String pIndexName,
                                 java.lang.String pElementName,
                                 DynamoHttpServletRequest pRequest,
                                 DynamoHttpServletResponse pResponse)
                          throws javax.servlet.ServletException,
                                 java.io.IOException
Renders the range operation for Dictionary objects

Parameters:
pDictionary - the object to iterate
pNumColumns - Specifies the number of columns to partition the array into.
pIndexName - the parameter name to use for the index
pElementName - the parameter name to use for the element
pRequest - the request to be processed
pResponse - the response object for this request
Throws:
javax.servlet.ServletException - if an application specific error occurred processing this request
java.io.IOException - if an error occurred reading data from the request or writing data to the response