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:
FriendTemplatesGenerator,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_I18N_GETTER_FILE, PROP_LAST_MODIFIED_SOURCE, PROP_OUTPUT_DIRECTORY, PROP_OVERWRITE, PROP_RESOURCE_DIRECTORY, 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 voidapplyTemplate(ObjectModel model, File destDir)Par defaut la methode appelle la methodegenerateFromModel(Writer, ObjectModel)puis boucle sur chaque class en appelant la m?protected booleancanGenerateElement(Object element)Test if given element can be generated.voidgenerateFromClass(Writer output, ObjectModelClass input)voidgenerateFromClassifier(Writer output, ObjectModelClassifier input)protected voidgenerateFromElement(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).voidgenerateFromEnum(Writer output, ObjectModelEnumeration input)voidgenerateFromEnumeration(Writer output, ObjectModelEnumeration input)voidgenerateFromInterface(Writer output, ObjectModelInterface input)voidgenerateFromModel(Writer output, ObjectModel input)StringgetFilenameForClass(ObjectModelClass clazz)Par defaut cette methode retourne le QualifiedName convertie en chemin par exemple pour org.codelutin.Toto on aurait org/codelutin/TotoStringgetFilenameForClassifier(ObjectModelClassifier classifier)Par defaut cette methode retourne le QualifiedName convertie en chemin par exemple pour org.codelutin.Toto on aurait org/codelutin/TotoStringgetFilenameForEnumeration(ObjectModelEnumeration enumeration)StringgetFilenameForInterface(ObjectModelInterface interfacez)Par defaut cette methode retourne le QualifiedName convertie en chemin par exemple pour org.codelutin.Toto on aurait org/codelutin/TotoStringgetFilenameForModel(ObjectModel model)Par defaut cette methode retourne le getName du model.StringgetFilenameForPackage(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, getLog, getModel, getOverwrite, getProperties, getResourcesHelper, getWriterReport, isVerbose, setConfiguration, setLog, setProperty
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.nuiton.eugene.TemplateConfiguration
getI18nGetterFile, setI18nGetterFile
-
-
-
-
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:
applyTemplatein 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.generatedPackageslist or ifTemplate.generatedPackagesis 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
-
-