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"
|
|
Field Summary |
protected org.nuiton.eugene.models.object.ObjectModelClass |
outputAbstract
|
protected org.nuiton.eugene.models.object.ObjectModelClass |
outputImpl
|
protected org.nuiton.eugene.models.object.ObjectModelInterface |
outputInterface
|
| 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 |
addI18n(java.lang.StringBuilder buffer,
java.lang.String i18nPrefix,
java.lang.String suffix)
|
protected void |
addMultipleAddAllOperation(org.nuiton.eugene.models.object.ObjectModelAttribute attribute,
java.lang.String collectionInterface)
|
protected void |
addMultipleAddOperation(org.nuiton.eugene.models.object.ObjectModelAttribute attribute,
java.lang.String collectionImpl)
|
protected void |
addMultipleClearOperation(org.nuiton.eugene.models.object.ObjectModelAttribute attribute,
java.lang.String collectionInterface,
java.lang.String collectionImpl)
|
protected void |
addMultipleGetOperation(org.nuiton.eugene.models.object.ObjectModelAttribute attribute,
java.lang.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,
java.lang.String collectionInterface,
java.lang.String collectionImpl)
|
protected void |
addMultipleSizeOperation(org.nuiton.eugene.models.object.ObjectModelAttribute attribute)
|
protected void |
addSingleGetOperation(org.nuiton.eugene.models.object.ObjectModelAttribute attribute,
java.lang.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,
java.lang.String propertyType,
java.lang.String propertyName,
java.lang.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 |
generateI18nBlock(org.nuiton.eugene.models.object.ObjectModelClass input,
java.lang.String i18nPrefix)
|
protected void |
generateImpl(org.nuiton.eugene.models.object.ObjectModelClass input)
|
protected void |
generateProperties(java.util.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 |
generateToStringOperation(org.nuiton.eugene.models.object.ObjectModelClass input)
|
protected java.lang.String |
getCollectionType(org.nuiton.eugene.models.object.ObjectModelAttribute attribute)
|
protected java.lang.String |
getPropertyName(org.nuiton.eugene.models.object.ObjectModelAttribute attribute)
|
protected java.lang.String |
getPropertyType(org.nuiton.eugene.models.object.ObjectModelAttribute attribute)
|
protected boolean |
isAbstract(org.nuiton.eugene.models.object.ObjectModelClass clazz)
|
protected boolean |
isGenerateImpl(org.nuiton.eugene.models.object.ObjectModelClass input,
java.util.Collection<org.nuiton.eugene.models.object.ObjectModelOperation> operations)
|
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, addConstant, addConstant, addConstantsFromDependency, addConstructor, addConstructor, addException, addException, addImport, addImport, addImport, addInnerClassifier, addInterface, addInterface, addLiteral, addOperation, addOperation, addParameter, addParameter, cloneOperationSignature, createAbstractClass, createClass, createEnumeration, createInterface, debugOutputModel, getConstantName, getConstantPrefix, getConstantPrefix, getFileInClassPath, initConstantPrefixFromModel, initOutputModel, initOutputTemplate, setConstantPrefix, setDocumentation, 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, setProperties, 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
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>
createEntityInterface
protected void createEntityInterface(org.nuiton.eugene.models.object.ObjectModelClass input)
createEntityAbstractClass
protected void createEntityAbstractClass(org.nuiton.eugene.models.object.ObjectModelClass input)
isGenerateImpl
protected boolean isGenerateImpl(org.nuiton.eugene.models.object.ObjectModelClass input,
java.util.Collection<org.nuiton.eugene.models.object.ObjectModelOperation> operations)
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(java.util.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),
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,
java.lang.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 operationoperationPrefix - Operation prefix : 'get' by default, if prefix
is null
addMultipleAddOperation
protected void addMultipleAddOperation(org.nuiton.eugene.models.object.ObjectModelAttribute attribute,
java.lang.String collectionImpl)
addMultipleAddAllOperation
protected void addMultipleAddAllOperation(org.nuiton.eugene.models.object.ObjectModelAttribute attribute,
java.lang.String collectionInterface)
addMultipleSetOperation
protected void addMultipleSetOperation(org.nuiton.eugene.models.object.ObjectModelAttribute attribute,
java.lang.String collectionInterface,
java.lang.String collectionImpl)
addMultipleRemoveOperation
protected void addMultipleRemoveOperation(org.nuiton.eugene.models.object.ObjectModelAttribute attribute)
addMultipleClearOperation
protected void addMultipleClearOperation(org.nuiton.eugene.models.object.ObjectModelAttribute attribute,
java.lang.String collectionInterface,
java.lang.String collectionImpl)
addMultipleGetOperation
protected void addMultipleGetOperation(org.nuiton.eugene.models.object.ObjectModelAttribute attribute,
java.lang.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)
generateI18nBlock
protected void generateI18nBlock(org.nuiton.eugene.models.object.ObjectModelClass input,
java.lang.String i18nPrefix)
addI18n
protected void addI18n(java.lang.StringBuilder buffer,
java.lang.String i18nPrefix,
java.lang.String suffix)
isAbstract
protected boolean isAbstract(org.nuiton.eugene.models.object.ObjectModelClass clazz)
getCollectionType
protected java.lang.String getCollectionType(org.nuiton.eugene.models.object.ObjectModelAttribute attribute)
getPropertyName
protected java.lang.String getPropertyName(org.nuiton.eugene.models.object.ObjectModelAttribute attribute)
getPropertyType
protected java.lang.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,
java.lang.String propertyType,
java.lang.String propertyName,
java.lang.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
Copyright © 2004-2010 CodeLutin. All Rights Reserved.