org.nuiton.topia.generator
Class EntityTransformer
java.lang.Object
org.nuiton.eugene.Template<I>
org.nuiton.eugene.Transformer<org.nuiton.eugene.models.object.ObjectModel,O>
org.nuiton.eugene.models.object.ObjectModelTransformer<org.nuiton.eugene.models.object.ObjectModel>
org.nuiton.eugene.java.ObjectModelTransformerToJava
org.nuiton.topia.generator.EntityTransformer
- All Implemented Interfaces:
- org.nuiton.eugene.TemplateConfiguration
public class EntityTransformer
- extends org.nuiton.eugene.java.ObjectModelTransformerToJava
A template to generate all the TopiaEntity api for all classifier
with a entity stereotype.
For example, given a House entity, it will generates :
House : contract of entity
AbstractHouse : default abstract implementation of entity
HouseImpl : default impl of abstract entity
Note: The impl will ony be generated in these cases :
- There is no abstract method
- There is no already defined such class in class-path
- Since:
- 2.3.4
- Author:
- tchemit
- Plexus component:
- role:
- "org.nuiton.eugene.Template"
- role-hint:
- "org.nuiton.topia.generator.EntityTransformer"
|
| Fields inherited from class org.nuiton.eugene.java.ObjectModelTransformerToJava |
builder |
| Fields inherited from class org.nuiton.eugene.Transformer |
outputModel, outputProperties, outputTemplate, previousTransformer |
| Fields inherited from class org.nuiton.eugene.Template |
configuration, excludeTemplates, generatedPackages, model |
| Fields inherited from interface org.nuiton.eugene.TemplateConfiguration |
PROP_CLASS_LOADER, PROP_DEFAULT_PACKAGE, PROP_ENCODING, PROP_EXCLUDE_TEMPLATES, PROP_GENERATED_PACKAGES, PROP_LAST_MODIFIED_SOURCE, PROP_OVERWRITE, PROP_VERBOSE, PROP_WRITER_REPORT |
|
Method Summary |
protected void |
addContextableMethods(org.nuiton.eugene.models.object.ObjectModelClass input,
org.nuiton.eugene.models.object.ObjectModelClass outputAbstract)
Ajout les methodes necessaire à l'interface TopiaEntityContextable
si le tagValue TopiaTagValues.TAG_CONTEXTABLE est renseigné. |
protected void |
addInterface(List<String> interfaceAlreadyDone,
org.nuiton.eugene.models.object.ObjectModelClassifier output,
Class<?> clazz)
|
protected void |
addInterface(List<String> interfaceAlreadyDone,
org.nuiton.eugene.models.object.ObjectModelClassifier output,
org.nuiton.eugene.models.object.ObjectModelClassifier interfaze)
|
protected void |
addMultipleAddAllOperation(org.nuiton.eugene.models.object.ObjectModelAttribute attribute,
String collectionInterface)
|
protected void |
addMultipleAddOperation(org.nuiton.eugene.models.object.ObjectModelAttribute attribute,
String collectionImpl)
|
protected void |
addMultipleClearOperation(org.nuiton.eugene.models.object.ObjectModelAttribute attribute,
String collectionInterface,
String collectionImpl)
|
protected void |
addMultipleGetOperation(org.nuiton.eugene.models.object.ObjectModelAttribute attribute,
String collectionInterface)
|
protected void |
addMultipleGetOperationFromEntity(org.nuiton.eugene.models.object.ObjectModelAttribute attribute)
|
protected void |
addMultipleGetTopiaIdOperation(org.nuiton.eugene.models.object.ObjectModelAttribute attribute)
|
protected void |
addMultipleIsEmptyOperation(org.nuiton.eugene.models.object.ObjectModelAttribute attribute)
|
protected void |
addMultipleRemoveOperation(org.nuiton.eugene.models.object.ObjectModelAttribute attribute)
|
protected void |
addMultipleSetOperation(org.nuiton.eugene.models.object.ObjectModelAttribute attribute,
String collectionInterface,
String collectionImpl)
|
protected void |
addMultipleSizeOperation(org.nuiton.eugene.models.object.ObjectModelAttribute attribute)
|
protected void |
addSingleGetOperation(org.nuiton.eugene.models.object.ObjectModelAttribute attribute,
String attrType,
String operationPrefix)
Add getter for simple property (neither association nor multiple). |
protected void |
addSingleSetOperation(org.nuiton.eugene.models.object.ObjectModelAttribute attribute)
|
protected void |
clean()
|
protected void |
closeAcceptOperation()
|
protected void |
createAcceptOperation()
|
protected void |
createEntityAbstractClass(org.nuiton.eugene.models.object.ObjectModelClass input)
|
protected void |
createEntityInterface(org.nuiton.eugene.models.object.ObjectModelClass input)
|
protected org.nuiton.eugene.models.object.ObjectModelOperation |
createImplOperation(org.nuiton.eugene.models.object.ObjectModelOperation interfaceOperation)
|
protected org.nuiton.eugene.models.object.ObjectModelOperation |
createPropertySetterSignature(org.nuiton.eugene.models.object.ObjectModelClassifier classifier,
String propertyType,
String propertyName,
String operationDocumentation)
TODO-fdesbois-2010-06-25 : This method can be put in JavaBuilder or ObjectModelTransformerToJava
This method create an set operation in classifier with
propertyType as return type and propertyName used for
operation name ('set[propertyName]'). |
protected void |
generateAggregateOperation(org.nuiton.eugene.models.object.ObjectModelClass input)
|
protected void |
generateCompositeOperation(org.nuiton.eugene.models.object.ObjectModelClass input)
|
protected void |
generateExtraConstants(org.nuiton.eugene.models.object.ObjectModelClass input)
Generate extra constants if input has dependencies on
enum used as constant injector. |
protected void |
generateExtraOperations(org.nuiton.eugene.models.object.ObjectModelClass input)
|
protected void |
generateImpl(org.nuiton.eugene.models.object.ObjectModelClass input)
|
protected void |
generateProperties(Collection<org.nuiton.eugene.models.object.ObjectModelAttribute> attributes)
Generate properties from attributes. |
protected void |
generatePropertyAttribute(org.nuiton.eugene.models.object.ObjectModelAttribute attribute)
|
protected void |
generatePropertyConstant(org.nuiton.eugene.models.object.ObjectModelAttribute attribute)
Generate constant in interface for attribute. |
protected void |
generatePropertyOperations(org.nuiton.eugene.models.object.ObjectModelAttribute attribute)
Generation operations for attributes. |
protected void |
generateSerialVersionUID(org.nuiton.eugene.models.object.ObjectModelClass input,
org.nuiton.eugene.models.object.ObjectModelClass ouput)
|
protected void |
generateToStringOperation(org.nuiton.eugene.models.object.ObjectModelClass input)
|
protected String |
getCollectionType(org.nuiton.eugene.models.object.ObjectModelAttribute attribute)
|
protected String |
getPropertyName(org.nuiton.eugene.models.object.ObjectModelAttribute attribute)
|
protected String |
getPropertyType(org.nuiton.eugene.models.object.ObjectModelAttribute attribute)
|
protected boolean |
isAbstract(org.nuiton.eugene.models.object.ObjectModelClass clazz)
|
protected boolean |
isGenerateAbstract(org.nuiton.eugene.models.object.ObjectModelClass input)
|
protected boolean |
isGenerateImpl(org.nuiton.eugene.models.object.ObjectModelClass input)
|
protected boolean |
isGenerateInterface(org.nuiton.eugene.models.object.ObjectModelClass input)
|
void |
transformFromClass(org.nuiton.eugene.models.object.ObjectModelClass input)
|
protected void |
updateAcceptOperation(org.nuiton.eugene.models.object.ObjectModelAttribute attribute)
|
| Methods inherited from class org.nuiton.eugene.java.ObjectModelTransformerToJava |
addAnnotation, addAttribute, addAttribute, addAttribute, addAttribute, addBlock, addComment, addConstant, addConstant, addConstantsFromDependency, addConstructor, addConstructor, addException, addException, addI18n, addImport, addImport, addImport, addInnerClassifier, addInterface, addInterface, addLiteral, addOperation, addOperation, addOperation, addParameter, addParameter, addStereotype, addTagValue, addTagValue, cloneAttribute, cloneClass, cloneClassifier, cloneClassifier, cloneEnumeration, cloneInterface, cloneOperation, cloneOperationSignature, cloneStereotypes, cloneTagValues, copyClassifier, createAbstractClass, createClass, createEnumeration, createInterface, debugOutputModel, generateI18nBlock, getConstantName, getConstantPrefix, getConstantPrefix, getFileInClassPath, initConstantPrefixFromModel, initOutputModel, initOutputTemplate, isInClassPath, isInClassPath, setConstantPrefix, setDocumentation, setMaxMultiplicity, setMinMultiplicity, setNavigable, setOperationBody, setSuperClass, setSuperClass |
| Methods inherited from class org.nuiton.eugene.models.object.ObjectModelTransformer |
transform, transformFromClassifier, transformFromElement, transformFromEnumeration, transformFromInterface, transformFromModel |
| Methods inherited from class org.nuiton.eugene.Transformer |
applyTemplate, getOutputModel, getOutputProperties, getOutputTemplate, init, initPreviousTransformer, transform |
| Methods inherited from class org.nuiton.eugene.Template |
getClassLoader, getConfiguration, getEncoding, getExcludeTemplates, getGeneratedPackages, getLastModifiedSource, getModel, getOverwrite, getProperties, getProperty, getProperty, getWriterReport, isOverwrite, isVerbose, setConfiguration, setProperty |
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
outputInterface
protected org.nuiton.eugene.models.object.ObjectModelInterface outputInterface
outputAbstract
protected org.nuiton.eugene.models.object.ObjectModelClass outputAbstract
outputImpl
protected org.nuiton.eugene.models.object.ObjectModelClass outputImpl
generateInterface
protected boolean generateInterface
generateAbstract
protected boolean generateAbstract
generateImpl
protected boolean generateImpl
generateBooleanGetMethods
protected boolean generateBooleanGetMethods
EntityTransformer
public EntityTransformer()
clean
protected void clean()
transformFromClass
public void transformFromClass(org.nuiton.eugene.models.object.ObjectModelClass input)
- Overrides:
transformFromClass in class org.nuiton.eugene.models.object.ObjectModelTransformer<org.nuiton.eugene.models.object.ObjectModel>
generateSerialVersionUID
protected void generateSerialVersionUID(org.nuiton.eugene.models.object.ObjectModelClass input,
org.nuiton.eugene.models.object.ObjectModelClass ouput)
createEntityInterface
protected void createEntityInterface(org.nuiton.eugene.models.object.ObjectModelClass input)
createEntityAbstractClass
protected void createEntityAbstractClass(org.nuiton.eugene.models.object.ObjectModelClass input)
addContextableMethods
protected void addContextableMethods(org.nuiton.eugene.models.object.ObjectModelClass input,
org.nuiton.eugene.models.object.ObjectModelClass outputAbstract)
- Ajout les methodes necessaire à l'interface
TopiaEntityContextable
si le tagValue TopiaTagValues.TAG_CONTEXTABLE est renseigné.
- Parameters:
input - outputAbstract -
isGenerateInterface
protected boolean isGenerateInterface(org.nuiton.eugene.models.object.ObjectModelClass input)
isGenerateAbstract
protected boolean isGenerateAbstract(org.nuiton.eugene.models.object.ObjectModelClass input)
isGenerateImpl
protected boolean isGenerateImpl(org.nuiton.eugene.models.object.ObjectModelClass input)
generateImpl
protected void generateImpl(org.nuiton.eugene.models.object.ObjectModelClass input)
generateExtraConstants
protected void generateExtraConstants(org.nuiton.eugene.models.object.ObjectModelClass input)
- Generate extra constants if
input has dependencies on
enum used as constant injector.
- Parameters:
input - Entity class to treate
generateExtraOperations
protected void generateExtraOperations(org.nuiton.eugene.models.object.ObjectModelClass input)
generateProperties
protected void generateProperties(Collection<org.nuiton.eugene.models.object.ObjectModelAttribute> attributes)
- Generate properties from
attributes. Generate
constant, attribute and operations for each property.
- Parameters:
attributes - Input attributes
generatePropertyConstant
protected void generatePropertyConstant(org.nuiton.eugene.models.object.ObjectModelAttribute attribute)
- Generate constant in interface for
attribute.
- Parameters:
attribute - Input attribute to treate- See Also:
getPropertyName(ObjectModelAttribute)
generatePropertyAttribute
protected void generatePropertyAttribute(org.nuiton.eugene.models.object.ObjectModelAttribute attribute)
generatePropertyOperations
protected void generatePropertyOperations(org.nuiton.eugene.models.object.ObjectModelAttribute attribute)
- Generation operations for
attributes.
One method exists for each operation to generate. Methods starting
with 'addSingle' is for maxMultiplicity attribute = 1 and for collection
case, methods start with 'addMultiple'. Other case are take care in each
method (association class, reverse, entity reference, ...).
- Parameters:
attribute - Input attribute to treate- See Also:
addSingleGetOperation(ObjectModelAttribute, String, String),
addSingleSetOperation(ObjectModelAttribute),
addMultipleAddOperation(ObjectModelAttribute, String),
addMultipleAddAllOperation(ObjectModelAttribute, String),
addMultipleSetOperation(ObjectModelAttribute, String, String),
addMultipleRemoveOperation(ObjectModelAttribute),
addMultipleClearOperation(ObjectModelAttribute, String, String),
addMultipleGetOperation(ObjectModelAttribute, String),
addMultipleGetTopiaIdOperation(ObjectModelAttribute),
addMultipleGetOperationFromEntity(ObjectModelAttribute),
addMultipleSizeOperation(ObjectModelAttribute),
addMultipleIsEmptyOperation(ObjectModelAttribute)
addSingleSetOperation
protected void addSingleSetOperation(org.nuiton.eugene.models.object.ObjectModelAttribute attribute)
addSingleGetOperation
protected void addSingleGetOperation(org.nuiton.eugene.models.object.ObjectModelAttribute attribute,
String attrType,
String operationPrefix)
- Add getter for simple property (neither association nor multiple).
Will add two different operations for boolean case ('is' method and
'get' method). This method add the operation in both
outputAbstract and outputInterface.
- Parameters:
attribute - ObjectModelAttribute for getter operationattrType - type of the attributeoperationPrefix - Operation prefix : 'get' by default, if prefix
is null
addMultipleAddOperation
protected void addMultipleAddOperation(org.nuiton.eugene.models.object.ObjectModelAttribute attribute,
String collectionImpl)
addMultipleAddAllOperation
protected void addMultipleAddAllOperation(org.nuiton.eugene.models.object.ObjectModelAttribute attribute,
String collectionInterface)
addMultipleSetOperation
protected void addMultipleSetOperation(org.nuiton.eugene.models.object.ObjectModelAttribute attribute,
String collectionInterface,
String collectionImpl)
addMultipleRemoveOperation
protected void addMultipleRemoveOperation(org.nuiton.eugene.models.object.ObjectModelAttribute attribute)
addMultipleClearOperation
protected void addMultipleClearOperation(org.nuiton.eugene.models.object.ObjectModelAttribute attribute,
String collectionInterface,
String collectionImpl)
addMultipleGetOperation
protected void addMultipleGetOperation(org.nuiton.eugene.models.object.ObjectModelAttribute attribute,
String collectionInterface)
addMultipleGetTopiaIdOperation
protected void addMultipleGetTopiaIdOperation(org.nuiton.eugene.models.object.ObjectModelAttribute attribute)
addMultipleGetOperationFromEntity
protected void addMultipleGetOperationFromEntity(org.nuiton.eugene.models.object.ObjectModelAttribute attribute)
addMultipleSizeOperation
protected void addMultipleSizeOperation(org.nuiton.eugene.models.object.ObjectModelAttribute attribute)
addMultipleIsEmptyOperation
protected void addMultipleIsEmptyOperation(org.nuiton.eugene.models.object.ObjectModelAttribute attribute)
createAcceptOperation
protected void createAcceptOperation()
updateAcceptOperation
protected void updateAcceptOperation(org.nuiton.eugene.models.object.ObjectModelAttribute attribute)
closeAcceptOperation
protected void closeAcceptOperation()
generateToStringOperation
protected void generateToStringOperation(org.nuiton.eugene.models.object.ObjectModelClass input)
generateCompositeOperation
protected void generateCompositeOperation(org.nuiton.eugene.models.object.ObjectModelClass input)
generateAggregateOperation
protected void generateAggregateOperation(org.nuiton.eugene.models.object.ObjectModelClass input)
isAbstract
protected boolean isAbstract(org.nuiton.eugene.models.object.ObjectModelClass clazz)
getCollectionType
protected String getCollectionType(org.nuiton.eugene.models.object.ObjectModelAttribute attribute)
getPropertyName
protected String getPropertyName(org.nuiton.eugene.models.object.ObjectModelAttribute attribute)
getPropertyType
protected String getPropertyType(org.nuiton.eugene.models.object.ObjectModelAttribute attribute)
createImplOperation
protected org.nuiton.eugene.models.object.ObjectModelOperation createImplOperation(org.nuiton.eugene.models.object.ObjectModelOperation interfaceOperation)
createPropertySetterSignature
protected org.nuiton.eugene.models.object.ObjectModelOperation createPropertySetterSignature(org.nuiton.eugene.models.object.ObjectModelClassifier classifier,
String propertyType,
String propertyName,
String operationDocumentation)
- TODO-fdesbois-2010-06-25 : This method can be put in JavaBuilder or ObjectModelTransformerToJava
This method create an set operation in
classifier with
propertyType as return type and propertyName used for
operation name ('set[propertyName]'). operationDocument can
also be added to the operation created. Only signature with default
visibility will be added.
- Parameters:
classifier - Classifier where the operation will be addedpropertyType - Type of the property (better if qualified name)propertyName - Name of the property to setoperationDocumentation - Documentation for the operation
- Returns:
- the created operation
addInterface
protected void addInterface(List<String> interfaceAlreadyDone,
org.nuiton.eugene.models.object.ObjectModelClassifier output,
org.nuiton.eugene.models.object.ObjectModelClassifier interfaze)
addInterface
protected void addInterface(List<String> interfaceAlreadyDone,
org.nuiton.eugene.models.object.ObjectModelClassifier output,
Class<?> clazz)
Copyright © 2004-2011 CodeLutin. All Rights Reserved.