Package com.atlassian.bamboo.plan.cache
Interface ImmutablePlan
- All Superinterfaces:
BambooIdProvider,DescriptionProvider,ImmutableDeletable,ImmutableEntityWithOid,NameProvider,PlanIdentifier,PlanKeyProvider,Versionable
- All Known Subinterfaces:
Buildable,Chain,ChainBranch,ImmutableBuildable,ImmutableChain,ImmutableChainBranch,ImmutableJob,ImmutableTopLevelPlan,Job,Plan,TopLevelPlan
- All Known Implementing Classes:
AbstractChain,AbstractImmutableChain,AbstractImmutablePlan,AbstractPlan,ChainBranchImpl,DefaultChain,DefaultJob,ImmutableChainBranchImpl,ImmutableChainImpl,ImmutableJobImpl
public interface ImmutablePlan
extends PlanIdentifier, ImmutableDeletable, ImmutableEntityWithOid, Versionable
Represents a
Plan that is immutable. Since 3.4, all new uses of Chains should prefer this interface
to improve cacheability.- Since:
- v3.4
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final intstatic final Stringstatic final Stringstatic final Stringstatic final Stringstatic final StringFields inherited from interface com.atlassian.bamboo.plan.PlanIdentifier
NAME_DELIMITERFields inherited from interface com.atlassian.bamboo.plan.PlanKeyProvider
getPlanKey -
Method Summary
Modifier and TypeMethodDescriptionlongReturns an average duration of the recent builds@NotNull BuildDefinitionReturns theBuildDefinitionthat backs thisPlan@NotNull BuildLoggerReturns the helper object to deal with logging@NotNull String@NotNull List<VariableDefinition>Return effective list ofVariableDefinitions bind to this Plan.intWhat the number of the first build we have?@NotNull StringgetKey()Obtain the plan's unique key (uppercase alphanumeric).intWhat was the number of the latest build (may be being built)@Nullable ImmutableResultsSummaryGet the latest finished result@Nullable ImmutablePlanReturn the master plan if one exists.@NotNull ProjectReturns the parentProject@NotNull StringgetType()Deprecated.@NotNull List<VariableDefinition>Return list ofVariableDefinitions bind to this PlanbooleanbooleanisActive()Deprecated.since 4.0 useChainExecutionAccessor.isActive(PlanKey)booleanisBusy()Deprecated.since 4.0 usePlanExecutionManager.isBusy(PlanKey)booleanDeprecated.since 6.10 useChainExecutionAccessor.isExecuting(PlanKey)booleanIs the plan set to be deleted in the futureMethods inherited from interface com.atlassian.bamboo.utils.DescriptionProvider
getDescriptionMethods inherited from interface com.atlassian.bamboo.core.ImmutableEntityWithOid
getEntityType, getOidMethods inherited from interface com.atlassian.bamboo.plan.PlanIdentifier
getBuildKey, getBuildName, getDatabaseId, getId, getMasterId, getMasterIdIfExists, getName, getPlanKey, getPlanType, isSuspendedFromBuildingMethods inherited from interface com.atlassian.bamboo.versioning.Versionable
getVersion
-
Field Details
-
MAX_PREVIOUS_BUILD_FOR_AVE
static final int MAX_PREVIOUS_BUILD_FOR_AVE- See Also:
-
STATUS_FAIL
- See Also:
-
STATUS_SUCCESS
- See Also:
-
STATUS_CURRENTLY_BUILDING
- See Also:
-
STATUS_NO_BUILDS
- See Also:
-
STATUS_NOT_RUN
- See Also:
-
-
Method Details
-
getType
Deprecated.UsePlanIdentifier.getPlanType()instead. Since v4.0.Returns the string representation of the type. SeePlanTypeand used in Freemarker.- Returns:
- the string representation of the type
-
getKey
Obtain the plan's unique key (uppercase alphanumeric). This includes the project prefix e.g. BAM-MAIN. PreferPlanIdentifier.getPlanKey()- Returns:
- The full key
-
getCurrentStatus
- Returns:
- a string key as to what the status is. Can be "success", "failure", "current", "none" or "notRun". Mainly used for UI purposes.
-
isExecuting
Deprecated.since 6.10 useChainExecutionAccessor.isExecuting(PlanKey)Is the build currently being executed?- Returns:
- true if build is being executed
-
getBuildLogger
Returns the helper object to deal with logging- Returns:
- A
BuildLogger.
-
isActive
Deprecated.since 4.0 useChainExecutionAccessor.isActive(PlanKey)Is the plan queued or building? -
isBusy
Deprecated.since 4.0 usePlanExecutionManager.isBusy(PlanKey)Is thePlan"busy". Busy is defined by the plan having a lock held on it. This is done during change detection, dependency listner and the like- Returns:
- busy
-
getFirstBuildNumber
int getFirstBuildNumber()What the number of the first build we have? It may not be 1 as some may have been removed!- Returns:
- The number of the first build
-
getLastBuildNumber
int getLastBuildNumber()What was the number of the latest build (may be being built)- Returns:
- the build number, zero if the build has not been built
-
getAverageBuildDuration
long getAverageBuildDuration()Returns an average duration of the recent builds- Returns:
- The duration in milliseconds
-
isMarkedForDeletion
boolean isMarkedForDeletion()Is the plan set to be deleted in the future- Specified by:
isMarkedForDeletionin interfaceImmutableDeletable- Returns:
- Whether or not the Object has been marked for deletion
-
getBuildDefinition
Returns theBuildDefinitionthat backs thisPlan- Returns:
BuildDefinitionobject.
-
getProject
Returns the parentProject- Specified by:
getProjectin interfacePlanIdentifier- Returns:
Project. Never null
-
getLabelNames
- Returns:
- all the names of related labels with a namespace of :label
-
getLatestResultsSummary
Get the latest finished result- Returns:
- The summary info for the last completed build. Returns null if there are no build results for this plan
-
getVariables
Return list ofVariableDefinitions bind to this Plan- Returns:
- non-null list of
VariableDefinition
-
getEffectiveVariables
Return effective list ofVariableDefinitions bind to this Plan. For master Plans this will return the same result asgetVariables(). Non-master plans will produce the sum of: - all master's variables which keys do not appear in result ofgetVariables()- result ofgetVariables()- Returns:
- non-null list of
VariableDefinition
-
getMaster
Return the master plan if one exists. The master is the plan which this one is derived from. Configuration is pulled from the master if one exists.- Returns:
- the master
Planif one exists.
-
hasMaster
boolean hasMaster()- Returns:
- true if plan has a master plan, meaning it is a plan branch or a job present on a plan branch
-
PlanIdentifier.getPlanType()instead.