}
return runOnClassLoader(cls.classLoader) [ |
- val valueTransformer = generateValueTransformer(cls, type);
+ val valueTransformer = generateValueTransformer(cls, type, typeDefinition);
return valueTransformer;
]
}
(«type.resolvedName») «type.valueSerializer(typeDefinition).resolvedName».fromDomValue(«domParameter»)
'''
+ private def dispatch String deserializeValue(Type type, String domParameter, TypeDefinition<?> typeDef) {
+ if (INSTANCE_IDENTIFIER.equals(type)) {
+ return '''(«InstanceIdentifier.name») «INSTANCE_IDENTIFIER_CODEC».deserialize(«domParameter»)'''
+ } else if (CLASS_TYPE.equals(type)) {
+ return '''(«Class.name») «IDENTITYREF_CODEC».deserialize(«domParameter»)'''
+ } else if (typeDef!=null && typeDef instanceof EmptyTypeDefinition) {
+ if(domParameter == null) {
+ return ''' Boolean.FALSE '''
+ } else {
+ return ''' Boolean.TRUE '''
+ }
+ }
+ return '''(«type.resolvedName») «domParameter»'''
+ }
+
private def dispatch Class<? extends BindingCodec<Map<QName, Object>, Object>> generateValueTransformer(
Class<?> inputType, GeneratedTransferObject typeSpec, TypeDefinition<?> typeDef) {
try {
return null;
}
- private def Class<?> generateValueTransformer(Class<?> inputType, Enumeration typeSpec) {
- try {
+ private def Class<?> generateValueTransformer(Class<?> inputType, Enumeration typeSpec, TypeDefinition<?> type) {
+ var EnumerationType enumSchemaType
+ if (type instanceof EnumerationType) {
+ enumSchemaType = type as EnumerationType
+ } else {
val typeRef = new ReferencedTypeImpl(typeSpec.packageName, typeSpec.name);
val schema = getSchemaNode(typeRef) as ExtendedType;
- val enumSchema = schema.baseType as EnumerationType;
-
+ enumSchemaType = schema.baseType as EnumerationType;
+ }
+ val enumSchema = enumSchemaType;
+ try {
//log.info("Generating DOM Codec for {} with {}", inputType, inputType.classLoader)
val ctCls = createClass(typeSpec.codecClassName) [
//staticField(Map,"AUGMENTATION_SERIALIZERS");
}
- private def dispatch String deserializeValue(Type type, String domParameter, TypeDefinition<?> typeDef) {
- if (INSTANCE_IDENTIFIER.equals(type)) {
- return '''(«InstanceIdentifier.name») «INSTANCE_IDENTIFIER_CODEC».deserialize(«domParameter»)'''
- } else if (CLASS_TYPE.equals(type)) {
- return '''(«Class.name») «IDENTITYREF_CODEC».deserialize(«domParameter»)'''
- } else if (typeDef!=null && typeDef instanceof EmptyTypeDefinition) {
- if(domParameter == null) {
- return ''' Boolean.FALSE '''
- } else {
- return ''' Boolean.TRUE '''
- }
- }
- return '''(«type.resolvedName») «domParameter»'''
-
- }
-
/**
* Default catch all
*
import java.util.ArrayList;
import java.util.List;
import java.util.Set;
-
import org.junit.Test;
-import org.opendaylight.yangtools.binding.generator.util.ReferencedTypeImpl;
import org.opendaylight.yangtools.sal.binding.generator.api.BindingGenerator;
import org.opendaylight.yangtools.sal.binding.model.api.Enumeration;
import org.opendaylight.yangtools.sal.binding.model.api.GeneratedType;
assertNotNull("Expected Referenced Enum LinkUpDownTrapEnable, but was NULL!",
linkUpDownTrapEnable);
- assertTrue("Expected LinkUpDownTrapEnable of type ReferencedTypeImpl",
- linkUpDownTrapEnable instanceof ReferencedTypeImpl);
+ assertTrue("Expected LinkUpDownTrapEnable of type Enumeration", linkUpDownTrapEnable instanceof Enumeration);
assertEquals(linkUpDownTrapEnable.getPackageName(),
"org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev121115.interfaces.Interface");
assertNotNull("Expected Referenced Enum OperStatus, but was NULL!",
operStatus);
- assertTrue("Expected OperStatus of type ReferencedTypeImpl",
- operStatus instanceof ReferencedTypeImpl);
+ assertTrue("Expected OperStatus of type Enumeration", operStatus instanceof Enumeration);
assertEquals(operStatus.getPackageName(),
"org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev121115.interfaces.Interface");
}