|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectcom.cedarsoft.serialization.generator.output.GeneratorBase<T>
com.cedarsoft.serialization.generator.output.serializer.AbstractGenerator<T>
T - the type of the decision callbackpublic abstract class AbstractGenerator<T extends com.cedarsoft.codegen.DecisionCallback>
Generator base class for serializer generators
| Field Summary | |
|---|---|
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
|
| Fields inherited from class com.cedarsoft.serialization.generator.output.GeneratorBase |
|---|
codeGenerator, codeModel |
| Constructor Summary | |
|---|---|
protected |
AbstractGenerator(com.cedarsoft.codegen.CodeGenerator codeGenerator)
|
| Method Summary | |
|---|---|
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 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.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 |
| Methods inherited from class com.cedarsoft.serialization.generator.output.GeneratorBase |
|---|
getCodeGenerator, getCodeModel |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
|---|
@NonNls @NotNull public static final String SERIALIZER_CLASS_NAME_SUFFIX
@NonNls public static final String METHOD_NAME_SERIALIZE
@NonNls public static final String METHOD_NAME_DESERIALIZE
@NonNls public static final String METHOD_NAME_DESERIALIZE_FROM
@NonNls public static final String PARAM_NAME_FORMAT_VERSION
@NonNls public static final String PARAM_NAME_SERIALIZE_TO
@NonNls public static final String VAR_NAME_OBJECT
| Constructor Detail |
|---|
protected AbstractGenerator(@NotNull
com.cedarsoft.codegen.CodeGenerator codeGenerator)
| Method Detail |
|---|
@NotNull
protected abstract com.sun.codemodel.JClass createSerializerExtendsExpression(@NotNull
com.sun.codemodel.JClass domainType)
domainType - the domain type
@NotNull
@NonNls
public static String createSerializerClassName(@NotNull@NonNls
String domainClassName)
domainClassName - the class name of the domain object that is serialized
@NotNull
public com.sun.codemodel.JDefinedClass generateSerializer(@NotNull
com.cedarsoft.codegen.model.DomainObjectDescriptor domainObjectDescriptor)
throws com.sun.codemodel.JClassAlreadyExistsException
domainObjectDescriptor - the domain object descriptor
com.sun.codemodel.JClassAlreadyExistsException
protected void finishConstructor(@NotNull
com.sun.codemodel.JDefinedClass serializerClass,
@NotNull
com.sun.codemodel.JMethod constructor)
protected void constructDeserializedObject(@NotNull
com.cedarsoft.codegen.model.DomainObjectDescriptor domainObjectDescriptor,
@NotNull
com.sun.codemodel.JMethod deserializeMethod,
@NotNull
Map<com.cedarsoft.codegen.model.FieldWithInitializationInfo,com.sun.codemodel.JVar> fieldToVar)
@NotNull
protected abstract com.sun.codemodel.JMethod createConstructor(@NotNull
com.sun.codemodel.JDefinedClass serializerClass,
@NotNull
com.cedarsoft.codegen.model.DomainObjectDescriptor domainObjectDescriptor)
serializerClass - the serialize classdomainObjectDescriptor - the domain object descriptor
@NotNull
protected com.sun.codemodel.JMethod createSerializeMethodStub(@NotNull
com.sun.codemodel.JType domainType,
@NotNull
com.sun.codemodel.JDefinedClass serializerClass)
@NotNull
protected com.sun.codemodel.JMethod createDeserializeMethodStub(@NotNull
com.sun.codemodel.JType domainType,
@NotNull
com.sun.codemodel.JDefinedClass serializerClass)
@NotNull
protected Map<com.cedarsoft.codegen.model.FieldWithInitializationInfo,com.sun.codemodel.JVar> fillDeSerializationMethods(@NotNull
com.cedarsoft.codegen.model.DomainObjectDescriptor domainObjectDescriptor,
@NotNull
com.sun.codemodel.JDefinedClass serializerClass,
@NotNull
com.sun.codemodel.JMethod serializeMethod,
@NotNull
com.sun.codemodel.JMethod deserializeMethod)
public void addDelegatingSerializerToConstructor(@NotNull
com.sun.codemodel.JDefinedClass serializerClass,
@NotNull
com.sun.codemodel.JClass fieldType)
@NotNull
protected com.sun.codemodel.JClass getSerializerRefFor(@NotNull
com.sun.codemodel.JType type)
@NotNull protected abstract Class<?> getExceptionType()
@NotNull protected abstract Class<?> getSerializeFromType()
@NotNull protected abstract Class<?> getSerializeToType()
@NotNull
protected abstract com.sun.codemodel.JVar appendDeserializeStatement(@NotNull
com.sun.codemodel.JDefinedClass serializerClass,
@NotNull
com.sun.codemodel.JMethod deserializeMethod,
@NotNull
com.sun.codemodel.JVar deserializeFrom,
@NotNull
com.sun.codemodel.JVar formatVersion,
@NotNull
com.cedarsoft.codegen.model.FieldWithInitializationInfo fieldInfo)
serializerClass - the serializer classdeserializeMethod - the deserialize methoddeserializeFrom - deserialize fromformatVersion - the format versionfieldInfo - the field info
protected abstract void appendSerializeStatement(@NotNull
com.sun.codemodel.JDefinedClass serializerClass,
@NotNull
com.sun.codemodel.JMethod serializeMethod,
@NotNull
com.sun.codemodel.JVar serializeTo,
@NotNull
com.sun.codemodel.JVar object,
@NotNull
com.sun.codemodel.JVar formatVersion,
@NotNull
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 info
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||