Speed up BuilderGenerator matcher 59/91359/1
authorRobert Varga <robert.varga@pantheon.tech>
Wed, 15 Jul 2020 15:43:28 +0000 (17:43 +0200)
committerRobert Varga <robert.varga@pantheon.tech>
Fri, 17 Jul 2020 08:05:58 +0000 (10:05 +0200)
We do not need to establish FQCN, as we can compare just JavaTypeNames,
which is faster.

Change-Id: I3c387e841fbf2d450195d864a928608bab8128ad
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
(cherry picked from commit d613481dfab5abd014e36fc8f77b291743c57dbf)

binding/mdsal-binding-java-api-generator/src/main/java/org/opendaylight/mdsal/binding/java/api/generator/BuilderGenerator.java

index 98d111e894950cc67073a092d960a6a92b5f8a4b..920afa5a943379539b0231028afc0a3861c887ee 100644 (file)
@@ -43,6 +43,9 @@ import org.opendaylight.yangtools.yang.binding.Augmentation;
  * class. For generation of the source code is used the template written in XTEND language.
  */
 public final class BuilderGenerator implements CodeGenerator {
+    private static final JavaTypeName AUGMENTABLE = JavaTypeName.create(Augmentable.class);
+    private static final JavaTypeName AUGMENTATION = JavaTypeName.create(Augmentation.class);
+
     private static final Comparator<MethodSignature> METHOD_COMPARATOR = new AlphabeticallyTypeMemberComparator<>();
     private static final Type AUGMENTATION_RET_TYPE;
 
@@ -68,12 +71,10 @@ public final class BuilderGenerator implements CodeGenerator {
         if (type instanceof GeneratedType && !(type instanceof GeneratedTransferObject)) {
             for (Type t : ((GeneratedType) type).getImplements()) {
                 // "rpc" and "grouping" elements do not implement Augmentable
-                if (t.getFullyQualifiedName().equals(Augmentable.class.getName())) {
-                    return true;
-                } else if (t.getFullyQualifiedName().equals(Augmentation.class.getName())) {
+                final JavaTypeName name = t.getIdentifier();
+                if (name.equals(AUGMENTABLE) || name.equals(AUGMENTATION)) {
                     return true;
                 }
-
             }
         }
         return false;