branch develop updated (ec611df -> 8802d4c)
This is an automated email from the git hooks/post-receive script. New change to branch develop in repository eugene. See http://git.nuiton.org/eugene.git from ec611df By default, forbids to write methods in concrete design model (closes #3748) Merge branch 'feature/3748' into develop new f2ceb47 Add all possible sub package in model after reading it. Add also a packageParent and fill it on ObjectModelPackage object. new 8802d4c Add all possible sub packages in object model (iwth nex packageParent link filled). Closes #3750 The 2 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "adds" were already present in the repository and have only been added to this reference. Detailed log of new commits: commit 8802d4cc6a22c6ca5d2ebe3687f9a120de480606 Merge: ec611df f2ceb47 Author: Tony CHEMIT <chemit@codelutin.com> Date: Sat Aug 15 13:36:36 2015 +0200 Add all possible sub packages in object model (iwth nex packageParent link filled). Closes #3750 Merge branch 'feature/3750' into develop commit f2ceb4744deabe78bd48778df76576122476476d Author: Tony CHEMIT <chemit@codelutin.com> Date: Sat Aug 15 13:30:46 2015 +0200 Add all possible sub package in model after reading it. Add also a packageParent and fill it on ObjectModelPackage object. See #3750 Summary of changes: .../eugene/models/object/ObjectModelPackage.java | 12 ++++ .../object/reader/AbstractObjectModelReader.java | 70 ++++++++++++++++++++++ .../models/object/xml/ObjectModelPackageImpl.java | 19 ++++++ 3 files changed, 101 insertions(+) -- To stop receiving notification emails like this one, please contact nuiton.org SCM administrator <admin+scm@nuiton.org>.
This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository eugene. See http://git.nuiton.org/eugene.git commit f2ceb4744deabe78bd48778df76576122476476d Author: Tony CHEMIT <chemit@codelutin.com> Date: Sat Aug 15 13:30:46 2015 +0200 Add all possible sub package in model after reading it. Add also a packageParent and fill it on ObjectModelPackage object. See #3750 --- .../eugene/models/object/ObjectModelPackage.java | 12 ++++ .../object/reader/AbstractObjectModelReader.java | 70 ++++++++++++++++++++++ .../models/object/xml/ObjectModelPackageImpl.java | 19 ++++++ 3 files changed, 101 insertions(+) diff --git a/eugene/src/main/java/org/nuiton/eugene/models/object/ObjectModelPackage.java b/eugene/src/main/java/org/nuiton/eugene/models/object/ObjectModelPackage.java index c9a4c82..a434200 100644 --- a/eugene/src/main/java/org/nuiton/eugene/models/object/ObjectModelPackage.java +++ b/eugene/src/main/java/org/nuiton/eugene/models/object/ObjectModelPackage.java @@ -41,6 +41,18 @@ public interface ObjectModelPackage extends TagValueAble, StereotypeAble { String getName(); /** + * + * @return the number of sub packages. (0 for a root package). + */ + int getNumberOfSubPackages(); + + /** + * + * @return parent package or {@code null} if the package is a root package. + */ + ObjectModelPackage getParentPackage(); + + /** * Returns all packages defined in this package. * * @return a Collection containing all ObjectModelPackages for this package. diff --git a/eugene/src/main/java/org/nuiton/eugene/models/object/reader/AbstractObjectModelReader.java b/eugene/src/main/java/org/nuiton/eugene/models/object/reader/AbstractObjectModelReader.java index 474612c..83860f2 100644 --- a/eugene/src/main/java/org/nuiton/eugene/models/object/reader/AbstractObjectModelReader.java +++ b/eugene/src/main/java/org/nuiton/eugene/models/object/reader/AbstractObjectModelReader.java @@ -22,6 +22,7 @@ package org.nuiton.eugene.models.object.reader; * #L% */ +import com.google.common.collect.Sets; import org.apache.commons.collections.CollectionUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -39,6 +40,7 @@ import org.nuiton.eugene.models.object.ObjectModelPackage; import org.nuiton.eugene.models.object.xml.ObjectModelAssociationClassImpl; import org.nuiton.eugene.models.object.xml.ObjectModelClassifierImpl; import org.nuiton.eugene.models.object.xml.ObjectModelImpl; +import org.nuiton.eugene.models.object.xml.ObjectModelPackageImpl; import org.nuiton.eugene.models.stereotype.InvalidStereotypeSyntaxException; import org.nuiton.eugene.models.stereotype.MismatchStereotypeTargetException; import org.nuiton.eugene.models.stereotype.StereotypeDefinitionProviders; @@ -59,6 +61,7 @@ import java.io.IOException; import java.util.ArrayList; import java.util.Collections; import java.util.Iterator; +import java.util.LinkedHashSet; import java.util.List; import java.util.Properties; import java.util.Set; @@ -123,6 +126,8 @@ public abstract class AbstractObjectModelReader extends ModelReader<ObjectModel> readFileToModel(file, model); + addAllSubPackages((ObjectModelImpl) model); + // recherche est charge le fichier propriete associe au modele File dir = file.getParentFile(); String ext = FileUtil.extension(file); @@ -351,6 +356,71 @@ public abstract class AbstractObjectModelReader extends ModelReader<ObjectModel> return prop; } + /** + * Add all missing sub packages in a model. + * + * @param model the model to scan + */ + protected void addAllSubPackages(ObjectModelImpl model) { + + Set<String> subPackageNames = new LinkedHashSet<>(); + + for (ObjectModelPackage aPackage : Sets.newHashSet(model.getPackages())) { + + String aPackageName = aPackage.getName(); + if (log.isInfoEnabled()) { + log.info("Treate package: " + aPackageName); + } + + if (subPackageNames.add(aPackageName)) { + + addSubPackages(model, aPackageName); + + } + + } + + } + + protected void addSubPackages(ObjectModelImpl model, String aPackageName) { + + String subPackageName = null; + ObjectModelPackageImpl parentPackage = null; + + for (String part : aPackageName.split("\\.")) { + + if (subPackageName == null) { + subPackageName = part; + } else { + subPackageName += "." + part; + } + + ObjectModelPackageImpl subPackage = (ObjectModelPackageImpl) model.getPackage(subPackageName); + + if (subPackage == null) { + + subPackage = new ObjectModelPackageImpl(); + subPackage.setName(subPackageName); + model.addPackage(subPackage); + if (log.isInfoEnabled()) { + log.info("Add sub package: " + subPackageName); + } + + } + + if (subPackage.getParentPackage() == null &&parentPackage != null) { + + if (log.isInfoEnabled()) { + log.info("Set parent package " + parentPackage.getName() + " to " + part); + } + subPackage.setParentPackage(parentPackage); + } + + parentPackage = subPackage; + + } + } + protected boolean loadModelTagValue(ObjectModel model, String key, String value) throws InvalidModelPropertiesException { Matcher matcher; diff --git a/eugene/src/main/java/org/nuiton/eugene/models/object/xml/ObjectModelPackageImpl.java b/eugene/src/main/java/org/nuiton/eugene/models/object/xml/ObjectModelPackageImpl.java index d4961c7..a6a11da 100644 --- a/eugene/src/main/java/org/nuiton/eugene/models/object/xml/ObjectModelPackageImpl.java +++ b/eugene/src/main/java/org/nuiton/eugene/models/object/xml/ObjectModelPackageImpl.java @@ -58,6 +58,10 @@ public class ObjectModelPackageImpl implements ObjectModelPackage { protected String name; + protected int numberOfSubPackages; + + protected ObjectModelPackage parentPackage; + protected String documentation; protected Set<String> stereotypes = new HashSet<>(); @@ -72,6 +76,16 @@ public class ObjectModelPackageImpl implements ObjectModelPackage { } @Override + public int getNumberOfSubPackages() { + return numberOfSubPackages; + } + + @Override + public ObjectModelPackage getParentPackage() { + return parentPackage; + } + + @Override public String getDescription() { return getDocumentation().substring(0, getDocumentation().indexOf("--")); } @@ -238,7 +252,12 @@ public class ObjectModelPackageImpl implements ObjectModelPackage { this.name = name; } + public void setParentPackage(ObjectModelPackage parentPackage) { + this.parentPackage = parentPackage; + } + public void postInit() { + numberOfSubPackages = name.split("\\.").length; } protected final Predicate<ObjectModelClassifier> IS_PACKAGE_NAME_EQUALS_PREDICATE = new PackageNameEqualsPredicate(name); -- To stop receiving notification emails like this one, please contact nuiton.org SCM administrator <admin+scm@nuiton.org>.
This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository eugene. See http://git.nuiton.org/eugene.git commit 8802d4cc6a22c6ca5d2ebe3687f9a120de480606 Merge: ec611df f2ceb47 Author: Tony CHEMIT <chemit@codelutin.com> Date: Sat Aug 15 13:36:36 2015 +0200 Add all possible sub packages in object model (iwth nex packageParent link filled). Closes #3750 Merge branch 'feature/3750' into develop .../eugene/models/object/ObjectModelPackage.java | 12 ++++ .../object/reader/AbstractObjectModelReader.java | 70 ++++++++++++++++++++++ .../models/object/xml/ObjectModelPackageImpl.java | 19 ++++++ 3 files changed, 101 insertions(+) -- To stop receiving notification emails like this one, please contact nuiton.org SCM administrator <admin+scm@nuiton.org>.
participants (1)
-
nuiton.org scm