Package ptolemy.actor.sched
Class ScheduleElement
- java.lang.Object
-
- ptolemy.actor.sched.ScheduleElement
-
public abstract class ScheduleElement extends java.lang.Object
This is an abstract base class for a schedule element. Instances of the Schedule and Firing subclasses are used to construct a static schedule. A schedule can be thought of as a structure that consists of an iteration count and a list of schedule elements. A schedule element can contain an actor, or it can contain another schedule. It is usually required that, all of the lowest-level schedule elements must contain an actor. It is up to the scheduler to enforce this, however. The Schedule class is a schedule element that contains a schedule. The Firing class is a schedule element that contains an actor. Therefore, the top-level schedule element must be an instance of Schedule, and all of the lowest-level elements must each be an instance of Firing.This base class implements the getIterationCount() and setIterationCount() methods, which return and set the iteration count for this schedule element. A default value of 1 is used for the iteration count.
-
-
Field Summary
Fields Modifier and Type Field Description protected ScheduleElement
_parent
The parent schedule of this schedule.
-
Constructor Summary
Constructors Constructor Description ScheduleElement()
Construct a schedule element with an iteration count of 1 and with no parent schedule element.
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description protected long
_getVersion()
Return the current version of this schedule element.protected void
_incrementVersion()
Increment the version of this schedule element and if this schedule element has a parent schedule, increment the version of the parent schedule as well.abstract java.util.Iterator
actorIterator()
Return the actor invocation sequence of the schedule in the form of a sequence of actors.abstract java.util.Iterator
firingIterator()
Return the actor invocation sequence in the form of a sequence of firings.int
getIterationCount()
Return the iteration count for this schedule.void
setIterationCount(int count)
Set the iteration count for this schedule.void
setParent(ScheduleElement parent)
Set the parent schedule element of this schedule element to the specified schedule element.
-
-
-
Field Detail
-
_parent
protected ScheduleElement _parent
The parent schedule of this schedule. Null means this schedule has no parent.
-
-
Method Detail
-
actorIterator
public abstract java.util.Iterator actorIterator()
Return the actor invocation sequence of the schedule in the form of a sequence of actors. All of the lowest-level nodes should be an instance of Actor. Otherwise, the returned iterator will contain null elements.- Returns:
- An iterator over a sequence of actors.
-
firingIterator
public abstract java.util.Iterator firingIterator()
Return the actor invocation sequence in the form of a sequence of firings. All of the lowest-level nodes should be an instance of Firing, which references an actor and an iteration count. Otherwise, the returned iterator will contain null elements.- Returns:
- An iterator over a sequence of firings.
-
getIterationCount
public int getIterationCount()
Return the iteration count for this schedule. This method returns the iteration count that was set by setIterationCount(). If setIterationCount() was never invoked, then a value of one is returned.- Returns:
- The iteration count for this schedule.
- See Also:
setIterationCount(int)
-
setIterationCount
public void setIterationCount(int count)
Set the iteration count for this schedule. The getIterationCount() method will return the value set by this method. If this method is not invoked, a default value of one will be used.- Parameters:
count
- The iteration count for this schedule.- See Also:
getIterationCount()
-
setParent
public void setParent(ScheduleElement parent)
Set the parent schedule element of this schedule element to the specified schedule element. If this schedule element is added to another schedule element (the parent), then the add() method of the parent will invoke this method. This association is used to notify the parent schedule element when changes are made to this schedule element.- Parameters:
parent
- The parent schedule element of this schedule element.
-
_getVersion
protected long _getVersion()
Return the current version of this schedule element. The version changes whenever a structural change is made to this schedule element.- Returns:
- The current version of this schedule element.
-
_incrementVersion
protected void _incrementVersion()
Increment the version of this schedule element and if this schedule element has a parent schedule, increment the version of the parent schedule as well. This method will therefore cause a version update to propagate up to all parent schedule elements. This method is called when a structure change is made to this schedule element, and is also called by the immediate children of this schedule element when they are modified.
-
-