T - the type of the decision callbackpublic abstract class AbstractGenerator<T extends com.cedarsoft.codegen.DecisionCallback> extends GeneratorBase<T>
| Modifier and Type | Field and Description |
|---|---|
static String |
METHOD_NAME_DESERIALIZE
The name of the deserialize method
|
static String |
METHOD_NAME_DESERIALIZE_FROM |
static String |
METHOD_NAME_SERIALIZE
The name of the serialize method
|
static String |
PARAM_NAME_FORMAT_VERSION |
static String |
PARAM_NAME_SERIALIZE_TO |
static String |
SERIALIZER_CLASS_NAME_SUFFIX
The suffix used for generated serializers
|
static String |
VAR_NAME_OBJECT |
codeGenerator, codeModel| Modifier | Constructor and Description |
|---|---|
protected |
AbstractGenerator(com.cedarsoft.codegen.CodeGenerator codeGenerator) |
| Modifier and Type | Method and Description |
|---|---|
void |
addDelegatingSerializerToConstructor(com.sun.codemodel.JDefinedClass serializerClass,
com.sun.codemodel.JClass fieldType) |
protected abstract com.sun.codemodel.JVar |
appendDeserializeStatement(com.sun.codemodel.JDefinedClass serializerClass,
com.sun.codemodel.JMethod deserializeMethod,
com.sun.codemodel.JVar deserializeFrom,
com.sun.codemodel.JVar wrapper,
com.sun.codemodel.JVar formatVersion,
com.cedarsoft.codegen.model.FieldWithInitializationInfo fieldInfo)
Appends the deserialize statement and return the created var containing the value
|
protected abstract void |
appendSerializeStatement(com.sun.codemodel.JDefinedClass serializerClass,
com.sun.codemodel.JMethod serializeMethod,
com.sun.codemodel.JVar serializeTo,
com.sun.codemodel.JVar object,
com.sun.codemodel.JVar formatVersion,
com.cedarsoft.codegen.model.FieldWithInitializationInfo fieldInfo)
Appends the serialize statement
|
protected void |
constructDeserializedObject(com.cedarsoft.codegen.model.DomainObjectDescriptor domainObjectDescriptor,
com.sun.codemodel.JMethod deserializeMethod,
Map<com.cedarsoft.codegen.model.FieldWithInitializationInfo,com.sun.codemodel.JVar> fieldToVar) |
protected abstract com.sun.codemodel.JMethod |
createConstructor(com.sun.codemodel.JDefinedClass serializerClass,
com.cedarsoft.codegen.model.DomainObjectDescriptor domainObjectDescriptor)
Creates the constructor for the given serializer class (if necessary)
|
protected com.sun.codemodel.JMethod |
createDeserializeMethodStub(com.sun.codemodel.JType domainType,
com.sun.codemodel.JDefinedClass serializerClass) |
protected com.sun.codemodel.JVar |
createDeserializeWrapper(com.sun.codemodel.JMethod deserializeMethod,
com.sun.codemodel.JVar deserializeFrom)
Creates the deserialize wrapper.
|
protected com.sun.codemodel.JMethod |
createSerializeMethodStub(com.sun.codemodel.JType domainType,
com.sun.codemodel.JDefinedClass serializerClass) |
static String |
createSerializerClassName(String domainClassName)
Creates the class name for the serializer
|
protected abstract com.sun.codemodel.JClass |
createSerializerExtendsExpression(com.sun.codemodel.JClass domainType)
Returns the class the serializer extends (including type information!)
|
protected Map<com.cedarsoft.codegen.model.FieldWithInitializationInfo,com.sun.codemodel.JVar> |
fillDeSerializationMethods(com.cedarsoft.codegen.model.DomainObjectDescriptor domainObjectDescriptor,
com.sun.codemodel.JDefinedClass serializerClass,
com.sun.codemodel.JMethod serializeMethod,
com.sun.codemodel.JMethod deserializeMethod) |
protected void |
finishConstructor(com.sun.codemodel.JDefinedClass serializerClass,
com.sun.codemodel.JMethod constructor) |
com.sun.codemodel.JDefinedClass |
generateSerializer(com.cedarsoft.codegen.model.DomainObjectDescriptor domainObjectDescriptor)
Generates the serializer
|
protected abstract Class<?> |
getExceptionType()
Returns the exception type that is thrown on the serialize and deserialize methods
|
protected abstract Class<?> |
getSerializeFromType()
Returns the type of the serialize from object
|
protected com.sun.codemodel.JClass |
getSerializerRefFor(com.sun.codemodel.JType type) |
protected abstract Class<?> |
getSerializeToType()
Returns the type of the serializeTo type
|
getCodeGenerator, getCodeModel@Nonnull public static final String SERIALIZER_CLASS_NAME_SUFFIX
public static final String METHOD_NAME_SERIALIZE
public static final String METHOD_NAME_DESERIALIZE
public static final String METHOD_NAME_DESERIALIZE_FROM
public static final String PARAM_NAME_FORMAT_VERSION
public static final String PARAM_NAME_SERIALIZE_TO
public static final String VAR_NAME_OBJECT
protected AbstractGenerator(@Nonnull com.cedarsoft.codegen.CodeGenerator codeGenerator)
@Nonnull protected abstract com.sun.codemodel.JClass createSerializerExtendsExpression(@Nonnull com.sun.codemodel.JClass domainType)
domainType - the domain type@Nonnull public static String createSerializerClassName(@Nonnull String domainClassName)
domainClassName - the class name of the domain object that is serialized@Nonnull public com.sun.codemodel.JDefinedClass generateSerializer(@Nonnull com.cedarsoft.codegen.model.DomainObjectDescriptor domainObjectDescriptor) throws com.sun.codemodel.JClassAlreadyExistsException
domainObjectDescriptor - the domain object descriptorcom.sun.codemodel.JClassAlreadyExistsExceptionprotected void finishConstructor(@Nonnull com.sun.codemodel.JDefinedClass serializerClass, @Nonnull com.sun.codemodel.JMethod constructor)
protected void constructDeserializedObject(@Nonnull com.cedarsoft.codegen.model.DomainObjectDescriptor domainObjectDescriptor, @Nonnull com.sun.codemodel.JMethod deserializeMethod, @Nonnull Map<com.cedarsoft.codegen.model.FieldWithInitializationInfo,com.sun.codemodel.JVar> fieldToVar)
@Nonnull protected abstract com.sun.codemodel.JMethod createConstructor(@Nonnull com.sun.codemodel.JDefinedClass serializerClass, @Nonnull com.cedarsoft.codegen.model.DomainObjectDescriptor domainObjectDescriptor)
serializerClass - the serialize classdomainObjectDescriptor - the domain object descriptor@Nonnull protected com.sun.codemodel.JMethod createSerializeMethodStub(@Nonnull com.sun.codemodel.JType domainType, @Nonnull com.sun.codemodel.JDefinedClass serializerClass)
@Nonnull protected com.sun.codemodel.JMethod createDeserializeMethodStub(@Nonnull com.sun.codemodel.JType domainType, @Nonnull com.sun.codemodel.JDefinedClass serializerClass)
@Nonnull protected Map<com.cedarsoft.codegen.model.FieldWithInitializationInfo,com.sun.codemodel.JVar> fillDeSerializationMethods(@Nonnull com.cedarsoft.codegen.model.DomainObjectDescriptor domainObjectDescriptor, @Nonnull com.sun.codemodel.JDefinedClass serializerClass, @Nonnull com.sun.codemodel.JMethod serializeMethod, @Nonnull com.sun.codemodel.JMethod deserializeMethod)
@Nullable protected com.sun.codemodel.JVar createDeserializeWrapper(@Nonnull com.sun.codemodel.JMethod deserializeMethod, @Nonnull com.sun.codemodel.JVar deserializeFrom)
deserializeMethod - the deserialize methoddeserializeFrom - the deserialize frompublic void addDelegatingSerializerToConstructor(@Nonnull com.sun.codemodel.JDefinedClass serializerClass, @Nonnull com.sun.codemodel.JClass fieldType)
@Nonnull protected com.sun.codemodel.JClass getSerializerRefFor(@Nonnull com.sun.codemodel.JType type)
@Nonnull protected abstract Class<?> getExceptionType()
@Nonnull protected abstract Class<?> getSerializeFromType()
@Nonnull protected abstract Class<?> getSerializeToType()
@Nonnull protected abstract com.sun.codemodel.JVar appendDeserializeStatement(@Nonnull com.sun.codemodel.JDefinedClass serializerClass, @Nonnull com.sun.codemodel.JMethod deserializeMethod, @Nonnull com.sun.codemodel.JVar deserializeFrom, @Nullable com.sun.codemodel.JVar wrapper, @Nonnull com.sun.codemodel.JVar formatVersion, @Nonnull com.cedarsoft.codegen.model.FieldWithInitializationInfo fieldInfo)
serializerClass - the serializer classdeserializeMethod - the deserialize methoddeserializeFrom - deserialize fromwrapper - the wrapper that may be usedformatVersion - the format versionfieldInfo - the field infoprotected abstract void appendSerializeStatement(@Nonnull com.sun.codemodel.JDefinedClass serializerClass, @Nonnull com.sun.codemodel.JMethod serializeMethod, @Nonnull com.sun.codemodel.JVar serializeTo, @Nonnull com.sun.codemodel.JVar object, @Nonnull com.sun.codemodel.JVar formatVersion, @Nonnull com.cedarsoft.codegen.model.FieldWithInitializationInfo fieldInfo)
serializerClass - the serializer classserializeMethod - the serialize methodserializeTo - serialize toobject - the object that is serializedformatVersion - the format versionfieldInfo - the field infoCopyright © 2014 cedarsoft GmbH. All rights reserved.