uk.org.ogsadai.activity.transform
Class WebRowSetProjectionActivity

java.lang.Object
  |
  +--uk.org.ogsadai.activity.Activity
        |
        +--uk.org.ogsadai.activity.transform.WebRowSetProjectionActivity

public class WebRowSetProjectionActivity
extends Activity

A WebRowSetProjectionActivity projects a WebRowSet input document onto a column name or a column index.

For information on this activity see the OGSA-DAI user doc: OGSA-DAI/doc/interaction/activities/transform/webrowsetProjection.html

Author:
The OGSA-DAI Project Team.

Field Summary
private static java.lang.String COPYRIGHT_NOTICE
          Copyright notice
private  javax.xml.parsers.DocumentBuilderFactory dbf
          The document builder factory to parse the WebRowSet document
private  int index
          The index of the column name
private  boolean isFirstBlock
          Check if it is the first block
private  int mAttributeIndex
          The index of the attribute
private  java.lang.String mAttributeName
          The name of the attribute
private  BlockReader mInput
          Activity input.
private  BlockWriter mOutput
          Activity output.
 
Fields inherited from class uk.org.ogsadai.activity.Activity
mContext, mExternalInputs, mExternalOutputs, mInternalInputs, mInternalOutputs
 
Constructor Summary
WebRowSetProjectionActivity(org.w3c.dom.Element element)
          Constructs an activity using the specified element.
 
Method Summary
private  int handleFirstBlock(java.lang.Object inputBlock, javax.xml.parsers.DocumentBuilder db)
          Handles the first block of the activity and determines index of requested column from the column name (in the case where the client provided the name of the column and not the index).
private  void handleRestBlocks(java.lang.Object inputBlock, javax.xml.parsers.DocumentBuilder db)
          Handles the remaining blocks that arrive.
 void initialise()
          This method should be overridden by subclasses to perform any initialisation they require before the process method invocations begin.
 void processBlock()
          Performs an iteration of the processing of an activity.
 
Methods inherited from class uk.org.ogsadai.activity.Activity
cleanUp, connectsTo, createOutputPipe, getActivityConfiguration, getActivityName, getCause, getName, getObservableStatus, getProperties, getSession, getStatus, hasActivityConfiguration, hasProperties, process, processFirst, setActivityName, setCompleted, setError
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

COPYRIGHT_NOTICE

private static final java.lang.String COPYRIGHT_NOTICE
Copyright notice

See Also:
Constant Field Values

mInput

private BlockReader mInput
Activity input.


mOutput

private BlockWriter mOutput
Activity output.


mAttributeName

private java.lang.String mAttributeName
The name of the attribute


mAttributeIndex

private int mAttributeIndex
The index of the attribute


isFirstBlock

private boolean isFirstBlock
Check if it is the first block


index

private int index
The index of the column name


dbf

private javax.xml.parsers.DocumentBuilderFactory dbf
The document builder factory to parse the WebRowSet document

Constructor Detail

WebRowSetProjectionActivity

public WebRowSetProjectionActivity(org.w3c.dom.Element element)
                            throws ActivitySpecificationException,
                                   ActivityCreationException
Constructs an activity using the specified element.

Parameters:
element - Element to configure the activity with - from a perform document.
Throws:
ActivityCreationException - If there is a problem constructing the activity.
ActivitySpecificationException - If there is a problem constructing the activity due to an invalid setting in element.
See Also:
uk.org.ogsadai.activity
Method Detail

initialise

public void initialise()
                throws ActivitySpecificationException,
                       ActivityExecutionException
Description copied from class: Activity
This method should be overridden by subclasses to perform any initialisation they require before the process method invocations begin. This might be used for setting up convenient fields to reference objects contained in the context. It shouldn't be used for opening resources. That should be done in processFirst.

Overrides:
initialise in class Activity
Throws:
ActivityExecutionException - If some system problem prevents the activity from initialising.
ActivitySpecificationException - If a problem with settings provided by a client prevents the activity from initialising.

processBlock

public void processBlock()
Description copied from class: Activity
Performs an iteration of the processing of an activity. This may involve reading a block of input data and writing a block of output data, or may involve some other kind of processing. When an activity is processed by the OGSA-DAI engine, this method will be invoked repeatedly until the activity either completes or stops due to an error or termination call. An implementation of this method should invoke the setCompleted method to indicate that processing is complete, or the setError method if an error occurs that will prevent the processing from completing.

Specified by:
processBlock in class Activity

handleFirstBlock

private int handleFirstBlock(java.lang.Object inputBlock,
                             javax.xml.parsers.DocumentBuilder db)
                      throws ActivitySpecificationException,
                             ActivityExecutionException
Handles the first block of the activity and determines index of requested column from the column name (in the case where the client provided the name of the column and not the index).

Parameters:
inputBlock - First input block received.
db - XML document builder in which WebRowSet document is constructed.
Returns:
index of requested column.
Throws:
ActivitySpecificationException - If the input is not a WebRowSet or if the the column requested by the client does not exist in the WebRowSet.
ActivityExecutionException - If some internal parsing problem arises.

handleRestBlocks

private void handleRestBlocks(java.lang.Object inputBlock,
                              javax.xml.parsers.DocumentBuilder db)
                       throws ActivitySpecificationException,
                              ActivityExecutionException
Handles the remaining blocks that arrive.

Parameters:
inputBlock - First input block received.
db - XML document builder in which WebRowSet document is constructed.
Throws:
ActivitySpecificationException - If the input is not a WebRowSet or if the the column requested by the client does not exist in the WebRowSet.
ActivityExecutionException - If some internal parsing problem arises.