Class MutableActivityBase<T>

  • Type Parameters:
    T - the type of the optional user object
    All Implemented Interfaces:
    Activity, MutableActivity
    Direct Known Subclasses:
    MutableCalendarActivityBase

    public class MutableActivityBase<T>
    extends ActivityBase<T>
    implements MutableActivity
    The base implementation of a mutable activity. An activity is considered mutable if it implements the MutableActivity interface. By doing so we now have access to various setter methods to alter the state of the activity.
    Since:
    1.0
    • Constructor Detail

      • MutableActivityBase

        public MutableActivityBase​(String name)
        Constructs a new mutable activity with the given name. The initial start time will be set to Instant.now() and the end time will be equal to Instant.now() plus the value of ActivityBase.DEFAULT_DURATION.
        Parameters:
        name - the name of the activity
        Since:
        1.0
      • MutableActivityBase

        public MutableActivityBase​(Instant startTime,
                                   Instant endTime)
        Constructs a new mutable activity with the start time and end time.
        Parameters:
        startTime - the start time of the activity
        endTime - the end time of the activity
        Since:
        1.0
      • MutableActivityBase

        public MutableActivityBase​(String name,
                                   Instant startTime,
                                   Instant endTime)
        Constructs a new mutable activity with the given name, start time, and end time.
        Parameters:
        name - the name of the activity
        startTime - the start time of the activity
        endTime - the end time of the activity
        Since:
        1.0
    • Method Detail

      • setName

        public void setName​(String name)
        Description copied from interface: MutableActivity
        Sets the name of the activity.
        Specified by:
        setName in interface MutableActivity
        Parameters:
        name - the new name of the activity
      • setStartTime

        public void setStartTime​(Instant time)
        Description copied from interface: MutableActivity
        Sets a new start time on the activity.
        Specified by:
        setStartTime in interface MutableActivity
        Parameters:
        time - the new start time
      • setEndTime

        public void setEndTime​(Instant time)
        Description copied from interface: MutableActivity
        Sets a new end time on the activity.
        Specified by:
        setEndTime in interface MutableActivity
        Parameters:
        time - the new end time
      • setDuration

        public void setDuration​(Duration duration)
        Convenience method to determine a new end time based on a duration that will be added to the current start time of the activity.
        Parameters:
        duration - the duration of the activity
        Since:
        1.0
      • getDuration

        public Duration getDuration()
        Convenience method to determine the duration between the start and the end time of the activity.
        Returns:
        the duration of the activity
      • addDuration

        public void addDuration​(Duration duration)
        Convenience method to determine a new end time based on a duration that will be added once to the current end time of the activity.
        Parameters:
        duration - the duration of the activity
        Since:
        1.0
      • addDuration

        public void addDuration​(Duration duration,
                                long multipliedBy)
        Convenience method to determine a new end time based on a duration that will be added several times to the current end time of the activity.
        Parameters:
        duration - the duration of the activity
        multipliedBy - the number of times that the duration will be added
        Since:
        1.0