Index: lutingenerator/src/java/org/codelutin/generator/AbstractObjectModelGenerator.java diff -u lutingenerator/src/java/org/codelutin/generator/AbstractObjectModelGenerator.java:1.2 lutingenerator/src/java/org/codelutin/generator/AbstractObjectModelGenerator.java:1.3 --- lutingenerator/src/java/org/codelutin/generator/AbstractObjectModelGenerator.java:1.2 Fri Aug 6 17:46:45 2004 +++ lutingenerator/src/java/org/codelutin/generator/AbstractObjectModelGenerator.java Wed Jan 4 13:29:11 2006 @@ -23,18 +23,15 @@ * * @author Benjamin Poussin * Copyright Code Lutin - * @version $Revision: 1.2 $ + * @version $Revision: 1.3 $ * - * Mise a jour: $Date: 2004/08/06 17:46:45 $ + * Mise a jour: $Date: 2006/01/04 13:29:11 $ * par : $Author: bpoussin $ */ package org.codelutin.generator; import org.codelutin.generator.models.object.ObjectModelElement; -import org.codelutin.generator.models.object.ObjectModelClass; -import java.io.Writer; -import java.io.IOException; public class AbstractObjectModelGenerator extends ObjectModelGenerator{ // AbstractObjectModelGenerator @@ -55,30 +52,5 @@ } } - /** - * Genere le border du panel - */ - public void generateBorderPanel(Writer output, ObjectModelClass clazz, - String name) throws IOException { -/*{ - - - - - - - 0 - - - <%=name%> - 0 - 0 - - - - -}*/ - } - } // AbstractObjectModelGenerator Index: lutingenerator/src/java/org/codelutin/generator/GeneratorException.java diff -u lutingenerator/src/java/org/codelutin/generator/GeneratorException.java:1.1 lutingenerator/src/java/org/codelutin/generator/GeneratorException.java:1.2 --- lutingenerator/src/java/org/codelutin/generator/GeneratorException.java:1.1 Tue Jun 22 17:34:42 2004 +++ lutingenerator/src/java/org/codelutin/generator/GeneratorException.java Wed Jan 4 13:29:11 2006 @@ -23,9 +23,9 @@ * * @author Benjamin Poussin * Copyright Code Lutin - * @version $Revision: 1.1 $ + * @version $Revision: 1.2 $ * - * Mise a jour: $Date: 2004/06/22 17:34:42 $ + * Mise a jour: $Date: 2006/01/04 13:29:11 $ * par : $Author: bpoussin $ */ @@ -33,6 +33,9 @@ public class GeneratorException extends RuntimeException { // GeneratorException + /** */ + private static final long serialVersionUID = 5861583066249595300L; + public GeneratorException(String msg){ super(msg); } Index: lutingenerator/src/java/org/codelutin/generator/MonitorWriter.java diff -u lutingenerator/src/java/org/codelutin/generator/MonitorWriter.java:1.2 lutingenerator/src/java/org/codelutin/generator/MonitorWriter.java:1.3 --- lutingenerator/src/java/org/codelutin/generator/MonitorWriter.java:1.2 Wed Aug 4 08:53:16 2004 +++ lutingenerator/src/java/org/codelutin/generator/MonitorWriter.java Wed Jan 4 13:29:11 2006 @@ -23,9 +23,9 @@ * * @author Benjamin Poussin * Copyright Code Lutin -* @version $Revision: 1.2 $ +* @version $Revision: 1.3 $ * -* Mise a jour: $Date: 2004/08/04 08:53:16 $ +* Mise a jour: $Date: 2006/01/04 13:29:11 $ * par : $Author: bpoussin $ */ @@ -33,7 +33,6 @@ import java.io.FilterWriter; import java.io.IOException; -import java.io.Writer; import java.io.StringWriter; /** Index: lutingenerator/src/java/org/codelutin/generator/ObjectModelGenerator.java diff -u lutingenerator/src/java/org/codelutin/generator/ObjectModelGenerator.java:1.17 lutingenerator/src/java/org/codelutin/generator/ObjectModelGenerator.java:1.18 --- lutingenerator/src/java/org/codelutin/generator/ObjectModelGenerator.java:1.17 Fri Sep 30 17:30:21 2005 +++ lutingenerator/src/java/org/codelutin/generator/ObjectModelGenerator.java Wed Jan 4 13:29:11 2006 @@ -1,102 +1,137 @@ -/* *##% -* Copyright (C) 2002, 2003 Code Lutin -* -* This program is free software; you can redistribute it and/or -* modify it under the terms of the GNU General Public License -* as published by the Free Software Foundation; either version 2 -* of the License, or (at your option) any later version. -* -* This program is distributed in the hope that it will be useful, -* but WITHOUT ANY WARRANTY; without even the implied warranty of -* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -* GNU General Public License for more details. -* -* You should have received a copy of the GNU General Public License -* along with this program; if not, write to the Free Software -* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -*##%*/ - -/* * -* ObjectModelGenerator.java -* -* Created: 14 mars 2004 -* -* @author Benjamin Poussin -* Copyright Code Lutin -* @version $Revision: 1.17 $ -* -* Mise a jour: $Date: 2005/09/30 17:30:21 $ -* par : $Author: pineau $ -*/ +/* + * *##% Copyright (C) 2002, 2003 Code Lutin + * + * This program is free software; you can redistribute it and/or modify it under + * the terms of the GNU General Public License as published by the Free Software + * Foundation; either version 2 of the License, or (at your option) any later + * version. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS + * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more + * details. + * + * You should have received a copy of the GNU General Public License along with + * this program; if not, write to the Free Software Foundation, Inc., 59 Temple + * Place - Suite 330, Boston, MA 02111-1307, USA. ##% + */ + +/******************************************************************************* + * ObjectModelGenerator.java + * + * Created: 14 mars 2004 + * + * @author Benjamin Poussin Copyright Code Lutin + * + * @version $Revision: 1.18 $ + * + * Mise a jour: $Date: 2006/01/04 13:29:11 $ par : $Author: bpoussin $ + */ package org.codelutin.generator; import java.io.File; -import java.io.FileWriter; +import java.io.FileInputStream; import java.io.IOException; import java.io.StringWriter; import java.io.Writer; +import java.util.ArrayList; +import java.util.Collection; +import java.util.Enumeration; import java.util.Iterator; +import java.util.logging.Level; +import java.util.logging.Logger; +import java.util.regex.Matcher; +import java.util.regex.Pattern; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; import org.codelutin.generator.models.object.ObjectModel; import org.codelutin.generator.models.object.ObjectModelClass; import org.codelutin.generator.models.object.ObjectModelClassifier; import org.codelutin.generator.models.object.ObjectModelInterface; +import org.codelutin.generator.models.object.xml.ObjectModelClassifierImpl; +import org.codelutin.generator.models.object.xml.ObjectModelElementImpl; import org.codelutin.generator.models.object.xml.ObjectModelImpl; +import org.codelutin.generator.models.object.xml.ObjectModelImplRef; +import org.codelutin.generator.models.object.xml.ObjectModelImplTagValue; +import org.codelutin.util.FileUtil; +import org.codelutin.util.RecursiveProperties; import org.codelutin.util.ResourceNotFoundException; +import org.codelutin.util.StringUtil; import org.codelutin.xml.XMLObjectParser; -import java.util.logging.Logger; -import java.util.logging.Level; /** -* 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 est output et pas autre chose -* si vous souhaité utilisé le processeur -* {@link org.codelutin.processor.filters.GeneratorTemplatesFilter} pour vous -* s'implifier l'écriture des template. -*/ + * 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 est output et pas autre chose si + * vous souhaité utilisé le processeur + * {@link org.codelutin.processor.filters.GeneratorTemplatesFilter} pour vous + * s'implifier l'écriture des template. + */ public class ObjectModelGenerator extends ChildGenerator { + /** + * Logger for this class + */ + private static final Log log = LogFactory + .getLog(ObjectModelGenerator.class); + protected ObjectModel model = null; - public ObjectModelGenerator(){ + /** + * + * l'expression réguliere match les chaines de type + * ..[name]..[tag] + * fr.isisfish.entities.Population.class.stereotype=entity + * fr.isisfish.entities.Population.class.tagvalue.persistenceType=flatfile + * fr.isisfish.entities.Population.attribute.name.stereotype=... + * fr.isisfish.entities.Population.attribute.name.tagvalue.pk=topiaId + * fr.isisfish.entities.Population.operation.getRegion.stereotype=... + * fr.isisfish.entities.Population.operation.getRegion.tagvalue.pk=... + */ + Pattern propertiesPattern = Pattern + .compile("((?:[_a-z0-9]+\\.)+(?:_?[A-Z][_a-zA-Z0-9]*\\.)+)(?:(class|attribute|operation)\\.)(?:([_a-z0-9][_a-zA-Z0-9]*)\\.)?(?:(stereotype|tagvalue)\\.?)([_a-z0-9][_a-zA-Z0-9]*)?"); + + public ObjectModelGenerator() { super(); } - public ObjectModelGenerator(Generator parent){ + public ObjectModelGenerator(Generator parent) { super(parent); } - public ObjectModel getModel(){ + public ObjectModel getModel() { return model; } /** - * @param files les noms des fichiers existant contenant du XML - * représentant des ObjectModel - * @param destDir le répertoire dans lequel il faudra mettre les fichiers - * générés - */ + * @param files les noms des fichiers existant contenant du XML représentant + * des ObjectModel. Il est automatiquement recherche un fichier de + * propriété associé a ce fichier pour pouvoir ajouter des + * stereotype ou des tag value sur les class, attribute ou operation + * @param destDir le répertoire dans lequel il faudra mettre les fichiers + * générés + */ public void generate(File[] files, File destDir) { setLastModifiedSource(files); ObjectModel objectModel = new ObjectModelImpl(); @@ -106,156 +141,276 @@ parser.setPrefix("par"); parser.parseRoot(objectModel); } catch (ResourceNotFoundException eee) { - System.out.println( - "Unable to parse ObjectModel input file : " - + files[i].getName()); - eee.printStackTrace(); + if (log.isWarnEnabled()) { + log.warn("Unable to parse ObjectModel input file : " + + files[i], eee); + } + } + + // recherche est charge le fichier propriete associe au modele + File dir = files[i].getParentFile(); + String ext = FileUtil.extension(files[i]); + String name = FileUtil.basename(files[i], "." + ext); + File propFile = new File(dir, name + ".properties"); + RecursiveProperties prop = new RecursiveProperties(); + if (!propFile.exists()) { + if (log.isInfoEnabled()) { + log.info("Pas de fichier de propriete " + propFile + + " associé au model"); + } + } else { + if (log.isInfoEnabled()) { + log.info("Lecture du fichier de propriete " + propFile + + " associé au model"); + } + try { + prop.load(new FileInputStream(propFile)); + } catch (IOException eee) { + log.warn("Impossible de lire le fichier de propriete " + + propFile, eee); + } + + // on ajoute les proprietes du fichier associe au model + for (Enumeration e = prop.keys(); e.hasMoreElements();) { + String key = (String) e.nextElement(); + String value = prop.getProperty(key); + + Matcher matcher = propertiesPattern.matcher(key); + + if (log.isDebugEnabled()) { + log.debug("Propriete: '" + key + "'"); + } + + if (matcher.find()) { + // fqn is fully qualified name of class + String fqn = matcher.group(1); + fqn = StringUtil.substring(fqn, 0, -1); // remove ended + // . + // target is class, attribute or operation + String target = matcher.group(2); + String targetName = matcher.group(3); + // type is stereotype or tagvalue + String type = matcher.group(4); + String tag = matcher.group(5); + + System.out.println(" => " + "fqn:" + fqn + " target:" + + target + " targetName:" + targetName + + " type:" + type + " tag:" + tag); + if (log.isDebugEnabled()) { + log.debug("Propriete: '" + key + "' => " + "fqn:" + + fqn + " target:" + target + + " targetName:" + targetName + " type:" + + type + " tag:" + tag); + } + + ObjectModelClassifier omc = objectModel + .getClassifier(fqn); + if (omc instanceof ObjectModelClassifierImpl) { + // on utilise une liste car il peut y avoir plusieur + // operation avec le nom donné + ArrayList elems = new ArrayList(); + if ("class".equals(target)) { + elems.add((ObjectModelElementImpl) omc); + } else if ("attribute".equals(target)) { + ObjectModelClass classmodel = (ObjectModelClass) omc; + elems.add((ObjectModelElementImpl) classmodel + .getAttribute(targetName)); + } else if ("operation".equals(target)) { + elems.addAll((Collection) omc + .getOperations(targetName)); + } + for (Iterator it = elems.iterator(); it.hasNext();) { + ObjectModelElementImpl elem = (ObjectModelElementImpl) it + .next(); + if ("stereotype".equals(type)) { + // pour les stereotypes + ObjectModelImplRef stereotype = new ObjectModelImplRef(); + stereotype.parsetName(value); + elem.parsetStereotype(stereotype); + } else if ("tagvalue".equals(type)) { + // pour les tagvalues + ObjectModelImplTagValue tagvalue = new ObjectModelImplTagValue(); + tagvalue.parsetName(tag); + tagvalue.parsetValue(value); + elem.parsetTagValue(tagvalue); + } + } + } else { + // TODO il faudra avoir des methodes d'acces en + // Set sur l'interface pour eviter ce message + log + .warn("Can't add properties to model, it's not an ObjectModelClassifierImpl"); + } + } + } } } try { generate(objectModel, destDir); } catch (IOException eee) { - System.out.println( - "Unable to generate for file"); - eee.printStackTrace(); + if (log.isWarnEnabled()) { + log.warn("Unable to generate for file", eee); + } } } /** - * Par defaut la methode appelle la methode - * {@link #generateFromModel(Writer, ObjectModel)} - * puis boucle sur chaque class en appelant la m?thode - * {@link #generateFromClass(Writer, ObjectModelClass)} et enfin sur chaque - * interface en appelant a méthode - * {@link #generateFromInterface(Writer, ObjectModelClass)} - * 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é. - */ + * Par defaut la methode appelle la methode + * {@link #generateFromModel(Writer, ObjectModel)} puis boucle sur chaque + * class en appelant la m?thode + * {@link #generateFromClass(Writer, ObjectModelClass)} et enfin sur chaque + * interface en appelant a méthode + * {@link #generateFromInterface(Writer, ObjectModelClass)} 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é. + */ public void generate(ObjectModel model, File destDir) throws IOException { { - this.model = model; + this.model = model; String filename = getFilenameForModel(model); File outputFile = getDestinationFile(destDir, filename); - if(getOverwrite() || !isNewerThanSource(outputFile)){ - StringWriter out = new StringWriter(); - MonitorWriter monitorOut = new MonitorWriter(out); - generateFromModel(monitorOut, model); - write(outputFile, monitorOut); - }else{ - Logger.getLogger(getClass().getName() + ".generate").log(Level.FINE, "file "+ outputFile + " is up-to-date"); + if (getOverwrite() || !isNewerThanSource(outputFile)) { + try { + StringWriter out = new StringWriter(); + MonitorWriter monitorOut = new MonitorWriter(out); + generateFromModel(monitorOut, model); + write(outputFile, monitorOut); + } catch (Exception eee) { + log.warn("Erreur lors de la génération du fichier " + outputFile); + throw new RuntimeException("Erreur lors de la génération du fichier " + outputFile, eee); + } + } else { + Logger.getLogger(getClass().getName() + ".generate").log( + Level.FINE, "file " + outputFile + " is up-to-date"); } } - for (Iterator classes = model.getClassifiers().iterator(); - classes.hasNext(); - ) { - ObjectModelClassifier clazz = (ObjectModelClassifier) classes.next(); + for (Iterator classes = model.getClassifiers().iterator(); classes + .hasNext();) { + ObjectModelClassifier clazz = (ObjectModelClassifier) classes + .next(); String filename = getFilenameForClassifier(clazz); File outputFile = getDestinationFile(destDir, filename); - if(getOverwrite() || !isNewerThanSource(outputFile)){ - StringWriter out = new StringWriter(); - MonitorWriter monitorOut = new MonitorWriter(out); - generateFromClassifier(monitorOut, clazz); - write(outputFile, monitorOut); - }else{ - Logger.getLogger(getClass().getName() + ".generate").log(Level.FINE, "file "+ outputFile + " is up-to-date"); + if (getOverwrite() || !isNewerThanSource(outputFile)) { + try{ + StringWriter out = new StringWriter(); + MonitorWriter monitorOut = new MonitorWriter(out); + generateFromClassifier(monitorOut, clazz); + write(outputFile, monitorOut); + } catch (Exception eee) { + log.warn("Erreur lors de la génération du fichier " + outputFile); + throw new RuntimeException("Erreur lors de la génération du fichier " + outputFile, eee); + } + } else { + Logger.getLogger(getClass().getName() + ".generate").log( + Level.FINE, "file " + outputFile + " is up-to-date"); } } - for (Iterator interfaces = model.getInterfaces().iterator(); - interfaces.hasNext(); - ) { - ObjectModelInterface interfacez = - (ObjectModelInterface) interfaces.next(); + for (Iterator interfaces = model.getInterfaces().iterator(); interfaces + .hasNext();) { + ObjectModelInterface interfacez = (ObjectModelInterface) interfaces + .next(); String filename = getFilenameForInterface(interfacez); File outputFile = getDestinationFile(destDir, filename); - if(getOverwrite() || !isNewerThanSource(outputFile)){ - StringWriter out = new StringWriter(); - MonitorWriter monitorOut = new MonitorWriter(out); - generateFromInterface(monitorOut, interfacez); - write(outputFile, monitorOut); - }else{ - Logger.getLogger(getClass().getName() + ".generate").log(Level.FINE, "file "+ outputFile + " is up-to-date"); + if (getOverwrite() || !isNewerThanSource(outputFile)) { + try{ + StringWriter out = new StringWriter(); + MonitorWriter monitorOut = new MonitorWriter(out); + generateFromInterface(monitorOut, interfacez); + write(outputFile, monitorOut); + } catch (Exception eee) { + log.warn("Erreur lors de la génération du fichier " + outputFile); + throw new RuntimeException("Erreur lors de la génération du fichier " + outputFile, eee); + } + } else { + Logger.getLogger(getClass().getName() + ".generate").log( + Level.FINE, "file " + outputFile + " is up-to-date"); } } - for (Iterator classes = model.getClasses().iterator(); - classes.hasNext(); - ) { + for (Iterator classes = model.getClasses().iterator(); classes + .hasNext();) { ObjectModelClass clazz = (ObjectModelClass) classes.next(); String filename = getFilenameForClass(clazz); File outputFile = getDestinationFile(destDir, filename); - if(getOverwrite() || !isNewerThanSource(outputFile)){ - StringWriter out = new StringWriter(); - MonitorWriter monitorOut = new MonitorWriter(out); - generateFromClass(monitorOut, clazz); - write(outputFile, monitorOut); - }else{ - Logger.getLogger(getClass().getName() + ".generate").log(Level.FINE, "file "+ outputFile + " is up-to-date"); + if (getOverwrite() || !isNewerThanSource(outputFile)) { + try{ + StringWriter out = new StringWriter(); + MonitorWriter monitorOut = new MonitorWriter(out); + generateFromClass(monitorOut, clazz); + write(outputFile, monitorOut); + } catch (Exception eee) { + log.warn("Erreur lors de la génération du fichier " + outputFile); + throw new RuntimeException("Erreur lors de la génération du fichier " + outputFile, eee); + } + } else { + Logger.getLogger(getClass().getName() + ".generate").log( + Level.FINE, "file " + outputFile + " is up-to-date"); } } } /** - * Par defaut cette methode retourne le getName du model. Si l'on souhaite - * utiliser la methode generateFromModel il vaut mieux surcharger cette - * m?thode - */ + * Par defaut cette methode retourne le getName du model. Si l'on souhaite + * utiliser la methode generateFromModel il vaut mieux surcharger cette + * m?thode + */ public String getFilenameForModel(ObjectModel model) { return model.getName(); } /** - * Par defaut cette methode retourne le QualifiedName convertie en chemin - * par exemple pour org.codelutin.Toto on aurait org/codelutin/Toto - */ + * Par defaut cette methode retourne le QualifiedName convertie en chemin + * par exemple pour org.codelutin.Toto on aurait org/codelutin/Toto + */ public String getFilenameForPackage(ObjectModel model, String packageName) { return packageName.replace('.', File.separatorChar); } /** - * Par defaut cette methode retourne le QualifiedName convertie en chemin - * par exemple pour org.codelutin.Toto on aurait org/codelutin/Toto - */ + * Par defaut cette methode retourne le QualifiedName convertie en chemin + * par exemple pour org.codelutin.Toto on aurait org/codelutin/Toto + */ public String getFilenameForInterface(ObjectModelInterface interfacez) { return interfacez.getQualifiedName().replace('.', File.separatorChar); } /** - * Par defaut cette methode retourne le QualifiedName convertie en chemin - * par exemple pour org.codelutin.Toto on aurait org/codelutin/Toto - */ + * Par defaut cette methode retourne le QualifiedName convertie en chemin + * par exemple pour org.codelutin.Toto on aurait org/codelutin/Toto + */ public String getFilenameForClass(ObjectModelClass clazz) { return clazz.getQualifiedName().replace('.', File.separatorChar); } /** - * Par defaut cette methode retourne le QualifiedName convertie en chemin - * par exemple pour org.codelutin.Toto on aurait org/codelutin/Toto - */ + * Par defaut cette methode retourne le QualifiedName convertie en chemin + * par exemple pour org.codelutin.Toto on aurait org/codelutin/Toto + */ public String getFilenameForClassifier(ObjectModelClassifier clazz) { return clazz.getQualifiedName().replace('.', File.separatorChar); } public void generateFromModel(Writer output, ObjectModel model) - throws IOException { + throws IOException { } - public void generateFromInterface( - Writer output, - ObjectModelInterface interfacez) - throws IOException { + + public void generateFromInterface(Writer output, + ObjectModelInterface interfacez) throws IOException { } + public void generateFromClass(Writer output, ObjectModelClass clazz) - throws IOException { + throws IOException { } - public void generateFromClassifier(Writer output, ObjectModelClassifier clazz) - throws IOException { + + public void generateFromClassifier(Writer output, + ObjectModelClassifier clazz) throws IOException { } } Index: lutingenerator/src/java/org/codelutin/generator/Util.java diff -u lutingenerator/src/java/org/codelutin/generator/Util.java:1.25 lutingenerator/src/java/org/codelutin/generator/Util.java:1.26 --- lutingenerator/src/java/org/codelutin/generator/Util.java:1.25 Mon Dec 19 18:38:27 2005 +++ lutingenerator/src/java/org/codelutin/generator/Util.java Wed Jan 4 13:29:11 2006 @@ -17,8 +17,8 @@ *@author Benjamin Poussin * * Copyright Code Lutin - *@version $Revision: 1.25 $ Mise a jour: $Date: 2005/12/19 18:38:27 $ par : - * $Author: thimel $ + *@version $Revision: 1.26 $ Mise a jour: $Date: 2006/01/04 13:29:11 $ par : + * $Author: bpoussin $ */ package org.codelutin.generator; @@ -28,13 +28,13 @@ import java.util.Collection; import java.util.Iterator; +import org.apache.commons.lang.StringUtils; import org.codelutin.generator.models.object.ObjectModel; import org.codelutin.generator.models.object.ObjectModelAttribute; import org.codelutin.generator.models.object.ObjectModelClass; import org.codelutin.generator.models.object.ObjectModelClassifier; import org.codelutin.generator.models.object.ObjectModelOperation; import org.codelutin.generator.models.object.ObjectModelParameter; -import org.codelutin.util.StringUtil; /** * TODO Description of the Class @@ -245,7 +245,7 @@ } public static String capitalize(String word){ - return StringUtil.capitalize(word); + return StringUtils.capitalize(word); } /**