|
|||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||||
java.lang.Object | +--uk.org.ogsadai.activity.Activity
This is the abstract base class for all Activity implementations. It provides access to the activity inputs and outputs, configuration, context and session. It also defines a number of methods for setting the status of activity processing.
A concrete activity implementation must define a constructor and implement the processBlock method, and may override the initialise, processFirst and cleanUp methods.
| Field Summary | |
private static java.lang.String |
COPYRIGHT_NOTICECopyright statement. |
private static DAILogger |
LOGLogger object for logging in this class. |
private java.lang.String |
mActivityNameThe type of the activity. |
private java.lang.Throwable |
mCauseCause of any error that arises during processing. |
private ActivityConfiguration |
mConfigurationActivity configuration object, if applicable, otherwise null. |
protected ActivityContext |
mContextProvides access to the data pipes, user credentials, etc. |
protected java.lang.String[] |
mExternalInputsThe names of the external inputs to the activity. |
protected java.lang.String[] |
mExternalOutputsThe names of the external outputs to the activity. |
protected java.lang.String[] |
mInternalInputsThe names of the internal inputs of the activity. |
protected java.lang.String[] |
mInternalOutputsThe names of the internal outputs of the activity. |
private java.lang.String |
mNameThe name of the activity. |
private java.util.Properties |
mPropertiesActivity configuration properties, if applicable, otherwise null. |
private ActivityRequest |
mRequestActivity request containing the activity. |
private Session |
mSessionSession that the activity belongs to. |
private ObservableStatus |
mStatusCurrent status of the activity. |
| Constructor Summary | |
Activity(org.w3c.dom.Element element)Constructs an activity using the specified element. |
|
Activity(java.lang.String name)Constructs an activity. |
|
| Method Summary | |
protected void |
cleanUp()This method can be overridden by any Activity implementations that need to free up resources in the event of an error or intermediate termination of the activity processing. |
(package private) void |
configureContext(ActivityContext context, Session session)Configures the activity by creating pipes for each internal output, and each external input and output. |
boolean |
connectsTo(Activity activity)Indicates whether or not the specified activity is connected to this activity. |
protected Pipe |
createOutputPipe(int i)Creates an output pipe for an internal output. |
protected ActivityConfiguration |
getActivityConfiguration()Accesses the ActivityConfiguration object, if applicable. |
java.lang.String |
getActivityName()Returns the name of the activity type. |
(package private) java.lang.String[] |
getAllOutputs()Gets the names of the internal and external activity outputs. |
java.lang.Throwable |
getCause()If the activity has entered a Status.ERROR state during processing then this method can be used to retrieve the cause of the error. |
(package private) java.lang.String[] |
getExternalInputs()Gets the names of the external activity inputs. |
(package private) java.lang.String[] |
getExternalOutputs()Gets the names of the external outputs of this activity. |
(package private) java.lang.String[] |
getInputs()Gets the names of the internal activity inputs. |
java.lang.String |
getName()Gets the name of the activity. |
protected ObservableStatus |
getObservableStatus()Gets the current status of the activity as an ObservableStatus that can be observed using Observer implementations. |
(package private) java.lang.String[] |
getOutputs()Gets the names of the internal activity outputs. |
protected java.util.Properties |
getProperties()Accesses the activity configuration properties. |
protected Session |
getSession()Gets the session that this activity belongs to. |
Status |
getStatus()Gets the current status of the activity. |
protected boolean |
hasActivityConfiguration()Indicates whether or not this activity has an ActivityConfiguration object. |
protected boolean |
hasProperties()Indicates whether or not this activity has any configuration properties. |
protected void |
initialise()This method should be overridden by subclasses to perform any initialisation they require before the process method invocations begin. |
void |
process()Processes the activity implementation. |
protected abstract void |
processBlock()Performs an iteration of the processing of an activity. |
protected void |
processFirst()This method is called during the first iteration of processing an activity. |
(package private) void |
setActivityConfiguration(ActivityConfiguration configuration)Sets the ActivityConfiguration object. |
void |
setActivityName(java.lang.String activityName)Sets the name of the activity type. |
protected void |
setCompleted()An Activity implementation should call this method to indicate that the processing is complete. |
protected void |
setError(java.lang.Throwable cause)An Activity implementation should call this method to indicate that there has been an error during processing. |
(package private) void |
setProperties(java.util.Properties properties)Sets the (optional) activity configuation properties. |
(package private) void |
terminate()Terminates the activity processing. |
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
private static final java.lang.String COPYRIGHT_NOTICE
private static final DAILogger LOG
private final java.lang.String mName
private java.lang.String mActivityName
private java.util.Properties mProperties
null.
private ActivityConfiguration mConfiguration
null.
protected java.lang.String[] mInternalInputs
protected java.lang.String[] mInternalOutputs
protected java.lang.String[] mExternalInputs
protected java.lang.String[] mExternalOutputs
protected ActivityContext mContext
private Session mSession
private ActivityRequest mRequest
private final ObservableStatus mStatus
private java.lang.Throwable mCause
| Constructor Detail |
public Activity(org.w3c.dom.Element element)
throws ActivityCreationException,
ActivitySpecificationException
name attribute.
element - Element to configure the activity with - from a perform document.ActivityCreationException - If there is a problem constructing the activity due to an implementation error or OGSA-DAI confguration problem.ActivitySpecificationException - If there is a problem constructing the activity due to an invalid setting in element. mistake such as an invalid setting.public Activity(java.lang.String name)
name - The String name of the activity| Method Detail |
protected void cleanUp()
Activity implementations that need to free up resources in the event of an error or intermediate termination of the activity processing.
final void configureContext(ActivityContext context,
Session session)
throws SessionRequestException,
DuplicatePipeException
initialise method to be invoked and then for processing to commence.
context - Context for the activity RequestContext to configure.session - Session that the request containing the activity has been joined to.DuplicatePipeException - If there is a duplicate pipe declared in the activity.SessionRequestException - If there is a problem storing the external inputs or outputs in the session.protected Pipe createOutputPipe(int i)
i - Index of the output pipe.final java.lang.String[] getInputs()
String[] containing the input names. If there are no inputs then this will be an empty array.final java.lang.String[] getOutputs()
String[] containing the output names. If there are no outputs then this will be an empty array.final java.lang.String[] getAllOutputs()
String[] containing output names. If there are no outputs then this will be an empty array.final java.lang.String[] getExternalInputs()
String[] containing the external input names. If there are no inputs then this will be an empty array.final java.lang.String[] getExternalOutputs()
String[] containing the external output names. If there are no outputs then this will be an empty array.public final java.lang.String getName()
String containing the activity's name.public final Status getStatus()
protected final ObservableStatus getObservableStatus()
ObservableStatus that can be observed using Observer implementations.
ObservableStatus object indicating the activity's current status.
protected void initialise()
throws ActivitySpecificationException,
ActivityExecutionException
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.
ActivitySpecificationException - If a problem with settings provided by a client prevents the activity from initialising.ActivityExecutionException - If some system problem prevents the activity from initialising.public final void process()
getStatus().isFinished() returns true.
protected void processFirst()
protected abstract void processBlock()
setCompleted method to indicate that processing is complete, or the setError method if an error occurs that will prevent the processing from completing.
protected final void setCompleted()
Activity implementation should call this method to indicate that the processing is complete. This sets the activity status to completed.
protected final void setError(java.lang.Throwable cause)
Activity implementation should call this method to indicate that there has been an error during processing. This sets the activity status to error and calls the cleanUp method.
cause - An exception describing the reason for the error.public final java.lang.Throwable getCause()
Status.ERROR state during processing then this method can be used to retrieve the cause of the error.
null if there were no errors.final void terminate()
Status.TERMINATED and invokes the cleanUp method.
void setProperties(java.util.Properties properties)
properties - Activity configuration properties.protected java.util.Properties getProperties()
Properties object containing the activity properties or null if this activity does not have any properties.protected boolean hasProperties()
getProperties method.
true if the activity does has configuration, otherwise false.void setActivityConfiguration(ActivityConfiguration configuration)
ActivityConfiguration object. This is invoked by an ActivityCreator, if an Activity makes use of an individual ActivityConfiguration object. Note that many activities do not use ActivityConfiguration objects. TODO TS move this method into ConfigurarableActivity interface
configuration - Activity configuration information.protected boolean hasActivityConfiguration()
ActivityConfiguration object. If so, it can be accessed using the getActivityConfiguration method. TODO TS move this method into ConfigurarableActivity interface or remove if no longer necessary
true if the activity does have an ActivityConfiguration object, otherwise false.protected ActivityConfiguration getActivityConfiguration()
ActivityConfiguration object, if applicable. TODO TS move this method into ConfigurarableActivity interface
Properties referencehasActivityConfiguration()public boolean connectsTo(Activity activity)
activity - The activity to check for a connectiontrue if the specified activity is connected to this activity, otherwise falseprotected final Session getSession()
java.lang.IllegalStateException - If invoked before the activity's session has been set. An activity should wait until it's initialise method is called before attempting to access its session.public final void setActivityName(java.lang.String activityName)
activityName - activity type namepublic final java.lang.String getActivityName()
|
|||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||||