Class ScheduleElement

  • Direct Known Subclasses:
    Firing, Schedule

    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.

    Since:
    Ptolemy II 1.0
    Version:
    $Id$
    Author:
    Brian K. Vogel
    See Also:
    Firing, Schedule
    Pt.AcceptedRating:
    Yellow (chf)
    Pt.ProposedRating:
    Green (vogel)
    • 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.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • _parent

        protected ScheduleElement _parent
        The parent schedule of this schedule. Null means this schedule has no parent.
    • Constructor Detail

      • ScheduleElement

        public ScheduleElement()
        Construct a schedule element with an iteration count of 1 and with no parent schedule element. The constructor that takes a parameter should be used when constructing a schedule element that is contained by another schedule element.
    • 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.