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.getOuterClassName;
import com.google.common.io.BaseEncoding
import java.util.Arrays
import org.opendaylight.mdsal.binding.model.api.GeneratedTransferObject
import org.opendaylight.mdsal.binding.model.api.Enumeration
+import org.opendaylight.mdsal.binding.model.api.Type
import org.opendaylight.yangtools.yang.model.api.type.BitsTypeDefinition
/**
«ELSEIF propRet instanceof GeneratedTransferObject && (propRet as GeneratedTransferObject).unionType»
««« union type
return «field».stringValue();
- «ELSEIF propRet instanceof GeneratedTransferObject // Is it a GeneratedTransferObject
- && (propRet as GeneratedTransferObject).typedef // Is it a typedef
- && (propRet as GeneratedTransferObject).properties !== null
- && !(propRet as GeneratedTransferObject).properties.empty
- && ((propRet as GeneratedTransferObject).properties.size == 1)
- && (propRet as GeneratedTransferObject).properties.get(0).name.equals("value")
- && BOOLEAN.equals((propRet as GeneratedTransferObject).properties.get(0).returnType) // And the property value is of type boolean»
+ «ELSEIF BOOLEAN.equals(propRet.typedefReturnType)»
««« generated boolean typedef
return «field».isValue().toString();
- «ELSEIF propRet instanceof GeneratedTransferObject // Is it a GeneratedTransferObject
- && (propRet as GeneratedTransferObject).typedef // Is it a typedef
- && (propRet as GeneratedTransferObject).properties !== null
- && !(propRet as GeneratedTransferObject).properties.empty
- && ((propRet as GeneratedTransferObject).properties.size == 1)
- && (propRet as GeneratedTransferObject).properties.get(0).name.equals("value")
- && "byte[]".equals((propRet as GeneratedTransferObject).properties.get(0).returnType.name)»
+ «ELSEIF BYTE_ARRAY.equals(propRet.typedefReturnType)»
««« generated byte[] typedef
return «BaseEncoding.importedName».base64().encode(«field».getValue());
«ELSEIF propRet instanceof GeneratedTransferObject // Is it a GeneratedTransferObject
}
'''
+ private static def Type typedefReturnType(Type type) {
+ if (!(type instanceof GeneratedTransferObject)) {
+ return null
+ }
+ val gto = type as GeneratedTransferObject
+ if (!gto.typedef || gto.properties === null || gto.properties.size != 1) {
+ return null
+ }
+ val prop = gto.properties.get(0)
+ if (prop.name.equals("value")) {
+ return prop.returnType
+ }
+ return null
+ }
+
override protected copyConstructor() '''
/**
* Creates a copy from Source Object.