org.writersforge.catalan.transform.io
Class ExportProcessor

java.lang.Object
  extended byorg.writersforge.catalan.transform.BaseNodeProcessor
      extended byorg.writersforge.catalan.transform.io.ExportProcessor
All Implemented Interfaces:
org.writersforge.bellows.traverse.NodeProcessor

public class ExportProcessor
extends BaseNodeProcessor

A processor which exports data from data nodes into files and URLs.

Author:
jsheets

Constructor Summary
ExportProcessor(org.writersforge.bellows.Datum xml)
          Creates a new instance of ExportProcessor from the XML spec.
ExportProcessor(java.io.File outputFile, boolean keepOriginal, boolean append)
          Creates a new instance of ExportProcessor.
 
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.
 
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, toString, wait, wait, wait
 

Constructor Detail

ExportProcessor

public ExportProcessor(org.writersforge.bellows.Datum xml)
Creates a new instance of ExportProcessor from the XML spec.

Parameters:
xml - XML initializing spec

ExportProcessor

public ExportProcessor(java.io.File outputFile,
                       boolean keepOriginal,
                       boolean append)
Creates a new instance of ExportProcessor.

Parameters:
outputFile - optional static output file
keepOriginal - if true, keep exported nodes in the queue
append - if true, append to file if it already exists; if false, delete old contents before writing new contents
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)