ecologylab.services.logging
Class MixedInitiativeOp

java.lang.Object
  extended by ecologylab.generic.Debug
      extended by ecologylab.xml.ElementState
          extended by ecologylab.xml.types.element.ArrayListState
              extended by ecologylab.services.logging.MixedInitiativeOp
All Implemented Interfaces:
OptimizationTypes, XMLTranslationExceptionTypes, java.lang.Cloneable, java.lang.Iterable, java.util.Collection, java.util.List
Direct Known Subclasses:
AuthenticationOp

public abstract class MixedInitiativeOp
extends ArrayListState

A user operation, which can be serialized, logged, Undo/Redo'ed, played in history, and so on.

Author:
andruid

Nested Class Summary
 
Nested classes/interfaces inherited from class ecologylab.xml.ElementState
ElementState.ClassToCollectionMap, ElementState.DeclarationStyle, ElementState.xml_attribute, ElementState.xml_class, ElementState.xml_classes, ElementState.xml_collection, ElementState.xml_leaf, ElementState.xml_map, ElementState.xml_nested, ElementState.xml_tag
 
Field Summary
protected  long sessionTime
          Elapsed time since the session started.
 
Fields inherited from class ecologylab.xml.types.element.ArrayListState
set
 
Fields inherited from class ecologylab.xml.ElementState
CDATA, ESTIMATE_CHARS_PER_FIELD, FLOATING_PRECISION_OFF, MARSHALLING_PARAMS, NORMAL, UTF16, UTF16_LE, UTF8, XML_FILE_HEADER
 
Fields inherited from interface ecologylab.xml.OptimizationTypes
BAD_FIELD, COLLECTION_ELEMENT, COLLECTION_SCALAR, IGNORED_ATTRIBUTE, IGNORED_ELEMENT, LEAF_NODE_VALUE, MAP_ELEMENT, MAP_SCALAR, NAME_SPACE_ATTRIBUTE, NAME_SPACE_LEAF_NODE, NAME_SPACE_MASK, NAME_SPACE_NESTED_ELEMENT, NAMESPACE_IGNORED_ELEMENT, NAMESPACE_TRIAL_ELEMENT, OTHER_NESTED_ELEMENT, REGULAR_ATTRIBUTE, REGULAR_NESTED_ELEMENT, ROOT, UNSET_TYPE, XMLNS_ATTRIBUTE, XMLNS_IGNORED
 
Fields inherited from interface ecologylab.xml.XMLTranslationExceptionTypes
FILE_NOT_FOUND, IO_EXCEPTION, NULL_PURL, UNKNOWN
 
Constructor Summary
MixedInitiativeOp()
          No-argument constructor for XML translation.
 
Method Summary
 long getSessionTime()
           
 boolean isHuman()
          In a mixed initiative system, some ops are by the human, while others are by the agent.
abstract  void performAction(boolean invert)
          Perform the op.
protected  void preTranslationProcessingHook()
          Sets the session time immediately before translating to XML.
 void recycle(boolean invert)
          Free resources associated with this.
 
Methods inherited from class ecologylab.xml.types.element.ArrayListState
add, add, addAll, addAll, clear, clone, contains, containsAll, get, getArrayList, getCollection, indexOf, isEmpty, iterator, lastIndexOf, listIterator, listIterator, recycle, remove, remove, removeAll, retainAll, set, set, size, subList, toArray, toArray, trimToSize
 
Methods inherited from class ecologylab.xml.ElementState
addNestedElement, addNestedElement, appendTextNodeString, buildDOM, buildDOM, buildDOM, buildDOM, buildDOM, buildDOMFromXMLCharSequence, buildDOMFromXMLString, checkAnnotation, convertNameStyles, createChildHook, fieldToXMLOptimizations, floatingPrecision, getElementStateById, getMap, getNestedNameSpace, getTextNodeString, leafElementFieldNames, lookupNestedNameSpace, optimizations, parent, postTranslationProcessingHook, setDeclarationStyle, setFieldUsingTypeRegistry, setFloatingPrecision, setParent, setUseDOMForTranslateTo, translateFromXML, translateFromXML, translateFromXML, translateFromXML, translateFromXML, translateFromXMLCharSequence, translateFromXMLDOM, translateFromXMLDOM, translateFromXMLDOM, translateFromXMLDOM, translateFromXMLDOM, translateFromXMLDOM, translateFromXMLDOMCharSequence, translateFromXMLDOMCharSequence, translateFromXMLRootNode, translateFromXMLSAX, translateFromXMLSAX, translateFromXMLSAX, translateFromXMLSAX, translateFromXMLSAX, translateToDOM, translateToXML, translateToXML, translateToXML, translateToXML, writePrettyXML, writePrettyXML, writePrettyXML
 
Methods inherited from class ecologylab.generic.Debug
classSimpleName, closeLoggingFile, debug, debug, debug, debug, debugA, debugA, debugA, debugI, debugI, debugI, error, error, getClassName, getClassName, getInteractive, getPackageName, getPackageName, getPackageName, initialize, level, level, level, logToFile, print, print, println, println, println, println, println, println, printlnA, printlnA, printlnA, printlnI, printlnI, printlnI, printlnI, setLoggingFile, show, show, superString, toggleInteractive, toString, toString, warning, warning, weird, weird
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface java.util.List
equals, hashCode
 

Field Detail

sessionTime

protected long sessionTime
Elapsed time since the session started.

Constructor Detail

MixedInitiativeOp

public MixedInitiativeOp()
No-argument constructor for XML translation.

Method Detail

performAction

public abstract void performAction(boolean invert)
Perform the op. Perhaps invert it, as for undo.

Parameters:
invert -

isHuman

public boolean isHuman()
In a mixed initiative system, some ops are by the human, while others are by the agent. The presence of this here at the moment may be a hack. It may be good design :-) Human and dyadic undo should probably be split into 2 separte UndoRedo classes.

Returns:

recycle

public void recycle(boolean invert)
Free resources associated with this.


preTranslationProcessingHook

protected void preTranslationProcessingHook()
Sets the session time immediately before translating to XML. The session time is based from the time the log started recording.

Overrides:
preTranslationProcessingHook in class ElementState
See Also:
ElementState.preTranslationProcessingHook()

getSessionTime

public long getSessionTime()
Returns:
the sessionTime