uk.org.ogsadai.activity.transform
Class FrequencyDistributorActivity

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

public class FrequencyDistributorActivity
extends Activity

A FrequencyDistributorActivity distributes the input values, that should be numeric, into the corresponding spaces that emerge from the parameter sequence of values.

A short example to illustrate the functionality of this activity is as follows:

Let us say that the parameter sequence of values is 1,5 and the input numerical values are 0,2,3,7. The spaces that emerge are: (-inf,1], (1,5], (5,+inf). There is one value lying in the first space (0), two values lying in the second space (2,3) and one value lying in the third space (7). Therefore, the output will be these values representing the distribution in each space, i.e. 1,2,1.

This functionality is similar to the principles of histograms.

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

Author:
The OGSA-DAI Project Team

Field Summary
private static java.lang.String COPYRIGHT_NOTICE
          Copyright
private  int[] mAttributeSequence
          Values that define the spaces
private  int[] mDistributionArray
          Distribution array containing the output values
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
FrequencyDistributorActivity(org.w3c.dom.Element element)
           
 
Method Summary
private  int findSpace(int[] array, int target)
          Method to find in which space the input value belongs to.
 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

See Also:
Constant Field Values

mInput

private BlockReader mInput
Activity input.


mOutput

private BlockWriter mOutput
Activity output.


mAttributeSequence

private int[] mAttributeSequence
Values that define the spaces


mDistributionArray

private int[] mDistributionArray
Distribution array containing the output values

Constructor Detail

FrequencyDistributorActivity

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

findSpace

private int findSpace(int[] array,
                      int target)
Method to find in which space the input value belongs to.

Parameters:
array - Input spaces
target - Input value