Package com.xebialabs.xlrelease.domain

## Class PlanItem

- java.lang.Object
- - com.xebialabs.deployit.plugin.api.udm.base.BaseConfigurationItem
  - - com.xebialabs.xlrelease.domain.PlanItem

- All Implemented Interfaces:
    `ConfigurationItem`, `VisitableItem`, `java.io.Serializable`, `java.lang.Comparable<BaseConfigurationItem>`
  Direct Known Subclasses:
    `Phase`, `Release`, `Task`

      public abstract class PlanItem
      extends BaseConfigurationItem
      implements VisitableItem

  See Also:
    Serialized Form

- - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `static java.util.Comparator<PlanItem>` | `BY_TITLE` |
    `protected java.lang.String` | `description` |
    `protected java.util.Date` | `dueDate` |
    `protected java.util.Date` | `endDate` |
    `protected java.lang.String` | `flagComment` |
    `protected FlagStatus` | `flagStatus` |
    `protected boolean` | `overdueNotified` |
    `protected java.lang.String` | `owner` |
    `protected java.lang.Integer` | `plannedDuration` |
    `protected java.util.Date` | `scheduledStartDate` |
    `protected java.util.Date` | `startDate` |
    `protected java.lang.String` | `title` |

    - ### Fields inherited from class com.xebialabs.deployit.plugin.api.udm.base.BaseConfigurationItem

      `id, syntheticProperties, type`

    - ### Fields inherited from interface com.xebialabs.deployit.plugin.api.udm.ConfigurationItem

      `SYNTHETIC_PROPERTIES_FIELD, TYPE_FIELD`

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `PlanItem()` |

  - ### Method Summary

    All Methods Instance Methods Abstract Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `protected java.util.Optional<java.util.Date>` | `calculateDueDate​(java.lang.Integer plannedDuration)` |
    `void` | `checkDatesValidity​(java.util.Date scheduledStartDate, java.util.Date dueDate, java.lang.Integer plannedDuration)` |
    `org.joda.time.Duration` | `getActualDuration()` |
    `abstract java.util.List<PlanItem>` | `getChildren()` |
    `org.joda.time.Duration` | `getComputedPlannedDuration()` |
    `java.lang.String` | `getDescription()` |
    `abstract java.lang.String` | `getDisplayPath()` |
    `java.util.Date` | `getDueDate()` |
    `java.util.Date` | `getEndDate()` |
    `java.util.Date` | `getEndOrDueDate()` |
    `java.lang.String` | `getFlagComment()` |
    `FlagStatus` | `getFlagStatus()` |
    `java.util.Optional<java.util.Date>` | `getOrCalculateDueDate()` |
    `java.lang.String` | `getOwner()` |
    `java.lang.Integer` | `getPlannedDuration()` |
    `abstract Release` | `getRelease()` |
    `abstract java.lang.Integer` | `getReleaseUid()` |
    `java.util.Date` | `getScheduledStartDate()` |
    `java.util.Date` | `getStartDate()` |
    `java.util.Date` | `getStartOrScheduledDate()` |
    `java.lang.String` | `getTitle()` |
    `abstract java.util.List<UsagePoint>` | `getVariableUsages()` |
    `abstract boolean` | `hasBeenStarted()` |
    `boolean` | `hasDueDate()` |
    `boolean` | `hasEndDate()` |
    `boolean` | `hasEndOrDueDate()` |
    `boolean` | `hasOwner()` |
    `boolean` | `hasOwner​(java.lang.String releaseOwner)` |
    `boolean` | `hasPlannedDuration()` |
    `boolean` | `hasScheduledStartDate()` |
    `boolean` | `hasStartDate()` |
    `boolean` | `hasStartOrScheduledDate()` |
    `boolean` | `hasTitle()` |
    `boolean` | `hasTitle​(java.lang.String candidateTitle)` |
    `boolean` | `hasValidStartDates()` |
    `abstract boolean` | `isAborted()` |
    `abstract boolean` | `isActive()` |
    `abstract boolean` | `isDone()` |
    `boolean` | `isFlagged()` |
    `boolean` | `isOverdue()` |
    `boolean` | `isOverdueNotified()` |
    `boolean` | `isTitleContaining​(java.lang.String candidateTitle)` |
    `abstract boolean` | `isUpdatable()` |
    `Changes` | `moveChildren​(int offsetInSeconds)` |
    `Changes` | `setDates​(int offsetInSeconds)` |
    `void` | `setDescription​(java.lang.String value)` |
    `void` | `setDueDate​(java.util.Date value)` |
    `void` | `setEndDate​(java.util.Date value)` |
    `void` | `setFlagComment​(java.lang.String flagComment)` |
    `void` | `setFlagStatus​(FlagStatus flagStatus)` |
    `void` | `setOverdueNotified​(boolean overdueNotified)` |
    `void` | `setOwner​(java.lang.String value)` |
    `void` | `setPlannedDuration​(java.lang.Integer plannedDuration)` |
    `abstract void` | `setReleaseUid​(java.lang.Integer releaseUid)` |
    `void` | `setScheduledStartDate​(java.util.Date scheduledStartDate)` |
    `void` | `setStartAndEndDatesIfEmpty()` |
    `void` | `setStartDate​(java.util.Date value)` |
    `void` | `setTitle​(java.lang.String title)` |
    `boolean` | `shouldNotifyOverdue()` |
    `void` | `updateDates​(java.util.Date scheduledStartDate, java.util.Date dueDate, java.lang.Integer plannedDuration)` |
    `void` | `updateDuration​(java.lang.Integer plannedDuration)` | Updates a Duration and Due Date.

    - ### Methods inherited from class com.xebialabs.deployit.plugin.api.udm.base.BaseConfigurationItem

      `compareTo, equals, get$ciAttributes, get$directoryReference, get$externalProperties, get$internalId, get$referenceId, get$securedCi, get$securedDirectoryReference, get$token, get$validationMessages, getId, getName, getProperty, getPropertyDescriptor, getType, hashCode, hasProperty, set$ciAttributes, set$directoryReference, set$externalProperties, set$internalId, set$referenceId, set$securedCi, set$securedDirectoryReference, set$token, set$validationMessages, setId, setProperty, setType, toString`

    - ### Methods inherited from class java.lang.Object

      `clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

    - ### Methods inherited from interface com.xebialabs.xlrelease.domain.VisitableItem

      `accept`

- - ### Field Detail

    - #### BY_TITLE

          public static final java.util.Comparator<PlanItem> BY_TITLE

    - #### title

          @Property(description="The title of the item.")
          protected java.lang.String title

    - #### description

          @Property(required=false,
                    description="The description of the item.")
          protected java.lang.String description

    - #### owner

          @Property(required=false,
                    description="The owner of the item.")
          protected java.lang.String owner

    - #### scheduledStartDate

          @Property(required=false,
                    description="The date that the item is supposed to start.")
          protected java.util.Date scheduledStartDate

    - #### dueDate

          @Property(required=false,
                    description="The date that the item is supposed to end.")
          protected java.util.Date dueDate

    - #### startDate

          @Property(required=false,
                    description="The actual start date.")
          protected java.util.Date startDate

    - #### endDate

          @Property(required=false,
                    description="The actual end date.")
          protected java.util.Date endDate

    - #### plannedDuration

          @Property(required=false,
                    description="The time that the item is supposed to take to complete, in seconds.")
          protected java.lang.Integer plannedDuration

    - #### flagStatus

          @Property(description="Flags indicate that an item needs attention.",
                    defaultValue="OK")
          protected FlagStatus flagStatus

    - #### flagComment

          @Property(required=false,
                    description="The reason the item is flagged.")
          protected java.lang.String flagComment

    - #### overdueNotified

          @Property(required=false,
                    category="internal")
          protected boolean overdueNotified

  - ### Constructor Detail

    - #### PlanItem

          public PlanItem()

  - ### Method Detail

    - #### getTitle

          public java.lang.String getTitle()

    - #### setTitle

          public void setTitle​(java.lang.String title)

    - #### getDescription

          public java.lang.String getDescription()

    - #### setDescription

          public void setDescription​(java.lang.String value)

    - #### getOwner

          public java.lang.String getOwner()

    - #### setOwner

          public void setOwner​(java.lang.String value)

    - #### hasOwner

          public boolean hasOwner()

    - #### hasOwner

          public boolean hasOwner​(java.lang.String releaseOwner)

    - #### getDueDate

          public java.util.Date getDueDate()

    - #### setDueDate

          public void setDueDate​(java.util.Date value)

    - #### getStartDate

          public java.util.Date getStartDate()

    - #### setStartDate

          public void setStartDate​(java.util.Date value)

    - #### getScheduledStartDate

          public java.util.Date getScheduledStartDate()

    - #### setScheduledStartDate

          public void setScheduledStartDate​(java.util.Date scheduledStartDate)

    - #### getEndDate

          public java.util.Date getEndDate()

    - #### setEndDate

          public void setEndDate​(java.util.Date value)

    - #### getPlannedDuration

          public java.lang.Integer getPlannedDuration()

    - #### setPlannedDuration

          public void setPlannedDuration​(java.lang.Integer plannedDuration)

    - #### hasPlannedDuration

          public boolean hasPlannedDuration()

    - #### getFlagStatus

          public FlagStatus getFlagStatus()

    - #### setFlagStatus

          public void setFlagStatus​(FlagStatus flagStatus)

    - #### getFlagComment

          public java.lang.String getFlagComment()

    - #### setFlagComment

          public void setFlagComment​(java.lang.String flagComment)

    - #### isFlagged

          public boolean isFlagged()

    - #### checkDatesValidity

          public void checkDatesValidity​(java.util.Date scheduledStartDate,
                                         java.util.Date dueDate,
                                         java.lang.Integer plannedDuration)

    - #### updateDates

          public void updateDates​(java.util.Date scheduledStartDate,
                                  java.util.Date dueDate,
                                  java.lang.Integer plannedDuration)

    - #### updateDuration

          public void updateDuration​(java.lang.Integer plannedDuration)

      Updates a Duration and Due Date.
      Parameters:
        `plannedDuration` - time supposed to complete item, in seconds.

    - #### moveChildren

          public Changes moveChildren​(int offsetInSeconds)

    - #### hasStartOrScheduledDate

          public boolean hasStartOrScheduledDate()

    - #### getStartOrScheduledDate

          public java.util.Date getStartOrScheduledDate()

    - #### hasEndOrDueDate

          public boolean hasEndOrDueDate()

    - #### getEndOrDueDate

          public java.util.Date getEndOrDueDate()

    - #### hasScheduledStartDate

          public boolean hasScheduledStartDate()

    - #### hasStartDate

          public boolean hasStartDate()

    - #### hasDueDate

          public boolean hasDueDate()

    - #### hasEndDate

          public boolean hasEndDate()

    - #### setDates

          public Changes setDates​(int offsetInSeconds)

    - #### hasTitle

          public boolean hasTitle()

    - #### hasTitle

          public boolean hasTitle​(java.lang.String candidateTitle)

    - #### isTitleContaining

          public boolean isTitleContaining​(java.lang.String candidateTitle)

    - #### hasValidStartDates

          public boolean hasValidStartDates()

    - #### getChildren

          public abstract java.util.List<PlanItem> getChildren()

    - #### setStartAndEndDatesIfEmpty

          public void setStartAndEndDatesIfEmpty()

    - #### isOverdue

          public boolean isOverdue()

    - #### setOverdueNotified

          public void setOverdueNotified​(boolean overdueNotified)

    - #### isOverdueNotified

          public boolean isOverdueNotified()

    - #### shouldNotifyOverdue

          public boolean shouldNotifyOverdue()

    - #### hasBeenStarted

          public abstract boolean hasBeenStarted()

    - #### isDone

          public abstract boolean isDone()

    - #### getRelease

          public abstract Release getRelease()

    - #### getReleaseUid

          public abstract java.lang.Integer getReleaseUid()

    - #### setReleaseUid

          public abstract void setReleaseUid​(java.lang.Integer releaseUid)

    - #### isUpdatable

          public abstract boolean isUpdatable()

    - #### getDisplayPath

          public abstract java.lang.String getDisplayPath()

    - #### isAborted

          public abstract boolean isAborted()

    - #### isActive

          public abstract boolean isActive()

    - #### getVariableUsages

          public abstract java.util.List<UsagePoint> getVariableUsages()

    - #### calculateDueDate

          protected java.util.Optional<java.util.Date> calculateDueDate​(java.lang.Integer plannedDuration)

    - #### getOrCalculateDueDate

          public java.util.Optional<java.util.Date> getOrCalculateDueDate()

    - #### getComputedPlannedDuration

          public org.joda.time.Duration getComputedPlannedDuration()

    - #### getActualDuration

          public org.joda.time.Duration getActualDuration()