Package com.atlassian.bamboo.labels
Class LabelManagerImpl
- java.lang.Object
-
- com.atlassian.bamboo.labels.LabelManagerImpl
-
- All Implemented Interfaces:
LabelManager
public class LabelManagerImpl extends Object implements LabelManager
This manager is not transactional but is thread safe
-
-
Field Summary
-
Fields inherited from interface com.atlassian.bamboo.labels.LabelManager
BUILDRESULT_LABEL_NAMESPACE, DEFAULT_MAX_RESULTS, FAVOURITE_LABEL_NAME, FAVOURITE_UNMARK_LABEL_NAME, LABEL_ADDED_TO_BUILD_RESULT, LABEL_CREATED, LABEL_DELETED, LABEL_REMOVED_FROM_BUILD_RESULT, NO_CHANGE
-
-
Constructor Summary
Constructors Constructor Description LabelManagerImpl(LabelDao labelDao, JiraIssueUtils jiraIssueUtils, PlanManager planManager, ProjectManager projectManager, ResultsSummaryManager resultsSummaryManager, com.atlassian.event.api.EventPublisher eventPublisher)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description int
addFavourite(Plan plan, com.atlassian.user.User user)
Adds a build to a user as favourite.protected int
addLabel(@NotNull String labelName, String namespace, @Nullable Project project, @Nullable Plan plan, @Nullable ResultsSummary resultsSummary, String userName)
int
addLabel(@Nullable String labelName, @Nullable PlanKey planKey, @Nullable com.atlassian.user.User user)
Creates a normal label for a planint
addLabel(@Nullable String labelName, @Nullable PlanResultKey planResultKey, @Nullable com.atlassian.user.User user)
Add a label against a build result.boolean
addLabels(List<String> labelNames, @Nullable PlanKey planKey, @Nullable com.atlassian.user.User user)
Creates multiple normal labels for a plan@NotNull List<ResultsSummary>
findBuildResultsSummaryByLabel(@NotNull String labelName)
Finds allResultsSummary
labelled with given labelname@NotNull List<LabelCount>
findLabels(@NotNull String namespace, int maxResults, @Nullable Plan plan, @Nullable Project project)
Finds all labels in a given build, with namespace and maxResults.@NotNull Set<Label>
getAllPlanLabels()
All labels used on a plan level@NotNull List<String>
getFavouritesForPlan(@NotNull ImmutablePlan plan)
Retrieves a list of usernames which have the given plan set as a favourite.List<String>
getFavouritesForPlan(Plan plan)
Collection<Label>
getLabelsByName(List<String> labelNames)
Gets list of labels based on label names@NotNull Set<Label>
getPlanLabels(@NotNull ImmutablePlan plan)
Get labels defined for a planboolean
hasBuildResultsLabel(@NotNull ResultsSummary buildResultsSummary, @NotNull String label)
Checks whether the build results summary has a particular labelboolean
hasPlanLabel(@NotNull Plan plan, @NotNull String label)
Checks whether the Plan has a particular labelboolean
isFavourite(@NotNull ImmutablePlan plan, @Nullable com.atlassian.user.User user)
Determines if the build is a user's favourite Note that its more efficient to usePlanManager.filterFavouritedPlans(java.util.Collection, com.atlassian.user.User)
if you are performing this operation over a collection ofPlan
sboolean
isManuallyUnmarkedFavourite(@NotNull Plan plan, @Nullable com.atlassian.user.User user)
Flag which determines if the user has manually unmarked this build as favourite.int
removeFavourite(@NotNull Plan plan, @Nullable com.atlassian.user.User user)
Removes a build from a user's favourite.protected int
removeLabel(@NotNull String labelName, @NotNull String namespace, @NotNull Project project, @Nullable ImmutablePlan plan, @Nullable ResultsSummary resultsSummary)
int
removeLabel(@Nullable String labelName, @Nullable PlanKey planKey, @Nullable com.atlassian.user.User user)
Remove the standard label for a plan (not all the labels for that plan)int
removeLabel(String labelName, @Nullable PlanResultKey planResultKey, com.atlassian.user.User user)
Removes a label against a build result.void
saveLabelling(Labelling labelling)
Saves a specific labelling - does not do any validation or checking.
-
-
-
Constructor Detail
-
LabelManagerImpl
public LabelManagerImpl(LabelDao labelDao, JiraIssueUtils jiraIssueUtils, PlanManager planManager, ProjectManager projectManager, ResultsSummaryManager resultsSummaryManager, com.atlassian.event.api.EventPublisher eventPublisher)
-
-
Method Detail
-
saveLabelling
public void saveLabelling(Labelling labelling)
Description copied from interface:LabelManager
Saves a specific labelling - does not do any validation or checking. If not sure - please use addLabel or addFavourite instead- Specified by:
saveLabelling
in interfaceLabelManager
- Parameters:
labelling
- to save
-
addLabel
public int addLabel(@Nullable @Nullable String labelName, @Nullable @Nullable PlanResultKey planResultKey, @Nullable @Nullable com.atlassian.user.User user)
Description copied from interface:LabelManager
Add a label against a build result.- Specified by:
addLabel
in interfaceLabelManager
- Returns:
- an
int
identifying result of add process
-
addLabel
public int addLabel(@Nullable @Nullable String labelName, @Nullable @Nullable PlanKey planKey, @Nullable @Nullable com.atlassian.user.User user)
Description copied from interface:LabelManager
Creates a normal label for a plan- Specified by:
addLabel
in interfaceLabelManager
- Returns:
-
addLabels
public boolean addLabels(List<String> labelNames, @Nullable @Nullable PlanKey planKey, @Nullable @Nullable com.atlassian.user.User user)
Description copied from interface:LabelManager
Creates multiple normal labels for a plan- Specified by:
addLabels
in interfaceLabelManager
- Returns:
-
addFavourite
public int addFavourite(Plan plan, com.atlassian.user.User user)
Description copied from interface:LabelManager
Adds a build to a user as favourite. Adds a label to the build, with namespace = user name, and label name = ":favourite".- Specified by:
addFavourite
in interfaceLabelManager
- Returns:
- an
int
identifying result of add process
-
removeLabel
public int removeLabel(String labelName, @Nullable @Nullable PlanResultKey planResultKey, com.atlassian.user.User user)
Description copied from interface:LabelManager
Removes a label against a build result. Will delete the Label entity if there are no more build results tied to it.- Specified by:
removeLabel
in interfaceLabelManager
- Returns:
- an
int
identifying result of delete process
-
removeLabel
public int removeLabel(@Nullable @Nullable String labelName, @Nullable @Nullable PlanKey planKey, @Nullable @Nullable com.atlassian.user.User user)
Description copied from interface:LabelManager
Remove the standard label for a plan (not all the labels for that plan)- Specified by:
removeLabel
in interfaceLabelManager
- Returns:
-
getAllPlanLabels
@NotNull public @NotNull Set<Label> getAllPlanLabels()
Description copied from interface:LabelManager
All labels used on a plan level- Specified by:
getAllPlanLabels
in interfaceLabelManager
- Returns:
- Set of
Label
related to any plan
-
getPlanLabels
@NotNull public @NotNull Set<Label> getPlanLabels(@NotNull @NotNull ImmutablePlan plan)
Description copied from interface:LabelManager
Get labels defined for a plan- Specified by:
getPlanLabels
in interfaceLabelManager
- Parameters:
plan
-Plan
to filter labels with- Returns:
- Set of
Label
related to the plan
-
removeFavourite
public int removeFavourite(@NotNull @NotNull Plan plan, @Nullable @Nullable com.atlassian.user.User user)
Description copied from interface:LabelManager
Removes a build from a user's favourite. Removes labelling object, where namespace = user name, and label name=":favourite".- Specified by:
removeFavourite
in interfaceLabelManager
- Returns:
- an
int
identifying result of removal process
-
hasBuildResultsLabel
public boolean hasBuildResultsLabel(@NotNull @NotNull ResultsSummary buildResultsSummary, @NotNull @NotNull String label)
Description copied from interface:LabelManager
Checks whether the build results summary has a particular label- Specified by:
hasBuildResultsLabel
in interfaceLabelManager
label
- . could be empty- Returns:
- Returns true if there is a label object within the correct namespace and a labelling for the
ResultsSummary
-
hasPlanLabel
public boolean hasPlanLabel(@NotNull @NotNull Plan plan, @NotNull @NotNull String label)
Description copied from interface:LabelManager
Checks whether the Plan has a particular label- Specified by:
hasPlanLabel
in interfaceLabelManager
label
- . could be empty- Returns:
- Returns true if there is a label object within the correct namespace and a labelling for the
Plan
-
getLabelsByName
public Collection<Label> getLabelsByName(List<String> labelNames)
Description copied from interface:LabelManager
Gets list of labels based on label names- Specified by:
getLabelsByName
in interfaceLabelManager
- Returns:
- list of labels for all existing labels specified in parameter
-
findBuildResultsSummaryByLabel
@NotNull public @NotNull List<ResultsSummary> findBuildResultsSummaryByLabel(@NotNull @NotNull String labelName)
Description copied from interface:LabelManager
Finds allResultsSummary
labelled with given labelname- Specified by:
findBuildResultsSummaryByLabel
in interfaceLabelManager
- Returns:
List
ofResultsSummary
-
isFavourite
public boolean isFavourite(@NotNull @NotNull ImmutablePlan plan, @Nullable @Nullable com.atlassian.user.User user)
Description copied from interface:LabelManager
Determines if the build is a user's favourite Note that its more efficient to usePlanManager.filterFavouritedPlans(java.util.Collection, com.atlassian.user.User)
if you are performing this operation over a collection ofPlan
s- Specified by:
isFavourite
in interfaceLabelManager
- Returns:
boolean
yes or no
-
isManuallyUnmarkedFavourite
public boolean isManuallyUnmarkedFavourite(@NotNull @NotNull Plan plan, @Nullable @Nullable com.atlassian.user.User user)
Description copied from interface:LabelManager
Flag which determines if the user has manually unmarked this build as favourite.- Specified by:
isManuallyUnmarkedFavourite
in interfaceLabelManager
- Returns:
boolean
flag
-
getFavouritesForPlan
public List<String> getFavouritesForPlan(Plan plan)
- Specified by:
getFavouritesForPlan
in interfaceLabelManager
-
getFavouritesForPlan
@NotNull public @NotNull List<String> getFavouritesForPlan(@NotNull @NotNull ImmutablePlan plan)
Description copied from interface:LabelManager
Retrieves a list of usernames which have the given plan set as a favourite.- Specified by:
getFavouritesForPlan
in interfaceLabelManager
- Returns:
- list of usernames (as Strings)
-
findLabels
@NotNull public @NotNull List<LabelCount> findLabels(@NotNull @NotNull String namespace, int maxResults, @Nullable @Nullable Plan plan, @Nullable @Nullable Project project)
Description copied from interface:LabelManager
Finds all labels in a given build, with namespace and maxResults.- Specified by:
findLabels
in interfaceLabelManager
- Returns:
List
ofLabelCount
objects, mapping (Label
to count of occurrences.
-
addLabel
protected int addLabel(@NotNull @NotNull String labelName, String namespace, @Nullable @Nullable Project project, @Nullable @Nullable Plan plan, @Nullable @Nullable ResultsSummary resultsSummary, String userName)
-
removeLabel
protected int removeLabel(@NotNull @NotNull String labelName, @NotNull @NotNull String namespace, @NotNull @NotNull Project project, @Nullable @Nullable ImmutablePlan plan, @Nullable @Nullable ResultsSummary resultsSummary)
-
-