Speed up Union stringValue() generation 84/80984/3
authorRobert Varga <robert.varga@pantheon.tech>
Tue, 19 Mar 2019 11:31:14 +0000 (12:31 +0100)
committerJie Han <han.jie@zte.com.cn>
Wed, 20 Mar 2019 01:27:48 +0000 (01:27 +0000)
We can compare against well-known Types, which is faster than
going through FQCN.

Change-Id: I7f6a7bd143d94be48176d9d8e1fe56bd0e6eae8e
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
binding/mdsal-binding-java-api-generator/src/main/java/org/opendaylight/mdsal/binding/java/api/generator/UnionTemplate.xtend

index 93980a116e97dfb9e36ebedf31b3eea4ada8ace0..477ee19ace35a486635d3470bb18b331d9fd0402 100644 (file)
@@ -9,6 +9,7 @@ package org.opendaylight.mdsal.binding.java.api.generator
 
 import static org.opendaylight.mdsal.binding.model.util.Types.BOOLEAN;
 import static org.opendaylight.mdsal.binding.model.util.Types.BYTE_ARRAY;
+import static org.opendaylight.mdsal.binding.model.util.Types.STRING;
 import static org.opendaylight.mdsal.binding.model.util.Types.getOuterClassName;
 
 import java.util.Arrays
@@ -105,13 +106,13 @@ class UnionTemplate extends ClassTemplate {
                 «val field = property.fieldName»
             if («field» != null) {
                 «val propRet = property.returnType»
-                «IF "java.lang.String".equals(propRet.fullyQualifiedName
+                «IF STRING.equals(propRet
                     ««« type string
                 return «field»;
                 «ELSEIF "org.opendaylight.yangtools.yang.binding.InstanceIdentifier".equals(propRet.fullyQualifiedName)»
                     ««« type instance-identifier
                 return «field».toString();
-                «ELSEIF "byte[]".equals(propRet.name
+                «ELSEIF BYTE_ARRAY.equals(propRet
                     ««« type binary
                 return new «String.importedName»(«field»);
                 «ELSEIF propRet.fullyQualifiedName.startsWith("java.lang") || propRet instanceof Enumeration