Package com.xebialabs.xlrelease.domain

# Class Task

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

All Implemented Interfaces:
  `ConfigurationItem`, `Lockable`, `VisitableItem`, `Serializable`, `Comparable<BaseConfigurationItem>`

Direct Known Subclasses:
  `BaseScriptTask`, `ContainerTask`, `CreateReleaseTask`, `GateTask`, `NotificationTask`, `TaskGroup`, `UserInputTask`

@Metadata(label="Manual", versioned=false, description="Describes an action that is not automated and requires a human to mark completion") public class Task extends PlanItem implements Lockable
An Digital.ai Release task. See also `GateTask`.

See Also:
  - Serialized Form

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `static final String`
  `CATEGORY_INPUT`
  `static final String`
  `CATEGORY_OUTPUT`
  `protected boolean`
  `delayDuringBlackout`
  `static final double`
  `DUE_SOON_THRESHOLD`
  `protected String`
  `executionId`
  `protected String`
  `failureHandler`
  `protected int`
  `failuresCount`
  `protected boolean`
  `hasBeenDelayed`
  `protected boolean`
  `hasBeenFlagged`
  `static final Predicate<Task>`
  `IS_AUTOMATED_AND_IN_PROGRESS`
  `protected int`
  `maxCommentSize`
  `protected Date`
  `originalScheduledStartDate`
  `protected boolean`
  `postponedDueToBlackout`
  `protected boolean`
  `postponedUntilEnvironmentsAreReserved`
  `protected String`
  `precondition`
  `protected List<String>`
  `tags`
  `protected boolean`
  `taskFailureHandlerEnabled`
  `protected TaskRecoverOp`
  `taskRecoverOp`
  `protected String`
  `team`
  `static final Type`
  `UNKNOWN_TASK_TYPE`
  `protected Map<String,String>`
  `variableMapping`
  `protected boolean`
  `waitForScheduledStartDate`

  ### Fields inherited from class com.xebialabs.xlrelease.domain.PlanItem

  `BY_TITLE, description, dueDate, endDate, flagComment, flagStatus, overdueNotified, owner, plannedDuration, scheduledStartDate, startDate, 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
  `Task()`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `Changes`
  `abort()`
  `void`
  `accept(ReleaseVisitor visitor)`
  `void`
  `addWatcher(String watcher)`
  `protected void`
  `applyDefaults()`
  `boolean`
  `canBeBackup()`
  `boolean`
  `canScheduleTaskStart()`
  `boolean`
  `canStartNow()`
  `void`
  `checkDatesValidity()`
  `void`
  `clearComments()`
  `void`
  `clearModificationAttributes()`
  `boolean`
  `delayDuringBlackoutHasChanged(Task task)`
  `void`
  `deleteAttachment(String attachmentId)`
  `void`
  `deleteTask(Task task)`
  `protected Changes`
  `execute(String targetId, TaskStartOrRetryOperation operation)`
  `Changes`
  `fail(String targetId, String failReason)`
  `Changes`
  `fail(String targetId, String failReason, boolean fromAbort)`
  `Changes`
  `fail(String targetId, String failReason, User user)`
  `Changes`
  `fail(String targetId, String failReason, User user, boolean fromAbort)`
  `boolean`
  `failureHandlerHasChanged(Task task)`
  `Comment`
  `findComment(String commentId)`
  `Set<String>`
  `freezeVariables(Changes changes, boolean freezeEvenIfUnresolved)`
  `Set<String>`
  `freezeVariablesInCustomFields(Map<String,ValueWithInterpolation> variables, Map<String,String> passwordVariables, Changes changes, boolean freezeEvenIfUnresolved)`
  To be overridden in child classes with custom fields that can contain variables.
  `static <T extends Task>
  T`
  `fromType(Type taskType)`
  `static <T extends Task>
  T`
  `fromType(String taskType)`
  `void`
  `generateExecutionId()`
  `String`
  `getAbortScript()`
  `List<Task>`
  `getAllTasks()`
  `List<Attachment>`
  `getAttachments()`
  `List<PlanItem>`
  `getChildren()`
  `Integer`
  `getCiUid()`
  `List<Comment>`
  `getComments()`
  `String`
  `getConfigurationUri()`
  `TaskContainer`
  `getContainer()`
  `int`
  `getDelayedCount()`
  `String`
  `getDisplayPath()`
  `String`
  `getDocumentationPage()`
  `double`
  `getElapsedDurationFraction()`
  `String`
  `getExecutionId()`
  `List<Facet>`
  `getFacets()`
  `String`
  `getFailureHandler()`
  `int`
  `getFailuresCount()`
  `int`
  `getFlaggedCount()`
  `List<Variable>`
  `getInputVariables()`
  `String`
  `getLastStatusChangeBy()`
  `int`
  `getMaxCommentSize()`
  `Date`
  `getOriginalScheduledStartDate()`
  `Phase`
  `getPhase()`
  `String`
  `getPrecondition()`
  `Set<String>`
  `getReferencedVariableKeys()`
  `List<Variable>`
  `getReferencedVariables()`
  `Release`
  `getRelease()`
  `String`
  `getReleaseOwner()`
  `Integer`
  `getReleaseUid()`
  `TaskStatus`
  `getStatus()`
  `List<String>`
  `getTags()`
  `TaskRecoverOp`
  `getTaskRecoverOp()`
  `Type`
  `getTaskType()`
  `String`
  `getTeam()`
  `protected List<String>`
  `getUnboundRequiredVariables()`
  `String`
  `getUrl()`
  `Map<String,String>`
  `getVariableMapping()`
  `List<UsagePoint>`
  `getVariableUsages()`
  `Set<String>`
  `getWatchers()`
  `boolean`
  `hasAbortScript()`
  `boolean`
  `hasBeenDelayed()`
  `boolean`
  `hasBeenFlagged()`
  `boolean`
  `hasBeenStarted()`
  `protected boolean`
  `hasFailureHandlerScript()`
  `protected boolean`
  `hasTaskRecoverOp()`
  `boolean`
  `hasTeam()`
  `boolean`
  `hasVariableMapping()`
  `boolean`
  `isAborted()`
  `boolean`
  `isAbortScriptInProgress()`
  `boolean`
  `isActive()`
  `boolean`
  `isAssignedTo(Team team)`
  `boolean`
  `isAutomated()`
  `boolean`
  `isCheckAttributes()`
  `boolean`
  `isCompletedInAdvance()`
  `static boolean`
  `isDefaultTaskType(Type type)`
  `boolean`
  `isDefunct()`
  `boolean`
  `isDelayDuringBlackout()`
  `boolean`
  `isDone()`
  `boolean`
  `isDoneInAdvance()`
  `boolean`
  `isDueSoon()`
  `boolean`
  `isDueSoonNotified()`
  `boolean`
  `isFacetInProgress()`
  `boolean`
  `isFailed()`
  `boolean`
  `isFailing()`
  `boolean`
  `isFailureHandlerEnabled()`
  `boolean`
  `isFailureHandlerInProgress()`
  `boolean`
  `isGate()`
  `boolean`
  `isInProgress()`
  `boolean`
  `isLocked()`
  `boolean`
  `isMovable()`
  `boolean`
  `isNotYetReached()`
  `boolean`
  `isParallelGroup()`
  `boolean`
  `isPending()`
  `boolean`
  `isPlanned()`
  `boolean`
  `isPostponedDueToBlackout()`
  `boolean`
  `isPostponedUntilEnvironmentsAreReserved()`
  `boolean`
  `isPreconditionEnabled()`
  `boolean`
  `isPreconditionInProgress()`
  `boolean`
  `isSkipped()`
  `boolean`
  `isSkippedInAdvance()`
  `boolean`
  `isStillExecutingScript(String executionId)`
  `boolean`
  `isSupportedInWorkflow()`
  `boolean`
  `isTaskFailureHandlerEnabled()`
  `boolean`
  `isTaskGroup()`
  `boolean`
  `isUpdatable()`
  `boolean`
  `isWaitForScheduledStartDate()`
  `boolean`
  `isWaitingForInput()`
  `void`
  `lock()`
  `Changes`
  `markAsDone(String targetId, TaskStatus status)`
  `boolean`
  `ownerHasBeenReassigned(Task task)`
  `Changes`
  `postponeUntilEnvironmentsAreReserved(Date postponeUntil)`
  `boolean`
  `preconditionHasChanged(Task task)`
  `void`
  `removeWatcher(String watcher)`
  `Changes`
  `reopen()`
  `void`
  `replaceTask(Task task)`
  `Changes`
  `resetToPlanned()`
  `Changes`
  `retry(String targetId)`
  `void`
  `setAttachments(List<Attachment> attachments)`
  `void`
  `setCheckAttributes(boolean checkAttributes)`
  `void`
  `setCiUid(Integer ciUid)`
  `void`
  `setConfigurationUri(String configurationUri)`
  `void`
  `setContainer(TaskContainer container)`
  `void`
  `setDelayDuringBlackout(boolean delayDuringBlackout)`
  `void`
  `setDocumentationPage(String documentationPage)`
  `void`
  `setDueSoonNotified(boolean dueSoonNotified)`
  `void`
  `setExecutionId(String executionId)`
  `void`
  `setFacets(List<Facet> facets)`
  `void`
  `setFailureHandler(String failureHandler)`
  `void`
  `setFailuresCount(int failuresCount)`
  `void`
  `setFlagStatus(FlagStatus flagStatus)`
  `void`
  `setHasBeenDelayed(boolean hasBeenDelayed)`
  `void`
  `setHasBeenFlagged(boolean hasBeenFlagged)`
  `void`
  `setLocked(boolean locked)`
  `void`
  `setMaxCommentSize(int maxCommentSize)`
  `void`
  `setOriginalScheduledStartDate(Date originalDate)`
  `void`
  `setPostponedDueToBlackout(boolean delay)`
  `Task`
  `setPostponedUntilEnvironmentsAreReserved(boolean postponedUntilEnvironmentsAreReserved)`
  `void`
  `setPrecondition(String precondition)`
  `void`
  `setReleaseUid(Integer releaseUid)`
  `void`
  `setScheduledStartDate(Date scheduledStartDate)`
  `void`
  `setStatus(TaskStatus status)`
  `void`
  `setSupportedInWorkflow(boolean supportedInWorkflow)`
  `void`
  `setTags(List<String> tags)`
  `void`
  `setTaskFailureHandlerEnabled(boolean taskFailureHandlerEnabled)`
  `void`
  `setTaskRecoverOp(TaskRecoverOp taskRecoverOp)`
  `void`
  `setTeam(String team)`
  `void`
  `setVariableMapping(Map<String,String> variableMapping)`
  `void`
  `setWaitForScheduledStartDate(boolean waitForScheduledStartDate)`
  `void`
  `setWatchers(Set<String> watchers)`
  `boolean`
  `shouldFacetBeChecked()`
  `protected boolean`
  `shouldFreezeVariableMapping(CiProperty property)`
  `boolean`
  `shouldNotifyDueSoon()`
  `boolean`
  `shouldPreconditionBeChecked()`
  `Changes`
  `start()`
  `protected Changes`
  `startNow(String targetId, boolean shouldBePending)`
  `Changes`
  `startPending(String targetId)`
  `Changes`
  `startWithInput()`
  `boolean`
  `teamHasBeenReassigned(Task task)`
  `void`
  `unlock()`
  `void`
  `updateComment(Comment originalComment, Comment updatedComment)`

  ### Methods inherited from class com.xebialabs.xlrelease.domain.PlanItem

  `calculateDueDate, checkDatesValidity, getActualDuration, getComputedPlannedDuration, getDescription, getDueDate, getEndDate, getEndOrDueDate, getFlagComment, getFlagStatus, getOrCalculateDueDate, getOwner, getPlannedDuration, getScheduledStartDate, getStartDate, getStartOrScheduledDate, getTitle, hasDueDate, hasEndDate, hasEndOrDueDate, hasOwner, hasOwner, hasPlannedDuration, hasScheduledStartDate, hasStartDate, hasStartOrScheduledDate, hasTitle, hasTitle, hasValidStartDates, isFlagged, isOverdue, isOverdueNotified, isTitleContaining, moveChildren, setDates, setDescription, setDueDate, setEndDate, setFlagComment, setOverdueNotified, setOwner, setPlannedDuration, setStartAndEndDatesIfEmpty, setStartDate, setTitle, shouldNotifyOverdue, updateDates, updateDuration`

  ### 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`

- ## Field Details

  - ### CATEGORY_INPUT

    public static final String CATEGORY_INPUT
    See Also:
      - Constant Field Values

  - ### CATEGORY_OUTPUT

    public static final String CATEGORY_OUTPUT
    See Also:
      - Constant Field Values

  - ### DUE_SOON_THRESHOLD

    public static final double DUE_SOON_THRESHOLD
    See Also:
      - Constant Field Values

  - ### UNKNOWN_TASK_TYPE

    public static final Type UNKNOWN_TASK_TYPE

  - ### team

    @Property(required=false, description="The name of the team this task is assigned to.") protected String team

  - ### waitForScheduledStartDate

    @Property(required=false, defaultValue="true", description="The task is not started until the scheduledStartDate is reached if set to true.") protected boolean waitForScheduledStartDate

  - ### delayDuringBlackout

    @Property(required=false, defaultValue="false", description="The task is to be delayed when a blackout period is active.") protected boolean delayDuringBlackout

  - ### postponedDueToBlackout

    @Property(required=false, category="internal", defaultValue="false", description="The task is postponed by a blackout period") protected boolean postponedDueToBlackout

  - ### postponedUntilEnvironmentsAreReserved

    @Property(required=false, category="internal", defaultValue="false", description="The task is waiting for environment(s) to be reserved") protected boolean postponedUntilEnvironmentsAreReserved

  - ### originalScheduledStartDate

    @Property(required=false, category="internal", description="The original scheduled start date.") protected Date originalScheduledStartDate

  - ### hasBeenFlagged

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

  - ### hasBeenDelayed

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

  - ### precondition

    @Property(required=false, description="A snippet of code that is evaluated when the task is started.") protected String precondition

  - ### failureHandler

    @Property(required=false, description="A snippet of code that is evaluated when the task is failed.") protected String failureHandler

  - ### taskFailureHandlerEnabled

    @Property(required=false, defaultValue="false", description="The failed script will be executed.") protected boolean taskFailureHandlerEnabled

  - ### taskRecoverOp

    @Property(required=false, description="Task recovery operation performed after task failure.") protected TaskRecoverOp taskRecoverOp

  - ### failuresCount

    @Property(description="The number of times this task has failed.") protected int failuresCount

  - ### executionId

    @Property(required=false, category="internal") protected String executionId

  - ### variableMapping

    @Property(asContainment=true, required=false, description="Map from property name to a variable name that replaces that property") protected Map<String,String> variableMapping

  - ### maxCommentSize

    @Property(hidden=true, category="internal", description="Maximum size of a comment on a task. Default value is 32768.", defaultValue="32768") protected int maxCommentSize

  - ### tags

    @Property(required=false, description="The tags of the task. Tags can be used for grouping and querying.") protected List<String> tags

  - ### IS_AUTOMATED_AND_IN_PROGRESS

    public static final Predicate<Task> IS_AUTOMATED_AND_IN_PROGRESS

- ## Constructor Details

  - ### Task

    public Task()

- ## Method Details

  - ### getConfigurationUri

    public String getConfigurationUri()

  - ### setConfigurationUri

    public void setConfigurationUri(String configurationUri)

  - ### getCiUid

    public Integer getCiUid()

  - ### setCiUid

    public void setCiUid(Integer ciUid)

  - ### getDocumentationPage

    public String getDocumentationPage()

  - ### setDocumentationPage

    public void setDocumentationPage(String documentationPage)

  - ### getComments

    public List<Comment> getComments()

  - ### getContainer

    public TaskContainer getContainer()

  - ### setContainer

    public void setContainer(TaskContainer container)

  - ### getStatus

    public TaskStatus getStatus()

  - ### setStatus

    public void setStatus(TaskStatus status)

  - ### getTeam

    public String getTeam()

  - ### hasTeam

    public boolean hasTeam()

  - ### setTeam

    public void setTeam(String team)

  - ### getWatchers

    public Set<String> getWatchers()

  - ### setWatchers

    public void setWatchers(Set<String> watchers)

  - ### addWatcher

    public void addWatcher(String watcher)

  - ### removeWatcher

    public void removeWatcher(String watcher)

  - ### setPrecondition

    public void setPrecondition(String precondition)

  - ### getPrecondition

    public String getPrecondition()

  - ### getFailureHandler

    public String getFailureHandler()

  - ### getAbortScript

    public String getAbortScript() throws IOException
    Throws:
      `IOException`

  - ### setFailureHandler

    public void setFailureHandler(String failureHandler)

  - ### isTaskFailureHandlerEnabled

    public boolean isTaskFailureHandlerEnabled()

  - ### setTaskFailureHandlerEnabled

    public void setTaskFailureHandlerEnabled(boolean taskFailureHandlerEnabled)

  - ### getTaskRecoverOp

    public TaskRecoverOp getTaskRecoverOp()

  - ### setTaskRecoverOp

    public void setTaskRecoverOp(TaskRecoverOp taskRecoverOp)

  - ### getTags

    public List<String> getTags()

  - ### setTags

    public void setTags(List<String> tags)

  - ### isCheckAttributes

    public boolean isCheckAttributes()

  - ### setCheckAttributes

    public void setCheckAttributes(boolean checkAttributes)

  - ### setVariableMapping

    public void setVariableMapping(Map<String,String> variableMapping)

  - ### getVariableMapping

    public Map<String,String> getVariableMapping()

  - ### hasVariableMapping

    public boolean hasVariableMapping()

  - ### setMaxCommentSize

    public void setMaxCommentSize(int maxCommentSize)

  - ### getMaxCommentSize

    public int getMaxCommentSize()

  - ### getLastStatusChangeBy

    public String getLastStatusChangeBy()

  - ### isDefaultTaskType

    public static boolean isDefaultTaskType(Type type)

  - ### fromType

    public static <T extends Task> T fromType(String taskType)

  - ### fromType

    public static <T extends Task> T fromType(Type taskType)

  - ### applyDefaults

    protected void applyDefaults()

  - ### getPhase

    public Phase getPhase()

  - ### start

    public Changes start()

  - ### canStartNow

    public boolean canStartNow()

  - ### canScheduleTaskStart

    public boolean canScheduleTaskStart()

  - ### startPending

    public Changes startPending(String targetId)

  - ### startWithInput

    public Changes startWithInput()

  - ### retry

    public Changes retry(String targetId)

  - ### setScheduledStartDate

    public void setScheduledStartDate(Date scheduledStartDate)
    Overrides:
      `setScheduledStartDate` in class `PlanItem`

  - ### startNow

    protected Changes startNow(String targetId, boolean shouldBePending)

  - ### execute

    protected Changes execute(String targetId, TaskStartOrRetryOperation operation)

  - ### shouldFacetBeChecked

    public boolean shouldFacetBeChecked()

  - ### canBeBackup

    public boolean canBeBackup()

  - ### shouldPreconditionBeChecked

    public boolean shouldPreconditionBeChecked()

  - ### postponeUntilEnvironmentsAreReserved

    public Changes postponeUntilEnvironmentsAreReserved(Date postponeUntil)

  - ### markAsDone

    public Changes markAsDone(String targetId, TaskStatus status)
    Parameters:
      `targetId` - since tasks nest, this can either be the id of this task or the id of one of its children

  - ### fail

    public Changes fail(String targetId, String failReason)

  - ### fail

    public Changes fail(String targetId, String failReason, User user)

  - ### fail

    public Changes fail(String targetId, String failReason, boolean fromAbort)

  - ### fail

    public Changes fail(String targetId, String failReason, User user, boolean fromAbort)

  - ### reopen

    public Changes reopen()

  - ### abort

    public Changes abort()

  - ### hasBeenStarted

    public boolean hasBeenStarted()
    Specified by:
      `hasBeenStarted` in class `PlanItem`

  - ### hasBeenFlagged

    public boolean hasBeenFlagged()

  - ### getFlaggedCount

    public int getFlaggedCount()

  - ### getDelayedCount

    public int getDelayedCount()

  - ### hasBeenDelayed

    public boolean hasBeenDelayed()

  - ### getFailuresCount

    public int getFailuresCount()

  - ### setHasBeenFlagged

    public void setHasBeenFlagged(boolean hasBeenFlagged)

  - ### setHasBeenDelayed

    public void setHasBeenDelayed(boolean hasBeenDelayed)

  - ### setFailuresCount

    public void setFailuresCount(int failuresCount)

  - ### isDone

    public boolean isDone()
    Specified by:
      `isDone` in class `PlanItem`

  - ### isDoneInAdvance

    public boolean isDoneInAdvance()

  - ### isDefunct

    public boolean isDefunct()

  - ### isUpdatable

    public boolean isUpdatable()
    Specified by:
      `isUpdatable` in class `PlanItem`

  - ### isAborted

    public boolean isAborted()
    Specified by:
      `isAborted` in class `PlanItem`

  - ### isNotYetReached

    public boolean isNotYetReached()

  - ### isPlanned

    public boolean isPlanned()

  - ### isActive

    public boolean isActive()
    Specified by:
      `isActive` in class `PlanItem`

  - ### isInProgress

    public boolean isInProgress()

  - ### isPending

    public boolean isPending()

  - ### isWaitingForInput

    public boolean isWaitingForInput()

  - ### isFailed

    public boolean isFailed()

  - ### isFailing

    public boolean isFailing()

  - ### isCompletedInAdvance

    public boolean isCompletedInAdvance()

  - ### isSkipped

    public boolean isSkipped()

  - ### isSkippedInAdvance

    public boolean isSkippedInAdvance()

  - ### isPreconditionInProgress

    public boolean isPreconditionInProgress()

  - ### isFailureHandlerInProgress

    public boolean isFailureHandlerInProgress()

  - ### isAbortScriptInProgress

    public boolean isAbortScriptInProgress()

  - ### isFacetInProgress

    public boolean isFacetInProgress()

  - ### hasFailureHandlerScript

    protected boolean hasFailureHandlerScript()

  - ### hasAbortScript

    public boolean hasAbortScript()

  - ### hasTaskRecoverOp

    protected boolean hasTaskRecoverOp()

  - ### isMovable

    public boolean isMovable()

  - ### isAssignedTo

    public boolean isAssignedTo(Team team)

  - ### isGate

    public boolean isGate()

  - ### isTaskGroup

    public boolean isTaskGroup()

  - ### isParallelGroup

    public boolean isParallelGroup()

  - ### getAttachments

    public List<Attachment> getAttachments()

  - ### setAttachments

    public void setAttachments(List<Attachment> attachments)

  - ### isPreconditionEnabled

    public boolean isPreconditionEnabled()

  - ### isFailureHandlerEnabled

    public boolean isFailureHandlerEnabled()

  - ### getExecutionId

    public String getExecutionId()

  - ### setExecutionId

    public void setExecutionId(String executionId)

  - ### generateExecutionId

    public void generateExecutionId()

  - ### deleteAttachment

    public void deleteAttachment(String attachmentId)

  - ### resetToPlanned

    public Changes resetToPlanned()

  - ### setFlagStatus

    public void setFlagStatus(FlagStatus flagStatus)
    Overrides:
      `setFlagStatus` in class `PlanItem`

  - ### getRelease

    public Release getRelease()
    Specified by:
      `getRelease` in class `PlanItem`

  - ### getReleaseUid

    public Integer getReleaseUid()
    Specified by:
      `getReleaseUid` in class `PlanItem`

  - ### setReleaseUid

    public void setReleaseUid(Integer releaseUid)
    Specified by:
      `setReleaseUid` in class `PlanItem`

  - ### getDisplayPath

    public String getDisplayPath()
    Specified by:
      `getDisplayPath` in class `PlanItem`

  - ### getReleaseOwner

    public String getReleaseOwner()

  - ### getAllTasks

    public List<Task> getAllTasks()

  - ### getChildren

    public List<PlanItem> getChildren()
    Specified by:
      `getChildren` in class `PlanItem`

  - ### accept

    public void accept(ReleaseVisitor visitor)
    Specified by:
      `accept` in interface `VisitableItem`

  - ### getVariableUsages

    public List<UsagePoint> getVariableUsages()
    Specified by:
      `getVariableUsages` in class `PlanItem`

  - ### freezeVariables

    public Set<String> freezeVariables(Changes changes, boolean freezeEvenIfUnresolved)

  - ### shouldFreezeVariableMapping

    protected boolean shouldFreezeVariableMapping(CiProperty property)

  - ### getInputVariables

    public List<Variable> getInputVariables()

  - ### getReferencedVariables

    public List<Variable> getReferencedVariables()

  - ### getReferencedVariableKeys

    public Set<String> getReferencedVariableKeys()

  - ### getUnboundRequiredVariables

    protected List<String> getUnboundRequiredVariables()

  - ### freezeVariablesInCustomFields

    public Set<String> freezeVariablesInCustomFields(Map<String,ValueWithInterpolation> variables, Map<String,String> passwordVariables, Changes changes, boolean freezeEvenIfUnresolved)

    To be overridden in child classes with custom fields that can contain variables.

    Apply `VariableHelper.replaceAll(Object, Map, Set, boolean)` to each field; if child entities are modified, add them to `changes`.

  - ### isWaitForScheduledStartDate

    public boolean isWaitForScheduledStartDate()

  - ### setWaitForScheduledStartDate

    public void setWaitForScheduledStartDate(boolean waitForScheduledStartDate)

  - ### isDelayDuringBlackout

    public boolean isDelayDuringBlackout()

  - ### setDelayDuringBlackout

    public void setDelayDuringBlackout(boolean delayDuringBlackout)

  - ### checkDatesValidity

    public void checkDatesValidity()

  - ### isAutomated

    public boolean isAutomated()

  - ### ownerHasBeenReassigned

    public boolean ownerHasBeenReassigned(Task task)

  - ### teamHasBeenReassigned

    public boolean teamHasBeenReassigned(Task task)

  - ### delayDuringBlackoutHasChanged

    public boolean delayDuringBlackoutHasChanged(Task task)

  - ### failureHandlerHasChanged

    public boolean failureHandlerHasChanged(Task task)

  - ### preconditionHasChanged

    public boolean preconditionHasChanged(Task task)

  - ### getTaskType

    public Type getTaskType()

  - ### isStillExecutingScript

    public boolean isStillExecutingScript(String executionId)

  - ### isPostponedDueToBlackout

    public boolean isPostponedDueToBlackout()

  - ### setPostponedDueToBlackout

    public void setPostponedDueToBlackout(boolean delay)

  - ### getOriginalScheduledStartDate

    public Date getOriginalScheduledStartDate()

  - ### setOriginalScheduledStartDate

    public void setOriginalScheduledStartDate(Date originalDate)

  - ### isDueSoon

    public boolean isDueSoon()

  - ### getElapsedDurationFraction

    public double getElapsedDurationFraction()

  - ### shouldNotifyDueSoon

    public boolean shouldNotifyDueSoon()

  - ### isDueSoonNotified

    public boolean isDueSoonNotified()

  - ### setDueSoonNotified

    public void setDueSoonNotified(boolean dueSoonNotified)

  - ### deleteTask

    public void deleteTask(Task task)

  - ### replaceTask

    public void replaceTask(Task task)

  - ### findComment

    public Comment findComment(String commentId)

  - ### updateComment

    public void updateComment(Comment originalComment, Comment updatedComment)

  - ### clearComments

    public void clearComments()

  - ### clearModificationAttributes

    public void clearModificationAttributes()

  - ### isLocked

    public boolean isLocked()
    Specified by:
      `isLocked` in interface `Lockable`

  - ### setLocked

    public void setLocked(boolean locked)
    Specified by:
      `setLocked` in interface `Lockable`

  - ### lock

    public void lock()
    Specified by:
      `lock` in interface `Lockable`

  - ### unlock

    public void unlock()
    Specified by:
      `unlock` in interface `Lockable`

  - ### isSupportedInWorkflow

    public boolean isSupportedInWorkflow()

  - ### setSupportedInWorkflow

    public void setSupportedInWorkflow(boolean supportedInWorkflow)

  - ### getFacets

    public List<Facet> getFacets()

  - ### setFacets

    public void setFacets(List<Facet> facets)

  - ### getUrl

    public String getUrl()

  - ### isPostponedUntilEnvironmentsAreReserved

    public boolean isPostponedUntilEnvironmentsAreReserved()

  - ### setPostponedUntilEnvironmentsAreReserved

    public Task setPostponedUntilEnvironmentsAreReserved(boolean postponedUntilEnvironmentsAreReserved)