Reorder encapsulation checks 52/89152/1
authorRobert Varga <robert.varga@pantheon.tech>
Mon, 20 Apr 2020 18:03:04 +0000 (20:03 +0200)
committerRobert Varga <robert.varga@pantheon.tech>
Mon, 20 Apr 2020 18:03:57 +0000 (20:03 +0200)
Reordering checks provides a small speed up due to fewer checks
being made on average, as we take care of most popular types first.

Change-Id: I0acc2e77007054c7c35ad159d98bb3be1cdabfee
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/ClassTemplate.xtend

index 475c8ce51c478306fee3ae4bd04b4e1799f653b8..5af4d01a43756febf6ea3eb134f33549beb9d053 100644 (file)
@@ -402,21 +402,19 @@ class ClassTemplate extends BaseTemplate {
             «val propType = prop.returnType»
             «IF !(INSTANCE_IDENTIFIER.identifier.equals(propType.identifier))»
             public static «genTO.name» getDefaultInstance(final String defaultValue) {
-                «IF BINARY_TYPE.equals(propType)»
-                    return new «genTO.name»(«Base64.importedName».getDecoder().decode(defaultValue));
+                «IF allProperties.size > 1»
+                    «bitsArgs»
+                «ELSEIF VALUEOF_TYPES.contains(propType)»
+                    return new «genTO.name»(«propType.importedName».valueOf(defaultValue));
                 «ELSEIF STRING_TYPE.equals(propType)»
                     return new «genTO.name»(defaultValue);
+                «ELSEIF BINARY_TYPE.equals(propType)»
+                    return new «genTO.name»(«Base64.importedName».getDecoder().decode(defaultValue));
                 «ELSEIF EMPTY_TYPE.equals(propType)»
                     «Preconditions.importedName».checkArgument(defaultValue.isEmpty(), "Invalid value %s", defaultValue);
                     return new «genTO.name»(«Empty.importedName».getInstance());
-                «ELSEIF allProperties.size > 1»
-                    «bitsArgs»
                 «ELSE»
-                    «IF VALUEOF_TYPES.contains(propType)»
-                        return new «genTO.name»(«propType.importedName».valueOf(defaultValue));
-                    «ELSE»
-                        return new «genTO.name»(new «propType.importedName»(defaultValue));
-                    «ENDIF»
+                    return new «genTO.name»(new «propType.importedName»(defaultValue));
                 «ENDIF»
             }
             «ENDIF»