}
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");
}
«typeSpec.resolvedName» _value = («typeSpec.resolvedName») $1;
«FOR en : enumSchema.values»
- if(«typeSpec.resolvedName».«BindingGeneratorUtil.parseToClassName(en.name)».equals(_value)) {
+ if(«typeSpec.resolvedName».«BindingMapping.getClassName(en.name)».equals(_value)) {
return "«en.name»";
}
«ENDFOR»
String _value = (String) $1;
«FOR en : enumSchema.values»
if("«en.name»".equals(_value)) {
- return «typeSpec.resolvedName».«BindingGeneratorUtil.parseToClassName(en.name)»;
+ return «typeSpec.resolvedName».«BindingMapping.getClassName(en.name)»;
}
«ENDFOR»
return null;
}
- 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
*