Add BindingTypes.QNAME 73/86473/1
authorRobert Varga <robert.varga@pantheon.tech>
Wed, 18 Dec 2019 08:52:20 +0000 (09:52 +0100)
committerRobert Varga <robert.varga@pantheon.tech>
Wed, 18 Dec 2019 10:10:40 +0000 (11:10 +0100)
We are looking this type for each constant, which is not entirely
efficient. Add a constant to BindingTypes and use it directly, providing
a slight performance benefit.

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

binding/mdsal-binding-generator-impl/src/main/java/org/opendaylight/mdsal/binding/generator/impl/AbstractTypeGenerator.java
binding/mdsal-binding-generator-util/src/main/java/org/opendaylight/mdsal/binding/model/util/BindingTypes.java

index 58e53a5022e9d5084088e3c6652c929542b8fa87..5e46e3d7e50339d0ff9303cb9345260861dc63ed 100644 (file)
@@ -19,6 +19,7 @@ import static org.opendaylight.mdsal.binding.model.util.BindingTypes.DATA_OBJECT
 import static org.opendaylight.mdsal.binding.model.util.BindingTypes.DATA_ROOT;
 import static org.opendaylight.mdsal.binding.model.util.BindingTypes.NOTIFICATION;
 import static org.opendaylight.mdsal.binding.model.util.BindingTypes.NOTIFICATION_LISTENER;
+import static org.opendaylight.mdsal.binding.model.util.BindingTypes.QNAME;
 import static org.opendaylight.mdsal.binding.model.util.BindingTypes.ROUTING_CONTEXT;
 import static org.opendaylight.mdsal.binding.model.util.BindingTypes.RPC_INPUT;
 import static org.opendaylight.mdsal.binding.model.util.BindingTypes.RPC_OUTPUT;
@@ -41,7 +42,6 @@ import static org.opendaylight.mdsal.binding.model.util.Types.classType;
 import static org.opendaylight.mdsal.binding.model.util.Types.listTypeFor;
 import static org.opendaylight.mdsal.binding.model.util.Types.listenableFutureTypeFor;
 import static org.opendaylight.mdsal.binding.model.util.Types.primitiveVoidType;
-import static org.opendaylight.mdsal.binding.model.util.Types.typeForClass;
 import static org.opendaylight.mdsal.binding.model.util.Types.wildcardTypeFor;
 import static org.opendaylight.yangtools.yang.model.util.SchemaContextUtil.findDataSchemaNode;
 import static org.opendaylight.yangtools.yang.model.util.SchemaContextUtil.findNodeInSchemaContext;
@@ -719,7 +719,7 @@ abstract class AbstractTypeGenerator {
 
     private static Constant qnameConstant(final GeneratedTypeBuilderBase<?> toBuilder,
             final JavaTypeName yangModuleInfo, final String localName) {
-        return toBuilder.addConstant(typeForClass(QName.class), BindingMapping.QNAME_STATIC_FIELD_NAME,
+        return toBuilder.addConstant(QNAME, BindingMapping.QNAME_STATIC_FIELD_NAME,
             new SimpleImmutableEntry<>(yangModuleInfo, localName));
     }
 
index 3bb4e824d14a0981ec7abdf405b0188e332faa2d..725bbb4af0c5023e01ff8f30a703d02d749672b4 100644 (file)
@@ -39,6 +39,7 @@ import org.opendaylight.yangtools.yang.binding.RpcOutput;
 import org.opendaylight.yangtools.yang.binding.RpcService;
 import org.opendaylight.yangtools.yang.binding.TypeObject;
 import org.opendaylight.yangtools.yang.binding.annotations.RoutingContext;
+import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.common.RpcResult;
 
 public final class BindingTypes {
@@ -50,6 +51,7 @@ public final class BindingTypes {
     public static final ConcreteType DATA_ROOT = typeForClass(DataRoot.class);
     public static final ConcreteType NOTIFICATION = typeForClass(Notification.class);
     public static final ConcreteType NOTIFICATION_LISTENER = typeForClass(NotificationListener.class);
+    public static final ConcreteType QNAME = typeForClass(QName.class);
     public static final ConcreteType RPC_INPUT = typeForClass(RpcInput.class);
     public static final ConcreteType RPC_OUTPUT = typeForClass(RpcOutput.class);
     public static final ConcreteType RPC_SERVICE = typeForClass(RpcService.class);