r983 - in trunk/eugene/src/main/java/org/nuiton/eugene: java models/object models/object/xml
Author: tchemit Date: 2010-11-07 18:20:08 +0100 (Sun, 07 Nov 2010) New Revision: 983 Url: http://nuiton.org/repositories/revision/eugene/983 Log: Anomalie #1017: Using version as a tag value of the properties file does NOT work improve some code reformat Modified: trunk/eugene/src/main/java/org/nuiton/eugene/java/JavaGeneratorUtil.java trunk/eugene/src/main/java/org/nuiton/eugene/models/object/ObjectModelGenerator.java trunk/eugene/src/main/java/org/nuiton/eugene/models/object/ObjectModelReader.java trunk/eugene/src/main/java/org/nuiton/eugene/models/object/xml/ObjectModelImpl.java Modified: trunk/eugene/src/main/java/org/nuiton/eugene/java/JavaGeneratorUtil.java =================================================================== --- trunk/eugene/src/main/java/org/nuiton/eugene/java/JavaGeneratorUtil.java 2010-10-29 08:28:33 UTC (rev 982) +++ trunk/eugene/src/main/java/org/nuiton/eugene/java/JavaGeneratorUtil.java 2010-11-07 17:20:08 UTC (rev 983) @@ -56,7 +56,16 @@ * a prefix to constant to generate. */ public static final String TAG_CONSTANT_PREFIX = "constantPrefix"; + /** + * tag value to add the version of the model from outside (says in the + * properties file associated to the model).. + * + * @since 2.2.1 + */ + public static final String TAG_VERSION = "version"; + + /** * dependency to add constants in interfaces via an enumeration. * * The literals of enumeration will be the value, and constant names will Modified: trunk/eugene/src/main/java/org/nuiton/eugene/models/object/ObjectModelGenerator.java =================================================================== --- trunk/eugene/src/main/java/org/nuiton/eugene/models/object/ObjectModelGenerator.java 2010-10-29 08:28:33 UTC (rev 982) +++ trunk/eugene/src/main/java/org/nuiton/eugene/models/object/ObjectModelGenerator.java 2010-11-07 17:20:08 UTC (rev 983) @@ -186,13 +186,17 @@ File outputFile = getDestinationFile(destDir, filename); if (!isOverwrite() && isNewerThanSource(outputFile)) { if (isVerbose()) { - log.info("Will not generate " + outputFile + " (up-to-date)."); + if (log.isInfoEnabled()) { + log.info("Will not generate " + outputFile + " (up-to-date)."); + } } return; } - if (!outputFile.exists() && log.isDebugEnabled()) { - log.debug("not up-to-date " + outputFile.lastModified() - + " <" + outputFile + ">"); + if (!outputFile.exists()) { + if (log.isDebugEnabled()) { + log.debug("not up-to-date " + outputFile.lastModified() + + " <" + outputFile + ">"); + } } try { StringWriter out = new StringWriter(); @@ -224,8 +228,10 @@ } } catch (Exception eee) { - log.warn("Erreur lors de la génération du fichier " - + outputFile); + if (log.isWarnEnabled()) { + 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); Modified: trunk/eugene/src/main/java/org/nuiton/eugene/models/object/ObjectModelReader.java =================================================================== --- trunk/eugene/src/main/java/org/nuiton/eugene/models/object/ObjectModelReader.java 2010-10-29 08:28:33 UTC (rev 982) +++ trunk/eugene/src/main/java/org/nuiton/eugene/models/object/ObjectModelReader.java 2010-11-07 17:20:08 UTC (rev 983) @@ -39,6 +39,7 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.nuiton.eugene.ModelReader; +import org.nuiton.eugene.java.JavaGeneratorUtil; import org.nuiton.eugene.models.object.xml.DigesterObjectModelRuleSet; import org.nuiton.eugene.models.object.xml.ObjectModelAssociationClassImpl; import org.nuiton.eugene.models.object.xml.ObjectModelClassifierImpl; @@ -103,7 +104,7 @@ " for files " + Arrays.toString(files)); } - ObjectModel objectModel = new ObjectModelImpl(); + ObjectModel model = new ObjectModelImpl(); // Digester parser configuration Digester digester = new Digester(); @@ -111,12 +112,16 @@ for (File file : files) { try { - digester.push(objectModel); - objectModel = (ObjectModel) digester.parse(file); + digester.push(model); + model = (ObjectModel) digester.parse(file); } catch (IOException e) { - log.warn("Unable to parse ObjectModel input file : " + file, e); + if (log.isWarnEnabled()) { + log.warn("Unable to parse ObjectModel input file : " + file, e); + } } catch (SAXException e) { - log.warn("Unable to parse ObjectModel input file : " + file, e); + if (log.isWarnEnabled()) { + log.warn("Unable to parse ObjectModel input file : " + file, e); + } } // recherche est charge le fichier propriete associe au modele @@ -143,8 +148,10 @@ inStream.close(); } } catch (IOException eee) { - log.warn("Impossible de lire le fichier de propriete " - + propFile, eee); + if (log.isWarnEnabled()) { + log.warn("Impossible de lire le fichier de propriete " + + propFile, eee); + } } // on ajoute les proprietes du fichier associe au model @@ -153,104 +160,121 @@ String value = prop.getProperty(key); if (key.startsWith(MODEL)) { + + // model tag value + if (!key.startsWith("model.tagvalue.")) { if (log.isWarnEnabled()) { log.warn("only tagvalue is allowed on model in properties"); } - } else { - String tag = key.substring("model.tagvalue." - .length()); + continue; + } + String tag = key.substring("model.tagvalue.".length()); - ObjectModelImplTagValue tagvalue = new ObjectModelImplTagValue(); - tagvalue.setName(tag); - tagvalue.setValue(value); - ((ObjectModelImpl) objectModel) - .addTagValue(tagvalue); + ObjectModelImpl modelImpl = (ObjectModelImpl) model; + if (tag.equals(JavaGeneratorUtil.TAG_VERSION)) { + + // push directly the version in the model version + // property + modelImpl.setVersion(value); } - } else { + ObjectModelImplTagValue tagvalue = new ObjectModelImplTagValue(); + tagvalue.setName(tag); + tagvalue.setValue(value); + modelImpl.addTagValue(tagvalue); + continue; + } - Matcher matcher = propertiesPattern.matcher(key); + // element tag value + 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); + if (log.isDebugEnabled()) { - log.debug("Propriete: '" + key + "'"); + log.debug("Propriete: '" + key + "' => " + + "fqn:" + fqn + " target:" + target + + " targetName:" + targetName + + " type:" + type + " tag:" + tag); } - 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); + ObjectModelClassifier omc = model.getClassifier(fqn); + if (omc == null) { + if (log.isWarnEnabled()) { + log.warn("Could not find classifier for " + + fqn + " from tag value " + key); + } + continue; + } - if (log.isDebugEnabled()) { - log.debug("Propriete: '" + key + "' => " - + "fqn:" + fqn + " target:" + target - + " targetName:" + targetName - + " type:" + type + " tag:" + tag); + if (!(omc instanceof ObjectModelClassifierImpl)) { + // TODO il faudra avoir des methodes d'acces en Set sur l'interface pour eviter ce message + if (log.isWarnEnabled()) { + log.warn("Can't add properties to model, " + + "it's not an " + + "ObjectModelClassifierImpl : " + + omc.getQualifiedName()); } + continue; + } + + List<ObjectModelElement> elems = new ArrayList<ObjectModelElement>(); + if (CLASS.equals(target)) { + elems.add(omc); + } else if (ATTRIBUTE.equals(target)) { - ObjectModelClassifier omc = objectModel - .getClassifier(fqn); - if (omc == null) { - log.warn("Could not find classifier for " + fqn+" from tag value " + key); + ObjectModelAttribute attr = + getAttribute((ObjectModelClass)omc, targetName); + elems.add(attr); + + } else if (OPERATION.equals(target)) { + elems.addAll(omc.getOperations(targetName)); + } + for (Object elem1 : elems) { + if (elem1 == null) { + if (log.isWarnEnabled()) { + log.warn("can not attach tagValue " + + key + " on a null element."); + } continue; } - - if (omc instanceof ObjectModelClassifierImpl) { - // on utilise une liste car il peut y avoir plusieur - // operation avec le nom donné - List<ObjectModelElement> elems = new ArrayList<ObjectModelElement>(); - if (CLASS.equals(target)) { - elems.add(omc); - } else if (ATTRIBUTE.equals(target)) { + ObjectModelElementImpl elem = + (ObjectModelElementImpl) elem1; + if (STEREOTYPE.equals(type)) { + // pour les stereotypes + ObjectModelImplRef stereotype = new ObjectModelImplRef(); + stereotype.setName(value); + elem.addStereotype(stereotype); + continue; + } - ObjectModelAttribute attr = - getAttribute((ObjectModelClass)omc, targetName); - elems.add(attr); - - } else if (OPERATION.equals(target)) { - elems.addAll(omc.getOperations(targetName)); + if (TAGVALUE.equals(type)) { + // pour les tagvalues + ObjectModelImplTagValue tagvalue = + new ObjectModelImplTagValue(); + tagvalue.setName(tag); + tagvalue.setValue(value); + if (log.isDebugEnabled()) { + log.debug("tagValue:" + tagvalue + + ", tag:" + tag + + ", value:" + value + + ", element:" + elem); } - for (Object elem1 : elems) { - ObjectModelElementImpl elem = (ObjectModelElementImpl) elem1; - if (STEREOTYPE.equals(type)) { - // pour les stereotypes - ObjectModelImplRef stereotype = new ObjectModelImplRef(); - stereotype.setName(value); - elem.addStereotype(stereotype); - continue; - } + elem.addTagValue(tagvalue); - if (TAGVALUE.equals(type)) { - // pour les tagvalues - ObjectModelImplTagValue tagvalue = new ObjectModelImplTagValue(); - tagvalue.setName(tag); - tagvalue.setValue(value); - if (log.isDebugEnabled()) { - log.debug("tagValue:" + tagvalue - + ", tag:" + tag - + ", value:" + value - + ", element:" + elem); - } - if (elem == null) { - log.warn("can not attach tagValue " - + key); - } else { - elem.addTagValue(tagvalue); - } - } - } - } else { - // TODO il faudra avoir des methodes d'acces en - // Set sur l'interface pour eviter ce message - if (log.isWarnEnabled()) { - log.warn("Can't add properties to model, it's not an ObjectModelClassifierImpl : " + omc.getQualifiedName()); - } } } } @@ -258,11 +282,11 @@ } } if (log.isDebugEnabled()) { - for (ObjectModelClass m : objectModel.getClasses()) { + for (ObjectModelClass m : model.getClasses()) { log.debug("loaded class in objectmodel : " + m.getName()); } } - return objectModel; + return model; /*try { generate(objectModel, destDir); } catch (IOException eee) { Modified: trunk/eugene/src/main/java/org/nuiton/eugene/models/object/xml/ObjectModelImpl.java =================================================================== --- trunk/eugene/src/main/java/org/nuiton/eugene/models/object/xml/ObjectModelImpl.java 2010-10-29 08:28:33 UTC (rev 982) +++ trunk/eugene/src/main/java/org/nuiton/eugene/models/object/xml/ObjectModelImpl.java 2010-11-07 17:20:08 UTC (rev 983) @@ -98,16 +98,19 @@ clazz.setObjectModelImpl(this); if (!clazz.isExtern()) { - ObjectModelElementImpl initialElement = (ObjectModelElementImpl) classes.get(clazz.getQualifiedName()); + ObjectModelElementImpl initialElement = (ObjectModelElementImpl) + classes.get(clazz.getQualifiedName()); if (initialElement == null) { classes.put(clazz.getQualifiedName(), clazz); classifiers.put(clazz.getQualifiedName(), clazz); } else { if (!(initialElement instanceof ObjectModelClassImpl)) { throw new IllegalArgumentException( - "\"" + clazz + "\" is incompatible with already defined element \"" + initialElement + "\""); + "\"" + clazz + "\" is incompatible with already " + + "defined element \"" + initialElement + "\""); } - ObjectModelClassImpl initialClazz = (ObjectModelClassImpl) initialElement; + ObjectModelClassImpl initialClazz = + (ObjectModelClassImpl) initialElement; // La classe existe déjà. On va prendre tout ce que contient la // nouvelle classe et l'ajouter à la précédente si nécessaire. @@ -126,16 +129,21 @@ clazz.setObjectModelImpl(this); if (!clazz.isExtern()) { - ObjectModelElementImpl initialElement = (ObjectModelElementImpl) classes.get(clazz.getQualifiedName()); + ObjectModelElementImpl initialElement = (ObjectModelElementImpl) + classes.get(clazz.getQualifiedName()); if (initialElement == null) { classes.put(clazz.getQualifiedName(), clazz); classifiers.put(clazz.getQualifiedName(), clazz); } else { if (!(initialElement instanceof ObjectModelAssociationClassImpl)) { throw new IllegalArgumentException( - "\"" + clazz + "\" is incompatible with already defined element \"" + initialElement + "\""); + "\"" + clazz + "\" is incompatible with " + + "already defined element \"" + initialElement + + "\"" + ); } - ObjectModelAssociationClassImpl initialClazz = (ObjectModelAssociationClassImpl) initialElement; + ObjectModelAssociationClassImpl initialClazz = + (ObjectModelAssociationClassImpl) initialElement; mergeAssociationClasses(initialClazz, clazz); // clazz = initialClazz; @@ -235,16 +243,20 @@ interfacez.setObjectModelImpl(this); if (!interfacez.isExtern()) { - ObjectModelElementImpl initialElement = (ObjectModelElementImpl) interfaces.get(interfacez.getQualifiedName()); + ObjectModelElementImpl initialElement = (ObjectModelElementImpl) + interfaces.get(interfacez.getQualifiedName()); if (initialElement == null) { interfaces.put(interfacez.getQualifiedName(), interfacez); classifiers.put(interfacez.getQualifiedName(), interfacez); } else { if (!(initialElement instanceof ObjectModelInterfaceImpl)) { throw new IllegalArgumentException( - "\"" + interfacez + "\" is incompatible with already defined element \"" + initialElement + "\""); + "\"" + interfacez + "\" is incompatible with " + + "already defined element \"" + initialElement + + "\""); } - ObjectModelInterfaceImpl initialInterfacez = (ObjectModelInterfaceImpl) initialElement; + ObjectModelInterfaceImpl initialInterfacez = + (ObjectModelInterfaceImpl) initialElement; mergeClassifiers(initialInterfacez, interfacez); // interfacez = initialInterfacez; @@ -266,8 +278,11 @@ @Override public ObjectModelInterface getInterface(String qualifiedInterfaceName) { ObjectModelInterface result = interfaces.get(qualifiedInterfaceName); - if (result == null && log.isDebugEnabled()) { - log.debug("Interface " + qualifiedInterfaceName + " not found in model"); + if (result == null) { + if (log.isDebugEnabled()) { + log.debug("Interface " + qualifiedInterfaceName + + " not found in model"); + } } return result; } @@ -298,9 +313,13 @@ @Override public ObjectModelEnumeration getEnumeration(String qualifiedEnumerationName) { - ObjectModelEnumeration result = enumerations.get(qualifiedEnumerationName); - if (result == null && log.isDebugEnabled()) { - log.debug("Enumeration " + qualifiedEnumerationName + " not found in model"); + ObjectModelEnumeration result = + enumerations.get(qualifiedEnumerationName); + if (result == null) { + if (log.isDebugEnabled()) { + log.debug("Enumeration " + qualifiedEnumerationName + + " not found in model"); + } } return result; } @@ -382,7 +401,10 @@ for (it = additionalClazzifier.getTagValues().keySet().iterator(); it.hasNext();) { String tagName = (String) it.next(); if (!initialClazzifier.getTagValues().containsKey(tagName)) { - initialClazzifier.tagValues.put(tagName, additionalClazzifier.getTagValue(tagName)); + initialClazzifier.tagValues.put( + tagName, + additionalClazzifier.getTagValue(tagName) + ); } } } @@ -402,7 +424,8 @@ mergeClassifiers(initialClazz, additionalClazz); for (it = additionalClazz.getAttributes().iterator(); it.hasNext();) { - ObjectModelAttributeImpl attribute = (ObjectModelAttributeImpl) it.next(); + ObjectModelAttributeImpl attribute = + (ObjectModelAttributeImpl) it.next(); if (!contains(initialClazz.getAttributes(), attribute)) { initialClazz.attributes.put(attribute.getName(), attribute); initialClazz.orderedAttributes.add(attribute); @@ -424,7 +447,8 @@ mergeClasses(initialAssocClazz, additionalAssocClazz); Iterator<?> it; for (it = additionalAssocClazz.participantsRefs.iterator(); it.hasNext();) { - ObjectModeImplAssociationClassParticipant participant = (ObjectModeImplAssociationClassParticipant) it.next(); + ObjectModeImplAssociationClassParticipant participant = + (ObjectModeImplAssociationClassParticipant) it.next(); if (!contains(initialAssocClazz.participantsRefs, participant)) { initialAssocClazz.participantsRefs.add(participant); } @@ -491,7 +515,10 @@ public void addTagValue(String tagValue, String value) { String oldValue = getTagValue(tagValue); if (StringUtils.isNotEmpty(oldValue)) { - log.warn("Replace tagValue '" + tagValue + "' (old:" + oldValue + ", new: " + value + ")"); + if (log.isWarnEnabled()) { + log.warn("Replace tagValue '" + tagValue + "' (old:" + + oldValue + ", new: " + value + ")"); + } } tagValues.put(tagValue,value); }
participants (1)
-
tchemit@users.nuiton.org