Class IdGenerator
- java.lang.Object
-
- org.commonmark.ext.heading.anchor.IdGenerator
-
public class IdGenerator extends java.lang.ObjectGenerates strings to be used as identifiers.Use
builder()to create an instance.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classIdGenerator.Builder
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static IdGenerator.Builderbuilder()java.lang.StringgenerateId(java.lang.String text)Generate an ID based on the provided text and previously generated IDs.
-
-
-
Method Detail
-
builder
public static IdGenerator.Builder builder()
- Returns:
- a new builder with default arguments
-
generateId
public java.lang.String generateId(java.lang.String text)
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.
-
-