com.waveset.object
Class TaskResult

java.lang.Object
  extended by com.waveset.object.PersistentObject
      extended by com.waveset.object.TaskResult
All Implemented Interfaces:
com.waveset.object.AttributeBag, XmlObject, java.lang.Comparable, javax.naming.Referenceable

public class TaskResult
extends PersistentObject

This class represents the result of an individual operation within the execution of a larger task.

Previously, a TaskInstance contained its entire WavesetResult. However, this made the task instance large, and this meant that the entire (increasingly large) task instance had to be serialized and re-written into the repository in order to add and persist another individual result. By separating the result from the task, and by separating each item of the result, we can make it easier to incrementally update (and to incrementally display) large results.

An instance ordinarily contains a WavesetResult object.


Nested Class Summary
 
Nested classes/interfaces inherited from class com.waveset.object.PersistentObject
PersistentObject.Comparator, PersistentObject.InitialInstance
 
Field Summary
static java.lang.String code_id
           
static java.lang.String EL_TASKREF
           
static java.lang.String FROM_SEQUENCE
          Option key to specify the start of a sequence number range.
static java.lang.String JUST_LIST_THEM
          Option key to specify the end of a sequence number range.
static java.lang.String TO_SEQUENCE
          Option key to specify the end of a sequence number range.
 
Fields inherited from class com.waveset.object.PersistentObject
INITIAL_OBJECT_VERSION
 
Constructor Summary
TaskResult()
          Create an empty task result, ready to be filled.
TaskResult(org.w3c.dom.Element e)
          Build a work item from its XML representation.
TaskResult(com.waveset.object.TaskInstance task)
          Build a result for one part of a task.
TaskResult(com.waveset.object.TaskInstance task, int sequence)
          Build a result for one part of a task.
 
Method Summary
static AttributeCondition[] forTask(java.lang.String taskId)
           
static AttributeCondition[] forTask(com.waveset.object.TaskInstance ti)
           
static java.lang.String getName(java.lang.String taskId, int sequence)
           
static java.lang.String getName(com.waveset.object.TaskInstance task, int sequence)
           
static java.lang.String getNameBase(java.lang.String taskId)
           
static java.lang.String getParentTaskId(java.lang.String taskResultName)
           
 WavesetResult getResult()
           
 int getSequence()
           
 com.waveset.object.TaskInstance getTask()
          Get the resolved TaskInstance to which this result belongs.
 com.waveset.object.ObjectRef getTaskRef()
          Get a reference to the TaskInstance that contains our WorkflowCase.
 com.waveset.object.Type getType()
          Returns the associated Type object.
 java.util.List listQueryableAttributes()
           
 java.util.List listSummaryAttributes()
          Returns the complete list of defined attributes that this type of persistent object exposes as summary attributes (regardless of whether this particular object has a value for each).
 void setResult(WavesetResult result)
          Embed a WavesetResult in this extended result.
 void setSequence(int sequence)
          Set the sequence number for this extended result.
 
Methods inherited from class com.waveset.object.PersistentObject
addMemberObjectGroup, addMemberObjectGroup, addXmlHeader, attributesMatch, attributesMatch, attributesMatch, checkReference, checkReferences, clearId, cloneAs, cloneObject, compareTo, create, create, create, create, createLastModItem, createLastModItem, createLastModItemList, directObjectGroupMember, dump, dumpFile, equals, getAttribute, getAttributeValues, getAuthReferences, getAuthType, getBasicAttributes, getBasicAttributes, getBasicAttributes, getCache, getCounterValue, getCreateDate, getCreator, getDisplayableName, getDisplayName, getElementName, getEncryptedValues, getId, getIdOrName, getInitialInstances, getLastMod, getLastModDate, getLastModifier, getLastModItemId, getLockInfo, getMemberObjectGroupRefs, getMemberObjectGroupRefsUpTo, getMemberObjectGroups, getName, getNameOrId, getPrimaryObjectClass, getProperties, getProperty, getPropertyAsString, getPropertyList, getQueryableAttributes, getReference, getReferences, getRepositoryMod, getRuleDrivenMemberObjectGroupRefs, getRuleDrivenMemberObjectGroupRefsUpTo, getRuleDrivenMemberObjectGroups, getSubtype, getSummaryAttributes, getSummaryString, getXMLSize, hasEncryptedData, hashCode, identityEquals, isAlias, isHidden, isProtected, isProtectedFromDelete, isReferencedIn, listOperationalAttributes, listQueryableReferenceAttributes, objectGroupMember, objectGroupMemberRef, prepareForSerialization, prepareToSerialize, reEncrypt, removeMemberObjectGroup, removeProperty, resolve, resolve, resolve, resolveArray, resolveArrayByFetching, resolveObjectReferences, resolveReference, resolveSummaryAttributes, resolveSummaryAttributes, ruleDrivenObjectGroupMemberRef, setAuthType, setAuthType, setCache, setDisplayName, setDisplayName, setHidden, setIsAlias, setMemberObjectGroupRef, setMemberObjectGroupRefs, setMemberObjectGroups, setName, setProperties, setProperty, setPropertyList, setRuleDrivenMembersCache, setSubtype, setTrace, toString, toXml, toXml, toXml, toXmlFile, visit
 
Methods inherited from class java.lang.Object
getClass, notify, notifyAll, wait, wait, wait
 

Field Detail

code_id

public static final java.lang.String code_id
See Also:
Constant Field Values

EL_TASKREF

public static final java.lang.String EL_TASKREF
See Also:
Constant Field Values

FROM_SEQUENCE

public static final java.lang.String FROM_SEQUENCE
Option key to specify the start of a sequence number range.

See Also:
Constant Field Values

JUST_LIST_THEM

public static final java.lang.String JUST_LIST_THEM
Option key to specify the end of a sequence number range.

See Also:
Constant Field Values

TO_SEQUENCE

public static final java.lang.String TO_SEQUENCE
Option key to specify the end of a sequence number range.

See Also:
Constant Field Values
Constructor Detail

TaskResult

public TaskResult()
Create an empty task result, ready to be filled.


TaskResult

public TaskResult(org.w3c.dom.Element e)
           throws com.waveset.util.WavesetException
Build a work item from its XML representation.

Throws:
com.waveset.util.WavesetException

TaskResult

public TaskResult(com.waveset.object.TaskInstance task)
Build a result for one part of a task.


TaskResult

public TaskResult(com.waveset.object.TaskInstance task,
                  int sequence)
Build a result for one part of a task.

Method Detail

forTask

public static AttributeCondition[] forTask(java.lang.String taskId)

forTask

public static AttributeCondition[] forTask(com.waveset.object.TaskInstance ti)

getName

public static java.lang.String getName(java.lang.String taskId,
                                       int sequence)
Returns:
a generated task result name.

getName

public static java.lang.String getName(com.waveset.object.TaskInstance task,
                                       int sequence)
Returns:
a generated task result name.

getNameBase

public static java.lang.String getNameBase(java.lang.String taskId)
Returns:
a generated task result name.

getParentTaskId

public static java.lang.String getParentTaskId(java.lang.String taskResultName)
                                        throws com.waveset.util.InvalidArgument
Returns:
the id of the parent task from a generated task result name, or null if it cannot parse an id from the task result name.

In effect, an inverse of getName().

Throws:
com.waveset.util.InvalidArgument
See Also:
getName(String,int)

getResult

public WavesetResult getResult()
Returns:
the WavesetResult from this extended result.

getSequence

public int getSequence()
Returns:
the sequence number for this extended result.

getTask

public com.waveset.object.TaskInstance getTask()
                                        throws com.waveset.util.WavesetException
Get the resolved TaskInstance to which this result belongs.

Throws:
com.waveset.util.WavesetException

getTaskRef

public com.waveset.object.ObjectRef getTaskRef()
Get a reference to the TaskInstance that contains our WorkflowCase.


getType

public com.waveset.object.Type getType()
Returns the associated Type object.

Specified by:
getType in class PersistentObject
Returns:
type of this persistent object.

listQueryableAttributes

public java.util.List listQueryableAttributes()
Overrides:
listQueryableAttributes in class PersistentObject
Returns:
the complete list of defined attributes that this type of persistent object exposes as queryable attributes (regardless of whether this particular object has a value for each).

Any subclass of PersistentObject that overrides this method should first invoke super.listQueryableAttributes() to ensure that the subclass includes queryable attributes that are common to all PersistentObjects.


listSummaryAttributes

public java.util.List listSummaryAttributes()
Description copied from class: PersistentObject
Returns the complete list of defined attributes that this type of persistent object exposes as summary attributes (regardless of whether this particular object has a value for each).

Any subclass of PersistentObject that overrides this method should first invoke super.listSummaryAttributes() to ensure that the subclass includes summary attributes that are common to all PersistentObjects.

Any subclass that overrides this implementation must also consider the length of the summary string that will be generated from these attributes.

Overrides:
listSummaryAttributes in class PersistentObject
Returns:
the complete list of defined attributes that this type of persistent object exposes as summary attributes (regardless of whether this particular object has a value for each).

Any subclass of PersistentObject that overrides this method should first invoke super.listSummaryAttributes() to ensure that the subclass includes summary attributes that are common to all PersistentObjects.

See Also:
Constants.MAX_SUMMARY_STRING_LENGTH, PersistentObject.getSummaryString()

setResult

public void setResult(WavesetResult result)
Embed a WavesetResult in this extended result.

This allows the same TaskResult object to be re-used.


setSequence

public void setSequence(int sequence)
Set the sequence number for this extended result. Sequence numbers should increase monotonically.

This mutator allows the same TaskResult object to be re-used.