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 Details

  • Method Details

    • getType

      @NotNull @Deprecated @NotNull String getType()
      Deprecated.
      Use PlanIdentifier.getPlanType() instead. Since v4.0.
      Returns the string representation of the type. See PlanType and used in Freemarker.
      Returns:
      the string representation of the type
    • getKey

      @NotNull @NotNull String getKey()
      Obtain the plan's unique key (uppercase alphanumeric). This includes the project prefix e.g. BAM-MAIN. Prefer PlanIdentifier.getPlanKey()
      Returns:
      The full key
    • getCurrentStatus

      @NotNull @NotNull String 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 boolean isExecuting()
      Is the build currently being executed?
      Returns:
      true if build is being executed
    • getBuildLogger

      @NotNull @NotNull BuildLogger getBuildLogger()
      Returns the helper object to deal with logging
      Returns:
      A BuildLogger.
    • isActive

      @Deprecated boolean isActive()
      Deprecated.
      Is the plan queued or building?
    • isBusy

      @Deprecated boolean isBusy()
      Deprecated.
      Is the Plan "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:
      isMarkedForDeletion in interface ImmutableDeletable
      Returns:
      Whether or not the Object has been marked for deletion
    • getBuildDefinition

      @NotNull @NotNull BuildDefinition getBuildDefinition()
      Returns the BuildDefinition that backs this Plan
      Returns:
      BuildDefinition object.
    • getProject

      @NotNull @NotNull Project getProject()
      Returns the parent Project
      Specified by:
      getProject in interface PlanIdentifier
      Returns:
      Project. Never null
    • getLabelNames

      @NotNull @NotNull List<String> getLabelNames()
      Returns:
      all the names of related labels with a namespace of :label
    • getLatestResultsSummary

      @Nullable @Nullable ImmutableResultsSummary 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

      @NotNull @NotNull List<VariableDefinition> getVariables()
      Return list of VariableDefinitions bind to this Plan
      Returns:
      non-null list of VariableDefinition
    • getEffectiveVariables

      @NotNull @NotNull List<VariableDefinition> getEffectiveVariables()
      Return effective list of VariableDefinitions bind to this Plan. For master Plans this will return the same result as getVariables(). Non-master plans will produce the sum of: - all master's variables which keys do not appear in result of getVariables() - result of getVariables()
      Returns:
      non-null list of VariableDefinition
    • getMaster

      @Nullable @Nullable ImmutablePlan 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 Plan if one exists.
    • hasMaster

      boolean hasMaster()
      Returns:
      true if plan has a master plan