Index: lutingenerator/src/java/org/codelutin/generator/ObjectModelGenerator.java diff -u lutingenerator/src/java/org/codelutin/generator/ObjectModelGenerator.java:1.22 lutingenerator/src/java/org/codelutin/generator/ObjectModelGenerator.java:1.23 --- lutingenerator/src/java/org/codelutin/generator/ObjectModelGenerator.java:1.22 Fri Oct 20 00:24:26 2006 +++ lutingenerator/src/java/org/codelutin/generator/ObjectModelGenerator.java Fri May 25 16:14:19 2007 @@ -23,9 +23,9 @@ * * @author Benjamin Poussin Copyright Code Lutin * - * @version $Revision: 1.22 $ + * @version $Revision: 1.23 $ * - * Mise a jour: $Date: 2006/10/20 00:24:26 $ par : $Author: bpoussin $ + * Mise a jour: $Date: 2007/05/25 16:14:19 $ par : $Author: chatellier $ */ package org.codelutin.generator; @@ -36,20 +36,23 @@ 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.List; import java.util.logging.Level; import java.util.logging.Logger; import java.util.regex.Matcher; import java.util.regex.Pattern; +import org.apache.commons.digester.Digester; 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.ObjectModelElement; import org.codelutin.generator.models.object.ObjectModelInterface; +import org.codelutin.generator.models.object.xml.DigesterObjectModelRuleSet; import org.codelutin.generator.models.object.xml.ObjectModelClassifierImpl; import org.codelutin.generator.models.object.xml.ObjectModelElementImpl; import org.codelutin.generator.models.object.xml.ObjectModelImpl; @@ -57,9 +60,8 @@ 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 org.xml.sax.SAXException; /** * Pour utiliser ce type de générateur il faut implanter au moins une des trois @@ -83,10 +85,10 @@ * } * * - * Le nom de l'argument writer doit absolument est output et pas autre chose si - * vous souhaité utilisé le processeur + * Le nom de l'argument writer doit absolument etre output et pas autre chose si + * vous souhaitez utiliser le processeur * {@link org.codelutin.processor.filters.GeneratorTemplatesFilter} pour vous - * s'implifier l'écriture des template. + * s'implifier l'écriture des templates. */ public class ObjectModelGenerator extends ChildGenerator { @@ -131,22 +133,29 @@ * 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 + * @throws SAXException + * @throws IOException */ public void generate(File[] files, File destDir) { setLastModifiedSource(files); ObjectModel objectModel = new ObjectModelImpl(); + + // Digester parser configuration + Digester digester = new Digester(); + digester.addRuleSet(new DigesterObjectModelRuleSet()); + for (int i = 0; i < files.length; i++) { - try { - XMLObjectParser parser = new XMLObjectParser(files[i]); - parser.setPrefix("par"); - parser.parseRoot(objectModel); - } catch (ResourceNotFoundException eee) { - if (log.isWarnEnabled()) { - log.warn("Unable to parse ObjectModel input file : " - + files[i], eee); - } - } - + try { + digester.push(objectModel); + objectModel = (ObjectModel)digester.parse(files[i]); + } catch (IOException e) { + log.warn("Unable to parse ObjectModel input file : " + + files[i], e); + } catch (SAXException e) { + log.warn("Unable to parse ObjectModel input file : " + + files[i], e); + } + // recherche est charge le fichier propriete associe au modele File dir = files[i].getParentFile(); String ext = FileUtil.extension(files[i]); @@ -182,9 +191,9 @@ String tag = key.substring("model.tagvalue.".length()); ObjectModelImplTagValue tagvalue = new ObjectModelImplTagValue(); - tagvalue.parsetName(tag); - tagvalue.parsetValue(value); - ((ObjectModelImpl)objectModel).parsetTagValue(tagvalue); + tagvalue.setName(tag); + tagvalue.setValue(value); + ((ObjectModelImpl)objectModel).addTagValue(tagvalue); } } else { @@ -218,7 +227,7 @@ if (omc instanceof ObjectModelClassifierImpl) { // on utilise une liste car il peut y avoir plusieur // operation avec le nom donné - ArrayList elems = new ArrayList(); + List elems = new ArrayList(); if ("class".equals(target)) { elems.add((ObjectModelElementImpl) omc); } else if ("attribute".equals(target)) { @@ -226,7 +235,7 @@ elems.add((ObjectModelElementImpl) classmodel .getAttribute(targetName)); } else if ("operation".equals(target)) { - elems.addAll((Collection) omc + elems.addAll(omc .getOperations(targetName)); } for (Iterator it = elems.iterator(); it.hasNext();) { @@ -235,14 +244,14 @@ if ("stereotype".equals(type)) { // pour les stereotypes ObjectModelImplRef stereotype = new ObjectModelImplRef(); - stereotype.parsetName(value); - elem.parsetStereotype(stereotype); + stereotype.setName(value); + elem.addStereotype(stereotype); } else if ("tagvalue".equals(type)) { // pour les tagvalues ObjectModelImplTagValue tagvalue = new ObjectModelImplTagValue(); - tagvalue.parsetName(tag); - tagvalue.parsetValue(value); - elem.parsetTagValue(tagvalue); + tagvalue.setName(tag); + tagvalue.setValue(value); + elem.addTagValue(tagvalue); } } } else { Index: lutingenerator/src/java/org/codelutin/generator/Util.java diff -u lutingenerator/src/java/org/codelutin/generator/Util.java:1.27 lutingenerator/src/java/org/codelutin/generator/Util.java:1.28 --- lutingenerator/src/java/org/codelutin/generator/Util.java:1.27 Thu Feb 23 14:03:05 2006 +++ lutingenerator/src/java/org/codelutin/generator/Util.java Fri May 25 16:14:19 2007 @@ -17,8 +17,8 @@ *@author Benjamin Poussin * * Copyright Code Lutin - *@version $Revision: 1.27 $ Mise a jour: $Date: 2006/02/23 14:03:05 $ par : - * $Author: bpoussin $ + *@version $Revision: 1.28 $ Mise a jour: $Date: 2007/05/25 16:14:19 $ par : + * $Author: chatellier $ */ package org.codelutin.generator; @@ -27,6 +27,7 @@ import java.util.ArrayList; import java.util.Collection; import java.util.Iterator; +import java.util.List; import org.apache.commons.lang.StringUtils; import org.codelutin.generator.models.object.ObjectModel; @@ -87,8 +88,8 @@ * * @return a Collection containing all classifiers belonging to the given package recursively. */ - public static Collection getClassifiers(ObjectModel model, String packageName) { - ArrayList classifiers = new ArrayList(); + public static Collection getClassifiers(ObjectModel model, String packageName) { + List classifiers = new ArrayList(); for (Iterator i = model.getClassifiers().iterator(); i.hasNext();) { ObjectModelClassifier classifier = (ObjectModelClassifier) i.next(); if (classifier.getPackageName().startsWith(packageName)) { Index: lutingenerator/src/java/org/codelutin/generator/UIModelGenerator.java diff -u lutingenerator/src/java/org/codelutin/generator/UIModelGenerator.java:1.10 lutingenerator/src/java/org/codelutin/generator/UIModelGenerator.java:1.11 --- lutingenerator/src/java/org/codelutin/generator/UIModelGenerator.java:1.10 Fri Sep 17 15:33:32 2004 +++ lutingenerator/src/java/org/codelutin/generator/UIModelGenerator.java Fri May 25 16:14:19 2007 @@ -10,21 +10,19 @@ import java.io.IOException; import java.io.StringWriter; import java.io.Writer; +import java.util.Iterator; +import java.util.logging.Level; +import java.util.logging.Logger; -import org.dom4j.DocumentException; - -import org.codelutin.generator.models.ui.javaxml.JavaXMLParser; -import org.codelutin.generator.models.ui.xml.UIModelImpl; +import org.apache.commons.digester.Digester; import org.codelutin.generator.models.ui.UIModel; import org.codelutin.generator.models.ui.UIModelObject; import org.codelutin.generator.models.ui.UIModelProperty; - +import org.codelutin.generator.models.ui.javaxml.JavaXMLParser; +import org.codelutin.generator.models.ui.xml.UIModelImpl; import org.codelutin.util.ResourceNotFoundException; -import org.codelutin.xml.XMLObjectParser; - -import java.util.logging.Logger; -import java.util.logging.Level; -import java.util.Iterator; +import org.dom4j.DocumentException; +import org.xml.sax.SAXException; /** * UIModelGenerator.java @@ -63,10 +61,20 @@ JavaXMLParser parser = new JavaXMLParser(); ui = parser.parse(tabUIFilesName[i]); }else{ - XMLObjectParser parser = new - XMLObjectParser(tabUIFilesName[i]); + /* + * previous parser lutinxml.XMLObjectParser + */ + /*XMLObjectParser parser = new XMLObjectParser(tabUIFilesName[i]); parser.setPrefix("par"); - ui = (UIModel) parser.parseRoot(new UIModelImpl()); + ui = (UIModel) parser.parseRoot(new UIModelImpl());*/ + + /* + * New parser : commons-digester + */ + Digester digester = new Digester(); + ui = new UIModelImpl(); + digester.push(ui); + digester.parse(tabUIFilesName[i]); } if (ui!=null){ generate(ui, destDir); @@ -80,7 +88,10 @@ }catch (DocumentException eee) { System.out.println("Error during the processing of a DOM4J"); eee.printStackTrace(); - } + } catch (SAXException e) { + System.out.println("Error during the parsing with digester"); + e.printStackTrace(); + } } }