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`, `Serializable`, `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 final Comparator<PlanItem>`
  `BY_TITLE`
  `protected String`
  `description`
  `protected Date`
  `dueDate`
  `protected Date`
  `endDate`
  `protected String`
  `flagComment`
  `protected FlagStatus`
  `flagStatus`
  `protected boolean`
  `overdueNotified`
  `protected String`
  `owner`
  `protected Integer`
  `plannedDuration`
  `protected Date`
  `scheduledStartDate`
  `protected Date`
  `startDate`
  `protected 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

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

  - ### BY_TITLE

    public static final Comparator<PlanItem> BY_TITLE

  - ### title

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

  - ### description

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

  - ### owner

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

  - ### scheduledStartDate

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

  - ### dueDate

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

  - ### startDate

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

  - ### endDate

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

  - ### plannedDuration

    @Property(required=false, description="The time that the item is supposed to take to complete, in seconds.") protected 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 String flagComment

  - ### overdueNotified

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

- ## Constructor Details

  - ### PlanItem

    public PlanItem()

- ## Method Details

  - ### getTitle

    public String getTitle()

  - ### setTitle

    public void setTitle(String title)

  - ### getDescription

    public String getDescription()

  - ### setDescription

    public void setDescription(String value)

  - ### getOwner

    public String getOwner()

  - ### setOwner

    public void setOwner(String value)

  - ### hasOwner

    public boolean hasOwner()

  - ### hasOwner

    public boolean hasOwner(String releaseOwner)

  - ### getDueDate

    public Date getDueDate()

  - ### setDueDate

    public void setDueDate(Date value)

  - ### getStartDate

    public Date getStartDate()

  - ### setStartDate

    public void setStartDate(Date value)

  - ### getScheduledStartDate

    public Date getScheduledStartDate()

  - ### setScheduledStartDate

    public void setScheduledStartDate(Date scheduledStartDate)

  - ### getEndDate

    public Date getEndDate()

  - ### setEndDate

    public void setEndDate(Date value)

  - ### getPlannedDuration

    public Integer getPlannedDuration()

  - ### setPlannedDuration

    public void setPlannedDuration(Integer plannedDuration)

  - ### hasPlannedDuration

    public boolean hasPlannedDuration()

  - ### getFlagStatus

    public FlagStatus getFlagStatus()

  - ### setFlagStatus

    public void setFlagStatus(FlagStatus flagStatus)

  - ### getFlagComment

    public String getFlagComment()

  - ### setFlagComment

    public void setFlagComment(String flagComment)

  - ### isFlagged

    public boolean isFlagged()

  - ### checkDatesValidity

    public void checkDatesValidity(Date scheduledStartDate, Date dueDate, Integer plannedDuration)

  - ### updateDates

    public void updateDates(Date scheduledStartDate, Date dueDate, Integer plannedDuration)

  - ### updateDuration

    public void updateDuration(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 Date getStartOrScheduledDate()

  - ### hasEndOrDueDate

    public boolean hasEndOrDueDate()

  - ### getEndOrDueDate

    public 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(String candidateTitle)

  - ### isTitleContaining

    public boolean isTitleContaining(String candidateTitle)

  - ### hasValidStartDates

    public boolean hasValidStartDates()

  - ### getChildren

    public abstract 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 Integer getReleaseUid()

  - ### setReleaseUid

    public abstract void setReleaseUid(Integer releaseUid)

  - ### isUpdatable

    public abstract boolean isUpdatable()

  - ### getDisplayPath

    public abstract String getDisplayPath()

  - ### isAborted

    public abstract boolean isAborted()

  - ### isActive

    public abstract boolean isActive()

  - ### getVariableUsages

    public abstract List<UsagePoint> getVariableUsages()

  - ### calculateDueDate

    protected Optional<Date> calculateDueDate(Integer plannedDuration)

  - ### getOrCalculateDueDate

    public Optional<Date> getOrCalculateDueDate()

  - ### getComputedPlannedDuration

    public org.joda.time.Duration getComputedPlannedDuration()

  - ### getActualDuration

    public org.joda.time.Duration getActualDuration()