uk.org.ogsadai.activity.delivery
Class AbstractDeliverToDTActivity

java.lang.Object
  |
  +--uk.org.ogsadai.activity.Activity
        |
        +--uk.org.ogsadai.activity.delivery.AbstractDTDeliveryActivity
              |
              +--uk.org.ogsadai.activity.delivery.AbstractDeliverToDTActivity
Direct Known Subclasses:
DeliverToGDTActivity

public abstract class AbstractDeliverToDTActivity
extends AbstractDTDeliveryActivity

This activity delivers data to a stream exposed by an active session of a data service resource exposed by a data service. The data transport putFully/Block operations on the service are used to put the data from this activity onto the stream.

Author:
The OGSA-DAI Project Team

Field Summary
private static java.lang.String COPYRIGHT_NOTICE
          Copyright statement
private static DAILogger LOG
          Logger object for logging in this class.
private  BlockReader mInput
          Activity input stream.
 
Fields inherited from class uk.org.ogsadai.activity.delivery.AbstractDTDeliveryActivity
mBlockMode, mDeliveryNode, mLocalStream, mResourceID, mServiceType, mServiceURL, mStreamID
 
Fields inherited from class uk.org.ogsadai.activity.Activity
mContext, mExternalInputs, mExternalOutputs, mInternalInputs, mInternalOutputs
 
Constructor Summary
AbstractDeliverToDTActivity(org.w3c.dom.Element element)
           
 
Method Summary
 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.
protected abstract  void putBlock(java.lang.Object data)
          Deliver a block of data to the data service.
protected abstract  void putClosingBlock()
          Inform the data service that all blocks have been delivered.
protected abstract  void putFully(java.lang.Object data)
          Deliver a complete batch of data to the data service.
 
Methods inherited from class uk.org.ogsadai.activity.delivery.AbstractDTDeliveryActivity
contactTargetService, getDeliverySettings, isServiceUnknown, isServiceWSI, isServiceWSRF, processFirst
 
Methods inherited from class uk.org.ogsadai.activity.Activity
cleanUp, connectsTo, createOutputPipe, getActivityConfiguration, getActivityName, getCause, getName, getObservableStatus, getProperties, getSession, getStatus, hasActivityConfiguration, hasProperties, process, 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 statement

See Also:
Constant Field Values

LOG

private static final DAILogger LOG
Logger object for logging in this class.


mInput

private BlockReader mInput
Activity input stream.

Constructor Detail

AbstractDeliverToDTActivity

public AbstractDeliverToDTActivity(org.w3c.dom.Element element)
                            throws ActivityCreationException,
                                   ActivitySpecificationException
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 AbstractDTDeliveryActivity
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 AbstractDTDeliveryActivity

putFully

protected abstract void putFully(java.lang.Object data)
                          throws ActivitySpecificationException,
                                 ActivityExecutionException
Deliver a complete batch of data to the data service.

Parameters:
data - Data to deliver.
Throws:
ActivitySpecificationException - If an error occurs that is caused by incorrect information in the request e.g. the URL is incorrect or cannot be contacted.
ActivityExecutionException - If some internal problem outwith the client's control occurs.

putBlock

protected abstract void putBlock(java.lang.Object data)
                          throws ActivitySpecificationException,
                                 ActivityExecutionException
Deliver a block of data to the data service.

Parameters:
data - Data to deliver.
Throws:
ActivitySpecificationException - If an error occurs that is caused by incorrect information in the request e.g. the URL is incorrect or cannot be contacted.
ActivityExecutionException - If some internal problem outwith the client's control occurs.

putClosingBlock

protected abstract void putClosingBlock()
                                 throws ActivitySpecificationException,
                                        ActivityExecutionException
Inform the data service that all blocks have been delivered.

Throws:
ActivitySpecificationException - If an error occurs that is caused by incorrect information in the request e.g. the URL is incorrect or cannot be contacted.
ActivityExecutionException - If some internal problem outwith the client's control occurs.