com.atlassian.bamboo.plan
Interface PlanDao

All Superinterfaces:
BambooObjectDao<Plan>
All Known Implementing Classes:
PlanHibernateDao

public interface PlanDao
extends BambooObjectDao<Plan>

DAO Manager for Plan


Method Summary
 java.util.Set<ImmutableChain> filterFavouritedPlans(java.util.Collection<? extends ImmutableChain> plans, com.atlassian.user.User user)
          Return a collection of TopLevelPlans that are a subset of the given Plans collection that are favourited by the User
<T extends Plan>
java.util.List<T>
findAllPlans(java.lang.Class<T> planType)
          Return a Plan collection for specified plan type.
<T extends Plan>
java.util.List<T>
findAllPlansByProject(Project project, java.lang.Class<T> planType)
          Return a Plan collection for specified Project, including plans marked for deletion.
<T extends Plan>
java.util.List<T>
findPlansByProject(Project project, java.lang.Class<T> planType)
          Return a Plan collection for specified Project
<T extends Plan>
java.util.Collection<T>
getAllPlansMarkedForDeletion(java.lang.Class<T> planType)
          Returns a list of Plans that are com.atlassian.bamboo.plan.Plan#markForDeletion() for the given type
 int getBranchCount(Plan plan)
          Returns the number of branches that exist for the given plan
 java.util.List<Pair<java.lang.Long,java.lang.Integer>> getBranchesCount()
          Returns the number of branches that exist for master plans in Bamboo.
 java.util.List<ChainBranch> getBranchesForChain(ImmutableChain chain)
          Returns all branches which have the given chain as their master
 java.util.List<ChainBranchIdentifier> getBranchIdentifiersForChain(PlanIdentifier chain)
          Returns minimal data about all branches which have the given chain as their master
<T extends Plan>
T
getPlanByKey(java.lang.String planKey, java.lang.Class<T> aClass)
          Return a Plan that matches the given key
<T extends Plan>
T
getPlanByName(java.lang.String projectKey, java.lang.String planName, java.lang.Class<T> planType)
          Deprecated. since 4.0 implementation no longer guarantees exception on using the method with incorrect planType parameter but only when the result is not unique. Use: PlanDao#isPlanNameConflicting(String, String)
<T extends Plan>
T
getPlanByPartialKeyAndName(PlanKey partialPlanKey, java.lang.String planName, java.lang.Class<T> planType)
          Returns a Plan that matches the start of the given PlanKey and name
 java.lang.Class<? extends Plan> getPlanClass(PlanKey planKey)
           
<T extends Plan>
int
getPlanCount(java.lang.Class<T> planType)
          How many plans filtered by Class currently exist
 PlanIdentifier getPlanIdentifierForPermissionCheckingByKey(java.lang.String planKey)
          Return a Plan skeleton providing ONLY id and key, that matches the given key This method should be used only for permission checking using Acegi If Job key is provided as a parameter, parent Chain will be returned anyway, as Acegi assertions are defined only for TopLevelPlans
<T extends Plan>
java.util.List<PlanIdentifier>
getPlanIdentifiersForProject(ProjectIdentifier projectIdentifier, java.lang.Class<T> planType, boolean includeMarkedForDeletion)
          Returns minimal data about all plans in the given project
<T extends Plan>
java.util.List<PlanKey>
getPlanKeys(java.lang.Class<T> planType)
          Returns all plan keys of a particular type
 boolean isChainNameConflicting(java.lang.String projectKey, long planIdToIgnore, java.lang.String planName)
          Verifies whether a Chain name is unique with the given project

 
Methods inherited from interface com.atlassian.bamboo.persistence3.BambooObjectDao
delete, deleteAll, executeReturnLong, findAll, findById, save, saveAll
 

Method Detail

getPlanByKey

@Nullable
<T extends Plan> T getPlanByKey(@NotNull
                                         java.lang.String planKey,
                                         java.lang.Class<T> aClass)
Return a Plan that matches the given key

Parameters:
planKey -
Returns:
plan

getPlanIdentifierForPermissionCheckingByKey

@Nullable
PlanIdentifier getPlanIdentifierForPermissionCheckingByKey(@NotNull
                                                                    java.lang.String planKey)
Return a Plan skeleton providing ONLY id and key, that matches the given key This method should be used only for permission checking using Acegi If Job key is provided as a parameter, parent Chain will be returned anyway, as Acegi assertions are defined only for TopLevelPlans

Parameters:
planKey -
Returns:
plan

getPlanClass

@Nullable
java.lang.Class<? extends Plan> getPlanClass(@NotNull
                                                      PlanKey planKey)

getPlanByName

@Nullable
@Deprecated
<T extends Plan> T getPlanByName(@NotNull
                                                     java.lang.String projectKey,
                                                     @NotNull
                                                     java.lang.String planName,
                                                     java.lang.Class<T> planType)
Deprecated. since 4.0 implementation no longer guarantees exception on using the method with incorrect planType parameter but only when the result is not unique. Use: PlanDao#isPlanNameConflicting(String, String)

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.

Parameters:
projectKey - of the project to look for the plan in
planName - - 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
Returns:
plan with the given name and project key, if found AND is of the correct type.
Throws:
IncorrectPlanTypeException - if the result is not unique

isChainNameConflicting

boolean isChainNameConflicting(@NotNull
                               java.lang.String projectKey,
                               long planIdToIgnore,
                               @NotNull
                               java.lang.String planName)
Verifies whether a Chain name is unique with the given project

Parameters:
projectKey - of the project to look for the plan in
planIdToIgnore - the id of the plan that has to be ignored during lookup (when you're saving a Plan, you should supply the plan id here)
planName - - name of the plan inside the project: this is just the plan component of the name (i.e does not include the project component)
Returns:
true if the name is in conflict
Since:
4.0

getPlanByPartialKeyAndName

@Nullable
<T extends Plan> T getPlanByPartialKeyAndName(@NotNull
                                                       PlanKey partialPlanKey,
                                                       @NotNull
                                                       java.lang.String planName,
                                                       java.lang.Class<T> planType)
Returns a Plan that matches the start of the given PlanKey and name

Parameters:
partialPlanKey -
planName -
planType -
Returns:
plan

getPlanCount

<T extends Plan> int getPlanCount(java.lang.Class<T> planType)
How many plans filtered by Class currently exist

Parameters:
planType -
Returns:
how many plans exist in the datbase

findPlansByProject

<T extends Plan> java.util.List<T> findPlansByProject(@NotNull
                                                      Project project,
                                                      java.lang.Class<T> planType)
Return a Plan collection for specified Project

Parameters:
project -
planType -
Returns:
plans for specifid project

findAllPlansByProject

<T extends Plan> java.util.List<T> findAllPlansByProject(@NotNull
                                                         Project project,
                                                         java.lang.Class<T> planType)
Return a Plan collection for specified Project, including plans marked for deletion.

Parameters:
project -
planType -
Returns:
plans for specifid project

findAllPlans

@NotNull
<T extends Plan> java.util.List<T> findAllPlans(java.lang.Class<T> planType)
Return a Plan collection for specified plan type. Does not include plans marked for deletion.

Type Parameters:
T -
Parameters:
planType - type of plan to be selected from DB
Returns:
Plan collection for specified plan type

filterFavouritedPlans

java.util.Set<ImmutableChain> filterFavouritedPlans(@NotNull
                                                    java.util.Collection<? extends ImmutableChain> plans,
                                                    @NotNull
                                                    com.atlassian.user.User user)
Return a collection of TopLevelPlans that are a subset of the given Plans collection that are favourited by the User

Parameters:
plans -
user -
Returns:
favoritedBuilds

getAllPlansMarkedForDeletion

@NotNull
<T extends Plan> java.util.Collection<T> getAllPlansMarkedForDeletion(java.lang.Class<T> planType)
Returns a list of Plans that are com.atlassian.bamboo.plan.Plan#markForDeletion() for the given type

Returns:
plansMarkedForDeletion

getPlanKeys

@NotNull
<T extends Plan> java.util.List<PlanKey> getPlanKeys(java.lang.Class<T> planType)
Returns all plan keys of a particular type

Type Parameters:
T -
Parameters:
planType -
Returns:

getBranchesForChain

@NotNull
java.util.List<ChainBranch> getBranchesForChain(ImmutableChain chain)
Returns all branches which have the given chain as their master

Parameters:
chain - master plan
Returns:
all branches which have the given chain as their master

getBranchIdentifiersForChain

@NotNull
java.util.List<ChainBranchIdentifier> getBranchIdentifiersForChain(@NotNull
                                                                           PlanIdentifier chain)
Returns minimal data about all branches which have the given chain as their master

Parameters:
chain - master
Returns:
all branches which have the given chain as their master

getPlanIdentifiersForProject

@NotNull
<T extends Plan> java.util.List<PlanIdentifier> getPlanIdentifiersForProject(@NotNull
                                                                                     ProjectIdentifier projectIdentifier,
                                                                                     @NotNull
                                                                                     java.lang.Class<T> planType,
                                                                                     boolean includeMarkedForDeletion)
Returns minimal data about all plans in the given project

Parameters:
projectIdentifier - - to get plans for
planType - to filter plans by
includeMarkedForDeletion - - true if you want to include any results currently marked for deletion
Returns:
plansIdentifiers matching the above criteria.

getBranchCount

int getBranchCount(@NotNull
                   Plan plan)
Returns the number of branches that exist for the given plan

Parameters:
plan - to count branches of
Returns:
the number of branches that exist for the given plan

getBranchesCount

java.util.List<Pair<java.lang.Long,java.lang.Integer>> getBranchesCount()
Returns the number of branches that exist for master plans in Bamboo. Only returns masters plans which HAVE branches. Others are omitted.

Returns:
List of pairs of plan id and their branches count


Copyright © 2012 Atlassian. All Rights Reserved.