private static final String EMPTY_STRING = "";
private static final String RESERVED_KEYWORD = "reserved_keyword";
private static final ListMultimap<String, String> PACKAGES_MAP = ArrayListMultimap.create();
- public static final Set<String> SPECIAL_RESERVED_WORDS = ImmutableSet.of("QName");
+ public static final Set<String> SPECIAL_RESERVED_PATHS =
+ ImmutableSet.of("org.opendaylight.yangtools.yang.common", "org.opendaylight.mdsal.binding.javav2.spec",
+ "java", "com");
private JavaIdentifierNormalizer() {
throw new UnsupportedOperationException("Util class");
* @return - java acceptable identifier
*/
public static String normalizeClassIdentifier(final String packageName, final String className) {
+ for (final String reservedPath : SPECIAL_RESERVED_PATHS) {
+ if (packageName.startsWith(reservedPath)) {
+ return className;
+ }
+ }
final String convertedClassName = normalizeSpecificIdentifier(className, JavaIdentifier.CLASS);
return normalizeClassIdentifier(packageName, convertedClassName, convertedClassName, FIRST_INDEX);
}
* @return - java acceptable identifier
*/
public static String normalizeSpecificIdentifier(final String identifier, final JavaIdentifier javaIdentifier) {
- if (SPECIAL_RESERVED_WORDS.contains(identifier)) {
- return identifier;
- }
-
final StringBuilder sb = new StringBuilder();
// if identifier isn't PACKAGE type then check it by reserved keywords
public class JavaIdentifierNormalizerTest {
@Test
- public void specialWordsTest(){
- String normalizeIdentifier = JavaIdentifierNormalizer.normalizeClassIdentifier("org.example.same.package", "QName");
+ public void specialPathsTest() {
+ // QName - reserved & non reserved
+ String normalizeIdentifier =
+ JavaIdentifierNormalizer.normalizeClassIdentifier("org.opendaylight.yangtools.yang.common", "QName");
assertEquals("QName", normalizeIdentifier);
+ // again reserved
+ normalizeIdentifier =
+ JavaIdentifierNormalizer.normalizeClassIdentifier("org.opendaylight.yangtools.yang.common", "QName");
+ assertEquals("QName", normalizeIdentifier);
+ // non reserved
+ normalizeIdentifier = JavaIdentifierNormalizer.normalizeClassIdentifier("qname.non.reserved", "QName");
+ assertEquals("Qname", normalizeIdentifier);
+ // again non reserved
+ normalizeIdentifier = JavaIdentifierNormalizer.normalizeClassIdentifier("qname.non.reserved", "QName");
+ assertEquals("Qname1", normalizeIdentifier);
+
+ // Augmentable - reserved & non reserved
+ normalizeIdentifier = JavaIdentifierNormalizer
+ .normalizeClassIdentifier("org.opendaylight.mdsal.binding.javav2.spec.structural", "Augmentable");
+ assertEquals("Augmentable", normalizeIdentifier);
+ // again reserved
+ normalizeIdentifier = JavaIdentifierNormalizer
+ .normalizeClassIdentifier("org.opendaylight.mdsal.binding.javav2.spec.structural", "Augmentable");
+ assertEquals("Augmentable", normalizeIdentifier);
+ // non reserved
+ normalizeIdentifier = JavaIdentifierNormalizer
+ .normalizeClassIdentifier("augmentable.non.reserved", "Augmentable");
+ assertEquals("Augmentable", normalizeIdentifier);
+ // again non reserved
+ normalizeIdentifier =
+ JavaIdentifierNormalizer.normalizeClassIdentifier("augmentable.non.reserved", "Augmentable");
+ assertEquals("Augmentable1", normalizeIdentifier);
+
+ // List - reserved & non reserved
+ normalizeIdentifier = JavaIdentifierNormalizer.normalizeClassIdentifier("java.util", "List");
+ assertEquals("List", normalizeIdentifier);
+ // again reserved
+ normalizeIdentifier = JavaIdentifierNormalizer.normalizeClassIdentifier("java.util", "List");
+ assertEquals("List", normalizeIdentifier);
+ // non reserved
+ normalizeIdentifier = JavaIdentifierNormalizer.normalizeClassIdentifier("list.non.reserved", "List");
+ assertEquals("List", normalizeIdentifier);
+ // again non reserved
+ normalizeIdentifier = JavaIdentifierNormalizer.normalizeClassIdentifier("list.non.reserved", "List");
+ assertEquals("List1", normalizeIdentifier);
+
+ // String - reserved & non reserved
+ normalizeIdentifier = JavaIdentifierNormalizer.normalizeClassIdentifier("java.lang", "String");
+ assertEquals("String", normalizeIdentifier);
+ // again reserved
+ normalizeIdentifier = JavaIdentifierNormalizer.normalizeClassIdentifier("java.lang", "String");
+ assertEquals("String", normalizeIdentifier);
+ // non reserved
+ normalizeIdentifier = JavaIdentifierNormalizer.normalizeClassIdentifier("string.non.reserved", "String");
+ assertEquals("String", normalizeIdentifier);
+ // again non reserved
+ normalizeIdentifier = JavaIdentifierNormalizer.normalizeClassIdentifier("string.non.reserved", "String");
+ assertEquals("String1", normalizeIdentifier);
}
/**