Index: lutingenerator/src/java/org/codelutin/generator/ObjectModelGenerator.java diff -u lutingenerator/src/java/org/codelutin/generator/ObjectModelGenerator.java:1.18 lutingenerator/src/java/org/codelutin/generator/ObjectModelGenerator.java:1.19 --- lutingenerator/src/java/org/codelutin/generator/ObjectModelGenerator.java:1.18 Wed Jan 4 13:29:11 2006 +++ lutingenerator/src/java/org/codelutin/generator/ObjectModelGenerator.java Tue Jan 24 18:20:00 2006 @@ -23,9 +23,9 @@ * * @author Benjamin Poussin Copyright Code Lutin * - * @version $Revision: 1.18 $ + * @version $Revision: 1.19 $ * - * Mise a jour: $Date: 2006/01/04 13:29:11 $ par : $Author: bpoussin $ + * Mise a jour: $Date: 2006/01/24 18:20:00 $ par : $Author: bpoussin $ */ package org.codelutin.generator; @@ -145,8 +145,8 @@ 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]); @@ -175,71 +175,85 @@ 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 (key.startsWith("model")) { + if (!key.startsWith("model.tagvalue.")) { + log.warn("only tagvalue is allowed on model in properties"); + } else { + String tag = key.substring("model.tagvalue.".length()); + + ObjectModelImplTagValue tagvalue = new ObjectModelImplTagValue(); + tagvalue.parsetName(tag); + tagvalue.parsetValue(value); + ((ObjectModelImpl)objectModel).parsetTagValue(tagvalue); + } + } else { + + Matcher matcher = propertiesPattern.matcher(key); + if (log.isDebugEnabled()) { - log.debug("Propriete: '" + key + "' => " + "fqn:" - + fqn + " target:" + target - + " targetName:" + targetName + " type:" - + type + " tag:" + tag); + log.debug("Propriete: '" + key + "'"); } - - 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)); + + 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); } - 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); + + 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"); } - } 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"); } } }