Package com.atlassian.confluence.util
Class LabelUtil
- java.lang.Object
-
- com.atlassian.confluence.util.LabelUtil
-
public final class LabelUtil extends Object
Utility class designed to assist dealing with the client interface. In particular, the conversion from a string to a label and back, and the conversion from a list of strings to a list of labels and back.
-
-
Field Summary
Fields Modifier and Type Field Description static String
LABEL_DELIM
The canonical delimiter in outputstatic String
LABEL_DELIM_CHARS
The characters accepted as label delimitersstatic String
LABELS_STRING
The name of the form field containing the space separated labelsstatic int
MAX_ALLOWED_LABELS
The maximum number of labels allowed on a page or space.static int
MAX_ALLOWED_LABELS_PER_INPUT
The maximum number of labels we allow to be entered via a single sumbission from the user interface.
-
Constructor Summary
Constructors Constructor Description LabelUtil()
-
Method Summary
All Methods Static Methods Concrete Methods Deprecated Methods Modifier and Type Method Description static Label
addLabel(String labelReference, LabelManager labelManager, Labelable object)
Adds the label to the specified object.static Label
addLabel(String labelReference, LabelManager labelManager, Labelable object, ConfluenceUser user)
Adds the label to the specified object.static String
convertToDelimitedString(Labelable obj, com.atlassian.user.User user)
Helper method converting list of labels associated with the labelable object into a space separated string of the label names.static String
convertToDelimitedString(List names)
static int
countLabelNamesWithoutFavourites(Collection<String> labelNames)
Deprecated.since 6.0 , use {countParsedLabelNamesWithoutFavourites(Collection)
}static int
countLabels(String input)
Counts the labels present in an input string.static int
countLabelsWithoutFavourites(String labelsString)
Counts the labels present in an input string.static int
countLabelsWithoutFavourites(Collection<Label> labels)
Counts the labels present in an input collection.static int
countParsedLabelNamesWithoutFavourites(Collection<ParsedLabelName> labels)
Counts the labels present in an input collection.static List<Label>
extractLabelsFromLabellings(List<Labelling> labellings)
Simple utility method to extract the label instances from the given list of labelling instances.static void
fixLabels(List suggestedLabels)
static com.atlassian.core.util.filter.ListFilter
getLabelFilters(com.atlassian.user.User user, boolean hideSpecialLabels)
returns only labels the user can see and also strips out special labels if 'hideSpecialLabels' flag is setstatic com.google.common.base.Predicate<Label>
getLabelPredicate(com.atlassian.user.User user, boolean hideSpecialLabels)
Deprecated.since 7.0.1.static List<Label>
getLabelsFor(String labels, LabelManager labelManager)
static String
getLabelsHash(List<Label> labels)
static List
getRecentAndPopularLabels(String spaceKey, LabelManager labelManager, int maxResults, String user)
static List
getRecentAndPopularLabelsForEntity(ContentEntityObject entity, LabelManager labelManager, int maxResults, String user)
static List
getVisibleLabelNames(List labels, String username)
Get a list of the visible label names for this content.static boolean
isFavouriteLabel(@Nullable ParsedLabelName label)
Checks if the given label is of "Favourite" type (LabelManager.FAVOURITE_LABEL
orLabelManager.FAVOURITE_LABEL_YANKEE
).static boolean
isFavouriteLabel(Label label)
Checks if the given label is of "Favourite" type (LabelManager.FAVOURITE_LABEL
orLabelManager.FAVOURITE_LABEL_YANKEE
).static boolean
isFavouriteLabel(String labelName)
Deprecated.since 6.0, useisFavouriteLabel(ParsedLabelName)
static boolean
isValidLabelLength(String input)
static boolean
isValidLabelLengths(String concatenatedLabelNames)
static boolean
isValidLabelLengths(Collection labelNames)
static boolean
isValidLabelName(String labelName)
static boolean
isValidLabelNames(String delimitedLabelNames)
static boolean
isValidLabelNames(Collection names)
static String
joinIds(List labels, String separator)
static Predicate<Label>
labelPredicate(com.atlassian.user.User user, boolean hideSpecialLabels)
static List
rankResults(List results)
static void
recordLabelInteractionInHistory(Label label)
static List<String>
split(String input)
Split the input string according to the label delimitation rules.static boolean
syncState(String source, LabelManager labelManager, com.atlassian.user.User user, Labelable dest)
Neat method that will synchronize a space separated list of label names with the labels contained within the labelable object.static boolean
syncState(String source, LabelManager labelManager, com.atlassian.user.User user, Labelable dest, boolean ignored)
Deprecated.since 5.1.static boolean
syncState(Collection<String> labelNames, LabelManager labelManager, com.atlassian.user.User user, Labelable dest)
static boolean
syncState(List<Label> source, LabelManager labelManager, com.atlassian.user.User user, Labelable dest)
-
-
-
Field Detail
-
LABEL_DELIM_CHARS
public static final String LABEL_DELIM_CHARS
The characters accepted as label delimiters- See Also:
- Constant Field Values
-
LABEL_DELIM
public static final String LABEL_DELIM
The canonical delimiter in output- See Also:
- Constant Field Values
-
MAX_ALLOWED_LABELS_PER_INPUT
public static final int MAX_ALLOWED_LABELS_PER_INPUT
The maximum number of labels we allow to be entered via a single sumbission from the user interface.- See Also:
- Constant Field Values
-
MAX_ALLOWED_LABELS
public static final int MAX_ALLOWED_LABELS
The maximum number of labels allowed on a page or space.- See Also:
- Constant Field Values
-
LABELS_STRING
public static final String LABELS_STRING
The name of the form field containing the space separated labels- See Also:
- Constant Field Values
-
-
Method Detail
-
convertToDelimitedString
public static String convertToDelimitedString(Labelable obj, com.atlassian.user.User user)
Helper method converting list of labels associated with the labelable object into a space separated string of the label names.
-
isValidLabelNames
public static boolean isValidLabelNames(String delimitedLabelNames)
- Parameters:
delimitedLabelNames
- contains a list of label names delimited byLABEL_DELIM_CHARS
- Returns:
- true if the delimitedLabelNames represents a string of valid label names, false otherwise.
-
isValidLabelNames
public static boolean isValidLabelNames(Collection names)
- Parameters:
names
- a collection of label names asString
s.- Returns:
- true if the delimitedLabelNames represents a string of valid label names, false otherwise.
-
isValidLabelName
public static boolean isValidLabelName(String labelName)
-
isValidLabelLengths
public static boolean isValidLabelLengths(String concatenatedLabelNames)
-
isValidLabelLengths
public static boolean isValidLabelLengths(Collection labelNames)
-
isValidLabelLength
public static boolean isValidLabelLength(String input)
-
getVisibleLabelNames
public static List getVisibleLabelNames(List labels, String username)
Get a list of the visible label names for this content. System labels and personal labels that do not belong to this user will be stripped. Visible non-global label names will have their namespace prefixed( i.e. my:foo, team:bar)
-
split
public static List<String> split(String input)
Split the input string according to the label delimitation rules.- Parameters:
input
- space separated string of labels- Returns:
- a collection of strings, each representing a label name, in the order in which they appeared in the original input. Duplicates excluded.
-
countLabels
public static int countLabels(String input)
Counts the labels present in an input string. Counts each appearance of duplicate labels.- Parameters:
input
- a string of labels delimited by the characters inLABEL_DELIM_CHARS
. May be null or empty.- Returns:
- the number of labels present in the string. Returns 0 for empty or null strings.
-
isFavouriteLabel
@Deprecated public static boolean isFavouriteLabel(String labelName)
Deprecated.since 6.0, useisFavouriteLabel(ParsedLabelName)
Checks if the given label is of "Favourite" type (LabelManager.FAVOURITE_LABEL
orLabelManager.FAVOURITE_LABEL_YANKEE
).- Parameters:
labelName
- labelName- Returns:
true
if the argument name represents "favourite" label
-
isFavouriteLabel
public static boolean isFavouriteLabel(@Nullable ParsedLabelName label)
Checks if the given label is of "Favourite" type (LabelManager.FAVOURITE_LABEL
orLabelManager.FAVOURITE_LABEL_YANKEE
).- Parameters:
label
- parsed label- Returns:
true
if the argument name represents "favourite" label
-
isFavouriteLabel
public static boolean isFavouriteLabel(Label label)
Checks if the given label is of "Favourite" type (LabelManager.FAVOURITE_LABEL
orLabelManager.FAVOURITE_LABEL_YANKEE
).- Parameters:
label
- label- Returns:
true
if the argument name represents "favourite" label
-
countLabelsWithoutFavourites
public static int countLabelsWithoutFavourites(String labelsString)
Counts the labels present in an input string. Counts each appearance of duplicate labels. Labels of type "Favourite" (LabelManager.FAVOURITE_LABEL
andLabelManager.FAVOURITE_LABEL_YANKEE
) are ignored.- Parameters:
labelsString
- a string of labels delimited by the characters inLABEL_DELIM_CHARS
. May be null or empty.- Returns:
- the number of labels present in the string. Returns 0 for empty or null strings.
-
countLabelNamesWithoutFavourites
@Deprecated public static int countLabelNamesWithoutFavourites(Collection<String> labelNames)
Deprecated.since 6.0 , use {countParsedLabelNamesWithoutFavourites(Collection)
}Counts the labels present in an input collection. Counts each appearance of duplicate labels. Labels of type "Favourite" (LabelManager.FAVOURITE_LABEL
andLabelManager.FAVOURITE_LABEL_YANKEE
) are ignored.- Parameters:
labelNames
- a collection of labels names- Returns:
- the number of labels present in the collection.
-
countParsedLabelNamesWithoutFavourites
public static int countParsedLabelNamesWithoutFavourites(Collection<ParsedLabelName> labels)
Counts the labels present in an input collection. Counts each appearance of duplicate labels. Labels of type "Favourite" (LabelManager.FAVOURITE_LABEL
andLabelManager.FAVOURITE_LABEL_YANKEE
) are ignored.- Parameters:
labels
- a collection of parsed labels- Returns:
- the number of labels present in the collection.
-
countLabelsWithoutFavourites
public static int countLabelsWithoutFavourites(Collection<Label> labels)
Counts the labels present in an input collection. Counts each appearance of duplicate labels. Labels of type "Favourite" (LabelManager.FAVOURITE_LABEL
andLabelManager.FAVOURITE_LABEL_YANKEE
) are ignored.- Parameters:
labels
- a collection of labels- Returns:
- the number of labels present in the collection.
-
syncState
@Deprecated public static boolean syncState(String source, LabelManager labelManager, com.atlassian.user.User user, Labelable dest, boolean ignored)
Deprecated.since 5.1. UsesyncState(String, LabelManager, User, Labelable)
Neat method that will synchronize a space separated list of label names with the labels contained within the labelable object. Labels that do not exist in the comma separated list will be removed, and labels that appear in the comma separated list will be created.- Parameters:
source
- is a space separated list of label names, eg: the following list "LabelA LabelB LabelC" will be converted into label instances with the names 'LabelA', 'LabelB' and 'LabelC'ignored
- is ignored
-
syncState
public static boolean syncState(String source, LabelManager labelManager, com.atlassian.user.User user, Labelable dest)
Neat method that will synchronize a space separated list of label names with the labels contained within the labelable object. Labels that do not exist in the comma separated list will be removed, and labels that appear in the comma separated list will be created.- Parameters:
source
- is a space separated list of label names, eg: the following list "LabelA LabelB LabelC" will be converted into label instances with the names 'LabelA', 'LabelB' and 'LabelC'
-
syncState
public static boolean syncState(List<Label> source, LabelManager labelManager, com.atlassian.user.User user, Labelable dest)
-
syncState
public static boolean syncState(Collection<String> labelNames, LabelManager labelManager, com.atlassian.user.User user, Labelable dest)
-
addLabel
public static Label addLabel(String labelReference, LabelManager labelManager, Labelable object)
Adds the label to the specified object. The label is a string in the form of an unparsed label, and is validated byisValidLabelName(String)
andisValidLabelLength(String)
.If the label can't be added, already exists, or is invalid, this method returns null.
- Returns:
- the label that was created and added or null if no label was added.
-
addLabel
public static Label addLabel(String labelReference, LabelManager labelManager, Labelable object, ConfluenceUser user)
Adds the label to the specified object. The label is a string in the form of an unparsed label, and is validated byisValidLabelName(String)
andisValidLabelLength(String)
.If the label can't be added, already exists, or is invalid, this method returns null.
- Parameters:
user
- The user to associate with the label, regardless of the label reference.- Returns:
- the label that was created and added or null if no label was added.
-
recordLabelInteractionInHistory
public static void recordLabelInteractionInHistory(Label label)
-
getRecentAndPopularLabelsForEntity
public static List getRecentAndPopularLabelsForEntity(ContentEntityObject entity, LabelManager labelManager, int maxResults, String user)
-
getRecentAndPopularLabels
public static List getRecentAndPopularLabels(String spaceKey, LabelManager labelManager, int maxResults, String user)
-
fixLabels
public static void fixLabels(List suggestedLabels)
-
extractLabelsFromLabellings
public static List<Label> extractLabelsFromLabellings(List<Labelling> labellings)
Simple utility method to extract the label instances from the given list of labelling instances.- Returns:
- a new list containing the referenced
Label
instances.
-
getLabelPredicate
@Deprecated public static com.google.common.base.Predicate<Label> getLabelPredicate(com.atlassian.user.User user, boolean hideSpecialLabels)
Deprecated.since 7.0.1. UselabelPredicate(User, boolean)
-
labelPredicate
public static Predicate<Label> labelPredicate(com.atlassian.user.User user, boolean hideSpecialLabels)
- Since:
- 7.0.1
-
getLabelFilters
public static com.atlassian.core.util.filter.ListFilter getLabelFilters(com.atlassian.user.User user, boolean hideSpecialLabels)
returns only labels the user can see and also strips out special labels if 'hideSpecialLabels' flag is set
-
getLabelsFor
public static List<Label> getLabelsFor(String labels, LabelManager labelManager)
-
-