org.nuiton.eugene.models.object
Class ObjectModelGenerator

java.lang.Object
  extended by org.nuiton.eugene.Template<M>
      extended by org.nuiton.eugene.AbstractGenerator<ObjectModel>
          extended by 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

Version:
$Id: ObjectModelGenerator.java 1012 2010-11-28 11:24:27Z tchemit $
Author:
Benjamin Poussin Copyright Code Lutin

Field Summary
 
Fields inherited from class org.nuiton.eugene.AbstractGenerator
parent
 
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
ObjectModelGenerator()
           
ObjectModelGenerator(AbstractGenerator<ObjectModel> parent)
           
 
Method Summary
 void applyTemplate(ObjectModel model, File destDir)
          Par defaut la methode appelle la methode generateFromModel(Writer, ObjectModel) puis boucle sur chaque class en appelant la m?thode generateFromClass(Writer, ObjectModelClass) puis boucle sur chaque interface en appelant a méthode generateFromInterface(Writer, ObjectModelInterface) et enfin sur chaque énumération en appelant la méthode generateFromEnumeration(Writer, ObjectModelEnumeration) Le nom de fichier est récupérer pour chacun d'eux en appelant la méthode getFilenameFor....
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/Toto
 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
 String 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/Toto
 String 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, getWriterReport, isVerbose, setConfiguration, setProperty
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

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 methode generateFromModel(Writer, ObjectModel) puis boucle sur chaque class en appelant la m?thode generateFromClass(Writer, ObjectModelClass) puis boucle sur chaque interface en appelant a méthode generateFromInterface(Writer, ObjectModelInterface) et enfin sur chaque énumération en appelant la méthode generateFromEnumeration(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 class Template<ObjectModel>
Parameters:
model - le modele memoire a utiliser
destDir - 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 destination
filename - nom du fichier de sortie
type - 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 the Template.generatedPackages list or if Template.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 utilise
packageName - 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


Copyright © 2004-2012 CodeLutin. All Rights Reserved.