Interface LabelManager

All Known Subinterfaces:
LabelManagerInternal
All Known Implementing Classes:
CachingLabelManager, DefaultLabelManager

@Transactional(readOnly=true) public interface LabelManager

The label manager provides all that is necessary for interacting with labels.

  • Field Details

  • Method Details

    • addLabel

      @Transactional int addLabel(Labelable content, Label label)
      Add a label to the specified content.

      Note: the specified label does not need to be persistent. A persistent instance of the label will be created if necessary. eg: you can write code like: labelManager.addLabel(page, new Label("name", "namespace", "owner"));

      Parameters:
      content -
      label -
      Returns:
      one of NO_CHANGE, LABEL_ADDED or LABEL_CREATED
      Since:
      4.2
    • removeLabel

      @Transactional int removeLabel(Labelable object, Label label)
      Remove a label from the specified content.
      Parameters:
      object -
      label -
      Returns:
      one of NO_CHANGE, LABEL_DELETED, LABEL_REMOVED
      Since:
      4.2
    • removeLabels

      @Transactional void removeLabels(Labelable object, List<Label> labels)
      removes a list of labels from the labelable object
      Since:
      4.2
    • removeAllLabels

      @Transactional void removeAllLabels(Labelable content)
      Remove all of the labels from the specified content. Any labels that then no longer label content will be deleted.
      Parameters:
      content -
      Since:
      4.2
    • deleteLabel

      @Transactional boolean deleteLabel(long id)
      Delete the label with the specified id.
      Parameters:
      id -
      Returns:
      true if the label was deleted, false otherwise.
    • deleteLabel

      @Transactional boolean deleteLabel(Label l)
      Delete the specified label.

      NOTE: The specified label does note need to be the persistent instance of the label, it simply needs to uniquely identify the label.

      Parameters:
      l -
      Returns:
      true if the label was deleted, false otherwise.
    • getLabel

      Label getLabel(long id)
      Retrieve the label with the specified id.
      Parameters:
      id -
      Returns:
      the persistent instance of label with the specified id, or null if none exists.
    • getLabel

      Label getLabel(ParsedLabelName parsedLabelName)
      Retrieve the label by name.
      Parameters:
      parsedLabelName -
      Returns:
      a persistent instance of the label or null if it can not be found.
      See Also:
    • getLabel

      Label getLabel(String unparsedLabelName)
      convenience method to fetch a label without having to call the label parser
      Parameters:
      unparsedLabelName - - example - my:foo
    • getLabels

      List<Label> getLabels(Collection<String> unparsedLabelNames)
      convenience method to fetch labels without having to call the label parser
      Parameters:
      unparsedLabelNames - - example - my:foo, bar
    • getLabel

      Label getLabel(Label label)
      Retrieve the persistent instance of the label with the exact same details as the specified label. Note, the specified label does not need to contain an id.
      Parameters:
      label -
      Returns:
      a persistent instance of the label, or null if it does not exist.
    • getLabel

      Label getLabel(String labelName, Namespace namespace)
      Convenience method to fetch a label without having to create a Label object
      Parameters:
      labelName - The label name
      namespace - The namespace of the label
      Returns:
      a label instance or null if no such label exists
      Since:
      4.1
    • getLabelsByDetail

      List<Label> getLabelsByDetail(String labelName, String namespace, String spaceKey, String owner)
      Retrieves the labels matching the given labelName, namespace or owner
      Parameters:
      labelName - The name of the label (null to ignore)
      namespace - The namespace of the labels (null to ignore)
      spaceKey - The spaceKey to restrict by (null to ignore)
      owner - The owner of the labels (null to ignore)
      Returns:
      a list of Label instances
    • getLabelsInSpace

      List<Label> getLabelsInSpace(String key)
      Retrieve all of the labels that label content within the specified space.
      Parameters:
      key - identifying the space to be queried.
      Returns:
      a list of labels that appear in the space.
    • getMostPopularLabels

      List<LabelSearchResult> getMostPopularLabels()
      Retrieve the list of the DEFAULT_LABEL_COUNT most popular labels within the system.
      Returns:
      a list of label search result instances in order of their popularity.
      See Also:
    • getMostPopularLabels

      List<LabelSearchResult> getMostPopularLabels(int maxResults)
      Retrieve the most popular labels within the system. The number of labels returned can be specified through the count parameter. If the count value is greater than the number of labels, then all labels will be returned.

      This function does not return the labels itself, but wrapped into a search result with a count!

      Parameters:
      maxResults - is the maximum number of labels to be returned.
      Returns:
      a list of label search result instances in order of their popularity.
      See Also:
    • getMostPopularLabelsInSpace

      List<LabelSearchResult> getMostPopularLabelsInSpace(String key)
      Retrieve the list of the DEFAULT_LABEL_COUNT most used labels in the specific space, ordered from most popular to least popular.

      This function does not return the labels itself, but wrapped into a search result with a count!

      Parameters:
      key - the space key
      Returns:
      a list of label search result instances in order of their popularity.
      See Also:
    • getMostPopularLabelsInSpace

      List<LabelSearchResult> getMostPopularLabelsInSpace(String key, int maxResults)
      Retrieve a list of the 'n' most used labels in the specified space, ordered from most popular to least popular.

      This function does not return the labels itself, but wrapped into a search result with a count!

      Parameters:
      key - is the space key
      maxResults - is the maximum number of labels to be returned.
      Returns:
      a list of label search result instances in order of their popularity.
      See Also:
    • getMostPopularLabelsWithRanks

      Set<RankedLabelSearchResult> getMostPopularLabelsWithRanks(Comparator<? super RankedLabelSearchResult> comparator)
      Retrieve a set of the DEFAULT_LABEL_COUNT most popular labels within the system, including their ranks and ordered using the compartor provided.
      Returns:
      an ordered set of ranked label search result instances
      See Also:
    • getMostPopularLabelsWithRanks

      Set<RankedLabelSearchResult> getMostPopularLabelsWithRanks(int maxResults, Comparator<? super RankedLabelSearchResult> comparator)
      Retrieve the most popular labels within the system, including their ranks and ordered using the comparator provided. The number of labels returned can be specified through the count parameter. If the count value is greater than the number of labels, then all labels will be returned.

      This function does not return the labels itself, but wrapped into a search result with a count!

      Parameters:
      maxResults - is the maximum number of labels to be returned.
      Returns:
      an ordered set of ranked label search result instances
      See Also:
    • getMostPopularLabelsWithRanksInSpace

      Set<RankedLabelSearchResult> getMostPopularLabelsWithRanksInSpace(String key, int maxResults, Comparator<? super RankedLabelSearchResult> comparator)
      Retrieve a set of the 'n' most used labels in the specified space, ordered using the compartor given.

      This function does not return the labels itself, but wrapped into a search result with a count!

      Parameters:
      key - is the space key
      maxResults - is the maximum number of labels to be returned.
      Returns:
      an ordered set of rankded label search result instances
      See Also:
    • getRecentlyUsedLabels

      List<Label> getRecentlyUsedLabels()
      Retrieve the DEFAULT_LABEL_COUNT most recently used labels within the system.
      Returns:
      a list of label instances in order of most recently used to least recently used.
      See Also:
    • getRecentlyUsedLabels

      List<Label> getRecentlyUsedLabels(int maxResults)
      Retrieve the x most recently used labels.
      Parameters:
      maxResults - is the maximum number of labels to be returned.
      Returns:
      a list of label instances in order of most recently used to least recently used.
    • getRecentlyUsedLabellings

      List<Labelling> getRecentlyUsedLabellings(int maxResults)
    • getRecentlyUsedLabelsInSpace

      List<Label> getRecentlyUsedLabelsInSpace(String spaceKey)
      Retrieve the DEFAULT_LABEL_COUNT most recently used labels within the specified space.
      Parameters:
      spaceKey - identifies the space to which the results are restricted.
      Returns:
      a list of label instances in order of most recently used to least recently used.
      See Also:
    • getRecentlyUsedLabelsInSpace

      List<Label> getRecentlyUsedLabelsInSpace(String spaceKey, int maxResults)
      Retrieve the most recently used labels within the specified spae.
      Parameters:
      spaceKey -
      maxResults - is the maximum number of labels to be returned.
      Returns:
      a list of label instances in order of the most recently used to least recently used.
    • getRecentlyUsedLabellingsInSpace

      List<Labelling> getRecentlyUsedLabellingsInSpace(String spaceKey, int maxResults)
    • getSuggestedLabels

      List<Label> getSuggestedLabels(Labelable content)
      Retrieve the DEFAULT_LABEL_COUNT suggested labels for the specified content. The process used to identify 'suggested' labels may change and therefore is not defined here.
      Parameters:
      content -
      Returns:
      a list of label instances. The order of these labels is undefined.
      Since:
      4.2
      See Also:
    • getSuggestedLabels

      List<Label> getSuggestedLabels(Labelable content, int maxResults)
      Retrieve the suggested labels for the specified content. The process used to identify 'suggested' labels may change and therefore is not defined here.
      Parameters:
      maxResults - is the maximum number of labels to be returned.
      Returns:
      a list of label instances. The order of these labels is undefined.
      Since:
      4.2
    • getSuggestedLabelsInSpace

      List<Label> getSuggestedLabelsInSpace(Labelable content, String spaceKey)
      Retrieve the DEFAULT_LABEL_COUNT suggested labels for the specified content bound to the specified space.
      Parameters:
      content -
      spaceKey -
      Returns:
      a list of label instances. The order of these labels is undefined.
      Since:
      4.2
      See Also:
    • getSuggestedLabelsInSpace

      List<Label> getSuggestedLabelsInSpace(Labelable content, String spaceKey, int maxResults)
      Retrieve the suggested labels for the specified content bound to the specified space.
      Parameters:
      content -
      spaceKey -
      maxResults - is the maximum number of labels to be returned.
      Returns:
      a list of label instances. The order of these labels is undefined.
      Since:
      4.2
    • getRelatedLabels

      List<Label> getRelatedLabels(Label label)
      Retrieve the DEFAULT_LABEL_COUNT labels that are 'related' to the specified label. The process used to identify 'related' labels may change and therefore is not define here.
      Parameters:
      label -
      Returns:
      a list of label instances. The order of these labels is undefined.
      See Also:
    • getRelatedLabels

      List<Label> getRelatedLabels(Label label, int maxResults)
      Retrieve the labels that are 'related' to the specified label. The process used to identify 'related' labels may change and therefore is not defined here.
      Parameters:
      maxResults - is the maximum number of labels to be returned.
      Returns:
      a list of label instances. The order of these labels is undefined.
    • getRelatedLabels

      List<Label> getRelatedLabels(List<? extends Label> labels, String spaceKey, int maxResultsPerLabel)
      Retrieve the labels that are 'related' to the labels in the list. The process used to identify 'related' labels may change and therefore is not defined here.
      Parameters:
      spaceKey - - may be null to search globally
      maxResultsPerLabel - is the maximum number of labels to be returned for each label.
      Returns:
      a list of label instances. The order of these labels is undefined.
    • getRelatedLabelsInSpace

      List<Label> getRelatedLabelsInSpace(Label label, String spaceKey)
      Retrieve the DEFAULT_LABEL_COUNT labels that are 'related' to the specified label and that are used to label content within the specified space.
      Parameters:
      label -
      spaceKey -
      Returns:
      a list of label instances. The order of these labels is undefined.
      See Also:
    • getRelatedLabelsInSpace

      List<Label> getRelatedLabelsInSpace(Label label, String spaceKey, int maxResults)
      Retrieve the labels that are 'related' to the specified label and that are used to to label content within the specified space.
      Parameters:
      label -
      spaceKey -
      maxResults -
      Returns:
      a list of label instance. The order of these labels is undefined.
    • getSpacesContainingContentWithLabel

      List<Space> getSpacesContainingContentWithLabel(Label label)
      Look up the spaces that have been labelled by the specific label.
      Parameters:
      label -
      Returns:
      a list of Spaces. The order of these labels is undefined.
    • getUsersLabels

      List<Label> getUsersLabels(String owner)
      Retrieve the personal labels that belong to the specified user.
      Parameters:
      owner -
    • getTeamLabels

      List<Label> getTeamLabels()
      Retrieve all of the team labels in the system.
      Returns:
      a list of labels with the namespace Namespace.TEAM
    • getTeamLabels

      default List<Label> getTeamLabels(String name)
      Retrieve all of the team labels in the system with name.
      Returns:
      a list of labels with the namespace Namespace.TEAM
    • getTeamLabelsForSpace

      List<Label> getTeamLabelsForSpace(String spaceKey)
      Retrieve all of the team labels used to label content in the specified space.
      Parameters:
      spaceKey -
      Returns:
      a list of team labels with the namespace Namespace.TEAM. The order of the list is undefined.
    • getTeamLabelsForSpaces

      List<Label> getTeamLabelsForSpaces(Collection<Space> spaces)
      Retrieve all of the team labels used to label content in the specified spaces.
      Parameters:
      spaces - collection of spaces whose labels to get
      Returns:
      a list of team labels with the namespace Namespace.TEAM. The order of the list is undefined.
    • getCurrentContentForLabel

      @Deprecated List<? extends Labelable> getCurrentContentForLabel(Label label)
      Deprecated.
      Get all content associated with a label and space Get all current content associated with a label and any space. Content in the trash will not be returned.
      Returns:
      a list of Labelables, sorted by last modification date
    • getCurrentContentForLabelAndSpace

      @Deprecated List<? extends Labelable> getCurrentContentForLabelAndSpace(Label label, String spaceKey)
      Get all current content associated with a label and space. Content in the trash will not be returned.
      Returns:
      a list of Labelable
    • getCurrentContentWithPersonalLabel

      List<? extends Labelable> getCurrentContentWithPersonalLabel(String username)
      Get all current content labelled by a user
    • getSpacesWithLabel

      List<Space> getSpacesWithLabel(Label label)
      Spaces cannot be directly labelled. Howevever, their space descriptions can. This method searches for all space descriptions with the label passed in
      Parameters:
      label -
      Returns:
      list of spaces associated with matching space descriptions
    • getFavouriteSpaces

      List<Space> getFavouriteSpaces(String username)
      Parameters:
      username - username of label owner
    • getFavouriteLabellingsByContentIds

      List<Labelling> getFavouriteLabellingsByContentIds(Collection<ContentId> contentIds, com.atlassian.sal.api.user.UserKey userKey)
      Get the labellings that represent the favourite labellings for the given user on the given content.
      Parameters:
      contentIds - the contentIds to get favourite labellings for
      userKey - the key of the user to get favourite labellings for
      Returns:
      the labellings that represent the favourite labellings for the given user on the given content.
      Since:
      5.9.1
    • getRecentlyUsedPersonalLabels

      List<Label> getRecentlyUsedPersonalLabels(String username)
      Retrieve the labels that were recently used by currently authenticated user. 'Recently Used' includes labels that the user recently added, created, removed and deleted.

      Note: labels in this list may or may not exist.

      The UserHistory can be retrieved from the session via the ActionContext (if using an action) or the Execution Context (DWR)

      Parameters:
      username - the user history from the session
      Returns:
      a list of labels
    • getRecentlyUsedPersonalLabels

      List<Label> getRecentlyUsedPersonalLabels(String username, int maxResults)
      Retrieve the labels that were recently used by currently authenticated user. 'Recently Used' includes labels that the user recently added, created, removed and deleted.

      Note: labels in this list may or may not exist.

      The UserHistory can be retrieved from the session via the ActionContext (if using an action) or the Execution Context (DWR)

      Parameters:
      maxResults - the maximum number of results to return to the user
      username - the user history from the session
      Returns:
      a list of labels
    • getRecentlyUsedPersonalLabellings

      List<Labelling> getRecentlyUsedPersonalLabellings(String username, int maxResults)
    • getContent

      @Deprecated List<? extends Labelable> getContent(Label label)
      Deprecated.
      since 5.3. Use a method like getContentForLabel(int, int, Label) that provides a specific return type.
      Get all content associated with a label Get all versions of content associated with a label and any space. Content in the trash WILL be returned.
      Returns:
      a list of Labelables
    • getContentCount

      int getContentCount(Label label)
    • createLabel

      @Transactional Label createLabel(Label label)
    • getContentForAllLabels

      @Deprecated List<? extends Labelable> getContentForAllLabels(Collection<Label> labels, int maxResults, int offset)
      Deprecated.
    • getContentForLabel

      PartialList<ContentEntityObject> getContentForLabel(int offset, int maxResults, Label label)
      Retrieve current ContentEntityObjects which are labelled with the provided label.

      ContentEntityObjects in the Trash will *not* be returned.

      Parameters:
      offset - the offset into the results
      maxResults - the maximum number of results to return
      label - label which must appear on ContentEntityObjects
      Returns:
      a partial list of ContentEntityObjects labelled with the labels provided
    • getForLabel

      <T extends EditableLabelable> PartialList<T> getForLabel(Class<T> labelableClass, int offset, int maxResults, Label label)
      Retrieve EditableLabelables of the supplied type which are labelled with the provided label.

      ContentEntityObjects in the Trash *will* be returned.

      Parameters:
      labelableClass - the type of labelable to return. Use one of these values:
      • ContentEntityObject.class - all CEO labelings except Attachments
      • Attachment.class - all attachment labellings
      • PageTemplate.class - all page template labellings
      offset - the offset into the results
      maxResults - the maximum number of results to return
      label - label which must appear on labelables
      Returns:
      a partial list of EditableLabelables labelled with the labels provided
    • getForLabels

      <T extends EditableLabelable> PartialList<T> getForLabels(Class<T> labelableClass, int offset, int maxResults, Label... labels)
      Retrieve EditableLabelables of the supplied type which are labelled with the provided labels.

      ContentEntityObjects in the Trash will *not* be returned.

      Parameters:
      labelableClass - the type of labelable to return. Use one of these values:
      • ContentEntityObject.class - all CEO labelings except Attachments
      • Attachment.class - all attachment labellings
      • PageTemplate.class - all page template labellings
      offset - the offset into the results
      maxResults - the maximum number of results to return
      labels - labels which must all appear on labelables
      Returns:
      a partial list of EditableLabelables labelled with the labels provided
    • getForLabels

      PartialList<EditableLabelable> getForLabels(int offset, int maxResults, Label... labels)
      Retrieve EditableLabelables of any type which are labelled with the provided labels.

      ContentEntityObjects in the Trash *will* be returned.

      Parameters:
      offset - the offset into the results
      maxResults - the maximum number of results to return
      labels - labels which must all appear on labelables
      Returns:
      a partial list of EditableLabelables labelled with the labels provided
    • getContentForAllLabels

      PartialList<ContentEntityObject> getContentForAllLabels(int offset, int maxResults, Label... labels)
      Retrieve current ContentEntityObjects which are labelled with ALL provided labels.

      ContentEntityObjects in the Trash will *not* be returned.

      Parameters:
      offset - the offset into the results
      maxResults - the maximum number of results to return
      labels - labels which must appear on ContentEntityObjects
      Returns:
      a partial list of ContentEntityObjects labelled with the labels provided
    • getContentInSpaceForLabel

      PartialList<ContentEntityObject> getContentInSpaceForLabel(int offset, int maxResults, String spaceKey, Label label)
      Retrieve current ContentEntityObjects in the given space which are labelled with the provided label.

      ContentEntityObjects in the Trash will *not* be returned.

      Parameters:
      offset - the offset into the results
      maxResults - the maximum number of results to return
      spaceKey - the key of the space to search content in
      label - label which must appear on ContentEntityObjects
      Returns:
      a partial list of ContentEntityObjects labelled with the labels provided
    • getContentInSpaceForAllLabels

      PartialList<ContentEntityObject> getContentInSpaceForAllLabels(int offset, int maxResults, String spaceKey, Label... labels)
      Retrieve current ContentEntityObjects in the given space which are labelled with ALL provided labels.

      ContentEntityObjects in the Trash will *not* be returned.

      Parameters:
      offset - the offset into the results
      maxResults - the maximum number of results to return
      spaceKey - the key of the space to search content in
      labels - labels which must appear on ContentEntityObjects
      Returns:
      a partial list of ContentEntityObjects labelled with the labels provided
    • getContentInSpacesForAllLabels

      PartialList<ContentEntityObject> getContentInSpacesForAllLabels(int offset, int maxResults, Set<String> spaceKeys, Label... labels)
      Retrieve current ContentEntityObjects in the given spaces which are labelled with ALL provided labels.

      ContentEntityObjects in the Trash will *not* be returned.

      Parameters:
      offset - the offset into the results
      maxResults - the maximum number of results to return
      spaceKeys - the keys of the spaces to search content in
      labels - labels which must appear on ContentEntityObjects
      Returns:
      a partial list of ContentEntityObjects labelled with the labels provided
    • getAllContentForLabel

      PartialList<ContentEntityObject> getAllContentForLabel(int offset, int maxResults, Label label)
      Retrieve all ContentEntityObjects, current or deleted which are labelled with the provided label.

      ContentEntityObjects in the Trash *will* be returned.

      Parameters:
      offset - the offset into the results
      maxResults - the maximum number of results to return
      label - label which must appear on ContentEntityObjects
      Returns:
      a partial list of ContentEntityObjects labelled with the labels provided
    • getAllContentForAllLabels

      PartialList<ContentEntityObject> getAllContentForAllLabels(int offset, int maxResults, Label... labels)
      Retrieve all ContentEntityObjects, current or deleted which are labelled with ALL provided labels.

      ContentEntityObjects in the Trash *will* be returned.

      Parameters:
      offset - the offset into the results
      maxResults - the maximum number of results to return
      labels - labels which must appear on ContentEntityObjects
      Returns:
      a partial list of ContentEntityObjects labelled with the labels provided
    • getMostPopularLabelsInSpaceLite

      @ExperimentalApi List<LiteLabelSearchResult> getMostPopularLabelsInSpaceLite(String spaceKey, int maxResults)
      Returns most used labels. Similar to getMostPopularLabelsInSpace, but returns lite objects (no references to hibernate objects).
      Parameters:
      spaceKey - - space key
      maxResults - - limit
      Returns:
      list of LiteLabelSearchResult
      Since:
      7.7.0
    • getMostPopularLabelsInSiteLite

      @ExperimentalApi List<LiteLabelSearchResult> getMostPopularLabelsInSiteLite(int maxResults)
      Returns most used labels across the site. Similar to getMostPopularLabels, but returns lite objects (no references to hibernate objects). Note: implementation would limit the amount of labels.
      Parameters:
      maxResults - - max results
      Returns:
      list of LiteLabelSearchResult
      Since:
      7.7.0
    • calculateRanksForLiteLabels

      @ExperimentalApi @Transactional Set<RankedLiteLabelSearchResult> calculateRanksForLiteLabels(List<LiteLabelSearchResult> labelList, Comparator<? super RankedLiteLabelSearchResult> comparator)
      Calculate ranks for input labels. Ranks reflect the frequency of labels. Rank 1 is used for the most popular labels. Rank 10 is used for the least popular labels
      Parameters:
      labelList - - list of labels
      comparator - - comparator
      Returns:
      list of labels with calculated ranks
      Since:
      7.7.0
    • findGlobalLabelsByNamePrefix

      PartialList<Label> findGlobalLabelsByNamePrefix(int offset, int maxResults, String namePrefix)
      Returns global-namespaced labels starting with the given string.
      Since:
      7.17
    • findTeamLabelsByNamePrefix

      PartialList<Label> findTeamLabelsByNamePrefix(int offset, int maxResults, String namePrefix)
      Returns team-namespaced labels starting with the given string.
      Since:
      7.17