|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object com.atlassian.bamboo.plan.PlanManagerImpl
public class PlanManagerImpl
Constructor Summary | |
---|---|
PlanManagerImpl(PlanDao planDao,
BambooLicenseManager bambooLicenseManager,
com.atlassian.event.EventManager eventManager,
ProjectManager projectManager)
|
Method Summary | ||
---|---|---|
boolean |
assertPlanPermission(Plan plan)
Used to validate user permission for plan. |
|
void |
createPlan(Plan plan)
Same as savePlan, but create permissions used instead of edit permissions. |
|
void |
deletePlan(Plan plan)
Removes the plan object from the database. |
|
java.util.Set<TopLevelPlan> |
filterFavouritedPlans(java.util.Collection<TopLevelPlan> plans,
com.atlassian.user.User user)
Return a set of Build s that are a subset of the given TopLevelPlan s collection that are favourited by the User |
|
java.util.List<TopLevelPlan> |
getAllPlans()
Returns all TopLevelPlan 's |
|
|
getAllPlans(java.lang.Class<T> planType)
Returns all Plan 's filtered by Class |
|
|
getAllPlansByProject(Project project,
java.lang.Class<T> planType)
Returns all Plan 's filtered by Project and Class , including the plans
marked for deletion. |
|
|
getAllPlansForClone(java.lang.Class<T> planType)
Returns all Plan 's filtered by Class
Return list filtered to show only plans the current user is allowed to clone. |
|
|
getAllPlansMarkedForDeletion(java.lang.Class<T> planType)
Returns a list of Plan s that are com.atlassian.bamboo.plan.Plan#markForDeletion() for the given type |
|
java.util.List<TopLevelPlan> |
getAllPlansUnrestricted()
Returns all TopLevelPlan 's ignoring permissions |
|
java.util.Set<TopLevelPlan> |
getFavouritePlans(com.atlassian.user.User user)
|
|
Plan |
getPlanById(long id)
Returns a Plan by its id |
|
|
getPlanById(long id,
java.lang.Class<T> planType)
Returns a Plan by its id and Class |
|
Plan |
getPlanByKey(PlanKey planKey)
Returns a Plan by its PlanKey |
|
|
getPlanByKey(PlanKey planKey,
java.lang.Class<T> planType)
Returns a Plan by its PlanKey and Class |
|
Plan |
getPlanByKey(java.lang.String planKey)
Returns a Plan by its planKey |
|
|
getPlanByKey(java.lang.String planKey,
java.lang.Class<T> planType)
Returns a Plan by its planKey and Class |
|
|
getPlanByKeyIfOfType(PlanKey planKey,
java.lang.Class<T> planType)
Returns a Plan by its planKey and if it's of the type Class . |
|
|
getPlanByKeyIfOfType(java.lang.String planKey,
java.lang.Class<T> planType)
Returns a Plan by its planKey and if it's of the type Class . |
|
|
getPlanByName(java.lang.String projectKey,
java.lang.String planName,
java.lang.Class<T> planType)
Returns a Plan from a project with the given plan name and Class
It is not possible to use this method if the planType parameter is a marker interface type such as Plan , Buildable or TopLevelPlan
since it is possible to have a Chain and a Job that share the same name. |
|
|
getPlanByPartialKeyAndName(PlanKey partialPlanKey,
java.lang.String planName,
java.lang.Class<T> planType)
Returns a Plan that matches the start of the given PlanKey and the full plan name |
|
Plan |
getPlanByResultKey(PlanResultKey planResultKey)
Returns a Plan by a PlanResultKey |
|
|
getPlanByResultKey(PlanResultKey planResultKey,
java.lang.Class<T> planType)
Returns a Plan from a PlanResultKey and Class |
|
int |
getPlanCount()
|
|
|
getPlanCount(java.lang.Class<T> planType)
How many plans filtered by Class currently exist |
|
java.util.List<TopLevelPlan> |
getPlansByProject(Project project)
Returns all TopLevelPlan 's filtered by Project |
|
|
getPlansByProject(Project project,
java.lang.Class<T> planType)
Returns all Plan 's filtered by Project and Class |
|
|
getProjectPlanMap(java.lang.Class<T> planType,
boolean includeEmptyProjects)
Return mapping of Project to Plan of given type |
|
boolean |
isPlanCreationAllowed()
Check whether or not a plan can be created or not (based on licensing etc) USE SPARINGLY!!! |
|
java.util.Map<PlanKey,PlanKey> |
movePlanToProject(Plan plan,
Project project,
java.lang.String newPlanKey,
java.lang.String newBuildName)
Moves plan to a selected project. |
|
|
narrow(Plan plan,
java.lang.Class<T> aClass)
Converts the given Plan to the given Class
Returns null if Plan could not be converted
This method should only be used if testing the capability of a Plan where generically provided. |
|
java.lang.String |
revertVcsRevisionKey(java.lang.String buildKey,
java.lang.String revisionForBuild,
java.lang.String previousRevision)
Revert lastVcsRevisionKey in build based on previous build revision contained in BuildContext. |
|
void |
savePlan(Plan plan)
Saves the Plan |
|
void |
setPlanSuspendedState(Plan originalPlan,
boolean newState)
Persists enable/disable state of a plan. |
|
void |
updateLatestVcsKey(Plan plan,
java.lang.String vcsRevisionKey)
Updates the build to the latest passed revision key |
|
void |
updateNamesAndDescription(java.lang.String projectName,
java.lang.String buildName,
java.lang.String description,
Plan plan)
Updates project and plan names and plan description. |
|
java.lang.String |
updateVcsRevisionKey(BuildContext buildContext)
Updates lastVcsRevisionKey in build based on revision contained in BuildContext |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
---|
public PlanManagerImpl(@NotNull PlanDao planDao, @NotNull BambooLicenseManager bambooLicenseManager, @NotNull com.atlassian.event.EventManager eventManager, ProjectManager projectManager)
Method Detail |
---|
@Nullable public <T extends Plan> T narrow(@NotNull Plan plan, @NotNull java.lang.Class<T> aClass)
PlanManager
Plan
to the given Class
Returns null if Plan
could not be converted
This method should only be used if testing the capability of a Plan
where generically provided.
For example, a perfectly acceptable use of #narrow(Plan
,Class
) may be where you are given a collection of Plan
s
and you want to perform a specific operation on plans that are Buildable
.
In other cases (if possible) you should use one of the getPlanBy methods on this class instead of #narrow(Plan
,Class
).
narrow
in interface PlanManager
plan
- - to be narrowedaClass
- - type to be narrowed to
@Nullable public Plan getPlanById(long id) throws IncorrectPlanTypeException
PlanManager
Plan
by its id
getPlanById
in interface PlanManager
id
- of the plan
IncorrectPlanTypeException
- if plan cannot be found@Nullable public <T extends Plan> T getPlanById(long id, java.lang.Class<T> planType) throws IncorrectPlanTypeException
PlanManager
Plan
by its id and Class
getPlanById
in interface PlanManager
id
- of the planplanType
- - the type of the plan to retrieve
IncorrectPlanTypeException
- if plan cannot be found with the correct type@Nullable public Plan getPlanByKey(@NotNull java.lang.String planKey) throws IncorrectPlanTypeException
PlanManager
Plan
by its planKey
getPlanByKey
in interface PlanManager
planKey
- of the plan to find
IncorrectPlanTypeException
- if plan cannot be found with the correct type (should never happen)@Nullable public <T extends Plan> T getPlanByKey(@NotNull java.lang.String planKey, java.lang.Class<T> planType) throws IncorrectPlanTypeException
PlanManager
Plan
by its planKey and Class
getPlanByKey
in interface PlanManager
planKey
- to search forplanType
- - the type of the plan to retrieve
IncorrectPlanTypeException
- if plan cannot be found with the correct typepublic <T extends Plan> T getPlanByKeyIfOfType(@NotNull java.lang.String planKey, @NotNull java.lang.Class<T> planType)
PlanManager
Plan
by its planKey and if it's of the type Class
. Does not throw IncorrectPlanTypeException
.
Should only be used when the type of the plan can not be known.
getPlanByKeyIfOfType
in interface PlanManager
public <T extends Plan> T getPlanByKeyIfOfType(@NotNull PlanKey planKey, @NotNull java.lang.Class<T> planType)
PlanManager
Plan
by its planKey and if it's of the type Class
. Does not throw IncorrectPlanTypeException
.
Should only be used when the type of the plan can not be known.
getPlanByKeyIfOfType
in interface PlanManager
planKey
- to search forplanType
- the type of the plan to retrieve
public Plan getPlanByKey(@NotNull PlanKey planKey) throws IncorrectPlanTypeException
PlanManager
Plan
by its PlanKey
getPlanByKey
in interface PlanManager
planKey
- to search for
IncorrectPlanTypeException
- if plan cannot be found with the correct type (should never happen)public boolean assertPlanPermission(@NotNull Plan plan)
PlanManager
assertPlanPermission
in interface PlanManager
plan
- to check the permissions of
public <T extends Plan> T getPlanByKey(@NotNull PlanKey planKey, java.lang.Class<T> planType) throws IncorrectPlanTypeException
PlanManager
Plan
by its PlanKey
and Class
getPlanByKey
in interface PlanManager
planKey
- to search forplanType
- - the type of the plan to retrieve
IncorrectPlanTypeException
- if plan cannot be found with the correct typepublic Plan getPlanByResultKey(@NotNull PlanResultKey planResultKey) throws IncorrectPlanTypeException
PlanManager
Plan
by a PlanResultKey
getPlanByResultKey
in interface PlanManager
planResultKey
- to look for the parent plan
IncorrectPlanTypeException
- if plan cannot be found with the correct type (should never happen)public <T extends Plan> T getPlanByResultKey(@NotNull PlanResultKey planResultKey, java.lang.Class<T> planType) throws IncorrectPlanTypeException
PlanManager
Plan
from a PlanResultKey
and Class
getPlanByResultKey
in interface PlanManager
planResultKey
- to look for the parent planplanType
- - the type of the plan to retrieve
IncorrectPlanTypeException
- if plan cannot be found with the correct type@Nullable public <T extends Plan> T getPlanByName(@NotNull java.lang.String projectKey, @NotNull java.lang.String planName, java.lang.Class<T> planType) throws IncorrectPlanTypeException
PlanManager
Plan
from a project with the given plan name and Class
It is not possible to use this method if the planType parameter is a marker interface type such as Plan
, Buildable
or TopLevelPlan
since it is possible to have a Chain
and a Job
that share the same name.
getPlanByName
in interface PlanManager
projectKey
- of the project to look for the plan inplanName
- - name of the plan inside the project: this is just the plan component of the name (i.e does not include the project component)planType
- - the type of the plan to retrieve
IncorrectPlanTypeException
- if the result cannot be guaranteed to be unique@Nullable public <T extends Plan> T getPlanByPartialKeyAndName(@NotNull PlanKey partialPlanKey, @NotNull java.lang.String planName, java.lang.Class<T> planType) throws IncorrectPlanTypeException
PlanManager
Plan
that matches the start of the given PlanKey
and the full plan name
getPlanByPartialKeyAndName
in interface PlanManager
partialPlanKey
- - the start of the plan keyplanName
- - name of the plan to search for: this is just the plan component of the name (i.e does not include the project component)planType
- - the type of the plan to retrieve
IncorrectPlanTypeException
- if plan cannot be found with the correct type@NotNull public java.util.List<TopLevelPlan> getAllPlans()
PlanManager
TopLevelPlan
's
getAllPlans
in interface PlanManager
@NotNull public java.util.List<TopLevelPlan> getAllPlansUnrestricted()
PlanManager
TopLevelPlan
's ignoring permissions
getAllPlansUnrestricted
in interface PlanManager
@NotNull public <T extends Plan> java.util.List<T> getAllPlans(java.lang.Class<T> planType)
PlanManager
Plan
's filtered by Class
getAllPlans
in interface PlanManager
planType
- - the type of the plan to retrieve
Plan.getName()
@NotNull public <T extends Plan> java.util.List<T> getAllPlansForClone(java.lang.Class<T> planType)
PlanManager
Plan
's filtered by Class
Return list filtered to show only plans the current user is allowed to clone.
getAllPlansForClone
in interface PlanManager
planType
- the class type of the plans you want returned
@NotNull public java.util.List<TopLevelPlan> getPlansByProject(Project project)
PlanManager
TopLevelPlan
's filtered by Project
getPlansByProject
in interface PlanManager
project
- - that the plans will belong to
TopLevelPlan
plans contained within the given project@NotNull public <T extends Plan> java.util.List<T> getPlansByProject(Project project, java.lang.Class<T> planType)
PlanManager
Plan
's filtered by Project
and Class
getPlansByProject
in interface PlanManager
project
- - that the plans will belong toplanType
- - the type of the plan to retrieve
@NotNull public <T extends Plan> java.util.List<T> getAllPlansByProject(Project project, java.lang.Class<T> planType)
PlanManager
Plan
's filtered by Project
and Class
, including the plans
marked for deletion.
getAllPlansByProject
in interface PlanManager
project
- - that the plans will belong toplanType
- - the type of the plan to retrieve
@NotNull public <T extends Plan> java.util.Map<Project,java.util.Collection<T>> getProjectPlanMap(java.lang.Class<T> planType, boolean includeEmptyProjects)
PlanManager
Project
to Plan
of given type
getProjectPlanMap
in interface PlanManager
planType
- type of plan to be selected from DBincludeEmptyProjects
- should empty projects be included in result
Project
to Plan
of given typepublic int getPlanCount()
getPlanCount
in interface PlanManager
Buildable
's existspublic <T extends Plan> int getPlanCount(java.lang.Class<T> planType)
PlanManager
Class
currently exist
getPlanCount
in interface PlanManager
planType
- - the type of the plan to retrieve
public void savePlan(@NotNull Plan plan)
PlanManager
Plan
savePlan
in interface PlanManager
plan
- to be savedpublic void createPlan(@NotNull Plan plan)
PlanManager
createPlan
in interface PlanManager
public void setPlanSuspendedState(Plan originalPlan, boolean newState)
PlanManager
setPlanSuspendedState
in interface PlanManager
originalPlan
- to be suspended/resumedpublic void updateLatestVcsKey(@NotNull Plan plan, @NotNull java.lang.String vcsRevisionKey)
PlanManager
updateLatestVcsKey
in interface PlanManager
plan
- - Plan keyvcsRevisionKey
- - revision keypublic java.lang.String updateVcsRevisionKey(@NotNull BuildContext buildContext)
PlanManager
updateVcsRevisionKey
in interface PlanManager
buildContext
- containing the plan and vcs information to be persisted to the db.
public java.lang.String revertVcsRevisionKey(@NotNull java.lang.String buildKey, @NotNull java.lang.String revisionForBuild, @Nullable java.lang.String previousRevision)
PlanManager
revertVcsRevisionKey
in interface PlanManager
buildKey
- - plan to revertrevisionForBuild
- - the revision number that the build should be before reverting (used to see if another build
may have started since this one.)previousRevision
- - the revision that the build should be reverted to if above conditions met
public boolean isPlanCreationAllowed()
isPlanCreationAllowed
in interface PlanManager
public void updateNamesAndDescription(@NotNull java.lang.String projectName, @NotNull java.lang.String buildName, @Nullable java.lang.String description, @NotNull Plan plan)
PlanManager
updateNamesAndDescription
in interface PlanManager
projectName
- new name of the projectbuildName
- new name of the plandescription
- new plan descriptionplan
- to update the details ofpublic void deletePlan(@NotNull Plan plan)
PlanManager
deletePlan
in interface PlanManager
plan
- to delete.public java.util.Map<PlanKey,PlanKey> movePlanToProject(Plan plan, Project project, java.lang.String newPlanKey, java.lang.String newBuildName)
PlanManager
movePlanToProject
in interface PlanManager
plan
- - plan to be moved/renamedproject
- - project plan should be moved tonewPlanKey
- - new key for the plan (not a full key)newBuildName
- - new name for the plan
@NotNull public <T extends Plan> java.util.Collection<T> getAllPlansMarkedForDeletion(java.lang.Class<T> planType)
PlanManager
Plan
s that are com.atlassian.bamboo.plan.Plan#markForDeletion()
for the given type
getAllPlansMarkedForDeletion
in interface PlanManager
@NotNull public java.util.Set<TopLevelPlan> filterFavouritedPlans(@NotNull java.util.Collection<TopLevelPlan> plans, @NotNull com.atlassian.user.User user)
PlanManager
Build
s that are a subset of the given TopLevelPlan
s collection that are favourited by the User
filterFavouritedPlans
in interface PlanManager
plans
- to filteruser
- to return the favourites of
Build
s that are a subset of the given TopLevelPlan
s collection that are favourited by the User
public java.util.Set<TopLevelPlan> getFavouritePlans(@NotNull com.atlassian.user.User user)
getFavouritePlans
in interface PlanManager
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |