Package org.nuiton.eugene.models.object
Class ObjectModelGenerator
- java.lang.Object
-
- org.nuiton.eugene.Template<M>
-
- org.nuiton.eugene.AbstractGenerator<ObjectModel>
-
- org.nuiton.eugene.models.object.ObjectModelGenerator
-
- All Implemented Interfaces:
TemplateConfiguration
- Direct Known Subclasses:
JavaGenerator
public class ObjectModelGenerator extends AbstractGenerator<ObjectModel>
Pour utiliser ce type de générateur il faut implanter au moins une des trois méthodes generateFrom... et le getFilenameFor... associé si l'on souhaite un nom de fichier convenable. Si dans une méthode generateFrom... on utilise pas le Writer alors aucun fichier n'est généré.public String getFilenameForClass(ObjectModelClass clazz){ return super.getFilenameForClass(Clazz) + "Service.java"; } public void generateFromClass(Writer output, ObjectModelClass clazz) throws IOException{ if(clazz.getType().equals("service")){ / *{ public class .... { } }* / } }
Le nom de l'argument writer doit absolument etre output et pas autre chose si vous souhaitez utiliser le processeur org.codelutin.processor.filters.GeneratorTemplatesFilter pour vous s'implifier l'écriture des templates. Created: 14 mars 2004- Author:
- Benjamin Poussin - poussin@codelutin.com
-
-
Field Summary
-
Fields inherited from class org.nuiton.eugene.AbstractGenerator
parent
-
Fields inherited from class org.nuiton.eugene.Template
configuration, excludeTemplates, generatedPackages, model, resourcesHelper
-
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
Constructors Constructor Description ObjectModelGenerator()
ObjectModelGenerator(AbstractGenerator<ObjectModel> parent)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
applyTemplate(ObjectModel model, File destDir)
Par defaut la methode appelle la methodegenerateFromModel(Writer, ObjectModel)
puis boucle sur chaque class en appelant la m?protected boolean
canGenerateElement(Object element)
Test if given element can be generated.void
generateFromClass(Writer output, ObjectModelClass input)
void
generateFromClassifier(Writer output, ObjectModelClassifier input)
protected void
generateFromElement(Object element, File destDir, String filename, ObjectModelType type)
Génération pour un élément du modèle (ou le modèle lui-même).void
generateFromEnum(Writer output, ObjectModelEnumeration input)
void
generateFromEnumeration(Writer output, ObjectModelEnumeration input)
void
generateFromInterface(Writer output, ObjectModelInterface input)
void
generateFromModel(Writer output, ObjectModel input)
String
getFilenameForClass(ObjectModelClass clazz)
Par defaut cette methode retourne le QualifiedName convertie en chemin par exemple pour org.codelutin.Toto on aurait org/codelutin/TotoString
getFilenameForClassifier(ObjectModelClassifier classifier)
Par defaut cette methode retourne le QualifiedName convertie en chemin par exemple pour org.codelutin.Toto on aurait org/codelutin/TotoString
getFilenameForEnumeration(ObjectModelEnumeration enumeration)
String
getFilenameForInterface(ObjectModelInterface interfacez)
Par defaut cette methode retourne le QualifiedName convertie en chemin par exemple pour org.codelutin.Toto on aurait org/codelutin/TotoString
getFilenameForModel(ObjectModel model)
Par defaut cette methode retourne le getName du model.String
getFilenameForPackage(ObjectModel model, String packageName)
Par defaut cette methode retourne le QualifiedName convertie en chemin par exemple pour org.codelutin.Toto on aurait org/codelutin/Toto-
Methods inherited from class org.nuiton.eugene.AbstractGenerator
canGeneratePackage, getDestinationFile, getEncoding, getLastModifiedSource, getProperty, getProperty, getWriter, isNewerThanSource, isOverwrite, setParent, write
-
Methods inherited from class org.nuiton.eugene.Template
getClassLoader, getConfiguration, getExcludeTemplates, getGeneratedPackages, getModel, getOverwrite, getProperties, getResourcesHelper, getWriterReport, isVerbose, setConfiguration, setProperty
-
-
-
-
Constructor Detail
-
ObjectModelGenerator
public ObjectModelGenerator()
-
ObjectModelGenerator
public ObjectModelGenerator(AbstractGenerator<ObjectModel> parent)
-
-
Method Detail
-
applyTemplate
public void applyTemplate(ObjectModel model, File destDir) throws IOException
Par defaut la methode appelle la methodegenerateFromModel(Writer, ObjectModel)
puis boucle sur chaque class en appelant la m?thodegenerateFromClass(Writer, ObjectModelClass)
puis boucle sur chaque interface en appelant a méthodegenerateFromInterface(Writer, ObjectModelInterface)
et enfin sur chaque énumération en appelant la méthodegenerateFromEnumeration(Writer, ObjectModelEnumeration)
Le nom de fichier est récupérer pour chacun d'eux en appelant la méthode getFilenameFor.... La methode generateFrom... n'utilise pas le Writer alors le fichier n'est pas généré, si on l'utilise m?me pour ne rien écrire alors le fichier sera généré.- Specified by:
applyTemplate
in classTemplate<ObjectModel>
- Parameters:
model
- le modele memoire a utiliserdestDir
- le repertoire ou generer- Throws:
IOException
- pour tout pb
-
generateFromElement
protected void generateFromElement(Object element, File destDir, String filename, ObjectModelType type)
Génération pour un élément du modèle (ou le modèle lui-même). Types possibles : ObjectModel, ObjectModelClassifier, ObjectModelClass, ObjectModelInterface et ObjectModelEnumeration. La méthode generateFromXXX dépend du type d'élément et peut être surchargée.- Parameters:
element
- element à générédestDir
- dossier de destinationfilename
- nom du fichier de sortietype
- type d'ObjectModel- See Also:
ObjectModelType
-
canGenerateElement
protected boolean canGenerateElement(Object element)
Test if given element can be generated. An element can be generated if his package is in theTemplate.generatedPackages
list or ifTemplate.generatedPackages
is null or empty.- Parameters:
element
- element to test- Returns:
- generation allowed
-
getFilenameForModel
public String getFilenameForModel(ObjectModel model)
Par defaut cette methode retourne le getName du model. Si l'on souhaite utiliser la methode generateFromModel il vaut mieux surcharger cette methode- Parameters:
model
- le modele utilise- Returns:
- le nom du fichier a generer
-
getFilenameForPackage
public String getFilenameForPackage(ObjectModel model, String packageName)
Par defaut cette methode retourne le QualifiedName convertie en chemin par exemple pour org.codelutin.Toto on aurait org/codelutin/Toto- Parameters:
model
- le modele utilisepackageName
- le nom du paquetage- Returns:
- le repertoire correspondant au paquetage
-
getFilenameForInterface
public String getFilenameForInterface(ObjectModelInterface interfacez)
Par defaut cette methode retourne le QualifiedName convertie en chemin par exemple pour org.codelutin.Toto on aurait org/codelutin/Toto- Parameters:
interfacez
- l'interface utilisee- Returns:
- le nom du l'interface a generer
-
getFilenameForClass
public String getFilenameForClass(ObjectModelClass clazz)
Par defaut cette methode retourne le QualifiedName convertie en chemin par exemple pour org.codelutin.Toto on aurait org/codelutin/Toto- Parameters:
clazz
- la classe utilisee- Returns:
- le nom de la classe a generer
-
getFilenameForClassifier
public String getFilenameForClassifier(ObjectModelClassifier classifier)
Par defaut cette methode retourne le QualifiedName convertie en chemin par exemple pour org.codelutin.Toto on aurait org/codelutin/Toto- Parameters:
classifier
- le classifier utilisee- Returns:
- le nom du classifier a generer
-
getFilenameForEnumeration
public String getFilenameForEnumeration(ObjectModelEnumeration enumeration)
-
generateFromModel
public void generateFromModel(Writer output, ObjectModel input) throws IOException
- Throws:
IOException
-
generateFromInterface
public void generateFromInterface(Writer output, ObjectModelInterface input) throws IOException
- Throws:
IOException
-
generateFromEnum
public void generateFromEnum(Writer output, ObjectModelEnumeration input) throws IOException
- Throws:
IOException
-
generateFromClass
public void generateFromClass(Writer output, ObjectModelClass input) throws IOException
- Throws:
IOException
-
generateFromClassifier
public void generateFromClassifier(Writer output, ObjectModelClassifier input) throws IOException
- Throws:
IOException
-
generateFromEnumeration
public void generateFromEnumeration(Writer output, ObjectModelEnumeration input) throws IOException
- Throws:
IOException
-
-