final class DefaultNameGenerator extends java.lang.Object implements NameGenerator
This class is not thread safe.
Modifier and Type | Class and Description |
---|---|
private static class |
DefaultNameGenerator.CharPriority
Represents a char that can be used in renaming as well as how often
that char appears in the generated code.
|
Modifier and Type | Field and Description |
---|---|
(package private) static char[] |
FIRST_CHAR
Generate short name with this first character
|
private DefaultNameGenerator.CharPriority[] |
firstChars |
private int |
nameCount |
(package private) static char[] |
NONFIRST_CHAR
These appear after after the first character
|
private DefaultNameGenerator.CharPriority[] |
nonFirstChars |
private java.lang.String |
prefix |
private java.util.Map<java.lang.Character,DefaultNameGenerator.CharPriority> |
priorityLookupMap |
private java.util.Set<java.lang.String> |
reservedNames |
Modifier | Constructor and Description |
---|---|
|
DefaultNameGenerator() |
|
DefaultNameGenerator(java.util.Set<java.lang.String> reservedNames,
java.lang.String prefix,
char[] reservedCharacters)
Creates a DefaultNameGenerator.
|
private |
DefaultNameGenerator(java.util.Set<java.lang.String> reservedNames,
java.lang.String prefix,
char[] reservedCharacters,
java.util.Map<java.lang.Character,DefaultNameGenerator.CharPriority> priorityLookupMap) |
Modifier and Type | Method and Description |
---|---|
private void |
buildPriorityLookupMap() |
private void |
checkPrefix(java.lang.String prefix)
Validates a name prefix.
|
NameGenerator |
clone(java.util.Set<java.lang.String> reservedNames,
java.lang.String prefix,
char[] reservedCharacters)
Returns a clone of this NameGenerator, reconfigured and reset.
|
private static boolean |
contains(DefaultNameGenerator.CharPriority[] arr,
char c) |
(package private) void |
favors(java.lang.CharSequence sequence)
Increase the prioritization of all the chars in a String.
|
java.lang.String |
generateNextName()
Generates the next short name.
|
(package private) DefaultNameGenerator.CharPriority[] |
reserveCharacters(char[] chars,
char[] reservedCharacters)
Provides the array of available characters based on the specified arrays.
|
void |
reset(java.util.Set<java.lang.String> reservedNames,
java.lang.String prefix,
char[] reservedCharacters)
Note that the history of what characters are most used in the program
(set through calls to 'favor') is not deleted.
|
private java.util.Map<java.lang.Character,DefaultNameGenerator.CharPriority> priorityLookupMap
static final char[] FIRST_CHAR
static final char[] NONFIRST_CHAR
private java.util.Set<java.lang.String> reservedNames
private java.lang.String prefix
private int nameCount
private DefaultNameGenerator.CharPriority[] firstChars
private DefaultNameGenerator.CharPriority[] nonFirstChars
public DefaultNameGenerator()
public DefaultNameGenerator(java.util.Set<java.lang.String> reservedNames, java.lang.String prefix, @Nullable char[] reservedCharacters)
reservedNames
- set of names that are reserved; generated names will
not include these names. This set is referenced rather than copied,
so changes to the set will be reflected in how names are generated.prefix
- all generated names begin with this prefix.reservedCharacters
- If specified these characters won't be used in
generated namesprivate DefaultNameGenerator(java.util.Set<java.lang.String> reservedNames, java.lang.String prefix, @Nullable char[] reservedCharacters, java.util.Map<java.lang.Character,DefaultNameGenerator.CharPriority> priorityLookupMap)
private void buildPriorityLookupMap()
public void reset(java.util.Set<java.lang.String> reservedNames, java.lang.String prefix, @Nullable char[] reservedCharacters)
reset
in interface NameGenerator
reservedNames
- set of names that are reserved; generated names will
not include these names. This set is referenced rather than copied,
so changes to the set will be reflected in how names are generated.prefix
- all generated names begin with this prefix.reservedCharacters
- If specified these characters won't be used in
generated namespublic NameGenerator clone(java.util.Set<java.lang.String> reservedNames, java.lang.String prefix, @Nullable char[] reservedCharacters)
NameGenerator
clone
in interface NameGenerator
void favors(java.lang.CharSequence sequence)
reset(java.util.Set<java.lang.String>, java.lang.String, char[])
is called. A compiler would be
able to generate names while changing the prioritization of the name
generator for the next pass.DefaultNameGenerator.CharPriority[] reserveCharacters(char[] chars, char[] reservedCharacters)
chars
- The list of characters that are legalreservedCharacters
- The characters that should not be usedprivate void checkPrefix(java.lang.String prefix)
private static boolean contains(DefaultNameGenerator.CharPriority[] arr, char c)
public java.lang.String generateNextName()
generateNextName
in interface NameGenerator