org.nuiton.wikitty.generator
Class WikittyAbstractGenerator

java.lang.Object
  extended by org.nuiton.eugene.Template<I>
      extended by org.nuiton.eugene.Transformer<org.nuiton.eugene.models.object.ObjectModel,O>
          extended by org.nuiton.eugene.models.object.ObjectModelTransformer<org.nuiton.eugene.models.object.ObjectModel>
              extended by org.nuiton.eugene.java.ObjectModelTransformerToJava
                  extended by org.nuiton.wikitty.generator.WikittyAbstractGenerator
All Implemented Interfaces:
org.nuiton.eugene.TemplateConfiguration

public class WikittyAbstractGenerator
extends org.nuiton.eugene.java.ObjectModelTransformerToJava

Wikitty abstract class generator.

Plexus component:
role:
"org.nuiton.eugene.Template"
role-hint:
"org.nuiton.wikitty.generator.WikittyAbstractGenerator"

Field Summary
protected  Map<String,String> attributeToGetterName
          map "Client.name" to "getName()" or any getter to read this attribute those getter names are stored while generating in order to be found later when generating toString()
protected  List<org.nuiton.eugene.models.object.ObjectModelClass> entitiesWithInheritedOperations
           
protected  Map<org.nuiton.eugene.models.object.ObjectModelClass,org.nuiton.eugene.models.object.ObjectModelClass> processedClasses
          map busines entity from source model to generated abstract class
protected  Map<org.nuiton.eugene.models.object.ObjectModelClass,List<String>> requiredDependencyImports
          an entity with a dependency must add the imports defined as values in the map.
 
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
 
Constructor Summary
WikittyAbstractGenerator()
           
 
Method Summary
protected  void addConstants(org.nuiton.eugene.models.object.ObjectModelClass businessEntity, org.nuiton.eugene.models.object.ObjectModelClass abstractClass)
           
protected  void addConstructors(org.nuiton.eugene.models.object.ObjectModelClass clazz)
           
protected  void addImports(org.nuiton.eugene.models.object.ObjectModelClass clazz)
           
protected  void addInheritedOperations(org.nuiton.eugene.models.object.ObjectModelClass businessEntity, org.nuiton.eugene.models.object.ObjectModelClass abstractClass)
          Add inherited operations to the abstract generated from an entity.
protected  void addMetaExtensionOperations(org.nuiton.eugene.models.object.ObjectModelClass metaExtension, org.nuiton.eugene.models.object.ObjectModelClass abstractClassForThisMetaExtension)
           
protected  void addOperations(org.nuiton.eugene.models.object.ObjectModelClass businessEntity, org.nuiton.eugene.models.object.ObjectModelClass abstractClass)
           
protected  void addOperationWithName(org.nuiton.eugene.models.object.ObjectModelClass businessEntity, org.nuiton.eugene.models.object.ObjectModelClass abstractClass, org.nuiton.eugene.models.object.ObjectModelAttribute attribute, String getterSetterName, String helperClassName, String helperGetterSetterName)
          Methode de génération des methodes (avec corps) qui permet de generer des methodes avec des nom (et corps) différent suivant si on l'appel pour générer le operation de la classe actuelle ou celles de ses super classes.
protected  void addToString(org.nuiton.eugene.models.object.ObjectModelClass businessEntity, org.nuiton.eugene.models.object.ObjectModelClass abstractClass)
          add a toString method.
 void transformFromModel(org.nuiton.eugene.models.object.ObjectModel model)
           
 
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, getJavaBeanMethodName, initConstantPrefixFromModel, initOutputModel, initOutputTemplate, isInClassPath, isInClassPath, setConstantPrefix, setDocumentation, setMaxMultiplicity, setMinMultiplicity, setNavigable, setOperationBody, setSuperClass, setSuperClass
 
Methods inherited from class org.nuiton.eugene.models.object.ObjectModelTransformer
transform, transformFromClass, transformFromClassifier, transformFromElement, transformFromEnumeration, transformFromInterface
 
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
 

Field Detail

processedClasses

protected Map<org.nuiton.eugene.models.object.ObjectModelClass,org.nuiton.eugene.models.object.ObjectModelClass> processedClasses
map busines entity from source model to generated abstract class


attributeToGetterName

protected Map<String,String> attributeToGetterName
map "Client.name" to "getName()" or any getter to read this attribute those getter names are stored while generating in order to be found later when generating toString()


entitiesWithInheritedOperations

protected List<org.nuiton.eugene.models.object.ObjectModelClass> entitiesWithInheritedOperations

requiredDependencyImports

protected Map<org.nuiton.eugene.models.object.ObjectModelClass,List<String>> requiredDependencyImports
an entity with a dependency must add the imports defined as values in the map. By filling and reading this map, imports while spread across the levels of dependencies

Constructor Detail

WikittyAbstractGenerator

public WikittyAbstractGenerator()
Method Detail

transformFromModel

public void transformFromModel(org.nuiton.eugene.models.object.ObjectModel model)
Overrides:
transformFromModel in class org.nuiton.eugene.models.object.ObjectModelTransformer<org.nuiton.eugene.models.object.ObjectModel>

addImports

protected void addImports(org.nuiton.eugene.models.object.ObjectModelClass clazz)

addConstructors

protected void addConstructors(org.nuiton.eugene.models.object.ObjectModelClass clazz)

addConstants

protected void addConstants(org.nuiton.eugene.models.object.ObjectModelClass businessEntity,
                            org.nuiton.eugene.models.object.ObjectModelClass abstractClass)

addOperations

protected void addOperations(org.nuiton.eugene.models.object.ObjectModelClass businessEntity,
                             org.nuiton.eugene.models.object.ObjectModelClass abstractClass)

addOperationWithName

protected void addOperationWithName(org.nuiton.eugene.models.object.ObjectModelClass businessEntity,
                                    org.nuiton.eugene.models.object.ObjectModelClass abstractClass,
                                    org.nuiton.eugene.models.object.ObjectModelAttribute attribute,
                                    String getterSetterName,
                                    String helperClassName,
                                    String helperGetterSetterName)
Methode de génération des methodes (avec corps) qui permet de generer des methodes avec des nom (et corps) différent suivant si on l'appel pour générer le operation de la classe actuelle ou celles de ses super classes.

Parameters:
businessEntity - class du modèle
abstractClass - class a générer
attribute - attribut dont on veut generer les opérations
getterSetterName - le nom du getter (peut etre différent du nom de l'attribut dans le cas d'un heritage multiples)
helperClassName - le nom du helper qui gere l'acces au parametre (celui de la classe courante ou un de ses supper class)
helperGetterSetterName - le nom du getter a appeler pour le helper concerné

addInheritedOperations

protected void addInheritedOperations(org.nuiton.eugene.models.object.ObjectModelClass businessEntity,
                                      org.nuiton.eugene.models.object.ObjectModelClass abstractClass)
Add inherited operations to the abstract generated from an entity. Method browse superClasses to copy methods and their bodies. The method deal with imports, cause bodies call the Helper of the classe where the attribute was declared. If A inherit from B and B inherit from and A, B, C not in the same package we B need to import CHelper and A need to import BHelper. But, since A has C attributes too, it needs CHelper too. So when we will process B, we will save needed imports, A will get them thus import CHelper.

Parameters:
businessEntity -
abstractClass -

addToString

protected void addToString(org.nuiton.eugene.models.object.ObjectModelClass businessEntity,
                           org.nuiton.eugene.models.object.ObjectModelClass abstractClass)
add a toString method. if a toString is tagValue is attached to businessEntity, it will be used to generate a toString as this :
 given "hello %Person.name|unknown$s"
 
will try to replace field name by field value for extension Person. if this information is not available, will do unknow.

use same syntax as http://download.oracle.com/javase/6/docs/api/java/util/Formatter.html#syntax

Parameters:
businessEntity -
abstractClass -

addMetaExtensionOperations

protected void addMetaExtensionOperations(org.nuiton.eugene.models.object.ObjectModelClass metaExtension,
                                          org.nuiton.eugene.models.object.ObjectModelClass abstractClassForThisMetaExtension)


Copyright © 2009-2012 CodeLutin. All Rights Reserved.