Improve ModuleGenerator.addQNameConstant() type safety 04/96504/1
authorRobert Varga <robert.varga@pantheon.tech>
Wed, 9 Jun 2021 19:53:59 +0000 (21:53 +0200)
committerRobert Varga <robert.varga@pantheon.tech>
Wed, 9 Jun 2021 19:53:59 +0000 (21:53 +0200)
Take an AbstractQName instead of a String, making further type safety
guarantees and reducing bytecode a bit.

Change-Id: I58dc0d3b9b2d28ebd55df4654da3efb6dae02da9
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
binding/mdsal-binding-generator-impl/src/main/java/org/opendaylight/mdsal/binding/generator/impl/reactor/ActionGenerator.java
binding/mdsal-binding-generator-impl/src/main/java/org/opendaylight/mdsal/binding/generator/impl/reactor/CaseGenerator.java
binding/mdsal-binding-generator-impl/src/main/java/org/opendaylight/mdsal/binding/generator/impl/reactor/ChoiceGenerator.java
binding/mdsal-binding-generator-impl/src/main/java/org/opendaylight/mdsal/binding/generator/impl/reactor/ContainerGenerator.java
binding/mdsal-binding-generator-impl/src/main/java/org/opendaylight/mdsal/binding/generator/impl/reactor/GroupingGenerator.java
binding/mdsal-binding-generator-impl/src/main/java/org/opendaylight/mdsal/binding/generator/impl/reactor/IdentityGenerator.java
binding/mdsal-binding-generator-impl/src/main/java/org/opendaylight/mdsal/binding/generator/impl/reactor/ListGenerator.java
binding/mdsal-binding-generator-impl/src/main/java/org/opendaylight/mdsal/binding/generator/impl/reactor/ModuleGenerator.java
binding/mdsal-binding-generator-impl/src/main/java/org/opendaylight/mdsal/binding/generator/impl/reactor/NotificationGenerator.java
binding/mdsal-binding-generator-impl/src/main/java/org/opendaylight/mdsal/binding/generator/impl/reactor/OpaqueObjectGenerator.java
binding/mdsal-binding-generator-impl/src/main/java/org/opendaylight/mdsal/binding/generator/impl/reactor/OperationContainerGenerator.java

index bd28b39b47476ed391bf2ad8133ac19802f01b23..69ef3c03353eb1f0f559be0b8fae21a6fffc7686 100644 (file)
@@ -46,7 +46,7 @@ final class ActionGenerator extends AbstractCompositeGenerator<ActionEffectiveSt
         builder.addImplementsType(implementedType(builderFactory));
 
         final ModuleGenerator module = currentModule();
-        module.addQNameConstant(builder, statement().argument().getLocalName());
+        module.addQNameConstant(builder, statement().argument());
 
 //        addGetterMethods(builder, builderFactory);
 
index e3a6de0df3ebb4ed706219830b0b06d4e0b3ae23..3343a32029d0e4c2494dbac17920eb262d0d6d0e 100644 (file)
@@ -56,7 +56,7 @@ final class CaseGenerator extends AbstractCompositeGenerator<CaseEffectiveStatem
         addConcreteInterfaceMethods(builder);
 
         final ModuleGenerator module = currentModule();
-        module.addQNameConstant(builder, localName().getLocalName());
+        module.addQNameConstant(builder, localName());
 
         addGetterMethods(builder, builderFactory);
 
index df5d5caa6b4ef70782b66f7036e24f2f469e5be1..07dc60b6ac8ffb74ca05ee543c219d440ea4fe79 100644 (file)
@@ -33,7 +33,7 @@ final class ChoiceGenerator extends AbstractCompositeGenerator<ChoiceEffectiveSt
         builder.addImplementsType(BindingTypes.choiceIn(DefaultType.of(getParent().typeName())));
 
         final ModuleGenerator module = currentModule();
-        module.addQNameConstant(builder, localName().getLocalName());
+        module.addQNameConstant(builder, localName());
 
         annotateDeprecatedIfNecessary(builder);
         if (builderFactory instanceof TypeBuilderFactory.Codegen) {
@@ -42,7 +42,6 @@ final class ChoiceGenerator extends AbstractCompositeGenerator<ChoiceEffectiveSt
 //      newType.setSchemaPath(schemaNode.getPath());
         builder.setModuleName(module.statement().argument().getLocalName());
 
-
         return builder.build();
     }
 }
index 3efb2755d53d79d10297ee7f79a29ea58ceabe90..84957056ebb6b86eb66cfc55013a39d5a0bd9ebf 100644 (file)
@@ -34,7 +34,7 @@ final class ContainerGenerator extends AbstractCompositeGenerator<ContainerEffec
         addConcreteInterfaceMethods(builder);
 
         final ModuleGenerator module = currentModule();
-        module.addQNameConstant(builder, localName().getLocalName());
+        module.addQNameConstant(builder, localName());
 
         addGetterMethods(builder, builderFactory);
 
index 68f5dc5cd3b77d9e90b908739648d99946a9b484..9d6967f3b277c5b23b5e46914017b5127234b16d 100644 (file)
@@ -41,7 +41,7 @@ final class GroupingGenerator extends AbstractCompositeGenerator<GroupingEffecti
         addGetterMethods(builder, builderFactory);
 
         final ModuleGenerator module = currentModule();
-        module.addQNameConstant(builder, statement().argument().getLocalName());
+        module.addQNameConstant(builder, statement().argument());
 
         annotateDeprecatedIfNecessary(builder);
         if (builderFactory instanceof TypeBuilderFactory.Codegen) {
index 8b762b2d1ba217b533ef3aea860e5cb9e646f196..63a405360d61b164e7a7247a6dc3c321c9ccc6fd 100644 (file)
@@ -58,7 +58,7 @@ final class IdentityGenerator extends AbstractDependentGenerator<IdentityEffecti
         }
 
         final ModuleGenerator module = currentModule();
-        module.addQNameConstant(builder, localName().getLocalName());
+        module.addQNameConstant(builder, localName());
 
         addCodegenInformation(module, statement(), builder);
         builder.setModuleName(module.statement().argument().getLocalName());
index 5192772cc8c16c238e9ff49349cc0a840df650b2..890621c21617401330fa29077cf952547cd4b199 100644 (file)
@@ -55,7 +55,7 @@ final class ListGenerator extends AbstractCompositeGenerator<ListEffectiveStatem
         addConcreteInterfaceMethods(builder);
 
         final ModuleGenerator module = currentModule();
-        module.addQNameConstant(builder, localName().getLocalName());
+        module.addQNameConstant(builder, localName());
 
         if (keyGen != null) {
             // Add yang.binding.Identifiable and its key() method
index 18e85c3280098b82be35ddd79e478cf53275e4db..63940e731deddd4e35ac2cb5ff65ea71dd1dc254 100644 (file)
@@ -21,6 +21,7 @@ import org.opendaylight.mdsal.binding.model.api.type.builder.GeneratedTypeBuilde
 import org.opendaylight.mdsal.binding.model.util.BindingTypes;
 import org.opendaylight.mdsal.binding.model.util.TypeComments;
 import org.opendaylight.mdsal.binding.spec.naming.BindingMapping;
+import org.opendaylight.yangtools.yang.common.AbstractQName;
 import org.opendaylight.yangtools.yang.common.QNameModule;
 import org.opendaylight.yangtools.yang.model.api.Module;
 import org.opendaylight.yangtools.yang.model.api.stmt.ChoiceEffectiveStatement;
@@ -136,8 +137,8 @@ public final class ModuleGenerator extends AbstractCompositeGenerator<ModuleEffe
         return verifyNotNull(prefixMember);
     }
 
-    void addQNameConstant(final GeneratedTypeBuilderBase<?> builder, final String localName) {
+    void addQNameConstant(final GeneratedTypeBuilderBase<?> builder, final AbstractQName localName) {
         builder.addConstant(BindingTypes.QNAME, BindingMapping.QNAME_STATIC_FIELD_NAME,
-            Map.entry(yangModuleInfo, localName));
+            Map.entry(yangModuleInfo, localName.getLocalName()));
     }
 }
index fc28636ee5eab5d2249c5bc25dcfc61925047349..c1163093b82dfb688533c1d3d3dd78c51d775245 100644 (file)
@@ -43,7 +43,7 @@ final class NotificationGenerator extends AbstractCompositeGenerator<Notificatio
         addGetterMethods(builder, builderFactory);
 
         final ModuleGenerator module = currentModule();
-        module.addQNameConstant(builder, localName().getLocalName());
+        module.addQNameConstant(builder, localName());
 
         addCodegenInformation(module, statement(), builder);
         annotateDeprecatedIfNecessary(builder);
index e4cb6614c8a84e37f73972f67160f058a81d7316..8a68246f999b7b1446c4f1476100ae9da4381ae1 100644 (file)
@@ -35,7 +35,7 @@ final class OpaqueObjectGenerator<T extends DataTreeEffectiveStatement<?>> exten
         annotateDeprecatedIfNecessary(builder);
 
         final ModuleGenerator module = currentModule();
-        module.addQNameConstant(builder, localName().getLocalName());
+        module.addQNameConstant(builder, localName());
 
         addCodegenInformation(module, statement(), builder);
         builder.setModuleName(module.statement().argument().getLocalName());
index 7196cac47b44155ba6e9eeda0f42f3e2fed1c7e8..005a389f8c98eecd04e67cbe16539c51af38e47a 100644 (file)
@@ -65,7 +65,7 @@ class OperationContainerGenerator extends AbstractCompositeGenerator<SchemaTreeE
         addGetterMethods(builder, builderFactory);
 
         final ModuleGenerator module = currentModule();
-        module.addQNameConstant(builder, localName().getLocalName());
+        module.addQNameConstant(builder, localName());
 
         annotateDeprecatedIfNecessary(builder);
         if (builderFactory instanceof TypeBuilderFactory.Codegen) {