Class IdGenerator
java.lang.Object
org.commonmark.ext.heading.anchor.IdGenerator
Generates strings to be used as identifiers.
Use builder() to create an instance.
-
Nested Class Summary
Nested Classes -
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic IdGenerator.Builderbuilder()private static PatterngenerateId(String text) Generate an ID based on the provided text and previously generated IDs.private StringnormalizeText(String text) Assume we've been given a space separated text.
-
Field Details
-
allowedCharacters
-
identityMap
-
prefix
-
suffix
-
defaultIdentifier
-
-
Constructor Details
-
IdGenerator
-
-
Method Details
-
builder
- Returns:
- a new builder with default arguments
-
generateId
Generate an ID based on the provided text and previously generated IDs.
This method is not thread safe, concurrent calls can end up with non-unique identifiers.
Note that collision can occur in the case that
- Method called with 'X'
- Method called with 'X' again
- Method called with 'X-1'
In that case, the three generated IDs will be:
- X
- X-1
- X-1
Therefore if collisions are unacceptable you should ensure that numbers are stripped from end of
text.- Parameters:
text- Text that the identifier should be based on. Will be normalised, then used to generate the identifier.- Returns:
textif this is the first instance that thetexthas been passed to the method. Otherwise,text + "-" + Xwill be returned, where X is the number of times thattexthas previously been passed in. Iftextis empty, the default identifier given in the constructor will be used.
-
compileAllowedCharactersPattern
-
normalizeText
Assume we've been given a space separated text.- Parameters:
text- Text to normalize to an ID
-