edu.mit.ai.psg.traveler
Class ActivityRecordObservableBase
java.lang.Object
|
+--edu.mit.ai.psg.traveler.ActivityRecordBase
|
+--edu.mit.ai.psg.traveler.ActivityRecordObservableBase
- Direct Known Subclasses:
- StringRecordObservable
- public abstract class ActivityRecordObservableBase
- extends ActivityRecordBase
- implements ObservableRecord
Base class for records which will be observed. Designed around the
following assumptions: (1) activity records may number in the hundreds
of thousands or more, so minimizing space is a concern; (2) once
activity has finished, record will no longer change; thus observers are
only kept for activities in progress. To mark activity as finished, call
finished()(); to test whether it is subject to change, test
isReadOnly()().
| Methods inherited from class edu.mit.ai.psg.traveler.ActivityRecordBase |
addThreadedChild,
cloneObject,
ensureListValue,
getChildren,
getChildrenInThread,
getParent,
getProperty,
getThreadedChildren,
isFinished,
putProperty,
removeProperty,
toString |
ActivityRecordObservableBase
public ActivityRecordObservableBase()
finished
public void finished()
- Description copied from class: ActivityRecordBase
- Trims child list (or sets to null if empty).
- Overrides:
- finished in class ActivityRecordBase
isReadOnly
public boolean isReadOnly()
- Description copied from interface: ObservableRecord
- may be used to avoid constructing change observers for records that
will never change. If true, should never become false. (Often
different from ActivityRecord.isFinished(), which only means the
thread that created the activity record is finished with it, not that
other threads are.)
- Specified by:
- isReadOnly in interface ObservableRecord
setParent
public void setParent(ActivityRecord parentRecord)
- Description copied from interface: ActivityRecord
- called by addChild
- Overrides:
- setParent in class ActivityRecordBase
addChild
public void addChild(ActivityRecord child)
- Description copied from interface: ActivityRecord
- add child to this parent's children, and set child's parent to this
- Overrides:
- addChild in class ActivityRecordBase
- Tags copied from interface: ActivityRecord
- See Also:
ActivityRecord.addThreadedChild(edu.mit.ai.psg.traveler.ActivityRecord)
addChangeObserver
public void addChangeObserver(ChangeObserver observer)
- arrange to be notified as follows:
- parent set:
observer.notifyChanged(thisRecord)
- child added:
observer.notifyAdded(thisRecord, childRecord)
- Specified by:
- addChangeObserver in interface ObservableRecord
removeChangeObserver
public void removeChangeObserver(ChangeObserver observer)
- Specified by:
- removeChangeObserver in interface ObservableRecord