org.writersforge.catalan.transform
Class ObjectToDatum

java.lang.Object
  |
  +--org.writersforge.catalan.transform.BaseNodeProcessor
        |
        +--org.writersforge.catalan.transform.ObjectToDatum
All Implemented Interfaces:
org.writersforge.bellows.traverse.NodeProcessor

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(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.writersforge.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(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 org.writersforge.bellows.traverse.NodeProcessor
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 org.writersforge.bellows.traverse.NodeProcessor
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.

Overrides:
toString in class java.lang.Object
Returns:
stringified object