org.umber.catalan.transform.xml
Class ObjectToDatum

java.lang.Object
  extended byorg.umber.catalan.transform.BaseNodeProcessor
      extended byorg.umber.catalan.transform.xml.ObjectToDatum
All Implemented Interfaces:
INodeProcessor

public class ObjectToDatum
extends BaseNodeProcessor

A data processor which converts a List of java objects into Datum content. This processor accepts String, Number, and Date input, and produces only Datum output.

Author:
jsheets

Constructor Summary
ObjectToDatum(Datum xml)
          Creates a new instance of ObjectToDatum from the XML spec.
ObjectToDatum(DirectiveStack stack)
          Creates a new instance of ObjectToDatum.
 
Method Summary
 void end(java.util.List nodes)
          Ends the current traversal.
 java.util.List processNode(java.lang.Object node)
          Process a single node.
 void start(java.util.List nodes)
          Starts a new traversal.
 java.lang.String toString()
          Convert this object to a String value.
 
Methods inherited from class org.umber.catalan.transform.BaseNodeProcessor
addLeftover, getLeftovers, getNodes
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

ObjectToDatum

public ObjectToDatum(Datum xml)
Creates a new instance of ObjectToDatum from the XML spec.

Parameters:
xml - XML initializing spec

ObjectToDatum

public ObjectToDatum(DirectiveStack stack)
Creates a new instance of ObjectToDatum.

Parameters:
stack - the stack of XML-creation operations
Method Detail

start

public void start(java.util.List nodes)
Starts a new traversal. This method initializes the processor for a new traversal over a set of nodes. The nodes are not actually traversed or processed at this point, but the processor is allowed to perform any pre-traversal calculations, for example storing the total number of nodes for index calculations.

Specified by:
start in interface INodeProcessor
Overrides:
start in class BaseNodeProcessor
Parameters:
nodes - the list of nodes that will later be traversed

end

public void end(java.util.List nodes)
Ends the current traversal. Any post-processing on the post-traversal nodes should be done here, for example removing duplicate nodes. This method should also clean up any temporary states created during a traversal. After end(), the processor should be ready for the next new traversal.

Specified by:
end in interface INodeProcessor
Overrides:
end in class BaseNodeProcessor
Parameters:
nodes - the list of nodes that has just been traversed

processNode

public java.util.List processNode(java.lang.Object node)
Process a single node. The processing action can be any arbitrary task, such as text replacement, data restructuring, or even statistical gathering. The processor should return a processed version of the node; this can be the same object untouched, or the same object modified, or a new set of objects.

Parameters:
node - the node to process
Returns:
a List of processing results (can be empty)

toString

public java.lang.String toString()
Convert this object to a String value.

Returns:
stringified object