Interface LabelManager

    • Method Detail

      • 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 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​(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​(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:
        LabelSearchResult
      • 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:
        DEFAULT_LABEL_COUNT, LabelSearchResult
      • 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:
        LabelSearchResult
      • 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:
        RankedLabelSearchResult
      • 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:
        RankedLabelSearchResult
      • 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:
        DEFAULT_LABEL_COUNT
      • 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:
        DEFAULT_LABEL_COUNT
      • 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:
        DEFAULT_LABEL_COUNT
      • 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:
        DEFAULT_LABEL_COUNT
      • 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:
        DEFAULT_LABEL_COUNT
      • 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:
        DEFAULT_LABEL_COUNT
      • 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
      • 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 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)
      • 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 EditableLabelablePartialList<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 EditableLabelablePartialList<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