+ def protected defaultInstance() '''\r
+ «IF genTO.typedef && !allProperties.empty && !genTO.unionType»\r
+ «val prop = allProperties.get(0)»\r
+ «IF !("org.opendaylight.yangtools.yang.binding.InstanceIdentifier".equals(prop.returnType.fullyQualifiedName))»\r
+ public static «genTO.name» getDefaultInstance(String defaultValue) {\r
+ «IF "byte[]".equals(prop.returnType.name)»\r
+ «BaseEncoding.importedName» baseEncoding = «BaseEncoding.importedName».base64(); \r
+ return new «genTO.name»(baseEncoding.decode(defaultValue));\r
+ «ELSEIF "java.lang.String".equals(prop.returnType.fullyQualifiedName)»\r
+ return new «genTO.name»(defaultValue);\r
+ «ELSEIF allProperties.size > 1»\r
+ «bitsArgs»\r
+ «ELSE»\r
+ return new «genTO.name»(new «prop.returnType.importedName»(defaultValue));\r
+ «ENDIF»\r
+ }\r
+ «ENDIF»\r
+ «ENDIF»\r
+ '''\r
+\r
+ def protected bitsArgs() '''\r
+ «List.importedName»<«String.importedName»> properties = «Lists.importedName».newArrayList(«allProperties.propsAsArgs»);\r
+ if (!properties.contains(defaultValue)) {\r
+ throw new «IllegalArgumentException.importedName»("invalid default parameter");\r
+ }\r
+ int i = 0;\r
+ return new «genTO.name»(\r
+ «FOR prop : allProperties SEPARATOR ","»\r
+ properties.get(i++).equals(defaultValue) ? new «Boolean.importedName»("true") : null\r
+ «ENDFOR»\r
+ );\r
+ '''\r
+\r
+ def protected propsAsArgs(Iterable<GeneratedProperty> properties) '''\r
+ «FOR prop : properties SEPARATOR ","»\r
+ "«prop.name»"\r
+ «ENDFOR»\r
+ '''\r
+\r