Package com.atlassian.bamboo.plan.cache
Class AbstractImmutablePlan
- java.lang.Object
-
- com.atlassian.bamboo.plan.cache.AbstractImmutablePlan
-
- All Implemented Interfaces:
BambooIdProvider,ImmutableEntityWithOid,ImmutableDeletable,ImmutablePlan,PlanIdentifier,PlanKeyProvider,DescriptionProvider,NameProvider,Versionable,Comparable<ImmutablePlan>
- Direct Known Subclasses:
AbstractImmutableChain,ImmutableJobImpl
public abstract class AbstractImmutablePlan extends Object implements ImmutablePlan, Comparable<ImmutablePlan>
-
-
Field Summary
Fields Modifier and Type Field Description protected io.atlassian.util.concurrent.ResettableLazyReference<Long>averageBuildDurationprotected BuildDefinitionbuildDefinitionprotected ResultsSummaryManagerresultsSummaryManager-
Fields inherited from interface com.atlassian.bamboo.plan.cache.ImmutablePlan
MAX_PREVIOUS_BUILD_FOR_AVE, STATUS_CURRENTLY_BUILDING, STATUS_FAIL, STATUS_NO_BUILDS, STATUS_NOT_RUN, STATUS_SUCCESS
-
Fields inherited from interface com.atlassian.bamboo.plan.PlanIdentifier
NAME_DELIMITER
-
Fields inherited from interface com.atlassian.bamboo.plan.PlanKeyProvider
getPlanKey
-
-
Constructor Summary
Constructors Modifier Constructor Description protectedAbstractImmutablePlan(@Nullable Long databaseId, @NotNull ImmutablePlan plan, @NotNull PlanKey planKey, @NotNull String name, BuildLoggerManager buildLoggerManager, @NotNull LabelManager labelManager, VariableDefinitionManager variableDefinitionManager, @NotNull BuildDefinition buildDefinition, ResultsSummaryManager resultsSummaryManager)AbstractImmutablePlan(@Nullable Long databaseId, @NotNull ImmutablePlan plan, BuildLoggerManager buildLoggerManager, @NotNull LabelManager labelManager, VariableDefinitionManager variableDefinitionManager, @NotNull BuildDefinition buildDefinition, ResultsSummaryManager resultsSummaryManager)protectedAbstractImmutablePlan(Long id, EnrichedPlanDto dto, PlanKey planKey, String name, BuildLoggerManager buildLoggerManager, VariableDefinitionManager variableDefinitionManager, ResultsSummaryManager resultsSummaryManager)
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description intcompareTo(ImmutablePlan plan)booleanequals(Object o)protected voidexceptionOnModification()longgetAverageBuildDuration()Returns an average duration of the recent builds@NotNull BuildDefinitiongetBuildDefinition()Returns theBuildDefinitionthat backs thisPlan@NotNull StringgetBuildKey()This objects specific portion of the key.@NotNull BuildLoggergetBuildLogger()Returns the helper object to deal with logging@NotNull StringgetBuildName()@NotNull StringgetCurrentStatus()@NotNull Optional<Long>getDatabaseId()StringgetDescription()@NotNull List<VariableDefinition>getEffectiveVariables()Return effective list ofVariableDefinitions bind to this Plan.intgetFirstBuildNumber()What the number of the first build we have?longgetId()Returns database id of the plan.@NotNull StringgetKey()Obtain the plan's unique key (uppercase alphanumeric).@NotNull List<Labelling>getLabellings()@NotNull List<String>getLabelNames()intgetLastBuildNumber()What was the number of the latest build (may be being built)longgetMasterId()@NotNull Optional<Long>getMasterIdIfExists()@NotNull StringgetName()Returns the full name for the build in the form of "project name - build name" e.g.BambooEntityOidgetOid()OID assigned to this object.@NotNull PlanKeygetPlanKey()@NotNull PlanTypegetPlanType()@NotNull ProjectgetProject()Returns the parentProject@NotNull List<Labelling>getRelatedLabellings()@NotNull StringgetType()Returns the string representation of the type.@NotNull List<VariableDefinition>getVariables()Return list ofVariableDefinitions bind to this Plan@NotNull LonggetVersion()Returns the version number of this object.inthashCode()booleanhasMaster()booleanisMarkedForDeletion()Is the plan set to be deleted in the futurebooleanisSuspendedFromBuilding()Checks if the build has been enabled / disabled.abstract voidresetLatestResultsSummary(int latestKnownBuildNumber, boolean resetAverageBuildDuration)protected voidresetLatestResultsSummary(io.atlassian.util.concurrent.ResettableLazyReference<? extends ImmutableResultsSummary> latestResultsSummary, int latestKnownBuildNumber, boolean resetAverageBuildDuration)-
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface com.atlassian.bamboo.core.ImmutableEntityWithOid
getEntityType
-
Methods inherited from interface com.atlassian.bamboo.plan.cache.ImmutablePlan
getLatestResultsSummary, getMaster, isActive, isBusy, isExecuting
-
-
-
-
Field Detail
-
buildDefinition
protected BuildDefinition buildDefinition
-
resultsSummaryManager
protected final ResultsSummaryManager resultsSummaryManager
-
averageBuildDuration
protected io.atlassian.util.concurrent.ResettableLazyReference<Long> averageBuildDuration
-
-
Constructor Detail
-
AbstractImmutablePlan
public AbstractImmutablePlan(@Nullable @Nullable Long databaseId, @NotNull @NotNull ImmutablePlan plan, BuildLoggerManager buildLoggerManager, @NotNull @NotNull LabelManager labelManager, VariableDefinitionManager variableDefinitionManager, @NotNull @NotNull BuildDefinition buildDefinition, ResultsSummaryManager resultsSummaryManager)
-
AbstractImmutablePlan
protected AbstractImmutablePlan(@Nullable @Nullable Long databaseId, @NotNull @NotNull ImmutablePlan plan, @NotNull @NotNull PlanKey planKey, @NotNull @NotNull String name, BuildLoggerManager buildLoggerManager, @NotNull @NotNull LabelManager labelManager, VariableDefinitionManager variableDefinitionManager, @NotNull @NotNull BuildDefinition buildDefinition, ResultsSummaryManager resultsSummaryManager)
-
AbstractImmutablePlan
protected AbstractImmutablePlan(Long id, EnrichedPlanDto dto, PlanKey planKey, String name, BuildLoggerManager buildLoggerManager, VariableDefinitionManager variableDefinitionManager, ResultsSummaryManager resultsSummaryManager)
-
-
Method Detail
-
getId
public long getId()
Description copied from interface:PlanIdentifierReturns database id of the plan. Use ofPlanIdentifier.getDatabaseId()should be preferred.- Specified by:
getIdin interfaceBambooIdProvider- Specified by:
getIdin interfacePlanIdentifier
-
getDatabaseId
@NotNull public @NotNull Optional<Long> getDatabaseId()
- Specified by:
getDatabaseIdin interfacePlanIdentifier- Returns:
- database id of the plan or empty if this plan is not a DB object.
-
getDescription
public String getDescription()
- Specified by:
getDescriptionin interfaceDescriptionProvider
-
getPlanKey
@NotNull public @NotNull PlanKey getPlanKey()
Description copied from interface:PlanIdentifier- Specified by:
getPlanKeyin interfacePlanIdentifier- Specified by:
getPlanKeyin interfacePlanKeyProvider- Returns:
- planKey
-
getKey
@NotNull public @NotNull String getKey()
Description copied from interface:ImmutablePlanObtain the plan's unique key (uppercase alphanumeric). This includes the project prefix e.g. BAM-MAIN. PreferPlanIdentifier.getPlanKey()- Specified by:
getKeyin interfaceImmutablePlan- Returns:
- The full key
-
getBuildKey
@NotNull public @NotNull String getBuildKey()
Description copied from interface:PlanIdentifierThis objects specific portion of the key. You probably want to usePlanIdentifier.getPlanKey().- Specified by:
getBuildKeyin interfacePlanIdentifier- Returns:
- This objects specific portion of the key
-
getName
@NotNull public @NotNull String getName()
Description copied from interface:PlanIdentifierReturns the full name for the build in the form of "project name - build name" e.g. "Confluence - HEAD"- Specified by:
getNamein interfaceDescriptionProvider- Specified by:
getNamein interfaceNameProvider- Specified by:
getNamein interfacePlanIdentifier- Returns:
- String
-
getBuildName
@NotNull public @NotNull String getBuildName()
- Specified by:
getBuildNamein interfacePlanIdentifier- Returns:
- The plan specific portion of the name (without the project and/or parent's names). You probably want to use
PlanIdentifier.getName()
-
getPlanType
@NotNull public @NotNull PlanType getPlanType()
- Specified by:
getPlanTypein interfacePlanIdentifier- Returns:
- the type of this plan
-
getType
@NotNull public @NotNull String getType()
Description copied from interface:ImmutablePlanReturns the string representation of the type. SeePlanTypeand used in Freemarker.- Specified by:
getTypein interfaceImmutablePlan- Returns:
- the string representation of the type
-
isMarkedForDeletion
public boolean isMarkedForDeletion()
Description copied from interface:ImmutablePlanIs the plan set to be deleted in the future- Specified by:
isMarkedForDeletionin interfaceImmutableDeletable- Specified by:
isMarkedForDeletionin interfaceImmutablePlan- Returns:
- Whether or not the Object has been marked for deletion
-
hasMaster
public boolean hasMaster()
- Specified by:
hasMasterin interfaceImmutablePlan- Returns:
- true if plan has a master plan
-
getVariables
@NotNull public @NotNull List<VariableDefinition> getVariables()
Description copied from interface:ImmutablePlanReturn list ofVariableDefinitions bind to this Plan- Specified by:
getVariablesin interfaceImmutablePlan- Returns:
- non-null list of
VariableDefinition
-
getEffectiveVariables
@NotNull public @NotNull List<VariableDefinition> getEffectiveVariables()
Description copied from interface:ImmutablePlanReturn effective list ofVariableDefinitions bind to this Plan. For master Plans this will return the same result asImmutablePlan.getVariables(). Non-master plans will produce the sum of: - all master's variables which keys do not appear in result ofImmutablePlan.getVariables()- result ofImmutablePlan.getVariables()- Specified by:
getEffectiveVariablesin interfaceImmutablePlan- Returns:
- non-null list of
VariableDefinition
-
isSuspendedFromBuilding
public boolean isSuspendedFromBuilding()
Description copied from interface:PlanIdentifierChecks if the build has been enabled / disabled.- Specified by:
isSuspendedFromBuildingin interfacePlanIdentifier- Returns:
- true if plan is disabled
-
getFirstBuildNumber
public int getFirstBuildNumber()
Description copied from interface:ImmutablePlanWhat the number of the first build we have? It may not be 1 as some may have been removed!- Specified by:
getFirstBuildNumberin interfaceImmutablePlan- Returns:
- The number of the first build
-
getLastBuildNumber
public int getLastBuildNumber()
Description copied from interface:ImmutablePlanWhat was the number of the latest build (may be being built)- Specified by:
getLastBuildNumberin interfaceImmutablePlan- Returns:
- the build number, zero if the build has not been built
-
getBuildDefinition
@NotNull public @NotNull BuildDefinition getBuildDefinition()
Description copied from interface:ImmutablePlanReturns theBuildDefinitionthat backs thisPlan- Specified by:
getBuildDefinitionin interfaceImmutablePlan- Returns:
BuildDefinitionobject.
-
getProject
@NotNull public @NotNull Project getProject()
Description copied from interface:ImmutablePlanReturns the parentProject- Specified by:
getProjectin interfaceImmutablePlan- Specified by:
getProjectin interfacePlanIdentifier- Returns:
Project. Never null
-
getAverageBuildDuration
public long getAverageBuildDuration()
Description copied from interface:ImmutablePlanReturns an average duration of the recent builds- Specified by:
getAverageBuildDurationin interfaceImmutablePlan- Returns:
- The duration in milliseconds
-
getMasterId
public long getMasterId()
- Specified by:
getMasterIdin interfacePlanIdentifier- Returns:
- database id of master of this Plan or -1 if none.
-
getMasterIdIfExists
@NotNull public @NotNull Optional<Long> getMasterIdIfExists()
- Specified by:
getMasterIdIfExistsin interfacePlanIdentifier- Returns:
- database id of master of this Plan or empty if none.
-
getLabelNames
@NotNull public @NotNull List<String> getLabelNames()
- Specified by:
getLabelNamesin interfaceImmutablePlan- Returns:
- all the names of related labels with a namespace of :label
-
getCurrentStatus
@NotNull public @NotNull String getCurrentStatus()
- Specified by:
getCurrentStatusin interfaceImmutablePlan- Returns:
- a string key as to what the status is. Can be "success", "failure", "current", "none" or "notRun". Mainly used for UI purposes.
-
getOid
public BambooEntityOid getOid()
Description copied from interface:ImmutableEntityWithOidOID assigned to this object. TheBambooEntityOid.getEntityType()should be the same as this object'sImmutableEntityWithOid.getEntityType().- Specified by:
getOidin interfaceImmutableEntityWithOid
-
getVersion
@NotNull public @NotNull Long getVersion()
Description copied from interface:VersionableReturns the version number of this object.- Specified by:
getVersionin interfaceVersionable- Returns:
- the version number
-
resetLatestResultsSummary
@Internal public abstract void resetLatestResultsSummary(int latestKnownBuildNumber, boolean resetAverageBuildDuration)
-
exceptionOnModification
protected void exceptionOnModification()
-
getBuildLogger
@NotNull public @NotNull BuildLogger getBuildLogger()
Description copied from interface:ImmutablePlanReturns the helper object to deal with logging- Specified by:
getBuildLoggerin interfaceImmutablePlan- Returns:
- A
BuildLogger.
-
compareTo
public int compareTo(ImmutablePlan plan)
- Specified by:
compareToin interfaceComparable<ImmutablePlan>
-
resetLatestResultsSummary
protected void resetLatestResultsSummary(io.atlassian.util.concurrent.ResettableLazyReference<? extends ImmutableResultsSummary> latestResultsSummary, int latestKnownBuildNumber, boolean resetAverageBuildDuration)
-
-