Rather than having to go to upper case for each identifier being
looked up, cache a lower-case version of
BindingMapping.WINDOWS_RESERVED_WORDS.
Change-Id: I1fe5f89cfd2b443b059bde3c5250c916b33b0978
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
private static final CharMatcher DASH_OR_SPACE_MATCHER = CharMatcher.anyOf(" -");
private static final Splitter DOT_SPLITTER = Splitter.on('.');
private static final CharMatcher DASH_OR_SPACE_MATCHER = CharMatcher.anyOf(" -");
private static final Splitter DOT_SPLITTER = Splitter.on('.');
+ // Converted to lower case
+ private static final Set<String> WINDOWS_RESERVED_WORDS = BindingMapping.WINDOWS_RESERVED_WORDS.stream()
+ .map(String::toLowerCase).collect(ImmutableSet.toImmutableSet());
+
private JavaIdentifierNormalizer() {
throw new UnsupportedOperationException("Util class");
}
private JavaIdentifierNormalizer() {
throw new UnsupportedOperationException("Util class");
}
// if part of package name consist from java or windows reserved word, return it with
// underscore at the end and in lower case
final String lowerPart = packageNamePart.toLowerCase();
// if part of package name consist from java or windows reserved word, return it with
// underscore at the end and in lower case
final String lowerPart = packageNamePart.toLowerCase();
- if (BindingMapping.JAVA_RESERVED_WORDS.contains(lowerPart)
- || BindingMapping.WINDOWS_RESERVED_WORDS.contains(packageNamePart.toUpperCase())) {
+ if (BindingMapping.JAVA_RESERVED_WORDS.contains(lowerPart) || WINDOWS_RESERVED_WORDS.contains(lowerPart)) {
return lowerPart + UNDERSCORE;
}
return lowerPart + UNDERSCORE;
}
* @return - java acceptable identifier
*/
public static String normalizeSpecificIdentifier(final String identifier, final JavaIdentifier javaIdentifier) {
* @return - java acceptable identifier
*/
public static String normalizeSpecificIdentifier(final String identifier, final JavaIdentifier javaIdentifier) {
- final StringBuilder sb = new StringBuilder();
-
// if identifier isn't PACKAGE type then check it by reserved keywords
// if identifier isn't PACKAGE type then check it by reserved keywords
- if(javaIdentifier != JavaIdentifier.PACKAGE) {
- if (BindingMapping.JAVA_RESERVED_WORDS.contains(identifier.toLowerCase())
- || BindingMapping.WINDOWS_RESERVED_WORDS.contains(identifier.toUpperCase())) {
- return fixCasesByJavaType(
- sb.append(identifier).append(UNDERSCORE).append(RESERVED_KEYWORD).toString().toLowerCase(),
- javaIdentifier);
+ if (javaIdentifier != JavaIdentifier.PACKAGE) {
+ final String lower = identifier.toLowerCase();
+ if (BindingMapping.JAVA_RESERVED_WORDS.contains(lower) || WINDOWS_RESERVED_WORDS.contains(lower)) {
+ return fixCasesByJavaType(lower + UNDERSCORE + RESERVED_KEYWORD, javaIdentifier);
}
}
// check and convert first char in identifier if there is non-java char
}
}
// check and convert first char in identifier if there is non-java char
+ final StringBuilder sb = new StringBuilder();
final char firstChar = identifier.charAt(FIRST_CHAR);
if (!Character.isJavaIdentifierStart(firstChar)) {
// converting first char of identifier
final char firstChar = identifier.charAt(FIRST_CHAR);
if (!Character.isJavaIdentifierStart(firstChar)) {
// converting first char of identifier