Class Task

  • All Implemented Interfaces:
    java.io.Serializable, java.lang.Cloneable, PublicCloneable

    public class Task
    extends java.lang.Object
    implements java.lang.Cloneable, PublicCloneable, java.io.Serializable
    A simple representation of a task. The task has a description and a duration. You can add sub-tasks to the task.
    See Also:
    Serialized Form
    • Field Summary

      Fields 
      Modifier and Type Field Description
      private java.lang.String description
      The task description.
      private TimePeriod duration
      The time period for the task (estimated or actual).
      private java.lang.Double percentComplete
      The percent complete (null is permitted).
      private static long serialVersionUID
      For serialization.
      private java.util.List subtasks
      Storage for the sub-tasks (if any).
    • Constructor Summary

      Constructors 
      Constructor Description
      Task​(java.lang.String description, java.util.Date start, java.util.Date end)
      Creates a new task.
      Task​(java.lang.String description, TimePeriod duration)
      Creates a new task.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void addSubtask​(Task subtask)
      Adds a sub-task to the task.
      boolean canEqual​(java.lang.Object other)
      Ensures symmetry between super/subclass implementations of equals.
      java.lang.Object clone()
      Returns a clone of the task.
      boolean equals​(java.lang.Object object)
      Tests this object for equality with an arbitrary object.
      java.lang.String getDescription()
      Returns the task description.
      TimePeriod getDuration()
      Returns the duration (actual or estimated) of the task.
      java.lang.Double getPercentComplete()
      Returns the percentage complete for this task.
      Task getSubtask​(int index)
      Returns a sub-task.
      int getSubtaskCount()
      Returns the sub-task count.
      int hashCode()  
      void removeSubtask​(Task subtask)
      Removes a sub-task from the task.
      void setDescription​(java.lang.String description)
      Sets the task description.
      void setDuration​(TimePeriod duration)
      Sets the task duration (actual or estimated).
      void setPercentComplete​(double percent)
      Sets the percentage complete for the task.
      void setPercentComplete​(java.lang.Double percent)
      Sets the percentage complete for the task.
      • Methods inherited from class java.lang.Object

        finalize, getClass, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • serialVersionUID

        private static final long serialVersionUID
        For serialization.
        See Also:
        Constant Field Values
      • description

        private java.lang.String description
        The task description.
      • duration

        private TimePeriod duration
        The time period for the task (estimated or actual).
      • percentComplete

        private java.lang.Double percentComplete
        The percent complete (null is permitted).
      • subtasks

        private java.util.List subtasks
        Storage for the sub-tasks (if any).
    • Constructor Detail

      • Task

        public Task​(java.lang.String description,
                    TimePeriod duration)
        Creates a new task.
        Parameters:
        description - the task description (null not permitted).
        duration - the task duration (null permitted).
      • Task

        public Task​(java.lang.String description,
                    java.util.Date start,
                    java.util.Date end)
        Creates a new task.
        Parameters:
        description - the task description (null not permitted).
        start - the start date (null not permitted).
        end - the end date (null not permitted).
    • Method Detail

      • getDescription

        public java.lang.String getDescription()
        Returns the task description.
        Returns:
        The task description (never null).
      • setDescription

        public void setDescription​(java.lang.String description)
        Sets the task description.
        Parameters:
        description - the description (null not permitted).
      • getDuration

        public TimePeriod getDuration()
        Returns the duration (actual or estimated) of the task.
        Returns:
        The task duration (possibly null).
      • setDuration

        public void setDuration​(TimePeriod duration)
        Sets the task duration (actual or estimated).
        Parameters:
        duration - the duration (null permitted).
      • getPercentComplete

        public java.lang.Double getPercentComplete()
        Returns the percentage complete for this task.
        Returns:
        The percentage complete (possibly null).
      • setPercentComplete

        public void setPercentComplete​(java.lang.Double percent)
        Sets the percentage complete for the task.
        Parameters:
        percent - the percentage (null permitted).
      • setPercentComplete

        public void setPercentComplete​(double percent)
        Sets the percentage complete for the task.
        Parameters:
        percent - the percentage.
      • addSubtask

        public void addSubtask​(Task subtask)
        Adds a sub-task to the task.
        Parameters:
        subtask - the subtask (null not permitted).
      • removeSubtask

        public void removeSubtask​(Task subtask)
        Removes a sub-task from the task.
        Parameters:
        subtask - the subtask.
      • getSubtaskCount

        public int getSubtaskCount()
        Returns the sub-task count.
        Returns:
        The sub-task count.
      • getSubtask

        public Task getSubtask​(int index)
        Returns a sub-task.
        Parameters:
        index - the index.
        Returns:
        The sub-task.
      • equals

        public boolean equals​(java.lang.Object object)
        Tests this object for equality with an arbitrary object.
        Overrides:
        equals in class java.lang.Object
        Parameters:
        object - the other object (null permitted).
        Returns:
        A boolean.
      • canEqual

        public boolean canEqual​(java.lang.Object other)
        Ensures symmetry between super/subclass implementations of equals. For more detail, see http://jqno.nl/equalsverifier/manual/inheritance.
        Parameters:
        other - Object
        Returns:
        true ONLY if the parameter is THIS class type
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class java.lang.Object
      • clone

        public java.lang.Object clone()
                               throws java.lang.CloneNotSupportedException
        Returns a clone of the task.
        Specified by:
        clone in interface PublicCloneable
        Overrides:
        clone in class java.lang.Object
        Returns:
        A clone.
        Throws:
        java.lang.CloneNotSupportedException - never thrown by this class, but subclasses may not support cloning.