|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
java.lang.Object | +--edu.mit.ai.psg.traveler.ActivityRecordBase
Base class for records of hierarchical activities with at most one parent
and zero or more child subactivities. Derived classes must implement
toString() so they can be displayed readably.
| Field Summary | |
protected ActivityRecord |
parent
|
| Constructor Summary | |
ActivityRecordBase()
|
|
| Method Summary | |
void |
addChild(ActivityRecord child)
add child to this parent's children, and set child's parent to this |
void |
addThreadedChild(ActivityRecord childInOwnThread)
add child activity which is running in another thread |
protected static Object |
cloneObject(Object target)
Utility method to clone an object (if it is cloneable) to record its state. |
protected static List |
ensureListValue(List list)
if list is null, returns Collections.EMPTY_LIST, else returns list |
void |
finished()
Trims child list (or sets to null if empty). |
Collection |
getChildren()
|
List |
getChildrenInThread()
|
ActivityRecord |
getParent()
|
protected Object |
getProperty(Object key)
|
Collection |
getThreadedChildren()
|
boolean |
isFinished()
true if recording this record has finished for thread that created record; additions may still be made by other threads (e.g., #addThreadChild). |
protected Object |
putProperty(Object key,
Object value)
key should be a unique object not likely to be used by other classes. |
protected Object |
removeProperty(Object key)
|
void |
setParent(ActivityRecord record)
called by addChild |
abstract String |
toString()
subclasses must provide a print string |
| Methods inherited from class java.lang.Object |
clone,
equals,
finalize,
getClass,
hashCode,
notify,
notifyAll,
wait,
wait,
wait |
| Field Detail |
protected ActivityRecord parent
| Constructor Detail |
public ActivityRecordBase()
| Method Detail |
public ActivityRecord getParent()
public void setParent(ActivityRecord record)
public void finished()
public boolean isFinished()
public Collection getChildren()
List, and iterator returns child activities in
sequential order.public void addChild(ActivityRecord child)
ActivityRecord.addThreadedChild(edu.mit.ai.psg.traveler.ActivityRecord)public List getChildrenInThread()
public void addThreadedChild(ActivityRecord childInOwnThread)
ActivityRecord.addChild(edu.mit.ai.psg.traveler.ActivityRecord)public Collection getThreadedChildren()
protected static final List ensureListValue(List list)
public abstract String toString()
protected Object putProperty(Object key,
Object value)
private static final Object myPropertyKey =
new Object(){public String toString(){ return "myPropertyKey";}};
This is better than a string because two objects are guaranteed
to be non equal. However, it may not work if activity records
are serialized.protected Object getProperty(Object key)
protected Object removeProperty(Object key)
protected static Object cloneObject(Object target)
|
Copyright (c) 1996-1999 Massachusetts Institute of Technology Feedback: jeva-feedback@ai.mit.edu |
||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||