Eugene-commits
Threads by month
- ----- 2026 -----
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2007 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2006 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2005 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2004 -----
- December
- November
- October
- September
- August
December 2009
- 2 participants
- 49 discussions
r780 - in trunk: . ant-eugene-task eugene maven-eugene-plugin
by tchemit@users.nuiton.org Dec. 20, 2009
by tchemit@users.nuiton.org Dec. 20, 2009
Dec. 20, 2009
Author: tchemit
Date: 2009-12-20 17:49:46 +0100 (Sun, 20 Dec 2009)
New Revision: 780
Modified:
trunk/ant-eugene-task/pom.xml
trunk/eugene/pom.xml
trunk/maven-eugene-plugin/pom.xml
trunk/pom.xml
Log:
[maven-release-plugin] prepare for next development iteration
Modified: trunk/ant-eugene-task/pom.xml
===================================================================
--- trunk/ant-eugene-task/pom.xml 2009-12-20 16:49:41 UTC (rev 779)
+++ trunk/ant-eugene-task/pom.xml 2009-12-20 16:49:46 UTC (rev 780)
@@ -9,7 +9,7 @@
<parent>
<groupId>org.nuiton</groupId>
<artifactId>eugene</artifactId>
- <version>2.0.0-beta-2</version>
+ <version>2.0.0-beta-3-SNAPSHOT</version>
</parent>
<groupId>org.nuiton.eugene</groupId>
Modified: trunk/eugene/pom.xml
===================================================================
--- trunk/eugene/pom.xml 2009-12-20 16:49:41 UTC (rev 779)
+++ trunk/eugene/pom.xml 2009-12-20 16:49:46 UTC (rev 780)
@@ -9,7 +9,7 @@
<parent>
<groupId>org.nuiton</groupId>
<artifactId>eugene</artifactId>
- <version>2.0.0-beta-2</version>
+ <version>2.0.0-beta-3-SNAPSHOT</version>
</parent>
<groupId>org.nuiton.eugene</groupId>
Modified: trunk/maven-eugene-plugin/pom.xml
===================================================================
--- trunk/maven-eugene-plugin/pom.xml 2009-12-20 16:49:41 UTC (rev 779)
+++ trunk/maven-eugene-plugin/pom.xml 2009-12-20 16:49:46 UTC (rev 780)
@@ -9,7 +9,7 @@
<parent>
<groupId>org.nuiton</groupId>
<artifactId>eugene</artifactId>
- <version>2.0.0-beta-2</version>
+ <version>2.0.0-beta-3-SNAPSHOT</version>
</parent>
<groupId>org.nuiton.eugene</groupId>
Modified: trunk/pom.xml
===================================================================
--- trunk/pom.xml 2009-12-20 16:49:41 UTC (rev 779)
+++ trunk/pom.xml 2009-12-20 16:49:46 UTC (rev 780)
@@ -13,7 +13,7 @@
</parent>
<artifactId>eugene</artifactId>
- <version>2.0.0-beta-2</version>
+ <version>2.0.0-beta-3-SNAPSHOT</version>
<modules>
<module>eugene</module>
@@ -687,9 +687,9 @@
<!-- Source control management. -->
<scm>
- <connection>scm:svn:http://svn.nuiton.org/svn/eugene/tags/eugene-2.0.0-beta-2</connection>
- <developerConnection>scm:svn:http://svn.nuiton.org/svn/eugene/tags/eugene-2.0.0-beta-2</developerConnection>
- <url>http://www.nuiton.org/repositories/browse/eugene/tags/eugene-2.0.0-beta-2</url>
+ <connection>scm:svn:http://svn.nuiton.org/svn/eugene/trunk</connection>
+ <developerConnection>scm:svn:http://svn.nuiton.org/svn/eugene/trunk</developerConnection>
+ <url>http://www.nuiton.org/repositories/browse/eugene/trunk</url>
</scm>
</project>
1
0
Author: tchemit
Date: 2009-12-20 17:49:41 +0100 (Sun, 20 Dec 2009)
New Revision: 779
Added:
tags/eugene-2.0.0-beta-2/
Log:
[maven-scm] copy for tag eugene-2.0.0-beta-2
Property changes on: tags/eugene-2.0.0-beta-2
___________________________________________________________________
Added: svn:ignore
+ target
.settings
bin
.classpath
.project
*.iml
*.ipr
*.iws
Added: svn:mergeinfo
+ /branches/1.0.1-Javabuilder:641-651
/branches/1.1.0-Javabuilder:652-681
/branches/eugene-2.0:682-754
1
0
r778 - in trunk: . ant-eugene-task eugene maven-eugene-plugin
by tchemit@users.nuiton.org Dec. 20, 2009
by tchemit@users.nuiton.org Dec. 20, 2009
Dec. 20, 2009
Author: tchemit
Date: 2009-12-20 17:49:37 +0100 (Sun, 20 Dec 2009)
New Revision: 778
Modified:
trunk/ant-eugene-task/pom.xml
trunk/eugene/pom.xml
trunk/maven-eugene-plugin/pom.xml
trunk/pom.xml
Log:
[maven-release-plugin] prepare release eugene-2.0.0-beta-2
Modified: trunk/ant-eugene-task/pom.xml
===================================================================
--- trunk/ant-eugene-task/pom.xml 2009-12-20 16:27:20 UTC (rev 777)
+++ trunk/ant-eugene-task/pom.xml 2009-12-20 16:49:37 UTC (rev 778)
@@ -1,6 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
@@ -10,7 +9,7 @@
<parent>
<groupId>org.nuiton</groupId>
<artifactId>eugene</artifactId>
- <version>2.0.0-beta-2-SNAPSHOT</version>
+ <version>2.0.0-beta-2</version>
</parent>
<groupId>org.nuiton.eugene</groupId>
Modified: trunk/eugene/pom.xml
===================================================================
--- trunk/eugene/pom.xml 2009-12-20 16:27:20 UTC (rev 777)
+++ trunk/eugene/pom.xml 2009-12-20 16:49:37 UTC (rev 778)
@@ -1,6 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
@@ -10,7 +9,7 @@
<parent>
<groupId>org.nuiton</groupId>
<artifactId>eugene</artifactId>
- <version>2.0.0-beta-2-SNAPSHOT</version>
+ <version>2.0.0-beta-2</version>
</parent>
<groupId>org.nuiton.eugene</groupId>
Modified: trunk/maven-eugene-plugin/pom.xml
===================================================================
--- trunk/maven-eugene-plugin/pom.xml 2009-12-20 16:27:20 UTC (rev 777)
+++ trunk/maven-eugene-plugin/pom.xml 2009-12-20 16:49:37 UTC (rev 778)
@@ -1,6 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
@@ -10,7 +9,7 @@
<parent>
<groupId>org.nuiton</groupId>
<artifactId>eugene</artifactId>
- <version>2.0.0-beta-2-SNAPSHOT</version>
+ <version>2.0.0-beta-2</version>
</parent>
<groupId>org.nuiton.eugene</groupId>
Modified: trunk/pom.xml
===================================================================
--- trunk/pom.xml 2009-12-20 16:27:20 UTC (rev 777)
+++ trunk/pom.xml 2009-12-20 16:49:37 UTC (rev 778)
@@ -1,6 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
@@ -14,7 +13,7 @@
</parent>
<artifactId>eugene</artifactId>
- <version>2.0.0-beta-2-SNAPSHOT</version>
+ <version>2.0.0-beta-2</version>
<modules>
<module>eugene</module>
@@ -688,9 +687,9 @@
<!-- Source control management. -->
<scm>
- <connection>scm:svn:http://svn.nuiton.org/svn/eugene/trunk</connection>
- <developerConnection>scm:svn:http://svn.nuiton.org/svn/eugene/trunk</developerConnection>
- <url>http://www.nuiton.org/repositories/browse/eugene/trunk</url>
+ <connection>scm:svn:http://svn.nuiton.org/svn/eugene/tags/eugene-2.0.0-beta-2</connection>
+ <developerConnection>scm:svn:http://svn.nuiton.org/svn/eugene/tags/eugene-2.0.0-beta-2</developerConnection>
+ <url>http://www.nuiton.org/repositories/browse/eugene/tags/eugene-2.0.0-beta-2</url>
</scm>
</project>
1
0
Dec. 20, 2009
Author: tchemit
Date: 2009-12-20 17:27:20 +0100 (Sun, 20 Dec 2009)
New Revision: 777
Added:
trunk/eugene/src/main/java/org/nuiton/eugene/models/object/ObjectModelBuilder.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/ObjectModelTransformer.java
trunk/eugene/src/main/java/org/nuiton/eugene/models/object/ObjectModelType.java
trunk/eugene/src/main/java/org/nuiton/eugene/models/state/StateModelGenerator.java
trunk/eugene/src/main/java/org/nuiton/eugene/models/state/StateModelReader.java
trunk/eugene/src/test/java/org/nuiton/eugene/models/object/ModelMergeTest.java
trunk/eugene/src/test/java/org/nuiton/eugene/models/object/ObjectModelGeneratorTest.java
trunk/eugene/src/test/java/org/nuiton/eugene/models/object/XMI12ToObjectModelTest.java
trunk/eugene/src/test/java/org/nuiton/eugene/models/object/XMI21ToObjectModelTest.java
Removed:
trunk/eugene/src/main/assembly/
trunk/eugene/src/main/java/org/nuiton/eugene/ObjectModelGenerator.java
trunk/eugene/src/main/java/org/nuiton/eugene/ObjectModelReader.java
trunk/eugene/src/main/java/org/nuiton/eugene/ObjectModelTransformer.java
trunk/eugene/src/main/java/org/nuiton/eugene/ObjectModelType.java
trunk/eugene/src/main/java/org/nuiton/eugene/StateModelGenerator.java
trunk/eugene/src/main/java/org/nuiton/eugene/StateModelReader.java
trunk/eugene/src/main/java/org/nuiton/eugene/models/object/xml/ObjectModelBuilder.java
trunk/eugene/src/test/java/org/nuiton/eugene/ModelFileWriterUtilTest.java
trunk/eugene/src/test/java/org/nuiton/eugene/ObjectModelGeneratorTest.java
trunk/eugene/src/test/java/org/nuiton/eugene/models/ui/
trunk/eugene/src/test/java/org/nuiton/eugene/models/xml/
trunk/eugene/src/test/java/org/nuiton/eugene/xmi/
trunk/maven-eugene-plugin/src/it/smart-generate/generators/src/main/java/org/nuiton/eugene/test/generator/TopiaGeneratorUtil.java
Modified:
trunk/ant-eugene-task/src/test/java/org/nuiton/eugene/GeneratorTaskTest.java
trunk/eugene/src/main/java/org/nuiton/eugene/AbstractMetaTransformer.java
trunk/eugene/src/main/java/org/nuiton/eugene/java/JavaBuilder.java
trunk/eugene/src/main/java/org/nuiton/eugene/java/JavaGenerator.java
trunk/eugene/src/main/java/org/nuiton/eugene/java/ObjectModelTransformerToJava.java
trunk/eugene/src/main/java/org/nuiton/eugene/models/object/xml/ObjectModelAttributeImpl.java
trunk/eugene/src/main/java/org/nuiton/eugene/models/object/xml/ObjectModelElementImpl.java
trunk/eugene/src/main/java/org/nuiton/eugene/models/object/xml/ObjectModelEnumerationImpl.java
trunk/eugene/src/site/fr/rst/index.rst
trunk/eugene/src/test/java/org/nuiton/eugene/models/object/xml/ObjectModelBuilderTest.java
trunk/eugene/src/test/java/org/nuiton/eugene/models/state/StateModelTest.java
trunk/maven-eugene-plugin/src/it/smart-generate/generators/src/main/java/org/nuiton/eugene/test/generator/BeanGenerator.java
trunk/maven-eugene-plugin/src/it/smart-generate/generators/src/main/java/org/nuiton/eugene/test/generator/BeanTransformer.java
Log:
- clean api : everything which is not neutral can not be under org.nuiton.eugene package (go to models.object or models.state)
- clean tests and improve a first one (ModelMergeTest)
- remove unucessary assembly descriptors (use the one from maven-helper-plugin)
Modified: trunk/ant-eugene-task/src/test/java/org/nuiton/eugene/GeneratorTaskTest.java
===================================================================
--- trunk/ant-eugene-task/src/test/java/org/nuiton/eugene/GeneratorTaskTest.java 2009-12-20 14:45:41 UTC (rev 776)
+++ trunk/ant-eugene-task/src/test/java/org/nuiton/eugene/GeneratorTaskTest.java 2009-12-20 16:27:20 UTC (rev 777)
@@ -27,6 +27,7 @@
import org.apache.tools.ant.Project;
import org.junit.Assert;
import org.junit.Test;
+import org.nuiton.eugene.models.object.ObjectModelGenerator;
import org.nuiton.util.FileUtil;
import org.nuiton.util.ResourceResolver;
Modified: trunk/eugene/src/main/java/org/nuiton/eugene/AbstractMetaTransformer.java
===================================================================
--- trunk/eugene/src/main/java/org/nuiton/eugene/AbstractMetaTransformer.java 2009-12-20 14:45:41 UTC (rev 776)
+++ trunk/eugene/src/main/java/org/nuiton/eugene/AbstractMetaTransformer.java 2009-12-20 16:27:20 UTC (rev 777)
@@ -8,7 +8,7 @@
import java.util.List;
/**
- * Abstract meta transformer which contains some templates to apply to incoming model.
+ * Abstract meta transformer which contains some templates to apply to an incoming model.
*
* Using the {@link #getExcludeTemplates()} to restrict use of some templates.
*
@@ -78,6 +78,9 @@
if (generator instanceof Transformer) {
generator.setProperties(properties);
}
+
+ // will use it
+ result.add(generator);
} catch (Exception e) {
// should never happens
if (log.isErrorEnabled()) {
Deleted: trunk/eugene/src/main/java/org/nuiton/eugene/ObjectModelGenerator.java
===================================================================
--- trunk/eugene/src/main/java/org/nuiton/eugene/ObjectModelGenerator.java 2009-12-20 14:45:41 UTC (rev 776)
+++ trunk/eugene/src/main/java/org/nuiton/eugene/ObjectModelGenerator.java 2009-12-20 16:27:20 UTC (rev 777)
@@ -1,346 +0,0 @@
-/* *##%
- * EUGene :: EUGene
- * Copyright (C) 2004 - 2009 CodeLutin
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation, either version 3 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 Lesser Public License for more details.
- *
- * You should have received a copy of the GNU General Lesser Public
- * License along with this program. If not, see
- * <http://www.gnu.org/licenses/lgpl-3.0.html>.
- * ##%*/
-
-package org.nuiton.eugene;
-
-import java.io.File;
-import java.io.IOException;
-import java.io.StringWriter;
-import java.io.Writer;
-import java.util.Collection;
-
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.nuiton.eugene.models.object.ObjectModel;
-import org.nuiton.eugene.models.object.ObjectModelClass;
-import org.nuiton.eugene.models.object.ObjectModelClassifier;
-import org.nuiton.eugene.models.object.ObjectModelElement;
-import org.nuiton.eugene.models.object.ObjectModelEnumeration;
-import org.nuiton.eugene.models.object.ObjectModelInterface;
-
-/**
- * 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é.
- *
- * <pre>
- * 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 .... {
- *
- * }
- * }* /
- * }
- * }
- * </pre>
- *
- * Le nom de l'argument writer doit absolument etre output et pas autre chose si
- * vous souhaitez utiliser le processeur
- * org.codelutin.processor.filters.GeneratorTemplatesFilter pour vous
- * s'implifier l'écriture des templates.
- *
- * Created: 14 mars 2004
- *
- * @author Benjamin Poussin <poussin(a)codelutin.com> Copyright Code Lutin
- *
- * @version $Revision$
- *
- * Mise a jour: $Date$ par : $Author$
- */
-public class ObjectModelGenerator extends AbstractGenerator<ObjectModel> {
-
- /** Logger for this class. */
- private static Log log = LogFactory.getLog(ObjectModelGenerator.class);
-
- public ObjectModelGenerator() {
- super();
- }
-
- public ObjectModelGenerator(AbstractGenerator<ObjectModel> parent) {
- super(parent);
- }
-
- @Override
- @Deprecated
- public void generate(File[] files, File destDir) {
- ObjectModelReader reader = new ObjectModelReader();
- ObjectModel objectModel = reader.read(files);
- setLastModifiedSource(reader.getLastModifiedSource());
- try {
- applyTemplate(objectModel, destDir);
- } catch (IOException eee) {
- 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)} puis boucle sur chaque
- * interface en appelant a méthode
- * {@link #generateFromInterface(Writer, ObjectModelInterface)} et enfin sur chaque
- * énumération en appelant la méthode
- * {@link #generateFromEnumeration(Writer, ObjectModelEnumeration)}
- * 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é.
- * @param model le modele memoire a utiliser
- * @param destDir le repertoire ou generer
- * @throws IOException pour tout pb
- */
- @Override
- public void applyTemplate(ObjectModel model, File destDir) throws IOException {
-
- // generateFromModel
- this.model = model;
-
- String filename = getFilenameForModel(model);
-
- // generateFromModel
- generateFromElement(model, destDir, filename, ObjectModelType.OBJECT_MODEL);
-
- // generateFromClassifier
- generateFromElements(model.getClassifiers(), destDir, ObjectModelType.OBJECT_MODEL_CLASSIFIER);
-
- // generateFromInterface
- generateFromElements(model.getInterfaces(), destDir, ObjectModelType.OBJECT_MODEL_INTERFACE);
-
- // generateFromClass
- generateFromElements(model.getClasses(), destDir, ObjectModelType.OBJECT_MODEL_CLASS);
-
- // generateFromEnumeration
- generateFromElements(model.getEnumerations(), destDir, ObjectModelType.OBJECT_MODEL_ENUMERATION);
-
- }
-
- /**
- * Parcours une collection d'éléments pour la génération suivant un type d'éléments.
- * Types possibles : ObjectModelClassifier, ObjectModelClass, ObjectModelInterface et
- * ObjectModelEnumeration.
- * Deux méthodes dépendent du type et peuvent être surchargées :
- * getFilenameForXXX et generateFromXXX (XXX étant un type prédéfini pour une méthode existante).
- *
- * @see ObjectModelType
- *
- * @param elements Collection d'éléments d'un des types ci-dessus
- * @param destDir dossier de destination pour le fichier généré
- * @param type type explicite d'ObjectModel
- */
- private void generateFromElements(Collection<? extends ObjectModelElement> elements, File destDir,
- ObjectModelType type) {
-
- for (ObjectModelElement element : elements) {
- String filename = "";
- // Filename depends on type of element (Classifier, Class, Interface or Enumeration)
- switch (type) {
- case OBJECT_MODEL_CLASSIFIER:
- filename = getFilenameForClassifier((ObjectModelClassifier)element);
- break;
- case OBJECT_MODEL_INTERFACE:
- filename = getFilenameForInterface((ObjectModelInterface)element);
- break;
- case OBJECT_MODEL_CLASS:
- filename = getFilenameForClass((ObjectModelClass)element);
- break;
- case OBJECT_MODEL_ENUMERATION:
- filename = getFilenameForEnumeration((ObjectModelEnumeration)element);
- }
-
- generateFromElement(element, destDir, filename, type);
- }
- }
-
- /**
- * Génération pour un élément du modèle (ou le modèle lui-même).
- * Types possibles : ObjectModel, ObjectModelClassifier, ObjectModelClass,
- * ObjectModelInterface et ObjectModelEnumeration.
- * La méthode generateFromXXX dépend du type d'élément et peut être surchargée.
- *
- * @see ObjectModelType
- *
- * @param element element à généré
- * @param destDir dossier de destination
- * @param filename nom du fichier de sortie
- * @param type type d'ObjectModel
- */
- protected void generateFromElement(Object element, File destDir, String filename,
- ObjectModelType type) {
-
- // on a maintenant une restriction des elements a generer
- // c'est à dire un filtrage par package
- // effectue un appel pour savoir si on a le droit de generer l'element
- // courant
- if (canGenerateElement(element)) {
-
- File outputFile = getDestinationFile(destDir, filename);
- if (!getOverwrite() && isNewerThanSource(outputFile)) {
- if (log.isTraceEnabled()) {
- log.trace("file " + outputFile + " is up-to-date");
- }
- return;
- }
- if (!outputFile.exists() && log.isTraceEnabled()) {
- log.trace("not up-to-date " + outputFile.lastModified()
- + " <" + outputFile + ">");
- }
- try {
- StringWriter out = new StringWriter();
- MonitorWriter monitorOut = new MonitorWriter(out);
-
- switch (type) {
- case OBJECT_MODEL:
- generateFromModel(monitorOut,(ObjectModel)element);
- break;
- case OBJECT_MODEL_CLASSIFIER:
- generateFromClassifier(monitorOut, (ObjectModelClassifier)element);
- break;
- case OBJECT_MODEL_INTERFACE:
- generateFromInterface(monitorOut, (ObjectModelInterface)element);
- break;
- case OBJECT_MODEL_CLASS:
- generateFromClass(monitorOut, (ObjectModelClass)element);
- break;
- case OBJECT_MODEL_ENUMERATION:
- generateFromEnumeration(monitorOut, (ObjectModelEnumeration)element);
- break;
- }
-
- 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);
- }
- }
- }
-
- /**
- * Test if given element can be generated.
- *
- * An element can be generated if his package is in the {@link #generatedPackages} list
- * or if {@link #generatedPackages} is null or empty.
- *
- * @param element element to test
- * @return generation allowed
- */
- protected boolean canGenerateElement(Object element) {
-
- boolean canGenerate = true;
-
- // can get package only for Classifiers
- if (element instanceof ObjectModelClassifier) {
- ObjectModelClassifier classifier = (ObjectModelClassifier)element;
- String classifierPackage = classifier.getPackageName();
-
- canGenerate = super.canGeneratePackage(classifierPackage);
- }
-
- return canGenerate;
- }
-
- /**
- * Par defaut cette methode retourne le getName du model. Si l'on souhaite
- * utiliser la methode generateFromModel il vaut mieux surcharger cette
- * methode
- * @param model le modele utilise
- * @return le nom du fichier a generer
- */
- public String getFilenameForModel(ObjectModel model) {
- // TODO throw exception when model.getName() == null or empty
- return model.getName();
- }
-
- /**
- * Par defaut cette methode retourne le QualifiedName convertie en chemin
- * par exemple pour org.codelutin.Toto on aurait org/codelutin/Toto
- * @param model le modele utilise
- * @param packageName le nom du paquetage
- * @return le repertoire correspondant au paquetage
- */
- 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
- * @param interfacez l'interface utilisee
- * @return le nom du l'interface a generer
- */
- public String getFilenameForInterface(ObjectModelInterface interfacez) {
- return getFilenameForClassifier(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
- * @param clazz la classe utilisee
- * @return le nom de la classe a generer
- */
- public String getFilenameForClass(ObjectModelClass clazz) {
- return getFilenameForClassifier(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
- * @param classifier le classifier utilisee
- * @return le nom du classifier a generer
- */
- public String getFilenameForClassifier(ObjectModelClassifier classifier) {
- return classifier.getQualifiedName().replace('.', File.separatorChar);
- }
-
- public String getFilenameForEnumeration(ObjectModelEnumeration enumeration) {
- return getFilenameForClassifier(enumeration);
-// return enumeration.getQualifiedName().replace('.', File.separatorChar);
- }
-
- public void generateFromModel(Writer output, ObjectModel model) throws IOException {
- }
-
- public void generateFromInterface(Writer output, ObjectModelInterface interfacez) throws IOException {
- }
-
- public void generateFromEnum(Writer output, ObjectModelEnumeration interfacez) throws IOException {
- }
-
- public void generateFromClass(Writer output, ObjectModelClass clazz) throws IOException {
- }
-
- public void generateFromClassifier(Writer output, ObjectModelClassifier clazz) throws IOException {
- }
-
- public void generateFromEnumeration(Writer output, ObjectModelEnumeration enumeration) throws IOException {
- }
-}
Deleted: trunk/eugene/src/main/java/org/nuiton/eugene/ObjectModelReader.java
===================================================================
--- trunk/eugene/src/main/java/org/nuiton/eugene/ObjectModelReader.java 2009-12-20 14:45:41 UTC (rev 776)
+++ trunk/eugene/src/main/java/org/nuiton/eugene/ObjectModelReader.java 2009-12-20 16:27:20 UTC (rev 777)
@@ -1,244 +0,0 @@
-/*
- * *##%
- * EUGene :: EUGene
- * Copyright (C) 2004 - 2009 CodeLutin
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation, either version 3 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 Lesser Public License for more details.
- *
- * You should have received a copy of the GNU General Lesser Public
- * License along with this program. If not, see
- * <http://www.gnu.org/licenses/lgpl-3.0.html>.
- * ##%*
- */
-
-package org.nuiton.eugene;
-
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.Enumeration;
-import java.util.List;
-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.nuiton.eugene.models.object.ObjectModel;
-import org.nuiton.eugene.models.object.ObjectModelClass;
-import org.nuiton.eugene.models.object.ObjectModelClassifier;
-import org.nuiton.eugene.models.object.ObjectModelElement;
-import org.nuiton.eugene.models.object.xml.DigesterObjectModelRuleSet;
-import org.nuiton.eugene.models.object.xml.ObjectModelClassifierImpl;
-import org.nuiton.eugene.models.object.xml.ObjectModelElementImpl;
-import org.nuiton.eugene.models.object.xml.ObjectModelImpl;
-import org.nuiton.eugene.models.object.xml.ObjectModelImplRef;
-import org.nuiton.eugene.models.object.xml.ObjectModelImplTagValue;
-import org.nuiton.util.FileUtil;
-import org.nuiton.util.RecursiveProperties;
-import org.nuiton.util.StringUtil;
-import org.xml.sax.SAXException;
-
-/**
- * To read object model files into an memory object model.
- *
- * Created: 26 oct. 2009
- *
- * @author fdesbois
- * @version $Revision$
- *
- * Mise a jour: $Date$
- * par : $Author$
- *
- * @plexus.component role="org.nuiton.eugene.ModelReader" role-hint="objectmodel"
- */
-public class ObjectModelReader extends ModelReader<ObjectModel> {
-
- private static final Log log = LogFactory.getLog(ObjectModelReader.class);
-
- /**
- * L'expression réguliere match les chaines de type
- * <package.ClassName>.<class|attribute|operation>.[name].<stereotype|tagvalue>.[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=...
- */
- protected Pattern propertiesPattern = Pattern
- .compile("((?:[_a-zA-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]*)?");
-
-
- /**
- * @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
- */
- @Override
- public ObjectModel read(File[] files) {
- setLastModifiedSource(files);
- ObjectModel objectModel = new ObjectModelImpl();
-
- // Digester parser configuration
- Digester digester = new Digester();
- digester.addRuleSet(new DigesterObjectModelRuleSet());
-
- for (File file : files) {
- try {
- digester.push(objectModel);
- objectModel = (ObjectModel) digester.parse(file);
- } catch (IOException e) {
- log.warn("Unable to parse ObjectModel input file : " + file, e);
- } catch (SAXException e) {
- log.warn("Unable to parse ObjectModel input file : " + file, e);
- }
-
- // recherche est charge le fichier propriete associe au modele
- File dir = file.getParentFile();
- String ext = FileUtil.extension(file);
- String name = FileUtil.basename(file, "." + 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<Object> e = prop.keys(); e.hasMoreElements();) {
- String key = (String) e.nextElement();
- String value = prop.getProperty(key);
-
- 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.setName(tag);
- tagvalue.setValue(value);
- ((ObjectModelImpl) objectModel)
- .addTagValue(tagvalue);
- }
- } else {
-
- 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 + "' => "
- + "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é
- List<ObjectModelElement> elems = new ArrayList<ObjectModelElement>();
- if ("class".equals(target)) {
- elems.add(omc);
- } else if ("attribute".equals(target)) {
- ObjectModelClass classmodel = (ObjectModelClass) omc;
- elems.add(classmodel
- .getAttribute(targetName));
- } else if ("operation".equals(target)) {
- elems.addAll(omc.getOperations(targetName));
- }
- 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;
- }
-
- 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");
- }
- }
- }
- }
- }
- }
- }
- if (log.isDebugEnabled()) {
- for (ObjectModelClass m : objectModel.getClasses()) {
- log.debug("loaded class in objectmodel : " + m.getName());
- }
- }
- return objectModel;
- /*try {
- generate(objectModel, destDir);
- } catch (IOException eee) {
- if (log.isWarnEnabled()) {
- log.warn("Unable to generate for file", eee);
- }
- }*/
- }
-}
Deleted: trunk/eugene/src/main/java/org/nuiton/eugene/ObjectModelTransformer.java
===================================================================
--- trunk/eugene/src/main/java/org/nuiton/eugene/ObjectModelTransformer.java 2009-12-20 14:45:41 UTC (rev 776)
+++ trunk/eugene/src/main/java/org/nuiton/eugene/ObjectModelTransformer.java 2009-12-20 16:27:20 UTC (rev 777)
@@ -1,148 +0,0 @@
-/*
- * *##%
- * EUGene :: EUGene
- * Copyright (C) 2004 - 2009 CodeLutin
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation, either version 3 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 Lesser Public License for more details.
- *
- * You should have received a copy of the GNU General Lesser Public
- * License along with this program. If not, see
- * <http://www.gnu.org/licenses/lgpl-3.0.html>.
- * ##%*
- */
-package org.nuiton.eugene;
-
-import org.nuiton.eugene.models.Model;
-import org.nuiton.eugene.models.object.*;
-
-import java.util.Collection;
-
-/**
- * ObjectModelTransformer
- * <p/>
- * Created: 28 oct. 2009
- *
- *
- * L'initialisation du modèle de sortie et du générateur de sortie associée,
- * se fait dans la superclass grâce à la méthode init.
- *
- * @author fdesbois
- * @version $Revision$
- * <p/>
- * Mise a jour: $Date$
- * par : $Author$
- * @param <O>
- */
-public abstract class ObjectModelTransformer<O extends Model> extends Transformer<ObjectModel, O> {
-
- /**
- * Le model associé au transformer est le model d'entree. Le modele de sortie
- * peut etre initialiser via la methode {@link org.nuiton.eugene.Transformer#initOutputModel()}.
- * Il est également possible de surcharger la methode {@link #debugOutputModel()}
- * pour verifier le resultat de la transformation.
- * Par defaut la methode appelle la methode
- * {@link #transformFromModel(ObjectModel)} puis boucle sur chaque
- * class en appelant la methode
- * {@link #transformFromClass(ObjectModelClass)} puis boucle sur chaque
- * interface en appelant a methode
- * {@link #transformFromInterface(ObjectModelInterface)} et enfin sur chaque
- * enumeration en appelant la methode
- * {@link #transformFromEnumeration(ObjectModelEnumeration)}
- */
- @Override
- public void transform() {
-
- // transformFromModel
- transformFromElement(getModel(), ObjectModelType.OBJECT_MODEL);
-
- // transformFromClassifier
- transformFromElements(getModel().getClassifiers(), ObjectModelType.OBJECT_MODEL_CLASSIFIER);
-
- // transformFromInterface
- transformFromElements(getModel().getInterfaces(), ObjectModelType.OBJECT_MODEL_INTERFACE);
-
- // transformFromClass
- transformFromElements(getModel().getClasses(), ObjectModelType.OBJECT_MODEL_CLASS);
-
- // transformFromEnumeration
- transformFromElements(getModel().getEnumerations(), ObjectModelType.OBJECT_MODEL_ENUMERATION);
-
- debugOutputModel();
- }
-
- protected abstract void debugOutputModel();
-
- /**
- * Parcours une collection d'éléments pour la transformation suivant un type d'éléments.
- * Types possibles : ObjectModelClassifier, ObjectModelClass, ObjectModelInterface et
- * ObjectModelEnumeration.
- * Une méthode dépend du type et peut être surchargée :
- * transformFromXXX (XXX étant un type prédéfini pour une méthode existante).
- *
- * @param elements Collection d'éléments d'un des types ci-dessus
- * @param type type explicite d'ObjectModel
- * @see ObjectModelType
- */
- private void transformFromElements(Collection<? extends ObjectModelElement> elements,
- ObjectModelType type) {
-
- for (ObjectModelElement element : elements) {
- transformFromElement(element, type);
- }
- }
-
- /**
- * Génération pour un élément du modèle (ou le modèle lui-même).
- * Types possibles : ObjectModel, ObjectModelClassifier, ObjectModelClass,
- * ObjectModelInterface et ObjectModelEnumeration.
- * La méthode transformFromXXX dépend du type d'élément et peut être surchargée.
- *
- * @param element element à généré
- * @param type type d'ObjectModel
- * @see ObjectModelType
- */
- protected void transformFromElement(Object element, ObjectModelType type) {
-
- switch (type) {
- case OBJECT_MODEL:
- transformFromModel((ObjectModel) element);
- break;
- case OBJECT_MODEL_CLASSIFIER:
- transformFromClassifier((ObjectModelClassifier) element);
- break;
- case OBJECT_MODEL_INTERFACE:
- transformFromInterface((ObjectModelInterface) element);
- break;
- case OBJECT_MODEL_CLASS:
- transformFromClass((ObjectModelClass) element);
- break;
- case OBJECT_MODEL_ENUMERATION:
- transformFromEnumeration((ObjectModelEnumeration) element);
- break;
- }
- }
-
- public void transformFromModel(ObjectModel model) {
- }
-
- public void transformFromInterface(ObjectModelInterface interfacez) {
- }
-
- public void transformFromClass(ObjectModelClass clazz) {
- }
-
- public void transformFromClassifier(ObjectModelClassifier clazz) {
- }
-
- public void transformFromEnumeration(ObjectModelEnumeration enumeration) {
- }
-
-}
Deleted: trunk/eugene/src/main/java/org/nuiton/eugene/ObjectModelType.java
===================================================================
--- trunk/eugene/src/main/java/org/nuiton/eugene/ObjectModelType.java 2009-12-20 14:45:41 UTC (rev 776)
+++ trunk/eugene/src/main/java/org/nuiton/eugene/ObjectModelType.java 2009-12-20 16:27:20 UTC (rev 777)
@@ -1,54 +0,0 @@
-/* *##%
- * EUGene :: EUGene
- * Copyright (C) 2004 - 2009 CodeLutin
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation, either version 3 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 Lesser Public License for more details.
- *
- * You should have received a copy of the GNU General Lesser Public
- * License along with this program. If not, see
- * <http://www.gnu.org/licenses/lgpl-3.0.html>.
- * ##%*/
-
-package org.nuiton.eugene;
-
-/**
- * Enumeration for ObjectModelGenerator.
- * Contains all types available for generating specific ObjectModelElement file.
- * Needed because of inheritance between class, interface and classifier.
- * Method instanceof (previously used) is inadequat so expliciting the ObjectModel type is much better.
- * <p/>
- * Created: may 4th 2009
- *
- * @author Florian DESBOIS <fdesbois(a)codelutin.com>
- * @version $Revision: 496 $
- */
-public enum ObjectModelType {
- /**
- * a model
- */
- OBJECT_MODEL,
- /**
- * an enumration
- */
- OBJECT_MODEL_ENUMERATION,
- /**
- * a generic classifier
- */
- OBJECT_MODEL_CLASSIFIER,
- /**
- * a class
- */
- OBJECT_MODEL_CLASS,
- /**
- * an interface
- */
- OBJECT_MODEL_INTERFACE
-}
Deleted: trunk/eugene/src/main/java/org/nuiton/eugene/StateModelGenerator.java
===================================================================
--- trunk/eugene/src/main/java/org/nuiton/eugene/StateModelGenerator.java 2009-12-20 14:45:41 UTC (rev 776)
+++ trunk/eugene/src/main/java/org/nuiton/eugene/StateModelGenerator.java 2009-12-20 16:27:20 UTC (rev 777)
@@ -1,214 +0,0 @@
-/* *##%
- * EUGene :: EUGene
- * Copyright (C) 2004 - 2009 CodeLutin
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation, either version 3 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 Lesser Public License for more details.
- *
- * You should have received a copy of the GNU General Lesser Public
- * License along with this program. If not, see
- * <http://www.gnu.org/licenses/lgpl-3.0.html>.
- * ##%*/
-
-package org.nuiton.eugene;
-
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.nuiton.eugene.models.state.StateModel;
-import org.nuiton.eugene.models.state.StateModelState;
-import org.nuiton.eugene.models.state.StateModelStateChart;
-
-import java.io.File;
-import java.io.IOException;
-import java.io.StringWriter;
-import java.io.Writer;
-
-/**
- * StateModelGenerator.
- * <p/>
- * Pour utiliser ce type de générateur, il faut implanter au moins une des
- * 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 (output) alors aucun fichier n'est généré.
- * <p/>
- * Le nom de l'argument writer doit absolument etre output et pas autre chose si
- * vous souhaitez utiliser le processeur
- * {@code org.nuiton.processor.filters.GeneratorTemplatesFilter} pour vous
- * s'implifier l'écriture des templates.
- *
- * @author chatellier
- * @version $Revision$
- * <p/>
- * Last update : $Date$ By : $Author$
- */
-public class StateModelGenerator extends AbstractGenerator<StateModel> {
-
- /**
- * Logger for this class
- */
- private static Log log = LogFactory.getLog(StateModelGenerator.class);
-
- /**
- * Empty constructor
- */
- public StateModelGenerator() {
- super();
- }
-
- /**
- * Constructor with parent generator.
- *
- * @param parent parent generator
- */
- public StateModelGenerator(AbstractGenerator<StateModel> parent) {
- super(parent);
- }
-
- /*
- * @see org.nuiton.eugene.Generator#generate(java.io.File[], java.io.File)
- */
- @Override
- @Deprecated
- public void generate(File[] files, File destDir) {
-
- StateModelReader reader = new StateModelReader();
- StateModel stateModel = reader.read(files);
- setLastModifiedSource(reader.getLastModifiedSource());
-
- // generate code
- try {
- applyTemplate(stateModel, destDir);
- } catch (IOException e) {
- log.warn("Can't generate code for files", e);
- }
- }
-
-
- /**
- * Par défaut, appel {@link #generateFromModel(MonitorWriter, org.nuiton.eugene.models.state.StateModel)} pour le
- * model et {@link #generateFromState(Writer,StateModelState)} pour tous les
- * etats du modele.
- *
- * @param stateModel Le modele d'état
- * @param destDir le dossier de destination
- * @throws IOException
- */
- @Override
- public void applyTemplate(StateModel stateModel, File destDir) throws IOException {
-
- model = stateModel;
-
- String filename = getFilenameFromModel(stateModel);
- File outputFile = getDestinationFile(destDir, filename);
- if (getOverwrite() || !isNewerThanSource(outputFile)) {
- try {
- StringWriter out = new StringWriter();
- MonitorWriter monitorOut = new MonitorWriter(out);
- generateFromModel(monitorOut, stateModel);
- 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);
- }
- }
-
- // pour tous les diagrammes du modele
- for (StateModelStateChart chart : stateModel.getStateCharts()) {
-
- // elements can be restricted in package
- if (canGenerateElement(chart)) {
-
- // et tous les états de ces diagrammes
- for (Object oState : chart.getStates().toArray()) {
- StateModelState state = (StateModelState) oState;
- String filenameState = getFilenameFromState(state, chart
- .getName());
- File outputFiletate = getDestinationFile(destDir, filenameState);
- if (getOverwrite() || !isNewerThanSource(outputFiletate)) {
- try {
- StringWriter out = new StringWriter();
- MonitorWriter monitorOut = new MonitorWriter(out);
- generateFromState(monitorOut, state);
- write(outputFiletate, monitorOut);
- } catch (Exception eee) {
- log.warn("Erreur lors de la génération du fichier "
- + outputFiletate);
- throw new RuntimeException(
- "Erreur lors de la génération du fichier "
- + outputFiletate, eee);
- }
- }
- }
- }
- }
- }
-
- /**
- * Test if given element can be generated.
- *
- * @param chart chart to test
- * @return generation allowed
- */
- protected boolean canGenerateElement(StateModelStateChart chart) {
-
- boolean canGenerate = true;
-
- // disabled until tested
- //String chartPackage = chart.getPackageName();
- //canGenerate = super.canGeneratePackage(chartPackage);
-
- return canGenerate;
- }
-
- /**
- * Generate model code
- *
- * @param monitorOut
- * @param stateModel
- */
- protected void generateFromModel(MonitorWriter monitorOut, StateModel stateModel) {
-
- }
-
- /**
- * Return filename from model
- *
- * @param stateModel
- * @return model file name
- */
- protected String getFilenameFromModel(StateModel stateModel) {
- return stateModel.getName();
- }
-
- /**
- * Return filename from state
- *
- * @param state the state
- * @param packageName
- * @return the filename
- */
- public String getFilenameFromState(StateModelState state, String packageName) {
- return (packageName + '.' + state.getName()).replace('.', File.separatorChar);
- }
-
- /**
- * Generate a state code
- *
- * @param monitorOut the output writer
- * @param state the state
- * @throws IOException
- */
- public void generateFromState(Writer monitorOut, StateModelState state) throws IOException {
-
- }
-}
Deleted: trunk/eugene/src/main/java/org/nuiton/eugene/StateModelReader.java
===================================================================
--- trunk/eugene/src/main/java/org/nuiton/eugene/StateModelReader.java 2009-12-20 14:45:41 UTC (rev 776)
+++ trunk/eugene/src/main/java/org/nuiton/eugene/StateModelReader.java 2009-12-20 16:27:20 UTC (rev 777)
@@ -1,124 +0,0 @@
-/*
- * *##%
- * EUGene :: EUGene
- * Copyright (C) 2004 - 2009 CodeLutin
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation, either version 3 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 Lesser Public License for more details.
- *
- * You should have received a copy of the GNU General Lesser Public
- * License along with this program. If not, see
- * <http://www.gnu.org/licenses/lgpl-3.0.html>.
- * ##%*
- */
-
-package org.nuiton.eugene;
-
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.IOException;
-import java.util.Enumeration;
-import org.apache.commons.digester.Digester;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.nuiton.eugene.models.state.StateModel;
-import org.nuiton.eugene.models.state.xml.DigesterStateModelRuleSet;
-import org.nuiton.eugene.models.state.xml.StateModelImpl;
-import org.nuiton.util.FileUtil;
-import org.nuiton.util.RecursiveProperties;
-import org.xml.sax.SAXException;
-
-/**
- * To read state model files into a memory state model.
- *
- * Created: 26 oct. 2009
- *
- * @author fdesbois
- * @version $Revision$
- *
- * Mise a jour: $Date$
- * par : $Author$
- *
- * @plexus.component role="org.nuiton.eugene.ModelReader" role-hint="statemodel"
- */
-public class StateModelReader extends ModelReader<StateModel> {
-
- private static final Log log = LogFactory.getLog(StateModelReader.class);
-
- @Override
- public StateModel read(File[] files) {
- Digester digester = new Digester();
- digester.addRuleSet(new DigesterStateModelRuleSet());
-
- StateModelImpl stateModel = new StateModelImpl();
-
- // process each file
- for (File file : files) {
-
- // fin a deplacer
- try {
- digester.push(stateModel);
- digester.parse(file);
-
- // try to load property file
- loadPropertyFile(file, stateModel);
- } catch (IOException e) {
- log.warn("Can't read model file", e);
- } catch (SAXException e) {
- log.warn("Can't read model file", e);
- }
- }
- return stateModel;
- }
-
- /**
- * Try to load property file, associated to current statemodel file
- *
- * @param stateModelFile
- * @param stateModel
- */
- protected void loadPropertyFile(File stateModelFile,
- StateModelImpl stateModel) {
- // recherche et charge le fichier propriete associe au modele
- File dir = stateModelFile.getParentFile();
- String ext = FileUtil.extension(stateModelFile);
- String name = FileUtil.basename(stateModelFile, "." + ext);
- File propFile = new File(dir, name + ".properties");
- RecursiveProperties prop = new RecursiveProperties();
-
- if (!propFile.exists()) {
- if (log.isInfoEnabled()) {
- log.info("No property file associated to model : " + propFile);
- }
- } else {
- if (log.isInfoEnabled()) {
- log.info("Reading model property file " + propFile);
- }
- try {
- prop.load(new FileInputStream(propFile));
- } catch (IOException e) {
- log.warn("Cannot read property file " + propFile, e);
- }
-
- // on ajoute les proprietes du fichier associe au model
- for (Enumeration<Object> e = prop.keys(); e.hasMoreElements();) {
- String key = (String) e.nextElement();
- String value = prop.getProperty(key);
-
- if (!key.startsWith("model.tagvalue.")) {
- log.warn("only tagvalue is allowed on model in properties");
- } else {
- String tag = key.substring("model.tagvalue.".length());
- stateModel.addTagValue(tag, value);
- }
- }
- }
- }
-}
Modified: trunk/eugene/src/main/java/org/nuiton/eugene/java/JavaBuilder.java
===================================================================
--- trunk/eugene/src/main/java/org/nuiton/eugene/java/JavaBuilder.java 2009-12-20 14:45:41 UTC (rev 776)
+++ trunk/eugene/src/main/java/org/nuiton/eugene/java/JavaBuilder.java 2009-12-20 16:27:20 UTC (rev 777)
@@ -28,7 +28,7 @@
import org.apache.commons.logging.LogFactory;
import org.nuiton.eugene.GeneratorUtil;
import org.nuiton.eugene.ImportsManager;
-import org.nuiton.eugene.ObjectModelType;
+import org.nuiton.eugene.models.object.ObjectModelType;
import org.nuiton.eugene.models.object.*;
import org.nuiton.eugene.models.object.ObjectModelModifier;
import org.nuiton.eugene.models.object.xml.*;
@@ -148,7 +148,7 @@
* @param name
* @param packageName package's name of the class to create
* @return a new ObjectModelClass
- * @see org.nuiton.eugene.models.object.xml.ObjectModelBuilder#createClass(java.lang.String, java.lang.String,org.nuiton.eugene.models.object.ObjectModelModifier...)
+ * @see org.nuiton.eugene.models.object.ObjectModelBuilder#createClass(java.lang.String, java.lang.String,org.nuiton.eugene.models.object.ObjectModelModifier...)
*/
public ObjectModelClass createClass(String name, String packageName) {
return modelBuilder.createClass(name, packageName);
@@ -160,7 +160,7 @@
* @param name
* @param packageName package's name of the class to create
* @return a new ObjectModelClass
- * @see org.nuiton.eugene.models.object.xml.ObjectModelBuilder#createClass(java.lang.String,java.lang.String, org.nuiton.eugene.models.object.ObjectModelModifier...)
+ * @see org.nuiton.eugene.models.object.ObjectModelBuilder#createClass(java.lang.String,java.lang.String, org.nuiton.eugene.models.object.ObjectModelModifier...)
*/
public ObjectModelClass createAbstractClass(String name, String packageName) {
return modelBuilder.createClass(name, packageName, ObjectModelModifier.ABSTRACT);
@@ -172,7 +172,7 @@
* @param name
* @param packageName package's name of the interface to create
* @return a new ObjectModelInterface
- * @see org.nuiton.eugene.models.object.xml.ObjectModelBuilder#createInterface(java.lang.String, java.lang.String)
+ * @see org.nuiton.eugene.models.object.ObjectModelBuilder#createInterface(java.lang.String, java.lang.String)
*/
public ObjectModelInterface createInterface(String name, String packageName) {
return modelBuilder.createInterface(name, packageName);
@@ -195,7 +195,7 @@
*
* @param classifier
* @param superclassQualifiedName
- * @see org.nuiton.eugene.models.object.xml.ObjectModelBuilder#addInterface(
+ * @see org.nuiton.eugene.models.object.ObjectModelBuilder#addInterface(
*org.nuiton.eugene.models.object.ObjectModelClassifier, java.lang.String)
*/
public void setSuperClass(ObjectModelClass classifier, String superclassQualifiedName) {
@@ -211,7 +211,7 @@
*
* @param classifier
* @param interfaceQualifiedName
- * @see org.nuiton.eugene.models.object.xml.ObjectModelBuilder#addInterface(
+ * @see org.nuiton.eugene.models.object.ObjectModelBuilder#addInterface(
*org.nuiton.eugene.models.object.ObjectModelClassifier, java.lang.String)
*/
public void addInterface(ObjectModelClassifier classifier, String interfaceQualifiedName) {
@@ -229,7 +229,7 @@
* @param value
* @param modifiers
* @return a new ObjectModelAttribute
- * @see org.nuiton.eugene.models.object.xml.ObjectModelBuilder#addAttribute(org.nuiton.eugene.models.object.ObjectModelClassifier, java.lang.String,java.lang.String, java.lang.String, org.nuiton.eugene.models.object.ObjectModelModifier...)
+ * @see org.nuiton.eugene.models.object.ObjectModelBuilder#addAttribute(org.nuiton.eugene.models.object.ObjectModelClassifier, java.lang.String,java.lang.String, java.lang.String, org.nuiton.eugene.models.object.ObjectModelModifier...)
*/
public ObjectModelAttribute addAttribute(ObjectModelClassifier classifier, String name, String type, String value,
ObjectModelModifier... modifiers) {
@@ -314,7 +314,7 @@
* @param type
* @param modifiers
* @return a new ObjectModelOperation
- * @see org.nuiton.eugene.models.object.xml.ObjectModelBuilder#addOperation(org.nuiton.eugene.models.object.ObjectModelClassifier, java.lang.String,java.lang.String, org.nuiton.eugene.models.object.ObjectModelModifier...)
+ * @see org.nuiton.eugene.models.object.ObjectModelBuilder#addOperation(org.nuiton.eugene.models.object.ObjectModelClassifier, java.lang.String,java.lang.String, org.nuiton.eugene.models.object.ObjectModelModifier...)
*/
public ObjectModelOperation addOperation(ObjectModelClassifier classifier, String name, String type,
ObjectModelModifier... modifiers) {
@@ -328,7 +328,7 @@
* @param classifier
* @param modifiers
* @return a new ObjectModelOperation
- * @see org.nuiton.eugene.models.object.xml.ObjectModelBuilder#addOperation(org.nuiton.eugene.models.object.ObjectModelClassifier, java.lang.String,java.lang.String, org.nuiton.eugene.models.object.ObjectModelModifier...)
+ * @see org.nuiton.eugene.models.object.ObjectModelBuilder#addOperation(org.nuiton.eugene.models.object.ObjectModelClassifier, java.lang.String,java.lang.String, org.nuiton.eugene.models.object.ObjectModelModifier...)
*/
public ObjectModelOperation addBlock(ObjectModelClassifier classifier,
ObjectModelModifier... modifiers) {
@@ -364,7 +364,7 @@
* @param type
* @param name
* @return a new ObjectModelParameter
- * @see org.nuiton.eugene.models.object.xml.ObjectModelBuilder#addParameter(
+ * @see org.nuiton.eugene.models.object.ObjectModelBuilder#addParameter(
*org.nuiton.eugene.models.object.ObjectModelOperation, java.lang.String, java.lang.String)
*/
public ObjectModelParameter addParameter(ObjectModelOperation operation, String type, String name) {
@@ -377,7 +377,7 @@
*
* @param operation
* @param exception
- * @see org.nuiton.eugene.models.object.xml.ObjectModelBuilder#addException(
+ * @see org.nuiton.eugene.models.object.ObjectModelBuilder#addException(
*org.nuiton.eugene.models.object.ObjectModelOperation, java.lang.String)
*/
public void addException(ObjectModelOperation operation, String exception) {
@@ -391,7 +391,7 @@
* @param operation
* @param body
* @throws IllegalArgumentException if operation is abstract
- * @see org.nuiton.eugene.models.object.xml.ObjectModelBuilder#setOperationBody(
+ * @see org.nuiton.eugene.models.object.ObjectModelBuilder#setOperationBody(
*org.nuiton.eugene.models.object.ObjectModelOperation, java.lang.String)
*/
public void setOperationBody(ObjectModelOperation operation, String body)
Modified: trunk/eugene/src/main/java/org/nuiton/eugene/java/JavaGenerator.java
===================================================================
--- trunk/eugene/src/main/java/org/nuiton/eugene/java/JavaGenerator.java 2009-12-20 14:45:41 UTC (rev 776)
+++ trunk/eugene/src/main/java/org/nuiton/eugene/java/JavaGenerator.java 2009-12-20 16:27:20 UTC (rev 777)
@@ -31,7 +31,7 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.nuiton.eugene.GeneratorUtil;
-import org.nuiton.eugene.ObjectModelGenerator;
+import org.nuiton.eugene.models.object.ObjectModelGenerator;
import org.nuiton.eugene.models.object.*;
/**
Modified: trunk/eugene/src/main/java/org/nuiton/eugene/java/ObjectModelTransformerToJava.java
===================================================================
--- trunk/eugene/src/main/java/org/nuiton/eugene/java/ObjectModelTransformerToJava.java 2009-12-20 14:45:41 UTC (rev 776)
+++ trunk/eugene/src/main/java/org/nuiton/eugene/java/ObjectModelTransformerToJava.java 2009-12-20 16:27:20 UTC (rev 777)
@@ -22,10 +22,10 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import org.nuiton.eugene.ObjectModelType;
+import org.nuiton.eugene.models.object.ObjectModelType;
import org.nuiton.eugene.Template;
import org.nuiton.eugene.ImportsManager;
-import org.nuiton.eugene.ObjectModelTransformer;
+import org.nuiton.eugene.models.object.ObjectModelTransformer;
import org.nuiton.eugene.models.object.*;
/**
@@ -42,11 +42,14 @@
public abstract class ObjectModelTransformerToJava extends ObjectModelTransformer<ObjectModel> {
private static final Log log = LogFactory.getLog(ObjectModelTransformerToJava.class);
-
+ /**
+ * internal builder
+ */
protected JavaBuilder builder;
@Override
protected Template<ObjectModel> initOutputTemplate() {
+ // by default, use a stupid java generator
return new JavaGenerator();
}
Copied: trunk/eugene/src/main/java/org/nuiton/eugene/models/object/ObjectModelBuilder.java (from rev 776, trunk/eugene/src/main/java/org/nuiton/eugene/models/object/xml/ObjectModelBuilder.java)
===================================================================
--- trunk/eugene/src/main/java/org/nuiton/eugene/models/object/ObjectModelBuilder.java (rev 0)
+++ trunk/eugene/src/main/java/org/nuiton/eugene/models/object/ObjectModelBuilder.java 2009-12-20 16:27:20 UTC (rev 777)
@@ -0,0 +1,544 @@
+/*
+ * *##%
+ * EUGene :: EUGene
+ * Copyright (C) 2004 - 2009 CodeLutin
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation, either version 3 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 Lesser Public License for more details.
+ *
+ * You should have received a copy of the GNU General Lesser Public
+ * License along with this program. If not, see
+ * <http://www.gnu.org/licenses/lgpl-3.0.html>.
+ * ##%*
+ */
+
+package org.nuiton.eugene.models.object;
+
+import org.nuiton.eugene.models.object.xml.*;
+
+/**
+ * ObjectModelBuilder
+ * <p/>
+ * Created: 3 nov. 2009
+ *
+ * @author fdesbois
+ * @version $Revision$
+ * <p/>
+ * Builder to fill an empty ObjectModel. The object model name is important if you want to use the model
+ * in generators.
+ * <p/>
+ * Mise a jour: $Date$
+ * par : $Author$
+ */
+public class ObjectModelBuilder {
+
+ protected ObjectModelImpl model;
+
+ /**
+ * Constructor. Must have a name for the new model created.
+ *
+ * @param name model name
+ */
+ public ObjectModelBuilder(String name) {
+ this.model = new ObjectModelImpl();
+ this.model.setName(name);
+ }
+
+ /**
+ * Get the building model
+ *
+ * @return the ObjectModel which is currently built
+ */
+ public ObjectModel getModel() {
+ return this.model;
+ }
+
+ /**
+ * Add a tagValue to the model.
+ *
+ * @param name tagValue name
+ * @param value tagValue value
+ */
+ public void addTagValue(String name, String value) {
+ ObjectModelImplTagValue tagValue = new ObjectModelImplTagValue();
+ tagValue.setName(name);
+ tagValue.setValue(value);
+ model.addTagValue(tagValue);
+ }
+
+ /**
+ * Add a tagValue to an element
+ *
+ * @param element where the tag value will be added
+ * @param name tagValue name
+ * @param value tagValue value
+ */
+ public void addTagValue(ObjectModelElement element, String name, String value) {
+ ObjectModelElementImpl impl = (ObjectModelElementImpl) element;
+
+ ObjectModelImplTagValue tagValue = new ObjectModelImplTagValue();
+ tagValue.setName(name);
+ tagValue.setValue(value);
+ impl.addTagValue(tagValue);
+ }
+
+ /**
+ * Create a new class in the model.
+ * Modifiers allowed : ABSTRACT, STATIC.
+ *
+ * @param name class name
+ * @param packageName class package
+ * @param modifiers class modifiers
+ * @return the new ObjectModelClass added to the model
+ */
+ public ObjectModelClass createClass(String name, String packageName, ObjectModelModifier... modifiers) {
+ ObjectModelClassImpl result = new ObjectModelClassImpl();
+ return createClass(result, name, packageName, modifiers);
+ }
+
+ protected ObjectModelClass createClass(ObjectModelClassImpl clazz, String name, String packageName, ObjectModelModifier... modifiers)
+ throws IllegalArgumentException {
+ clazz.setName(name);
+ clazz.setPackage(packageName);
+ for (ObjectModelModifier modifier : modifiers) {
+ switch (modifier) {
+ case ABSTRACT:
+ clazz.setAbstract(true);
+ break;
+ case STATIC:
+ clazz.setStatic(true);
+ break;
+ default:
+ throw new IllegalArgumentException("Unsupported modifier type '" + modifier.name() + "'");
+ }
+ }
+ model.addClass(clazz);
+ return clazz;
+ }
+
+ /**
+ * Create a new interface in the model.
+ *
+ * @param name interface name
+ * @param packageName interface package
+ * @return the new ObjectModelInterface added to the model
+ */
+ public ObjectModelInterface createInterface(String name, String packageName) {
+ ObjectModelInterfaceImpl result = new ObjectModelInterfaceImpl();
+ result.setName(name);
+ result.setPackage(packageName);
+ model.addInterface(result);
+ return result;
+ }
+
+ /**
+ * Create a new interface in the model.
+ *
+ * @param name interface name
+ * @param packageName interface package
+ * @return the new ObjectModelInterface added to the model
+ */
+ public ObjectModelEnumeration createEnumeration(String name, String packageName) {
+ ObjectModelEnumerationImpl result = new ObjectModelEnumerationImpl();
+ result.setName(name);
+ result.setPackage(packageName);
+ model.addEnumeration(result);
+ return result;
+ }
+
+
+ /**
+ * Add an attribute to a classifier (interface, class, enum) without default value.
+ * Default visibility is set to PUBLIC.
+ *
+ * @param classifier where the attribute will be added
+ * @param name attribute name
+ * @param type attribute type (full qualified name)
+ * @return the new ObjectModelAttribute added
+ */
+ public ObjectModelAttribute addAttribute(ObjectModelClassifier classifier, String name, String type) {
+ return addAttribute(classifier, name, type, "");
+ }
+
+ /**
+ * Add an attribute to a classifier (interface, class, enum).
+ * Modifiers allowed : STATIC, FINAL, PUBLIC, PRIVATE, PROTECTED, PACKAGE, ORDERED, UNIQUE.
+ * The last visibility set will be keeped.
+ *
+ * @param classifier where the attribute will be added
+ * @param name attribute name
+ * @param type attribute type (full qualified name)
+ * @param value default value for the attribute
+ * @param modifiers attribute modifiers
+ * @return the new ObjectModelAttribute added
+ * @throws IllegalArgumentException illegal Modifier
+ * @see org.nuiton.eugene.models.object.ObjectModelModifier#isVisibility()
+ */
+ public ObjectModelAttribute addAttribute(ObjectModelClassifier classifier, String name, String type, String value,
+ ObjectModelModifier... modifiers) throws IllegalArgumentException {
+ ObjectModelAttributeImpl attribute = new ObjectModelAttributeImpl();
+ attribute.setName(name);
+ attribute.setType(type);
+ attribute.setDefaultValue(value);
+
+ for (ObjectModelModifier modifier : modifiers) {
+ if (modifier.isVisibility()) {
+ attribute.setVisibility(modifier.toString());
+ } else {
+ switch (modifier) {
+ case STATIC:
+ attribute.setStatic(true);
+ break;
+ case FINAL:
+ attribute.setFinal(true);
+ break;
+ case ORDERED:
+ attribute.setOrdering(modifier.toString());
+ break;
+ case UNIQUE:
+ attribute.setUnique(true);
+ break;
+ default:
+ throw new IllegalArgumentException("Unsupported modifier type '" + modifier.name() + "'");
+ }
+ }
+ }
+
+ ObjectModelClassifierImpl classifierImpl = (ObjectModelClassifierImpl) classifier;
+ classifierImpl.addAttribute(attribute);
+ return attribute;
+ }
+
+ /**
+ * Add an association A to B. Create only attribute association for classifierA.
+ * MODIFIERS allowed : PUBLIC, PRIVATE, PACKAGE, PROTECTED, AGGREGATE, COMPOSITE, ORDERED, UNIQUE
+ * STATIC, NAVIGABLE.
+ * You have to use method {@link #addReverseAssociation(org.nuiton.eugene.models.object.ObjectModelAttribute,java.lang.String, int, int, org.nuiton.eugene.models.object.ObjectModelModifier...)}
+ * to create attribute association for classifierB.
+ *
+ * @param classifierA classifier from
+ * @param classifierB classifier to
+ * @param roleName role of A in association
+ * @param minMultiplicity minimum multiplicity of A in association
+ * @param maxMultiplicity maximum multiplicity of A in association
+ * @param modifiers for the association
+ * @return the attribute corresponding to the association for classifierA
+ * @throws IllegalArgumentException illegal modifier
+ */
+ public ObjectModelAttribute addAssociation(ObjectModelClassifier classifierA, ObjectModelClassifier classifierB, String roleName,
+ int minMultiplicity, int maxMultiplicity, ObjectModelModifier... modifiers)
+ throws IllegalArgumentException {
+
+ ObjectModelAttributeImpl attribute = new ObjectModelAttributeImpl();
+
+ attribute.setName(roleName);
+ attribute.setMinMultiplicity(minMultiplicity);
+ attribute.setMaxMultiplicity(maxMultiplicity);
+ attribute.setType(classifierB.getQualifiedName());
+
+ for (ObjectModelModifier modifier : modifiers) {
+
+ if (modifier.isVisibility()) {
+ attribute.setVisibility(modifier.toString());
+ } else if (modifier.isAssociationType()) {
+ attribute.setAssociationType(modifier.toString());
+ } else {
+ switch (modifier) {
+ case ORDERED:
+ attribute.setOrdering(modifier.toString());
+ break;
+ case UNIQUE:
+ attribute.setUnique(true);
+ break;
+ case STATIC:
+ attribute.setStatic(true);
+ break;
+ case NAVIGABLE:
+ attribute.setNavigable(true);
+ break;
+ default:
+ throw new IllegalArgumentException("Unsupported modifier type '" + modifier.name() + "'");
+ }
+ }
+ }
+ ObjectModelClassifierImpl impl = (ObjectModelClassifierImpl) classifierA;
+ impl.addAttribute(attribute);
+ return attribute;
+ }
+
+ /**
+ * Create reverse association from an other association.
+ * MODIFIERS allowed : PUBLIC, PRIVATE, PACKAGE, PROTECTED, AGGREGATE, COMPOSITE, ORDERED, UNIQUE
+ * STATIC, NAVIGABLE.
+ *
+ * @param attrAssociation other association A to B
+ * @param roleName role of B in association
+ * @param minMultiplicity minimum multiplicity of B in association
+ * @param maxMultiplicity maximum multiplicity of B in association
+ * @param modifiers for the association
+ * @return the attribute corresponding to the association for classifierB
+ * @see #addAssociation(org.nuiton.eugene.models.object.ObjectModelClassifier, org.nuiton.eugene.models.object.ObjectModelClassifier,java.lang.String, int, int, org.nuiton.eugene.models.object.ObjectModelModifier...)
+ */
+ public ObjectModelAttribute addReverseAssociation(ObjectModelAttribute attrAssociation, String roleName,
+ int minMultiplicity, int maxMultiplicity, ObjectModelModifier... modifiers) {
+
+ ObjectModelAttributeImpl associationA = (ObjectModelAttributeImpl) attrAssociation;
+ // Add reverse parameters
+ associationA.setReverseAttributeName(roleName);
+ associationA.setReverseMaxMultiplicity(maxMultiplicity);
+
+ ObjectModelClassifierImpl classifierA =
+ (ObjectModelClassifierImpl) associationA.getDeclaringElement();
+
+ String typeB = associationA.getType();
+ // Get classifierB from model
+ ObjectModelClassifierImpl classifierB = (ObjectModelClassifierImpl) model.getClassifier(typeB);
+
+ // Create reverse association
+ ObjectModelAttributeImpl associationB =
+ (ObjectModelAttributeImpl) addAssociation(classifierB, classifierA, roleName,
+ minMultiplicity, maxMultiplicity, modifiers);
+
+ associationB.setReverseAttributeName(associationA.getName());
+ associationB.setReverseMaxMultiplicity(associationA.getMaxMultiplicity());
+
+ return associationB;
+ }
+
+ /**
+ * Create association class. The two extremities of the association must be existing before creating
+ * the association class.
+ * Modifiers allowed : ABSTRACT, STATIC.
+ *
+ * @param name association class name
+ * @param packageName association package name
+ * @param attrAssociationA attribute association for classifierA involved in association class
+ * @param attrAssociationB attribute association for classifierB involved in association class
+ * @param modifiers for the association class
+ * @return the new association class created with participants A and B
+ */
+ public ObjectModelAssociationClass createAssociationClass(String name, String packageName, ObjectModelAttribute attrAssociationA,
+ ObjectModelAttribute attrAssociationB, ObjectModelModifier... modifiers) {
+
+ ObjectModelAssociationClassImpl associationClass = new ObjectModelAssociationClassImpl();
+ createClass(associationClass, name, packageName, modifiers);
+
+ // Add associationClass in attrAssociationA
+ ObjectModelAttributeImpl attrA = (ObjectModelAttributeImpl) attrAssociationA;
+ attrA.setAssociationClassName(associationClass.getQualifiedName());
+
+ // Add associationClass in attrAssociationB
+ ObjectModelAttributeImpl attrB = (ObjectModelAttributeImpl) attrAssociationB;
+ attrB.setAssociationClassName(associationClass.getQualifiedName());
+
+ // Create participantA
+ ObjectModeImplAssociationClassParticipant participantA =
+ new ObjectModeImplAssociationClassParticipant();
+
+ participantA.setAttribute(attrA.getName());
+ ObjectModelClassifier classifierA = (ObjectModelClassifier) attrA.getDeclaringElement();
+ participantA.setName(classifierA.getQualifiedName());
+
+ associationClass.addParticipant(participantA);
+
+ // Create participantB
+ ObjectModeImplAssociationClassParticipant participantB =
+ new ObjectModeImplAssociationClassParticipant();
+
+ participantB.setAttribute(attrB.getName());
+ ObjectModelClassifier classifierB = (ObjectModelClassifier) attrB.getDeclaringElement();
+ participantB.setName(classifierB.getQualifiedName());
+
+ associationClass.addParticipant(participantB);
+
+ return associationClass;
+ }
+
+ /**
+ * Add an operation to a classifier.
+ * Modifiers allowed : STATIC, ABSTRACT, PUBLIC, PRIVATE, PROTECTED, PACKAGE.
+ * The last visibility set will be keeped.
+ *
+ * @param classifier where the operation will be added
+ * @param name operation name
+ * @param returnType operation type (full qualified name)
+ * @param modifiers operation modifiers
+ * @return the new ObjectModelOperation added
+ * @throws IllegalArgumentException illegal Modifier
+ */
+ public ObjectModelOperation addOperation(ObjectModelClassifier classifier,
+ String name, String returnType, ObjectModelModifier... modifiers)
+ throws IllegalArgumentException {
+ ObjectModelOperationImpl result = new ObjectModelOperationImpl();
+ result.setName(name);
+
+ if (returnType != null) {
+ ObjectModelParameterImpl returnParameter = new ObjectModelParameterImpl();
+ returnParameter.setType(returnType);
+ result.setReturnParameter(returnParameter);
+ }
+
+ for (ObjectModelModifier modifier : modifiers) {
+ if (modifier.isVisibility()) {
+ result.setVisibility(modifier.toString());
+ } else {
+ switch (modifier) {
+ case STATIC:
+ result.setStatic(true);
+ break;
+ case ABSTRACT:
+ result.setAbstract(true);
+ break;
+ default:
+ throw new IllegalArgumentException("Unsupported modifier type '" + modifier.name() + "'");
+ }
+ }
+ }
+
+ ((ObjectModelClassifierImpl) classifier).addOperation(result);
+ return result;
+ }
+
+ /**
+ * Set the body code for an Operation.
+ *
+ * @param operation where the code will be added
+ * @param body code to add to the operation
+ */
+ public void setOperationBody(ObjectModelOperation operation, String body) {
+ ObjectModelOperationImpl operationImpl = (ObjectModelOperationImpl) operation;
+ operationImpl.setBodyCode(body);
+ }
+
+ /**
+ * Add an interface to a classifier. The interface may not exist in model.
+ *
+ * @param classifier where the interface will be added
+ * @param interfaceQualifiedName interface qualified name
+ */
+ public void addInterface(ObjectModelClassifier classifier, String interfaceQualifiedName) {
+ ObjectModelClassifierImpl impl = (ObjectModelClassifierImpl) classifier;
+
+ ObjectModelImplRef interfacez = new ObjectModelImplRef();
+ interfacez.setName(interfaceQualifiedName);
+
+ impl.addInterface(interfacez);
+ }
+
+ /**
+ * Add a superclass to an other class. The superclass may not exist in model.
+ *
+ * @param clazz where the superclass will be added
+ * @param superclassQualifiedName superclass qualified name
+ */
+ public void addSuperclass(ObjectModelClass clazz, String superclassQualifiedName) {
+ ObjectModelClassImpl impl = (ObjectModelClassImpl) clazz;
+
+ ObjectModelImplSuperClassRef superclass = new ObjectModelImplSuperClassRef();
+ superclass.setName(superclassQualifiedName);
+
+ impl.addSuperclass(superclass);
+ }
+
+ /**
+ * Add a superclass to an other class. The superclass may not exist in model.
+ *
+ * @param clazz where the superclass will be added
+ * @param type type of inner classifier to create
+ * @param name superclass qualified name
+ * @return the new instanciated inner classifier
+ * @throws IllegalArgumentException if given {@code type} is not a concrete classifier type
+ */
+ public ObjectModelClassifier addInnerClassifier(ObjectModelClass clazz, ObjectModelType type, String name) throws IllegalArgumentException {
+ ObjectModelClassImpl impl = (ObjectModelClassImpl) clazz;
+ ObjectModelClassifierImpl inner;
+ switch (type) {
+
+ case OBJECT_MODEL_ENUMERATION:
+ inner = new ObjectModelEnumerationImpl();
+ break;
+ case OBJECT_MODEL_CLASS:
+ inner = new ObjectModelClassImpl();
+ break;
+ case OBJECT_MODEL_INTERFACE:
+ inner = new ObjectModelInterfaceImpl();
+ break;
+ default:
+ throw new IllegalArgumentException("can not add a none classifier type " + type);
+ }
+ inner.setName(name);
+ inner.setPackage(clazz.getPackageName() + "." + clazz.getName());
+ inner.postInit();
+ impl.addInnerClassifier(inner);
+ inner.setObjectModelImpl(impl.getModel());
+ return inner;
+ }
+
+ /**
+ * Add a parameter to an operation.
+ *
+ * @param operation where the parameter will be added
+ * @param type paremeter type (full qualified name)
+ * @param name parameter name
+ * @return the new ObjectModelParameter added
+ */
+ public ObjectModelParameter addParameter(ObjectModelOperation operation, String type, String name) {
+ ObjectModelOperationImpl impl = (ObjectModelOperationImpl) operation;
+ ObjectModelParameterImpl param = new ObjectModelParameterImpl();
+ param.setType(type);
+ param.setName(name);
+ impl.addParameter(param);
+ return param;
+ }
+
+ /**
+ * Add an exception to an operation.
+ *
+ * @param operation where the exception will be added
+ * @param exception name of the exception (full qualified name)
+ */
+ public void addException(ObjectModelOperation operation, String exception) {
+ ObjectModelOperationImpl impl = (ObjectModelOperationImpl) operation;
+ ObjectModelParameterImpl param = new ObjectModelParameterImpl();
+ param.setType(exception);
+ impl.addExceptionParameter(param);
+ }
+
+ /**
+ * Set the documentation of an element in the model.
+ *
+ * @param element where the documentation will be setted
+ * @param documentation String documentation for the element
+ */
+ public void setDocumentation(ObjectModelElement element, String documentation) {
+ ObjectModelElementImpl impl = (ObjectModelElementImpl) element;
+ impl.setDocumentation(documentation);
+ }
+
+ /**
+ * Add a stereotype to an element.
+ *
+ * @param element where the stereotype will be added
+ * @param stereotype name
+ */
+ public void addStereotype(ObjectModelElement element, String stereotype) {
+ ObjectModelElementImpl impl = (ObjectModelElementImpl) element;
+ ObjectModelImplRef ref = new ObjectModelImplRef();
+ ref.setName(stereotype);
+ impl.addStereotype(ref);
+ }
+
+ public void addLiteral(ObjectModelEnumeration enumz, String name) {
+ ObjectModelEnumerationImpl impl = (ObjectModelEnumerationImpl) enumz;
+ ObjectModelImplRef ref = new ObjectModelImplRef();
+ ref.setName(name);
+ impl.addLiteral(ref);
+ }
+}
Property changes on: trunk/eugene/src/main/java/org/nuiton/eugene/models/object/ObjectModelBuilder.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Revision
Copied: trunk/eugene/src/main/java/org/nuiton/eugene/models/object/ObjectModelGenerator.java (from rev 769, trunk/eugene/src/main/java/org/nuiton/eugene/ObjectModelGenerator.java)
===================================================================
--- trunk/eugene/src/main/java/org/nuiton/eugene/models/object/ObjectModelGenerator.java (rev 0)
+++ trunk/eugene/src/main/java/org/nuiton/eugene/models/object/ObjectModelGenerator.java 2009-12-20 16:27:20 UTC (rev 777)
@@ -0,0 +1,348 @@
+/* *##%
+ * EUGene :: EUGene
+ * Copyright (C) 2004 - 2009 CodeLutin
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation, either version 3 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 Lesser Public License for more details.
+ *
+ * You should have received a copy of the GNU General Lesser Public
+ * License along with this program. If not, see
+ * <http://www.gnu.org/licenses/lgpl-3.0.html>.
+ * ##%*/
+
+package org.nuiton.eugene.models.object;
+
+import java.io.File;
+import java.io.IOException;
+import java.io.StringWriter;
+import java.io.Writer;
+import java.util.Collection;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.nuiton.eugene.AbstractGenerator;
+import org.nuiton.eugene.MonitorWriter;
+import org.nuiton.eugene.models.object.ObjectModel;
+import org.nuiton.eugene.models.object.ObjectModelClass;
+import org.nuiton.eugene.models.object.ObjectModelClassifier;
+import org.nuiton.eugene.models.object.ObjectModelElement;
+import org.nuiton.eugene.models.object.ObjectModelEnumeration;
+import org.nuiton.eugene.models.object.ObjectModelInterface;
+
+/**
+ * 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é.
+ *
+ * <pre>
+ * 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 .... {
+ *
+ * }
+ * }* /
+ * }
+ * }
+ * </pre>
+ *
+ * Le nom de l'argument writer doit absolument etre output et pas autre chose si
+ * vous souhaitez utiliser le processeur
+ * org.codelutin.processor.filters.GeneratorTemplatesFilter pour vous
+ * s'implifier l'écriture des templates.
+ *
+ * Created: 14 mars 2004
+ *
+ * @author Benjamin Poussin <poussin(a)codelutin.com> Copyright Code Lutin
+ *
+ * @version $Revision$
+ *
+ * Mise a jour: $Date$ par : $Author$
+ */
+public class ObjectModelGenerator extends AbstractGenerator<ObjectModel> {
+
+ /** Logger for this class. */
+ private static Log log = LogFactory.getLog(ObjectModelGenerator.class);
+
+ public ObjectModelGenerator() {
+ super();
+ }
+
+ public ObjectModelGenerator(AbstractGenerator<ObjectModel> parent) {
+ super(parent);
+ }
+
+ @Override
+ @Deprecated
+ public void generate(File[] files, File destDir) {
+ ObjectModelReader reader = new ObjectModelReader();
+ ObjectModel objectModel = reader.read(files);
+ setLastModifiedSource(reader.getLastModifiedSource());
+ try {
+ applyTemplate(objectModel, destDir);
+ } catch (IOException eee) {
+ 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)} puis boucle sur chaque
+ * interface en appelant a méthode
+ * {@link #generateFromInterface(Writer, ObjectModelInterface)} et enfin sur chaque
+ * énumération en appelant la méthode
+ * {@link #generateFromEnumeration(Writer, ObjectModelEnumeration)}
+ * 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é.
+ * @param model le modele memoire a utiliser
+ * @param destDir le repertoire ou generer
+ * @throws IOException pour tout pb
+ */
+ @Override
+ public void applyTemplate(ObjectModel model, File destDir) throws IOException {
+
+ // generateFromModel
+ this.model = model;
+
+ String filename = getFilenameForModel(model);
+
+ // generateFromModel
+ generateFromElement(model, destDir, filename, ObjectModelType.OBJECT_MODEL);
+
+ // generateFromClassifier
+ generateFromElements(model.getClassifiers(), destDir, ObjectModelType.OBJECT_MODEL_CLASSIFIER);
+
+ // generateFromInterface
+ generateFromElements(model.getInterfaces(), destDir, ObjectModelType.OBJECT_MODEL_INTERFACE);
+
+ // generateFromClass
+ generateFromElements(model.getClasses(), destDir, ObjectModelType.OBJECT_MODEL_CLASS);
+
+ // generateFromEnumeration
+ generateFromElements(model.getEnumerations(), destDir, ObjectModelType.OBJECT_MODEL_ENUMERATION);
+
+ }
+
+ /**
+ * Parcours une collection d'éléments pour la génération suivant un type d'éléments.
+ * Types possibles : ObjectModelClassifier, ObjectModelClass, ObjectModelInterface et
+ * ObjectModelEnumeration.
+ * Deux méthodes dépendent du type et peuvent être surchargées :
+ * getFilenameForXXX et generateFromXXX (XXX étant un type prédéfini pour une méthode existante).
+ *
+ * @see ObjectModelType
+ *
+ * @param elements Collection d'éléments d'un des types ci-dessus
+ * @param destDir dossier de destination pour le fichier généré
+ * @param type type explicite d'ObjectModel
+ */
+ private void generateFromElements(Collection<? extends ObjectModelElement> elements, File destDir,
+ ObjectModelType type) {
+
+ for (ObjectModelElement element : elements) {
+ String filename = "";
+ // Filename depends on type of element (Classifier, Class, Interface or Enumeration)
+ switch (type) {
+ case OBJECT_MODEL_CLASSIFIER:
+ filename = getFilenameForClassifier((ObjectModelClassifier)element);
+ break;
+ case OBJECT_MODEL_INTERFACE:
+ filename = getFilenameForInterface((ObjectModelInterface)element);
+ break;
+ case OBJECT_MODEL_CLASS:
+ filename = getFilenameForClass((ObjectModelClass)element);
+ break;
+ case OBJECT_MODEL_ENUMERATION:
+ filename = getFilenameForEnumeration((ObjectModelEnumeration)element);
+ }
+
+ generateFromElement(element, destDir, filename, type);
+ }
+ }
+
+ /**
+ * Génération pour un élément du modèle (ou le modèle lui-même).
+ * Types possibles : ObjectModel, ObjectModelClassifier, ObjectModelClass,
+ * ObjectModelInterface et ObjectModelEnumeration.
+ * La méthode generateFromXXX dépend du type d'élément et peut être surchargée.
+ *
+ * @see ObjectModelType
+ *
+ * @param element element à généré
+ * @param destDir dossier de destination
+ * @param filename nom du fichier de sortie
+ * @param type type d'ObjectModel
+ */
+ protected void generateFromElement(Object element, File destDir, String filename,
+ ObjectModelType type) {
+
+ // on a maintenant une restriction des elements a generer
+ // c'est à dire un filtrage par package
+ // effectue un appel pour savoir si on a le droit de generer l'element
+ // courant
+ if (canGenerateElement(element)) {
+
+ File outputFile = getDestinationFile(destDir, filename);
+ if (!getOverwrite() && isNewerThanSource(outputFile)) {
+ if (log.isTraceEnabled()) {
+ log.trace("file " + outputFile + " is up-to-date");
+ }
+ return;
+ }
+ if (!outputFile.exists() && log.isTraceEnabled()) {
+ log.trace("not up-to-date " + outputFile.lastModified()
+ + " <" + outputFile + ">");
+ }
+ try {
+ StringWriter out = new StringWriter();
+ MonitorWriter monitorOut = new MonitorWriter(out);
+
+ switch (type) {
+ case OBJECT_MODEL:
+ generateFromModel(monitorOut,(ObjectModel)element);
+ break;
+ case OBJECT_MODEL_CLASSIFIER:
+ generateFromClassifier(monitorOut, (ObjectModelClassifier)element);
+ break;
+ case OBJECT_MODEL_INTERFACE:
+ generateFromInterface(monitorOut, (ObjectModelInterface)element);
+ break;
+ case OBJECT_MODEL_CLASS:
+ generateFromClass(monitorOut, (ObjectModelClass)element);
+ break;
+ case OBJECT_MODEL_ENUMERATION:
+ generateFromEnumeration(monitorOut, (ObjectModelEnumeration)element);
+ break;
+ }
+
+ 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);
+ }
+ }
+ }
+
+ /**
+ * Test if given element can be generated.
+ *
+ * An element can be generated if his package is in the {@link #generatedPackages} list
+ * or if {@link #generatedPackages} is null or empty.
+ *
+ * @param element element to test
+ * @return generation allowed
+ */
+ protected boolean canGenerateElement(Object element) {
+
+ boolean canGenerate = true;
+
+ // can get package only for Classifiers
+ if (element instanceof ObjectModelClassifier) {
+ ObjectModelClassifier classifier = (ObjectModelClassifier)element;
+ String classifierPackage = classifier.getPackageName();
+
+ canGenerate = super.canGeneratePackage(classifierPackage);
+ }
+
+ return canGenerate;
+ }
+
+ /**
+ * Par defaut cette methode retourne le getName du model. Si l'on souhaite
+ * utiliser la methode generateFromModel il vaut mieux surcharger cette
+ * methode
+ * @param model le modele utilise
+ * @return le nom du fichier a generer
+ */
+ public String getFilenameForModel(ObjectModel model) {
+ // TODO throw exception when model.getName() == null or empty
+ return model.getName();
+ }
+
+ /**
+ * Par defaut cette methode retourne le QualifiedName convertie en chemin
+ * par exemple pour org.codelutin.Toto on aurait org/codelutin/Toto
+ * @param model le modele utilise
+ * @param packageName le nom du paquetage
+ * @return le repertoire correspondant au paquetage
+ */
+ 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
+ * @param interfacez l'interface utilisee
+ * @return le nom du l'interface a generer
+ */
+ public String getFilenameForInterface(ObjectModelInterface interfacez) {
+ return getFilenameForClassifier(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
+ * @param clazz la classe utilisee
+ * @return le nom de la classe a generer
+ */
+ public String getFilenameForClass(ObjectModelClass clazz) {
+ return getFilenameForClassifier(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
+ * @param classifier le classifier utilisee
+ * @return le nom du classifier a generer
+ */
+ public String getFilenameForClassifier(ObjectModelClassifier classifier) {
+ return classifier.getQualifiedName().replace('.', File.separatorChar);
+ }
+
+ public String getFilenameForEnumeration(ObjectModelEnumeration enumeration) {
+ return getFilenameForClassifier(enumeration);
+// return enumeration.getQualifiedName().replace('.', File.separatorChar);
+ }
+
+ public void generateFromModel(Writer output, ObjectModel model) throws IOException {
+ }
+
+ public void generateFromInterface(Writer output, ObjectModelInterface interfacez) throws IOException {
+ }
+
+ public void generateFromEnum(Writer output, ObjectModelEnumeration interfacez) throws IOException {
+ }
+
+ public void generateFromClass(Writer output, ObjectModelClass clazz) throws IOException {
+ }
+
+ public void generateFromClassifier(Writer output, ObjectModelClassifier clazz) throws IOException {
+ }
+
+ public void generateFromEnumeration(Writer output, ObjectModelEnumeration enumeration) throws IOException {
+ }
+}
Property changes on: trunk/eugene/src/main/java/org/nuiton/eugene/models/object/ObjectModelGenerator.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision
Added: svn:eol-style
+ native
Copied: trunk/eugene/src/main/java/org/nuiton/eugene/models/object/ObjectModelReader.java (from rev 769, trunk/eugene/src/main/java/org/nuiton/eugene/ObjectModelReader.java)
===================================================================
--- trunk/eugene/src/main/java/org/nuiton/eugene/models/object/ObjectModelReader.java (rev 0)
+++ trunk/eugene/src/main/java/org/nuiton/eugene/models/object/ObjectModelReader.java 2009-12-20 16:27:20 UTC (rev 777)
@@ -0,0 +1,245 @@
+/*
+ * *##%
+ * EUGene :: EUGene
+ * Copyright (C) 2004 - 2009 CodeLutin
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation, either version 3 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 Lesser Public License for more details.
+ *
+ * You should have received a copy of the GNU General Lesser Public
+ * License along with this program. If not, see
+ * <http://www.gnu.org/licenses/lgpl-3.0.html>.
+ * ##%*
+ */
+
+package org.nuiton.eugene.models.object;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Enumeration;
+import java.util.List;
+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.nuiton.eugene.ModelReader;
+import org.nuiton.eugene.models.object.ObjectModel;
+import org.nuiton.eugene.models.object.ObjectModelClass;
+import org.nuiton.eugene.models.object.ObjectModelClassifier;
+import org.nuiton.eugene.models.object.ObjectModelElement;
+import org.nuiton.eugene.models.object.xml.DigesterObjectModelRuleSet;
+import org.nuiton.eugene.models.object.xml.ObjectModelClassifierImpl;
+import org.nuiton.eugene.models.object.xml.ObjectModelElementImpl;
+import org.nuiton.eugene.models.object.xml.ObjectModelImpl;
+import org.nuiton.eugene.models.object.xml.ObjectModelImplRef;
+import org.nuiton.eugene.models.object.xml.ObjectModelImplTagValue;
+import org.nuiton.util.FileUtil;
+import org.nuiton.util.RecursiveProperties;
+import org.nuiton.util.StringUtil;
+import org.xml.sax.SAXException;
+
+/**
+ * To read object model files into an memory object model.
+ *
+ * Created: 26 oct. 2009
+ *
+ * @author fdesbois
+ * @version $Revision$
+ *
+ * Mise a jour: $Date$
+ * par : $Author$
+ *
+ * @plexus.component role="org.nuiton.eugene.ModelReader" role-hint="objectmodel"
+ */
+public class ObjectModelReader extends ModelReader<ObjectModel> {
+
+ private static final Log log = LogFactory.getLog(ObjectModelReader.class);
+
+ /**
+ * L'expression réguliere match les chaines de type
+ * <package.ClassName>.<class|attribute|operation>.[name].<stereotype|tagvalue>.[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=...
+ */
+ protected Pattern propertiesPattern = Pattern
+ .compile("((?:[_a-zA-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]*)?");
+
+
+ /**
+ * @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
+ */
+ @Override
+ public ObjectModel read(File[] files) {
+ setLastModifiedSource(files);
+ ObjectModel objectModel = new ObjectModelImpl();
+
+ // Digester parser configuration
+ Digester digester = new Digester();
+ digester.addRuleSet(new DigesterObjectModelRuleSet());
+
+ for (File file : files) {
+ try {
+ digester.push(objectModel);
+ objectModel = (ObjectModel) digester.parse(file);
+ } catch (IOException e) {
+ log.warn("Unable to parse ObjectModel input file : " + file, e);
+ } catch (SAXException e) {
+ log.warn("Unable to parse ObjectModel input file : " + file, e);
+ }
+
+ // recherche est charge le fichier propriete associe au modele
+ File dir = file.getParentFile();
+ String ext = FileUtil.extension(file);
+ String name = FileUtil.basename(file, "." + 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<Object> e = prop.keys(); e.hasMoreElements();) {
+ String key = (String) e.nextElement();
+ String value = prop.getProperty(key);
+
+ 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.setName(tag);
+ tagvalue.setValue(value);
+ ((ObjectModelImpl) objectModel)
+ .addTagValue(tagvalue);
+ }
+ } else {
+
+ 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 + "' => "
+ + "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é
+ List<ObjectModelElement> elems = new ArrayList<ObjectModelElement>();
+ if ("class".equals(target)) {
+ elems.add(omc);
+ } else if ("attribute".equals(target)) {
+ ObjectModelClass classmodel = (ObjectModelClass) omc;
+ elems.add(classmodel
+ .getAttribute(targetName));
+ } else if ("operation".equals(target)) {
+ elems.addAll(omc.getOperations(targetName));
+ }
+ 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;
+ }
+
+ 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");
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ if (log.isDebugEnabled()) {
+ for (ObjectModelClass m : objectModel.getClasses()) {
+ log.debug("loaded class in objectmodel : " + m.getName());
+ }
+ }
+ return objectModel;
+ /*try {
+ generate(objectModel, destDir);
+ } catch (IOException eee) {
+ if (log.isWarnEnabled()) {
+ log.warn("Unable to generate for file", eee);
+ }
+ }*/
+ }
+}
Property changes on: trunk/eugene/src/main/java/org/nuiton/eugene/models/object/ObjectModelReader.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Revision
Copied: trunk/eugene/src/main/java/org/nuiton/eugene/models/object/ObjectModelTransformer.java (from rev 769, trunk/eugene/src/main/java/org/nuiton/eugene/ObjectModelTransformer.java)
===================================================================
--- trunk/eugene/src/main/java/org/nuiton/eugene/models/object/ObjectModelTransformer.java (rev 0)
+++ trunk/eugene/src/main/java/org/nuiton/eugene/models/object/ObjectModelTransformer.java 2009-12-20 16:27:20 UTC (rev 777)
@@ -0,0 +1,148 @@
+/*
+ * *##%
+ * EUGene :: EUGene
+ * Copyright (C) 2004 - 2009 CodeLutin
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation, either version 3 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 Lesser Public License for more details.
+ *
+ * You should have received a copy of the GNU General Lesser Public
+ * License along with this program. If not, see
+ * <http://www.gnu.org/licenses/lgpl-3.0.html>.
+ * ##%*
+ */
+package org.nuiton.eugene.models.object;
+
+import org.nuiton.eugene.Transformer;
+import org.nuiton.eugene.models.Model;
+
+import java.util.Collection;
+
+/**
+ * ObjectModelTransformer
+ * <p/>
+ * Created: 28 oct. 2009
+ *
+ *
+ * L'initialisation du modèle de sortie et du générateur de sortie associée,
+ * se fait dans la superclass grâce à la méthode init.
+ *
+ * @author fdesbois
+ * @version $Revision$
+ * <p/>
+ * Mise a jour: $Date$
+ * par : $Author$
+ * @param <O>
+ */
+public abstract class ObjectModelTransformer<O extends Model> extends Transformer<ObjectModel, O> {
+
+ /**
+ * Le model associé au transformer est le model d'entree. Le modele de sortie
+ * peut etre initialiser via la methode {@link org.nuiton.eugene.Transformer#initOutputModel()}.
+ * Il est également possible de surcharger la methode {@link #debugOutputModel()}
+ * pour verifier le resultat de la transformation.
+ * Par defaut la methode appelle la methode
+ * {@link #transformFromModel(ObjectModel)} puis boucle sur chaque
+ * class en appelant la methode
+ * {@link #transformFromClass(ObjectModelClass)} puis boucle sur chaque
+ * interface en appelant a methode
+ * {@link #transformFromInterface(ObjectModelInterface)} et enfin sur chaque
+ * enumeration en appelant la methode
+ * {@link #transformFromEnumeration(ObjectModelEnumeration)}
+ */
+ @Override
+ public void transform() {
+
+ // transformFromModel
+ transformFromElement(getModel(), ObjectModelType.OBJECT_MODEL);
+
+ // transformFromClassifier
+ transformFromElements(getModel().getClassifiers(), ObjectModelType.OBJECT_MODEL_CLASSIFIER);
+
+ // transformFromInterface
+ transformFromElements(getModel().getInterfaces(), ObjectModelType.OBJECT_MODEL_INTERFACE);
+
+ // transformFromClass
+ transformFromElements(getModel().getClasses(), ObjectModelType.OBJECT_MODEL_CLASS);
+
+ // transformFromEnumeration
+ transformFromElements(getModel().getEnumerations(), ObjectModelType.OBJECT_MODEL_ENUMERATION);
+
+ debugOutputModel();
+ }
+
+ protected abstract void debugOutputModel();
+
+ /**
+ * Parcours une collection d'éléments pour la transformation suivant un type d'éléments.
+ * Types possibles : ObjectModelClassifier, ObjectModelClass, ObjectModelInterface et
+ * ObjectModelEnumeration.
+ * Une méthode dépend du type et peut être surchargée :
+ * transformFromXXX (XXX étant un type prédéfini pour une méthode existante).
+ *
+ * @param elements Collection d'éléments d'un des types ci-dessus
+ * @param type type explicite d'ObjectModel
+ * @see ObjectModelType
+ */
+ private void transformFromElements(Collection<? extends ObjectModelElement> elements,
+ ObjectModelType type) {
+
+ for (ObjectModelElement element : elements) {
+ transformFromElement(element, type);
+ }
+ }
+
+ /**
+ * Génération pour un élément du modèle (ou le modèle lui-même).
+ * Types possibles : ObjectModel, ObjectModelClassifier, ObjectModelClass,
+ * ObjectModelInterface et ObjectModelEnumeration.
+ * La méthode transformFromXXX dépend du type d'élément et peut être surchargée.
+ *
+ * @param element element à généré
+ * @param type type d'ObjectModel
+ * @see ObjectModelType
+ */
+ protected void transformFromElement(Object element, ObjectModelType type) {
+
+ switch (type) {
+ case OBJECT_MODEL:
+ transformFromModel((ObjectModel) element);
+ break;
+ case OBJECT_MODEL_CLASSIFIER:
+ transformFromClassifier((ObjectModelClassifier) element);
+ break;
+ case OBJECT_MODEL_INTERFACE:
+ transformFromInterface((ObjectModelInterface) element);
+ break;
+ case OBJECT_MODEL_CLASS:
+ transformFromClass((ObjectModelClass) element);
+ break;
+ case OBJECT_MODEL_ENUMERATION:
+ transformFromEnumeration((ObjectModelEnumeration) element);
+ break;
+ }
+ }
+
+ public void transformFromModel(ObjectModel model) {
+ }
+
+ public void transformFromInterface(ObjectModelInterface interfacez) {
+ }
+
+ public void transformFromClass(ObjectModelClass clazz) {
+ }
+
+ public void transformFromClassifier(ObjectModelClassifier clazz) {
+ }
+
+ public void transformFromEnumeration(ObjectModelEnumeration enumeration) {
+ }
+
+}
Property changes on: trunk/eugene/src/main/java/org/nuiton/eugene/models/object/ObjectModelTransformer.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Revision
Copied: trunk/eugene/src/main/java/org/nuiton/eugene/models/object/ObjectModelType.java (from rev 769, trunk/eugene/src/main/java/org/nuiton/eugene/ObjectModelType.java)
===================================================================
--- trunk/eugene/src/main/java/org/nuiton/eugene/models/object/ObjectModelType.java (rev 0)
+++ trunk/eugene/src/main/java/org/nuiton/eugene/models/object/ObjectModelType.java 2009-12-20 16:27:20 UTC (rev 777)
@@ -0,0 +1,54 @@
+/* *##%
+ * EUGene :: EUGene
+ * Copyright (C) 2004 - 2009 CodeLutin
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation, either version 3 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 Lesser Public License for more details.
+ *
+ * You should have received a copy of the GNU General Lesser Public
+ * License along with this program. If not, see
+ * <http://www.gnu.org/licenses/lgpl-3.0.html>.
+ * ##%*/
+
+package org.nuiton.eugene.models.object;
+
+/**
+ * Enumeration for ObjectModelGenerator.
+ * Contains all types available for generating specific ObjectModelElement file.
+ * Needed because of inheritance between class, interface and classifier.
+ * Method instanceof (previously used) is inadequat so expliciting the ObjectModel type is much better.
+ * <p/>
+ * Created: may 4th 2009
+ *
+ * @author Florian DESBOIS <fdesbois(a)codelutin.com>
+ * @version $Revision: 496 $
+ */
+public enum ObjectModelType {
+ /**
+ * a model
+ */
+ OBJECT_MODEL,
+ /**
+ * an enumration
+ */
+ OBJECT_MODEL_ENUMERATION,
+ /**
+ * a generic classifier
+ */
+ OBJECT_MODEL_CLASSIFIER,
+ /**
+ * a class
+ */
+ OBJECT_MODEL_CLASS,
+ /**
+ * an interface
+ */
+ OBJECT_MODEL_INTERFACE
+}
Modified: trunk/eugene/src/main/java/org/nuiton/eugene/models/object/xml/ObjectModelAttributeImpl.java
===================================================================
--- trunk/eugene/src/main/java/org/nuiton/eugene/models/object/xml/ObjectModelAttributeImpl.java 2009-12-20 14:45:41 UTC (rev 776)
+++ trunk/eugene/src/main/java/org/nuiton/eugene/models/object/xml/ObjectModelAttributeImpl.java 2009-12-20 16:27:20 UTC (rev 777)
@@ -150,8 +150,7 @@
ObjectModelAttribute reverseAttribute = null;
ObjectModelClassifier classifier = getClassifier();
if (classifier instanceof ObjectModelClass) {
- reverseAttribute = ((ObjectModelClass) classifier)
- .getAttribute(getReverseAttributeName());
+ reverseAttribute = classifier.getAttribute(getReverseAttributeName());
}
return reverseAttribute;
}
Deleted: trunk/eugene/src/main/java/org/nuiton/eugene/models/object/xml/ObjectModelBuilder.java
===================================================================
--- trunk/eugene/src/main/java/org/nuiton/eugene/models/object/xml/ObjectModelBuilder.java 2009-12-20 14:45:41 UTC (rev 776)
+++ trunk/eugene/src/main/java/org/nuiton/eugene/models/object/xml/ObjectModelBuilder.java 2009-12-20 16:27:20 UTC (rev 777)
@@ -1,545 +0,0 @@
-/*
- * *##%
- * EUGene :: EUGene
- * Copyright (C) 2004 - 2009 CodeLutin
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation, either version 3 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 Lesser Public License for more details.
- *
- * You should have received a copy of the GNU General Lesser Public
- * License along with this program. If not, see
- * <http://www.gnu.org/licenses/lgpl-3.0.html>.
- * ##%*
- */
-
-package org.nuiton.eugene.models.object.xml;
-
-import org.nuiton.eugene.ObjectModelType;
-import org.nuiton.eugene.models.object.*;
-
-/**
- * ObjectModelBuilder
- * <p/>
- * Created: 3 nov. 2009
- *
- * @author fdesbois
- * @version $Revision$
- * <p/>
- * Builder to fill an empty ObjectModel. The object model name is important if you want to use the model
- * in generators.
- * <p/>
- * Mise a jour: $Date$
- * par : $Author$
- */
-public class ObjectModelBuilder {
-
- protected ObjectModelImpl model;
-
- /**
- * Constructor. Must have a name for the new model created.
- *
- * @param name model name
- */
- public ObjectModelBuilder(String name) {
- this.model = new ObjectModelImpl();
- this.model.setName(name);
- }
-
- /**
- * Get the building model
- *
- * @return the ObjectModel which is currently built
- */
- public ObjectModel getModel() {
- return this.model;
- }
-
- /**
- * Add a tagValue to the model.
- *
- * @param name tagValue name
- * @param value tagValue value
- */
- public void addTagValue(String name, String value) {
- ObjectModelImplTagValue tagValue = new ObjectModelImplTagValue();
- tagValue.setName(name);
- tagValue.setValue(value);
- model.addTagValue(tagValue);
- }
-
- /**
- * Add a tagValue to an element
- *
- * @param element where the tag value will be added
- * @param name tagValue name
- * @param value tagValue value
- */
- public void addTagValue(ObjectModelElement element, String name, String value) {
- ObjectModelElementImpl impl = (ObjectModelElementImpl) element;
-
- ObjectModelImplTagValue tagValue = new ObjectModelImplTagValue();
- tagValue.setName(name);
- tagValue.setValue(value);
- impl.addTagValue(tagValue);
- }
-
- /**
- * Create a new class in the model.
- * Modifiers allowed : ABSTRACT, STATIC.
- *
- * @param name class name
- * @param packageName class package
- * @param modifiers class modifiers
- * @return the new ObjectModelClass added to the model
- */
- public ObjectModelClass createClass(String name, String packageName, ObjectModelModifier... modifiers) {
- ObjectModelClassImpl result = new ObjectModelClassImpl();
- return createClass(result, name, packageName, modifiers);
- }
-
- protected ObjectModelClass createClass(ObjectModelClassImpl clazz, String name, String packageName, ObjectModelModifier... modifiers)
- throws IllegalArgumentException {
- clazz.setName(name);
- clazz.setPackage(packageName);
- for (ObjectModelModifier modifier : modifiers) {
- switch (modifier) {
- case ABSTRACT:
- clazz.setAbstract(true);
- break;
- case STATIC:
- clazz.setStatic(true);
- break;
- default:
- throw new IllegalArgumentException("Unsupported modifier type '" + modifier.name() + "'");
- }
- }
- model.addClass(clazz);
- return clazz;
- }
-
- /**
- * Create a new interface in the model.
- *
- * @param name interface name
- * @param packageName interface package
- * @return the new ObjectModelInterface added to the model
- */
- public ObjectModelInterface createInterface(String name, String packageName) {
- ObjectModelInterfaceImpl result = new ObjectModelInterfaceImpl();
- result.setName(name);
- result.setPackage(packageName);
- model.addInterface(result);
- return result;
- }
-
- /**
- * Create a new interface in the model.
- *
- * @param name interface name
- * @param packageName interface package
- * @return the new ObjectModelInterface added to the model
- */
- public ObjectModelEnumeration createEnumeration(String name, String packageName) {
- ObjectModelEnumerationImpl result = new ObjectModelEnumerationImpl();
- result.setName(name);
- result.setPackage(packageName);
- model.addEnumeration(result);
- return result;
- }
-
-
- /**
- * Add an attribute to a classifier (interface, class, enum) without default value.
- * Default visibility is set to PUBLIC.
- *
- * @param classifier where the attribute will be added
- * @param name attribute name
- * @param type attribute type (full qualified name)
- * @return the new ObjectModelAttribute added
- */
- public ObjectModelAttribute addAttribute(ObjectModelClassifier classifier, String name, String type) {
- return addAttribute(classifier, name, type, "");
- }
-
- /**
- * Add an attribute to a classifier (interface, class, enum).
- * Modifiers allowed : STATIC, FINAL, PUBLIC, PRIVATE, PROTECTED, PACKAGE, ORDERED, UNIQUE.
- * The last visibility set will be keeped.
- *
- * @param classifier where the attribute will be added
- * @param name attribute name
- * @param type attribute type (full qualified name)
- * @param value default value for the attribute
- * @param modifiers attribute modifiers
- * @return the new ObjectModelAttribute added
- * @throws IllegalArgumentException illegal Modifier
- * @see org.nuiton.eugene.models.object.ObjectModelModifier#isVisibility()
- */
- public ObjectModelAttribute addAttribute(ObjectModelClassifier classifier, String name, String type, String value,
- ObjectModelModifier... modifiers) throws IllegalArgumentException {
- ObjectModelAttributeImpl attribute = new ObjectModelAttributeImpl();
- attribute.setName(name);
- attribute.setType(type);
- attribute.setDefaultValue(value);
-
- for (ObjectModelModifier modifier : modifiers) {
- if (modifier.isVisibility()) {
- attribute.setVisibility(modifier.toString());
- } else {
- switch (modifier) {
- case STATIC:
- attribute.setStatic(true);
- break;
- case FINAL:
- attribute.setFinal(true);
- break;
- case ORDERED:
- attribute.setOrdering(modifier.toString());
- break;
- case UNIQUE:
- attribute.setUnique(true);
- break;
- default:
- throw new IllegalArgumentException("Unsupported modifier type '" + modifier.name() + "'");
- }
- }
- }
-
- ObjectModelClassifierImpl classifierImpl = (ObjectModelClassifierImpl) classifier;
- classifierImpl.addAttribute(attribute);
- return attribute;
- }
-
- /**
- * Add an association A to B. Create only attribute association for classifierA.
- * MODIFIERS allowed : PUBLIC, PRIVATE, PACKAGE, PROTECTED, AGGREGATE, COMPOSITE, ORDERED, UNIQUE
- * STATIC, NAVIGABLE.
- * You have to use method {@link #addReverseAssociation(org.nuiton.eugene.models.object.ObjectModelAttribute,java.lang.String, int, int, org.nuiton.eugene.models.object.ObjectModelModifier...)}
- * to create attribute association for classifierB.
- *
- * @param classifierA classifier from
- * @param classifierB classifier to
- * @param roleName role of A in association
- * @param minMultiplicity minimum multiplicity of A in association
- * @param maxMultiplicity maximum multiplicity of A in association
- * @param modifiers for the association
- * @return the attribute corresponding to the association for classifierA
- * @throws IllegalArgumentException illegal modifier
- */
- public ObjectModelAttribute addAssociation(ObjectModelClassifier classifierA, ObjectModelClassifier classifierB, String roleName,
- int minMultiplicity, int maxMultiplicity, ObjectModelModifier... modifiers)
- throws IllegalArgumentException {
-
- ObjectModelAttributeImpl attribute = new ObjectModelAttributeImpl();
-
- attribute.setName(roleName);
- attribute.setMinMultiplicity(minMultiplicity);
- attribute.setMaxMultiplicity(maxMultiplicity);
- attribute.setType(classifierB.getQualifiedName());
-
- for (ObjectModelModifier modifier : modifiers) {
-
- if (modifier.isVisibility()) {
- attribute.setVisibility(modifier.toString());
- } else if (modifier.isAssociationType()) {
- attribute.setAssociationType(modifier.toString());
- } else {
- switch (modifier) {
- case ORDERED:
- attribute.setOrdering(modifier.toString());
- break;
- case UNIQUE:
- attribute.setUnique(true);
- break;
- case STATIC:
- attribute.setStatic(true);
- break;
- case NAVIGABLE:
- attribute.setNavigable(true);
- break;
- default:
- throw new IllegalArgumentException("Unsupported modifier type '" + modifier.name() + "'");
- }
- }
- }
- ObjectModelClassifierImpl impl = (ObjectModelClassifierImpl) classifierA;
- impl.addAttribute(attribute);
- return attribute;
- }
-
- /**
- * Create reverse association from an other association.
- * MODIFIERS allowed : PUBLIC, PRIVATE, PACKAGE, PROTECTED, AGGREGATE, COMPOSITE, ORDERED, UNIQUE
- * STATIC, NAVIGABLE.
- *
- * @param attrAssociation other association A to B
- * @param roleName role of B in association
- * @param minMultiplicity minimum multiplicity of B in association
- * @param maxMultiplicity maximum multiplicity of B in association
- * @param modifiers for the association
- * @return the attribute corresponding to the association for classifierB
- * @see #addAssociation(org.nuiton.eugene.models.object.ObjectModelClassifier, org.nuiton.eugene.models.object.ObjectModelClassifier,java.lang.String, int, int, org.nuiton.eugene.models.object.ObjectModelModifier...)
- */
- public ObjectModelAttribute addReverseAssociation(ObjectModelAttribute attrAssociation, String roleName,
- int minMultiplicity, int maxMultiplicity, ObjectModelModifier... modifiers) {
-
- ObjectModelAttributeImpl associationA = (ObjectModelAttributeImpl) attrAssociation;
- // Add reverse parameters
- associationA.setReverseAttributeName(roleName);
- associationA.setReverseMaxMultiplicity(maxMultiplicity);
-
- ObjectModelClassifierImpl classifierA =
- (ObjectModelClassifierImpl) associationA.getDeclaringElement();
-
- String typeB = associationA.getType();
- // Get classifierB from model
- ObjectModelClassifierImpl classifierB = (ObjectModelClassifierImpl) model.getClassifier(typeB);
-
- // Create reverse association
- ObjectModelAttributeImpl associationB =
- (ObjectModelAttributeImpl) addAssociation(classifierB, classifierA, roleName,
- minMultiplicity, maxMultiplicity, modifiers);
-
- associationB.setReverseAttributeName(associationA.getName());
- associationB.setReverseMaxMultiplicity(associationA.getMaxMultiplicity());
-
- return associationB;
- }
-
- /**
- * Create association class. The two extremities of the association must be existing before creating
- * the association class.
- * Modifiers allowed : ABSTRACT, STATIC.
- *
- * @param name association class name
- * @param packageName association package name
- * @param attrAssociationA attribute association for classifierA involved in association class
- * @param attrAssociationB attribute association for classifierB involved in association class
- * @param modifiers for the association class
- * @return the new association class created with participants A and B
- */
- public ObjectModelAssociationClass createAssociationClass(String name, String packageName, ObjectModelAttribute attrAssociationA,
- ObjectModelAttribute attrAssociationB, ObjectModelModifier... modifiers) {
-
- ObjectModelAssociationClassImpl associationClass = new ObjectModelAssociationClassImpl();
- createClass(associationClass, name, packageName, modifiers);
-
- // Add associationClass in attrAssociationA
- ObjectModelAttributeImpl attrA = (ObjectModelAttributeImpl) attrAssociationA;
- attrA.setAssociationClassName(associationClass.getQualifiedName());
-
- // Add associationClass in attrAssociationB
- ObjectModelAttributeImpl attrB = (ObjectModelAttributeImpl) attrAssociationB;
- attrB.setAssociationClassName(associationClass.getQualifiedName());
-
- // Create participantA
- ObjectModeImplAssociationClassParticipant participantA =
- new ObjectModeImplAssociationClassParticipant();
-
- participantA.setAttribute(attrA.getName());
- ObjectModelClassifier classifierA = (ObjectModelClassifier) attrA.getDeclaringElement();
- participantA.setName(classifierA.getQualifiedName());
-
- associationClass.addParticipant(participantA);
-
- // Create participantB
- ObjectModeImplAssociationClassParticipant participantB =
- new ObjectModeImplAssociationClassParticipant();
-
- participantB.setAttribute(attrB.getName());
- ObjectModelClassifier classifierB = (ObjectModelClassifier) attrB.getDeclaringElement();
- participantB.setName(classifierB.getQualifiedName());
-
- associationClass.addParticipant(participantB);
-
- return associationClass;
- }
-
- /**
- * Add an operation to a classifier.
- * Modifiers allowed : STATIC, ABSTRACT, PUBLIC, PRIVATE, PROTECTED, PACKAGE.
- * The last visibility set will be keeped.
- *
- * @param classifier where the operation will be added
- * @param name operation name
- * @param returnType operation type (full qualified name)
- * @param modifiers operation modifiers
- * @return the new ObjectModelOperation added
- * @throws IllegalArgumentException illegal Modifier
- */
- public ObjectModelOperation addOperation(ObjectModelClassifier classifier,
- String name, String returnType, ObjectModelModifier... modifiers)
- throws IllegalArgumentException {
- ObjectModelOperationImpl result = new ObjectModelOperationImpl();
- result.setName(name);
-
- if (returnType != null) {
- ObjectModelParameterImpl returnParameter = new ObjectModelParameterImpl();
- returnParameter.setType(returnType);
- result.setReturnParameter(returnParameter);
- }
-
- for (ObjectModelModifier modifier : modifiers) {
- if (modifier.isVisibility()) {
- result.setVisibility(modifier.toString());
- } else {
- switch (modifier) {
- case STATIC:
- result.setStatic(true);
- break;
- case ABSTRACT:
- result.setAbstract(true);
- break;
- default:
- throw new IllegalArgumentException("Unsupported modifier type '" + modifier.name() + "'");
- }
- }
- }
-
- ((ObjectModelClassifierImpl) classifier).addOperation(result);
- return result;
- }
-
- /**
- * Set the body code for an Operation.
- *
- * @param operation where the code will be added
- * @param body code to add to the operation
- */
- public void setOperationBody(ObjectModelOperation operation, String body) {
- ObjectModelOperationImpl operationImpl = (ObjectModelOperationImpl) operation;
- operationImpl.setBodyCode(body);
- }
-
- /**
- * Add an interface to a classifier. The interface may not exist in model.
- *
- * @param classifier where the interface will be added
- * @param interfaceQualifiedName interface qualified name
- */
- public void addInterface(ObjectModelClassifier classifier, String interfaceQualifiedName) {
- ObjectModelClassifierImpl impl = (ObjectModelClassifierImpl) classifier;
-
- ObjectModelImplRef interfacez = new ObjectModelImplRef();
- interfacez.setName(interfaceQualifiedName);
-
- impl.addInterface(interfacez);
- }
-
- /**
- * Add a superclass to an other class. The superclass may not exist in model.
- *
- * @param clazz where the superclass will be added
- * @param superclassQualifiedName superclass qualified name
- */
- public void addSuperclass(ObjectModelClass clazz, String superclassQualifiedName) {
- ObjectModelClassImpl impl = (ObjectModelClassImpl) clazz;
-
- ObjectModelImplSuperClassRef superclass = new ObjectModelImplSuperClassRef();
- superclass.setName(superclassQualifiedName);
-
- impl.addSuperclass(superclass);
- }
-
- /**
- * Add a superclass to an other class. The superclass may not exist in model.
- *
- * @param clazz where the superclass will be added
- * @param type type of inner classifier to create
- * @param name superclass qualified name
- * @return the new instanciated inner classifier
- * @throws IllegalArgumentException if given {@code type} is not a concrete classifier type
- */
- public ObjectModelClassifier addInnerClassifier(ObjectModelClass clazz, ObjectModelType type, String name) throws IllegalArgumentException {
- ObjectModelClassImpl impl = (ObjectModelClassImpl) clazz;
- ObjectModelClassifierImpl inner;
- switch (type) {
-
- case OBJECT_MODEL_ENUMERATION:
- inner = new ObjectModelEnumerationImpl();
- break;
- case OBJECT_MODEL_CLASS:
- inner = new ObjectModelClassImpl();
- break;
- case OBJECT_MODEL_INTERFACE:
- inner = new ObjectModelInterfaceImpl();
- break;
- default:
- throw new IllegalArgumentException("can not add a none classifier type " + type);
- }
- inner.setName(name);
- inner.setPackage(clazz.getPackageName() + "." + clazz.getName());
- inner.postInit();
- impl.addInnerClassifier(inner);
- inner.setObjectModelImpl(impl.getModel());
- return inner;
- }
-
- /**
- * Add a parameter to an operation.
- *
- * @param operation where the parameter will be added
- * @param type paremeter type (full qualified name)
- * @param name parameter name
- * @return the new ObjectModelParameter added
- */
- public ObjectModelParameter addParameter(ObjectModelOperation operation, String type, String name) {
- ObjectModelOperationImpl impl = (ObjectModelOperationImpl) operation;
- ObjectModelParameterImpl param = new ObjectModelParameterImpl();
- param.setType(type);
- param.setName(name);
- impl.addParameter(param);
- return param;
- }
-
- /**
- * Add an exception to an operation.
- *
- * @param operation where the exception will be added
- * @param exception name of the exception (full qualified name)
- */
- public void addException(ObjectModelOperation operation, String exception) {
- ObjectModelOperationImpl impl = (ObjectModelOperationImpl) operation;
- ObjectModelParameterImpl param = new ObjectModelParameterImpl();
- param.setType(exception);
- impl.addExceptionParameter(param);
- }
-
- /**
- * Set the documentation of an element in the model.
- *
- * @param element where the documentation will be setted
- * @param documentation String documentation for the element
- */
- public void setDocumentation(ObjectModelElement element, String documentation) {
- ObjectModelElementImpl impl = (ObjectModelElementImpl) element;
- impl.setDocumentation(documentation);
- }
-
- /**
- * Add a stereotype to an element.
- *
- * @param element where the stereotype will be added
- * @param stereotype name
- */
- public void addStereotype(ObjectModelElement element, String stereotype) {
- ObjectModelElementImpl impl = (ObjectModelElementImpl) element;
- ObjectModelImplRef ref = new ObjectModelImplRef();
- ref.setName(stereotype);
- impl.addStereotype(ref);
- }
-
- public void addLiteral(ObjectModelEnumeration enumz, String name) {
- ObjectModelEnumerationImpl impl = (ObjectModelEnumerationImpl) enumz;
- ObjectModelImplRef ref = new ObjectModelImplRef();
- ref.setName(name);
- impl.addLiteral(ref);
- }
-}
Modified: trunk/eugene/src/main/java/org/nuiton/eugene/models/object/xml/ObjectModelElementImpl.java
===================================================================
--- trunk/eugene/src/main/java/org/nuiton/eugene/models/object/xml/ObjectModelElementImpl.java 2009-12-20 14:45:41 UTC (rev 776)
+++ trunk/eugene/src/main/java/org/nuiton/eugene/models/object/xml/ObjectModelElementImpl.java 2009-12-20 16:27:20 UTC (rev 777)
@@ -73,7 +73,7 @@
* TODO a tester
* @return the objectModel
*/
- protected ObjectModelImpl getModel() {
+ public ObjectModelImpl getModel() {
if (objectModelImpl != null) {
return objectModelImpl;
} else if (declaringElement != null) {
@@ -203,7 +203,7 @@
*/
@Override
public String getTagValue(String tagValue) {
- return (tagValue == null ? null : (String) tagValues.get(tagValue));
+ return (tagValue == null ? null : tagValues.get(tagValue));
}
/**
Modified: trunk/eugene/src/main/java/org/nuiton/eugene/models/object/xml/ObjectModelEnumerationImpl.java
===================================================================
--- trunk/eugene/src/main/java/org/nuiton/eugene/models/object/xml/ObjectModelEnumerationImpl.java 2009-12-20 14:45:41 UTC (rev 776)
+++ trunk/eugene/src/main/java/org/nuiton/eugene/models/object/xml/ObjectModelEnumerationImpl.java 2009-12-20 16:27:20 UTC (rev 777)
@@ -23,7 +23,6 @@
import java.util.Collection;
import org.nuiton.eugene.models.object.ObjectModelEnumeration;
-import org.nuiton.eugene.models.object.ObjectModelOperation;
/**
* ObjectModelEnumerationImpl.
Copied: trunk/eugene/src/main/java/org/nuiton/eugene/models/state/StateModelGenerator.java (from rev 769, trunk/eugene/src/main/java/org/nuiton/eugene/StateModelGenerator.java)
===================================================================
--- trunk/eugene/src/main/java/org/nuiton/eugene/models/state/StateModelGenerator.java (rev 0)
+++ trunk/eugene/src/main/java/org/nuiton/eugene/models/state/StateModelGenerator.java 2009-12-20 16:27:20 UTC (rev 777)
@@ -0,0 +1,216 @@
+/* *##%
+ * EUGene :: EUGene
+ * Copyright (C) 2004 - 2009 CodeLutin
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation, either version 3 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 Lesser Public License for more details.
+ *
+ * You should have received a copy of the GNU General Lesser Public
+ * License along with this program. If not, see
+ * <http://www.gnu.org/licenses/lgpl-3.0.html>.
+ * ##%*/
+
+package org.nuiton.eugene.models.state;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.nuiton.eugene.AbstractGenerator;
+import org.nuiton.eugene.MonitorWriter;
+import org.nuiton.eugene.models.state.StateModel;
+import org.nuiton.eugene.models.state.StateModelState;
+import org.nuiton.eugene.models.state.StateModelStateChart;
+
+import java.io.File;
+import java.io.IOException;
+import java.io.StringWriter;
+import java.io.Writer;
+
+/**
+ * StateModelGenerator.
+ * <p/>
+ * Pour utiliser ce type de générateur, il faut implanter au moins une des
+ * 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 (output) alors aucun fichier n'est généré.
+ * <p/>
+ * Le nom de l'argument writer doit absolument etre output et pas autre chose si
+ * vous souhaitez utiliser le processeur
+ * {@code org.nuiton.processor.filters.GeneratorTemplatesFilter} pour vous
+ * s'implifier l'écriture des templates.
+ *
+ * @author chatellier
+ * @version $Revision$
+ * <p/>
+ * Last update : $Date$ By : $Author$
+ */
+public class StateModelGenerator extends AbstractGenerator<StateModel> {
+
+ /**
+ * Logger for this class
+ */
+ private static Log log = LogFactory.getLog(StateModelGenerator.class);
+
+ /**
+ * Empty constructor
+ */
+ public StateModelGenerator() {
+ super();
+ }
+
+ /**
+ * Constructor with parent generator.
+ *
+ * @param parent parent generator
+ */
+ public StateModelGenerator(AbstractGenerator<StateModel> parent) {
+ super(parent);
+ }
+
+ /*
+ * @see org.nuiton.eugene.Generator#generate(java.io.File[], java.io.File)
+ */
+ @Override
+ @Deprecated
+ public void generate(File[] files, File destDir) {
+
+ StateModelReader reader = new StateModelReader();
+ StateModel stateModel = reader.read(files);
+ setLastModifiedSource(reader.getLastModifiedSource());
+
+ // generate code
+ try {
+ applyTemplate(stateModel, destDir);
+ } catch (IOException e) {
+ log.warn("Can't generate code for files", e);
+ }
+ }
+
+
+ /**
+ * Par défaut, appel {@link #generateFromModel(org.nuiton.eugene.MonitorWriter , org.nuiton.eugene.models.state.StateModel)} pour le
+ * model et {@link #generateFromState(Writer,StateModelState)} pour tous les
+ * etats du modele.
+ *
+ * @param stateModel Le modele d'état
+ * @param destDir le dossier de destination
+ * @throws IOException
+ */
+ @Override
+ public void applyTemplate(StateModel stateModel, File destDir) throws IOException {
+
+ model = stateModel;
+
+ String filename = getFilenameFromModel(stateModel);
+ File outputFile = getDestinationFile(destDir, filename);
+ if (getOverwrite() || !isNewerThanSource(outputFile)) {
+ try {
+ StringWriter out = new StringWriter();
+ MonitorWriter monitorOut = new MonitorWriter(out);
+ generateFromModel(monitorOut, stateModel);
+ 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);
+ }
+ }
+
+ // pour tous les diagrammes du modele
+ for (StateModelStateChart chart : stateModel.getStateCharts()) {
+
+ // elements can be restricted in package
+ if (canGenerateElement(chart)) {
+
+ // et tous les états de ces diagrammes
+ for (Object oState : chart.getStates().toArray()) {
+ StateModelState state = (StateModelState) oState;
+ String filenameState = getFilenameFromState(state, chart
+ .getName());
+ File outputFiletate = getDestinationFile(destDir, filenameState);
+ if (getOverwrite() || !isNewerThanSource(outputFiletate)) {
+ try {
+ StringWriter out = new StringWriter();
+ MonitorWriter monitorOut = new MonitorWriter(out);
+ generateFromState(monitorOut, state);
+ write(outputFiletate, monitorOut);
+ } catch (Exception eee) {
+ log.warn("Erreur lors de la génération du fichier "
+ + outputFiletate);
+ throw new RuntimeException(
+ "Erreur lors de la génération du fichier "
+ + outputFiletate, eee);
+ }
+ }
+ }
+ }
+ }
+ }
+
+ /**
+ * Test if given element can be generated.
+ *
+ * @param chart chart to test
+ * @return generation allowed
+ */
+ protected boolean canGenerateElement(StateModelStateChart chart) {
+
+ boolean canGenerate = true;
+
+ // disabled until tested
+ //String chartPackage = chart.getPackageName();
+ //canGenerate = super.canGeneratePackage(chartPackage);
+
+ return canGenerate;
+ }
+
+ /**
+ * Generate model code
+ *
+ * @param monitorOut
+ * @param stateModel
+ */
+ protected void generateFromModel(MonitorWriter monitorOut, StateModel stateModel) {
+
+ }
+
+ /**
+ * Return filename from model
+ *
+ * @param stateModel
+ * @return model file name
+ */
+ protected String getFilenameFromModel(StateModel stateModel) {
+ return stateModel.getName();
+ }
+
+ /**
+ * Return filename from state
+ *
+ * @param state the state
+ * @param packageName
+ * @return the filename
+ */
+ public String getFilenameFromState(StateModelState state, String packageName) {
+ return (packageName + '.' + state.getName()).replace('.', File.separatorChar);
+ }
+
+ /**
+ * Generate a state code
+ *
+ * @param monitorOut the output writer
+ * @param state the state
+ * @throws IOException
+ */
+ public void generateFromState(Writer monitorOut, StateModelState state) throws IOException {
+
+ }
+}
Property changes on: trunk/eugene/src/main/java/org/nuiton/eugene/models/state/StateModelGenerator.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision
Added: svn:eol-style
+ native
Copied: trunk/eugene/src/main/java/org/nuiton/eugene/models/state/StateModelReader.java (from rev 769, trunk/eugene/src/main/java/org/nuiton/eugene/StateModelReader.java)
===================================================================
--- trunk/eugene/src/main/java/org/nuiton/eugene/models/state/StateModelReader.java (rev 0)
+++ trunk/eugene/src/main/java/org/nuiton/eugene/models/state/StateModelReader.java 2009-12-20 16:27:20 UTC (rev 777)
@@ -0,0 +1,125 @@
+/*
+ * *##%
+ * EUGene :: EUGene
+ * Copyright (C) 2004 - 2009 CodeLutin
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation, either version 3 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 Lesser Public License for more details.
+ *
+ * You should have received a copy of the GNU General Lesser Public
+ * License along with this program. If not, see
+ * <http://www.gnu.org/licenses/lgpl-3.0.html>.
+ * ##%*
+ */
+
+package org.nuiton.eugene.models.state;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.util.Enumeration;
+import org.apache.commons.digester.Digester;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.nuiton.eugene.ModelReader;
+import org.nuiton.eugene.models.state.StateModel;
+import org.nuiton.eugene.models.state.xml.DigesterStateModelRuleSet;
+import org.nuiton.eugene.models.state.xml.StateModelImpl;
+import org.nuiton.util.FileUtil;
+import org.nuiton.util.RecursiveProperties;
+import org.xml.sax.SAXException;
+
+/**
+ * To read state model files into a memory state model.
+ *
+ * Created: 26 oct. 2009
+ *
+ * @author fdesbois
+ * @version $Revision$
+ *
+ * Mise a jour: $Date$
+ * par : $Author$
+ *
+ * @plexus.component role="org.nuiton.eugene.ModelReader" role-hint="statemodel"
+ */
+public class StateModelReader extends ModelReader<StateModel> {
+
+ private static final Log log = LogFactory.getLog(StateModelReader.class);
+
+ @Override
+ public StateModel read(File[] files) {
+ Digester digester = new Digester();
+ digester.addRuleSet(new DigesterStateModelRuleSet());
+
+ StateModelImpl stateModel = new StateModelImpl();
+
+ // process each file
+ for (File file : files) {
+
+ // fin a deplacer
+ try {
+ digester.push(stateModel);
+ digester.parse(file);
+
+ // try to load property file
+ loadPropertyFile(file, stateModel);
+ } catch (IOException e) {
+ log.warn("Can't read model file", e);
+ } catch (SAXException e) {
+ log.warn("Can't read model file", e);
+ }
+ }
+ return stateModel;
+ }
+
+ /**
+ * Try to load property file, associated to current statemodel file
+ *
+ * @param stateModelFile
+ * @param stateModel
+ */
+ protected void loadPropertyFile(File stateModelFile,
+ StateModelImpl stateModel) {
+ // recherche et charge le fichier propriete associe au modele
+ File dir = stateModelFile.getParentFile();
+ String ext = FileUtil.extension(stateModelFile);
+ String name = FileUtil.basename(stateModelFile, "." + ext);
+ File propFile = new File(dir, name + ".properties");
+ RecursiveProperties prop = new RecursiveProperties();
+
+ if (!propFile.exists()) {
+ if (log.isInfoEnabled()) {
+ log.info("No property file associated to model : " + propFile);
+ }
+ } else {
+ if (log.isInfoEnabled()) {
+ log.info("Reading model property file " + propFile);
+ }
+ try {
+ prop.load(new FileInputStream(propFile));
+ } catch (IOException e) {
+ log.warn("Cannot read property file " + propFile, e);
+ }
+
+ // on ajoute les proprietes du fichier associe au model
+ for (Enumeration<Object> e = prop.keys(); e.hasMoreElements();) {
+ String key = (String) e.nextElement();
+ String value = prop.getProperty(key);
+
+ if (!key.startsWith("model.tagvalue.")) {
+ log.warn("only tagvalue is allowed on model in properties");
+ } else {
+ String tag = key.substring("model.tagvalue.".length());
+ stateModel.addTagValue(tag, value);
+ }
+ }
+ }
+ }
+}
Property changes on: trunk/eugene/src/main/java/org/nuiton/eugene/models/state/StateModelReader.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Revision
Modified: trunk/eugene/src/site/fr/rst/index.rst
===================================================================
--- trunk/eugene/src/site/fr/rst/index.rst 2009-12-20 14:45:41 UTC (rev 776)
+++ trunk/eugene/src/site/fr/rst/index.rst 2009-12-20 16:27:20 UTC (rev 777)
@@ -54,24 +54,11 @@
Règle ant
---------
-Voici un exemple d'utilisation de la règle ant.
+Une tâche ant est disponible à l'adresse suivante
+http://maven-site.nuiton.org/eugene/ant-eugene-task. Il permet l'utilisation
+depuis Ant de Eugene.
-::
- <taskdef name="generator" classname="org.nuiton.eugene.GeneratorTask"
- classpath="${compile.classpath}:${targetbuild}:${resources}" />
-
- <target name="generate" description="generate">
- <generator srcdir="${modelDir}" destdir="${targetgen}"
- resolver="org.nuiton.exemple.ResourceResolver"
- templates="org.nuiton.example.JavaBeanGenerator"
- properties="defaultPackage=org.nuiton,fullPackagePath=org.nuiton,extraPackages=org.nuiton"
- classpath="${compile.classpath}:${targetbuild}:${resources}" />
- </target>
-
-Dans cette exemple, un template de génération sera apliqué sur tous les
-fichiers.
-
Plugin maven
------------
Deleted: trunk/eugene/src/test/java/org/nuiton/eugene/ModelFileWriterUtilTest.java
===================================================================
--- trunk/eugene/src/test/java/org/nuiton/eugene/ModelFileWriterUtilTest.java 2009-12-20 14:45:41 UTC (rev 776)
+++ trunk/eugene/src/test/java/org/nuiton/eugene/ModelFileWriterUtilTest.java 2009-12-20 16:27:20 UTC (rev 777)
@@ -1,117 +0,0 @@
-/*
- * *##%
- * EUGene :: EUGene
- * Copyright (C) 2004 - 2009 CodeLutin
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation, either version 3 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 Lesser Public License for more details.
- *
- * You should have received a copy of the GNU General Lesser Public
- * License along with this program. If not, see
- * <http://www.gnu.org/licenses/lgpl-3.0.html>.
- * ##%*
- */
-package org.nuiton.eugene;
-
-import org.junit.Assert;
-
-/**
- * User: chemit
- * Date: 25 nov. 2009
- * Time: 18:38:01
- */
-
-public abstract class ModelFileWriterUtilTest extends Assert {
-// /**
-// * Les writers disponibles pour le test
-// */
-// static Map<String, ToModelWriter> writers;
-//
-// @BeforeClass
-// public static void beforeClass() throws Exception {
-// writers = new HashMap<String, ToModelWriter>();
-// writers.put("test1", new ToModelWriter1());
-// writers.put("test2", new ToModelWriter2());
-// }
-//
-// @Before
-// public void setUp() throws Exception {
-// }
-//
-// @After
-// public void tearDown() throws Exception {
-// }
-//
-// @Test
-// public void testConstructor() throws Exception {
-// String pattern;
-// ToModelWriterContext writerContext;
-// ToModelWriter writer;
-// writer = writers.get("test1");
-//
-// pattern = "test1:";
-// writerContext = new ToModelWriterContext(basedir, pattern, ObjectModel.class, overwrite, writers);
-// assertEquals(writerContext, pattern, "test1", writer.getDefaultInputDirectory(), writer.getDefaultIncludes());
-//
-// pattern = "src/main/test1:**/*.test1";
-// writerContext = new ToModelWriterContext(basedir, pattern, ObjectModel.class, overwrite, writers);
-// assertEquals(writerContext, pattern, "test1", "src/main/test1", "**/*.test1");
-//
-// pattern = "test2:src/main/test1:**/*.test1";
-// writerContext = new ToModelWriterContext(basedir, pattern, ObjectModel.class, overwrite, writers);
-// assertEquals(writerContext, pattern, "test2", "src/main/test1", "**/*.test1");
-// }
-//
-// @Test(expected = IllegalArgumentException.class)
-// public void testConstructorUnknownInclude0() throws Exception {
-//
-// new ToModelWriterContext(basedir, ":", ObjectModel.class, overwrite, writers);
-// }
-//
-// @Test(expected = IllegalArgumentException.class)
-// public void testConstructorUnknownInclude1() throws Exception {
-//
-// new ToModelWriterContext(basedir, "test3:", ObjectModel.class, overwrite, writers);
-// }
-//
-// @Test(expected = IllegalArgumentException.class)
-// public void testConstructorUnknownInclude2() throws Exception {
-//
-// new ToModelWriterContext(basedir, "test1$", ObjectModel.class, overwrite, writers);
-// }
-//
-// @Test(expected = IllegalArgumentException.class)
-// public void testConstructorUnknownInclude3() throws Exception {
-//
-// new ToModelWriterContext(basedir, "test1$YO:", ObjectModel.class, overwrite, writers);
-// }
-//
-// @Test(expected = IllegalArgumentException.class)
-// public void testConstructorUnknownInclude4() throws Exception {
-//
-// new ToModelWriterContext(basedir, "test1$YO:yo", ObjectModel.class, overwrite, writers);
-// }
-//
-// @Test(expected = IllegalArgumentException.class)
-// public void testConstructorUnknownInclude5() throws Exception {
-//
-// new ToModelWriterContext(basedir, "test1$YO:yo:", ObjectModel.class, overwrite, writers);
-// }
-
-
-// protected void assertEquals(ToModelWriterContext writerContext, String pattern, String protocol, String inputDirectory, String includes) {
-// assertNotNull(writerContext);
-// assertEquals(pattern, writerContext.getPattern());
-// assertEquals(protocol, writerContext.getProtocol());
-// assertEquals(includes, writerContext.getIncludes());
-// assertEquals(inputDirectory, writerContext.getInputPath());
-// }
-
-}
Deleted: trunk/eugene/src/test/java/org/nuiton/eugene/ObjectModelGeneratorTest.java
===================================================================
--- trunk/eugene/src/test/java/org/nuiton/eugene/ObjectModelGeneratorTest.java 2009-12-20 14:45:41 UTC (rev 776)
+++ trunk/eugene/src/test/java/org/nuiton/eugene/ObjectModelGeneratorTest.java 2009-12-20 16:27:20 UTC (rev 777)
@@ -1,97 +0,0 @@
-/* *##%
- * EUGene :: EUGene
- * Copyright (C) 2004 - 2009 CodeLutin
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation, either version 3 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 Lesser Public License for more details.
- *
- * You should have received a copy of the GNU General Lesser Public
- * License along with this program. If not, see
- * <http://www.gnu.org/licenses/lgpl-3.0.html>.
- * ##%*/
-
-package org.nuiton.eugene;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import junit.framework.Assert;
-
-import org.junit.Test;
-import org.nuiton.eugene.models.object.xml.ObjectModelClassImpl;
-import org.nuiton.eugene.models.object.xml.ObjectModelElementImpl;
-
-/**
- * Test des fonctions de ObjectModelGenerator.
- *
- * @author chatellier
- * @version $Revision$
- *
- * Last update : $Date$
- * By : $Author$
- */
-public class ObjectModelGeneratorTest {
-
- @Test
- public void testCanGenerate() {
-
- ObjectModelGenerator generator = new ObjectModelGenerator();
-
- // test with null generated list
- Assert.assertTrue(generator.canGenerateElement(new ObjectModelElementImpl()));
- Assert.assertTrue(generator.canGenerateElement(new ObjectModelClassImpl()));
-
- List<String> generatedPackages = new ArrayList<String>();
- generatedPackages.add("org.nuiton.eugene");
-
- generator.setGeneratedPackages(generatedPackages);
-
- // Still true
- Assert.assertTrue(generator.canGenerateElement(new ObjectModelElementImpl()));
- // become false
- Assert.assertFalse(generator.canGenerateElement(new ObjectModelClassImpl()));
-
- ObjectModelClassImpl testClass = new ObjectModelClassImpl();
- testClass.setPackage("org.nuiton.eugene");
- Assert.assertTrue(generator.canGenerateElement(testClass));
-
- testClass.setPackage("org.nuiton");
- Assert.assertFalse(generator.canGenerateElement(testClass));
-
- testClass.setPackage("org.nuiton.eugene.entities");
- Assert.assertTrue(generator.canGenerateElement(testClass));
-
- testClass.setPackage("org.nuiton.eugene2");
- Assert.assertFalse(generator.canGenerateElement(testClass));
-
- testClass.setPackage("org.nuiton.eugene2.entities");
- Assert.assertFalse(generator.canGenerateElement(testClass));
-
- // test avec les generators recursifs
- // sans faire de set sur le fils
- ObjectModelGenerator childGenerator = new ObjectModelGenerator(generator);
-
- testClass.setPackage("org.nuiton.eugene");
- Assert.assertTrue(childGenerator.canGenerateElement(testClass));
-
- testClass.setPackage("org.nuiton");
- Assert.assertFalse(childGenerator.canGenerateElement(testClass));
-
- testClass.setPackage("org.nuiton.eugene.entities");
- Assert.assertTrue(childGenerator.canGenerateElement(testClass));
-
- testClass.setPackage("org.nuiton.eugene2");
- Assert.assertFalse(childGenerator.canGenerateElement(testClass));
-
- testClass.setPackage("org.nuiton.eugene2.entities");
- Assert.assertFalse(childGenerator.canGenerateElement(testClass));
-
- }
-}
Copied: trunk/eugene/src/test/java/org/nuiton/eugene/models/object/ModelMergeTest.java (from rev 769, trunk/eugene/src/test/java/org/nuiton/eugene/models/xml/ModelMergeTest.java)
===================================================================
--- trunk/eugene/src/test/java/org/nuiton/eugene/models/object/ModelMergeTest.java (rev 0)
+++ trunk/eugene/src/test/java/org/nuiton/eugene/models/object/ModelMergeTest.java 2009-12-20 16:27:20 UTC (rev 777)
@@ -0,0 +1,127 @@
+/* *##%
+ * EUGene :: EUGene
+ * Copyright (C) 2004 - 2009 CodeLutin
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation, either version 3 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 Lesser Public License for more details.
+ *
+ * You should have received a copy of the GNU General Lesser Public
+ * License along with this program. If not, see
+ * <http://www.gnu.org/licenses/lgpl-3.0.html>.
+ * ##%*/
+
+package org.nuiton.eugene.models.object;
+
+import java.io.File;
+import java.net.URISyntaxException;
+import java.net.URL;
+import java.util.Collection;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.junit.Assert;
+import org.junit.Test;
+import org.nuiton.util.Resource;
+
+/**
+ * ModelMergeTest.
+ * <p/>
+ * Created: 18 mai 2005
+ *
+ * @author Arnaud Thimel <thimel(a)codelutin.com>
+ * @version $Revision$
+ */
+public class ModelMergeTest {
+
+ /**
+ * Logger
+ */
+ private static final Log log = LogFactory.getLog(ModelMergeTest.class);
+
+ @Test
+ public void testMerge1() throws URISyntaxException {
+ parcourirModel(genModel(1), 4);
+ }
+
+ @Test
+ public void testMerge2() throws URISyntaxException {
+ parcourirModel(genModel(2), 4);
+ }
+
+ @Test
+ public void testMerge3() throws URISyntaxException {
+ parcourirModel(genModel(3), 4);
+ }
+
+ @Test
+ public void testMerge4() throws URISyntaxException {
+ parcourirModel(genModel(4), 4);
+ }
+
+ @Test
+ public void testMerge5() throws URISyntaxException {
+ parcourirModel(genModel(5), 4);
+ }
+
+ @Test
+ public void testMerge6() throws URISyntaxException {
+ parcourirModel(genModel(6), 4);
+ }
+
+ protected ObjectModel genModel(int num) throws URISyntaxException {
+ if (log.isDebugEnabled()) {
+ log.debug("\n\n============================================\n\t\ttestMerge" + num + "\n============================================");
+ }
+// ObjectModelGenerator generator = new ObjectModelGenerator();
+ File[] files = new File[num];
+ for (int j = 1; j < (num + 1); j++) {
+ URL url = Resource.getURL("models/objectmodel/security" + j + ".objectmodel");
+ files[j - 1] = new File(url.toURI());
+ }
+
+ ObjectModelReader reader = new ObjectModelReader();
+ ObjectModel objectModel = reader.read(files);
+ return objectModel;
+
+// generator.generate(files, new File("target"));
+// return generator.getModel();
+ }
+
+ protected void parcourirModel(ObjectModel model, int expectedSize) {
+ Collection<ObjectModelClass> classes = model.getClasses();
+ Assert.assertEquals(expectedSize, classes.size());
+ if (!log.isDebugEnabled()) {
+ return;
+ }
+ StringBuilder buffer = new StringBuilder();
+ buffer.append("\n:::: model tag: ").append(model.getTagValues());
+ for (Object o3 : classes) {
+ ObjectModelClass clazz = (ObjectModelClass) o3;
+ buffer.append("\n********* Class : ").append(clazz.getQualifiedName());
+ buffer.append("\n--- Attributs :");
+ for (Object o2 : clazz.getAttributes()) {
+ buffer.append("\n\t").append(o2);
+ }
+ buffer.append("\n--- Operations :");
+ for (Object o1 : clazz.getOperations()) {
+ buffer.append("\n\t").append(o1);
+ }
+ buffer.append("\n--- Interfaces :");
+ for (Object o : clazz.getInterfaces()) {
+ buffer.append("\n\t").append(o);
+ }
+ buffer.append("\n--- Superclasses :");
+ for (Object o : clazz.getSuperclasses()) {
+ buffer.append("\n\t").append(o);
+ }
+ }
+ log.debug(buffer.toString());
+ }
+}
Property changes on: trunk/eugene/src/test/java/org/nuiton/eugene/models/object/ModelMergeTest.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision
Added: svn:eol-style
+ native
Copied: trunk/eugene/src/test/java/org/nuiton/eugene/models/object/ObjectModelGeneratorTest.java (from rev 769, trunk/eugene/src/test/java/org/nuiton/eugene/ObjectModelGeneratorTest.java)
===================================================================
--- trunk/eugene/src/test/java/org/nuiton/eugene/models/object/ObjectModelGeneratorTest.java (rev 0)
+++ trunk/eugene/src/test/java/org/nuiton/eugene/models/object/ObjectModelGeneratorTest.java 2009-12-20 16:27:20 UTC (rev 777)
@@ -0,0 +1,98 @@
+/* *##%
+ * EUGene :: EUGene
+ * Copyright (C) 2004 - 2009 CodeLutin
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation, either version 3 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 Lesser Public License for more details.
+ *
+ * You should have received a copy of the GNU General Lesser Public
+ * License along with this program. If not, see
+ * <http://www.gnu.org/licenses/lgpl-3.0.html>.
+ * ##%*/
+
+package org.nuiton.eugene.models.object;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import junit.framework.Assert;
+
+import org.junit.Test;
+import org.nuiton.eugene.models.object.ObjectModelGenerator;
+import org.nuiton.eugene.models.object.xml.ObjectModelClassImpl;
+import org.nuiton.eugene.models.object.xml.ObjectModelElementImpl;
+
+/**
+ * Test des fonctions de ObjectModelGenerator.
+ *
+ * @author chatellier
+ * @version $Revision$
+ *
+ * Last update : $Date$
+ * By : $Author$
+ */
+public class ObjectModelGeneratorTest {
+
+ @Test
+ public void testCanGenerate() {
+
+ ObjectModelGenerator generator = new ObjectModelGenerator();
+
+ // test with null generated list
+ Assert.assertTrue(generator.canGenerateElement(new ObjectModelElementImpl()));
+ Assert.assertTrue(generator.canGenerateElement(new ObjectModelClassImpl()));
+
+ List<String> generatedPackages = new ArrayList<String>();
+ generatedPackages.add("org.nuiton.eugene");
+
+ generator.setGeneratedPackages(generatedPackages);
+
+ // Still true
+ Assert.assertTrue(generator.canGenerateElement(new ObjectModelElementImpl()));
+ // become false
+ Assert.assertFalse(generator.canGenerateElement(new ObjectModelClassImpl()));
+
+ ObjectModelClassImpl testClass = new ObjectModelClassImpl();
+ testClass.setPackage("org.nuiton.eugene");
+ Assert.assertTrue(generator.canGenerateElement(testClass));
+
+ testClass.setPackage("org.nuiton");
+ Assert.assertFalse(generator.canGenerateElement(testClass));
+
+ testClass.setPackage("org.nuiton.eugene.entities");
+ Assert.assertTrue(generator.canGenerateElement(testClass));
+
+ testClass.setPackage("org.nuiton.eugene2");
+ Assert.assertFalse(generator.canGenerateElement(testClass));
+
+ testClass.setPackage("org.nuiton.eugene2.entities");
+ Assert.assertFalse(generator.canGenerateElement(testClass));
+
+ // test avec les generators recursifs
+ // sans faire de set sur le fils
+ ObjectModelGenerator childGenerator = new ObjectModelGenerator(generator);
+
+ testClass.setPackage("org.nuiton.eugene");
+ Assert.assertTrue(childGenerator.canGenerateElement(testClass));
+
+ testClass.setPackage("org.nuiton");
+ Assert.assertFalse(childGenerator.canGenerateElement(testClass));
+
+ testClass.setPackage("org.nuiton.eugene.entities");
+ Assert.assertTrue(childGenerator.canGenerateElement(testClass));
+
+ testClass.setPackage("org.nuiton.eugene2");
+ Assert.assertFalse(childGenerator.canGenerateElement(testClass));
+
+ testClass.setPackage("org.nuiton.eugene2.entities");
+ Assert.assertFalse(childGenerator.canGenerateElement(testClass));
+
+ }
+}
Property changes on: trunk/eugene/src/test/java/org/nuiton/eugene/models/object/ObjectModelGeneratorTest.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision
Copied: trunk/eugene/src/test/java/org/nuiton/eugene/models/object/XMI12ToObjectModelTest.java (from rev 769, trunk/eugene/src/test/java/org/nuiton/eugene/xmi/objectmodel/XMI12ToObjectModelTest.java)
===================================================================
--- trunk/eugene/src/test/java/org/nuiton/eugene/models/object/XMI12ToObjectModelTest.java (rev 0)
+++ trunk/eugene/src/test/java/org/nuiton/eugene/models/object/XMI12ToObjectModelTest.java 2009-12-20 16:27:20 UTC (rev 777)
@@ -0,0 +1,236 @@
+/* *##%
+ * EUGene :: EUGene
+ * Copyright (C) 2004 - 2009 CodeLutin
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation, either version 3 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 Lesser Public License for more details.
+ *
+ * You should have received a copy of the GNU General Lesser Public
+ * License along with this program. If not, see
+ * <http://www.gnu.org/licenses/lgpl-3.0.html>.
+ * ##%*/
+
+package org.nuiton.eugene.models.object;
+
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.net.URISyntaxException;
+import java.net.URL;
+
+import java.util.List;
+import javax.xml.transform.Transformer;
+import javax.xml.transform.TransformerException;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.stream.StreamResult;
+import javax.xml.transform.stream.StreamSource;
+
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Test;
+import org.nuiton.util.Resource;
+import org.nuiton.util.ResourceResolver;
+
+/**
+ * Test de la feuille de style "xmi1.2ToObjectModel.xsl"
+ * sur l'exemple isis-fish.xmi
+ *
+ * @author chatellier
+ * @version $Revision: 1.0 $
+ *
+ * Last update : $Date: 18 févr. 2009 $
+ * By : $Author: chatellier $
+ */
+public class XMI12ToObjectModelTest {
+
+ protected File destinationDirectory;
+
+ @Before
+ public void setUp() {
+ destinationDirectory = new File("target", "xmi");
+ destinationDirectory.mkdirs();
+ }
+
+ /**
+ * Apply XSLT Transformation.
+ *
+ * @param xmiFile
+ * @param modelFile
+ * @return transformed file
+ * @throws IOException
+ * @throws TransformerException
+ */
+ protected File transformXMI(File xmiFile, String modelFile)
+ throws IOException, TransformerException {
+ TransformerFactory factory = TransformerFactory.newInstance();
+
+ URL xsl = Resource.getURL("xmi1.2ToObjectModel.xsl");
+
+ File result = new File(destinationDirectory, modelFile);
+
+ Transformer transformer = factory.newTransformer(new StreamSource(xsl
+ .openStream()));
+
+ transformer.setURIResolver(new ResourceResolver());
+
+ transformer.transform(new StreamSource(xmiFile), new StreamResult(
+ new FileOutputStream(result)));
+
+ return result;
+ }
+
+ /**
+ * Load model into memory.
+ *
+ * @param modelFile
+ * @return object model
+ */
+ protected ObjectModel loadModel(File modelFile) {
+ ObjectModelGenerator generator = new ObjectModelGenerator();
+ generator.setOverwrite(true);
+ generator.generate(new File[] { modelFile }, new File("output"));
+ ObjectModel objectModel = generator.getModel();
+ return objectModel;
+ }
+
+ /**
+ * Apply XSL stylesheet on a topcased model.
+ * And make test on it.
+ *
+ * @throws URISyntaxException
+ * @throws IOException
+ * @throws TransformerException
+ */
+ @Test
+ public void testXSLIsis() throws URISyntaxException, IOException,
+ TransformerException {
+
+ File xmiFile = new File(Resource.getURL("xmi/1.2/isis-fish.xmi")
+ .toURI());
+
+ File objectModelFile = transformXMI(xmiFile, "isis-fish.objectmodel");
+
+ ObjectModel model = loadModel(objectModelFile);
+
+ Assert.assertNotNull(model);
+ Assert.assertEquals("IsisFish", model.getName());
+ Assert.assertEquals(62, model.getClassifiers().size());
+ }
+
+ /**
+ * Apply XSL stylesheet on a topcased model.
+ * And make test on it.
+ *
+ * @throws URISyntaxException
+ * @throws IOException
+ * @throws TransformerException
+ */
+ @Test
+ public void testXSLTopia() throws URISyntaxException, IOException,
+ TransformerException {
+
+ File xmiFile = new File(Resource.getURL("xmi/1.2/topiatest.xmi")
+ .toURI());
+
+ File objectModelFile = transformXMI(xmiFile, "topiatest.objectmodel");
+
+ ObjectModel model = loadModel(objectModelFile);
+
+ // Test for model version
+ Assert.assertEquals("1.2",model.getVersion());
+
+ Assert.assertNotNull(model);
+ Assert.assertEquals("TopiaTest", model.getName());
+ Assert.assertEquals(22, model.getClassifiers().size());
+
+ // Test for aggregation attribute (relation)
+ ObjectModelClass personneClass = model.getClass("org.nuiton.topiatest.Personne");
+ Assert.assertNotNull(personneClass);
+ ObjectModelAttribute addressAttr = personneClass.getAttribute("address");
+ Assert.assertNotNull(addressAttr);
+ Assert.assertTrue(addressAttr.isAggregate());
+
+ // Test for inner class
+ ObjectModelClass storeClass = model.getClass("org.nuiton.topiatest.Store");
+ Assert.assertNotNull(storeClass);
+ List<ObjectModelClassifier> inners = (List<ObjectModelClassifier>) storeClass.getInnerClassifiers();
+ Assert.assertNotNull(inners);
+ Assert.assertEquals(inners.size(), 1);
+ ObjectModelClass rowClass = (ObjectModelClass) inners.get(0);
+ Assert.assertNotNull(rowClass);
+ Assert.assertEquals(rowClass.getDeclaringElement().getName(), "Store");
+ }
+
+ /**
+ * Apply XSL stylesheet on an Argouml model.
+ * And make test on it.
+ *
+ * @throws URISyntaxException
+ * @throws IOException
+ * @throws TransformerException
+ */
+ @Test
+ public void testXSLDependency() throws URISyntaxException, IOException,
+ TransformerException {
+
+ File xmiFile = new File(Resource.getURL("xmi/1.2/dependency.xmi")
+ .toURI());
+
+ File objectModelFile = transformXMI(xmiFile, "dependency.objectmodel");
+
+ ObjectModel model = loadModel(objectModelFile);
+
+ Assert.assertNotNull(model);
+ Assert.assertEquals("DependencyTest", model.getName());
+ Assert.assertEquals(4, model.getClassifiers().size());
+
+ int nbDependencies = 0;
+ for (ObjectModelClassifier classifier : model.getClassifiers()) {
+ nbDependencies += classifier.getDependencies().size();
+ for (ObjectModelDependency dependency : classifier.getDependencies()) {
+ Assert.assertNotNull(dependency.getSupplier());
+ }
+ }
+
+ Assert.assertEquals(4,nbDependencies);
+ }
+
+ /**
+ * Apply XSL stylesheet on an Argouml model.
+ * And make test on it.
+ *
+ * @throws URISyntaxException
+ * @throws IOException
+ * @throws TransformerException
+ */
+ @Test
+ public void testXSLEnumeration() throws URISyntaxException, IOException,
+ TransformerException {
+
+ File xmiFile = new File(Resource.getURL("xmi/1.2/enumeration.xmi")
+ .toURI());
+
+ File objectModelFile = transformXMI(xmiFile, "enumeration.objectmodel");
+
+ ObjectModel model = loadModel(objectModelFile);
+
+ Assert.assertNotNull(model);
+ Assert.assertEquals("EnumerationTest", model.getName());
+ Assert.assertEquals(1, model.getEnumerations().size());
+
+ for (ObjectModelEnumeration enumeration : model.getEnumerations()) {
+ // 1 seule énumeration avec 3 literals et 2 opérations
+ Assert.assertNotNull(enumeration.getQualifiedName());
+ Assert.assertEquals(3,enumeration.getLiterals().size());
+ Assert.assertEquals(2, enumeration.getOperations().size());
+ }
+ }
+
+}
Copied: trunk/eugene/src/test/java/org/nuiton/eugene/models/object/XMI21ToObjectModelTest.java (from rev 769, trunk/eugene/src/test/java/org/nuiton/eugene/xmi/objectmodel/XMI21ToObjectModelTest.java)
===================================================================
--- trunk/eugene/src/test/java/org/nuiton/eugene/models/object/XMI21ToObjectModelTest.java (rev 0)
+++ trunk/eugene/src/test/java/org/nuiton/eugene/models/object/XMI21ToObjectModelTest.java 2009-12-20 16:27:20 UTC (rev 777)
@@ -0,0 +1,559 @@
+/* *##%
+ * EUGene :: EUGene
+ * Copyright (C) 2004 - 2009 CodeLutin
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation, either version 3 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 Lesser Public License for more details.
+ *
+ * You should have received a copy of the GNU General Lesser Public
+ * License along with this program. If not, see
+ * <http://www.gnu.org/licenses/lgpl-3.0.html>.
+ * ##%*/
+
+package org.nuiton.eugene.models.object;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
+
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.net.URISyntaxException;
+import java.net.URL;
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.xml.transform.Transformer;
+import javax.xml.transform.TransformerException;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.stream.StreamResult;
+import javax.xml.transform.stream.StreamSource;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.nuiton.util.Resource;
+import org.nuiton.util.ResourceResolver;
+
+
+/**
+ * Test de la feuille de style "xmi2.1ToObjectModel.xsl"
+ * sur l'exemple TestXMI21.uml
+ *
+ * @author chatellier
+ * @version $Revision: 1.0 $
+ *
+ * Last update : $Date: 18 févr. 2009 $
+ * By : $Author: chatellier $
+ */
+public class XMI21ToObjectModelTest {
+
+ protected File destinationDirectory;
+
+ @Before
+ public void setUp() {
+ destinationDirectory = new File("target", "xmi");
+ destinationDirectory.mkdirs();
+ }
+
+ /**
+ * Apply XSLT Transformation.
+ *
+ * @param xmiFile
+ * @return transformed file
+ * @throws IOException
+ * @throws TransformerException
+ */
+ protected File transformXMI(File xmiFile, String outModel)
+ throws IOException, TransformerException {
+ TransformerFactory factory = TransformerFactory.newInstance();
+
+ URL xsl = Resource.getURL("xmi2.1ToObjectModel.xsl");
+
+ File result = new File(destinationDirectory, outModel);
+
+ Transformer transformer = factory.newTransformer(new StreamSource(xsl
+ .openStream()));
+
+ String basePath = xmiFile.getParent();
+ transformer.setURIResolver(new ResourceResolver(basePath));
+
+ transformer.transform(new StreamSource(xmiFile), new StreamResult(
+ new FileOutputStream(result)));
+
+ return result;
+ }
+
+ /**
+ * Load model into memory.
+ *
+ * @param modelFile
+ * @return object model
+ */
+ protected ObjectModel loadModel(File modelFile) {
+ ObjectModelGenerator generator = new ObjectModelGenerator();
+ generator.setOverwrite(true);
+ generator.generate(new File[] { modelFile }, new File("output"));
+ ObjectModel objectModel = generator.getModel();
+ return objectModel;
+ }
+
+ /**
+ * Apply xslt on xmi model, and load it.
+ *
+ * @param modelName model to load
+ *
+ * @throws URISyntaxException
+ * @throws TransformerException
+ * @throws IOException
+ */
+ protected ObjectModel xmiToObjectModel(String modelName) throws URISyntaxException, IOException, TransformerException {
+ File xmiFile = new File(Resource.getURL("xmi/2.1/" + modelName + ".uml")
+ .toURI());
+
+ File objectModelFile = transformXMI(xmiFile, modelName + ".objectmodel");
+
+ ObjectModel model = loadModel(objectModelFile);
+ return model;
+ }
+
+ /**
+ * Apply XSL stylesheet on a topcased model.
+ * And make test on it.
+ *
+ * @throws URISyntaxException
+ * @throws IOException
+ * @throws TransformerException
+ */
+ @Test
+ public void testXSLTestXMI21() throws URISyntaxException, IOException,
+ TransformerException {
+
+ ObjectModel model = xmiToObjectModel("TestXMI21");
+
+ assertNotNull(model);
+ assertEquals("XMITest21", model.getName());
+ //FIXME check there is an xmi enumeration since we changed enumeration to classifier
+// assertEquals(15, model.getClassifiers().size());
+ assertEquals(16, model.getClassifiers().size());
+
+ // ClassB
+ ObjectModelClass clazzB = model.getClass("org.nuiton.eugene.test21.ClassB");
+ assertNotNull(clazzB);
+ ObjectModelAttribute attrCost = clazzB.getAttribute("cost");
+ assertNotNull(attrCost);
+ assertEquals("Cost attribute comment", attrCost.getTagValue("documentation"));
+
+ // ClassA
+ ObjectModelClass clazzA = model.getClass("org.nuiton.eugene.test21.ClassA");
+ assertNotNull(clazzA);
+ ObjectModelAttribute attrName = clazzA.getAttribute("name");
+ assertNotNull(attrName);
+ assertEquals(2, attrName.getMinMultiplicity());
+ assertEquals(-1, attrName.getMaxMultiplicity());
+// assertTrue(attrName.isOrdered());
+// assertTrue(attrName.isUnique());
+ }
+
+ /**
+ * Apply XSL stylesheet on a topcased model.
+ * And make test on it.
+ *
+ * @throws URISyntaxException
+ * @throws IOException
+ * @throws TransformerException
+ */
+ @Test
+ public void testXSLVpod() throws URISyntaxException, IOException,
+ TransformerException {
+
+ ObjectModel model = xmiToObjectModel("vpod");
+
+ assertNotNull(model);
+ assertEquals("org::sharengo::s4a::storage::http::vpod", model.getName());
+ assertEquals(4, model.getClassifiers().size());
+
+ // ClassB
+ ObjectModelClass clazzVpodMappingDao = model.getClass("daos.VpodMappingDao");
+ assertNotNull(clazzVpodMappingDao);
+ assertTrue(clazzVpodMappingDao.hasStereotype("Dao"));
+ List<ObjectModelOperation> opFindByVpodId = new ArrayList<ObjectModelOperation>();
+ opFindByVpodId.addAll(clazzVpodMappingDao.getOperations("findByVpodId"));
+ assertEquals("entities.VpodMapping", opFindByVpodId.get(0).getReturnType());
+ List<ObjectModelParameter> opFindByVpodIdParams = new ArrayList<ObjectModelParameter>();
+ opFindByVpodIdParams.addAll(opFindByVpodId.get(0).getParameters());
+ assertEquals("String", opFindByVpodIdParams.get(0).getType());
+ }
+
+ /**
+ * Apply XSL stylesheet on a topcased model.
+ * And make test on it.
+ *
+ * @throws URISyntaxException
+ * @throws IOException
+ * @throws TransformerException
+ */
+ @Test
+ public void testXSLWithStereotype() throws URISyntaxException, IOException,
+ TransformerException {
+
+ ObjectModel model = xmiToObjectModel("cmsLink");
+
+ assertNotNull(model);
+ assertEquals("org::sharengo::utils::container::link", model.getName());
+ //FIXME check there is an xmi enumeration since we changed enumeration to classifier
+ assertEquals(9, model.getClassifiers().size());
+// assertEquals(8, model.getClassifiers().size());
+
+ // LinkEntity
+ ObjectModelClass clazzLinkEntity = model.getClass("org.sharengo.utils.container.link.entities.LinkEntity");
+ assertNotNull(clazzLinkEntity);
+ assertTrue(clazzLinkEntity.hasStereotype("Entity"));
+ ObjectModelAttribute attrDefinition = clazzLinkEntity.getAttribute("target");
+ assertNotNull(attrDefinition);
+ assertTrue(attrDefinition.hasStereotype("Embedded"));
+
+ // LinkEntity
+ ObjectModelClass clazzLinkSrv = model.getClass("org.sharengo.utils.container.link.services.LinkSrv");
+ assertNotNull(clazzLinkSrv);
+ assertTrue(clazzLinkSrv.hasStereotype("Service"));
+ List<ObjectModelOperation> opFindAllByContent = new ArrayList<ObjectModelOperation>();
+ opFindAllByContent.addAll(clazzLinkSrv.getOperations("findAllByContent"));
+ assertEquals(1, opFindAllByContent.size());
+ assertTrue(opFindAllByContent.get(0).hasStereotype("Remote"));
+ }
+
+ @Test
+ public void testExtractCmsCore() throws Exception {
+
+ ObjectModel model = xmiToObjectModel("cmsCore");
+ assertNotNull(model);
+
+ // There was a problem with sub package
+ ObjectModelClass clazzFacetViewSrv = model.getClass("org.sharengo.cms.core.services.facet.FacetViewSrv");
+ assertNotNull(clazzFacetViewSrv);
+ assertEquals(11, clazzFacetViewSrv.getOperations().size());
+
+ // Test attribute type FQN
+ ObjectModelClass clazzContentDefSearchDto = model.getClass("org.sharengo.cms.core.dtos.ContentDefSearchDto");
+ assertNotNull(clazzContentDefSearchDto);
+ ObjectModelAttribute attrFromDate = clazzContentDefSearchDto.getAttribute("fromDate");
+ assertNotNull(attrFromDate);
+ assertEquals("Date", attrFromDate.getType());
+ ObjectModelAttribute attrContentDefId = clazzContentDefSearchDto.getAttribute("contentDefId");
+ assertNotNull(attrContentDefId);
+ assertEquals("String", attrContentDefId.getType());
+ ObjectModelAttribute attrAttributes = clazzContentDefSearchDto.getAttribute("attributes");
+ assertNotNull(attrAttributes);
+ assertEquals("org.sharengo.cms.core.dtos.AttributeSearchDto", attrAttributes.getType());
+
+ ObjectModelClass clazzContentDefDto = model.getClass("org.sharengo.cms.core.dtos.AttributeDef");
+ assertNotNull(clazzContentDefDto);
+ ObjectModelAttribute attrIdContentDef = clazzContentDefDto.getAttribute("idContentDef");
+ assertNotNull(attrIdContentDef);
+ assertEquals("String", attrIdContentDef.getType());
+ }
+
+ /**
+ * Apply XSL stylesheet on a topcased model.
+ * And make test on embedded primitive type
+ *
+ * @throws URISyntaxException
+ * @throws IOException
+ * @throws TransformerException
+ */
+ @Test
+ public void testXSLTestXMI21EmbeddedPrimitiveType() throws URISyntaxException, IOException,
+ TransformerException {
+
+ ObjectModel model = xmiToObjectModel("TestXMI21");
+
+ assertNotNull(model);
+ assertEquals("XMITest21", model.getName());
+
+ // ClassB
+ ObjectModelClass clazzB = model.getClass("org.nuiton.eugene.test21.ClassB");
+ assertNotNull(clazzB);
+
+ //primitiveType double
+ ObjectModelAttribute attrDouble = clazzB.getAttribute("double");
+ assertNotNull(attrDouble);
+ assertEquals("org.nuiton.eugene.test21.double", attrDouble.getType());
+
+ // ClassC
+ ObjectModelClass clazzC = model.getClass("org.nuiton.eugene.test21.ClassC");
+ assertNotNull(clazzC);
+
+ //dataType formula
+ ObjectModelAttribute attrFormula = clazzC.getAttribute("formula");
+ assertNotNull(attrFormula);
+ assertEquals("org.codelutin.types.Formula", attrFormula.getType());
+
+ }
+
+ /**
+ * Apply XSL stylesheet on a topcased model.
+ * And make test on embedded primitive type
+ *
+ * @throws URISyntaxException
+ * @throws IOException
+ * @throws TransformerException
+ */
+ @Test
+ public void testXSLTestXMI21MultiplicityClass() throws URISyntaxException, IOException,
+ TransformerException {
+
+ ObjectModel model = xmiToObjectModel("TestXMI21");
+
+ // ClassB
+ ObjectModelClass multiClazz = model.getClass("org.nuiton.eugene.test21.MultiplicityClass");
+
+ // strings
+ ObjectModelAttribute strings = multiClazz.getAttribute("strings");
+ assertNotNull(strings);
+ assertEquals("String", strings.getType());
+ assertEquals(1, strings.getMinMultiplicity());
+ assertEquals(-1, strings.getMaxMultiplicity());
+ assertTrue(strings.isUnique());
+ assertFalse(strings.isOrdered());
+
+ // doubles
+ ObjectModelAttribute doubles = multiClazz.getAttribute("doubles");
+ assertNotNull(doubles);
+ assertEquals("org.nuiton.eugene.test21.double", doubles.getType());
+ assertEquals(1, doubles.getMinMultiplicity());
+ assertEquals(5, doubles.getMaxMultiplicity());
+ assertTrue(doubles.isUnique());
+ assertTrue(doubles.isOrdered());
+
+ // dataTypes
+ ObjectModelAttribute dataTypes = multiClazz.getAttribute("dataTypes");
+ assertNotNull(dataTypes);
+ assertEquals("org.nuiton.eugene.test21.DataType1", dataTypes.getType());
+ assertEquals(0, dataTypes.getMinMultiplicity());
+ assertEquals(-1, dataTypes.getMaxMultiplicity());
+ assertFalse(dataTypes.isUnique());
+ assertTrue(dataTypes.isOrdered());
+
+ // getStrings
+ ObjectModelOperation op = multiClazz.getOperations("getStrings").iterator().next();
+ assertNotNull(op);
+ assertEquals("String", op.getReturnType());
+ assertNotNull(op.getReturnParameter());
+ assertEquals("String", op.getReturnParameter().getType());
+ assertEquals(1, op.getReturnParameter().getMinMultiplicity());
+ assertEquals(-1, op.getReturnParameter().getMaxMultiplicity());
+ assertTrue(op.getReturnParameter().isUnique());
+ assertTrue(op.getReturnParameter().isOrdered());
+
+
+ // getDoubles
+ op = multiClazz.getOperations("getDoubles").iterator().next();
+ assertNotNull(op);
+ assertEquals("org.nuiton.eugene.test21.double", op.getReturnType());
+ assertNotNull(op.getReturnParameter());
+ assertEquals("org.nuiton.eugene.test21.double", op.getReturnParameter().getType());
+ assertEquals(2, op.getReturnParameter().getMinMultiplicity());
+ assertEquals(-1, op.getReturnParameter().getMaxMultiplicity());
+ assertFalse(op.getReturnParameter().isUnique());
+ assertTrue(op.getReturnParameter().isOrdered());
+
+ // getDataTypes
+ op = multiClazz.getOperations("getDataTypes").iterator().next();
+ assertNotNull(op);
+ assertEquals("org.nuiton.eugene.test21.DataType1", op.getReturnType());
+ assertNotNull(op.getReturnParameter());
+ assertEquals("org.nuiton.eugene.test21.DataType1", op.getReturnParameter().getType());
+ assertEquals(0, op.getReturnParameter().getMinMultiplicity());
+ assertEquals(-1, op.getReturnParameter().getMaxMultiplicity());
+ assertTrue(op.getReturnParameter().isUnique());
+ assertFalse(op.getReturnParameter().isOrdered());
+
+ // addAndGetAll
+ op = multiClazz.getOperations("addAndGetAll").iterator().next();
+ assertNotNull(op);
+ assertEquals("org.nuiton.eugene.test21.DataType1", op.getReturnType());
+ assertNotNull(op.getReturnParameter());
+ assertEquals("org.nuiton.eugene.test21.DataType1", op.getReturnParameter().getType());
+ assertEquals(3, op.getReturnParameter().getMinMultiplicity());
+ assertEquals(19, op.getReturnParameter().getMaxMultiplicity());
+ assertTrue(op.getReturnParameter().isUnique());
+ assertFalse(op.getReturnParameter().isOrdered());
+
+ // param strings
+ ObjectModelParameter param = findParameter(op, "strings");
+ assertNotNull(param);
+ assertEquals("String", param.getType());
+ assertEquals(1, param.getMinMultiplicity());
+ assertEquals(-1, param.getMaxMultiplicity());
+ assertTrue(param.isUnique());
+ assertFalse(param.isOrdered());
+
+ // param doubles
+ param = findParameter(op, "doubles");
+ assertNotNull(param);
+ assertEquals("org.nuiton.eugene.test21.double", param.getType());
+ assertEquals(5, param.getMinMultiplicity());
+ assertEquals(-1, param.getMaxMultiplicity());
+ assertTrue(param.isUnique());
+ assertTrue(param.isOrdered());
+
+ // param dataTypes
+ param = findParameter(op, "dataTypes");
+ assertNotNull(param);
+ assertEquals("org.nuiton.eugene.test21.DataType1", param.getType());
+ assertEquals(1, param.getMinMultiplicity());
+ assertEquals(18, param.getMaxMultiplicity());
+ assertFalse(param.isUnique());
+ assertTrue(param.isOrdered());
+
+ }
+
+ private ObjectModelParameter findParameter(ObjectModelOperation op, String name) {
+ for (ObjectModelParameter param : op.getParameters()) {
+ if (name.equals(param.getName())) {
+ return param;
+ }
+ }
+ return null;
+ }
+
+
+ /**
+ * Apply XSL stylesheet on a topcased model.
+ * And make test on embedded primitive type
+ *
+ * @throws URISyntaxException
+ * @throws IOException
+ * @throws TransformerException
+ */
+ @Test
+ public void testXSLTestXMI21StaticAndDefaultValueAttribute() throws URISyntaxException, IOException,
+ TransformerException {
+
+ ObjectModel model = xmiToObjectModel("TestXMI21");
+
+ // StaticClass
+ ObjectModelClass multiClazz = model.getClass("org.nuiton.eugene.test21.StaticClass");
+
+ // strings
+ ObjectModelAttribute strings = multiClazz.getAttribute("azerty");
+ assertNotNull(strings);
+ assertEquals("String", strings.getType());
+ assertTrue(strings.isStatic());
+ assertEquals("azerty",strings.getDefaultValue());
+
+ // static operation
+ ObjectModelClass classD = model.getClass("org.nuiton.eugene.test21.ClassD");
+ assertNotNull(classD);
+ List<ObjectModelOperation> operations = (List<ObjectModelOperation>)classD.getOperations("getInstance");
+ assertEquals(operations.size(), 1);
+ assertTrue(operations.get(0).isStatic());
+ }
+
+ /**
+ * Apply XSL stylesheet on a topcased model.
+ * And make test on embedded primitive type
+ *
+ * @throws URISyntaxException
+ * @throws IOException
+ * @throws TransformerException
+ */
+ @Test
+ public void testTestXMI21SuperClasses() throws URISyntaxException, IOException,
+ TransformerException {
+
+ ObjectModel model = xmiToObjectModel("TestXMI21");
+
+ // StaticClass
+ ObjectModelClass multiClazz = model.getClass("org.nuiton.eugene.test21.StaticClass");
+
+ // SubClass
+ ObjectModelClass subClazz = model.getClass("org.nuiton.eugene.test21.SubClass");
+ assertNotNull(subClazz);
+ assertNotNull(subClazz.getSuperclasses());
+ assertEquals(1, subClazz.getSuperclasses().size());
+ assertEquals(multiClazz, subClazz.getSuperclasses().iterator().next());
+
+ // TODO test attributes
+ }
+
+ /**
+ * Apply XSL stylesheet on a topcased model.
+ * Test for InnerClasses
+ *
+ * @throws URISyntaxException
+ * @throws IOException
+ * @throws TransformerException
+ */
+ @Test
+ public void testTestXMI21InnerClasses() throws URISyntaxException, IOException,
+ TransformerException {
+
+ ObjectModel model = xmiToObjectModel("TestXMI21");
+
+ // OuterClass
+ ObjectModelClass outer = model.getClass("org.nuiton.eugene.test21.OuterClass");
+
+ List<ObjectModelClassifier> inners = (List<ObjectModelClassifier>)outer.getInnerClassifiers();
+ assertNotNull(inners);
+ assertEquals(inners.size(), 1);
+
+ // InnerClass
+ ObjectModelClass inner = (ObjectModelClass) inners.get(0);
+ assertNotNull(inner);
+ assertNotNull(inner.getDeclaringElement());
+ assertEquals(inner.getDeclaringElement().getName(), "OuterClass");
+ assertTrue(inner.isInner());
+ }
+
+ /**
+ * Apply XSL stylesheet on TestXMI21
+ * Check documentation tags on model, class, attribute, operation and enumerations
+ */
+ @Test
+ public void testTestXMI21Documentation() throws URISyntaxException, IOException,
+ TransformerException {
+
+ ObjectModel model = xmiToObjectModel("TestXMI21");
+
+ assertNotNull(model);
+ assertEquals("XMITest21", model.getName());
+ assertEquals("model doc!", model.getTagValue("documentation"));
+
+ // ClassC
+ ObjectModelClass clazzC = model.getClass("org.nuiton.eugene.test21.ClassC");
+ assertNotNull(clazzC);
+ assertEquals("Class C Comment", clazzC.getDocumentation());
+
+ ObjectModelAttribute attrCost = clazzC.getAttribute("formula");
+ assertNotNull(attrCost);
+ assertEquals("azerty", attrCost.getDocumentation());
+
+ ObjectModelOperation opLaunchExpression = clazzC.getOperations("launchException").iterator().next();
+ assertNotNull(opLaunchExpression);
+ assertEquals("launchExcep comment", opLaunchExpression.getDocumentation());
+
+ assertFalse(model.getEnumerations().isEmpty());
+
+ ObjectModelEnumeration myenum = model.getEnumeration("org.nuiton.eugene.test21.MyEnumeration");
+ assertNotNull(myenum);
+ assertEquals("MyEnumeration is just a simply enumeration in order to test documentation in enumeration.", myenum.getDocumentation());
+
+
+ // ClassB
+ ObjectModelClass clazzB = model.getClass("org.nuiton.eugene.test21.ClassB");
+ assertNotNull(clazzB);
+ assertEquals("This is some documentation\non multiple lines !\n\nVery hard to do !", clazzB.getDocumentation());
+
+ }
+
+}
Modified: trunk/eugene/src/test/java/org/nuiton/eugene/models/object/xml/ObjectModelBuilderTest.java
===================================================================
--- trunk/eugene/src/test/java/org/nuiton/eugene/models/object/xml/ObjectModelBuilderTest.java 2009-12-20 14:45:41 UTC (rev 776)
+++ trunk/eugene/src/test/java/org/nuiton/eugene/models/object/xml/ObjectModelBuilderTest.java 2009-12-20 16:27:20 UTC (rev 777)
@@ -29,16 +29,8 @@
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
-import org.nuiton.eugene.models.object.ObjectModel;
+import org.nuiton.eugene.models.object.*;
import static org.junit.Assert.*;
-import org.nuiton.eugene.models.object.ObjectModelAssociationClass;
-import org.nuiton.eugene.models.object.ObjectModelAttribute;
-import org.nuiton.eugene.models.object.ObjectModelClass;
-import org.nuiton.eugene.models.object.ObjectModelClassifier;
-import org.nuiton.eugene.models.object.ObjectModelElement;
-import org.nuiton.eugene.models.object.ObjectModelModifier;
-import org.nuiton.eugene.models.object.ObjectModelOperation;
-import org.nuiton.eugene.models.object.ObjectModelParameter;
/**
* ObjectModelBuilder
Modified: trunk/eugene/src/test/java/org/nuiton/eugene/models/state/StateModelTest.java
===================================================================
--- trunk/eugene/src/test/java/org/nuiton/eugene/models/state/StateModelTest.java 2009-12-20 14:45:41 UTC (rev 776)
+++ trunk/eugene/src/test/java/org/nuiton/eugene/models/state/StateModelTest.java 2009-12-20 16:27:20 UTC (rev 777)
@@ -28,7 +28,6 @@
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
-import org.nuiton.eugene.StateModelReader;
import org.nuiton.util.Resource;
/**
Modified: trunk/maven-eugene-plugin/src/it/smart-generate/generators/src/main/java/org/nuiton/eugene/test/generator/BeanGenerator.java
===================================================================
--- trunk/maven-eugene-plugin/src/it/smart-generate/generators/src/main/java/org/nuiton/eugene/test/generator/BeanGenerator.java 2009-12-20 14:45:41 UTC (rev 776)
+++ trunk/maven-eugene-plugin/src/it/smart-generate/generators/src/main/java/org/nuiton/eugene/test/generator/BeanGenerator.java 2009-12-20 16:27:20 UTC (rev 777)
@@ -33,7 +33,6 @@
package org.nuiton.eugene.test.generator;
import org.apache.commons.lang.StringUtils;
-import static org.nuiton.eugene.test.generator.TopiaGeneratorUtil.TAG_ANNOTATION;
import java.io.File;
import java.io.IOException;
@@ -46,9 +45,11 @@
import java.util.List;
import java.util.Set;
+import java.util.HashSet;
+import org.apache.commons.lang.StringUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import org.nuiton.eugene.ObjectModelGenerator;
+import org.nuiton.eugene.models.object.ObjectModelGenerator;
import org.nuiton.eugene.GeneratorUtil;
import org.nuiton.eugene.ImportsManager;
import org.nuiton.eugene.models.object.ObjectModelAttribute;
@@ -58,16 +59,20 @@
import org.nuiton.eugene.models.object.ObjectModelInterface;
import org.nuiton.eugene.models.object.ObjectModelOperation;
import org.nuiton.eugene.models.object.ObjectModelParameter;
-//import org.nuiton.topia.persistence.TopiaEntity;
-import static org.nuiton.eugene.test.generator.TopiaGeneratorUtil.isPrimitiveType;
-import static org.nuiton.eugene.test.generator.TopiaGeneratorUtil.isDateType;
/**
* DTO generator
* @plexus.component role="org.nuiton.eugene.Template" role-hint="org.nuiton.eugene.test.generator.BeanGenerator"
*/
public class BeanGenerator extends ObjectModelGenerator {
-
+ /** Tag pour ajouter une annotation à un champ */
+ public static final String TAG_ANNOTATION = "annotation";
+ /** Stéréotype pour les objets devant être générées sous forme d'entités */
+ public static final String STEREOTYPE_ENTITY = "entity";
+ /** Stéréotype pour les objets devant être générées sous forme de DTO */
+ public static final String STEREOTYPE_DTO = "dto";
+ /** Stéréotype pour les objets devant être générées sous forme de bean */
+ public static final String STEREOTYPE_BEAN = "bean";
/**
* Logger for this class
*/
@@ -84,18 +89,18 @@
@Override
public void generateFromClass(Writer output, ObjectModelClass clazz) throws IOException {
- if (!clazz.hasStereotype(TopiaGeneratorUtil.STEREOTYPE_BEAN) &&
- !clazz.hasStereotype(TopiaGeneratorUtil.STEREOTYPE_DTO)) {
+ if (!clazz.hasStereotype(STEREOTYPE_BEAN) &&
+ !clazz.hasStereotype(STEREOTYPE_DTO)) {
return;
}
//
// première phase : calcul des variables
//
- String copyright = TopiaGeneratorUtil.getCopyright(model);
+ String copyright = "";
String clazzName = clazz.getName();
String abstractStr = isAbstract(clazz) ? " abstract " : " ";
boolean needGetEntityMethod = false;
- boolean generateToString = TopiaGeneratorUtil.generateToString(clazz, model);
+ boolean generateToString = true;
ImportsManager imports = new ImportsManager();
@@ -116,14 +121,14 @@
}
}
// Add Serializable implements for DTO generation
- if (clazz.hasStereotype(TopiaGeneratorUtil.STEREOTYPE_DTO)) {
+ if (clazz.hasStereotype(STEREOTYPE_DTO)) {
imports.addImport(Serializable.class);
if (!implInterface.isEmpty()) {
implInterface += ", ";
}
implInterface += Serializable.class.getName();
}
- String svUID = TopiaGeneratorUtil.findTagValue("dto-serialVersionUID", clazz, model);
+ String svUID = "1L";
List<ObjectModelAttribute> attributes = new ArrayList<ObjectModelAttribute>();
List<ObjectModelAttribute> multipleAttr = new ArrayList<ObjectModelAttribute>();
@@ -142,7 +147,7 @@
if (model.hasClass(attr.getType())) {
attrEntity = model.getClass(attr.getType());
}
- boolean isEntity = (attrEntity != null && attrEntity.hasStereotype(TopiaGeneratorUtil.STEREOTYPE_ENTITY));
+ boolean isEntity = (attrEntity != null && attrEntity.hasStereotype(STEREOTYPE_ENTITY));
needGetEntityMethod |= isEntity;
if (attr.isOrdered()) {
needListInImport = true;
@@ -174,7 +179,7 @@
imports.addImport(org.apache.commons.lang.builder.ToStringBuilder.class);
}
- boolean sortAttribute = TopiaGeneratorUtil.sortAttribute(clazz, model);
+ boolean sortAttribute = true;
if (sortAttribute) {
Comparator<ObjectModelAttribute> comp = new Comparator<ObjectModelAttribute>(){
@@ -190,7 +195,7 @@
// seconde phase : génération
//
- if (TopiaGeneratorUtil.notEmpty(copyright)) {
+ if (StringUtils.isNotEmpty(copyright)) {
/*{<%=copyright%>
}*/
}
@@ -323,7 +328,7 @@
continue;
}
- if (TopiaGeneratorUtil.hasDocumentation(attr)) {
+ if (GeneratorUtil.hasDocumentation(attr)) {
/*{ /**
* <%=attr.getDocumentation()%>
*)
@@ -338,7 +343,7 @@
String attrVisibility = attr.getVisibility();
String attrType = attr.getType();
if (attr.hasAssociationClass()) {
- String assocAttrName = TopiaGeneratorUtil.getAssocAttrName(attr);
+ String assocAttrName = getAssocAttrName(attr);
attrName = GeneratorUtil.toLowerCaseFirstLetter(assocAttrName);
attrType = attr.getAssociationClass().getName();
}
@@ -355,6 +360,24 @@
}
}
+ /**
+ * Renvoie le nom de l'attribut de classe d'association en fonction des cas:
+ * Si l'attribut porte le même nom que le type (extrémité inverse de
+ * l'association), on lui ajoute le nom de la classe d'association
+ *
+ * @param attr l'attribut a traiter
+ * @return le nom de l'attribut de classe d'association
+ */
+ public static String getAssocAttrName(ObjectModelAttribute attr) {
+ String typeName = attr.getType().substring(
+ attr.getType().lastIndexOf(".") + 1);
+ String result = attr.getName();
+ if (attr.getName().equalsIgnoreCase(typeName)) {
+ result += StringUtils.capitalize(attr.getAssociationClass().getName());
+ }
+ return result;
+ }
+
protected void generateGetters(Writer output, List<ObjectModelAttribute> attributes) throws IOException {
/*
* Définition des getteurs et setteurs
@@ -368,7 +391,7 @@
String attrName = attr.getName();
String attrType = attr.getType();
if (attr.hasAssociationClass()) {
- String assocAttrName = TopiaGeneratorUtil.getAssocAttrName(attr);
+ String assocAttrName = getAssocAttrName(attr);
attrName = GeneratorUtil.toLowerCaseFirstLetter(assocAttrName);
attrType = attr.getAssociationClass().getName();
}
@@ -402,7 +425,7 @@
String attrType = attr.getType();
if (attr.hasAssociationClass()) {
- String assocAttrName = TopiaGeneratorUtil.getAssocAttrName(attr);
+ String assocAttrName = getAssocAttrName(attr);
attrName = GeneratorUtil.toLowerCaseFirstLetter(assocAttrName);
attrType = attr.getAssociationClass().getName();
}
@@ -439,7 +462,7 @@
if (model.hasClass(attr.getType())) {
attrEntity = model.getClass(attr.getType());
}
- boolean isEntity = (attrEntity != null && attrEntity.hasStereotype(TopiaGeneratorUtil.STEREOTYPE_ENTITY));
+ boolean isEntity = (attrEntity != null && attrEntity.hasStereotype("entity"));
/*{ public <%=attrType%> get<%=attrNameCapitalized%>(int index) {
<%=attrType%> o = getChild(<%=attrName%>, index);
return o;
@@ -502,7 +525,7 @@
String opName = op.getName();
/*{ /**
}*/
- if (TopiaGeneratorUtil.hasDocumentation(op)) {
+ if (GeneratorUtil.hasDocumentation(op)) {
String opDocumentation = op.getDocumentation();
/*{ * <%=opName%> : <%=opDocumentation%>
}*/
@@ -591,7 +614,7 @@
private List<ObjectModelAttribute> setAttributesForDTO(ObjectModelClass clazz,
List<ObjectModelAttribute> attributes, ImportsManager imports) {
- if (clazz.hasStereotype(TopiaGeneratorUtil.STEREOTYPE_DTO)) {
+ if (clazz.hasStereotype(STEREOTYPE_DTO)) {
if (log.isInfoEnabled()) {
log.info("DTO dependency gestion");
}
@@ -601,7 +624,7 @@
// ENTITY dependency
// Copy all primitives attributes from the Entity (supplier) to the DTO
// Prepare a list to future generation of all object generated attributes
- if (supplier.hasStereotype(TopiaGeneratorUtil.STEREOTYPE_ENTITY)) {
+ if (supplier.hasStereotype(STEREOTYPE_ENTITY)) {
if (log.isInfoEnabled()) {
log.info("Create primitive and date fields in DTO from Entity : "
+ supplier.getQualifiedName());
@@ -620,4 +643,65 @@
}
return attributes;
}
+
+ private static final Set<String> numberTypes = new HashSet<String>();
+ private static final Set<String> textTypes = new HashSet<String>();
+ private static final Set<String> booleanTypes = new HashSet<String>();
+ private static final Set<String> primitiveTypes = new HashSet<String>();
+
+ static {
+ numberTypes.add("byte");
+ numberTypes.add("java.lang.Byte");
+ numberTypes.add("Byte");
+ numberTypes.add("short");
+ numberTypes.add("java.lang.Short");
+ numberTypes.add("Short");
+ numberTypes.add("int");
+ numberTypes.add("java.lang.Integer");
+ numberTypes.add("Integer");
+ numberTypes.add("long");
+ numberTypes.add("java.lang.Long");
+ numberTypes.add("Long");
+ numberTypes.add("float");
+ numberTypes.add("java.lang.Float");
+ numberTypes.add("Float");
+ numberTypes.add("double");
+ numberTypes.add("java.lang.Double");
+ numberTypes.add("Double");
+
+ textTypes.add("char");
+ textTypes.add("java.lang.Char");
+ textTypes.add("Char");
+ textTypes.add("java.lang.String");
+ textTypes.add("String");
+
+ booleanTypes.add("boolean");
+ booleanTypes.add("java.lang.Boolean");
+ booleanTypes.add("Boolean");
+
+ primitiveTypes.addAll(numberTypes);
+ primitiveTypes.addAll(textTypes);
+ primitiveTypes.addAll(booleanTypes);
+ }
+
+ public static boolean isNumericType(ObjectModelAttribute attr) {
+ return numberTypes.contains(attr.getType());
+ }
+
+ public static boolean isTextType(ObjectModelAttribute attr) {
+ return textTypes.contains(attr.getType());
+ }
+
+ public static boolean isDateType(ObjectModelAttribute attr) {
+ return "java.util.Date".equals(attr.getType());
+ }
+
+ public static boolean isBooleanType(ObjectModelAttribute attr) {
+ return booleanTypes.contains(attr.getType());
+ }
+
+ public static boolean isPrimitiveType(ObjectModelAttribute attr) {
+ return primitiveTypes.contains(attr.getType());
+ }
+
} //BeanGenerator
Modified: trunk/maven-eugene-plugin/src/it/smart-generate/generators/src/main/java/org/nuiton/eugene/test/generator/BeanTransformer.java
===================================================================
--- trunk/maven-eugene-plugin/src/it/smart-generate/generators/src/main/java/org/nuiton/eugene/test/generator/BeanTransformer.java 2009-12-20 14:45:41 UTC (rev 776)
+++ trunk/maven-eugene-plugin/src/it/smart-generate/generators/src/main/java/org/nuiton/eugene/test/generator/BeanTransformer.java 2009-12-20 16:27:20 UTC (rev 777)
@@ -52,8 +52,8 @@
@Override
public void transformFromClass(ObjectModelClass clazz) {
- if (!clazz.hasStereotype(TopiaGeneratorUtil.STEREOTYPE_BEAN) &&
- !clazz.hasStereotype(TopiaGeneratorUtil.STEREOTYPE_DTO)) {
+ if (!clazz.hasStereotype(BeanGenerator.STEREOTYPE_BEAN) &&
+ !clazz.hasStereotype(BeanGenerator.STEREOTYPE_DTO)) {
return;
}
@@ -112,7 +112,7 @@
if (getModel().hasClass(attr.getType())) {
attrEntity = getModel().getClass(attr.getType());
}
- boolean isEntity = (attrEntity != null && attrEntity.hasStereotype(TopiaGeneratorUtil.STEREOTYPE_ENTITY));
+ boolean isEntity = (attrEntity != null && attrEntity.hasStereotype(BeanGenerator.STEREOTYPE_ENTITY));
if (isEntity) {
hasEntity = true;
@@ -165,7 +165,7 @@
}
if (attr.hasAssociationClass()) {
- String assocAttrName = TopiaGeneratorUtil.getAssocAttrName(attr);
+ String assocAttrName = BeanGenerator.getAssocAttrName(attr);
attrName = GeneratorUtil.toLowerCaseFirstLetter(assocAttrName);
attrType = attr.getAssociationClass().getName();
}
@@ -260,11 +260,11 @@
private void createForDTO(ObjectModelClass resultClass, ObjectModelClass inputClass) {
// Add Serializable implements for DTO generation
- if (inputClass.hasStereotype(TopiaGeneratorUtil.STEREOTYPE_DTO)) {
+ if (inputClass.hasStereotype(BeanGenerator.STEREOTYPE_DTO)) {
addInterface(resultClass, "java.io.Serializable");
}
- String svUID = TopiaGeneratorUtil.findTagValue("dto-serialVersionUID", inputClass, getModel());
+ String svUID = "1L";
if (svUID != null) {
addConstant(resultClass, "serialVersionUID", "long", svUID, ObjectModelModifier.PUBLIC);
}
Deleted: trunk/maven-eugene-plugin/src/it/smart-generate/generators/src/main/java/org/nuiton/eugene/test/generator/TopiaGeneratorUtil.java
===================================================================
--- trunk/maven-eugene-plugin/src/it/smart-generate/generators/src/main/java/org/nuiton/eugene/test/generator/TopiaGeneratorUtil.java 2009-12-20 14:45:41 UTC (rev 776)
+++ trunk/maven-eugene-plugin/src/it/smart-generate/generators/src/main/java/org/nuiton/eugene/test/generator/TopiaGeneratorUtil.java 2009-12-20 16:27:20 UTC (rev 777)
@@ -1,948 +0,0 @@
-/* *##%
- * EUGene Test
- * Copyright (C) 2007 - 2009 CodeLutin
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation, either version 3 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 Lesser Public License for more details.
- *
- * You should have received a copy of the GNU General Lesser Public
- * License along with this program. If not, see
- * <http://www.gnu.org/licenses/lgpl-3.0.html>.
- * ##%*/
-/*******************************************************************************
- * GeneratorUtil.java
- *
- * Created: 13 déc. 2005
- *
- * @author Arnaud Thimel <thimel(a)codelutin.com>
- *
- * @version $Revision$
- *
- * Mise a jour: $Date$ par : $Author: tchemit $
- */
-package org.nuiton.eugene.test.generator;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.Set;
-
-import org.apache.commons.lang.StringUtils;
-import org.nuiton.eugene.Template;
-import org.nuiton.eugene.GeneratorUtil;
-import org.nuiton.eugene.models.Model;
-import org.nuiton.eugene.models.object.ObjectModel;
-import org.nuiton.eugene.models.object.ObjectModelAssociationClass;
-import org.nuiton.eugene.models.object.ObjectModelAttribute;
-import org.nuiton.eugene.models.object.ObjectModelClass;
-import org.nuiton.eugene.models.object.ObjectModelElement;
-import org.nuiton.eugene.models.object.ObjectModelInterface;
-import org.nuiton.eugene.models.object.ObjectModelOperation;
-import org.nuiton.eugene.models.object.ObjectModelParameter;
-
-/** Classe regroupant divers méthodes utiles pour la génération des entités */
-public class TopiaGeneratorUtil extends GeneratorUtil {
-
- /** Stéréotype pour les interfaces devant être générées sous forme de facades */
- public final static String STEREOTYPE_FACADE = "facade";
- /** Stéréotype pour les objets devant être générées sous forme d'entités */
- public static final String STEREOTYPE_ENTITY = "entity";
- /** Stéréotype pour les objets devant être générées sous forme de DTO */
- public static final String STEREOTYPE_DTO = "dto";
- /** Stéréotype pour les objets devant être générées sous forme de bean */
- public static final String STEREOTYPE_BEAN = "bean";
- /**
- * Stéréotype pour les interfaces devant être générées sous forme de
- * services
- */
- public static final String STEREOTYPE_SERVICE = "service";
- /** Stéréotype pour les interfaces devant être générées sous forme de DAO */
- public static final String STEREOTYPE_DAO = "dao";
- /** Stéréotype pour les attributs à indexer en base */
- public static final String STEREOTYPE_INDEXED = "indexed";
- /** Stéréotype pour les collections avec unicité */
- public static final String STEREOTYPE_UNIQUE = "unique";
- /** Stéréotype pour les attributs étant des clés primaires */
- public static final String STEREOTYPE_PRIMARYKAY = "primaryKey";
- /** Tag pour le type de persistence */
- public static final String TAG_PERSISTENCE_TYPE = "persistenceType";
- /** Tag pour le nom du champ / entité en BD */
- public static final String TAG_DB_NAME = "dbName";
- /** Tag pour le nom du schema en BD */
- public static final String TAG_SCHEMA_NAME = "dbSchema";
- /** Tag pour la taille du champ en BD */
- public static final String TAG_LENGTH = "length";
- /** Tag pour ajouter une annotation à un champ */
- public static final String TAG_ANNOTATION = "annotation";
- /** Tag pour ajouter specifier le copyright d'un fichier */
- public static final String TAG_COPYRIGHT = "copyright";
- /** Tag pour specfier le type d'acces a un champ */
- public static final String TAG_ACCESS = "access";
- /** Tag pour specfier si on doit générer i18n */
- public static final String TAG_I18N_PREFIX = "i18n";
- /** Tag pour ajouter un attribut dans une clef métier */
- public static final String TAG_NATURAL_ID = "naturalId";
- /** Tag pour specifier si une clef metier est mutable */
- public static final String TAG_NATURAL_ID_MUTABLE = "naturalIdMutable";
- /** Tag pour spécifier la caractèrelazy d'une association multiple */
- public static final String TAG_LAZY = "lazy";
- /** Tag pour spécifier la caractère fetch d'une association multiple */
- public static final String TAG_FETCH = "fetch";
- /** Tag pour spécifier la caractère order-by d'une association multiple */
- public static final String TAG_ORDER_BY = "orderBy";
- /** Tag pour spécifier la caractère not-null d'un attribut */
- public static final String TAG_NOT_NULL = "notNull";
- /** Tag pour spécifier la caractère embed-xml d'une association */
- public static final String TAG_EMBED_XML = "embedXml";
- /**
- * Tag pour configurer l'interface du proxy sur autre chose que l'implementation par defaut.
- *
- * Par defaut :
- * null > generere le proxy sur l'interface de l'implementation
- * Autre valeur :
- * "none" > laisse la configuration par defaut d'hibernate
- */
- public static final String TAG_PROXY_INTERFACE = "hibernateProxyInterface";
- /** Tag pour spécifier le permissions à la création */
- public static final String TAG_SECURITY_CREATE = "securityCreate";
- /** Tag pour spécifier le permissions au chargement */
- public static final String TAG_SECURITY_LOAD = "securityLoad";
- /** Tag pour spécifier le permissions à la mise à jour */
- public static final String TAG_SECURITY_UPDATE = "securityUpdate";
- /** Tag pour spécifier le permissions à la suppression */
- public static final String TAG_SECURITY_DELETE = "securityDelete";
- /** Tag pour specifier de ne pas generer la methode toString */
- public static final String TAG_NOT_GENERATE_TO_STRING = "notGenerateToString";
- /** Tag pour specifier de trier les attributs par nom lors de la generation */
- public static final String TAG_SORT_ATTRIBUTE = "sortAttribute";
- /** Tag pour specfier si on doit générer la methode getOperator dans les daohelpers )*/
- public static final String TAG_GENERATE_OPERATOR_FOR_DAO_HELPER = "generateOperatorForDAOHelper";
- /** Type de persistence Hibernate */
- public static final String PERSISTENCE_TYPE_HIBERNATE = "hibernate";
- /** Type de persistence LDAP */
- public static final String PERSISTENCE_TYPE_LDAP = "ldap";
- /** Type de persistence par défaut (si aucun précisé) */
- public static final String PERSISTENCE_TYPE_DEFAULT = PERSISTENCE_TYPE_HIBERNATE;
- /** Propriété des générateurs indiquant le package par défaut */
- public static final String PROPERTY_DEFAULT_PACKAGE = "defaultPackage";
- /** Le package par défaut si aucun n'est spécifié */
- public static final String DEFAULT_PACKAGE = "org.codelutin.malo";
-
- /**
- * Renvoie le package par défaut pour le générateur donné
- *
- * @param generator le générateur donné
- * @return le package par défaut du générator donné
- */
- public static String getDefaultPackage(Template generator) {
- String packageName = generator.getProperty(PROPERTY_DEFAULT_PACKAGE);
- if (packageName == null || "".equals(packageName)) {
- packageName = DEFAULT_PACKAGE;
- }
- return packageName;
- }
-
-// /**
-// * @see GeneratorUtil#hasDocumentation
-// * @deprecated
-// */
-// @Deprecated
-// public static boolean hasDocumentation(ObjectModelElement element) {
-// return notEmpty(element.getDocumentation());
-// }
-
-// /**
-// * @see GeneratorUtil#notEmpty
-// * @deprecated
-// */
-// @Deprecated
-// public static boolean notEmpty(String s) {
-// return (s != null && !"".equals(s));
-// }
-
- /**
- * Renvoie l'interface DAO associée à la classe passée en paramètre
- *
- * @param clazz la classe à tester
- * @param model le modele utilisé
- * @return l'interface trouvée ou null sinon
- */
- public static ObjectModelInterface getDAOInterface(ObjectModelClass clazz,
- ObjectModel model) {
- for (Object o : model.getInterfaces()) {
- ObjectModelInterface daoInterface = (ObjectModelInterface) o;
- if (daoInterface.getName().equals(clazz.getName() + "DAO")) {
- if (daoInterface.hasStereotype(STEREOTYPE_DAO)) {
- return daoInterface;
- }
- }
- }
- return null;
- }
-
- /**
- * Renvoie le type de persistence pour l'élément donné. Si aucun n'est
- * trouvé, le type par défaut est utilisé
- *
- * @param element l'élément à tester
- * @return le type de persitence pour l'élément donné.
- */
- public static String getPersistenceType(ObjectModelElement element) {
- String tag = element.getTagValue(TAG_PERSISTENCE_TYPE);
- if (tag == null) {
- tag = PERSISTENCE_TYPE_DEFAULT;
- }
- return tag;
- }
-
- public static String getReverseDBName(ObjectModelAttribute attr) {
- if (attr.getReverseAttribute() != null) {
- return getDBName(attr.getReverseAttribute());
- } else {
- return getDBName(attr) + "_id";
- }
- }
-
- /**
- * Renvoie le nom BD de l'élement passé en paramètre. Elle se base sur le
- * tag associé si il existe, sinon sur le nom de l'élément
- *
- * @param element l'élément à tester
- * @return le nom de table
- */
- public static String getDBName(ObjectModelElement element) {
- if (element == null) {
- return null;
- }
- if (notEmpty(element.getTagValue(TAG_DB_NAME))) {
- return element.getTagValue(TAG_DB_NAME);
- }
- return toLowerCaseFirstLetter(element.getName());
- }
-
- /**
- * Cherche et renvoie le schema a utiliser sur cet element, sinon sur le model.
- *
- * @param element l'élément à tester
- * @param model le modele utilisé
- * @return le nom du schema ou null
- */
- public static String getSchemaName(ObjectModelElement element,
- ObjectModel model) {
- return findTagValue(TAG_SCHEMA_NAME, element, model);
- }
-
- /**
- * Cherche et renvoie le prefixe i18n à utiliser sur cet element, sinon sur le model.
- *
- * @param element l'élément à tester
- * @param model le modele utilisé
- * @return le prefix i18n ou <code>null</code> si non spécifié
- */
- public static String getI18nPrefix(ObjectModelElement element,
- ObjectModel model) {
- return GeneratorUtil.findTagValue(TAG_I18N_PREFIX, element, model);
- }
-
- /**
- * Cherche et renvoie le prefixe i18n à utiliser sur cet element, sinon sur le model.
- *
- * @param element l'élément à tester
- * @param model le modele utilisé
- * @return le prefix i18n ou <code>null</code> si non spécifié
- */
- public static boolean shouldgenerateOperatorForDAOHelper(ObjectModelElement element,
- ObjectModel model) {
- String tagValue = GeneratorUtil.findTagValue(TAG_GENERATE_OPERATOR_FOR_DAO_HELPER, element, model);
- boolean generate = GeneratorUtil.notEmpty(tagValue) && Boolean.valueOf(tagValue);
- return generate;
- }
-
- /**
- * Cherche et renvoie la liste des attributs constituant la clef metier d'une classe.
- *
- * @param clazz la classe à tester
- * @return la liste des attributs de la clef métier ou null si pas de clef métier.
- */
- public static List<String> getNaturalId(ObjectModelClass clazz) {
- String value = clazz.getTagValue(TAG_NATURAL_ID);
- if (value == null || value.trim().isEmpty()) {
- return java.util.Collections.emptyList();
- }
- List<String> result = new ArrayList<String>();
- for (String attribute : value.split(",")) {
- result.add(attribute.trim());
- }
- return result;
- }
-
- /**
- * Cherche et renvoie la liste des attributs constituant la clef metier d'une classe.
- *
- * @param clazz la classe à tester
- * @param model le modele
- * @return la liste des attributs de la clef métier ou null si pas de clef métier.
- */
- public static boolean generateToString(ObjectModelClass clazz,
- ObjectModel model) {
- String value;
- value = model.getTagValue(TAG_NOT_GENERATE_TO_STRING);
- if (value != null && !value.trim().isEmpty()) {
- return false;
- }
- value = clazz.getTagValue(TAG_NOT_GENERATE_TO_STRING);
- if (value != null && !value.trim().isEmpty()) {
- return false;
- }
- return true;
- }
-
- /**
- * Cherche et renvoie la liste des attributs constituant la clef metier d'une classe.
- *
- * @param clazz la classe à tester
- * @param model le modele
- * @return la liste des attributs de la clef métier ou null si pas de clef métier.
- */
- public static boolean sortAttribute(ObjectModelClass clazz,
- ObjectModel model) {
- String value;
- value = clazz.getTagValue(TAG_SORT_ATTRIBUTE);
- if (value == null || value.trim().isEmpty() || "false".equals(value.trim())) {
- return false;
- }
- if (value != null && "true".equals(value.trim())) {
- return true;
- }
-
- value = model.getTagValue(TAG_SORT_ATTRIBUTE);
- if (value == null || value.trim().isEmpty() || "false".equals(value.trim())) {
- return false;
- }
- if (value != null && "true".equals(value.trim())) {
- return true;
- }
- return true;
- }
-
- /**
- * Detecte si un attribut fait partie d'une clef metier.
- *
- * @param attribute l'attribut à tester
- * @return <code>true</code> si l'attribut fait partie d'une clef metier, <code>false</cdoe> sinon.
- */
- public static boolean isNaturalId(ObjectModelAttribute attribute) {
- String value = attribute.getTagValue(TAG_NATURAL_ID);
- if (!GeneratorUtil.notEmpty(value)) {
- // valeur null, donc pas positionnee
- return false;
- }
- try {
- return Boolean.valueOf(value.trim());
- } catch (Exception e) {
- // on a pas reussi a convertir en boolean.
- //todo peut-être declancher une exception ?
- return false;
- }
- }
-
- /**
- * Cherches et renvoie le copyright a utiliser sur le model.
- *
- * @param model le modele utilisé
- * @return le texte du copyright ou null
- */
- public static String getCopyright(Model model) {
- return findTagValue(TAG_COPYRIGHT, null, model);
- }
-
-// /**
-// * @see GeneratorUtil#findTagValue
-// * @deprecated
-// */
-// @Deprecated
-// public static String findTagValue(String tagName,
-// ObjectModelElement element, Model model) {
-// if (element == null) {
-// if (model != null) {
-// if (notEmpty(model.getTagValue(tagName))) {
-// return model.getTagValue(tagName);
-// }
-// }
-// return null;
-// }
-// if (notEmpty(element.getTagValue(tagName))) {
-// return element.getTagValue(tagName);
-// }
-// //On va chercher sur l'element declarant
-// return findTagValue(tagName, element.getDeclaringElement(), model);
-// }
-
- public static <Type extends ObjectModelElement> Collection<Type> getElementsWithStereotype(
- Collection<Type> elements, String... stereotypes) {
- Collection<Type> result = new ArrayList<Type>();
- for (Type element : elements) {
- if (hasStereotypes(element, stereotypes)) {
- result.add(element);
- }
- }
- return result;
- }
-
- public static boolean hasStereotypes(ObjectModelElement element,
- String... stereotypes) {
- for (String stereotype : stereotypes) {
- if (!element.hasStereotype(stereotype)) {
- return false;
- }
- }
- return true;
- }
-
- public static String getPrimaryKeyAttributesListDeclaration(
- ObjectModelClass clazz, boolean includeName) {
- String attributes = "";
- for (ObjectModelAttribute attr : getElementsWithStereotype(clazz.getAttributes(), STEREOTYPE_PRIMARYKAY)) {
- attributes += attr.getType();
- if (includeName) {
- attributes += " " + attr.getName();
- }
- attributes += ", ";
- }
- if (attributes.length() > 0) {
- attributes = attributes.substring(0, attributes.length() - 2);
- }
- return attributes;
- }
-
-// public static String capitalize(String s) {
-// return StringUtils.capitalize(s);
-// }
-
- public static boolean isAssociationClassDoublon(ObjectModelAttribute attr) {
- return (attr.getReverseAttribute() != null) && (attr.getDeclaringElement().equals(attr.getReverseAttribute().getDeclaringElement())) && (!GeneratorUtil.isFirstAttribute(attr));
- }
-
- /**
- * Renvoie le nom de l'attribut de classe d'association en fonction des cas:
- * Si l'attribut porte le même nom que le type (extrémité inverse de
- * l'association), on lui ajoute le nom de la classe d'association
- *
- * @param attr l'attribut a traiter
- * @return le nom de l'attribut de classe d'association
- */
- public static String getAssocAttrName(ObjectModelAttribute attr) {
- String typeName = attr.getType().substring(
- attr.getType().lastIndexOf(".") + 1);
- String result = attr.getName();
- if (attr.getName().equalsIgnoreCase(typeName)) {
- result += StringUtils.capitalize(attr.getAssociationClass().getName());
- }
- return result;
- }
-
- public static String getDOType(ObjectModelElement elem, ObjectModel model) {
- String type = elem.getName();
- if (elem instanceof ObjectModelAttribute) {
- type = ((ObjectModelAttribute) elem).getType();
- }
- if (elem instanceof ObjectModelClass) {
- type = ((ObjectModelClass) elem).getQualifiedName();
- }
- return getDOType(type, model);
- }
-
- public static String getDOType(String type, ObjectModel model) {
- if (!model.hasClass(type)) {
- return type;
- }
- ObjectModelClass clazz = model.getClass(type);
- if (clazz.hasStereotype(STEREOTYPE_ENTITY)) {
- if (shouldBeAbstract(clazz)) {
- type += "Abstract";
- } else {
- type += "Impl";
- }
- }
- return type;
- }
- private static final Set<String> numberTypes = new HashSet<String>();
- private static final Set<String> textTypes = new HashSet<String>();
- private static final Set<String> booleanTypes = new HashSet<String>();
- private static final Set<String> primitiveTypes = new HashSet<String>();
- private static final String VOID_TYPE = "void";
-
- static {
- numberTypes.add("byte");
- numberTypes.add("java.lang.Byte");
- numberTypes.add("Byte");
- numberTypes.add("short");
- numberTypes.add("java.lang.Short");
- numberTypes.add("Short");
- numberTypes.add("int");
- numberTypes.add("java.lang.Integer");
- numberTypes.add("Integer");
- numberTypes.add("long");
- numberTypes.add("java.lang.Long");
- numberTypes.add("Long");
- numberTypes.add("float");
- numberTypes.add("java.lang.Float");
- numberTypes.add("Float");
- numberTypes.add("double");
- numberTypes.add("java.lang.Double");
- numberTypes.add("Double");
-
- textTypes.add("char");
- textTypes.add("java.lang.Char");
- textTypes.add("Char");
- textTypes.add("java.lang.String");
- textTypes.add("String");
-
- booleanTypes.add("boolean");
- booleanTypes.add("java.lang.Boolean");
- booleanTypes.add("Boolean");
-
- primitiveTypes.addAll(numberTypes);
- primitiveTypes.addAll(textTypes);
- primitiveTypes.addAll(booleanTypes);
- }
-
- public static boolean isNumericType(ObjectModelAttribute attr) {
- return numberTypes.contains(attr.getType());
- }
-
- public static boolean isTextType(ObjectModelAttribute attr) {
- return textTypes.contains(attr.getType());
- }
-
- public static boolean isDateType(ObjectModelAttribute attr) {
- return "java.util.Date".equals(attr.getType());
- }
-
- public static boolean isBooleanType(ObjectModelAttribute attr) {
- return booleanTypes.contains(attr.getType());
- }
-
- public static boolean isPrimitiveType(ObjectModelAttribute attr) {
- return primitiveTypes.contains(attr.getType());
- }
-
- /**
- * Indique si la classe specifiee n'a aucune ou que des methodes abstraites
- *
- * @param clazz l'instance de ObjectModelClass
- * @return true si la classe n'a que des operations abstraite ou aucune
- * operation
- */
- public static boolean hasNothingOrAbstractMethods(ObjectModelClass clazz) {
- boolean result = true;
- Iterator<?> operations = clazz.getOperations().iterator();
- while (result && operations.hasNext()) {
- ObjectModelOperation op = (ObjectModelOperation) operations.next();
- result = op.isAbstract();
- }
- return result;
- }
-
- /**
- * Indique si la classe specifiee devrait etre abstraite
- *
- * @param clazz l'instance de ObjectModelClass
- * @return true dans ce cas, false sinon
- */
- public static boolean shouldBeAbstract(ObjectModelClass clazz) {
- return clazz != null && (clazz.isAbstract() && hasNothingOrAbstractMethods(clazz));
- }
-
- /**
- * <p>
- * Cette méthode permet de détecter si
- * - l'attribut représente une relation 1-n
- * - cette relation est unidirectionnelle
- * - le type de l'attribut représente un entité
- * - cette entité a des sous-classes dans le modèle
- * <p/>
- * Ce cas correspond à une incompatibilité d'Hibernate qui nous oblige a
- * adopter un comportement particulier.
- * </p>
- *
- * @param attr l'attribut a tester
- * @param model le model
- * @return true si et seulement si il s'agit bien de ce type de relation
- */
- public static boolean hasUnidirectionalRelationOnAbstractType(
- ObjectModelAttribute attr, ObjectModel model) {
- ObjectModelAttribute reverse = attr.getReverseAttribute();
- //relation 1-n
- if (reverse != null && isNMultiplicity(attr) && !isNMultiplicity(reverse)) {
- //Pas de navigabilité
- if (!reverse.isNavigable()) {
- //Il s'agit d'une entity
- ObjectModelClass clazz = model.getClass(attr.getType());
- if (clazz != null && clazz.hasStereotype(STEREOTYPE_ENTITY)) {
- //Cette classe a des sous-classes dans le modèle
- for (ObjectModelClass subClass : model.getClasses()) {
- if (subClass.getSuperclasses().contains(clazz)) {
- return true;
- }
- }
- }
- }
- }
- return false;
- }
-
- /**
- * Renvoie le nom unique de table pour une relation ManyToMany en fonction
- * de l'attribut <code>attr</code>
- * <p/>
- * Plusieurs cas de figure:
- * <li>
- *
- * @param attr l'attribut servant de base au calcul du nom
- * @return le nom de la table
- */
- public static String getManyToManyTableName(ObjectModelAttribute attr) {
- String result;
-
- if (attr.hasAssociationClass()) {
- result = TopiaGeneratorUtil.getDBName(attr.getAssociationClass());
- } else {
- String name = attr.getName();
- String revers = attr.getReverseAttributeName();
-
- if (name.compareToIgnoreCase(revers) < 0) {
- result = name + "_" + revers;
- } else {
- result = revers + "_" + name;
- }
- }
- // String result;
- // if (!Util.isFirstAttribute(attr)) {
- // result = attr.getDeclaringElement().getName() + "_" + attr.getReverseAttribute().getDeclaringElement().getName();
- // } else {
- // result = attr.getReverseAttribute().getDeclaringElement().getName() + "_" + attr.getDeclaringElement().getName();
- // }
- return result.toLowerCase();
- }
-
- /**
- * Renvoie le type d'interface à utiliser en fonction de l'attribut
- *
- * @param attr l'attribut a traiter
- * @return String
- */
- public static String getNMultiplicityInterfaceType(ObjectModelAttribute attr) {
- if (attr.hasStereotype(STEREOTYPE_UNIQUE)) {
- return Set.class.getName();
- } else if (attr.isIndexed() || attr.isOrdered()) {
- return List.class.getName();
- }
- return Collection.class.getName();
- }
-
- /**
- * Renvoie le type d'objet (instance) à utiliser en fonction de l'attribut
- *
- * @param attr l'attribut a traiter
- * @return String
- */
- public static String getNMultiplicityObjectType(ObjectModelAttribute attr) {
- if (attr.hasStereotype(STEREOTYPE_UNIQUE)) {
- return HashSet.class.getName();
- } else if (attr.isIndexed() || attr.isOrdered()) {
- //On considère qu'on ne sait pas traiter vraiment l'attribut "ordered"
- // puisqu'on va conserver l'ordre d'insertion, et non un ordre en
- // fonction d'un élément donné. Donc on renvoi une ArrayList
- return ArrayList.class.getName();
- }
- LinkedList.class.getName();
- return ArrayList.class.getName();
- }
-
- /**
- * Renvoie le type d'interface à utiliser en fonction de l'attribut
- *
- * @param attr l'attribut a traiter
- * @return String
- */
- public static String getNMultiplicityHibernateType(ObjectModelAttribute attr) {
- if (attr.hasStereotype(STEREOTYPE_UNIQUE)) {
- return "set";
- } else if (attr.isIndexed()) {
- return "list";
- }
- //attr.isOrdered() - On génère le ordered en bag
- return "bag";
- }
-
- /**
- * Obtain the list of entities classes with the possibility to sort the result.
- *
- * @param model the current model to scan
- * @param sort flag to allow sort the result
- * @return the list of filtred classes by their stereotype
- */
- public static List<ObjectModelClass> getEntityClasses(ObjectModel model,
- boolean sort) {
- return getClassesByStereotype(STEREOTYPE_ENTITY, model, sort);
- }
-
- /**
- * Obtain the list of classes for a given stereotype with the possibility to sort the result.
- *
- * @param stereotype filter stereotype
- * @param model the current model to scan
- * @param sort flag to allow sort the result
- * @return the list of filtred classes by their stereotype
- */
- public static List<ObjectModelClass> getClassesByStereotype(
- String stereotype, ObjectModel model, boolean sort) {
- List<ObjectModelClass> classes = new ArrayList<ObjectModelClass>();
- for (ObjectModelClass clazz : model.getClasses()) {
- if (clazz.hasStereotype(stereotype)) {
- classes.add(clazz);
- }
- }
- if (sort && !classes.isEmpty()) {
- java.util.Collections.sort(classes,
- new java.util.Comparator<ObjectModelClass>() {
-
- @Override
- public int compare(ObjectModelClass o1,
- ObjectModelClass o2) {
- return o1.getQualifiedName().compareTo(
- o2.getQualifiedName());
- }
- });
- }
- return classes;
- }
-
- /**
- * Detecte si la clef metier d'une classe est mutable ou pas.
- * <p/>
- * On respecte la valeur par defaut d'hibernate, à savoir que par default une clef metier est non mutable.
- *
- * @param clazz la classe a tester
- * @return <code>true</code> si le tag value a ete positionne sur la classe via le tag
- * {@link #TAG_NATURAL_ID_MUTABLE}, , <code>false</code> sinon.
- */
- public static boolean isNaturalIdMutable(ObjectModelClass clazz) {
- String value = clazz.getTagValue(TAG_NATURAL_ID_MUTABLE);
- if (!notEmpty(value)) {
- // valeur null, donc par default positionnee
- return false;
- }
- try {
- return Boolean.valueOf(value.trim());
- } catch (Exception e) {
- // on a pas reussi a convertir en boolean.
- //todo peut-être declancher une exception ?
- return false;
- }
- }
-
- /**
- * Obtain the list of fqn of object involed in the given class.
- *
- * @param aClass the clazz to inspect
- * @param incomingFqns incoming fqns
- * @return the list of fqn of attributes
- */
- public static List<String> getImports(ObjectModelClass aClass, String... incomingFqns) {
- Set<String> tmp = new HashSet<String>();
- tmp.addAll(Arrays.asList(incomingFqns));
- getImports(aClass, tmp);
- List<String> result = cleanImports(aClass.getPackageName(), tmp);
- return result;
- }
-
- /**
- * Obtain the list of fqn of object involed in the given interface.
- *
- * @param anInterface the interface to inspect
- * @param incomingFqns incoming fqns
- * @return the list of fqn of attributes
- */
- public static List<String> getImports(ObjectModelInterface anInterface, String... incomingFqns) {
- Set<String> tmp = new HashSet<String>();
- tmp.addAll(Arrays.asList(incomingFqns));
- getImports(anInterface, tmp);
- List<String> result = cleanImports(anInterface.getPackageName(), tmp);
- return result;
- }
-
- public static String getSimpleName(String fqn) {
- int lasIndex = fqn.lastIndexOf(".");
- if (lasIndex == 1) {
- // primitive type
- return fqn;
- }
- return fqn.substring(lasIndex + 1);
- /*if (lasIndex == aClass.getPackageName().length()) {
- // same package
- return fqn.substring(lasIndex + 1);
- }
-
- return fqn;*/
- }
-
- /**
- * Obtain the list of fqn of object involed in the given class.
- *
- * @param aClass the class to inspect
- * @param fqns where to store found fqns
- */
- protected static void getImports(ObjectModelClass aClass, Set<String> fqns) {
- // scan attributes
- for (ObjectModelAttribute attr : aClass.getAttributes()) {
- fqns.add(attr.getType());
- if (isNMultiplicity(attr)) {
- String collectionType = getNMultiplicityInterfaceType(attr);
- fqns.add(collectionType);
- String collectionObject = getNMultiplicityObjectType(attr);
- fqns.add(collectionObject);
- }
- }
- for (ObjectModelAttribute attribute : aClass.getAllOtherAttributes()) {
- fqns.add(attribute.getType());
- }
- // scan associations
- if (aClass instanceof ObjectModelAssociationClass) {
- ObjectModelAssociationClass assoc = (ObjectModelAssociationClass) aClass;
- for (ObjectModelAttribute attr : assoc.getParticipantsAttributes()) {
- if (attr == null) {
- continue;
- }
- fqns.add(attr.getType());
- if (isNMultiplicity(attr)) {
- String collectionType = getNMultiplicityInterfaceType(attr);
- fqns.add(collectionType);
- String collectionObject = getNMultiplicityObjectType(attr);
- fqns.add(collectionObject);
- }
- }
- }
- // scan operations
- for (ObjectModelOperation operation : aClass.getOperations()) {
- getImports(operation, fqns);
- }
- // scan super interfaces
- for (ObjectModelInterface modelInterface : aClass.getInterfaces()) {
- fqns.add(modelInterface.getQualifiedName());
- getImports(modelInterface, fqns);
- }
- // scan super classes
- for (ObjectModelClass modelClass : aClass.getSuperclasses()) {
- fqns.add(modelClass.getQualifiedName());
- getImports(modelClass);
- }
- }
-
- /**
- * Obtain the list of fqn of object involed in the given interface.
- *
- * @param anInterface the interface to inspect
- * @param fqns where to store found fqns
- */
- protected static void getImports(ObjectModelInterface anInterface, Set<String> fqns) {
- // scan operations
- for (ObjectModelOperation operation : anInterface.getOperations()) {
- getImports(operation, fqns);
- }
- // scan super interfaces
- for (ObjectModelInterface modelInterface : anInterface.getInterfaces()) {
- fqns.add(modelInterface.getQualifiedName());
- getImports(modelInterface, fqns);
- }
- }
-
- /**
- * Obtain the fqn's list of all involed type in a givne operation.
- *
- * @param operation operation to inspect
- * @param fqns where to store found fqns
- */
- protected static void getImports(ObjectModelOperation operation, Set<String> fqns) {
- String fqn = operation.getReturnType();
- fqns.add(fqn);
- for (ObjectModelParameter parameter : operation.getParameters()) {
- fqns.add(parameter.getType());
- }
- }
-
- /**
- * Clean a set of fqns, transform it into a {@link List} and sort it.
- *
- * @param packageName the current package name
- * @param fqns the dirty set of fqns
- * @return the sorted cleaned list of fqns.
- */
- protected static List<String> cleanImports(String packageName, Set<String> fqns) {
- fqns.removeAll(primitiveTypes);
- fqns.remove(VOID_TYPE);
- int packageLength = packageName.length();
- List<String> genericType = new ArrayList<String>();
- for (Iterator<String> it = fqns.iterator(); it.hasNext();) {
- String fqn = it.next();
- int lastIndex = fqn.lastIndexOf(".");
- if (lastIndex == packageLength && fqn.startsWith(packageName)) {
- // same package
- it.remove();
- continue;
- }
- int genericIndex = fqn.indexOf('<');
- if (genericIndex != -1) {
- genericType.add(fqn.substring(0, genericIndex));
- it.remove();
- }
- }
- fqns.addAll(genericType);
-
- ArrayList<String> result = new ArrayList<String>(fqns);
- java.util.Collections.sort(result);
- return result;
- }
-
- /**
- * Convertit un nom de variable en nom de constante.
- *
- * @param variableName le nom de variable a convertir
- * @return le nom de la constante à partir du nom de la variable
- */
- public static String convertVariableNameToConstantName(String variableName) {
- //TODO Faire des tests pour savoir si variableName est non null et valide
- //TODO Ameliorer l'algo pour tenir compte des caractères non alpha
- //TODO pour le moment cela convient, donc...
- StringBuilder buffer = new StringBuilder();
- boolean lastCarIsUp = false;
- for (int i = 0, j = variableName.length(); i < j; i++) {
- char c = variableName.charAt(i);
- boolean carIsUp = Character.isUpperCase(c);
- if (i > 0 && !lastCarIsUp && carIsUp) {
- // ajout d'un _
- buffer.append('_');
- }
- if (carIsUp) {
- buffer.append(c);
- } else {
- buffer.append(Character.toUpperCase(c));
- }
- lastCarIsUp = carIsUp;
- }
- return buffer.toString();
- }
-} // GeneratorUtil
-
1
0
r776 - in trunk: . ant-eugene-task/src ant-eugene-task/src/site ant-eugene-task/src/site/fr ant-eugene-task/src/site/fr/rst ant-eugene-task/src/site/rst eugene/src/main/java/org/nuiton/eugene eugene/src/site maven-eugene-plugin/src/site src/site src/site/fr src/site/fr/rst src/site/rst
by tchemit@users.nuiton.org Dec. 20, 2009
by tchemit@users.nuiton.org Dec. 20, 2009
Dec. 20, 2009
Author: tchemit
Date: 2009-12-20 15:45:41 +0100 (Sun, 20 Dec 2009)
New Revision: 776
Added:
trunk/ant-eugene-task/src/site/
trunk/ant-eugene-task/src/site/fr/
trunk/ant-eugene-task/src/site/fr/rst/
trunk/ant-eugene-task/src/site/fr/rst/index.rst
trunk/ant-eugene-task/src/site/rst/
trunk/ant-eugene-task/src/site/rst/index.rst
trunk/ant-eugene-task/src/site/site_en.xml
trunk/ant-eugene-task/src/site/site_fr.xml
trunk/eugene/src/main/java/org/nuiton/eugene/AbstractMetaTransformer.java
trunk/src/site/fr/
trunk/src/site/fr/rst/
trunk/src/site/fr/rst/index.rst
trunk/src/site/rst/
trunk/src/site/rst/index.rst
Modified:
trunk/eugene/src/site/site_en.xml
trunk/maven-eugene-plugin/src/site/site_en.xml
trunk/pom.xml
trunk/src/site/site_en.xml
trunk/src/site/site_fr.xml
Log:
fix doc language links, go back to processor-1.0.2, add ant module doc
Added: trunk/ant-eugene-task/src/site/fr/rst/index.rst
===================================================================
--- trunk/ant-eugene-task/src/site/fr/rst/index.rst (rev 0)
+++ trunk/ant-eugene-task/src/site/fr/rst/index.rst 2009-12-20 14:45:41 UTC (rev 776)
@@ -0,0 +1,27 @@
+======
+Eugene
+======
+
+.. contents::
+
+
+Règle ant
+---------
+
+Voici un exemple d'utilisation de la règle ant.
+
+::
+
+ <taskdef name="generator" classname="org.nuiton.eugene.GeneratorTask"
+ classpath="${compile.classpath}:${targetbuild}:${resources}" />
+
+ <target name="generate" description="generate">
+ <generator srcdir="${modelDir}" destdir="${targetgen}"
+ resolver="org.nuiton.exemple.ResourceResolver"
+ templates="org.nuiton.example.JavaBeanGenerator"
+ properties="defaultPackage=org.nuiton,fullPackagePath=org.nuiton,extraPackages=org.nuiton"
+ classpath="${compile.classpath}:${targetbuild}:${resources}" />
+ </target>
+
+Dans cette exemple, un template de génération sera apliqué sur tous les
+fichiers.
Added: trunk/ant-eugene-task/src/site/rst/index.rst
===================================================================
--- trunk/ant-eugene-task/src/site/rst/index.rst (rev 0)
+++ trunk/ant-eugene-task/src/site/rst/index.rst 2009-12-20 14:45:41 UTC (rev 776)
@@ -0,0 +1,30 @@
+======
+Eugene
+======
+
+:Authors: Tony CHEMIT
+:Contact: chemit(a)codelutin.com
+
+
+.. contents::
+
+
+Ant Task
+--------
+
+Here is an example of the Ant task.
+
+::
+
+ <taskdef name="generator" classname="org.nuiton.eugene.GeneratorTask"
+ classpath="${compile.classpath}:${targetbuild}:${resources}" />
+
+ <target name="generate" description="generate">
+ <generator srcdir="${modelDir}" destdir="${targetgen}"
+ resolver="org.nuiton.exemple.ResourceResolver"
+ templates="org.nuiton.example.JavaBeanGenerator"
+ properties="defaultPackage=org.nuiton,fullPackagePath=org.nuiton,extraPackages=org.nuiton"
+ classpath="${compile.classpath}:${targetbuild}:${resources}" />
+ </target>
+
+In this example, a generation-template will be applied to all files.
Copied: trunk/ant-eugene-task/src/site/site_en.xml (from rev 769, trunk/eugene/src/site/site_en.xml)
===================================================================
--- trunk/ant-eugene-task/src/site/site_en.xml (rev 0)
+++ trunk/ant-eugene-task/src/site/site_en.xml 2009-12-20 14:45:41 UTC (rev 776)
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project name="${project.name}">
+
+ <bannerLeft>
+ <name>${project.name}</name>
+ </bannerLeft>
+
+ <body>
+
+ <breadcrumbs>
+ <item name="${project.name}" href="index.html" />
+ </breadcrumbs>
+
+ <links>
+ <item name="Libre-Entreprise" href="http://www.libre-entreprise.org/" />
+ <item name="[fr" href="fr/index.html" />
+ <item name="en]" href="index.html" />
+ </links>
+
+ <menu ref="parent"/>
+
+ <menu name="User">
+ <item href="index.html" name="Home"/>
+ </menu>
+
+ <menu name="Downloads">
+ <item href="${repository.home.url}/org/nuiton/eugene/${project.artifactId}/${project.version}/${project.build.finalName}.jar"
+ name="Library (jar)"/>
+ <item href="${repository.home.url}/org/nuiton/eugene/${project.artifactId}/${project.version}/${project.build.finalName}-javadoc.jar"
+ name="Javadoc (jar)"/>
+ <item href="${repository.home.url}/org/nuiton/eugene/${project.artifactId}/${project.version}/${project.build.finalName}-sources.jar"
+ name="Sources (jar)"/>
+ <item href="http://${platform}/projects/list_files/eugene" name="Archives" />
+ </menu>
+
+ <menu name="Trackers">
+ <item name="Bugs" href="${project.issueManagement.url}?query_id=2"/>
+ <item name="Evolutions" href="${project.issueManagement.url}?query_id=1"/>
+ <item name="Help" href="${project.issueManagement.url}?query_id=3"/>
+ </menu>
+
+ <menu name="Links">
+ <item name="Nuiton-processor" href="http://maven-site.nuiton.org/processor"/>
+ <item name="ToPIA" href="http://maven-site.nuiton.org/topia"/>
+ </menu>
+
+ <menu ref="reports"/>
+
+ </body>
+</project>
Copied: trunk/ant-eugene-task/src/site/site_fr.xml (from rev 769, trunk/eugene/src/site/site_fr.xml)
===================================================================
--- trunk/ant-eugene-task/src/site/site_fr.xml (rev 0)
+++ trunk/ant-eugene-task/src/site/site_fr.xml 2009-12-20 14:45:41 UTC (rev 776)
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project name="${project.name}">
+
+ <bannerLeft>
+ <name>${project.name}</name>
+ </bannerLeft>
+
+ <body>
+
+ <breadcrumbs>
+ <item name="${project.name}" href="index.html" />
+ </breadcrumbs>
+
+ <links>
+ <item name="Libre-Entreprise" href="http://www.libre-entreprise.org/" />
+ <item name="[fr" href="index.html" />
+ <item name="en]" href="../index.html" />
+ </links>
+
+ <menu ref="parent"/>
+
+ <menu name="Utilisateur">
+ <item href="index.html" name="Accueil"/>
+ </menu>
+
+ <menu name="Téléchargement">
+ <item href="${repository.home.url}/org/nuiton/eugene/${project.artifactId}/${project.version}/${project.build.finalName}.jar"
+ name="Librairie (jar)"/>
+ <item href="${repository.home.url}/org/nuiton/eugene/${project.artifactId}/${project.version}/${project.build.finalName}-javadoc.jar"
+ name="Javadoc (jar)"/>
+ <item href="${repository.home.url}/org/nuiton/eugene/${project.artifactId}/${project.version}/${project.build.finalName}-sources.jar"
+ name="Sources (jar)"/>
+ <item href="http://${platform}/projects/list_files/eugene" name="Archives" />
+ </menu>
+
+ <menu name="Trackers">
+ <item name="Bugs" href="${project.issueManagement.url}?query_id=2"/>
+ <item name="Améliorations" href="${project.issueManagement.url}?query_id=1"/>
+ <item name="Aide" href="${project.issueManagement.url}?query_id=3"/>
+ </menu>
+
+ <menu name="Liens">
+ <item name="Nuiton-processor" href="http://maven-site.nuiton.org/processor"/>
+ <item name="ToPIA" href="http://maven-site.nuiton.org/topia"/>
+ </menu>
+
+ <menu ref="reports"/>
+
+ </body>
+</project>
Added: trunk/eugene/src/main/java/org/nuiton/eugene/AbstractMetaTransformer.java
===================================================================
--- trunk/eugene/src/main/java/org/nuiton/eugene/AbstractMetaTransformer.java (rev 0)
+++ trunk/eugene/src/main/java/org/nuiton/eugene/AbstractMetaTransformer.java 2009-12-20 14:45:41 UTC (rev 776)
@@ -0,0 +1,95 @@
+package org.nuiton.eugene;
+
+import org.nuiton.eugene.models.Model;
+
+import java.io.File;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * Abstract meta transformer which contains some templates to apply to incoming model.
+ *
+ * Using the {@link #getExcludeTemplates()} to restrict use of some templates.
+ *
+ * Created: 20 déc. 2009
+ *
+ * @author Tony Chemit <chemit(a)codelutin.com> Copyright Code Lutin
+ * @version $Revision$
+ * <p/>
+ * Mise a jour: $Date$ par :
+ * $Author: tchemit $
+ * @since 2.0.0
+ */
+public abstract class AbstractMetaTransformer<M extends Model> extends AbstractGenerator<M> {
+
+ private final Class<? extends Template<M>>[] transformers;
+
+ public AbstractMetaTransformer(Class<? extends Template<M>>... transformers) {
+ this.transformers = transformers;
+ }
+
+ protected abstract boolean validateModel(M model);
+
+ @Override
+ public final void generate(File[] file, File destDir) {
+ throw new UnsupportedOperationException("Transformer does not implements any longer this deprecated method");
+ }
+
+ @Override
+ public void applyTemplate(M model, File destDir) throws IOException {
+
+ boolean isValid = validateModel(model);
+ if (!isValid) {
+
+ //On n'empeche pas la génération si le modèle n'est pas valide
+
+ return;
+ }
+
+ List<Template<M>> templates = getTemplates();
+
+ for (Template<M> template : templates) {
+ // log
+ if (log.isDebugEnabled()) {
+ log.debug("call template : " + template.getClass().getSimpleName());
+ }
+ template.applyTemplate(model, destDir);
+ }
+ }
+
+ protected List<Template<M>> getTemplates() {
+ List<Template<M>> result = new ArrayList<Template<M>>();
+ for (Class<? extends Template<M>> generatorClass : getTransformers()) {
+ Template<M> generator;
+ if (getExcludeTemplates().contains(generatorClass.getName())) {
+ // exclude generator
+ log.info("exclude generator " + generatorClass);
+ continue;
+ }
+ try {
+ generator = generatorClass.newInstance();
+
+ // init template
+
+ if (generator instanceof AbstractGenerator) {
+ ((AbstractGenerator<M>) generator).setParent(this);
+ }
+ if (generator instanceof Transformer) {
+ generator.setProperties(properties);
+ }
+ } catch (Exception e) {
+ // should never happens
+ if (log.isErrorEnabled()) {
+ log.error("An error occurs when generating persistence", e);
+ }
+ throw new RuntimeException(e);
+ }
+ }
+ return result;
+ }
+
+ public Class<? extends Template<M>>[] getTransformers() {
+ return transformers;
+ }
+}
Property changes on: trunk/eugene/src/main/java/org/nuiton/eugene/AbstractMetaTransformer.java
___________________________________________________________________
Added: svn:keywords
+ "Author Date Id Revision HeadURL
Modified: trunk/eugene/src/site/site_en.xml
===================================================================
--- trunk/eugene/src/site/site_en.xml 2009-12-20 13:06:54 UTC (rev 775)
+++ trunk/eugene/src/site/site_en.xml 2009-12-20 14:45:41 UTC (rev 776)
@@ -13,7 +13,7 @@
<links>
<item name="Libre-Entreprise" href="http://www.libre-entreprise.org/" />
- <item name="[fr" href="../fr/index.html" />
+ <item name="[fr" href="fr/index.html" />
<item name="en]" href="index.html" />
</links>
Modified: trunk/maven-eugene-plugin/src/site/site_en.xml
===================================================================
--- trunk/maven-eugene-plugin/src/site/site_en.xml 2009-12-20 13:06:54 UTC (rev 775)
+++ trunk/maven-eugene-plugin/src/site/site_en.xml 2009-12-20 14:45:41 UTC (rev 776)
@@ -8,7 +8,7 @@
<body>
<links>
<item name="Libre-Entreprise" href="http://www.libre-entreprise.org/" />
- <item name="[fr" href="../fr/index.html" />
+ <item name="[fr" href="fr/index.html" />
<item name="en]" href="index.html" />
</links>
Modified: trunk/pom.xml
===================================================================
--- trunk/pom.xml 2009-12-20 13:06:54 UTC (rev 775)
+++ trunk/pom.xml 2009-12-20 14:45:41 UTC (rev 776)
@@ -249,10 +249,11 @@
<!-- pour un muli module on doit fixer le projectId -->
<projectId>eugene</projectId>
- <!-- TODO TC-20090823 remove ant deps -->
<ant.version>1.7.1</ant.version>
- <processor.version>1.0.3-SNAPSHOT</processor.version>
- <nuiton-utils.version>1.1.0</nuiton-utils.version>
+
+ <processor.version>1.0.2</processor.version>
+ <!--<processor.version>1.0.3-SNAPSHOT</processor.version>-->
+ <nuiton-utils.version>1.1.1</nuiton-utils.version>
<!--Multilanguage maven-site -->
<maven.site.locales>en,fr</maven.site.locales>
Added: trunk/src/site/fr/rst/index.rst
===================================================================
--- trunk/src/site/fr/rst/index.rst (rev 0)
+++ trunk/src/site/fr/rst/index.rst 2009-12-20 14:45:41 UTC (rev 776)
@@ -0,0 +1,19 @@
+======
+EUGEne
+======
+
+.. contents::
+
+
+Présentation
+------------
+
+Le projet EUGene est composé de 3 modules :
+
+ * `eugene-api`_
+ * `ant-eugene-task`_
+ * `maven-eugene-plugin`_
+
+.. _eugene-api: eugene/index.html
+.. _ant-eugene-task: ant-eugenet-task/index.html
+.. _maven-eugene-plugin: maven-eugene-plugin/index.html
\ No newline at end of file
Added: trunk/src/site/rst/index.rst
===================================================================
--- trunk/src/site/rst/index.rst (rev 0)
+++ trunk/src/site/rst/index.rst 2009-12-20 14:45:41 UTC (rev 776)
@@ -0,0 +1,19 @@
+======
+EUGEne
+======
+
+.. contents::
+
+
+Home
+----
+
+EUGene's project is distributed in 3 modules :
+
+ * `eugene-api`_
+ * `ant-eugene-task`_
+ * `maven-eugene-plugin`_
+
+.. _eugene-api: eugene/index.html
+.. _ant-eugene-task: ant-eugenet-task/index.html
+.. _maven-eugene-plugin: maven-eugene-plugin/index.html
\ No newline at end of file
Modified: trunk/src/site/site_en.xml
===================================================================
--- trunk/src/site/site_en.xml 2009-12-20 13:06:54 UTC (rev 775)
+++ trunk/src/site/site_en.xml 2009-12-20 14:45:41 UTC (rev 776)
@@ -18,6 +18,10 @@
<item name="${project.name}" href="index.html" />
</breadcrumbs>
+ <menu name="User">
+ <item name="Home" href="index.html" />
+ <item name="French version" href="fr/index.html" />
+ </menu>
<menu ref="modules"/>
<menu ref="reports"/>
Modified: trunk/src/site/site_fr.xml
===================================================================
--- trunk/src/site/site_fr.xml 2009-12-20 13:06:54 UTC (rev 775)
+++ trunk/src/site/site_fr.xml 2009-12-20 14:45:41 UTC (rev 776)
@@ -18,6 +18,11 @@
<item name="${project.name}" href="index.html" />
</breadcrumbs>
+ <menu name="Utilisateur">
+ <item name="Accueil" href="index.html" />
+ <item name="English version" href="../index.html" />
+ </menu>
+
<menu ref="modules"/>
<menu ref="reports"/>
1
0
r775 - trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin
by tchemit@users.nuiton.org Dec. 20, 2009
by tchemit@users.nuiton.org Dec. 20, 2009
Dec. 20, 2009
Author: tchemit
Date: 2009-12-20 14:06:54 +0100 (Sun, 20 Dec 2009)
New Revision: 775
Modified:
trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/AvailableDataMojo.java
Log:
- simplify api (no more use of the modelClass but always base on the modelType a String)
Modified: trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/AvailableDataMojo.java
===================================================================
--- trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/AvailableDataMojo.java 2009-12-20 13:01:03 UTC (rev 774)
+++ trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/AvailableDataMojo.java 2009-12-20 13:06:54 UTC (rev 775)
@@ -174,7 +174,7 @@
ChainedFileWriter w = (ChainedFileWriter) data;
StringBuilder b = new StringBuilder(super.toString(data));
b.append("\n").append(" inputProtocol : ").append(w.getInputProtocol());
- b.append("\n").append(" outputProtocol : ").append(w.getOutputProtocol(ObjectModel.class));
+ b.append("\n").append(" outputProtocol : ").append(w.getOutputProtocol(ObjectModel.NAME));
b.append("\n").append(" defaultIncludes : ").append(w.getDefaultIncludes());
b.append("\n").append(" defaultInputDirectory : ").append(w.getDefaultInputDirectory());
b.append("\n").append(" defaultTestInputDirectory : ").append(w.getDefaultTestInputDirectory());
1
0
r774 - in trunk: eugene/src/main/java/org/nuiton/eugene/writer maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/writer
by tchemit@users.nuiton.org Dec. 20, 2009
by tchemit@users.nuiton.org Dec. 20, 2009
Dec. 20, 2009
Author: tchemit
Date: 2009-12-20 14:01:03 +0100 (Sun, 20 Dec 2009)
New Revision: 774
Added:
trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/writer/XmiChainedFileWriter.java
Removed:
trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/writer/BaseXmiToChainedFileWriter.java
trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/writer/XmiToObjectModelChainedFileWriter.java
trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/writer/XmiToStateModelChainedFileWriter.java
Modified:
trunk/eugene/src/main/java/org/nuiton/eugene/writer/AbstractChainedFileWriter.java
trunk/eugene/src/main/java/org/nuiton/eugene/writer/ChainedFileWriter.java
trunk/eugene/src/main/java/org/nuiton/eugene/writer/ChainedFileWriterConfiguration.java
trunk/eugene/src/main/java/org/nuiton/eugene/writer/ChainedWriterEngine.java
trunk/eugene/src/main/java/org/nuiton/eugene/writer/DefaultChainedWriterEngine.java
trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/SmartGenerateMojo.java
trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/writer/BaseChainedFileWriter.java
trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/writer/ModelChainedFileWriter.java
trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/writer/ZargoChainedFileWriter.java
Log:
- simplify api (no more use of the modelClass but always base on the modelType a String)
- using only one ChainedWriter to transform xmi to models
Modified: trunk/eugene/src/main/java/org/nuiton/eugene/writer/AbstractChainedFileWriter.java
===================================================================
--- trunk/eugene/src/main/java/org/nuiton/eugene/writer/AbstractChainedFileWriter.java 2009-12-20 12:59:50 UTC (rev 773)
+++ trunk/eugene/src/main/java/org/nuiton/eugene/writer/AbstractChainedFileWriter.java 2009-12-20 13:01:03 UTC (rev 774)
@@ -144,7 +144,7 @@
}
@Override
- public <M extends Model> String getInputProtocol(Class<M> modelType) {
+ public String getInputProtocol(String modelType) {
// input protocol is the same for all model
return acceptModel(modelType) ? getInputProtocol() : null;
}
Modified: trunk/eugene/src/main/java/org/nuiton/eugene/writer/ChainedFileWriter.java
===================================================================
--- trunk/eugene/src/main/java/org/nuiton/eugene/writer/ChainedFileWriter.java 2009-12-20 12:59:50 UTC (rev 773)
+++ trunk/eugene/src/main/java/org/nuiton/eugene/writer/ChainedFileWriter.java 2009-12-20 13:01:03 UTC (rev 774)
@@ -20,8 +20,6 @@
*/
package org.nuiton.eugene.writer;
-import org.nuiton.eugene.models.Model;
-
import java.io.File;
import java.io.IOException;
import java.util.List;
@@ -47,28 +45,25 @@
* Obtain the input protocol of this writer given the passed {@code modelType}.
*
* @param modelType the type of model used
- * @param <M> the type of model used
* @return the input protocol or {@code null} if this writer does not accept the type of model
*/
- <M extends Model> String getInputProtocol(Class<M> modelType);
+ String getInputProtocol(String modelType);
/**
* Obtain the output protocol of this writer given the passed {@code modelType}.
*
* @param modelType the type of model used
- * @param <M> the type of model used
* @return the output protocol or {@code null} if should not be chained
*/
- <M extends Model> String getOutputProtocol(Class<M> modelType);
+ String getOutputProtocol(String modelType);
/**
* Test if a type of model can be treated by this writer.
*
* @param modelType model type to test
- * @param <M> model type to test
* @return {@code true} if this writer accept the given type of model, {@code false} otherwise.
*/
- <M extends Model> boolean acceptModel(Class<M> modelType);
+ boolean acceptModel(String modelType);
/**
* Test in a entry can be treated by this writer.
Modified: trunk/eugene/src/main/java/org/nuiton/eugene/writer/ChainedFileWriterConfiguration.java
===================================================================
--- trunk/eugene/src/main/java/org/nuiton/eugene/writer/ChainedFileWriterConfiguration.java 2009-12-20 12:59:50 UTC (rev 773)
+++ trunk/eugene/src/main/java/org/nuiton/eugene/writer/ChainedFileWriterConfiguration.java 2009-12-20 13:01:03 UTC (rev 774)
@@ -22,7 +22,6 @@
import org.nuiton.eugene.ModelReader;
import org.nuiton.eugene.Template;
-import org.nuiton.eugene.models.Model;
import java.io.File;
import java.util.Map;
@@ -41,10 +40,10 @@
*/
String getModelType();
- /**
- * @return the type of model used
- */
- Class<? extends Model> getModelClass();
+// /**
+// * @return the type of model used
+// */
+// Class<? extends Model> getModelClass();
/**
* @return project base directory
Modified: trunk/eugene/src/main/java/org/nuiton/eugene/writer/ChainedWriterEngine.java
===================================================================
--- trunk/eugene/src/main/java/org/nuiton/eugene/writer/ChainedWriterEngine.java 2009-12-20 12:59:50 UTC (rev 773)
+++ trunk/eugene/src/main/java/org/nuiton/eugene/writer/ChainedWriterEngine.java 2009-12-20 13:01:03 UTC (rev 774)
@@ -1,7 +1,5 @@
package org.nuiton.eugene.writer;
-import org.nuiton.eugene.models.Model;
-
import java.util.List;
import java.util.Map;
import java.util.Set;
@@ -34,11 +32,11 @@
boolean containsWriter(String inputProtocol);
- Set<ChainedFileWriter> filterWriterForModelType(Map<String, ChainedFileWriter> universe, Class<? extends Model> modelType);
+ Set<ChainedFileWriter> filterWriterForModelType(Map<String, ChainedFileWriter> universe, String modelType);
- ChainedFileWriter getWriterForInputProtocol(Set<ChainedFileWriter> universe, String inputProtocol, Class<? extends Model> modelType);
+ ChainedFileWriter getWriterForInputProtocol(Set<ChainedFileWriter> universe, String inputProtocol, String modelType);
- ChainedFileWriter getWriterForInclude(Set<ChainedFileWriter> universe, String include, Class<? extends Model> modelType);
+ ChainedFileWriter getWriterForInclude(Set<ChainedFileWriter> universe, String include, String modelType);
void registerInclude(String include);
Modified: trunk/eugene/src/main/java/org/nuiton/eugene/writer/DefaultChainedWriterEngine.java
===================================================================
--- trunk/eugene/src/main/java/org/nuiton/eugene/writer/DefaultChainedWriterEngine.java 2009-12-20 12:59:50 UTC (rev 773)
+++ trunk/eugene/src/main/java/org/nuiton/eugene/writer/DefaultChainedWriterEngine.java 2009-12-20 13:01:03 UTC (rev 774)
@@ -2,7 +2,6 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import org.nuiton.eugene.models.Model;
import java.io.File;
import java.util.*;
@@ -74,7 +73,7 @@
public Set<ChainedFileWriter> getAvailableWriters() {
if (availableWriters == null) {
checkConfiguration("getAvailableWriters");
- availableWriters = filterWriterForModelType(getConfiguration().getWriters(), getConfiguration().getModelClass());
+ availableWriters = filterWriterForModelType(getConfiguration().getWriters(), getConfiguration().getModelType());
}
return availableWriters;
}
@@ -129,7 +128,7 @@
ChainedFileWriterConfiguration configuration = getConfiguration();
- Class<? extends Model> modelType = configuration.getModelClass();
+ String modelType = configuration.getModelType();
String outpoutProtocol = writer.getOutputProtocol(modelType);
@@ -194,7 +193,7 @@
}
@Override
- public Set<ChainedFileWriter> filterWriterForModelType(Map<String, ChainedFileWriter> universe, Class<? extends Model> modelType) {
+ public Set<ChainedFileWriter> filterWriterForModelType(Map<String, ChainedFileWriter> universe, String modelType) {
Set<ChainedFileWriter> result = new HashSet<ChainedFileWriter>();
for (ChainedFileWriter w : universe.values()) {
if (w.acceptModel(modelType)) {
@@ -208,7 +207,7 @@
}
@Override
- public ChainedFileWriter getWriterForInputProtocol(Set<ChainedFileWriter> universe, String inputProtocol, Class<? extends Model> modelType) {
+ public ChainedFileWriter getWriterForInputProtocol(Set<ChainedFileWriter> universe, String inputProtocol, String modelType) {
for (ChainedFileWriter writer : universe) {
if (inputProtocol.equals(writer.getInputProtocol(modelType))) {
return writer;
@@ -218,7 +217,7 @@
}
@Override
- public ChainedFileWriter getWriterForInclude(Set<ChainedFileWriter> universe, String include, Class<? extends Model> modelType) {
+ public ChainedFileWriter getWriterForInclude(Set<ChainedFileWriter> universe, String include, String modelType) {
for (ChainedFileWriter w : universe) {
if (w.acceptInclude(include)) {
return w;
@@ -246,7 +245,7 @@
Set<ChainedFileWriter> universe = engine.getAvailableWriters();
String protocol = matcher.group(1).toLowerCase();
- ChainedFileWriter writer = engine.getWriterForInputProtocol(universe, protocol, configuration.getModelClass());
+ ChainedFileWriter writer = engine.getWriterForInputProtocol(universe, protocol, configuration.getModelType());
if (writer == null) {
throw new IllegalArgumentException("could not find the writer named '" + protocol + "', use one of " + universe);
}
@@ -277,7 +276,7 @@
ChainedFileWriterConfiguration configuration = engine.getConfiguration();
Set<ChainedFileWriter> universe = engine.getAvailableWriters();
- Class<? extends Model> modelType = configuration.getModelClass();
+ String modelType = configuration.getModelType();
// with no protocol pattern
// pattern is discover from the includes
@@ -321,7 +320,7 @@
Set<ChainedFileWriter> universe = engine.getAvailableWriters();
String protocol = matcher.group(1).toLowerCase();
- ChainedFileWriter writer = engine.getWriterForInputProtocol(universe, protocol, configuration.getModelClass());
+ ChainedFileWriter writer = engine.getWriterForInputProtocol(universe, protocol, configuration.getModelType());
if (writer == null) {
throw new IllegalArgumentException("could not find the writer named '" + protocol + "', use one of " + universe);
Modified: trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/SmartGenerateMojo.java
===================================================================
--- trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/SmartGenerateMojo.java 2009-12-20 12:59:50 UTC (rev 773)
+++ trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/SmartGenerateMojo.java 2009-12-20 13:01:03 UTC (rev 774)
@@ -30,8 +30,8 @@
import org.nuiton.eugene.Template;
import org.nuiton.eugene.models.Model;
import org.nuiton.eugene.plugin.writer.BaseChainedFileWriter;
-import org.nuiton.eugene.plugin.writer.BaseXmiToChainedFileWriter;
import org.nuiton.eugene.plugin.writer.ModelChainedFileWriter;
+import org.nuiton.eugene.plugin.writer.XmiChainedFileWriter;
import org.nuiton.eugene.writer.ChainedFileWriter;
import org.nuiton.eugene.writer.ChainedFileWriterConfiguration;
import org.nuiton.eugene.writer.ChainedFileWriterEntry;
@@ -276,11 +276,11 @@
* @component role="org.nuiton.eugene.writer.ChainedWriterEngine"
*/
protected ChainedWriterEngine engine;
+// /**
+// * class instance of the given {@link #modelType}
+// */
+// protected Class<? extends Model> modelClass;
/**
- * class instance of the given {@link #modelType}
- */
- protected Class<? extends Model> modelClass;
- /**
* fixed classloader
*/
protected ClassLoader fixedClassLoader;
@@ -290,13 +290,13 @@
modelType = modelType.trim().toLowerCase();
- // on recupere le fqn du model à traiter via le container plexus (plus pratique dans ce cas où on veut
+ // Check model type is accepted
// pouvoir associé un nom à un type de service).
- Model model = _models.get(modelType.trim().toLowerCase());
+ Model model = _models.get(modelType);
if (model == null) {
throw new MojoExecutionException("No modelType named '" + modelType + "', use one of " + _models.keySet());
}
- modelClass = model.getClass();
+// modelClass = model.getClass();
if (inputs.length == 0) {
throw new MojoExecutionException("Must specify something to include using the includes property");
@@ -338,9 +338,9 @@
// add xmi writer support
- properties.put(BaseXmiToChainedFileWriter.PROP_FULL_PACKAGE_PATH, fullPackagePath);
+ properties.put(XmiChainedFileWriter.PROP_FULL_PACKAGE_PATH, fullPackagePath);
//properties.put("extractedPackages", extractedPackages);
- properties.put(BaseXmiToChainedFileWriter.PROP_RESOLVER, resolver);
+ properties.put(XmiChainedFileWriter.PROP_RESOLVER, resolver);
}
if (engine.containsWriter("model")) {
@@ -508,10 +508,10 @@
return modelType;
}
- @Override
- public Class<? extends Model> getModelClass() {
- return modelClass;
- }
+// @Override
+// public Class<? extends Model> getModelClass() {
+// return modelClass;
+// }
@Override
public Map<String, ChainedFileWriter> getWriters() {
@@ -674,6 +674,4 @@
}
}
}
-
-
}
\ No newline at end of file
Modified: trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/writer/BaseChainedFileWriter.java
===================================================================
--- trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/writer/BaseChainedFileWriter.java 2009-12-20 12:59:50 UTC (rev 773)
+++ trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/writer/BaseChainedFileWriter.java 2009-12-20 13:01:03 UTC (rev 774)
@@ -22,6 +22,8 @@
import org.apache.maven.plugin.logging.Log;
import org.apache.maven.plugin.logging.SystemStreamLog;
+import org.nuiton.eugene.models.object.ObjectModel;
+import org.nuiton.eugene.models.state.StateModel;
import org.nuiton.eugene.writer.AbstractChainedFileWriter;
import org.nuiton.eugene.writer.ChainedFileWriterConfiguration;
@@ -83,5 +85,10 @@
getLog().info(buffer.toString());
}
+ protected boolean acceptObjectModelOrStateModel(String modelType) {
+ modelType = modelType.trim().toLowerCase();
+ return ObjectModel.NAME.equals(modelType) || StateModel.NAME.equals(modelType);
+ }
+
}
Deleted: trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/writer/BaseXmiToChainedFileWriter.java
===================================================================
--- trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/writer/BaseXmiToChainedFileWriter.java 2009-12-20 12:59:50 UTC (rev 773)
+++ trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/writer/BaseXmiToChainedFileWriter.java 2009-12-20 13:01:03 UTC (rev 774)
@@ -1,270 +0,0 @@
-/*
- * *##%
- * EUGene :: Maven plugin
- * Copyright (C) 2006 - 2009 CodeLutin
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation, either version 3 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 Lesser Public License for more details.
- *
- * You should have received a copy of the GNU General Lesser Public
- * License along with this program. If not, see
- * <http://www.gnu.org/licenses/lgpl-3.0.html>.
- * ##%*
- */
-package org.nuiton.eugene.plugin.writer;
-
-import org.nuiton.eugene.models.Model;
-import org.nuiton.eugene.writer.ChainedFileWriterConfiguration;
-import org.nuiton.plugin.PluginHelper;
-import org.nuiton.plugin.PluginIOContext;
-import org.nuiton.util.FasterCachedResourceResolver;
-import org.nuiton.util.FileUtil;
-import org.nuiton.util.Resource;
-import org.nuiton.util.ResourceResolver;
-
-import javax.xml.transform.Transformer;
-import javax.xml.transform.TransformerFactory;
-import javax.xml.transform.URIResolver;
-import javax.xml.transform.stream.StreamResult;
-import javax.xml.transform.stream.StreamSource;
-import java.io.File;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.lang.reflect.Constructor;
-import java.net.URL;
-import java.util.List;
-
-/**
- * Implentation pour les writer to type xmi (qui transforme du xmi via xsl).
- *
- * @author tchemit
- * @since 2.0.0
- */
-public abstract class BaseXmiToChainedFileWriter extends BaseChainedFileWriter {
-
- public static final String PROP_RESOLVER = "resolver";
- // public static final String PROP_EXTRACTED_PACKAGES = "extractedPackages";
- public static final String PROP_FULL_PACKAGE_PATH = "fullPackagePath";
-
- public BaseXmiToChainedFileWriter() {
- super(
- PROP_RESOLVER, "resolver", PROP_FULL_PACKAGE_PATH, "fullPackagePath");
- }
-
- /**
- * Get style sheet.
- *
- * @param model the model file used to determine the stylesheet to use
- * @return the stylesheet name
- */
- protected abstract String getStyleSheet(File model);
-
- /**
- * Get extension.
- *
- * @return the extension
- */
- protected abstract String getExtension();
-
- @Override
- public String getInputProtocol() {
- return "xmi";
- }
-
- @Override
- public <M extends Model> String getOutputProtocol(Class<M> modelType) {
- // next writer : write from model files
- return "model";
- }
-
- @Override
- public boolean acceptInclude(String include) {
- return include.startsWith("xmi:") || include.endsWith(".xmi") || include.endsWith(".uml");
- }
-
- @Override
- public String getDefaultIncludes() {
- return "**/*.xmi";
- }
-
- @Override
- public String getDefaultInputDirectory() {
- return "src/main/xmi";
- }
-
- @Override
- public String getDefaultOutputDirectory() {
- return "models";
- }
-
- @Override
- public String getDefaultTestInputDirectory() {
- return "src/test/xmi";
- }
-
- @Override
- public String getDefaultTestOutputDirectory() {
- return "test-models";
- }
-
- protected TransformerFactory transformerFactory;
-
- protected TransformerFactory getTransformerFactory() {
- if (transformerFactory == null) {
- transformerFactory = TransformerFactory.newInstance();
- }
- return transformerFactory;
- }
-
- public String getFullPackagePath() {
- return getProperty(PROP_FULL_PACKAGE_PATH, String.class);
- }
-
-// public String getExtractedPackages() {
-// return getProperty(PROP_EXTRACTED_PACKAGES, String.class);
-// }
-
- public String getResolver() {
- return getProperty(PROP_RESOLVER, String.class);
- }
-
-
- @Override
- public void generate(ChainedFileWriterConfiguration configuration, File outputDir, File inputDirectory, String includePattern) throws IOException {
- long t0 = System.nanoTime();
-
- boolean overwrite = configuration.isOverwrite();
- try {
- getLog().info("Processing XSL tranformation on " + inputDirectory + " for " + includePattern);
-
- getLog().info(" with fullPackagePath : " + getFullPackagePath());
-// getLog().info(" with extractedPackages : " + getExtractedPackages());
-// getLog().info(" with acceptedXmiTypes : " + getFullPackagePath());
- getLog().info(" with resolver : " + getResolver());
-
- // recuperation des fichiers a traiter
- List<File> files = PluginHelper.getIncludedFiles(inputDirectory, new String[]{includePattern}, null);
-
- // lancement des traitements xsl sur les fichiers trouvés
- // dans le repertoire
- actionXsl(configuration, outputDir, inputDirectory, files, overwrite);
- } finally {
- getLog().info("xsl done in " + PluginHelper.convertTime(System.nanoTime() - t0));
- }
-
- getLog().info("Copy resources files");
-
- PluginIOContext ioContext = new PluginIOContext();
- ioContext.setInput(inputDirectory);
- ioContext.setOutput(outputDir);
-// String[] excludes = getSuffixPattern("**/*");
- PluginHelper.copyFiles(ioContext, null, new String[]{includePattern}, overwrite);
- }
-
-
- protected void actionXsl(ChainedFileWriterConfiguration configuration, File outputDir, File dir, List<File> files, boolean overwrite) throws IOException {
-
- for (File file : files) {
- try {
- if (getLog().isDebugEnabled()) {
- getLog().debug("treate file : " + file);
- }
- // Prepare resolver, stylesheet
- URIResolver fileResolver = getUriResolver(configuration, file);
- String styleSheet = getStyleSheet(file);
- URL xsl = Resource.getURL(styleSheet);
-
- //TC-20090820 : using recursive for xmi
-// File result = new File(destDirModel, FileUtil.basename(file,
-// acceptedSuffixes).concat(".").concat(getExtension()));
-
- String extension = "." + FileUtil.extension(file);
- String filename = FileUtil.basename(file, extension).concat(".").concat(getExtension());
- String relatifPath = file.getParentFile().getAbsolutePath().substring(dir.getAbsolutePath().length());
- File dstDir = outputDir;
- if (!relatifPath.isEmpty()) {
- dstDir = new File(dstDir, relatifPath);
- if (!dstDir.exists()) {
- boolean b = dstDir.mkdirs();
- if (!b) {
- throw new IOException("could not create directory " + dstDir);
- }
- }
- }
- File result = new File(dstDir, filename);
- if (!overwrite && file.lastModified() < result.lastModified()) {
- getLog().info("file up-to-date : " + result);
- continue;
- }
- if (getLog().isDebugEnabled()) {
- getLog().debug("generate " + result);
- }
-
- // Create the xsl transformer and set parameters
- Transformer transformer = getTransformerFactory().newTransformer(new StreamSource(xsl.openStream()));
-
- transformer.setParameter(PROP_FULL_PACKAGE_PATH, getFullPackagePath());
- //transformer.setParameter("extraPackages", getExtractedPackages());
-
- transformer.setURIResolver(fileResolver);
- transformer.transform(new StreamSource(file), new StreamResult(
- new FileOutputStream(result)));
-
- } catch (Exception e) {
- throw new IOException(e.getMessage(), e);
- }
- }
- }
-
- protected URIResolver getUriResolver(ChainedFileWriterConfiguration configuration, File model) {
- URIResolver result = null;
-
- try {
- ClassLoader loader = configuration.getClassLoader();
- Class<?> clazz = Class.forName(getResolver(), true, loader);
-
- // Try to set the base using the constructor
- try {
- // Look for a constructor with a String parameter (base)
- Constructor<?> withBaseConstructor = clazz.getConstructor(String.class);
- // Set the xmi folder as the base
- String base = model.getParentFile().getAbsolutePath();
- // Instantiate
- result = (URIResolver) withBaseConstructor.newInstance(base);
- } catch (Exception eee) {
- getLog().warn("Unable to instantiate resolver with String parameter",
- eee);
- }
-
- // If resolver is still not created, create it using the default
- // constructor
- if (result == null) {
- result = (URIResolver) clazz.newInstance();
- }
-
- if (result instanceof ResourceResolver) {
- ((ResourceResolver) result).setVerbose(configuration.isVerbose());
- ((ResourceResolver) result).setCl(loader);
- if (result instanceof FasterCachedResourceResolver) {
- boolean offline = configuration.isOffline();
- getLog().debug("using offline mode ? : " + offline);
- ((FasterCachedResourceResolver) result).setOffline(offline);
- }
- }
-
- } catch (Exception eee) {
- getLog().warn("Unable to instantiate resolver using the default constructor", eee);
- }
-
- return result;
- }
-
-
-}
Modified: trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/writer/ModelChainedFileWriter.java
===================================================================
--- trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/writer/ModelChainedFileWriter.java 2009-12-20 12:59:50 UTC (rev 773)
+++ trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/writer/ModelChainedFileWriter.java 2009-12-20 13:01:03 UTC (rev 774)
@@ -70,15 +70,15 @@
}
@Override
- public <M extends Model> String getOutputProtocol(Class<M> modelType) {
+ public String getOutputProtocol(String modelType) {
// nothing after java files
return null;
}
@Override
- public <M extends Model> boolean acceptModel(Class<M> modelType) {
+ public boolean acceptModel(String modelType) {
// accept all models
- return true;
+ return acceptObjectModelOrStateModel(modelType);
}
@Override
Copied: trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/writer/XmiChainedFileWriter.java (from rev 769, trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/writer/BaseXmiToChainedFileWriter.java)
===================================================================
--- trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/writer/XmiChainedFileWriter.java (rev 0)
+++ trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/writer/XmiChainedFileWriter.java 2009-12-20 13:01:03 UTC (rev 774)
@@ -0,0 +1,366 @@
+/*
+ * *##%
+ * EUGene :: Maven plugin
+ * Copyright (C) 2006 - 2009 CodeLutin
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation, either version 3 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 Lesser Public License for more details.
+ *
+ * You should have received a copy of the GNU General Lesser Public
+ * License along with this program. If not, see
+ * <http://www.gnu.org/licenses/lgpl-3.0.html>.
+ * ##%*
+ */
+package org.nuiton.eugene.plugin.writer;
+
+import org.nuiton.eugene.models.Model;
+import org.nuiton.eugene.models.object.ObjectModel;
+import org.nuiton.eugene.models.state.StateModel;
+import org.nuiton.eugene.writer.ChainedFileWriterConfiguration;
+import org.nuiton.plugin.PluginHelper;
+import org.nuiton.plugin.PluginIOContext;
+import org.nuiton.util.FasterCachedResourceResolver;
+import org.nuiton.util.FileUtil;
+import org.nuiton.util.Resource;
+import org.nuiton.util.ResourceResolver;
+import org.xml.sax.Attributes;
+import org.xml.sax.SAXException;
+import org.xml.sax.helpers.DefaultHandler;
+
+import javax.xml.parsers.ParserConfigurationException;
+import javax.xml.parsers.SAXParser;
+import javax.xml.parsers.SAXParserFactory;
+import javax.xml.transform.Transformer;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.URIResolver;
+import javax.xml.transform.stream.StreamResult;
+import javax.xml.transform.stream.StreamSource;
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.lang.reflect.Constructor;
+import java.net.URL;
+import java.util.List;
+
+/**
+ * Implentation pour les writer to type xmi (qui transforme du xmi via xsl vers du model).
+ *
+ * @author tchemit
+ * @since 2.0.0
+ * @plexus.component role="org.nuiton.eugene.writer.ChainedFileWriter" role-hint="xmi"
+ */
+public class XmiChainedFileWriter extends BaseChainedFileWriter {
+
+ public static final String PROP_RESOLVER = "resolver";
+ // public static final String PROP_EXTRACTED_PACKAGES = "extractedPackages";
+ public static final String PROP_FULL_PACKAGE_PATH = "fullPackagePath";
+
+ public XmiChainedFileWriter() {
+ super(PROP_RESOLVER, "resolver", PROP_FULL_PACKAGE_PATH, "fullPackagePath");
+ }
+
+ @Override
+ public boolean acceptModel(String modelType) {
+ // supported by objectModel and stateModel
+ return acceptObjectModelOrStateModel(modelType);
+ }
+
+// /**
+// * Get style sheet.
+// *
+// * @param modelType model type used
+// * @param model the model file used to determine the stylesheet to use
+// * @return the stylesheet name
+// */
+// protected abstract String getStyleSheet(String modelType, File model);
+
+// /**
+// * Get extension.
+// *
+// * @return the extension
+// */
+// protected abstract String getExtension();
+
+ @Override
+ public String getInputProtocol() {
+ return "xmi";
+ }
+
+ @Override
+ public String getOutputProtocol(String modelType) {
+ // next writer : write from model files
+ return "model";
+ }
+
+ @Override
+ public boolean acceptInclude(String include) {
+ return include.startsWith("xmi:") || include.endsWith(".xmi") || include.endsWith(".uml");
+ }
+
+ @Override
+ public String getDefaultIncludes() {
+ return "**/*.xmi";
+ }
+
+ @Override
+ public String getDefaultInputDirectory() {
+ return "src/main/xmi";
+ }
+
+ @Override
+ public String getDefaultOutputDirectory() {
+ return "models";
+ }
+
+ @Override
+ public String getDefaultTestInputDirectory() {
+ return "src/test/xmi";
+ }
+
+ @Override
+ public String getDefaultTestOutputDirectory() {
+ return "test-models";
+ }
+
+ protected TransformerFactory transformerFactory;
+
+ protected TransformerFactory getTransformerFactory() {
+ if (transformerFactory == null) {
+ transformerFactory = TransformerFactory.newInstance();
+ }
+ return transformerFactory;
+ }
+
+ public String getFullPackagePath() {
+ return getProperty(PROP_FULL_PACKAGE_PATH, String.class);
+ }
+
+// public String getExtractedPackages() {
+// return getProperty(PROP_EXTRACTED_PACKAGES, String.class);
+// }
+
+ public String getResolver() {
+ return getProperty(PROP_RESOLVER, String.class);
+ }
+
+ @Override
+ public void generate(ChainedFileWriterConfiguration configuration, File outputDir, File inputDirectory, String includePattern) throws IOException {
+ long t0 = System.nanoTime();
+
+ boolean overwrite = configuration.isOverwrite();
+ try {
+ getLog().info("Processing XSL tranformation on " + inputDirectory + " for " + includePattern);
+
+ getLog().info(" with fullPackagePath : " + getFullPackagePath());
+// getLog().info(" with extractedPackages : " + getExtractedPackages());
+// getLog().info(" with acceptedXmiTypes : " + getFullPackagePath());
+ getLog().info(" with resolver : " + getResolver());
+
+ // recuperation des fichiers a traiter
+ List<File> files = PluginHelper.getIncludedFiles(inputDirectory, new String[]{includePattern}, null);
+
+ // lancement des traitements xsl sur les fichiers trouvés
+ // dans le repertoire
+ actionXsl(configuration, outputDir, inputDirectory, files, overwrite);
+ } finally {
+ getLog().info("xsl done in " + PluginHelper.convertTime(System.nanoTime() - t0));
+ }
+
+ getLog().info("Copy resources files");
+
+ PluginIOContext ioContext = new PluginIOContext();
+ ioContext.setInput(inputDirectory);
+ ioContext.setOutput(outputDir);
+// String[] excludes = getSuffixPattern("**/*");
+ PluginHelper.copyFiles(ioContext, null, new String[]{includePattern}, overwrite);
+ }
+
+ protected void actionXsl(ChainedFileWriterConfiguration configuration, File outputDir, File dir, List<File> files, boolean overwrite) throws IOException {
+
+ for (File file : files) {
+ try {
+ if (getLog().isDebugEnabled()) {
+ getLog().debug("treate file : " + file);
+ }
+ // Prepare resolver, stylesheet
+ URIResolver fileResolver = getUriResolver(configuration, file);
+ String styleSheet = getStyleSheet(configuration.getModelType(), file);
+ URL xsl = Resource.getURL(styleSheet);
+
+ //TC-20090820 : using recursive for xmi
+// File result = new File(destDirModel, FileUtil.basename(file,
+// acceptedSuffixes).concat(".").concat(getExtension()));
+
+ String extension = "." + FileUtil.extension(file);
+ String filename = FileUtil.basename(file, extension).concat(".").concat(configuration.getModelType());
+// String filename = FileUtil.basename(file, extension).concat(".").concat(getExtension());
+ String relatifPath = file.getParentFile().getAbsolutePath().substring(dir.getAbsolutePath().length());
+ File dstDir = outputDir;
+ if (!relatifPath.isEmpty()) {
+ dstDir = new File(dstDir, relatifPath);
+ if (!dstDir.exists()) {
+ boolean b = dstDir.mkdirs();
+ if (!b) {
+ throw new IOException("could not create directory " + dstDir);
+ }
+ }
+ }
+ File result = new File(dstDir, filename);
+ if (!overwrite && file.lastModified() < result.lastModified()) {
+ getLog().info("file up-to-date : " + result);
+ continue;
+ }
+ if (getLog().isDebugEnabled()) {
+ getLog().debug("generate " + result);
+ }
+
+ // Create the xsl transformer and set parameters
+ Transformer transformer = getTransformerFactory().newTransformer(new StreamSource(xsl.openStream()));
+
+ transformer.setParameter(PROP_FULL_PACKAGE_PATH, getFullPackagePath());
+ //transformer.setParameter("extraPackages", getExtractedPackages());
+
+ transformer.setURIResolver(fileResolver);
+ transformer.transform(new StreamSource(file), new StreamResult(
+ new FileOutputStream(result)));
+
+ } catch (Exception e) {
+ throw new IOException(e.getMessage(), e);
+ }
+ }
+ }
+
+ protected URIResolver getUriResolver(ChainedFileWriterConfiguration configuration, File model) {
+ URIResolver result = null;
+
+ try {
+ ClassLoader loader = configuration.getClassLoader();
+ Class<?> clazz = Class.forName(getResolver(), true, loader);
+
+ // Try to set the base using the constructor
+ try {
+ // Look for a constructor with a String parameter (base)
+ Constructor<?> withBaseConstructor = clazz.getConstructor(String.class);
+ // Set the xmi folder as the base
+ String base = model.getParentFile().getAbsolutePath();
+ // Instantiate
+ result = (URIResolver) withBaseConstructor.newInstance(base);
+ } catch (Exception eee) {
+ getLog().warn("Unable to instantiate resolver with String parameter",
+ eee);
+ }
+
+ // If resolver is still not created, create it using the default
+ // constructor
+ if (result == null) {
+ result = (URIResolver) clazz.newInstance();
+ }
+
+ if (result instanceof ResourceResolver) {
+ ((ResourceResolver) result).setVerbose(configuration.isVerbose());
+ ((ResourceResolver) result).setCl(loader);
+ if (result instanceof FasterCachedResourceResolver) {
+ boolean offline = configuration.isOffline();
+ getLog().debug("using offline mode ? : " + offline);
+ ((FasterCachedResourceResolver) result).setOffline(offline);
+ }
+ }
+
+ } catch (Exception eee) {
+ getLog().warn("Unable to instantiate resolver using the default constructor", eee);
+ }
+
+ return result;
+ }
+
+ protected String getStyleSheet(String modelType, File model) {
+ if (ObjectModel.NAME.equals(modelType)) {
+ String version = getXmiVersion(model);
+ String styleSheet = null;
+ if (version.startsWith("1.")) {
+ styleSheet = "xmi1.2ToObjectModel.xsl";
+ } else if (version.startsWith("2.")) {
+ styleSheet = "xmi2.1ToObjectModel.xsl";
+ } else {
+ getLog().error("Unsupported xmi version [" + version + "]");
+ }
+ return styleSheet;
+ }
+ if (StateModel.NAME.equals(modelType)) {
+ //TODO when StateModel will be supported in 2.1, compute the version to resolve the correct stylesheet
+ return "xmi1.2ToStateModel.xsl";
+ }
+
+ throw new IllegalStateException("unsupported modelType [" + modelType + "]");
+ }
+
+ /**
+ * Try to find xmi version on a file.
+ *
+ * @param xmiFile file to inspect
+ * @return version or null if version can't have been found
+ */
+ protected String getXmiVersion(File xmiFile) {
+ String version = null;
+
+ SAXParserFactory factory = SAXParserFactory.newInstance();
+
+ try {
+ SAXParser parser = factory.newSAXParser();
+
+ XmiVersionHandler handler = new XmiVersionHandler();
+ parser.parse(xmiFile, handler);
+
+ version = handler.getVersion();
+ } catch (ParserConfigurationException e) {
+ getLog().debug("Can't parse file as xmi", e);
+ } catch (SAXException e) {
+ getLog().debug("Can't parse file as xmi", e);
+ } catch (IOException e) {
+ getLog().debug("Can't parse file as xmi", e);
+ }
+
+ return version;
+ }
+
+ /**
+ * Sax handler to find xmi version into xmi document.
+ */
+ protected class XmiVersionHandler extends DefaultHandler {
+
+ protected String version = null;
+
+ public XmiVersionHandler() {
+ super();
+ }
+
+ public String getVersion() {
+ return version;
+ }
+
+ @Override
+ public void startElement(String uri, String localName, String qName,
+ Attributes attributes) throws SAXException {
+
+ if (qName.equals("XMI")) {
+ version = attributes.getValue("xmi.version");
+ getLog().debug("XMI version found : " + version);
+ }
+
+ if (version == null) {
+ version = attributes.getValue("xmi:version");
+ getLog().debug("XMI version found : " + version);
+ }
+
+ }
+ }
+
+
+}
\ No newline at end of file
Deleted: trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/writer/XmiToObjectModelChainedFileWriter.java
===================================================================
--- trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/writer/XmiToObjectModelChainedFileWriter.java 2009-12-20 12:59:50 UTC (rev 773)
+++ trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/writer/XmiToObjectModelChainedFileWriter.java 2009-12-20 13:01:03 UTC (rev 774)
@@ -1,135 +0,0 @@
-/*
- * *##%
- * EUGene :: Maven plugin
- * Copyright (C) 2006 - 2009 CodeLutin
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation, either version 3 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 Lesser Public License for more details.
- *
- * You should have received a copy of the GNU General Lesser Public
- * License along with this program. If not, see
- * <http://www.gnu.org/licenses/lgpl-3.0.html>.
- * ##%*
- */
-package org.nuiton.eugene.plugin.writer;
-
-import org.nuiton.eugene.models.Model;
-import org.nuiton.eugene.models.object.ObjectModel;
-import org.xml.sax.Attributes;
-import org.xml.sax.SAXException;
-import org.xml.sax.helpers.DefaultHandler;
-
-import javax.xml.parsers.ParserConfigurationException;
-import javax.xml.parsers.SAXParser;
-import javax.xml.parsers.SAXParserFactory;
-import java.io.File;
-import java.io.IOException;
-
-/**
- * To write a object model files from xmi files.
- * <p/>
- * This {@link org.nuiton.eugene.writer.ChainedFileWriter} transform xmi files to object model file.
- *
- * @author tchemit
- * @plexus.component role="org.nuiton.eugene.writer.ChainedFileWriter" role-hint="xmi2objectmodel"
- * @since 2.0.0
- */
-public class XmiToObjectModelChainedFileWriter extends BaseXmiToChainedFileWriter {
-
- @Override
- public <M extends Model> boolean acceptModel(Class<M> modelType) {
- // accept only state models
- return ObjectModel.class.isAssignableFrom(modelType);
- }
-
- @Override
- public String getExtension() {
- return "objectmodel";
- }
-
- @Override
- protected String getStyleSheet(File model) {
- String styleSheet = null;
-
- String version = getXmiVersion(model);
- if (version.startsWith("1.")) {
- styleSheet = "xmi1.2ToObjectModel.xsl";
- } else if (version.startsWith("2.")) {
- styleSheet = "xmi2.1ToObjectModel.xsl";
- } else {
- getLog().error("Unsupported xmi version [" + version + "]");
- }
-
- return styleSheet;
- }
-
- /**
- * Try to find xmi version on a file.
- *
- * @param xmiFile file to inspect
- * @return version or null if version can't have been found
- */
- protected String getXmiVersion(File xmiFile) {
- String version = null;
-
- SAXParserFactory factory = SAXParserFactory.newInstance();
-
- try {
- SAXParser parser = factory.newSAXParser();
-
- XmiVersionHandler handler = new XmiVersionHandler();
- parser.parse(xmiFile, handler);
-
- version = handler.getVersion();
- } catch (ParserConfigurationException e) {
- getLog().debug("Can't parse file as xmi", e);
- } catch (SAXException e) {
- getLog().debug("Can't parse file as xmi", e);
- } catch (IOException e) {
- getLog().debug("Can't parse file as xmi", e);
- }
-
- return version;
- }
-
- /**
- * Sax handler to find xmi version into xmi document.
- */
- protected class XmiVersionHandler extends DefaultHandler {
-
- protected String version = null;
-
- public XmiVersionHandler() {
- super();
- }
-
- public String getVersion() {
- return version;
- }
-
- @Override
- public void startElement(String uri, String localName, String qName,
- Attributes attributes) throws SAXException {
-
- if (qName.equals("XMI")) {
- version = attributes.getValue("xmi.version");
- getLog().debug("XMI version found : " + version);
- }
-
- if (version == null) {
- version = attributes.getValue("xmi:version");
- getLog().debug("XMI version found : " + version);
- }
-
- }
- }
-
-
-}
Deleted: trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/writer/XmiToStateModelChainedFileWriter.java
===================================================================
--- trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/writer/XmiToStateModelChainedFileWriter.java 2009-12-20 12:59:50 UTC (rev 773)
+++ trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/writer/XmiToStateModelChainedFileWriter.java 2009-12-20 13:01:03 UTC (rev 774)
@@ -1,53 +0,0 @@
-/*
- * *##%
- * EUGene :: Maven plugin
- * Copyright (C) 2006 - 2009 CodeLutin
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation, either version 3 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 Lesser Public License for more details.
- *
- * You should have received a copy of the GNU General Lesser Public
- * License along with this program. If not, see
- * <http://www.gnu.org/licenses/lgpl-3.0.html>.
- * ##%*
- */
-package org.nuiton.eugene.plugin.writer;
-
-import org.nuiton.eugene.models.Model;
-import org.nuiton.eugene.models.state.StateModel;
-
-import java.io.File;
-
-/**
- * To write state model files from xmi files.
- *
- * @author tchemit
- * @plexus.component role="org.nuiton.eugene.writer.ChainedFileWriter" role-hint="xmi2statemodel"
- * @since 2.0.0
- */
-public class XmiToStateModelChainedFileWriter extends BaseXmiToChainedFileWriter {
-
- @Override
- public <M extends Model> boolean acceptModel(Class<M> modelType) {
- // accept only state models
- return StateModel.class.isAssignableFrom(modelType);
- }
-
- @Override
- protected String getExtension() {
- return "statemodel";
- }
-
- @Override
- protected String getStyleSheet(File model) {
- //TODO when StateModel will be supported in 2.1, compute the version to resolve the correct stylesheet
- return "xmi1.2ToStateModel.xsl";
- }
-}
Modified: trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/writer/ZargoChainedFileWriter.java
===================================================================
--- trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/writer/ZargoChainedFileWriter.java 2009-12-20 12:59:50 UTC (rev 773)
+++ trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/writer/ZargoChainedFileWriter.java 2009-12-20 13:01:03 UTC (rev 774)
@@ -45,15 +45,15 @@
}
@Override
- public <M extends Model> String getOutputProtocol(Class<M> modelType) {
+ public String getOutputProtocol(String modelType) {
// next writer to use is a xmi to model one
return "xmi";
}
@Override
- public <M extends Model> boolean acceptModel(Class<M> modelType) {
+ public boolean acceptModel(String modelType) {
// accept all models
- return true;
+ return acceptObjectModelOrStateModel(modelType);
}
@Override
1
0
r773 - trunk/eugene/src/test/java/org/nuiton/eugene/models/state
by tchemit@users.nuiton.org Dec. 20, 2009
by tchemit@users.nuiton.org Dec. 20, 2009
Dec. 20, 2009
Author: tchemit
Date: 2009-12-20 13:59:50 +0100 (Sun, 20 Dec 2009)
New Revision: 773
Modified:
trunk/eugene/src/test/java/org/nuiton/eugene/models/state/StateModelTest.java
Log:
use reader api instead of deprecated generator one
Modified: trunk/eugene/src/test/java/org/nuiton/eugene/models/state/StateModelTest.java
===================================================================
--- trunk/eugene/src/test/java/org/nuiton/eugene/models/state/StateModelTest.java 2009-12-20 12:58:28 UTC (rev 772)
+++ trunk/eugene/src/test/java/org/nuiton/eugene/models/state/StateModelTest.java 2009-12-20 12:59:50 UTC (rev 773)
@@ -28,7 +28,7 @@
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
-import org.nuiton.eugene.StateModelGenerator;
+import org.nuiton.eugene.StateModelReader;
import org.nuiton.util.Resource;
/**
@@ -45,8 +45,6 @@
/** model */
protected StateModel stateModel;
- /** init
- * @throws URISyntaxException */
@Before
public void setUp() throws URISyntaxException {
@@ -55,9 +53,13 @@
new File(Resource.getURL("models/statemodel/contact.statemodel").toURI())
};
- StateModelGenerator generator = new StateModelGenerator();
- generator.generate(testFiles, new File("output"));
- stateModel = generator.getModel();
+ //TC-20091220 use reader api instead of deprecated generator one
+ StateModelReader reader = new StateModelReader();
+ stateModel = reader.read(testFiles);
+
+// StateModelGenerator generator = new StateModelGenerator();
+// generator.generate(testFiles, new File("output"));
+// stateModel = generator.getModel();
}
/** various test */
1
0
Dec. 20, 2009
Author: tchemit
Date: 2009-12-20 13:58:28 +0100 (Sun, 20 Dec 2009)
New Revision: 772
Added:
trunk/ant-eugene-task/
trunk/ant-eugene-task/LICENSE.txt
trunk/ant-eugene-task/README.txt
trunk/ant-eugene-task/changelog.txt
trunk/ant-eugene-task/pom.xml
trunk/ant-eugene-task/src/
trunk/ant-eugene-task/src/main/
trunk/ant-eugene-task/src/main/java/
trunk/ant-eugene-task/src/main/java/org/
trunk/ant-eugene-task/src/main/java/org/nuiton/
trunk/ant-eugene-task/src/main/java/org/nuiton/eugene/
trunk/ant-eugene-task/src/main/java/org/nuiton/eugene/GeneratorTask.java
trunk/ant-eugene-task/src/main/resources/
trunk/ant-eugene-task/src/test/
trunk/ant-eugene-task/src/test/java/
trunk/ant-eugene-task/src/test/java/org/
trunk/ant-eugene-task/src/test/java/org/nuiton/
trunk/ant-eugene-task/src/test/java/org/nuiton/eugene/
trunk/ant-eugene-task/src/test/java/org/nuiton/eugene/GeneratorTaskTest.java
trunk/ant-eugene-task/src/test/resources/
trunk/ant-eugene-task/src/test/resources/log4j.properties
trunk/ant-eugene-task/src/test/resources/models/
trunk/ant-eugene-task/src/test/resources/models/objectmodel/
trunk/ant-eugene-task/src/test/resources/models/objectmodel/security1.objectmodel
trunk/ant-eugene-task/src/test/resources/models/objectmodel/security1.properties
trunk/ant-eugene-task/src/test/resources/models/objectmodel/security2.objectmodel
trunk/ant-eugene-task/src/test/resources/models/objectmodel/security3.objectmodel
trunk/ant-eugene-task/src/test/resources/models/objectmodel/security4.objectmodel
trunk/ant-eugene-task/src/test/resources/models/objectmodel/security5.objectmodel
trunk/ant-eugene-task/src/test/resources/models/objectmodel/security6.objectmodel
trunk/ant-eugene-task/src/test/resources/models/objectmodel/security6.properties
trunk/ant-eugene-task/src/test/resources/uml/
trunk/ant-eugene-task/src/test/resources/uml/Acceleo.Business.profile.uml
trunk/ant-eugene-task/src/test/resources/xmi/
trunk/ant-eugene-task/src/test/resources/xmi/1.2/
trunk/ant-eugene-task/src/test/resources/xmi/1.2/dependency.xmi
trunk/ant-eugene-task/src/test/resources/xmi/1.2/enumeration.xmi
trunk/ant-eugene-task/src/test/resources/xmi/1.2/isis-fish.xmi
trunk/ant-eugene-task/src/test/resources/xmi/1.2/topiatest.xmi
trunk/ant-eugene-task/src/test/resources/xmi/2.1/
trunk/ant-eugene-task/src/test/resources/xmi/2.1/TestXMI21.properties
trunk/ant-eugene-task/src/test/resources/xmi/2.1/TestXMI21.uml
trunk/ant-eugene-task/src/test/resources/xmi/2.1/TestXMI21.umldi
trunk/ant-eugene-task/src/test/resources/xmi/2.1/cmsCore.uml
trunk/ant-eugene-task/src/test/resources/xmi/2.1/cmsLink.uml
trunk/ant-eugene-task/src/test/resources/xmi/2.1/http-storage-api/
trunk/ant-eugene-task/src/test/resources/xmi/2.1/http-storage-api/src/
trunk/ant-eugene-task/src/test/resources/xmi/2.1/http-storage-api/src/main/
trunk/ant-eugene-task/src/test/resources/xmi/2.1/http-storage-api/src/main/uml/
trunk/ant-eugene-task/src/test/resources/xmi/2.1/http-storage-api/src/main/uml/conception.uml
trunk/ant-eugene-task/src/test/resources/xmi/2.1/org.sharengo.utils.container.nomenclature/
trunk/ant-eugene-task/src/test/resources/xmi/2.1/org.sharengo.utils.container.nomenclature/src/
trunk/ant-eugene-task/src/test/resources/xmi/2.1/org.sharengo.utils.container.nomenclature/src/main/
trunk/ant-eugene-task/src/test/resources/xmi/2.1/org.sharengo.utils.container.nomenclature/src/main/uml/
trunk/ant-eugene-task/src/test/resources/xmi/2.1/org.sharengo.utils.container.nomenclature/src/main/uml/conception.properties
trunk/ant-eugene-task/src/test/resources/xmi/2.1/org.sharengo.utils.container.nomenclature/src/main/uml/conception.uml
trunk/ant-eugene-task/src/test/resources/xmi/2.1/org.sharengo.utils.container.nomenclature/src/main/uml/conception.umldi
trunk/ant-eugene-task/src/test/resources/xmi/2.1/org.sharengo.utils.utils/
trunk/ant-eugene-task/src/test/resources/xmi/2.1/org.sharengo.utils.utils/src/
trunk/ant-eugene-task/src/test/resources/xmi/2.1/org.sharengo.utils.utils/src/main/
trunk/ant-eugene-task/src/test/resources/xmi/2.1/org.sharengo.utils.utils/src/main/uml/
trunk/ant-eugene-task/src/test/resources/xmi/2.1/org.sharengo.utils.utils/src/main/uml/conception-helper.uml
trunk/ant-eugene-task/src/test/resources/xmi/2.1/org.sharengo.utils.utils/src/main/uml/conception-helper.umldi
trunk/ant-eugene-task/src/test/resources/xmi/2.1/org.sharengo.utils.utils/src/main/uml/conception.properties
trunk/ant-eugene-task/src/test/resources/xmi/2.1/org.sharengo.utils.utils/src/main/uml/conception.uml
trunk/ant-eugene-task/src/test/resources/xmi/2.1/org.sharengo.utils.utils/src/main/uml/conception.umldi
trunk/ant-eugene-task/src/test/resources/xmi/2.1/vpod.uml
Removed:
trunk/eugene/src/main/java/org/nuiton/eugene/GeneratorTask.java
trunk/eugene/src/test/java/org/nuiton/eugene/GeneratorTaskTest.java
Modified:
trunk/eugene/pom.xml
trunk/maven-eugene-plugin/pom.xml
trunk/pom.xml
Log:
extract ant task from eugene core lib (like in processor)
Property changes on: trunk/ant-eugene-task
___________________________________________________________________
Added: svn:ignore
+ target
*.iml
*.ipr
*.iws
Copied: trunk/ant-eugene-task/LICENSE.txt (from rev 769, trunk/LICENSE.txt)
===================================================================
--- trunk/ant-eugene-task/LICENSE.txt (rev 0)
+++ trunk/ant-eugene-task/LICENSE.txt 2009-12-20 12:58:28 UTC (rev 772)
@@ -0,0 +1,166 @@
+ GNU LESSER GENERAL PUBLIC LICENSE
+ Version 3, 29 June 2007
+
+ Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+
+ This version of the GNU Lesser General Public License incorporates
+the terms and conditions of version 3 of the GNU General Public
+License, supplemented by the additional permissions listed below.
+
+ 0. Additional Definitions.
+
+ As used herein, "this License" refers to version 3 of the GNU Lesser
+General Public License, and the "GNU GPL" refers to version 3 of the GNU
+General Public License.
+
+ "The Library" refers to a covered work governed by this License,
+other than an Application or a Combined Work as defined below.
+
+ An "Application" is any work that makes use of an interface provided
+by the Library, but which is not otherwise based on the Library.
+Defining a subclass of a class defined by the Library is deemed a mode
+of using an interface provided by the Library.
+
+ A "Combined Work" is a work produced by combining or linking an
+Application with the Library. The particular version of the Library
+with which the Combined Work was made is also called the "Linked
+Version".
+
+ The "Minimal Corresponding Source" for a Combined Work means the
+Corresponding Source for the Combined Work, excluding any source code
+for portions of the Combined Work that, considered in isolation, are
+based on the Application, and not on the Linked Version.
+
+ The "Corresponding Application Code" for a Combined Work means the
+object code and/or source code for the Application, including any data
+and utility programs needed for reproducing the Combined Work from the
+Application, but excluding the System Libraries of the Combined Work.
+
+ 1. Exception to Section 3 of the GNU GPL.
+
+ You may convey a covered work under sections 3 and 4 of this License
+without being bound by section 3 of the GNU GPL.
+
+ 2. Conveying Modified Versions.
+
+ If you modify a copy of the Library, and, in your modifications, a
+facility refers to a function or data to be supplied by an Application
+that uses the facility (other than as an argument passed when the
+facility is invoked), then you may convey a copy of the modified
+version:
+
+ a) under this License, provided that you make a good faith effort to
+ ensure that, in the event an Application does not supply the
+ function or data, the facility still operates, and performs
+ whatever part of its purpose remains meaningful, or
+
+ b) under the GNU GPL, with none of the additional permissions of
+ this License applicable to that copy.
+
+ 3. Object Code Incorporating Material from Library Header Files.
+
+ The object code form of an Application may incorporate material from
+a header file that is part of the Library. You may convey such object
+code under terms of your choice, provided that, if the incorporated
+material is not limited to numerical parameters, data structure
+layouts and accessors, or small macros, inline functions and templates
+(ten or fewer lines in length), you do both of the following:
+
+ a) Give prominent notice with each copy of the object code that the
+ Library is used in it and that the Library and its use are
+ covered by this License.
+
+ b) Accompany the object code with a copy of the GNU GPL and this license
+ document.
+
+ 4. Combined Works.
+
+ You may convey a Combined Work under terms of your choice that,
+taken together, effectively do not restrict modification of the
+portions of the Library contained in the Combined Work and reverse
+engineering for debugging such modifications, if you also do each of
+the following:
+
+ a) Give prominent notice with each copy of the Combined Work that
+ the Library is used in it and that the Library and its use are
+ covered by this License.
+
+ b) Accompany the Combined Work with a copy of the GNU GPL and this license
+ document.
+
+ c) For a Combined Work that displays copyright notices during
+ execution, include the copyright notice for the Library among
+ these notices, as well as a reference directing the user to the
+ copies of the GNU GPL and this license document.
+
+ d) Do one of the following:
+
+ 0) Convey the Minimal Corresponding Source under the terms of this
+ License, and the Corresponding Application Code in a form
+ suitable for, and under terms that permit, the user to
+ recombine or relink the Application with a modified version of
+ the Linked Version to produce a modified Combined Work, in the
+ manner specified by section 6 of the GNU GPL for conveying
+ Corresponding Source.
+
+ 1) Use a suitable shared library mechanism for linking with the
+ Library. A suitable mechanism is one that (a) uses at run time
+ a copy of the Library already present on the user's computer
+ system, and (b) will operate properly with a modified version
+ of the Library that is interface-compatible with the Linked
+ Version.
+
+ e) Provide Installation Information, but only if you would otherwise
+ be required to provide such information under section 6 of the
+ GNU GPL, and only to the extent that such information is
+ necessary to install and execute a modified version of the
+ Combined Work produced by recombining or relinking the
+ Application with a modified version of the Linked Version. (If
+ you use option 4d0, the Installation Information must accompany
+ the Minimal Corresponding Source and Corresponding Application
+ Code. If you use option 4d1, you must provide the Installation
+ Information in the manner specified by section 6 of the GNU GPL
+ for conveying Corresponding Source.)
+
+ 5. Combined Libraries.
+
+ You may place library facilities that are a work based on the
+Library side by side in a single library together with other library
+facilities that are not Applications and are not covered by this
+License, and convey such a combined library under terms of your
+choice, if you do both of the following:
+
+ a) Accompany the combined library with a copy of the same work based
+ on the Library, uncombined with any other library facilities,
+ conveyed under the terms of this License.
+
+ b) Give prominent notice with the combined library that part of it
+ is a work based on the Library, and explaining where to find the
+ accompanying uncombined form of the same work.
+
+ 6. Revised Versions of the GNU Lesser General Public License.
+
+ The Free Software Foundation may publish revised and/or new versions
+of the GNU Lesser General Public License from time to time. Such new
+versions will be similar in spirit to the present version, but may
+differ in detail to address new problems or concerns.
+
+ Each version is given a distinguishing version number. If the
+Library as you received it specifies that a certain numbered version
+of the GNU Lesser General Public License "or any later version"
+applies to it, you have the option of following the terms and
+conditions either of that published version or of any later version
+published by the Free Software Foundation. If the Library as you
+received it does not specify a version number of the GNU Lesser
+General Public License, you may choose any version of the GNU Lesser
+General Public License ever published by the Free Software Foundation.
+
+ If the Library as you received it specifies that a proxy can decide
+whether future versions of the GNU Lesser General Public License shall
+apply, that proxy's public statement of acceptance of any version is
+permanent authorization for you to choose that version for the
+Library.
+
Copied: trunk/ant-eugene-task/README.txt (from rev 769, trunk/README.txt)
===================================================================
--- trunk/ant-eugene-task/README.txt (rev 0)
+++ trunk/ant-eugene-task/README.txt 2009-12-20 12:58:28 UTC (rev 772)
@@ -0,0 +1,3 @@
+To deploy new version of pom: mvn clean deploy -DperformRelease
+To install localy: mvn clean install
+
Copied: trunk/ant-eugene-task/changelog.txt (from rev 769, trunk/changelog.txt)
===================================================================
--- trunk/ant-eugene-task/changelog.txt (rev 0)
+++ trunk/ant-eugene-task/changelog.txt 2009-12-20 12:58:28 UTC (rev 772)
@@ -0,0 +1,8 @@
+1.0.1 xxx xxx
+
+ * #91 : Don't call digester pop() on an empty stack
+ * Fix an ant to java regex conversion problem with default configuration
+
+1.0.0 xxx xxx
+ * Initial create org.nuiton.eugene mavenpom
+
Copied: trunk/ant-eugene-task/pom.xml (from rev 769, trunk/maven-eugene-plugin/pom.xml)
===================================================================
--- trunk/ant-eugene-task/pom.xml (rev 0)
+++ trunk/ant-eugene-task/pom.xml 2009-12-20 12:58:28 UTC (rev 772)
@@ -0,0 +1,80 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+
+ <modelVersion>4.0.0</modelVersion>
+
+ <!-- ************************************************************* -->
+ <!-- *** POM Relationships *************************************** -->
+ <!-- ************************************************************* -->
+ <parent>
+ <groupId>org.nuiton</groupId>
+ <artifactId>eugene</artifactId>
+ <version>2.0.0-beta-2-SNAPSHOT</version>
+ </parent>
+
+ <groupId>org.nuiton.eugene</groupId>
+ <artifactId>ant-eugene-task</artifactId>
+
+ <!-- POM Relationships : Inheritance : Dependencies -->
+ <dependencies>
+
+ <dependency>
+ <groupId>${project.groupId}</groupId>
+ <artifactId>eugene</artifactId>
+ <version>${project.version}</version>
+ <scope>compile</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.ant</groupId>
+ <artifactId>ant</artifactId>
+ </dependency>
+
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <scope>test</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>log4j</groupId>
+ <artifactId>log4j</artifactId>
+ <scope>test</scope>
+ </dependency>
+
+ </dependencies>
+
+ <!-- ************************************************************* -->
+ <!-- *** Project Information ************************************* -->
+ <!-- ************************************************************* -->
+ <name>EUGene :: Ant task</name>
+ <inceptionYear>2006</inceptionYear>
+ <description>Ant task to use the eugene library</description>
+
+ <!-- ************************************************************* -->
+ <!-- *** Build Settings ****************************************** -->
+ <!-- ************************************************************* -->
+ <packaging>jar</packaging>
+
+ <build>
+
+ <defaultGoal>install</defaultGoal>
+
+ <plugins>
+
+ </plugins>
+
+ <pluginManagement>
+ <plugins>
+ <plugin>
+ <artifactId>maven-invoker-plugin</artifactId>
+ <version>1.4</version>
+ </plugin>
+ </plugins>
+ </pluginManagement>
+
+ </build>
+
+</project>
+
Copied: trunk/ant-eugene-task/src/main/java/org/nuiton/eugene/GeneratorTask.java (from rev 769, trunk/eugene/src/main/java/org/nuiton/eugene/GeneratorTask.java)
===================================================================
--- trunk/ant-eugene-task/src/main/java/org/nuiton/eugene/GeneratorTask.java (rev 0)
+++ trunk/ant-eugene-task/src/main/java/org/nuiton/eugene/GeneratorTask.java 2009-12-20 12:58:28 UTC (rev 772)
@@ -0,0 +1,725 @@
+/* *##%
+ * EUGene :: EUGene
+ * Copyright (C) 2004 - 2009 CodeLutin
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation, either version 3 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 Lesser Public License for more details.
+ *
+ * You should have received a copy of the GNU General Lesser Public
+ * License along with this program. If not, see
+ * <http://www.gnu.org/licenses/lgpl-3.0.html>.
+ * ##%*/
+
+package org.nuiton.eugene;
+
+import java.io.File;
+import java.io.IOException;
+import java.lang.reflect.Constructor;
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.net.URLClassLoader;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Properties;
+import java.util.ServiceLoader;
+
+import javax.xml.parsers.ParserConfigurationException;
+import javax.xml.parsers.SAXParser;
+import javax.xml.parsers.SAXParserFactory;
+import javax.xml.transform.Transformer;
+import javax.xml.transform.TransformerException;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.URIResolver;
+import javax.xml.transform.stream.StreamResult;
+import javax.xml.transform.stream.StreamSource;
+
+import org.apache.tools.ant.BuildException;
+import org.apache.tools.ant.DirectoryScanner;
+import org.apache.tools.ant.Project;
+import org.apache.tools.ant.taskdefs.MatchingTask;
+import org.apache.tools.ant.types.Path;
+import org.nuiton.util.FileUtil;
+import org.nuiton.util.Resource;
+import org.nuiton.util.ZipUtil;
+import org.xml.sax.Attributes;
+import org.xml.sax.SAXException;
+import org.xml.sax.helpers.DefaultHandler;
+
+/**
+ * Ant generator Task.
+ *
+ * Exemple d'utilisation dans ant :
+ *
+ * <pre>
+ * <taskdef name="generator" classname="org.nuiton.eugene.GeneratorTask"
+ * classpath="${compile.classpath}:${targetbuild}:${resources}" />
+ *
+ * <target name="generate" description="generate">
+ * <generator srcdir="${modelDir}" destdir="${targetgen}"
+ * resolver="org.nuiton.exemple.ResourceResolver"
+ * templates="org.nuiton.example.JavaBeanGenerator"
+ * properties="defaultPackage=org.nuiton,fullPackagePath=org.nuiton,extraPackages=org.nuiton"
+ * classpath="${compile.classpath}:${targetbuild}:${resources}" />
+ * </target>
+ * </pre>
+ *
+ * Created: 14 janv. 2004
+ *
+ * @author Benjamin Poussin <poussin(a)codelutin.com> Copyright Code Lutin
+ * @version $Revision$
+ *
+ * Mise a jour: $Date$ par :
+ * $Author$
+ */
+public class GeneratorTask extends MatchingTask { // GeneratorTask
+
+ /** Ant classpath to use. */
+ protected Path classpath;
+
+ /** Template used in generation (comma separated). */
+ protected String templates;
+
+ /** Model directory. */
+ protected File srcDir;
+
+ /** Single model file. */
+ protected File srcFile;
+
+ /** Destination directory. */
+ protected File destDir;
+
+ /**
+ * Transformation to do on model (comma separated).
+ *
+ * Values are : - object (transform into object model) - state (transform
+ * into state model)
+ */
+ protected String transformations = "object";
+
+ /** URI Resolver. */
+ protected String resolver;
+
+ /**
+ * Additional generator properties.
+ *
+ * Values are : - fullPackagePath : full package path - extraPackages :
+ * extra package path - defaultPackage (extra generated model files)
+ */
+ protected Properties properties = new Properties();
+
+ /** Overwrite already existing generated files. */
+ protected boolean overwrite;
+
+ /** Encoding. Default to UTF-8. */
+ protected String encoding = "UTF-8";
+
+ /** Generation directory (default to 'build') */
+ protected String buildDirectory = "build";
+
+ /**
+ * Set the optional classpath to the XSL processor
+ *
+ * @param classpath
+ * the classpath to use when loading the XSL processor
+ */
+ public void setClasspath(Path classpath) {
+ Path antDefaulClasspath = createClasspath();
+ antDefaulClasspath.append(classpath);
+ }
+
+ /**
+ * Set templates (fully-qualified-name) to use
+ *
+ * (comma-separated).
+ *
+ * @param templates
+ * template to use.
+ */
+ public void setTemplates(String templates) {
+ this.templates = templates;
+ }
+
+ /**
+ * Transformation to do.
+ *
+ * Values are : - object (transform into object model) - state (transform
+ * into state model)
+ *
+ * @param transformations
+ * transformations
+ */
+ public void setTransformations(String transformations) {
+ this.transformations = transformations;
+ }
+
+ /**
+ * Set the optional classpath to the XSL processor
+ *
+ * @return a path instance to be configured by the Ant core.
+ */
+ protected Path createClasspath() {
+ if (classpath == null) {
+ classpath = new Path(getProject());
+ }
+ return classpath.createPath();
+ }
+
+ /**
+ * Permet d'ajouter des properties. exemple: toto=1,package=org.nuiton
+ *
+ * @param properties
+ * properties
+ */
+ public void setProperties(String properties) {
+ String[] props = properties.split(",");
+ for (String prop : props) {
+ String[] pv = prop.split("=");
+ this.properties.put(pv[0], pv[1]);
+ }
+ }
+
+ /**
+ * Set overwrite value.
+ *
+ * @param overwrite
+ * overwrite value
+ */
+ public void setOverwrite(boolean overwrite) {
+ this.overwrite = overwrite;
+ }
+
+ /**
+ * Set encoding.
+ *
+ * @param encoding
+ * encoding
+ */
+ public void setEncoding(String encoding) {
+ this.encoding = encoding;
+ }
+
+ /**
+ * Set source directory.
+ *
+ * @param srcDir
+ * source directory
+ */
+ public void setSrcdir(File srcDir) {
+ this.srcDir = srcDir;
+ }
+
+ /**
+ * Set source file.
+ *
+ * @param srcFile
+ * source file
+ */
+ public void setSrcfile(File srcFile) {
+ this.srcFile = srcFile;
+ }
+
+ /**
+ * Set destination directory
+ *
+ * @param destDir
+ * destination directory
+ */
+ public void setDestdir(File destDir) {
+ this.destDir = destDir;
+ }
+
+ /**
+ * Set build directory.
+ *
+ * @param buildDirectory
+ * build directory
+ */
+ public void setBuilddirectory(String buildDirectory) {
+ this.buildDirectory = buildDirectory;
+ }
+
+ /**
+ * Set URI resolver (FQN).
+ *
+ * @param resolver
+ * uri resolver
+ */
+ public void setResolver(String resolver) {
+ this.resolver = resolver;
+ }
+
+ @Override
+ public void execute() throws BuildException {
+
+ // check
+ if (templates == null) {
+ throw new BuildException("templates attribute must be set!",
+ getLocation());
+ }
+
+ if (destDir == null) {
+ throw new BuildException("destDir attribute must be set!",
+ getLocation());
+ }
+
+ if (!destDir.isDirectory()) {
+ throw new BuildException("destination directory \"" + destDir
+ + "\" does not exist or is not a directory", getLocation());
+ }
+
+ if (srcFile == null && srcDir == null) {
+ throw new BuildException(
+ "srcFile or srcDir attribute must be set!", getLocation());
+ }
+
+ if (srcFile != null && !srcFile.isFile()) {
+ throw new BuildException("src file \"" + srcFile
+ + "\" does not exist or is not a file", getLocation());
+ }
+
+ String[] templateGenerators = templates.split(",");
+ Template[] generators = new Template[templateGenerators.length];
+ for (int i = 0; i < templateGenerators.length; i++) {
+ String templateName = templateGenerators[i].trim();
+ try {
+ generators[i] = (Template) Class.forName(templateName)
+ .newInstance();
+ generators[i].setEncoding(encoding);
+ generators[i].setProperties(properties);
+ generators[i].setOverwrite(overwrite);
+
+ } catch (ClassCastException e) {
+ log("Generator don't herite Generator Class", e,
+ Project.MSG_ERR);
+ } catch (ClassNotFoundException e) {
+ log("Unable to find generator" + templateName, e,
+ Project.MSG_ERR);
+ } catch (InstantiationException e) {
+ log("Unable to instanciate template" + templateName, e,
+ Project.MSG_ERR);
+ } catch (IllegalAccessException e) {
+ log("Unable to parse topia input file" + templateName, e,
+ Project.MSG_ERR);
+ }
+ }
+
+ if (srcFile != null) {
+ // generate the source files
+ doExecute(srcFile, destDir, generators);
+ } else {
+ DirectoryScanner scanner;
+ scanner = getDirectoryScanner(srcDir);
+
+ // Process all the files marked for styling
+ String[] includedFilenames = scanner.getIncludedFiles();
+ List<File> includedFiles = new ArrayList<File>(
+ includedFilenames.length);
+ for (int i = 0; i < includedFilenames.length; ++i) {
+ includedFiles.add(new File(srcDir, includedFilenames[i]));
+ }
+ doExecute(includedFiles, destDir, generators);
+ }
+ }
+
+ /**
+ * Equivalent to
+ * <tt>doExecute(new File[] { srcFile }, destDir, generators)</tt>.
+ *
+ * @param srcFile
+ * file to apply generator to
+ * @param destDir
+ * destination directory
+ * @param generators
+ * generators to apply
+ * @throws BuildException
+ * if can't generate
+ */
+ protected void doExecute(File srcFile, File destDir, Template[] generators)
+ throws BuildException {
+ doExecute(Collections.singletonList(srcFile), destDir, generators);
+ }
+
+ /**
+ * Execute generation on specified files.
+ *
+ * @param srcFiles
+ * files to apply generator to
+ * @param destDir
+ * destination directory
+ * @param generators
+ * generators to apply
+ * @throws BuildException
+ * if can't generate
+ */
+ protected void doExecute(List<File> srcFiles, File destDir,
+ Template[] generators) throws BuildException {
+
+ // log classpath
+ log("Using classpath : " + classpath);
+
+ List<File> modelFiles = doConvertFiles(srcFiles, destDir);
+
+ for (Template generator : generators) {
+ if (generator != null) {
+ File[] modelFilesArray = modelFiles.toArray(new File[0]);
+ log("Applying " + generator.getClass().getSimpleName()
+ + " on " + Arrays.toString(modelFilesArray),
+ Project.MSG_INFO);
+ generator.generate(modelFilesArray, destDir);
+ }
+ }
+ }
+
+ /**
+ * Convert srcFiles and return only eugene models files.
+ *
+ * Do following convertions : - unzip archive (zipped files) - xslt
+ * transformation (xmi files) - do nothing on model files
+ *
+ * @param srcFiles
+ * @param destDir
+ * @return model file list
+ */
+ protected List<File> doConvertFiles(List<File> srcFiles, File destDir) {
+
+ List<File> result = new ArrayList<File>();
+
+ // transform tranformations list
+ String[] transformationsArray = transformations.split(",");
+
+ for (File file : srcFiles) {
+
+ File currentFile = file;
+
+ // unzip if needed
+ // after loop file is xmi
+ if (isArchiveFile(currentFile)) {
+
+ File unzipDirectory = new File(buildDirectory, "xmi");
+ if (unzipDirectory.exists()) {
+ unzipDirectory.mkdirs();
+ }
+ // log
+ log("Unzip " + currentFile.getAbsolutePath() + " into "
+ + unzipDirectory.getAbsolutePath(), Project.MSG_INFO);
+ try {
+ ZipUtil.uncompress(file, unzipDirectory);
+ } catch (IOException e) {
+ throw new BuildException("Error on unzip archive", e);
+ }
+
+ String xmiName = currentFile.getName().substring(0,
+ currentFile.getName().lastIndexOf('.'))
+ + ".xmi";
+ currentFile = new File(unzipDirectory, xmiName);
+ }
+
+ // transform file if needed
+ // after loop file is model (object, state, ui)
+ if (isXmiFile(currentFile)) {
+ String xmiVersion = getXmiVersion(currentFile);
+
+ if (xmiVersion != null) {
+
+ // model directory
+ File outputDirectory = new File(buildDirectory, "models");
+ outputDirectory.mkdirs();
+ // single model name
+ String modelName = currentFile.getName().substring(0,
+ currentFile.getName().lastIndexOf('.'));
+
+ // copy .properties file
+ String propertyPath = currentFile.getParent();
+ File propertyFile = new File(propertyPath, modelName
+ + ".properties");
+
+ if (propertyFile.exists()) {
+ File propertyOutputFile = new File(outputDirectory,
+ propertyFile.getName());
+ try {
+ FileUtil.copy(propertyFile, propertyOutputFile);
+ } catch (IOException ioe) {
+ log("Cannot copy .properties file", ioe,
+ Project.MSG_ERR);
+ }
+ }
+
+ for (String transformation : transformationsArray) {
+
+ // object
+ if (transformation.trim().equalsIgnoreCase("object")) {
+ File outputFile = new File(outputDirectory,
+ modelName + ".objectmodel");
+ if (xmiVersion.equals("1.2")) {
+ log("Apply XMI 1.2 to object model XSLT on "
+ + currentFile.getAbsolutePath(),
+ Project.MSG_INFO);
+ executeXSLT(currentFile, outputFile,
+ "xmi1.2ToObjectModel.xsl");
+ } else if (xmiVersion.equals("2.1")) {
+ log("Apply XMI 2.1 to object model XSLT on "
+ + currentFile.getAbsolutePath(),
+ Project.MSG_INFO);
+ executeXSLT(currentFile, outputFile,
+ "xmi2.1ToObjectModel.xsl");
+ }
+
+ // can have more than one model file
+ // for one xmi
+ result.add(outputFile);
+ }
+
+ // state
+ else if (transformation.trim()
+ .equalsIgnoreCase("state")) {
+ File outputFile = new File(outputDirectory,
+ modelName + ".statemodel");
+ if (xmiVersion.equals("1.2")) {
+ log("Apply XMI 1.2 to state model XSLT on "
+ + currentFile.getAbsolutePath(),
+ Project.MSG_INFO);
+ executeXSLT(currentFile, outputFile,
+ "xmi1.2ToStateModel.xsl");
+ } else if (xmiVersion.equals("2.1")) {
+ throw new BuildException(
+ "State model transformation is not supported for xmi 2.1");
+ }
+
+ // can have more than one model file
+ // for one xmi
+ result.add(outputFile);
+ }
+ }
+ } else {
+ throw new BuildException(
+ "Can't get xmi version from file : "
+ + currentFile.getAbsolutePath());
+ }
+ }
+
+ // others files
+ // we can have model files or non model file
+ else if (isModelFile(currentFile)) {
+ result.add(currentFile);
+ }
+
+ }
+
+ return result;
+ }
+
+ /**
+ * Test if file is an archive.
+ *
+ * @param file
+ * file to test
+ * @return test result
+ */
+ protected boolean isArchiveFile(File file) {
+ String fileName = file.getName();
+
+ boolean result = fileName.endsWith(".zargo")
+ || fileName.endsWith(".zuml");
+ return result;
+ }
+
+ /**
+ * Test if file is a xmi.
+ *
+ * @param file
+ * file to test
+ * @return test result
+ */
+ protected boolean isXmiFile(File file) {
+ String fileName = file.getName();
+
+ boolean result = fileName.endsWith(".uml") || fileName.endsWith(".xmi");
+ return result;
+ }
+
+ /**
+ * Test if file is a model
+ *
+ * @param file
+ * file to test
+ * @return test result
+ */
+ protected boolean isModelFile(File file) {
+ String fileName = file.getName();
+
+ boolean result = fileName.endsWith(".objectmodel")
+ || fileName.endsWith(".statemodel");
+ return result;
+ }
+
+ /**
+ * Try to find xmi version on a file.
+ *
+ * @param xmiFile
+ * file to inspect
+ * @return version or null if version can't have been found
+ */
+ protected String getXmiVersion(File xmiFile) {
+ String version = null;
+
+ SAXParserFactory factory = SAXParserFactory.newInstance();
+
+ try {
+ SAXParser parser = factory.newSAXParser();
+
+ XmiVersionHandler handler = new XmiVersionHandler();
+ parser.parse(xmiFile, handler);
+
+ version = handler.getVersion();
+ } catch (ParserConfigurationException e) {
+ log("Can't parse file as xmi", e, Project.MSG_DEBUG);
+ } catch (SAXException e) {
+ log("Can't parse file as xmi", e, Project.MSG_DEBUG);
+ } catch (IOException e) {
+ log("Can't parse file as xmi", e, Project.MSG_DEBUG);
+ }
+
+ return version;
+ }
+
+ /**
+ * Sax handler to find xmi version into xmi document.
+ */
+ protected class XmiVersionHandler extends DefaultHandler {
+
+ public String version = null;
+
+ public XmiVersionHandler() {
+ super();
+ }
+
+ public String getVersion() {
+ return version;
+ }
+
+ @Override
+ public void startElement(String uri, String localName, String qName,
+ Attributes attributes) throws SAXException {
+
+ if (qName.equals("XMI")) {
+ version = attributes.getValue("xmi.version");
+ log("XMI version found : " + version, Project.MSG_DEBUG);
+ }
+
+ if (version == null) {
+ version = attributes.getValue("xmi:version");
+ log("XMI version found : " + version, Project.MSG_DEBUG);
+ }
+
+ }
+ }
+
+ /**
+ * Do XSLT transformation on given file using specific stylesheet.
+ *
+ * @param xmiFile
+ * xmi file to transform
+ * @param modelFile
+ * result of transformation
+ * @param stylesheet
+ * stylesheet to use
+ */
+ protected void executeXSLT(File xmiFile, File modelFile, String stylesheet) {
+
+ // Transformation XSL
+ try {
+
+ // transform ant classpath into
+ // URLclassloader
+ ClassLoader urlLoader = null;
+ if (classpath != null) {
+ String[] jars = classpath.list();
+ URL[] jarsURL = new URL[jars.length];
+ for (int i = 0; i < jars.length; i++) {
+ jarsURL[i] = new File(jars[i]).toURI().toURL();
+ }
+ urlLoader = new URLClassLoader(jarsURL);
+ } else {
+ urlLoader = Thread.currentThread().getContextClassLoader();
+ }
+
+ // Load Transformer with service loader
+ Iterator<TransformerFactory> itTransformerFactory = ServiceLoader
+ .load(TransformerFactory.class, urlLoader).iterator();
+ if (!itTransformerFactory.hasNext()) {
+ throw new BuildException("No XSLT Transformer found");
+ }
+
+ TransformerFactory transformerFactory = itTransformerFactory.next();
+ URL uxsl = Resource.getURL(stylesheet);
+ StreamSource stylesource = new StreamSource(uxsl.openStream());
+ Transformer transformer = transformerFactory
+ .newTransformer(stylesource);
+
+ if (properties.containsKey("fullPackagePath")) {
+ transformer.setParameter("fullPackagePath", properties
+ .getProperty("fullPackagePath"));
+ }
+
+ if (properties.containsKey("extraPackages")) {
+ transformer.setParameter("extraPackages", properties
+ .getProperty("extraPackages"));
+ }
+
+ if (resolver != null && !resolver.isEmpty()) {
+ Class<?> clazz = (Class<?>) Class.forName(resolver, true,
+ urlLoader);
+ URIResolver tresolver = null;
+
+ // Try to set the base using the constructor
+ try {
+ // Look for a constructor with a String parameter (base)
+ Constructor<?> withBaseConstructor = clazz
+ .getConstructor(String.class);
+ // Set the xmi folder as the base
+ String base = xmiFile.getParentFile().getAbsolutePath();
+ // Instantiate
+ tresolver = (URIResolver) withBaseConstructor
+ .newInstance(base);
+ } catch (Exception eee) {
+ log("Unable to instantiate resolver with String parameter",
+ eee, Project.MSG_WARN);
+ }
+
+ // If resolver is still not created, create it using the default
+ // constructor
+ if (tresolver == null) {
+ tresolver = (URIResolver) clazz.newInstance();
+ }
+ transformer.setURIResolver(tresolver);
+ }
+
+ transformer.transform(new StreamSource(xmiFile.getAbsolutePath()),
+ new StreamResult(modelFile.getAbsolutePath()));
+ } catch (TransformerException e) {
+ throw new BuildException("Transformation exception (xslt)", e);
+ } catch (MalformedURLException e) {
+ throw new BuildException("Invalid jar url", e);
+ } catch (InstantiationException e) {
+ throw new BuildException("Can't init resolver", e);
+ } catch (IllegalAccessException e) {
+ throw new BuildException("Can't access resolver", e);
+ } catch (ClassNotFoundException e) {
+ throw new BuildException("Can't find resolver", e);
+ } catch (IOException e) {
+ throw new BuildException("Error while trying to access stylesheet",
+ e);
+ }
+ }
+
+} // GeneratorTask
Property changes on: trunk/ant-eugene-task/src/main/java/org/nuiton/eugene/GeneratorTask.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision
Added: svn:eol-style
+ native
Copied: trunk/ant-eugene-task/src/test/java/org/nuiton/eugene/GeneratorTaskTest.java (from rev 769, trunk/eugene/src/test/java/org/nuiton/eugene/GeneratorTaskTest.java)
===================================================================
--- trunk/ant-eugene-task/src/test/java/org/nuiton/eugene/GeneratorTaskTest.java (rev 0)
+++ trunk/ant-eugene-task/src/test/java/org/nuiton/eugene/GeneratorTaskTest.java 2009-12-20 12:58:28 UTC (rev 772)
@@ -0,0 +1,213 @@
+/* *##%
+ * EUGene :: EUGene
+ * Copyright (C) 2004 - 2009 CodeLutin
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation, either version 3 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 Lesser Public License for more details.
+ *
+ * You should have received a copy of the GNU General Lesser Public
+ * License along with this program. If not, see
+ * <http://www.gnu.org/licenses/lgpl-3.0.html>.
+ * ##%*/
+
+package org.nuiton.eugene;
+
+import java.io.File;
+import java.io.IOException;
+
+import org.apache.tools.ant.BuildLogger;
+import org.apache.tools.ant.NoBannerLogger;
+import org.apache.tools.ant.Project;
+import org.junit.Assert;
+import org.junit.Test;
+import org.nuiton.util.FileUtil;
+import org.nuiton.util.ResourceResolver;
+
+/**
+ * Test class for Generator Ant task.
+ *
+ * @author chatellier
+ * @version $Revision$
+ *
+ * Last update : $Date$
+ * By : $Author$
+ */
+public class GeneratorTaskTest {
+
+ /**
+ * All test common task instanciation.
+ *
+ * @return task
+ */
+ protected GeneratorTask getGeneratorTask() {
+ Project antProject = new Project();
+
+ BuildLogger logger = new NoBannerLogger();
+ logger.setMessageOutputLevel(Project.MSG_DEBUG);
+ logger.setOutputPrintStream(System.out);
+ logger.setErrorPrintStream(System.err);
+ antProject.addBuildListener(logger);
+
+ GeneratorTask generatorTask = new GeneratorTask();
+ generatorTask.setProject(antProject);
+ generatorTask.setTaskName("Eugene");
+
+ return generatorTask;
+ }
+
+ /**
+ * Test generation with ant task.
+ *
+ * @throws IOException
+ */
+ @Test
+ public void testGenerateXMI12() throws IOException {
+
+ GeneratorTask generatorTask = getGeneratorTask();
+
+ /* Configuration */
+ generatorTask.setOverwrite(true);
+ generatorTask.setBuilddirectory("target/anttest");
+ generatorTask.setTemplates(ObjectModelGenerator.class.getName());
+ generatorTask.setSrcdir(new File("target/test-classes/xmi/1.2"));
+ generatorTask.setEncoding("UTF-8");
+
+ File destDirGen = FileUtil.createTempDirectory(
+ "1.2-", "", new File("target", "ant"));
+ destDirGen.mkdirs();
+ generatorTask.setDestdir(destDirGen);
+ generatorTask.setBuilddirectory(destDirGen.getAbsolutePath());
+
+ generatorTask.setProperties("defaultPackage=org.nuiton");
+
+ generatorTask.setIncludes("**/*.xmi");
+
+ generatorTask.execute();
+
+ // TODO Check result
+
+ // remove created temp dir
+ FileUtil.deleteRecursively(destDirGen);
+ }
+
+ /**
+ * Test generation with ant task.
+ *
+ * @throws IOException
+ */
+ @Test
+ public void testGenerateXMI21() throws IOException {
+
+ GeneratorTask generatorTask = getGeneratorTask();
+
+ /* Configuration */
+ generatorTask.setOverwrite(true);
+ generatorTask.setTemplates(ObjectModelGenerator.class.getName());
+ generatorTask.setSrcdir(new File("target/test-classes/xmi/2.1"));
+ generatorTask.setEncoding("UTF-8");
+ generatorTask.setResolver(ResourceResolver.class.getName());
+
+ File destDirGen = FileUtil.createTempDirectory(
+ "2.1-", "", new File("target", "ant"));
+ destDirGen.mkdirs();
+ generatorTask.setDestdir(destDirGen);
+ generatorTask.setBuilddirectory(destDirGen.getAbsolutePath());
+
+ generatorTask.setProperties("defaultPackage=org.nuiton");
+
+ generatorTask.setIncludes("**/*.uml");
+
+ generatorTask.execute();
+
+ // TODO Check result
+
+ // remove created temp dir
+ FileUtil.deleteRecursively(destDirGen);
+ }
+
+ /**
+ * Test generation with ant task.
+ *
+ * @throws IOException
+ */
+ @Test
+ public void testGenerateXMIObjectModel() throws IOException {
+
+ GeneratorTask generatorTask = getGeneratorTask();
+
+ /* Configuration */
+ generatorTask.setOverwrite(true);
+ generatorTask.setTemplates(ObjectModelGenerator.class.getName());
+ generatorTask.setSrcdir(new File("target/test-classes/models/"));
+ generatorTask.setEncoding("UTF-8");
+
+ File destDirGen = FileUtil.createTempDirectory(
+ "objectmodel-", "", new File("target", "ant"));
+ destDirGen.mkdirs();
+ generatorTask.setDestdir(destDirGen);
+ generatorTask.setBuilddirectory(destDirGen.getAbsolutePath());
+
+ generatorTask.setProperties("defaultPackage=org.nuiton");
+
+ generatorTask.setIncludes("**/*.objectmodel");
+
+ generatorTask.execute();
+
+ // TODO Check result
+
+ // remove created temp dir
+ FileUtil.deleteRecursively(destDirGen);
+ }
+
+ /**
+ * Test generation with ant task.
+ *
+ * @throws IOException
+ */
+ @Test
+ public void testCopyPropertiesFile() throws IOException {
+
+ GeneratorTask generatorTask = getGeneratorTask();
+
+ /* Configuration */
+ generatorTask.setOverwrite(true);
+ generatorTask.setTemplates(ObjectModelGenerator.class.getName());
+ generatorTask.setSrcdir(new File("target/test-classes/xmi/2.1"));
+ generatorTask.setEncoding("UTF-8");
+ generatorTask.setResolver(ResourceResolver.class.getName());
+
+ File destDirGen = FileUtil.createTempDirectory(
+ "objectmodel-", "", new File("target", "ant"));
+ destDirGen.mkdirs();
+ generatorTask.setDestdir(destDirGen);
+ generatorTask.setBuilddirectory(destDirGen.getAbsolutePath());
+
+ generatorTask.setProperties("defaultPackage=org.nuiton");
+
+ generatorTask.setIncludes("**/TestXMI21.uml");
+
+ generatorTask.execute();
+
+ File modelFolder = new File(destDirGen, "models");
+ String[] folderFiles = modelFolder.list();
+ Assert.assertEquals(2, folderFiles.length);
+ for (String filePath : folderFiles) {
+ File file = new File(filePath);
+ if (!"TestXMI21.objectmodel".equals(file.getName())
+ && !"TestXMI21.properties".equals(file.getName())) {
+ Assert.fail("Unexpected file: " + filePath +
+ ". Should be TestXMI21.objectmodel or TestXMI21.properties");
+ }
+ }
+
+ // remove created temp dir
+ FileUtil.deleteRecursively(destDirGen);
+ }
+}
Property changes on: trunk/ant-eugene-task/src/test/java/org/nuiton/eugene/GeneratorTaskTest.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision
Copied: trunk/ant-eugene-task/src/test/resources/log4j.properties (from rev 769, trunk/eugene/src/test/resources/log4j.properties)
===================================================================
--- trunk/ant-eugene-task/src/test/resources/log4j.properties (rev 0)
+++ trunk/ant-eugene-task/src/test/resources/log4j.properties 2009-12-20 12:58:28 UTC (rev 772)
@@ -0,0 +1,11 @@
+# Global logging configuration
+log4j.rootLogger=ERROR, stdout
+
+# Console output...
+log4j.appender.stdout=org.apache.log4j.ConsoleAppender
+log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
+log4j.appender.stdout.layout.ConversionPattern=%5p [%t] (%F:%L) %M - %m%n
+
+# package level
+log4j.logger.org.nuiton.eugene=INFO
+log4j.logger.org.apache.commons.digester=INFO
\ No newline at end of file
Copied: trunk/ant-eugene-task/src/test/resources/models/objectmodel/security1.objectmodel (from rev 769, trunk/eugene/src/test/resources/models/objectmodel/security1.objectmodel)
===================================================================
--- trunk/ant-eugene-task/src/test/resources/models/objectmodel/security1.objectmodel (rev 0)
+++ trunk/ant-eugene-task/src/test/resources/models/objectmodel/security1.objectmodel 2009-12-20 12:58:28 UTC (rev 772)
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<objectModel xmlns:UML="org.omg.xmi.namespace.UML" xmlns:packageValidator="xalan://org.nuiton.eugene.PackageValidator" xmlns="http://www.codelutin.org/lutingenerator/objectModel" name="Security">
+ <interface name="TestInterface" package="org.codelutin.topia.security">
+ <stereotype name="entity"/>
+ </interface>
+ <class name="RolePermission" package="org.codelutin.topia.security.entities">
+ <stereotype name="entity"/>
+ <attribute name="topiaId" visibility="private" type="java.lang.String"/>
+ <attribute name="role" visibility="public" type="org.codelutin.topia.security.entities.Role" reverseAttribute="permissions" minMultiplicity="1" maxMultiplicity="1"/>
+ </class>
+ <class name="User" package="org.codelutin.topia.security.entities">
+ <stereotype name="entity"/>
+ <superclass name="org.codelutin.topia.security.entities.Role" discriminator=""/>
+ <interface name="org.codelutin.topia.security.TestInterface"/>
+ <attribute name="password" visibility="private" type="java.lang.String"/>
+ <attribute name="login" visibility="private" type="java.lang.String"/>
+ </class>
+ <class name="Group" package="org.codelutin.topia.security.entities">
+ <stereotype name="entity"/>
+ <superclass name="org.codelutin.topia.security.entities.Role" discriminator=""/>
+ <attribute name="groupName" visibility="private" type="java.lang.String"/>
+ <attribute name="members" visibility="public" type="org.codelutin.topia.security.entities.Role" reverseAttribute="parent" associationType="aggregate" minMultiplicity="0" maxMultiplicity="-1"/>
+ </class>
+ <class name="Role" package="org.codelutin.topia.security.entities">
+ <stereotype name="entity"/>
+ <attribute name="parent" visibility="public" type="org.codelutin.topia.security.entities.Group" reverseAttribute="members" minMultiplicity="1" maxMultiplicity="1"/>
+ <attribute name="permissions" visibility="public" type="org.codelutin.topia.security.entities.RolePermission" reverseAttribute="role" minMultiplicity="0" maxMultiplicity="-1"/>
+ <attribute name="roleName" visibility="public" type="java.lang.String"/>
+ </class>
+</objectModel>
Copied: trunk/ant-eugene-task/src/test/resources/models/objectmodel/security1.properties (from rev 769, trunk/eugene/src/test/resources/models/objectmodel/security1.properties)
===================================================================
--- trunk/ant-eugene-task/src/test/resources/models/objectmodel/security1.properties (rev 0)
+++ trunk/ant-eugene-task/src/test/resources/models/objectmodel/security1.properties 2009-12-20 12:58:28 UTC (rev 772)
@@ -0,0 +1,7 @@
+org.codelutin.topia.security.entities.Role.class.stereotype=Permission
+org.codelutin.topia.security.entities.Role.class.tagvalue.role=admin
+
+org.codelutin.topia.security.entities.RolePermission.attribute.topiaId.stereotype=pk
+org.codelutin.topia.security.entities.RolePermission.attribute.topiaId.tagvalue.string= topiaId:
+
+model.tagvalue.lejoliemodel=toto
Copied: trunk/ant-eugene-task/src/test/resources/models/objectmodel/security2.objectmodel (from rev 769, trunk/eugene/src/test/resources/models/objectmodel/security2.objectmodel)
===================================================================
--- trunk/ant-eugene-task/src/test/resources/models/objectmodel/security2.objectmodel (rev 0)
+++ trunk/ant-eugene-task/src/test/resources/models/objectmodel/security2.objectmodel 2009-12-20 12:58:28 UTC (rev 772)
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<objectModel xmlns:UML="org.omg.xmi.namespace.UML" xmlns:packageValidator="xalan://org.nuiton.eugene.PackageValidator" xmlns="http://www.codelutin.org/lutingenerator/objectModel" name="Security">
+ <class name="User" package="org.codelutin.topia.security.entities">
+ <stereotype name="entity"/>
+ <attribute name="nom" visibility="private" type="java.lang.String"/>
+ <attribute name="login" visibility="private" type="java.lang.String"/>
+ </class>
+</objectModel>
Copied: trunk/ant-eugene-task/src/test/resources/models/objectmodel/security3.objectmodel (from rev 769, trunk/eugene/src/test/resources/models/objectmodel/security3.objectmodel)
===================================================================
--- trunk/ant-eugene-task/src/test/resources/models/objectmodel/security3.objectmodel (rev 0)
+++ trunk/ant-eugene-task/src/test/resources/models/objectmodel/security3.objectmodel 2009-12-20 12:58:28 UTC (rev 772)
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<objectModel xmlns:UML="org.omg.xmi.namespace.UML" xmlns:packageValidator="xalan://org.nuiton.eugene.PackageValidator" xmlns="http://www.codelutin.org/lutingenerator/objectModel" name="Security">
+ <class name="User" package="org.codelutin.topia.security.entities">
+ <stereotype name="entity"/>
+ <attribute name="password" visibility="private" type="java.lang.String"/>
+ <attribute name="nom" visibility="private" type="java.lang.String"/>
+ <attribute name="prenom" visibility="private" type="java.lang.String"/>
+ </class>
+</objectModel>
Copied: trunk/ant-eugene-task/src/test/resources/models/objectmodel/security4.objectmodel (from rev 769, trunk/eugene/src/test/resources/models/objectmodel/security4.objectmodel)
===================================================================
--- trunk/ant-eugene-task/src/test/resources/models/objectmodel/security4.objectmodel (rev 0)
+++ trunk/ant-eugene-task/src/test/resources/models/objectmodel/security4.objectmodel 2009-12-20 12:58:28 UTC (rev 772)
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<objectModel xmlns:UML="org.omg.xmi.namespace.UML" xmlns:packageValidator="xalan://org.nuiton.eugene.PackageValidator" xmlns="http://www.codelutin.org/lutingenerator/objectModel" name="Security">
+ <interface name="ZimZoum" package="org.codelutin.topia.security">
+ <stereotype name="entity"/>
+ </interface>
+ <class name="RolePermission" package="org.codelutin.topia.security.entities">
+ <stereotype name="entity"/>
+ <attribute name="topiaId" visibility="private" type="java.lang.String"/>
+ </class>
+ <class name="User" package="org.codelutin.topia.security.entities">
+ <stereotype name="entity"/>
+ <interface name="org.codelutin.topia.security.ZimZoum"/>
+ <attribute name="password" visibility="private" type="java.lang.String"/>
+ <operation name="methode" visibility="public">
+ <returnParameter type="void"/>
+ </operation>
+ </class>
+ <class name="Group" package="org.codelutin.topia.security.entities">
+ <stereotype name="entity"/>
+ <attribute name="groupName" visibility="private" type="java.lang.String"/>
+ <attribute name="groupZimZoum" visibility="private" type="java.lang.String"/>
+ </class>
+</objectModel>
Copied: trunk/ant-eugene-task/src/test/resources/models/objectmodel/security5.objectmodel (from rev 769, trunk/eugene/src/test/resources/models/objectmodel/security5.objectmodel)
===================================================================
--- trunk/ant-eugene-task/src/test/resources/models/objectmodel/security5.objectmodel (rev 0)
+++ trunk/ant-eugene-task/src/test/resources/models/objectmodel/security5.objectmodel 2009-12-20 12:58:28 UTC (rev 772)
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<objectModel xmlns:UML="org.omg.xmi.namespace.UML" xmlns:packageValidator="xalan://org.nuiton.eugene.PackageValidator" xmlns="http://www.codelutin.org/lutingenerator/objectModel" name="Security">
+ <class name="RolePermission" package="org.codelutin.topia.security.entities">
+ <stereotype name="entity"/>
+ <attribute name="topiaId" visibility="private" type="java.lang.String"/>
+ <attribute name="perm" visibility="private" type="java.lang.String"/>
+ <operation name="permToString" visibility="public">
+ <returnParameter type="java.lang.String"/>
+ </operation>
+ </class>
+</objectModel>
Copied: trunk/ant-eugene-task/src/test/resources/models/objectmodel/security6.objectmodel (from rev 769, trunk/eugene/src/test/resources/models/objectmodel/security6.objectmodel)
===================================================================
--- trunk/ant-eugene-task/src/test/resources/models/objectmodel/security6.objectmodel (rev 0)
+++ trunk/ant-eugene-task/src/test/resources/models/objectmodel/security6.objectmodel 2009-12-20 12:58:28 UTC (rev 772)
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<objectModel xmlns:UML="org.omg.xmi.namespace.UML" xmlns:packageValidator="xalan://org.nuiton.eugene.PackageValidator" xmlns="http://www.codelutin.org/lutingenerator/objectModel" name="Security">
+ <interface name="TestInterface" package="org.codelutin.topia.security">
+ <stereotype name="entity"/>
+ </interface>
+ <class name="RolePermission" package="org.codelutin.topia.security.entities">
+ <stereotype name="entity"/>
+ <attribute name="topiaId" visibility="private" type="java.lang.String"/>
+ <attribute name="role" visibility="public" type="org.codelutin.topia.security.entities.Role" reverseAttribute="permissions" minMultiplicity="1" maxMultiplicity="1"/>
+ </class>
+ <class name="User" package="org.codelutin.topia.security.entities">
+ <stereotype name="entity"/>
+ <superclass name="org.codelutin.topia.security.entities.Role" discriminator=""/>
+ <interface name="org.codelutin.topia.security.TestInterface"/>
+ <attribute name="password" visibility="private" type="java.lang.String"/>
+ <attribute name="login" visibility="private" type="java.lang.String"/>
+ </class>
+ <class name="Group" package="org.codelutin.topia.security.entities">
+ <stereotype name="entity"/>
+ <superclass name="org.codelutin.topia.security.entities.Role" discriminator=""/>
+ <attribute name="groupName" visibility="private" type="java.lang.String"/>
+ <attribute name="members" visibility="public" type="org.codelutin.topia.security.entities.Role" reverseAttribute="parent" associationType="aggregate" minMultiplicity="0" maxMultiplicity="-1"/>
+ </class>
+ <class name="Role" package="org.codelutin.topia.security.entities">
+ <stereotype name="entity"/>
+ <attribute name="parent" visibility="public" type="org.codelutin.topia.security.entities.Group" reverseAttribute="members" minMultiplicity="1" maxMultiplicity="1"/>
+ <attribute name="permissions" visibility="public" type="org.codelutin.topia.security.entities.RolePermission" reverseAttribute="role" minMultiplicity="0" maxMultiplicity="-1"/>
+ <attribute name="roleName" visibility="public" type="java.lang.String"/>
+ </class>
+</objectModel>
Copied: trunk/ant-eugene-task/src/test/resources/models/objectmodel/security6.properties (from rev 769, trunk/eugene/src/test/resources/models/objectmodel/security6.properties)
===================================================================
--- trunk/ant-eugene-task/src/test/resources/models/objectmodel/security6.properties (rev 0)
+++ trunk/ant-eugene-task/src/test/resources/models/objectmodel/security6.properties 2009-12-20 12:58:28 UTC (rev 772)
@@ -0,0 +1,5 @@
+org.codelutin.topia.security.entities.RolePermission.class.stereotype=Permission
+org.codelutin.topia.security.entities.RolePermission.class.tagvalue.role=admin
+
+org.codelutin.topia.security.entities.RolePermission.attribute.topiaId.stereotype=pk
+org.codelutin.topia.security.entities.RolePermission.attribute.topiaId.tagvalue.string= topiaId:
Copied: trunk/ant-eugene-task/src/test/resources/uml/Acceleo.Business.profile.uml (from rev 769, trunk/eugene/src/test/resources/uml/Acceleo.Business.profile.uml)
===================================================================
--- trunk/ant-eugene-task/src/test/resources/uml/Acceleo.Business.profile.uml (rev 0)
+++ trunk/ant-eugene-task/src/test/resources/uml/Acceleo.Business.profile.uml 2009-12-20 12:58:28 UTC (rev 772)
@@ -0,0 +1,235 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<uml:Profile xmi:version="2.1" xmlns:xmi="http://schema.omg.org/spec/XMI/2.1" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:uml="http://www.eclipse.org/uml2/2.0.0/UML" xmi:id="_JX9fQPWcEdyuYMHNZCqWBQ" name="Acceleo::Business" metaclassReference="_EcR54Fe8Ed2bzMTtqNY1Rw _EcWyYFe8Ed2bzMTtqNY1Rw _EcXZcle8Ed2bzMTtqNY1Rw _EcYnkFe8Ed2bzMTtqNY1Rw _EcZ1sFe8Ed2bzMTtqNY1Rw _Ecacwle8Ed2bzMTtqNY1Rw _Ecbq4Fe8Ed2bzMTtqNY1Rw _EccR8le8Ed2bzMTtqNY1Rw _EcdgEFe8Ed2bzMTtqNY1Rw _Echxgle8Ed2bzMTtqNY1Rw _Eci_oFe8Ed2bzMTtqNY1Rw">
+ <eAnnotations xmi:id="_81g14PWcEdyuYMHNZCqWBQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <contents xmi:type="ecore:EPackage" xmi:id="_81g14fWcEdyuYMHNZCqWBQ" name="AcceleoBusiness" nsURI="http:///schemas/AcceleoBusiness/_ex16ICKPEd26SOvVLQpYXg/1" nsPrefix="AcceleoBusiness">
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_Ec-dcVe8Ed2bzMTtqNY1Rw" name="Service">
+ <eAnnotations xmi:id="_Ec-dcle8Ed2bzMTtqNY1Rw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_SrijcPWcEdyuYMHNZCqWBQ"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_Ec-dc1e8Ed2bzMTtqNY1Rw" name="base_Class" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/2.0.0/UML#//Class"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_Ec-ddVe8Ed2bzMTtqNY1Rw" name="Dao">
+ <eAnnotations xmi:id="_Ec-ddle8Ed2bzMTtqNY1Rw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_UBfCsPWcEdyuYMHNZCqWBQ"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_Ec-dd1e8Ed2bzMTtqNY1Rw" name="base_Class" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/2.0.0/UML#//Class"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_Ec-deVe8Ed2bzMTtqNY1Rw" name="Dto">
+ <eAnnotations xmi:id="_Ec-dele8Ed2bzMTtqNY1Rw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_UylvgPWcEdyuYMHNZCqWBQ"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_Ec-de1e8Ed2bzMTtqNY1Rw" name="base_Class" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/2.0.0/UML#//Class"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_Ec-dfVe8Ed2bzMTtqNY1Rw" name="Entity">
+ <eAnnotations xmi:id="_Ec-dfle8Ed2bzMTtqNY1Rw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_VvA7gPWcEdyuYMHNZCqWBQ"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_Ec-df1e8Ed2bzMTtqNY1Rw" name="base_Class" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/2.0.0/UML#//Class"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_Ec-dgVe8Ed2bzMTtqNY1Rw" name="Transactional">
+ <eAnnotations xmi:id="_Ec-dgle8Ed2bzMTtqNY1Rw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_WjlMAPWcEdyuYMHNZCqWBQ"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_Ec-dg1e8Ed2bzMTtqNY1Rw" name="base_Operation" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/2.0.0/UML#//Operation"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_Ec-dhVe8Ed2bzMTtqNY1Rw" name="Remote">
+ <eAnnotations xmi:id="_Ec-dhle8Ed2bzMTtqNY1Rw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_ZflqIPWcEdyuYMHNZCqWBQ"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_Ec-dh1e8Ed2bzMTtqNY1Rw" name="isolation" ordered="false" lowerBound="1" eType="_Ec-djVe8Ed2bzMTtqNY1Rw"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_Ec-diVe8Ed2bzMTtqNY1Rw" name="propagation" ordered="false" lowerBound="1" eType="_Ec-dkFe8Ed2bzMTtqNY1Rw"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_Ec-di1e8Ed2bzMTtqNY1Rw" name="base_Operation" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/2.0.0/UML#//Operation"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EEnum" xmi:id="_Ec-djVe8Ed2bzMTtqNY1Rw" name="IsolationKind">
+ <eAnnotations xmi:id="_Ec-djle8Ed2bzMTtqNY1Rw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_j6wBcPWcEdyuYMHNZCqWBQ"/>
+ <eLiterals xmi:id="_Ec-dj1e8Ed2bzMTtqNY1Rw" name="DEFAULT"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EEnum" xmi:id="_Ec-dkFe8Ed2bzMTtqNY1Rw" name="PropagationKind">
+ <eAnnotations xmi:id="_Ec-dkVe8Ed2bzMTtqNY1Rw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_tlDjkPWcEdyuYMHNZCqWBQ"/>
+ <eLiterals xmi:id="_Ec-dkle8Ed2bzMTtqNY1Rw" name="REQUIRED"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_Ec-dk1e8Ed2bzMTtqNY1Rw" name="Exception">
+ <eAnnotations xmi:id="_Ec-dlFe8Ed2bzMTtqNY1Rw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_lx7EMASfEd2Qys9YSCxJaQ"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_Ec-dlVe8Ed2bzMTtqNY1Rw" name="base_Class" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/2.0.0/UML#//Class"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_Ec-dl1e8Ed2bzMTtqNY1Rw" name="BusinessException">
+ <eAnnotations xmi:id="_Ec-dmFe8Ed2bzMTtqNY1Rw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_nISaMASfEd2Qys9YSCxJaQ"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_Ec-dmVe8Ed2bzMTtqNY1Rw" name="base_Class" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/2.0.0/UML#//Class"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_Ec-dm1e8Ed2bzMTtqNY1Rw" name="Date">
+ <eAnnotations xmi:id="_Ec-dnFe8Ed2bzMTtqNY1Rw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_unIxYASfEd2Qys9YSCxJaQ"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_Ec-dnVe8Ed2bzMTtqNY1Rw" name="Object">
+ <eAnnotations xmi:id="_Ec-dnle8Ed2bzMTtqNY1Rw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_xqoXkASfEd2Qys9YSCxJaQ"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_Ec-dn1e8Ed2bzMTtqNY1Rw" name="Find">
+ <eAnnotations xmi:id="_Ec-doFe8Ed2bzMTtqNY1Rw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_byHz8CJ_Ed2GDZ9LTWQlnQ"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_Ec-doVe8Ed2bzMTtqNY1Rw" name="base_Operation" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/2.0.0/UML#//Operation"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_Ec-do1e8Ed2bzMTtqNY1Rw" name="PrimaryKey">
+ <eAnnotations xmi:id="_Ec-dpFe8Ed2bzMTtqNY1Rw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_vD2GEDMDEd2Yc8GSK7DNVQ"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_Ec-dpVe8Ed2bzMTtqNY1Rw" name="generator" ordered="false" lowerBound="1" eType="_Ec-dp1e8Ed2bzMTtqNY1Rw"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EEnum" xmi:id="_Ec-dp1e8Ed2bzMTtqNY1Rw" name="GeneratorKind">
+ <eAnnotations xmi:id="_Ec-dqFe8Ed2bzMTtqNY1Rw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_NsN9kDMEEd2Yc8GSK7DNVQ"/>
+ <eLiterals xmi:id="_Ec-dqVe8Ed2bzMTtqNY1Rw" name="SEQUENCE"/>
+ <eLiterals xmi:id="_Ec-dqle8Ed2bzMTtqNY1Rw" name="UUID" value="1"/>
+ <eLiterals xmi:id="_Ec-dq1e8Ed2bzMTtqNY1Rw" name="GUID" value="2"/>
+ <eLiterals xmi:id="_Ec-drFe8Ed2bzMTtqNY1Rw" name="NATIVE" value="3"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_Ec-drVe8Ed2bzMTtqNY1Rw" name="Config">
+ <eAnnotations xmi:id="_Ec-drle8Ed2bzMTtqNY1Rw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_9mixIFe7Ed2bzMTtqNY1Rw"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_Ec-dr1e8Ed2bzMTtqNY1Rw" name="base_Class" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/2.0.0/UML#//Class"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_Ec-dsVe8Ed2bzMTtqNY1Rw" name="base_Property" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/2.0.0/UML#//Property"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ </contents>
+ </eAnnotations>
+ <elementImport xmi:id="_EcR54Fe8Ed2bzMTtqNY1Rw">
+ <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>
+ </elementImport>
+ <elementImport xmi:id="_EcWyYFe8Ed2bzMTtqNY1Rw">
+ <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>
+ </elementImport>
+ <elementImport xmi:id="_EcXZcle8Ed2bzMTtqNY1Rw">
+ <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Operation"/>
+ </elementImport>
+ <elementImport xmi:id="_EcYnkFe8Ed2bzMTtqNY1Rw">
+ <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>
+ </elementImport>
+ <elementImport xmi:id="_EcZ1sFe8Ed2bzMTtqNY1Rw">
+ <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>
+ </elementImport>
+ <elementImport xmi:id="_Ecacwle8Ed2bzMTtqNY1Rw">
+ <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>
+ </elementImport>
+ <elementImport xmi:id="_Ecbq4Fe8Ed2bzMTtqNY1Rw">
+ <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Operation"/>
+ </elementImport>
+ <elementImport xmi:id="_EccR8le8Ed2bzMTtqNY1Rw">
+ <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>
+ </elementImport>
+ <elementImport xmi:id="_EcdgEFe8Ed2bzMTtqNY1Rw">
+ <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Property"/>
+ </elementImport>
+ <elementImport xmi:id="_Echxgle8Ed2bzMTtqNY1Rw">
+ <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>
+ </elementImport>
+ <elementImport xmi:id="_Eci_oFe8Ed2bzMTtqNY1Rw">
+ <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Operation"/>
+ </elementImport>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_SrijcPWcEdyuYMHNZCqWBQ" name="Service">
+ <ownedAttribute xmi:id="_EcXZcVe8Ed2bzMTtqNY1Rw" name="base_Class" association="_EcWyYVe8Ed2bzMTtqNY1Rw">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_UBfCsPWcEdyuYMHNZCqWBQ" name="Dao">
+ <ownedAttribute xmi:id="_EciYkle8Ed2bzMTtqNY1Rw" name="base_Class" association="_EciYkFe8Ed2bzMTtqNY1Rw">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_UylvgPWcEdyuYMHNZCqWBQ" name="Dto">
+ <ownedAttribute xmi:id="_EcbD0le8Ed2bzMTtqNY1Rw" name="base_Class" association="_EcbD0Fe8Ed2bzMTtqNY1Rw">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_VvA7gPWcEdyuYMHNZCqWBQ" name="Entity">
+ <ownedAttribute xmi:id="_EcacwVe8Ed2bzMTtqNY1Rw" name="base_Class" association="_EcZ1sVe8Ed2bzMTtqNY1Rw">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_WjlMAPWcEdyuYMHNZCqWBQ" name="Transactional">
+ <ownedAttribute xmi:id="_EcjmsVe8Ed2bzMTtqNY1Rw" name="base_Operation" association="_Eci_oVe8Ed2bzMTtqNY1Rw">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Operation"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_ZflqIPWcEdyuYMHNZCqWBQ" name="Remote">
+ <ownedAttribute xmi:id="_b5QQMPWcEdyuYMHNZCqWBQ" name="isolation" type="_j6wBcPWcEdyuYMHNZCqWBQ"/>
+ <ownedAttribute xmi:id="_cOoDQPWcEdyuYMHNZCqWBQ" name="propagation" type="_tlDjkPWcEdyuYMHNZCqWBQ"/>
+ <ownedAttribute xmi:id="_EcYAgle8Ed2bzMTtqNY1Rw" name="base_Operation" association="_EcYAgFe8Ed2bzMTtqNY1Rw">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Operation"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Enumeration" xmi:id="_j6wBcPWcEdyuYMHNZCqWBQ" name="IsolationKind">
+ <ownedLiteral xmi:id="_mn0EoPWcEdyuYMHNZCqWBQ" name="DEFAULT"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Enumeration" xmi:id="_tlDjkPWcEdyuYMHNZCqWBQ" name="PropagationKind">
+ <ownedLiteral xmi:id="_uKKbwPWcEdyuYMHNZCqWBQ" name="REQUIRED"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_lx7EMASfEd2Qys9YSCxJaQ" name="Exception">
+ <ownedAttribute xmi:id="_EcZOole8Ed2bzMTtqNY1Rw" name="base_Class" association="_EcZOoFe8Ed2bzMTtqNY1Rw">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_nISaMASfEd2Qys9YSCxJaQ" name="BusinessException">
+ <ownedAttribute xmi:id="_EcWLUVe8Ed2bzMTtqNY1Rw" name="base_Class" association="_EcVkQFe8Ed2bzMTtqNY1Rw">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:DataType" xmi:id="_unIxYASfEd2Qys9YSCxJaQ" name="Date"/>
+ <packagedElement xmi:type="uml:DataType" xmi:id="_xqoXkASfEd2Qys9YSCxJaQ" name="Object"/>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_byHz8CJ_Ed2GDZ9LTWQlnQ" name="Find">
+ <ownedAttribute xmi:id="_EccR8Ve8Ed2bzMTtqNY1Rw" name="base_Operation" association="_Ecbq4Ve8Ed2bzMTtqNY1Rw">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Operation"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_vD2GEDMDEd2Yc8GSK7DNVQ" name="PrimaryKey">
+ <ownedAttribute xmi:id="_l2B2MDMEEd2Yc8GSK7DNVQ" name="generator" type="_NsN9kDMEEd2Yc8GSK7DNVQ"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Enumeration" xmi:id="_NsN9kDMEEd2Yc8GSK7DNVQ" name="GeneratorKind">
+ <ownedLiteral xmi:id="_Tq9M4DMEEd2Yc8GSK7DNVQ" name="SEQUENCE"/>
+ <ownedLiteral xmi:id="_aZ6YMDMEEd2Yc8GSK7DNVQ" name="UUID"/>
+ <ownedLiteral xmi:id="_dKfpcDMEEd2Yc8GSK7DNVQ" name="GUID"/>
+ <ownedLiteral xmi:id="_jkPZwDMEEd2Yc8GSK7DNVQ" name="NATIVE"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_9mixIFe7Ed2bzMTtqNY1Rw" name="Config">
+ <ownedAttribute xmi:id="_Ecc5Ale8Ed2bzMTtqNY1Rw" name="base_Class" association="_Ecc5AFe8Ed2bzMTtqNY1Rw">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_EchxgVe8Ed2bzMTtqNY1Rw" name="base_Property" association="_EchKcFe8Ed2bzMTtqNY1Rw">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Property"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Extension" xmi:id="_EcVkQFe8Ed2bzMTtqNY1Rw" name="Class_BusinessException" memberEnd="_EcWLUFe8Ed2bzMTtqNY1Rw _EcWLUVe8Ed2bzMTtqNY1Rw">
+ <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_EcWLUFe8Ed2bzMTtqNY1Rw" name="extension_BusinessException" type="_nISaMASfEd2Qys9YSCxJaQ" aggregation="composite" association="_EcVkQFe8Ed2bzMTtqNY1Rw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Extension" xmi:id="_EcWyYVe8Ed2bzMTtqNY1Rw" name="Class_Service" memberEnd="_EcXZcFe8Ed2bzMTtqNY1Rw _EcXZcVe8Ed2bzMTtqNY1Rw">
+ <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_EcXZcFe8Ed2bzMTtqNY1Rw" name="extension_Service" type="_SrijcPWcEdyuYMHNZCqWBQ" aggregation="composite" association="_EcWyYVe8Ed2bzMTtqNY1Rw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Extension" xmi:id="_EcYAgFe8Ed2bzMTtqNY1Rw" name="Operation_Remote" memberEnd="_EcYAgVe8Ed2bzMTtqNY1Rw _EcYAgle8Ed2bzMTtqNY1Rw">
+ <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_EcYAgVe8Ed2bzMTtqNY1Rw" name="extension_Remote" type="_ZflqIPWcEdyuYMHNZCqWBQ" aggregation="composite" association="_EcYAgFe8Ed2bzMTtqNY1Rw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Extension" xmi:id="_EcZOoFe8Ed2bzMTtqNY1Rw" name="Class_Exception" memberEnd="_EcZOoVe8Ed2bzMTtqNY1Rw _EcZOole8Ed2bzMTtqNY1Rw">
+ <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_EcZOoVe8Ed2bzMTtqNY1Rw" name="extension_Exception" type="_lx7EMASfEd2Qys9YSCxJaQ" aggregation="composite" association="_EcZOoFe8Ed2bzMTtqNY1Rw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Extension" xmi:id="_EcZ1sVe8Ed2bzMTtqNY1Rw" name="Class_Entity" memberEnd="_EcacwFe8Ed2bzMTtqNY1Rw _EcacwVe8Ed2bzMTtqNY1Rw">
+ <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_EcacwFe8Ed2bzMTtqNY1Rw" name="extension_Entity" type="_VvA7gPWcEdyuYMHNZCqWBQ" aggregation="composite" association="_EcZ1sVe8Ed2bzMTtqNY1Rw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Extension" xmi:id="_EcbD0Fe8Ed2bzMTtqNY1Rw" name="Class_Dto" memberEnd="_EcbD0Ve8Ed2bzMTtqNY1Rw _EcbD0le8Ed2bzMTtqNY1Rw">
+ <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_EcbD0Ve8Ed2bzMTtqNY1Rw" name="extension_Dto" type="_UylvgPWcEdyuYMHNZCqWBQ" aggregation="composite" association="_EcbD0Fe8Ed2bzMTtqNY1Rw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Extension" xmi:id="_Ecbq4Ve8Ed2bzMTtqNY1Rw" name="Operation_Find" memberEnd="_EccR8Fe8Ed2bzMTtqNY1Rw _EccR8Ve8Ed2bzMTtqNY1Rw">
+ <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_EccR8Fe8Ed2bzMTtqNY1Rw" name="extension_Find" type="_byHz8CJ_Ed2GDZ9LTWQlnQ" aggregation="composite" association="_Ecbq4Ve8Ed2bzMTtqNY1Rw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Extension" xmi:id="_Ecc5AFe8Ed2bzMTtqNY1Rw" name="Class_Config" memberEnd="_Ecc5AVe8Ed2bzMTtqNY1Rw _Ecc5Ale8Ed2bzMTtqNY1Rw">
+ <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_Ecc5AVe8Ed2bzMTtqNY1Rw" name="extension_Config" type="_9mixIFe7Ed2bzMTtqNY1Rw" aggregation="composite" association="_Ecc5AFe8Ed2bzMTtqNY1Rw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Extension" xmi:id="_EchKcFe8Ed2bzMTtqNY1Rw" name="Property_Config" memberEnd="_EchxgFe8Ed2bzMTtqNY1Rw _EchxgVe8Ed2bzMTtqNY1Rw">
+ <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_EchxgFe8Ed2bzMTtqNY1Rw" name="extension_Config" type="_9mixIFe7Ed2bzMTtqNY1Rw" aggregation="composite" association="_EchKcFe8Ed2bzMTtqNY1Rw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Extension" xmi:id="_EciYkFe8Ed2bzMTtqNY1Rw" name="Class_Dao" memberEnd="_EciYkVe8Ed2bzMTtqNY1Rw _EciYkle8Ed2bzMTtqNY1Rw">
+ <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_EciYkVe8Ed2bzMTtqNY1Rw" name="extension_Dao" type="_UBfCsPWcEdyuYMHNZCqWBQ" aggregation="composite" association="_EciYkFe8Ed2bzMTtqNY1Rw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Extension" xmi:id="_Eci_oVe8Ed2bzMTtqNY1Rw" name="Operation_Transactional" memberEnd="_EcjmsFe8Ed2bzMTtqNY1Rw _EcjmsVe8Ed2bzMTtqNY1Rw">
+ <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_EcjmsFe8Ed2bzMTtqNY1Rw" name="extension_Transactional" type="_WjlMAPWcEdyuYMHNZCqWBQ" aggregation="composite" association="_Eci_oVe8Ed2bzMTtqNY1Rw"/>
+ </packagedElement>
+</uml:Profile>
Copied: trunk/ant-eugene-task/src/test/resources/xmi/1.2/dependency.xmi (from rev 769, trunk/eugene/src/test/resources/xmi/1.2/dependency.xmi)
===================================================================
--- trunk/ant-eugene-task/src/test/resources/xmi/1.2/dependency.xmi (rev 0)
+++ trunk/ant-eugene-task/src/test/resources/xmi/1.2/dependency.xmi 2009-12-20 12:58:28 UTC (rev 772)
@@ -0,0 +1,84 @@
+<?xml version = '1.0' encoding = 'UTF-8' ?>
+<XMI xmi.version = '1.2' xmlns:UML = 'org.omg.xmi.namespace.UML' timestamp = 'Thu Apr 23 15:41:38 CEST 2009'>
+ <XMI.header> <XMI.documentation>
+ <XMI.exporter>ArgoUML (using Netbeans XMI Writer version 1.0)</XMI.exporter>
+ <XMI.exporterVersion>0.26.2(6) revised on $Date: 2007-05-12 08:08:08 +0200 (Sat, 12 May 2007) $ </XMI.exporterVersion>
+ </XMI.documentation>
+ <XMI.metamodel xmi.name="UML" xmi.version="1.4"/></XMI.header>
+ <XMI.content>
+ <UML:Model xmi.id = '-64--88-99-15-68eb495d:120d207b126:-8000:0000000000000B06'
+ name = 'DependencyTest' isSpecification = 'false' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:Namespace.ownedElement>
+ <UML:Package xmi.id = '-64--88-99-15-403e16ef:120d3349a11:-8000:0000000000000DB3'
+ name = 'thepackage' isSpecification = 'false' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:Namespace.ownedElement>
+ <UML:Interface xmi.id = '-64--88-99-15-68eb495d:120d207b126:-8000:0000000000000CAF'
+ name = 'OneInterface' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'/>
+ <UML:Interface xmi.id = '-64--88-99-15-68eb495d:120d207b126:-8000:0000000000000CB1'
+ name = 'OtherInterface' visibility = 'public' isSpecification = 'false'
+ isRoot = 'false' isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.clientDependency>
+ <UML:Dependency xmi.idref = '-64--88-99-15-68eb495d:120d207b126:-8000:0000000000000CBA'/>
+ <UML:Dependency xmi.idref = '-64--88-99-15-68eb495d:120d207b126:-8000:0000000000000CBB'/>
+ </UML:ModelElement.clientDependency>
+ <UML:Namespace.ownedElement>
+ <UML:Dependency xmi.id = '-64--88-99-15-68eb495d:120d207b126:-8000:0000000000000CBA'
+ name = 'Dependency3' isSpecification = 'false'>
+ <UML:Dependency.client>
+ <UML:Interface xmi.idref = '-64--88-99-15-68eb495d:120d207b126:-8000:0000000000000CB1'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-64--88-99-15-68eb495d:120d207b126:-8000:0000000000000CB0'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-64--88-99-15-68eb495d:120d207b126:-8000:0000000000000CBB'
+ name = 'Dependency4' isSpecification = 'false'>
+ <UML:Dependency.client>
+ <UML:Interface xmi.idref = '-64--88-99-15-68eb495d:120d207b126:-8000:0000000000000CB1'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Interface xmi.idref = '-64--88-99-15-68eb495d:120d207b126:-8000:0000000000000CAF'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ </UML:Namespace.ownedElement>
+ </UML:Interface>
+ <UML:Class xmi.id = '-64--88-99-15-68eb495d:120d207b126:-8000:0000000000000CAE'
+ name = 'OneClass' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.clientDependency>
+ <UML:Dependency xmi.idref = '-64--88-99-15-68eb495d:120d207b126:-8000:0000000000000CB3'/>
+ <UML:Dependency xmi.idref = '-64--88-99-15-68eb495d:120d207b126:-8000:0000000000000CB9'/>
+ </UML:ModelElement.clientDependency>
+ <UML:Namespace.ownedElement>
+ <UML:Dependency xmi.id = '-64--88-99-15-68eb495d:120d207b126:-8000:0000000000000CB3'
+ name = 'Dependency1' isSpecification = 'false'>
+ <UML:Dependency.client>
+ <UML:Class xmi.idref = '-64--88-99-15-68eb495d:120d207b126:-8000:0000000000000CAE'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '-64--88-99-15-68eb495d:120d207b126:-8000:0000000000000CB0'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ <UML:Dependency xmi.id = '-64--88-99-15-68eb495d:120d207b126:-8000:0000000000000CB9'
+ name = 'Dependency2' isSpecification = 'false'>
+ <UML:Dependency.client>
+ <UML:Class xmi.idref = '-64--88-99-15-68eb495d:120d207b126:-8000:0000000000000CAE'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Interface xmi.idref = '-64--88-99-15-68eb495d:120d207b126:-8000:0000000000000CAF'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ </UML:Namespace.ownedElement>
+ </UML:Class>
+ <UML:Class xmi.id = '-64--88-99-15-68eb495d:120d207b126:-8000:0000000000000CB0'
+ name = 'OtherClass' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ </UML:Namespace.ownedElement>
+ </UML:Package>
+ </UML:Namespace.ownedElement>
+ </UML:Model>
+ </XMI.content>
+</XMI>
Copied: trunk/ant-eugene-task/src/test/resources/xmi/1.2/enumeration.xmi (from rev 769, trunk/eugene/src/test/resources/xmi/1.2/enumeration.xmi)
===================================================================
--- trunk/ant-eugene-task/src/test/resources/xmi/1.2/enumeration.xmi (rev 0)
+++ trunk/ant-eugene-task/src/test/resources/xmi/1.2/enumeration.xmi 2009-12-20 12:58:28 UTC (rev 772)
@@ -0,0 +1,89 @@
+<?xml version = '1.0' encoding = 'UTF-8' ?>
+<XMI xmi.version = '1.2' xmlns:UML = 'org.omg.xmi.namespace.UML' timestamp = 'Mon May 04 14:18:59 CEST 2009'>
+ <XMI.header> <XMI.documentation>
+ <XMI.exporter>ArgoUML (using Netbeans XMI Writer version 1.0)</XMI.exporter>
+ <XMI.exporterVersion>0.26.2(6) revised on $Date: 2007-05-12 08:08:08 +0200 (Sat, 12 May 2007) $ </XMI.exporterVersion>
+ </XMI.documentation>
+ <XMI.metamodel xmi.name="UML" xmi.version="1.4"/></XMI.header>
+ <XMI.content>
+ <UML:Model xmi.id = '-64--88-99-15--134e8b6f:1210ad9bedb:-8000:0000000000000EBA'
+ name = 'EnumerationTest' isSpecification = 'false' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:Namespace.ownedElement>
+ <UML:Package xmi.id = '-64--88-99-15--134e8b6f:1210ad9bedb:-8000:0000000000000EC5'
+ name = 'org.test.enums' isSpecification = 'false' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:Namespace.ownedElement>
+ <UML:Enumeration xmi.id = '-64--88-99-15--134e8b6f:1210ad9bedb:-8000:0000000000000EBB'
+ name = 'OneEnumeration' isSpecification = 'false' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:Classifier.feature>
+ <UML:Operation xmi.id = '-64--88-99-15--134e8b6f:1210ad9bedb:-8000:0000000000000EBC'
+ name = 'method1' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'true' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-64--88-99-15--134e8b6f:1210ad9bedb:-8000:0000000000000EBD'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Operation xmi.id = '-64--88-99-15--134e8b6f:1210ad9bedb:-8000:0000000000000EBE'
+ name = 'method2' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-64--88-99-15--134e8b6f:1210ad9bedb:-8000:0000000000000EBF'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000873'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-64--88-99-15--134e8b6f:1210ad9bedb:-8000:0000000000000EC3'
+ name = 'param' isSpecification = 'false'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ </UML:Classifier.feature>
+ <UML:Enumeration.literal>
+ <UML:EnumerationLiteral xmi.id = '-64--88-99-15--134e8b6f:1210ad9bedb:-8000:0000000000000EC0'
+ name = 'LITERAL1' isSpecification = 'false'/>
+ <UML:EnumerationLiteral xmi.id = '-64--88-99-15--134e8b6f:1210ad9bedb:-8000:0000000000000EC1'
+ name = 'LITERAL2' isSpecification = 'false'/>
+ <UML:EnumerationLiteral xmi.id = '-64--88-99-15--134e8b6f:1210ad9bedb:-8000:0000000000000EC2'
+ name = 'LITERAL3' isSpecification = 'false'/>
+ </UML:Enumeration.literal>
+ </UML:Enumeration>
+ <UML:Class xmi.id = '-64--88-99-15--134e8b6f:1210ad9bedb:-8000:0000000000000EC6'
+ name = 'TestClass' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'>
+ <UML:Classifier.feature>
+ <UML:Attribute xmi.id = '-64--88-99-15--134e8b6f:1210ad9bedb:-8000:0000000000000EC7'
+ name = 'typeEnum' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-64--88-99-15--134e8b6f:1210ad9bedb:-8000:0000000000000EC8'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-64--88-99-15--134e8b6f:1210ad9bedb:-8000:0000000000000EC9'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:Enumeration xmi.idref = '-64--88-99-15--134e8b6f:1210ad9bedb:-8000:0000000000000EBB'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ </UML:Class>
+ </UML:Namespace.ownedElement>
+ </UML:Package>
+ </UML:Namespace.ownedElement>
+ </UML:Model>
+ </XMI.content>
+</XMI>
Copied: trunk/ant-eugene-task/src/test/resources/xmi/1.2/isis-fish.xmi (from rev 769, trunk/eugene/src/test/resources/xmi/1.2/isis-fish.xmi)
===================================================================
--- trunk/ant-eugene-task/src/test/resources/xmi/1.2/isis-fish.xmi (rev 0)
+++ trunk/ant-eugene-task/src/test/resources/xmi/1.2/isis-fish.xmi 2009-12-20 12:58:28 UTC (rev 772)
@@ -0,0 +1,4461 @@
+<?xml version = '1.0' encoding = 'UTF-8' ?>
+<XMI xmi.version = '1.2' xmlns:UML = 'org.omg.xmi.namespace.UML' timestamp = 'Mon Jan 12 18:09:11 CET 2009'>
+ <XMI.header> <XMI.documentation>
+ <XMI.exporter>ArgoUML (using Netbeans XMI Writer version 1.0)</XMI.exporter>
+ <XMI.exporterVersion>0.26(6) revised on $Date: 2007-05-12 08:08:08 +0200 (Sat, 12 May 2007) $ </XMI.exporterVersion>
+ </XMI.documentation>
+ <XMI.metamodel xmi.name="UML" xmi.version="1.4"/></XMI.header>
+ <XMI.content>
+ <UML:Model xmi.id = 'Im75a362c1m1095378ef06mm7a57' name = 'IsisFish' isSpecification = 'false'
+ isRoot = 'false' isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = 'Im75a362c1m1095378ef06mm7f51' isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>3.2</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = 'Im75a362c1m1095378ef06mm7aa7'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:Namespace.ownedElement>
+ <UML:Package xmi.id = 'Im75a362c1m1095378ef06mm7b03' name = 'fr.ifremer.isisfish.entities'
+ visibility = 'public' isSpecification = 'false' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:Namespace.ownedElement>
+ <UML:Class xmi.id = 'Im75a362c1m1095378ef06mm7f3f' name = 'Port' visibility = 'public'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = 'Im75a362c1m1095378ef06mm7a5f'/>
+ </UML:ModelElement.stereotype>
+ <UML:Classifier.feature>
+ <UML:Attribute xmi.id = 'Im75a362c1m1095378ef06mm7f4d' name = 'name' visibility = 'private'
+ isSpecification = 'false' ownerScope = 'instance' changeability = 'changeable'>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = 'Im75a362c1m1095378ef06mm7afd'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = 'Im75a362c1m1095378ef06mm7f49' name = 'comment'
+ visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable'>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = 'Im75a362c1m1095378ef06mm7afd'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Operation xmi.id = 'Im75a362c1m1095378ef06mm7f45' name = 'getFisheryRegion'
+ visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = 'Im75a362c1m1095378ef06mm7f47' name = 'return' isSpecification = 'false'
+ kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = 'Im75a362c1m1095378ef06mm7e17'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = 'Im75a362c1m1095378ef06mm7f41' isSpecification = 'false'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = 'Im75a362c1m1095378ef06mm7f43' language = 'java'
+ body = ''/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = 'Im75a362c1m1095378ef06mm7f45'/>
+ </UML:Method.specification>
+ </UML:Method>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Class xmi.id = 'Im75a362c1m1095378ef06mm7f29' name = 'Cell' visibility = 'public'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = 'Im75a362c1m1095378ef06mm7a5f'/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = 'Im75a362c1m1095378ef06mm7f3d' isSpecification = 'false'>
+ <UML:TaggedValue.dataValue><p>Repr&eacute;sente le plus petit &eacute;l&eacute;ment g&eacute;ographique de la r&eacute;gion. Plusieurs Mesh compos&eacute; constitues une Zone.</p>
+</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = 'Im75a362c1m1095378ef06mm7aaf'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:Classifier.feature>
+ <UML:Attribute xmi.id = 'Im75a362c1m1095378ef06mm7f3b' name = 'name' visibility = 'private'
+ isSpecification = 'false' ownerScope = 'instance' changeability = 'changeable'>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = 'Im75a362c1m1095378ef06mm7afd'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = 'Im75a362c1m1095378ef06mm7f39' name = 'latitude'
+ visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable'>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref = 'Im75a362c1m1095378ef06mm7afb'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = 'Im75a362c1m1095378ef06mm7f37' name = 'longitude'
+ visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable'>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref = 'Im75a362c1m1095378ef06mm7afb'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = 'Im75a362c1m1095378ef06mm7f35' name = 'land' visibility = 'private'
+ isSpecification = 'false' ownerScope = 'instance' changeability = 'changeable'>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref = 'Im75a362c1m1095378ef06mm7af7'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = 'Im75a362c1m1095378ef06mm7f33' name = 'comment'
+ visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' ordering = 'unordered'>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = 'Im75a362c1m1095378ef06mm7afd'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Operation xmi.id = 'Im75a362c1m1095378ef06mm7f2f' name = 'getFisheryRegion'
+ visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = 'Im75a362c1m1095378ef06mm7f31' name = 'return' isSpecification = 'false'
+ kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = 'Im75a362c1m1095378ef06mm7e17'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = 'Im75a362c1m1095378ef06mm7f2b' isSpecification = 'false'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = 'Im75a362c1m1095378ef06mm7f2d' language = 'java'
+ body = ''/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = 'Im75a362c1m1095378ef06mm7f2f'/>
+ </UML:Method.specification>
+ </UML:Method>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Class xmi.id = 'Im75a362c1m1095378ef06mm7f15' name = 'TripType' visibility = 'public'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = 'Im75a362c1m1095378ef06mm7a5f'/>
+ </UML:ModelElement.stereotype>
+ <UML:Classifier.feature>
+ <UML:Attribute xmi.id = 'Im75a362c1m1095378ef06mm7f25' name = 'name' visibility = 'private'
+ isSpecification = 'false' ownerScope = 'instance' changeability = 'changeable'>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = 'Im75a362c1m1095378ef06mm7afd'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = 'Im75a362c1m1095378ef06mm7f23' name = 'tripDuration'
+ visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable'>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = 'Im75a362c1m1095378ef06mm7a87'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = 'Im75a362c1m1095378ef06mm7f21' name = 'minTimeBetweenTrip'
+ visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable'>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = 'Im75a362c1m1095378ef06mm7a87'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = 'Im75a362c1m1095378ef06mm7f1f' name = 'comment'
+ visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable'>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = 'Im75a362c1m1095378ef06mm7afd'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Operation xmi.id = 'Im75a362c1m1095378ef06mm7f1b' name = 'getFisheryRegion'
+ visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = 'Im75a362c1m1095378ef06mm7f1d' name = 'return' isSpecification = 'false'
+ kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = 'Im75a362c1m1095378ef06mm7e17'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = 'Im75a362c1m1095378ef06mm7f17' isSpecification = 'false'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = 'Im75a362c1m1095378ef06mm7f19' language = 'java'
+ body = ''/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = 'Im75a362c1m1095378ef06mm7f1b'/>
+ </UML:Method.specification>
+ </UML:Method>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Class xmi.id = 'Im75a362c1m1095378ef06mm7ef7' name = 'VesselType' visibility = 'public'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = 'Im75a362c1m1095378ef06mm7a5f'/>
+ </UML:ModelElement.stereotype>
+ <UML:Classifier.feature>
+ <UML:Attribute xmi.id = 'Im75a362c1m1095378ef06mm7f13' name = 'name' visibility = 'private'
+ isSpecification = 'false' ownerScope = 'instance' changeability = 'changeable'>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = 'Im75a362c1m1095378ef06mm7afd'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = 'Im75a362c1m1095378ef06mm7f11' name = 'length' visibility = 'private'
+ isSpecification = 'false' ownerScope = 'instance' changeability = 'changeable'>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref = 'Im75a362c1m1095378ef06mm7b01'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = 'Im75a362c1m1095378ef06mm7f0f' name = 'speed' visibility = 'private'
+ isSpecification = 'false' ownerScope = 'instance' changeability = 'changeable'>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref = 'Im75a362c1m1095378ef06mm7af9'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = 'Im75a362c1m1095378ef06mm7f0d' name = 'maxTripDuration'
+ visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable'>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = 'Im75a362c1m1095378ef06mm7a87'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = 'Im75a362c1m1095378ef06mm7f0b' name = 'activityRange'
+ visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable'>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref = 'Im75a362c1m1095378ef06mm7af9'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = 'Im75a362c1m1095378ef06mm7f07' name = 'minCrewSize'
+ visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = 'Im75a362c1m1095378ef06mm7f09' isSpecification = 'false'>
+ <UML:TaggedValue.dataValue><p>Taille minimum de l'&eacute;quipage sur ce style de bateau</p>
+</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = 'Im75a362c1m1095378ef06mm7aaf'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref = 'Im75a362c1m1095378ef06mm7b01'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = 'Im75a362c1m1095378ef06mm7f03' name = 'unitFuelCostOfTravel'
+ visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = 'Im75a362c1m1095378ef06mm7f05' isSpecification = 'false'>
+ <UML:TaggedValue.dataValue><p>Co&ucirc;t d'un heure de carburant</p>
+</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = 'Im75a362c1m1095378ef06mm7aaf'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref = 'Im75a362c1m1095378ef06mm7af9'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = 'Im75a362c1m1095378ef06mm7f01' name = 'comment'
+ visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable'>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = 'Im75a362c1m1095378ef06mm7afd'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Operation xmi.id = 'Im75a362c1m1095378ef06mm7efd' name = 'getFisheryRegion'
+ visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = 'Im75a362c1m1095378ef06mm7eff' name = 'return' isSpecification = 'false'
+ kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = 'Im75a362c1m1095378ef06mm7e17'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = 'Im75a362c1m1095378ef06mm7ef9' isSpecification = 'false'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = 'Im75a362c1m1095378ef06mm7efb' language = 'java'
+ body = ''/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = 'Im75a362c1m1095378ef06mm7efd'/>
+ </UML:Method.specification>
+ </UML:Method>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Class xmi.id = 'Im75a362c1m1095378ef06mm7edd' name = 'SetOfVessels'
+ visibility = 'public' isSpecification = 'false' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = 'Im75a362c1m1095378ef06mm7a5f'/>
+ </UML:ModelElement.stereotype>
+ <UML:Classifier.feature>
+ <UML:Attribute xmi.id = 'Im75a362c1m1095378ef06mm7ef5' name = 'name' visibility = 'private'
+ isSpecification = 'false' ownerScope = 'instance' changeability = 'changeable'>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = 'Im75a362c1m1095378ef06mm7afd'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = 'Im75a362c1m1095378ef06mm7ef3' name = 'numberOfVessels'
+ visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable'>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref = 'Im75a362c1m1095378ef06mm7b01'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = 'Im75a362c1m1095378ef06mm7eef' name = 'fixedCosts'
+ visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = 'Im75a362c1m1095378ef06mm7ef1' isSpecification = 'false'>
+ <UML:TaggedValue.dataValue><p>Co&ucirc;ts fixes d&eacute;caiss&eacute;s</p>
+</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = 'Im75a362c1m1095378ef06mm7aaf'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref = 'Im75a362c1m1095378ef06mm7af9'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = 'Im75a362c1m1095378ef06mm7eed' name = 'vesselCosts'
+ visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable'>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref = 'Im75a362c1m1095378ef06mm7af9'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = 'Im75a362c1m1095378ef06mm7eeb' name = 'capitalDeprecation'
+ visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable'>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref = 'Im75a362c1m1095378ef06mm7af9'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = 'Im75a362c1m1095378ef06mm7ee9' name = 'interestCost'
+ visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable'>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref = 'Im75a362c1m1095378ef06mm7af9'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = 'Im75a362c1m1095378ef06mm7ee7' name = 'comment'
+ visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable'>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = 'Im75a362c1m1095378ef06mm7afd'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Operation xmi.id = 'Im75a362c1m1095378ef06mm7ee3' name = 'getFisheryRegion'
+ visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = 'Im75a362c1m1095378ef06mm7ee5' name = 'return' isSpecification = 'false'
+ kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = 'Im75a362c1m1095378ef06mm7e17'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = 'Im75a362c1m1095378ef06mm7edf' isSpecification = 'false'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = 'Im75a362c1m1095378ef06mm7ee1' language = 'java'
+ body = ''/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = 'Im75a362c1m1095378ef06mm7ee3'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Attribute xmi.id = '127-0-0-1-66ea5032:11bb719bc92:-8000:0000000000000ADF'
+ name = 'technicalEfficiencyEquation' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '127-0-0-1-66ea5032:11bb719bc92:-8000:0000000000000AE0'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '127-0-0-1-66ea5032:11bb719bc92:-8000:0000000000000AE1'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = 'Im75a362c1m1095378ef06mm7a63'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Operation xmi.id = '127-0-0-1-66ea5032:11bb719bc92:-8000:0000000000000AE6'
+ name = 'getTechnicalEfficiency' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '127-0-0-1-66ea5032:11bb719bc92:-8000:0000000000000AE7'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType xmi.idref = 'Im75a362c1m1095378ef06mm7af9'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '127-0-0-1-66ea5032:11bb719bc92:-8000:0000000000000AE8'
+ name = 'date' isSpecification = 'false'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = 'Im75a362c1m1095378ef06mm7a9d'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '127-0-0-1-66ea5032:11bb719bc92:-8000:0000000000000AE9'
+ name = 'metier' isSpecification = 'false'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = 'Im75a362c1m1095378ef06mm7ebd'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Association xmi.id = 'Im75a362c1m1095378ef06mm7ecf' isSpecification = 'false'
+ isRoot = 'false' isLeaf = 'false' isAbstract = 'false'>
+ <UML:Association.connection>
+ <UML:AssociationEnd xmi.id = 'Im75a362c1m1095378ef06mm7ed7' visibility = 'public'
+ isSpecification = 'false' isNavigable = 'false' ordering = 'unordered' aggregation = 'none'
+ targetScope = 'instance' changeability = 'changeable'>
+ <UML:AssociationEnd.multiplicity>
+ <UML:Multiplicity xmi.id = 'Im75a362c1m1095378ef06mm7ed9'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = 'Im75a362c1m1095378ef06mm7edb' lower = '0'
+ upper = '-1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:AssociationEnd.multiplicity>
+ <UML:AssociationEnd.participant>
+ <UML:Class xmi.idref = 'Im75a362c1m1095378ef06mm7edd'/>
+ </UML:AssociationEnd.participant>
+ </UML:AssociationEnd>
+ <UML:AssociationEnd xmi.id = 'Im75a362c1m1095378ef06mm7ed1' name = '' visibility = 'public'
+ isSpecification = 'false' isNavigable = 'true' ordering = 'unordered' aggregation = 'none'
+ targetScope = 'instance' changeability = 'changeable'>
+ <UML:AssociationEnd.multiplicity>
+ <UML:Multiplicity xmi.id = 'Im75a362c1m1095378ef06mm7ed3'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = 'Im75a362c1m1095378ef06mm7ed5' lower = '1'
+ upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:AssociationEnd.multiplicity>
+ <UML:AssociationEnd.participant>
+ <UML:Class xmi.idref = 'Im75a362c1m1095378ef06mm7f3f'/>
+ </UML:AssociationEnd.participant>
+ </UML:AssociationEnd>
+ </UML:Association.connection>
+ </UML:Association>
+ <UML:Class xmi.id = 'Im75a362c1m1095378ef06mm7ebd' name = 'Metier' visibility = 'public'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = 'Im75a362c1m1095378ef06mm7a5f'/>
+ </UML:ModelElement.stereotype>
+ <UML:Classifier.feature>
+ <UML:Attribute xmi.id = 'Im75a362c1m1095378ef06mm7ecd' name = 'name' visibility = 'private'
+ isSpecification = 'false' ownerScope = 'instance' changeability = 'changeable'>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = 'Im75a362c1m1095378ef06mm7afd'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = 'Im75a362c1m1095378ef06mm7ecb' name = 'gearParameterValue'
+ visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable'>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = 'Im75a362c1m1095378ef06mm7afd'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = 'Im75a362c1m1095378ef06mm7ec9' name = 'comment'
+ visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable'>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = 'Im75a362c1m1095378ef06mm7afd'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = 'Im75a362c1m1095378ef06mm7ec7' name = 'capturableSpeciesComment'
+ visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable'>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = 'Im75a362c1m1095378ef06mm7afd'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Operation xmi.id = 'Im75a362c1m1095378ef06mm7ec3' name = 'getFisheryRegion'
+ visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = 'Im75a362c1m1095378ef06mm7ec5' name = 'return' isSpecification = 'false'
+ kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = 'Im75a362c1m1095378ef06mm7e17'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = 'Im75a362c1m1095378ef06mm7ebf' isSpecification = 'false'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = 'Im75a362c1m1095378ef06mm7ec1' language = 'java'
+ body = ''/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = 'Im75a362c1m1095378ef06mm7ec3'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = 'I12c12b7cm10d3828cd40mm67cb' name = 'getMetierSeasonInfo'
+ visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = 'I12c12b7cm10d3828cd40mm67b3' name = 'month' isSpecification = 'false'
+ kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = 'Im75a362c1m1095378ef06mm7a73'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = 'I12c12b7cm10d3828cd40mm67b2' name = 'return' isSpecification = 'false'
+ kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = 'Im75a362c1m1095378ef06mm7c8d'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = 'I12c12b7cm10d3828cd40mm67c9' isSpecification = 'false'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = 'I12c12b7cm10d3828cd40mm67ca' language = 'java'
+ body = ''/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = 'I12c12b7cm10d3828cd40mm67cb'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = 'I44e09810m10d85da62cemm67b3' name = 'getGearParameterValueAsDouble'
+ visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = 'I44e09810m10d85da62cemm679b' name = 'return' isSpecification = 'false'
+ kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType xmi.idref = 'Im75a362c1m1095378ef06mm7af9'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = 'I44e09810m10d85da62cemm67b1' isSpecification = 'false'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = 'I44e09810m10d85da62cemm67b2' language = 'java'
+ body = ''/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = 'I44e09810m10d85da62cemm67b3'/>
+ </UML:Method.specification>
+ </UML:Method>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Class xmi.id = 'Im75a362c1m1095378ef06mm7ea5' name = 'Gear' visibility = 'public'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = 'Im75a362c1m1095378ef06mm7a5f'/>
+ </UML:ModelElement.stereotype>
+ <UML:Classifier.feature>
+ <UML:Attribute xmi.id = 'Im75a362c1m1095378ef06mm7ebb' name = 'name' visibility = 'private'
+ isSpecification = 'false' ownerScope = 'instance' changeability = 'changeable'>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = 'Im75a362c1m1095378ef06mm7afd'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = 'Im75a362c1m1095378ef06mm7eb9' name = 'effortUnit'
+ visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable'>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = 'Im75a362c1m1095378ef06mm7afd'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = 'Im75a362c1m1095378ef06mm7eb7' name = 'standardisationFactor'
+ visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable'>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref = 'Im75a362c1m1095378ef06mm7af9'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = 'Im75a362c1m1095378ef06mm7eb5' name = 'parameterName'
+ visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable'>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = 'Im75a362c1m1095378ef06mm7afd'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = 'Im75a362c1m1095378ef06mm7eb1' name = 'cost' visibility = 'private'
+ isSpecification = 'false' ownerScope = 'instance' changeability = 'changeable'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = 'Im75a362c1m1095378ef06mm7eb3' isSpecification = 'false'>
+ <UML:TaggedValue.dataValue><p>Co&ucirc;t d'achat de l'engin</p>
+</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = 'Im75a362c1m1095378ef06mm7aaf'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref = 'Im75a362c1m1095378ef06mm7af9'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = 'Im7ac2ea13m109d5712258mm6903' name = 'possibleValue'
+ visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable'>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = 'Im7ac2ea13m109d5712258mm6967'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = 'Im75a362c1m1095378ef06mm7eaf' name = 'comment'
+ visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable'>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = 'Im75a362c1m1095378ef06mm7afd'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Operation xmi.id = 'Im75a362c1m1095378ef06mm7eab' name = 'getFisheryRegion'
+ visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = 'Im75a362c1m1095378ef06mm7ead' name = 'return' isSpecification = 'false'
+ kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = 'Im75a362c1m1095378ef06mm7e17'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = 'Im75a362c1m1095378ef06mm7ea7' isSpecification = 'false'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = 'Im75a362c1m1095378ef06mm7ea9' language = 'java'
+ body = ''/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = 'Im75a362c1m1095378ef06mm7eab'/>
+ </UML:Method.specification>
+ </UML:Method>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Association xmi.id = 'Im75a362c1m1095378ef06mm7e97' isSpecification = 'false'
+ isRoot = 'false' isLeaf = 'false' isAbstract = 'false'>
+ <UML:Association.connection>
+ <UML:AssociationEnd xmi.id = 'Im75a362c1m1095378ef06mm7e9f' visibility = 'public'
+ isSpecification = 'false' isNavigable = 'false' ordering = 'unordered' aggregation = 'none'
+ targetScope = 'instance' changeability = 'changeable'>
+ <UML:AssociationEnd.multiplicity>
+ <UML:Multiplicity xmi.id = 'Im75a362c1m1095378ef06mm7ea1'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = 'Im75a362c1m1095378ef06mm7ea3' lower = '0'
+ upper = '-1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:AssociationEnd.multiplicity>
+ <UML:AssociationEnd.participant>
+ <UML:Class xmi.idref = 'Im75a362c1m1095378ef06mm7ebd'/>
+ </UML:AssociationEnd.participant>
+ </UML:AssociationEnd>
+ <UML:AssociationEnd xmi.id = 'Im75a362c1m1095378ef06mm7e99' visibility = 'public'
+ isSpecification = 'false' isNavigable = 'true' ordering = 'unordered' aggregation = 'none'
+ targetScope = 'instance' changeability = 'changeable'>
+ <UML:AssociationEnd.multiplicity>
+ <UML:Multiplicity xmi.id = 'Im75a362c1m1095378ef06mm7e9b'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = 'Im75a362c1m1095378ef06mm7e9d' lower = '1'
+ upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:AssociationEnd.multiplicity>
+ <UML:AssociationEnd.participant>
+ <UML:Class xmi.idref = 'Im75a362c1m1095378ef06mm7ea5'/>
+ </UML:AssociationEnd.participant>
+ </UML:AssociationEnd>
+ </UML:Association.connection>
+ </UML:Association>
+ <UML:Class xmi.id = 'Im75a362c1m1095378ef06mm7e17' name = 'FisheryRegion'
+ visibility = 'public' isSpecification = 'false' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = 'Im75a362c1m1095378ef06mm7a5f'/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = 'Im75a362c1m1095378ef06mm7e95' isSpecification = 'false'>
+ <UML:TaggedValue.dataValue><p>Area represente la r&eacute;gion dans lequel on va d&eacute;finir la p&ecirc;cherie. Les objets de la p&ecirc;cherie n'ont plus de lien vers elle, car il n'y en existe qu'une seul dans chaque p&ecirc;cherie.</p>
+</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = 'Im75a362c1m1095378ef06mm7aaf'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:Classifier.feature>
+ <UML:Attribute xmi.id = 'Im75a362c1m1095378ef06mm7e93' name = 'name' visibility = 'private'
+ isSpecification = 'false' ownerScope = 'instance' changeability = 'changeable'>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = 'Im75a362c1m1095378ef06mm7afd'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = 'Im75a362c1m1095378ef06mm7e91' name = 'minLongitude'
+ visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable'>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref = 'Im75a362c1m1095378ef06mm7afb'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = 'Im75a362c1m1095378ef06mm7e8f' name = 'maxLongitude'
+ visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable'>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref = 'Im75a362c1m1095378ef06mm7afb'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = 'Im75a362c1m1095378ef06mm7e8d' name = 'minLatitude'
+ visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable'>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref = 'Im75a362c1m1095378ef06mm7afb'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = 'Im75a362c1m1095378ef06mm7e8b' name = 'maxLatitude'
+ visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable'>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref = 'Im75a362c1m1095378ef06mm7afb'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = 'Im75a362c1m1095378ef06mm7e89' name = 'cellLengthLongitude'
+ visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable'>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref = 'Im75a362c1m1095378ef06mm7afb'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = 'Im75a362c1m1095378ef06mm7e87' name = 'cellLengthLatitude'
+ visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable'>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref = 'Im75a362c1m1095378ef06mm7afb'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = 'Im75a362c1m1095378ef06mm7e85' name = 'mapFiles'
+ visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable'>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = 'Im75a362c1m1095378ef06mm7afd'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Operation xmi.id = 'Im75a362c1m1095378ef06mm7e81' name = 'getMapFileList'
+ visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = 'Im75a362c1m1095378ef06mm7e83' name = 'return' isSpecification = 'false'
+ kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Interface xmi.idref = 'Im75a362c1m1095378ef06mm7ad7'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = 'Im75a362c1m1095378ef06mm7e7d' isSpecification = 'false'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = 'Im75a362c1m1095378ef06mm7e7f' language = 'java'
+ body = ''/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = 'Im75a362c1m1095378ef06mm7e81'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = 'Im75a362c1m1095378ef06mm7e77' name = 'setMapFileList'
+ visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = 'Im75a362c1m1095378ef06mm7e7b' name = 'v' isSpecification = 'false'
+ kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Interface xmi.idref = 'Im75a362c1m1095378ef06mm7ad7'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = 'Im75a362c1m1095378ef06mm7e79' name = 'return' isSpecification = 'false'
+ kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType xmi.idref = 'Im75a362c1m1095378ef06mm7aff'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = 'Im75a362c1m1095378ef06mm7e73' isSpecification = 'false'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = 'Im75a362c1m1095378ef06mm7e75' language = 'java'
+ body = ''/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = 'Im75a362c1m1095378ef06mm7e77'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = 'Im75a362c1m1095378ef06mm7e6f' name = 'getMapFilePath'
+ visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = 'Im75a362c1m1095378ef06mm7e71' name = 'return' isSpecification = 'false'
+ kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Interface xmi.idref = 'Im75a362c1m1095378ef06mm7ad7'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = 'Im75a362c1m1095378ef06mm7e6b' isSpecification = 'false'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = 'Im75a362c1m1095378ef06mm7e6d' language = 'java'
+ body = ''/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = 'Im75a362c1m1095378ef06mm7e6f'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Attribute xmi.id = 'Im75a362c1m1095378ef06mm7e69' name = 'comment'
+ visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable'>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = 'Im75a362c1m1095378ef06mm7afd'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Operation xmi.id = 'Im75a362c1m1095378ef06mm7e65' name = 'getGear'
+ visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = 'Im75a362c1m1095378ef06mm7e67' name = 'return' isSpecification = 'false'
+ kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Interface xmi.idref = 'Im75a362c1m1095378ef06mm7acf'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = 'Im75a362c1m1095378ef06mm7e61' isSpecification = 'false'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = 'Im75a362c1m1095378ef06mm7e63' language = 'java'
+ body = ''/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = 'Im75a362c1m1095378ef06mm7e65'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = 'Im75a362c1m1095378ef06mm7e5d' name = 'getCell'
+ visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = 'Im75a362c1m1095378ef06mm7e5f' name = 'return' isSpecification = 'false'
+ kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Interface xmi.idref = 'Im75a362c1m1095378ef06mm7ad5'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = 'Im75a362c1m1095378ef06mm7e59' isSpecification = 'false'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = 'Im75a362c1m1095378ef06mm7e5b' language = 'java'
+ body = ''/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = 'Im75a362c1m1095378ef06mm7e5d'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = 'Im75a362c1m1095378ef06mm7e55' name = 'getTripType'
+ visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = 'Im75a362c1m1095378ef06mm7e57' name = 'return' isSpecification = 'false'
+ kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Interface xmi.idref = 'Im75a362c1m1095378ef06mm7acb'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = 'Im75a362c1m1095378ef06mm7e51' isSpecification = 'false'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = 'Im75a362c1m1095378ef06mm7e53' language = 'java'
+ body = ''/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = 'Im75a362c1m1095378ef06mm7e55'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = 'Im75a362c1m1095378ef06mm7e4d' name = 'getVesselType'
+ visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = 'Im75a362c1m1095378ef06mm7e4f' name = 'return' isSpecification = 'false'
+ kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Interface xmi.idref = 'Im75a362c1m1095378ef06mm7ac9'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = 'Im75a362c1m1095378ef06mm7e49' isSpecification = 'false'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = 'Im75a362c1m1095378ef06mm7e4b' language = 'java'
+ body = ''/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = 'Im75a362c1m1095378ef06mm7e4d'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = 'Im75a362c1m1095378ef06mm7e45' name = 'getSpecies'
+ visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = 'Im75a362c1m1095378ef06mm7e47' name = 'return' isSpecification = 'false'
+ kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Interface xmi.idref = 'Im75a362c1m1095378ef06mm7ac3'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = 'Im75a362c1m1095378ef06mm7e41' isSpecification = 'false'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = 'Im75a362c1m1095378ef06mm7e43' language = 'java'
+ body = ''/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = 'Im75a362c1m1095378ef06mm7e45'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = 'Im75a362c1m1095378ef06mm7e3d' name = 'getZone'
+ visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = 'Im75a362c1m1095378ef06mm7e3f' name = 'return' isSpecification = 'false'
+ kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Interface xmi.idref = 'Im75a362c1m1095378ef06mm7ad3'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = 'Im75a362c1m1095378ef06mm7e39' isSpecification = 'false'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = 'Im75a362c1m1095378ef06mm7e3b' language = 'java'
+ body = ''/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = 'Im75a362c1m1095378ef06mm7e3d'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = 'Im75a362c1m1095378ef06mm7e35' name = 'getStrategy'
+ visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = 'Im75a362c1m1095378ef06mm7e37' name = 'return' isSpecification = 'false'
+ kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Interface xmi.idref = 'Im75a362c1m1095378ef06mm7ac5'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = 'Im75a362c1m1095378ef06mm7e31' isSpecification = 'false'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = 'Im75a362c1m1095378ef06mm7e33' language = 'java'
+ body = ''/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = 'Im75a362c1m1095378ef06mm7e35'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = 'Im75a362c1m1095378ef06mm7e2d' name = 'getPort'
+ visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = 'Im75a362c1m1095378ef06mm7e2f' name = 'return' isSpecification = 'false'
+ kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Interface xmi.idref = 'Im75a362c1m1095378ef06mm7ad1'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = 'Im75a362c1m1095378ef06mm7e29' isSpecification = 'false'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = 'Im75a362c1m1095378ef06mm7e2b' language = 'java'
+ body = ''/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = 'Im75a362c1m1095378ef06mm7e2d'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = 'Im75a362c1m1095378ef06mm7e25' name = 'getMetier'
+ visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = 'Im75a362c1m1095378ef06mm7e27' name = 'return' isSpecification = 'false'
+ kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Interface xmi.idref = 'Im75a362c1m1095378ef06mm7acd'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = 'Im75a362c1m1095378ef06mm7e21' isSpecification = 'false'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = 'Im75a362c1m1095378ef06mm7e23' language = 'java'
+ body = ''/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = 'Im75a362c1m1095378ef06mm7e25'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = 'Im75a362c1m1095378ef06mm7e1d' name = 'getSetOfVessels'
+ visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = 'Im75a362c1m1095378ef06mm7e1f' name = 'return' isSpecification = 'false'
+ kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Interface xmi.idref = 'Im75a362c1m1095378ef06mm7ac7'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = 'Im75a362c1m1095378ef06mm7e19' isSpecification = 'false'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = 'Im75a362c1m1095378ef06mm7e1b' language = 'java'
+ body = ''/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = 'Im75a362c1m1095378ef06mm7e1d'/>
+ </UML:Method.specification>
+ </UML:Method>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Association xmi.id = 'Im75a362c1m1095378ef06mm7e09' name = 'possibleTripTypes'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'>
+ <UML:Association.connection>
+ <UML:AssociationEnd xmi.id = 'Im75a362c1m1095378ef06mm7e11' visibility = 'public'
+ isSpecification = 'false' isNavigable = 'false' ordering = 'unordered' aggregation = 'none'
+ targetScope = 'instance' changeability = 'changeable'>
+ <UML:AssociationEnd.multiplicity>
+ <UML:Multiplicity xmi.id = 'I7d66fd4cm1097d2a905dmm6994'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = 'I7d66fd4cm1097d2a905dmm6993' lower = '0'
+ upper = '-1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:AssociationEnd.multiplicity>
+ <UML:AssociationEnd.participant>
+ <UML:Class xmi.idref = 'Im75a362c1m1095378ef06mm7ef7'/>
+ </UML:AssociationEnd.participant>
+ </UML:AssociationEnd>
+ <UML:AssociationEnd xmi.id = 'Im75a362c1m1095378ef06mm7e0b' visibility = 'public'
+ isSpecification = 'false' isNavigable = 'true' ordering = 'unordered' aggregation = 'none'
+ targetScope = 'instance' changeability = 'changeable'>
+ <UML:AssociationEnd.multiplicity>
+ <UML:Multiplicity xmi.id = 'Im75a362c1m1095378ef06mm7e0d'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = 'Im75a362c1m1095378ef06mm7e0f' lower = '0'
+ upper = '-1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:AssociationEnd.multiplicity>
+ <UML:AssociationEnd.participant>
+ <UML:Class xmi.idref = 'Im75a362c1m1095378ef06mm7f15'/>
+ </UML:AssociationEnd.participant>
+ </UML:AssociationEnd>
+ </UML:Association.connection>
+ </UML:Association>
+ <UML:Class xmi.id = 'Im75a362c1m1095378ef06mm7dc1' name = 'Population' visibility = 'public'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = 'Im75a362c1m1095378ef06mm7a5f'/>
+ </UML:ModelElement.stereotype>
+ <UML:Classifier.feature>
+ <UML:Attribute xmi.id = 'Im75a362c1m1095378ef06mm7e05' name = 'name' visibility = 'private'
+ isSpecification = 'false' ownerScope = 'instance' changeability = 'changeable'>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = 'Im75a362c1m1095378ef06mm7afd'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = 'Im75a362c1m1095378ef06mm7df1' name = 'geographicId'
+ visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable'>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = 'Im75a362c1m1095378ef06mm7afd'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = 'Im75a362c1m1095378ef06mm7def' name = 'plusGroup'
+ visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable'>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref = 'Im75a362c1m1095378ef06mm7af7'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = 'Im75a362c1m1095378ef06mm7e03' name = 'growth' visibility = 'private'
+ isSpecification = 'false' ownerScope = 'instance' changeability = 'changeable'>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = 'Im75a362c1m1095378ef06mm7a63'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = 'Im75a362c1m1095378ef06mm7e01' name = 'growthReverse'
+ visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable'>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = 'Im75a362c1m1095378ef06mm7a63'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = 'Im75a362c1m1095378ef06mm7ded' name = 'comment'
+ visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable'>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = 'Im75a362c1m1095378ef06mm7afd'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = 'Im75a362c1m1095378ef06mm7df3' name = 'meanWeight'
+ visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable'>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = 'Im75a362c1m1095378ef06mm7a63'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = 'Im75a362c1m1095378ef06mm7df5' name = 'price' visibility = 'private'
+ isSpecification = 'false' ownerScope = 'instance' changeability = 'changeable'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = 'Im75a362c1m1095378ef06mm7df7' isSpecification = 'false'>
+ <UML:TaggedValue.dataValue><p>Le prix en Kg</p>
+</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = 'Im75a362c1m1095378ef06mm7aaf'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = 'Im75a362c1m1095378ef06mm7a63'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = 'Im7ac2ea13m109d5712258mm6879' name = 'naturalDeathRate'
+ visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable'>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = 'Im75a362c1m1095378ef06mm7a63'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = 'Im75a362c1m1095378ef06mm7deb' name = 'caractBioComment'
+ visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable'>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = 'Im75a362c1m1095378ef06mm7afd'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = 'Im75a362c1m1095378ef06mm7df9' name = 'reproductionEquation'
+ visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable'>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = 'Im75a362c1m1095378ef06mm7a63'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = 'Im75a362c1m1095378ef06mm7dfd' name = 'monthGapBetweenReproRecrutement'
+ visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable'>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref = 'Im75a362c1m1095378ef06mm7b01'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = 'Im75a362c1m1095378ef06mm7dfb' name = 'recruitmentDistribution'
+ visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable'>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = 'Im75a362c1m1095378ef06mm7aa5'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = 'Im75a362c1m1095378ef06mm7de5' name = 'recruitmentComment'
+ visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable'>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = 'Im75a362c1m1095378ef06mm7afd'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = 'Im75a362c1m1095378ef06mm7de9' name = 'zonesComment'
+ visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable'>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = 'Im75a362c1m1095378ef06mm7afd'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = 'Im75a362c1m1095378ef06mm7de7' name = 'seasonsComment'
+ visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable'>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = 'Im75a362c1m1095378ef06mm7afd'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = 'Im75a362c1m1095378ef06mm7de3' name = 'capturabilityComment'
+ visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable'>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = 'Im75a362c1m1095378ef06mm7afd'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = 'Im75a362c1m1095378ef06mm7de1' name = 'migrationComment'
+ visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable'>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = 'Im75a362c1m1095378ef06mm7afd'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Operation xmi.id = 'Im75a362c1m1095378ef06mm7ddb' name = 'getPopulationSeasonInfo'
+ visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = 'Im75a362c1m1095378ef06mm7ddf' name = 'month' isSpecification = 'false'
+ kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = 'Im75a362c1m1095378ef06mm7a73'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = 'Im75a362c1m1095378ef06mm7ddd' name = 'return' isSpecification = 'false'
+ kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = 'Im75a362c1m1095378ef06mm7c73'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = 'Im75a362c1m1095378ef06mm7dd7' isSpecification = 'false'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = 'Im75a362c1m1095378ef06mm7dd9' language = 'java'
+ body = ''/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = 'Im75a362c1m1095378ef06mm7ddb'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = 'Im75a362c1m1095378ef06mm7dd1' name = 'N2DToN1D'
+ visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = 'Im75a362c1m1095378ef06mm7dd5' name = 'm' isSpecification = 'false'
+ kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = 'Im75a362c1m1095378ef06mm7aa5'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = 'Im75a362c1m1095378ef06mm7dd3' name = 'return' isSpecification = 'false'
+ kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = 'Im75a362c1m1095378ef06mm7aa5'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = 'Im75a362c1m1095378ef06mm7dcd' isSpecification = 'false'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = 'Im75a362c1m1095378ef06mm7dcf' language = 'java'
+ body = ''/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = 'Im75a362c1m1095378ef06mm7dd1'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = 'Im75a362c1m1095378ef06mm7dc7' name = 'split2D'
+ visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = 'Im75a362c1m1095378ef06mm7dcb' name = 'm' isSpecification = 'false'
+ kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = 'Im75a362c1m1095378ef06mm7aa5'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = 'Im75a362c1m1095378ef06mm7dc9' name = 'return' isSpecification = 'false'
+ kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = 'Im75a362c1m1095378ef06mm7aa5'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = 'Im75a362c1m1095378ef06mm7dc3' isSpecification = 'false'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = 'Im75a362c1m1095378ef06mm7dc5' language = 'java'
+ body = ''/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = 'Im75a362c1m1095378ef06mm7dc7'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = 'Im7ac2ea13m109d5712258mm6868' name = 'getNaturalDeathBirth'
+ visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = 'Im1b146941m10d30239e16mm689c' name = 'zone' isSpecification = 'false'
+ kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = 'Im75a362c1m1095378ef06mm539f'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = 'Im1b146941m10d30239e16mm689b' name = 'return' isSpecification = 'false'
+ kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType xmi.idref = 'Im75a362c1m1095378ef06mm7af9'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = 'Im7ac2ea13m109d5712258mm6866' isSpecification = 'false'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = 'Im7ac2ea13m109d5712258mm6867' language = 'java'
+ body = ''/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = 'Im7ac2ea13m109d5712258mm6868'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = 'Im1db15ae1m109f9a23092mm696c' name = 'getAge' visibility = 'public'
+ isSpecification = 'false' ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential'
+ isRoot = 'false' isLeaf = 'false' isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = 'Im3399eed4m109f9aa1b3bmm6867' name = 'length' isSpecification = 'false'
+ kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType xmi.idref = 'Im75a362c1m1095378ef06mm7af9'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = 'Im3399eed4m109f9aa1b3bmm6866' name = 'group' isSpecification = 'false'
+ kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = 'Im75a362c1m1095378ef06mm7d71'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = 'Im3399eed4m109f9aa1b3bmm6865' name = 'return' isSpecification = 'false'
+ kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType xmi.idref = 'Im75a362c1m1095378ef06mm7af9'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = 'Im1db15ae1m109f9a23092mm696a' isSpecification = 'false'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = 'Im1db15ae1m109f9a23092mm696b' language = 'java'
+ body = ''/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = 'Im1db15ae1m109f9a23092mm696c'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = 'Im1db15ae1m109f9a23092mm6947' name = 'getLength'
+ visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = 'Im3399eed4m109f9aa1b3bmm68b8' name = 'age' isSpecification = 'false'
+ kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType xmi.idref = 'Im75a362c1m1095378ef06mm7af9'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = 'Im3399eed4m109f9aa1b3bmm68b7' name = 'group' isSpecification = 'false'
+ kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = 'Im75a362c1m1095378ef06mm7d71'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = 'Im3399eed4m109f9aa1b3bmm68b6' name = 'return' isSpecification = 'false'
+ kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType xmi.idref = 'Im75a362c1m1095378ef06mm7af9'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = 'Im1db15ae1m109f9a23092mm6945' isSpecification = 'false'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = 'Im1db15ae1m109f9a23092mm6946' language = 'java'
+ body = ''/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = 'Im1db15ae1m109f9a23092mm6947'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Attribute xmi.id = 'Im3ff869aem10a0d04d456mm6911' name = 'mappingZoneReproZoneRecru'
+ visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable'>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = 'Im75a362c1m1095378ef06mm7aa5'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = 'Im3ff869aem10a0d04d456mm65b3' name = 'capturability'
+ visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable'>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = 'Im75a362c1m1095378ef06mm7aa5'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Operation xmi.id = '127-0-1-1-29355a30:11d91b439f5:-8000:000000000000109E'
+ name = 'getNaturalDeathRateMatrix' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '127-0-1-1-29355a30:11d91b439f5:-8000:000000000000109F'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = 'Im75a362c1m1095378ef06mm7aa5'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = '127-0-1-1-29355a30:11d91b439f5:-8000:00000000000010A0'
+ name = 'getNaturalDeathRateMatrix' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = '127-0-1-1-29355a30:11d91b439f5:-8000:00000000000010A1'
+ language = '' body = ''/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = '127-0-1-1-29355a30:11d91b439f5:-8000:000000000000109E'/>
+ </UML:Method.specification>
+ </UML:Method>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:AssociationClass xmi.id = 'Im75a362c1m1095378ef06mm7da3' name = 'Selectivity'
+ visibility = 'public' isSpecification = 'false' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = 'Im75a362c1m1095378ef06mm7a5f'/>
+ </UML:ModelElement.stereotype>
+ <UML:Association.connection>
+ <UML:AssociationEnd xmi.id = 'Im75a362c1m1095378ef06mm7dbb' visibility = 'public'
+ isSpecification = 'false' isNavigable = 'true' ordering = 'unordered' aggregation = 'none'
+ targetScope = 'instance' changeability = 'changeable'>
+ <UML:AssociationEnd.multiplicity>
+ <UML:Multiplicity xmi.id = 'Im75a362c1m1095378ef06mm7dbd'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = 'Im75a362c1m1095378ef06mm7dbf' lower = '0'
+ upper = '-1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:AssociationEnd.multiplicity>
+ <UML:AssociationEnd.participant>
+ <UML:Class xmi.idref = 'Im75a362c1m1095378ef06mm7dc1'/>
+ </UML:AssociationEnd.participant>
+ </UML:AssociationEnd>
+ <UML:AssociationEnd xmi.id = 'Im75a362c1m1095378ef06mm7db5' visibility = 'public'
+ isSpecification = 'false' isNavigable = 'false' ordering = 'unordered' aggregation = 'none'
+ targetScope = 'instance' changeability = 'changeable'>
+ <UML:AssociationEnd.multiplicity>
+ <UML:Multiplicity xmi.id = 'I7d66fd4cm1097d2a905dmm6984'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = 'I7d66fd4cm1097d2a905dmm6983' lower = '0'
+ upper = '-1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:AssociationEnd.multiplicity>
+ <UML:AssociationEnd.participant>
+ <UML:Class xmi.idref = 'Im75a362c1m1095378ef06mm7ea5'/>
+ </UML:AssociationEnd.participant>
+ </UML:AssociationEnd>
+ </UML:Association.connection>
+ <UML:Classifier.feature>
+ <UML:Attribute xmi.id = 'Im75a362c1m1095378ef06mm7db3' name = 'equation'
+ visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable'>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = 'Im75a362c1m1095378ef06mm7a63'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Operation xmi.id = 'Im75a362c1m1095378ef06mm7da9' name = 'getCoefficient'
+ visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = 'I12c12b7cm10d3828cd40mm6891' name = 'pop' isSpecification = 'false'
+ kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = 'Im75a362c1m1095378ef06mm7dc1'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = 'I12c12b7cm10d3828cd40mm6890' name = 'group' isSpecification = 'false'
+ kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = 'Im75a362c1m1095378ef06mm7d71'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = 'I12c12b7cm10d3828cd40mm688f' name = 'metier' isSpecification = 'false'
+ kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = 'Im75a362c1m1095378ef06mm7ebd'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = 'I12c12b7cm10d3828cd40mm688e' name = 'return' isSpecification = 'false'
+ kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType xmi.idref = 'Im75a362c1m1095378ef06mm7af9'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = 'Im75a362c1m1095378ef06mm7da5' isSpecification = 'false'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = 'Im75a362c1m1095378ef06mm7da7' language = 'java'
+ body = ''/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = 'Im75a362c1m1095378ef06mm7da9'/>
+ </UML:Method.specification>
+ </UML:Method>
+ </UML:Classifier.feature>
+ </UML:AssociationClass>
+ <UML:Class xmi.id = 'Im75a362c1m1095378ef06mm7d71' name = 'PopulationGroup'
+ visibility = 'public' isSpecification = 'false' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = 'Im75a362c1m1095378ef06mm7a5f'/>
+ </UML:ModelElement.stereotype>
+ <UML:Classifier.feature>
+ <UML:Attribute xmi.id = 'Im75a362c1m1095378ef06mm7da1' name = 'id' visibility = 'private'
+ isSpecification = 'false' ownerScope = 'instance' changeability = 'changeable'>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref = 'Im75a362c1m1095378ef06mm7b01'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = 'Im75a362c1m1095378ef06mm7d99' name = 'reproductionRate'
+ visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = 'Im75a362c1m1095378ef06mm7d9b' isSpecification = 'false'>
+ <UML:TaggedValue.dataValue><p>Le taux de f&eacute;condit&eacute; pour le group</p>
+</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = 'Im75a362c1m1095378ef06mm7aaf'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref = 'Im75a362c1m1095378ef06mm7af9'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Operation xmi.id = 'Im75a362c1m1095378ef06mm7d7d' name = 'getLength'
+ visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = 'Im7ac2ea13m109d5712258mm67eb' name = 'return' isSpecification = 'false'
+ kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType xmi.idref = 'Im75a362c1m1095378ef06mm7af9'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = 'Im75a362c1m1095378ef06mm7d79' isSpecification = 'false'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = 'Im75a362c1m1095378ef06mm7d7b' language = 'java'
+ body = ''/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = 'Im75a362c1m1095378ef06mm7d7d'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = 'Im7ac2ea13m109d5712258mm68c3' name = 'getNaturalDeathRate'
+ visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = 'I12c12b7cm10d3828cd40mm6641' name = 'zone' isSpecification = 'false'
+ kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = 'Im75a362c1m1095378ef06mm539f'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = 'I12c12b7cm10d3828cd40mm6640' name = 'return' isSpecification = 'false'
+ kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType xmi.idref = 'Im75a362c1m1095378ef06mm7af9'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = 'Im7ac2ea13m109d5712258mm68c1' isSpecification = 'false'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = 'Im7ac2ea13m109d5712258mm68c2' language = 'java'
+ body = ''/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = 'Im7ac2ea13m109d5712258mm68c3'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = 'Im7ac2ea13m109d5712258mm689e' name = 'getMeanWeight'
+ visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = 'Im7ac2ea13m109d5712258mm6886' name = 'return' isSpecification = 'false'
+ kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType xmi.idref = 'Im75a362c1m1095378ef06mm7af9'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = 'Im7ac2ea13m109d5712258mm689c' isSpecification = 'false'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = 'Im7ac2ea13m109d5712258mm689d' language = 'java'
+ body = ''/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = 'Im7ac2ea13m109d5712258mm689e'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = 'Im7ac2ea13m109d5712258mm6843' name = 'getPrice'
+ visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = 'Im7ac2ea13m109d5712258mm682b' name = 'return' isSpecification = 'false'
+ kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType xmi.idref = 'Im75a362c1m1095378ef06mm7af9'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = 'Im7ac2ea13m109d5712258mm6841' isSpecification = 'false'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = 'Im7ac2ea13m109d5712258mm6842' language = 'java'
+ body = ''/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = 'Im7ac2ea13m109d5712258mm6843'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Attribute xmi.id = 'Im7ac2ea13m109d5712258mm681e' name = 'age' visibility = 'private'
+ isSpecification = 'false' ownerScope = 'instance' changeability = 'changeable'>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref = 'Im75a362c1m1095378ef06mm7af9'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = 'Im7ac2ea13m109d5712258mm680d' name = 'minLength'
+ visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable'>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref = 'Im75a362c1m1095378ef06mm7af9'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = 'Im7ac2ea13m109d5712258mm67fc' name = 'maxLength'
+ visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable'>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref = 'Im75a362c1m1095378ef06mm7af9'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = 'Im75a362c1m1095378ef06mm7d73' name = 'comment'
+ visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable'>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = 'Im75a362c1m1095378ef06mm7afd'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Operation xmi.id = 'I7cd3ef46m10c166d0777mm6957' name = 'isInLength'
+ visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = 'I7cd3ef46m10c166d0777mm693f' name = 'length' isSpecification = 'false'
+ kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType xmi.idref = 'Im75a362c1m1095378ef06mm7af9'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = 'I7cd3ef46m10c166d0777mm693e' name = 'return' isSpecification = 'false'
+ kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType xmi.idref = 'Im75a362c1m1095378ef06mm7af7'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = 'I7cd3ef46m10c166d0777mm6955' isSpecification = 'false'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = 'I7cd3ef46m10c166d0777mm6956' language = 'java'
+ body = ''/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = 'I7cd3ef46m10c166d0777mm6957'/>
+ </UML:Method.specification>
+ </UML:Method>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Association xmi.id = 'Im75a362c1m1095378ef06mm7d63' isSpecification = 'false'
+ isRoot = 'false' isLeaf = 'false' isAbstract = 'false'>
+ <UML:Association.connection>
+ <UML:AssociationEnd xmi.id = 'Im75a362c1m1095378ef06mm7d6b' name = '' visibility = 'public'
+ isSpecification = 'false' isNavigable = 'true' ordering = 'unordered' aggregation = 'composite'
+ targetScope = 'instance' changeability = 'changeable'>
+ <UML:AssociationEnd.multiplicity>
+ <UML:Multiplicity xmi.id = 'Im75a362c1m1095378ef06mm7d6d'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = 'Im75a362c1m1095378ef06mm7d6f' lower = '1'
+ upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:AssociationEnd.multiplicity>
+ <UML:AssociationEnd.participant>
+ <UML:Class xmi.idref = 'Im75a362c1m1095378ef06mm7dc1'/>
+ </UML:AssociationEnd.participant>
+ </UML:AssociationEnd>
+ <UML:AssociationEnd xmi.id = 'Im75a362c1m1095378ef06mm7d65' name = '' visibility = 'public'
+ isSpecification = 'false' isNavigable = 'true' ordering = 'ordered' aggregation = 'none'
+ targetScope = 'instance' changeability = 'changeable'>
+ <UML:AssociationEnd.multiplicity>
+ <UML:Multiplicity xmi.id = 'Im75a362c1m1095378ef06mm7d67'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = 'Im75a362c1m1095378ef06mm7d69' lower = '0'
+ upper = '-1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:AssociationEnd.multiplicity>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = 'I4b51df9bm109d715de8dmm6966' isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>id</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = 'I6fd0e703m109cdb8199dmm6963'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:AssociationEnd.participant>
+ <UML:Class xmi.idref = 'Im75a362c1m1095378ef06mm7d71'/>
+ </UML:AssociationEnd.participant>
+ </UML:AssociationEnd>
+ </UML:Association.connection>
+ </UML:Association>
+ <UML:Class xmi.id = 'Im75a362c1m1095378ef06mm7d4d' name = 'Species' visibility = 'public'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = 'Im75a362c1m1095378ef06mm7a5f'/>
+ </UML:ModelElement.stereotype>
+ <UML:Classifier.feature>
+ <UML:Attribute xmi.id = 'Im75a362c1m1095378ef06mm7d61' name = 'name' visibility = 'private'
+ isSpecification = 'false' ownerScope = 'instance' changeability = 'changeable'>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = 'Im75a362c1m1095378ef06mm7afd'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = 'Im75a362c1m1095378ef06mm7d5f' name = 'scientificName'
+ visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable'>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = 'Im75a362c1m1095378ef06mm7afd'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = 'Im75a362c1m1095378ef06mm7d5d' name = 'codeRubbin'
+ visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable'>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = 'Im75a362c1m1095378ef06mm7afd'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = 'Im75a362c1m1095378ef06mm7d5b' name = 'codeCEE'
+ visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable'>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref = 'Im75a362c1m1095378ef06mm7b01'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = 'Im75a362c1m1095378ef06mm7d59' name = 'ageGroupType'
+ visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable'>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref = 'Im75a362c1m1095378ef06mm7af7'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = 'Im75a362c1m1095378ef06mm7d57' name = 'comment'
+ visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable'>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = 'Im75a362c1m1095378ef06mm7afd'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Operation xmi.id = 'Im75a362c1m1095378ef06mm7d53' name = 'getFisheryRegion'
+ visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = 'Im75a362c1m1095378ef06mm7d55' name = 'return' isSpecification = 'false'
+ kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = 'Im75a362c1m1095378ef06mm7e17'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = 'Im75a362c1m1095378ef06mm7d4f' isSpecification = 'false'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = 'Im75a362c1m1095378ef06mm7d51' language = 'java'
+ body = ''/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = 'Im75a362c1m1095378ef06mm7d53'/>
+ </UML:Method.specification>
+ </UML:Method>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:AssociationClass xmi.id = 'Im75a362c1m1095378ef06mm7d29' name = 'TargetSpecies'
+ visibility = 'public' isSpecification = 'false' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = 'Im75a362c1m1095378ef06mm7a5f'/>
+ </UML:ModelElement.stereotype>
+ <UML:Association.connection>
+ <UML:AssociationEnd xmi.id = 'Im75a362c1m1095378ef06mm7d37' visibility = 'public'
+ isSpecification = 'false' isNavigable = 'false' ordering = 'unordered' aggregation = 'none'
+ targetScope = 'instance' changeability = 'changeable'>
+ <UML:AssociationEnd.multiplicity>
+ <UML:Multiplicity xmi.id = 'Im75a362c1m1095378ef06mm7d39'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = 'Im75a362c1m1095378ef06mm7d3b' lower = '0'
+ upper = '-1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:AssociationEnd.multiplicity>
+ <UML:AssociationEnd.participant>
+ <UML:Class xmi.idref = 'Im75a362c1m1095378ef06mm7c8d'/>
+ </UML:AssociationEnd.participant>
+ </UML:AssociationEnd>
+ <UML:AssociationEnd xmi.id = 'Im75a362c1m1095378ef06mm7d31' visibility = 'public'
+ isSpecification = 'false' isNavigable = 'true' ordering = 'unordered' aggregation = 'none'
+ targetScope = 'instance' changeability = 'changeable'>
+ <UML:AssociationEnd.multiplicity>
+ <UML:Multiplicity xmi.id = 'Im75a362c1m1095378ef06mm7d33'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = 'Im75a362c1m1095378ef06mm7d35' lower = '0'
+ upper = '-1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:AssociationEnd.multiplicity>
+ <UML:AssociationEnd.participant>
+ <UML:Class xmi.idref = 'Im75a362c1m1095378ef06mm7d4d'/>
+ </UML:AssociationEnd.participant>
+ </UML:AssociationEnd>
+ </UML:Association.connection>
+ <UML:Classifier.feature>
+ <UML:Attribute xmi.id = 'Im75a362c1m1095378ef06mm7d2f' name = 'targetFactorEquation'
+ visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable'>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = 'Im75a362c1m1095378ef06mm7a63'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = 'Im75a362c1m1095378ef06mm7d2b' name = 'primaryCatch'
+ visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = 'Im75a362c1m1095378ef06mm7d2d' isSpecification = 'false'>
+ <UML:TaggedValue.dataValue><p>Vrai si la MetaPopulation est une esp&egrave;ce vis&eacute;e prioritairement</p>
+</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = 'Im75a362c1m1095378ef06mm7aaf'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref = 'Im75a362c1m1095378ef06mm7af7'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Operation xmi.id = 'I12c12b7cm10d3828cd40mm6711' name = 'getTargetFactor'
+ visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = 'I12c12b7cm10d3828cd40mm6691' name = 'group' isSpecification = 'false'
+ kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = 'Im75a362c1m1095378ef06mm7d71'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = 'I12c12b7cm10d3828cd40mm6690' name = 'return' isSpecification = 'false'
+ kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType xmi.idref = 'Im75a362c1m1095378ef06mm7af9'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = 'I12c12b7cm10d3828cd40mm670f' isSpecification = 'false'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = 'I12c12b7cm10d3828cd40mm6710' language = 'java'
+ body = ''/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = 'I12c12b7cm10d3828cd40mm6711'/>
+ </UML:Method.specification>
+ </UML:Method>
+ </UML:Classifier.feature>
+ </UML:AssociationClass>
+ <UML:AssociationClass xmi.id = 'Im75a362c1m1095378ef06mm7cf5' name = 'EffortDescription'
+ visibility = 'public' isSpecification = 'false' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = 'Im75a362c1m1095378ef06mm7a5f'/>
+ </UML:ModelElement.stereotype>
+ <UML:Association.connection>
+ <UML:AssociationEnd xmi.id = 'Im75a362c1m1095378ef06mm7d23' name = 'possibleMetiers'
+ visibility = 'public' isSpecification = 'false' isNavigable = 'true' ordering = 'unordered'
+ aggregation = 'none' targetScope = 'instance' changeability = 'changeable'>
+ <UML:AssociationEnd.multiplicity>
+ <UML:Multiplicity xmi.id = '-64--88-99-118--5a094e24:10f38b38caf:-8000:0000000000000AEB'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-64--88-99-118--5a094e24:10f38b38caf:-8000:0000000000000AEA'
+ lower = '0' upper = '-1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:AssociationEnd.multiplicity>
+ <UML:AssociationEnd.participant>
+ <UML:Class xmi.idref = 'Im75a362c1m1095378ef06mm7ebd'/>
+ </UML:AssociationEnd.participant>
+ </UML:AssociationEnd>
+ <UML:AssociationEnd xmi.id = 'Im75a362c1m1095378ef06mm7d1d' visibility = 'public'
+ isSpecification = 'false' isNavigable = 'false' ordering = 'unordered' aggregation = 'none'
+ targetScope = 'instance' changeability = 'changeable'>
+ <UML:AssociationEnd.multiplicity>
+ <UML:Multiplicity xmi.id = 'Im4979ef54m10e614066ffmm676b'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = 'Im4979ef54m10e614066ffmm676a' lower = '0'
+ upper = '-1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:AssociationEnd.multiplicity>
+ <UML:AssociationEnd.participant>
+ <UML:Class xmi.idref = 'Im75a362c1m1095378ef06mm7edd'/>
+ </UML:AssociationEnd.participant>
+ </UML:AssociationEnd>
+ </UML:Association.connection>
+ <UML:Classifier.feature>
+ <UML:Attribute xmi.id = 'Im75a362c1m1095378ef06mm7d19' name = 'fishingOperation'
+ visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = 'Im75a362c1m1095378ef06mm7d1b' isSpecification = 'false'>
+ <UML:TaggedValue.dataValue><p>Nombre d'op&eacute;ration de p&ecirc;che par jour</p>
+</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = 'Im75a362c1m1095378ef06mm7aaf'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref = 'Im75a362c1m1095378ef06mm7b01'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = 'Im75a362c1m1095378ef06mm7d17' name = 'fishingOperationDuration'
+ visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable'>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = 'Im75a362c1m1095378ef06mm7a87'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = 'Im75a362c1m1095378ef06mm7d15' name = 'gearsNumberPerOperation'
+ visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable'>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref = 'Im75a362c1m1095378ef06mm7b01'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = 'Im75a362c1m1095378ef06mm7d11' name = 'crewSize'
+ visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = 'Im75a362c1m1095378ef06mm7d13' isSpecification = 'false'>
+ <UML:TaggedValue.dataValue><p>Taille de l'&eacute;quipage pour le m&eacute;tier. Ne peut-&ecirc;tre inf&eacute;rieur &agrave; VesselType.minCrewSize.</p>
+</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = 'Im75a362c1m1095378ef06mm7aaf'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref = 'Im75a362c1m1095378ef06mm7b01'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = 'Im75a362c1m1095378ef06mm7d0d' name = 'unitCostOfFishing'
+ visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = 'Im75a362c1m1095378ef06mm7d0f' isSpecification = 'false'>
+ <UML:TaggedValue.dataValue><p>Co&ucirc;t de fonctionnement li&eacute; &agrave; une op&eacute;ration de p&ecirc;che: carburant, huile, app&acirc;t, glace (hors transport sur zone)</p>
+</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = 'Im75a362c1m1095378ef06mm7aaf'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref = 'Im75a362c1m1095378ef06mm7af9'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = 'Im75a362c1m1095378ef06mm7d09' name = 'fixedCrewSalary'
+ visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = 'Im75a362c1m1095378ef06mm7d0b' isSpecification = 'false'>
+ <UML:TaggedValue.dataValue><p>Salaire fixe pour l'ensemble de l'&eacute;quipage pour un mois</p>
+</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = 'Im75a362c1m1095378ef06mm7aaf'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref = 'Im75a362c1m1095378ef06mm7af9'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = 'Im75a362c1m1095378ef06mm7d05' name = 'crewShareRate'
+ visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = 'Im75a362c1m1095378ef06mm7d07' isSpecification = 'false'>
+ <UML:TaggedValue.dataValue><p>Taux de part de l'&eacute;quipage</p>
+</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = 'Im75a362c1m1095378ef06mm7aaf'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref = 'Im75a362c1m1095378ef06mm7af9'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = 'Im75a362c1m1095378ef06mm7d01' name = 'crewFoodCost'
+ visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = 'Im75a362c1m1095378ef06mm7d03' isSpecification = 'false'>
+ <UML:TaggedValue.dataValue><p>Frais de vivres pour l'ensemble de l'&eacute;quipage par jour.</p>
+</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = 'Im75a362c1m1095378ef06mm7aaf'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref = 'Im75a362c1m1095378ef06mm7af9'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = 'Im75a362c1m1095378ef06mm7cfd' name = 'repairAndMaintenanceGearCost'
+ visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = 'Im75a362c1m1095378ef06mm7cff' isSpecification = 'false'>
+ <UML:TaggedValue.dataValue><p>Co&ucirc;t de maintenance et de r&eacute;paration par jour d'utilisation</p>
+</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = 'Im75a362c1m1095378ef06mm7aaf'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref = 'Im75a362c1m1095378ef06mm7af9'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = 'Im75a362c1m1095378ef06mm7cf9' name = 'otherRunningCost'
+ visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = 'Im75a362c1m1095378ef06mm7cfb' isSpecification = 'false'>
+ <UML:TaggedValue.dataValue><p>autres co&ucirc;ts par jour</p>
+</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = 'Im75a362c1m1095378ef06mm7aaf'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref = 'Im75a362c1m1095378ef06mm7af9'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = 'Im75a362c1m1095378ef06mm7cf7' name = 'landingCosts'
+ visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable'>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref = 'Im75a362c1m1095378ef06mm7af9'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Operation xmi.id = '-64--88-99-118--5a094e24:10f38b38caf:-8000:0000000000000AEC'
+ name = 'toString' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-64--88-99-118--5a094e24:10f38b38caf:-8000:0000000000000AED'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = 'Im75a362c1m1095378ef06mm7afd'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ </UML:Classifier.feature>
+ </UML:AssociationClass>
+ <UML:Class xmi.id = 'Im75a362c1m1095378ef06mm7ce5' name = 'Strategy' visibility = 'public'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = 'Im75a362c1m1095378ef06mm7a5f'/>
+ </UML:ModelElement.stereotype>
+ <UML:Classifier.feature>
+ <UML:Attribute xmi.id = 'Im75a362c1m1095378ef06mm7cf3' name = 'name' visibility = 'private'
+ isSpecification = 'false' ownerScope = 'instance' changeability = 'changeable'>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = 'Im75a362c1m1095378ef06mm7afd'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = 'Im75a362c1m1095378ef06mm7cf1' name = 'proportionSetOfVessels'
+ visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable'>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref = 'Im75a362c1m1095378ef06mm7af9'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = 'Im75a362c1m1095378ef06mm7cef' name = 'comment'
+ visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable'>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = 'Im75a362c1m1095378ef06mm7afd'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Operation xmi.id = 'Im75a362c1m1095378ef06mm7ceb' name = 'getFisheryRegion'
+ visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = 'Im75a362c1m1095378ef06mm7ced' name = 'return' isSpecification = 'false'
+ kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = 'Im75a362c1m1095378ef06mm7e17'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = 'Im75a362c1m1095378ef06mm7ce7' isSpecification = 'false'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = 'Im75a362c1m1095378ef06mm7ce9' language = 'java'
+ body = ''/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = 'Im75a362c1m1095378ef06mm7ceb'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = 'I12c12b7cm10d3828cd40mm680b' name = 'getStrategyMonthInfo'
+ visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = 'I12c12b7cm10d3828cd40mm67f3' name = 'month' isSpecification = 'false'
+ kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = 'Im75a362c1m1095378ef06mm7a73'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = 'I12c12b7cm10d3828cd40mm67f2' name = 'return' isSpecification = 'false'
+ kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = 'Im75a362c1m1095378ef06mm7ca1'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = 'I12c12b7cm10d3828cd40mm6809' isSpecification = 'false'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = 'I12c12b7cm10d3828cd40mm680a' language = 'java'
+ body = ''/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = 'I12c12b7cm10d3828cd40mm680b'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Attribute xmi.id = '127-0-0-1-66ea5032:11bb719bc92:-8000:0000000000000AD9'
+ name = 'inactivityEquationUsed' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '127-0-0-1-66ea5032:11bb719bc92:-8000:0000000000000ADA'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '127-0-0-1-66ea5032:11bb719bc92:-8000:0000000000000ADB'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref = 'Im75a362c1m1095378ef06mm7af7'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '127-0-0-1-66ea5032:11bb719bc92:-8000:0000000000000ADC'
+ name = 'inactivityEquation' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '127-0-0-1-66ea5032:11bb719bc92:-8000:0000000000000ADD'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '127-0-0-1-66ea5032:11bb719bc92:-8000:0000000000000ADE'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = 'Im75a362c1m1095378ef06mm7a63'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Operation xmi.id = '127-0-0-1-66ea5032:11bb719bc92:-8000:0000000000000AE2'
+ name = 'getInactivityDays' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '127-0-0-1-66ea5032:11bb719bc92:-8000:0000000000000AE3'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType xmi.idref = 'Im75a362c1m1095378ef06mm7af9'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '127-0-0-1-66ea5032:11bb719bc92:-8000:0000000000000AE4'
+ name = 'month' isSpecification = 'false'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = 'Im75a362c1m1095378ef06mm7a73'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Association xmi.id = 'Im75a362c1m1095378ef06mm7cd7' isSpecification = 'false'
+ isRoot = 'false' isLeaf = 'false' isAbstract = 'false'>
+ <UML:Association.connection>
+ <UML:AssociationEnd xmi.id = 'Im75a362c1m1095378ef06mm7cdf' visibility = 'public'
+ isSpecification = 'false' isNavigable = 'false' ordering = 'unordered' aggregation = 'none'
+ targetScope = 'instance' changeability = 'changeable'>
+ <UML:AssociationEnd.multiplicity>
+ <UML:Multiplicity xmi.id = 'Ia3748d6m10e345e32d8mm676b'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = 'Ia3748d6m10e345e32d8mm676a' lower = '0'
+ upper = '-1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:AssociationEnd.multiplicity>
+ <UML:AssociationEnd.participant>
+ <UML:Class xmi.idref = 'Im75a362c1m1095378ef06mm7ce5'/>
+ </UML:AssociationEnd.participant>
+ </UML:AssociationEnd>
+ <UML:AssociationEnd xmi.id = 'Im75a362c1m1095378ef06mm7cd9' visibility = 'public'
+ isSpecification = 'false' isNavigable = 'true' ordering = 'unordered' aggregation = 'none'
+ targetScope = 'instance' changeability = 'changeable'>
+ <UML:AssociationEnd.multiplicity>
+ <UML:Multiplicity xmi.id = 'Im75a362c1m1095378ef06mm7cdb'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = 'Im75a362c1m1095378ef06mm7cdd' lower = '1'
+ upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:AssociationEnd.multiplicity>
+ <UML:AssociationEnd.participant>
+ <UML:Class xmi.idref = 'Im75a362c1m1095378ef06mm7edd'/>
+ </UML:AssociationEnd.participant>
+ </UML:AssociationEnd>
+ </UML:Association.connection>
+ </UML:Association>
+ <UML:Class xmi.id = 'Im75a362c1m1095378ef06mm7cb3' name = 'Result' visibility = 'public'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = 'Im75a362c1m1095378ef06mm7a5f'/>
+ </UML:ModelElement.stereotype>
+ <UML:Classifier.feature>
+ <UML:Attribute xmi.id = 'Im75a362c1m1095378ef06mm7cc5' name = 'resultDate'
+ visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' ordering = 'unordered'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = 'Im75a362c1m1095378ef06mm7cc7'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = 'Im75a362c1m1095378ef06mm7cc9' lower = '1'
+ upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = 'Im75a362c1m1095378ef06mm7a9d'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = 'Im75a362c1m1095378ef06mm7cbd' name = 'name' visibility = 'private'
+ isSpecification = 'false' ownerScope = 'instance' changeability = 'changeable'
+ ordering = 'unordered'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = 'Im75a362c1m1095378ef06mm7cc1'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = 'Im75a362c1m1095378ef06mm7cc3' lower = '1'
+ upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = 'Im75a362c1m1095378ef06mm7cbf' isSpecification = 'false'>
+ <UML:TaggedValue.dataValue><p>Contient la description associ&eacute; &agrave; un type.</p>
+</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = 'Im75a362c1m1095378ef06mm7aaf'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = 'Im75a362c1m1095378ef06mm7afd'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = 'Im75a362c1m1095378ef06mm7cb5' name = 'matrix' visibility = 'private'
+ isSpecification = 'false' ownerScope = 'instance' changeability = 'changeable'
+ ordering = 'unordered'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = 'Im75a362c1m1095378ef06mm7cb9'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = 'Im75a362c1m1095378ef06mm7cbb' lower = '1'
+ upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = 'Im75a362c1m1095378ef06mm7cb7' isSpecification = 'false'>
+ <UML:TaggedValue.dataValue><p>contient les matrices associ&eacute;es &agrave; chaque type de r&eacute;sultat. La cle est un type et la valeur une matrice</p>
+</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = 'Im75a362c1m1095378ef06mm7aaf'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = 'Im75a362c1m1095378ef06mm7aa5'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Class xmi.id = 'Im75a362c1m1095378ef06mm7cad' name = 'Script' visibility = 'public'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'>
+ <UML:Classifier.feature>
+ <UML:Attribute xmi.id = 'Im75a362c1m1095378ef06mm7cb1' name = 'name' visibility = 'private'
+ isSpecification = 'false' ownerScope = 'instance' changeability = 'changeable'>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = 'Im75a362c1m1095378ef06mm7afd'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = 'Im75a362c1m1095378ef06mm7caf' name = 'code' visibility = 'private'
+ isSpecification = 'false' ownerScope = 'instance' changeability = 'changeable'>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = 'Im75a362c1m1095378ef06mm7afd'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Class xmi.id = 'Im75a362c1m1095378ef06mm7ca1' name = 'StrategyMonthInfo'
+ visibility = 'public' isSpecification = 'false' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = 'Im75a362c1m1095378ef06mm7a5f'/>
+ </UML:ModelElement.stereotype>
+ <UML:Classifier.feature>
+ <UML:Attribute xmi.id = 'Im75a362c1m1095378ef06mm7ca9' name = 'month' visibility = 'private'
+ isSpecification = 'false' ownerScope = 'instance' changeability = 'changeable'>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = 'Im75a362c1m1095378ef06mm7a73'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = 'Im75a362c1m1095378ef06mm7ca7' name = 'minInactivityDays'
+ visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable'>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref = 'Im75a362c1m1095378ef06mm7af9'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = 'Im75a362c1m1095378ef06mm7ca3' name = 'numberOfTrips'
+ visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = 'Im75a362c1m1095378ef06mm7ca5' isSpecification = 'false'>
+ <UML:TaggedValue.dataValue><p>Nombre de Trip par mois. Le nombre de jour d'inactivite et le nombre la duree d'un trip doivent &ecirc;tre coh&eacute;rent pour le mois</p>
+</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = 'Im75a362c1m1095378ef06mm7aaf'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref = 'Im75a362c1m1095378ef06mm7af9'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = 'I54a56778m10d5942be2amm67a0' name = 'proportionMetier'
+ visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable'>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = 'Im75a362c1m1095378ef06mm7aa5'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Operation xmi.id = 'I54a56778m10d5942be2amm678f' name = 'getFisheryRegion'
+ visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = 'I54a56778m10d5942be2amm6777' name = 'return' isSpecification = 'false'
+ kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = 'Im75a362c1m1095378ef06mm7e17'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = 'I54a56778m10d5942be2amm678d' isSpecification = 'false'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = 'I54a56778m10d5942be2amm678e' language = 'java'
+ body = ''/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = 'I54a56778m10d5942be2amm678f'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = 'I54a56778m10d5942be2amm676a' name = 'getProportionMetier'
+ visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = 'I54a56778m10d5942be2amm6752' name = 'metier' isSpecification = 'false'
+ kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = 'Im75a362c1m1095378ef06mm7ebd'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = 'I54a56778m10d5942be2amm6751' name = 'return' isSpecification = 'false'
+ kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType xmi.idref = 'Im75a362c1m1095378ef06mm7af9'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = 'I54a56778m10d5942be2amm6768' isSpecification = 'false'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = 'I54a56778m10d5942be2amm6769' language = 'java'
+ body = ''/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = 'I54a56778m10d5942be2amm676a'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = 'I750ca9dfm10dd42991bcmm679b' name = 'setProportionMetier'
+ visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = 'I750ca9dfm10dd42991bcmm6783' name = 'metier' isSpecification = 'false'
+ kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = 'Im75a362c1m1095378ef06mm7ebd'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = 'I750ca9dfm10dd42991bcmm6782' name = 'prop' isSpecification = 'false'
+ kind = 'in'>
+ <UML:Parameter.type>
+ <UML:DataType xmi.idref = 'Im75a362c1m1095378ef06mm7af9'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = 'I750ca9dfm10dd42991bcmm6781' name = 'return' isSpecification = 'false'
+ kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType xmi.idref = 'Im75a362c1m1095378ef06mm7aff'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = 'I750ca9dfm10dd42991bcmm6799' isSpecification = 'false'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = 'I750ca9dfm10dd42991bcmm679a' language = 'java'
+ body = ''/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = 'I750ca9dfm10dd42991bcmm679b'/>
+ </UML:Method.specification>
+ </UML:Method>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Association xmi.id = 'Im75a362c1m1095378ef06mm7c93' isSpecification = 'false'
+ isRoot = 'false' isLeaf = 'false' isAbstract = 'false'>
+ <UML:Association.connection>
+ <UML:AssociationEnd xmi.id = 'Im75a362c1m1095378ef06mm7c9b' visibility = 'public'
+ isSpecification = 'false' isNavigable = 'false' ordering = 'unordered' aggregation = 'none'
+ targetScope = 'instance' changeability = 'changeable'>
+ <UML:AssociationEnd.multiplicity>
+ <UML:Multiplicity xmi.id = 'Im75a362c1m1095378ef06mm7c9d'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = 'Im75a362c1m1095378ef06mm7c9f' lower = '0'
+ upper = '-1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:AssociationEnd.multiplicity>
+ <UML:AssociationEnd.participant>
+ <UML:Class xmi.idref = 'Im75a362c1m1095378ef06mm7ca1'/>
+ </UML:AssociationEnd.participant>
+ </UML:AssociationEnd>
+ <UML:AssociationEnd xmi.id = 'Im75a362c1m1095378ef06mm7c95' visibility = 'public'
+ isSpecification = 'false' isNavigable = 'true' ordering = 'unordered' aggregation = 'none'
+ targetScope = 'instance' changeability = 'changeable'>
+ <UML:AssociationEnd.multiplicity>
+ <UML:Multiplicity xmi.id = 'Im75a362c1m1095378ef06mm7c97'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = 'Im75a362c1m1095378ef06mm7c99' lower = '1'
+ upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:AssociationEnd.multiplicity>
+ <UML:AssociationEnd.participant>
+ <UML:Class xmi.idref = 'Im75a362c1m1095378ef06mm7f15'/>
+ </UML:AssociationEnd.participant>
+ </UML:AssociationEnd>
+ </UML:Association.connection>
+ </UML:Association>
+ <UML:Class xmi.id = 'Im75a362c1m1095378ef06mm7c8d' name = 'MetierSeasonInfo'
+ visibility = 'public' isSpecification = 'false' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = 'Im75a362c1m1095378ef06mm7a5f'/>
+ </UML:ModelElement.stereotype>
+ <UML:GeneralizableElement.generalization>
+ <UML:Generalization xmi.idref = 'Im75a362c1m1095378ef06mm7b07'/>
+ </UML:GeneralizableElement.generalization>
+ <UML:Classifier.feature>
+ <UML:Attribute xmi.id = 'Im75a362c1m1095378ef06mm7c91' name = 'seasonZoneComment'
+ visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable'>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = 'Im75a362c1m1095378ef06mm7afd'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = 'Im75a362c1m1095378ef06mm7c8f' name = 'comment'
+ visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable'>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = 'Im75a362c1m1095378ef06mm7afd'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Operation xmi.id = 'I12c12b7cm10d3828cd40mm66d1' name = 'getTargetFactor'
+ visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = 'I12c12b7cm10d3828cd40mm6669' name = 'group' isSpecification = 'false'
+ kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = 'Im75a362c1m1095378ef06mm7d71'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = 'I12c12b7cm10d3828cd40mm6668' name = 'return' isSpecification = 'false'
+ kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType xmi.idref = 'Im75a362c1m1095378ef06mm7af9'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = 'I12c12b7cm10d3828cd40mm66cf' isSpecification = 'false'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = 'I12c12b7cm10d3828cd40mm66d0' language = 'java'
+ body = ''/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = 'I12c12b7cm10d3828cd40mm66d1'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = '-64--88-99-118--523393cd:10f4d32d651:-8000:0000000000000AD6'
+ name = 'getCells' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-64--88-99-118--523393cd:10f4d32d651:-8000:0000000000000AD7'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Interface xmi.idref = 'Im75a362c1m1095378ef06mm7ad5'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Class xmi.id = 'Im75a362c1m1095378ef06mm7c73' name = 'PopulationSeasonInfo'
+ visibility = 'public' isSpecification = 'false' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = 'Im75a362c1m1095378ef06mm7a5f'/>
+ </UML:ModelElement.stereotype>
+ <UML:GeneralizableElement.generalization>
+ <UML:Generalization xmi.idref = 'Im75a362c1m1095378ef06mm7b05'/>
+ </UML:GeneralizableElement.generalization>
+ <UML:Namespace.ownedElement>
+ <UML:Actor xmi.id = 'Im75a362c1m1095378ef06mm7c8b' name = 'java.util.List<fr.ifremer.types.Month>'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'/>
+ <UML:Actor xmi.id = 'Im75a362c1m1095378ef06mm7c89' name = 'java.util.List<fr.ifremer.isisfish.types.Month>'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'/>
+ </UML:Namespace.ownedElement>
+ <UML:Classifier.feature>
+ <UML:Attribute xmi.id = 'Im75a362c1m1095378ef06mm7c85' name = 'reproductionDistribution'
+ visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = 'Im75a362c1m1095378ef06mm7c87' isSpecification = 'false'>
+ <UML:TaggedValue.dataValue><p>Matrice repr&eacute;sentant la distribution de la reproduction sur les diff&eacute;rents mois de la saison.</p></UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = 'Im75a362c1m1095378ef06mm7aaf'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = 'Im75a362c1m1095378ef06mm7aa5'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = 'Im75a362c1m1095378ef06mm7c81' name = 'groupChange'
+ visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = 'Im75a362c1m1095378ef06mm7c83' isSpecification = 'false'>
+ <UML:TaggedValue.dataValue><p>Si vrai alors la population change de groupe d'age ou de longueurs en debut de saison</p>
+</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = 'Im75a362c1m1095378ef06mm7aaf'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref = 'Im75a362c1m1095378ef06mm7af7'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = 'Im75a362c1m1095378ef06mm7c7d' name = 'simpleLengthChangeMatrix'
+ visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = 'Im75a362c1m1095378ef06mm7c7f' isSpecification = 'false'>
+ <UML:TaggedValue.dataValue><p>Indique si la matrice de changementde longeur est une matrice simple ou complexe</p>
+</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = 'Im75a362c1m1095378ef06mm7aaf'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref = 'Im75a362c1m1095378ef06mm7af7'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = 'Im75a362c1m1095378ef06mm7c79' name = 'lengthChangeMatrix'
+ visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = 'Im75a362c1m1095378ef06mm7c7b' isSpecification = 'false'>
+ <UML:TaggedValue.dataValue><p>La matrice de changement de longueur. Appliquable que si la MetaPopulation est en longueur. Cette matrice est [group x group] ou [ (group, zone) x ( group, zone)]</p>
+<p></p></UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = 'Im75a362c1m1095378ef06mm7aaf'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = 'Im75a362c1m1095378ef06mm7aa5'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = 'Im75a362c1m1095378ef06mm7c75' name = 'reproduction'
+ visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = 'Im75a362c1m1095378ef06mm7c77' isSpecification = 'false'>
+ <UML:TaggedValue.dataValue><p>Indique s'il y a de la reproduction durant la saison</p>
+</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = 'Im75a362c1m1095378ef06mm7aaf'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref = 'Im75a362c1m1095378ef06mm7af7'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = 'Im3ff869aem10a0d04d456mm68ef' name = 'useEquationMigration'
+ visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable'>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref = 'Im75a362c1m1095378ef06mm7af7'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = 'Im3ff869aem10a0d04d456mm68de' name = 'migrationMatrix'
+ visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = 'Im3ff869aem10a0d04d456mm65d4' isSpecification = 'false'>
+ <UML:TaggedValue.dataValue><p>Matrix [group x zone(left) x zone(reached)]</p></UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = 'Im75a362c1m1095378ef06mm7aaf'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = 'Im75a362c1m1095378ef06mm7aa5'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = 'Im3ff869aem10a0d04d456mm68cd' name = 'emigrationMatrix'
+ visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = 'Im3ff869aem10a0d04d456mm65d3' isSpecification = 'false'>
+ <UML:TaggedValue.dataValue><p>Matrix [group x zone(left)]</p></UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = 'Im75a362c1m1095378ef06mm7aaf'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = 'Im75a362c1m1095378ef06mm7aa5'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = 'Im3ff869aem10a0d04d456mm68bc' name = 'immigrationMatrix'
+ visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = 'Im3ff869aem10a0d04d456mm65d2' isSpecification = 'false'>
+ <UML:TaggedValue.dataValue><p>Matrix [group x zone(reached)]</p></UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = 'Im75a362c1m1095378ef06mm7aaf'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = 'Im75a362c1m1095378ef06mm7aa5'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = 'Im3ff869aem10a0d04d456mm68ab' name = 'migrationEquation'
+ visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable'>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = 'Im75a362c1m1095378ef06mm7a63'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = 'Im3ff869aem10a0d04d456mm689a' name = 'emigrationEquation'
+ visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable'>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = 'Im75a362c1m1095378ef06mm7a63'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = 'Im3ff869aem10a0d04d456mm6889' name = 'immigrationEquation'
+ visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable'>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = 'Im75a362c1m1095378ef06mm7a63'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Operation xmi.id = 'Im3ff869aem10a0d04d456mm6878' name = 'getCapturability'
+ visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = 'Im3ff869aem10a0d04d456mm6860' name = 'group' isSpecification = 'false'
+ kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = 'Im75a362c1m1095378ef06mm7d71'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = 'Im3ff869aem10a0d04d456mm685f' name = 'return' isSpecification = 'false'
+ kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType xmi.idref = 'Im75a362c1m1095378ef06mm7af9'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = 'Im3ff869aem10a0d04d456mm6876' isSpecification = 'false'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = 'Im3ff869aem10a0d04d456mm6877' language = 'java'
+ body = ''/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = 'Im3ff869aem10a0d04d456mm6878'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = 'Im3ff869aem10a0d04d456mm6838' name = 'spacializeLengthChangeMatrix'
+ visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = 'Im3ff869aem10a0d04d456mm6813' name = 'mat' isSpecification = 'false'
+ kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = 'Im75a362c1m1095378ef06mm7aa5'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = 'Im3ff869aem10a0d04d456mm6812' name = 'return' isSpecification = 'false'
+ kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = 'Im75a362c1m1095378ef06mm7aa5'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = 'Im3ff869aem10a0d04d456mm6836' isSpecification = 'false'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = 'Im3ff869aem10a0d04d456mm6837' language = 'java'
+ body = ''/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = 'Im3ff869aem10a0d04d456mm6838'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = 'Im3ff869aem10a0d04d456mm67eb' name = 'computeLengthChangeMatrix'
+ visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = 'Im3ff869aem10a0d04d456mm67d3' name = 'return' isSpecification = 'false'
+ kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = 'Im75a362c1m1095378ef06mm7aa5'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = 'Im3ff869aem10a0d04d456mm67e9' isSpecification = 'false'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = 'Im3ff869aem10a0d04d456mm67ea' language = 'java'
+ body = ''/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = 'Im3ff869aem10a0d04d456mm67eb'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = 'Im3ff869aem10a0d04d456mm67c6' name = 'getGroupChangeMatrix'
+ visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = 'Im3ff869aem10a0d04d456mm6666' name = 'month' isSpecification = 'false'
+ kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = 'Im75a362c1m1095378ef06mm7a73'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = 'Im3ff869aem10a0d04d456mm6665' name = 'return' isSpecification = 'false'
+ kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = 'Im75a362c1m1095378ef06mm7aa5'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = 'Im3ff869aem10a0d04d456mm67c4' isSpecification = 'false'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = 'Im3ff869aem10a0d04d456mm67c5' language = 'java'
+ body = ''/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = 'Im3ff869aem10a0d04d456mm67c6'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = 'Im3ff869aem10a0d04d456mm67a1' name = 'getMigrationMatrix'
+ visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = 'Im3ff869aem10a0d04d456mm65d1' isSpecification = 'false'>
+ <UML:TaggedValue.dataValue><p>Matrix [(group, zone(left)) x (group, zone(reached))]</p></UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = 'Im75a362c1m1095378ef06mm7aaf'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = 'Im3ff869aem10a0d04d456mm6789' name = 'month' isSpecification = 'false'
+ kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = 'Im75a362c1m1095378ef06mm7a73'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = 'Im3ff869aem10a0d04d456mm6788' name = 'N' isSpecification = 'false'
+ kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = 'Im75a362c1m1095378ef06mm7aa5'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = 'Im3ff869aem10a0d04d456mm6787' name = 'return' isSpecification = 'false'
+ kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = 'Im75a362c1m1095378ef06mm7aa5'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = 'Im3ff869aem10a0d04d456mm679f' isSpecification = 'false'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = 'Im3ff869aem10a0d04d456mm67a0' language = 'java'
+ body = ''/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = 'Im3ff869aem10a0d04d456mm67a1'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = 'Im3ff869aem10a0d04d456mm6738' name = 'getEmigrationMatrix'
+ visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = 'Im3ff869aem10a0d04d456mm65d0' isSpecification = 'false'>
+ <UML:TaggedValue.dataValue><p>Matrix [(group, zone(left)) x (group, zone(left))]</p></UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = 'Im75a362c1m1095378ef06mm7aaf'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = 'Im3ff869aem10a0d04d456mm6720' name = 'month' isSpecification = 'false'
+ kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = 'Im75a362c1m1095378ef06mm7a73'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = 'Im3ff869aem10a0d04d456mm671f' name = 'N' isSpecification = 'false'
+ kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = 'Im75a362c1m1095378ef06mm7aa5'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = 'Im3ff869aem10a0d04d456mm671e' name = 'return' isSpecification = 'false'
+ kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = 'Im75a362c1m1095378ef06mm7aa5'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = 'Im3ff869aem10a0d04d456mm6736' isSpecification = 'false'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = 'Im3ff869aem10a0d04d456mm6737' language = 'java'
+ body = ''/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = 'Im3ff869aem10a0d04d456mm6738'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = 'Im3ff869aem10a0d04d456mm66cf' name = 'getImmigrationMatrix'
+ visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = 'Im3ff869aem10a0d04d456mm65cf' isSpecification = 'false'>
+ <UML:TaggedValue.dataValue><p>Matrix [(group, zone(reached)) x (group, zone(reached))]</p></UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = 'Im75a362c1m1095378ef06mm7aaf'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = 'Im3ff869aem10a0d04d456mm66b7' name = 'month' isSpecification = 'false'
+ kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = 'Im75a362c1m1095378ef06mm7a73'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = 'Im3ff869aem10a0d04d456mm66b6' name = 'N' isSpecification = 'false'
+ kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = 'Im75a362c1m1095378ef06mm7aa5'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = 'Im3ff869aem10a0d04d456mm66b5' name = 'return' isSpecification = 'false'
+ kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = 'Im75a362c1m1095378ef06mm7aa5'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = 'Im3ff869aem10a0d04d456mm66cd' isSpecification = 'false'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = 'Im3ff869aem10a0d04d456mm66ce' language = 'java'
+ body = ''/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = 'Im3ff869aem10a0d04d456mm66cf'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = 'Im3ff869aem10a0d04d456mm663e' name = 'getReproductionMatrix'
+ visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = 'Im3ff869aem10a0d04d456mm65ce' isSpecification = 'false'>
+ <UML:TaggedValue.dataValue><p>Matrix [zone(repro)]</p></UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = 'Im75a362c1m1095378ef06mm7aaf'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = 'Im3ff869aem10a0d04d456mm6626' name = 'month' isSpecification = 'false'
+ kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = 'Im75a362c1m1095378ef06mm7a73'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = 'Im3ff869aem10a0d04d456mm6625' name = 'N' isSpecification = 'false'
+ kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = 'Im75a362c1m1095378ef06mm7aa5'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = 'Im3ff869aem10a0d04d456mm6624' name = 'return' isSpecification = 'false'
+ kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = 'Im75a362c1m1095378ef06mm7aa5'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = 'Im3ff869aem10a0d04d456mm663c' isSpecification = 'false'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = 'Im3ff869aem10a0d04d456mm663d' language = 'java'
+ body = ''/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = 'Im3ff869aem10a0d04d456mm663e'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = 'I3988abbcm10c212fd60fmm6934' name = 'unspacializeLengthChangeMatrix'
+ visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = 'I3988abbcm10c212fd60fmm691c' name = 'mat' isSpecification = 'false'
+ kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = 'Im75a362c1m1095378ef06mm7aa5'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = 'I3988abbcm10c212fd60fmm691b' name = 'return' isSpecification = 'false'
+ kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = 'Im75a362c1m1095378ef06mm7aa5'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = 'I3988abbcm10c212fd60fmm6932' isSpecification = 'false'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = 'I3988abbcm10c212fd60fmm6933' language = 'java'
+ body = ''/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = 'I3988abbcm10c212fd60fmm6934'/>
+ </UML:Method.specification>
+ </UML:Method>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Association xmi.id = 'Im75a362c1m1095378ef06mm7c65' isSpecification = 'false'
+ isRoot = 'false' isLeaf = 'false' isAbstract = 'false'>
+ <UML:Association.connection>
+ <UML:AssociationEnd xmi.id = 'Im75a362c1m1095378ef06mm7c6d' visibility = 'public'
+ isSpecification = 'false' isNavigable = 'true' ordering = 'unordered' aggregation = 'composite'
+ targetScope = 'instance' changeability = 'changeable'>
+ <UML:AssociationEnd.multiplicity>
+ <UML:Multiplicity xmi.id = 'Im75a362c1m1095378ef06mm7c6f'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = 'Im75a362c1m1095378ef06mm7c71' lower = '1'
+ upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:AssociationEnd.multiplicity>
+ <UML:AssociationEnd.participant>
+ <UML:Class xmi.idref = 'Im75a362c1m1095378ef06mm7dc1'/>
+ </UML:AssociationEnd.participant>
+ </UML:AssociationEnd>
+ <UML:AssociationEnd xmi.id = 'Im75a362c1m1095378ef06mm7c67' visibility = 'public'
+ isSpecification = 'false' isNavigable = 'true' ordering = 'unordered' aggregation = 'none'
+ targetScope = 'instance' changeability = 'changeable'>
+ <UML:AssociationEnd.multiplicity>
+ <UML:Multiplicity xmi.id = 'Im75a362c1m1095378ef06mm7c69'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = 'Im75a362c1m1095378ef06mm7c6b' lower = '0'
+ upper = '-1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:AssociationEnd.multiplicity>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = 'I4b51df9bm109d715de8dmm6962' isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>firstMonth, lastMonth</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = 'I6fd0e703m109cdb8199dmm6963'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:AssociationEnd.participant>
+ <UML:Class xmi.idref = 'Im75a362c1m1095378ef06mm7c73'/>
+ </UML:AssociationEnd.participant>
+ </UML:AssociationEnd>
+ </UML:Association.connection>
+ </UML:Association>
+ <UML:Association xmi.id = 'Im75a362c1m1095378ef06mm7c49' isSpecification = 'false'
+ isRoot = 'false' isLeaf = 'false' isAbstract = 'false'>
+ <UML:Association.connection>
+ <UML:AssociationEnd xmi.id = 'Im75a362c1m1095378ef06mm7c51' visibility = 'public'
+ isSpecification = 'false' isNavigable = 'true' ordering = 'unordered' aggregation = 'composite'
+ targetScope = 'instance' changeability = 'changeable'>
+ <UML:AssociationEnd.multiplicity>
+ <UML:Multiplicity xmi.id = 'Im75a362c1m1095378ef06mm7c53'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = 'Im75a362c1m1095378ef06mm7c55' lower = '1'
+ upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:AssociationEnd.multiplicity>
+ <UML:AssociationEnd.participant>
+ <UML:Class xmi.idref = 'Im75a362c1m1095378ef06mm7d4d'/>
+ </UML:AssociationEnd.participant>
+ </UML:AssociationEnd>
+ <UML:AssociationEnd xmi.id = 'Im75a362c1m1095378ef06mm7c4b' visibility = 'public'
+ isSpecification = 'false' isNavigable = 'true' ordering = 'unordered' aggregation = 'none'
+ targetScope = 'instance' changeability = 'changeable'>
+ <UML:AssociationEnd.multiplicity>
+ <UML:Multiplicity xmi.id = 'Im75a362c1m1095378ef06mm7c4d'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = 'Im75a362c1m1095378ef06mm7c4f' lower = '0'
+ upper = '-1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:AssociationEnd.multiplicity>
+ <UML:AssociationEnd.participant>
+ <UML:Class xmi.idref = 'Im75a362c1m1095378ef06mm7dc1'/>
+ </UML:AssociationEnd.participant>
+ </UML:AssociationEnd>
+ </UML:Association.connection>
+ </UML:Association>
+ <UML:Association xmi.id = 'Im75a362c1m1095378ef06mm7c3b' isSpecification = 'false'
+ isRoot = 'false' isLeaf = 'false' isAbstract = 'false'>
+ <UML:Association.connection>
+ <UML:AssociationEnd xmi.id = 'Im75a362c1m1095378ef06mm7c43' visibility = 'public'
+ isSpecification = 'false' isNavigable = 'true' ordering = 'unordered' aggregation = 'composite'
+ targetScope = 'instance' changeability = 'changeable'>
+ <UML:AssociationEnd.multiplicity>
+ <UML:Multiplicity xmi.id = 'Im75a362c1m1095378ef06mm7c45'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = 'Im75a362c1m1095378ef06mm7c47' lower = '1'
+ upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:AssociationEnd.multiplicity>
+ <UML:AssociationEnd.participant>
+ <UML:Class xmi.idref = 'Im75a362c1m1095378ef06mm7ebd'/>
+ </UML:AssociationEnd.participant>
+ </UML:AssociationEnd>
+ <UML:AssociationEnd xmi.id = 'Im75a362c1m1095378ef06mm7c3d' visibility = 'public'
+ isSpecification = 'false' isNavigable = 'true' ordering = 'unordered' aggregation = 'none'
+ targetScope = 'instance' changeability = 'changeable'>
+ <UML:AssociationEnd.multiplicity>
+ <UML:Multiplicity xmi.id = 'Im75a362c1m1095378ef06mm7c3f'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = 'Im75a362c1m1095378ef06mm7c41' lower = '0'
+ upper = '-1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:AssociationEnd.multiplicity>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = 'I6fd0e703m109cdb8199dmm695f' isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>firstMonth, lastMonth</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = 'I6fd0e703m109cdb8199dmm6963'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:AssociationEnd.participant>
+ <UML:Class xmi.idref = 'Im75a362c1m1095378ef06mm7c8d'/>
+ </UML:AssociationEnd.participant>
+ </UML:AssociationEnd>
+ </UML:Association.connection>
+ </UML:Association>
+ <UML:Association xmi.id = 'Im75a362c1m1095378ef06mm7c1f' isSpecification = 'false'
+ isRoot = 'false' isLeaf = 'false' isAbstract = 'false'>
+ <UML:Association.connection>
+ <UML:AssociationEnd xmi.id = 'Im75a362c1m1095378ef06mm7c27' visibility = 'public'
+ isSpecification = 'false' isNavigable = 'false' ordering = 'unordered' aggregation = 'none'
+ targetScope = 'instance' changeability = 'changeable'>
+ <UML:AssociationEnd.multiplicity>
+ <UML:Multiplicity xmi.id = 'Im75a362c1m1095378ef06mm7c29'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = 'Im75a362c1m1095378ef06mm7c2b' lower = '0'
+ upper = '-1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:AssociationEnd.multiplicity>
+ <UML:AssociationEnd.participant>
+ <UML:Class xmi.idref = 'Im75a362c1m1095378ef06mm7edd'/>
+ </UML:AssociationEnd.participant>
+ </UML:AssociationEnd>
+ <UML:AssociationEnd xmi.id = 'Im75a362c1m1095378ef06mm7c21' visibility = 'public'
+ isSpecification = 'false' isNavigable = 'true' ordering = 'unordered' aggregation = 'none'
+ targetScope = 'instance' changeability = 'changeable'>
+ <UML:AssociationEnd.multiplicity>
+ <UML:Multiplicity xmi.id = 'Im75a362c1m1095378ef06mm7c23'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = 'Im75a362c1m1095378ef06mm7c25' lower = '1'
+ upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:AssociationEnd.multiplicity>
+ <UML:AssociationEnd.participant>
+ <UML:Class xmi.idref = 'Im75a362c1m1095378ef06mm7ef7'/>
+ </UML:AssociationEnd.participant>
+ </UML:AssociationEnd>
+ </UML:Association.connection>
+ </UML:Association>
+ <UML:Class xmi.id = 'Im75a362c1m1095378ef06mm7b9b' name = 'ExportScript'
+ visibility = 'public' isSpecification = 'false' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false' isActive = 'false'>
+ <UML:Classifier.feature>
+ <UML:Attribute xmi.id = 'Im75a362c1m1095378ef06mm7b9f' name = 'name' visibility = 'private'
+ isSpecification = 'false' ownerScope = 'instance' changeability = 'changeable'>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref = 'Im75a362c1m1095378ef06mm7b01'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = 'Im75a362c1m1095378ef06mm7b9d' name = 'code' visibility = 'private'
+ isSpecification = 'false' ownerScope = 'instance' changeability = 'changeable'>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = 'Im75a362c1m1095378ef06mm7afd'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Class xmi.id = 'Im75a362c1m1095378ef06mm7b25' name = 'Season' visibility = 'public'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = 'Im75a362c1m1095378ef06mm7a5f'/>
+ </UML:ModelElement.stereotype>
+ <UML:Classifier.feature>
+ <UML:Operation xmi.id = 'Im75a362c1m1095378ef06mm7b35' name = 'getMonths'
+ visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = 'Im75a362c1m1095378ef06mm7b37' name = 'return' isSpecification = 'false'
+ kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Interface xmi.idref = 'Im75a362c1m1095378ef06mm7ac1'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = 'Im75a362c1m1095378ef06mm7b31' isSpecification = 'false'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = 'Im75a362c1m1095378ef06mm7b33' language = 'java'
+ body = ''/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = 'Im75a362c1m1095378ef06mm7b35'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = 'Im75a362c1m1095378ef06mm7b2b' name = 'setMonths'
+ visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = 'Im75a362c1m1095378ef06mm7b2f' name = 'listMonth'
+ isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Interface xmi.idref = 'Im75a362c1m1095378ef06mm7ac1'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = 'Im75a362c1m1095378ef06mm7b2d' name = 'return' isSpecification = 'false'
+ kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType xmi.idref = 'Im75a362c1m1095378ef06mm7aff'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = 'Im75a362c1m1095378ef06mm7b27' isSpecification = 'false'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = 'Im75a362c1m1095378ef06mm7b29' language = 'java'
+ body = ''/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = 'Im75a362c1m1095378ef06mm7b2b'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = 'I12c12b7cm10d3828cd40mm678b' name = 'containsMonth'
+ visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = 'I12c12b7cm10d3828cd40mm675f' name = 'month' isSpecification = 'false'
+ kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = 'Im75a362c1m1095378ef06mm7a73'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = 'I12c12b7cm10d3828cd40mm675e' name = 'return' isSpecification = 'false'
+ kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType xmi.idref = 'Im75a362c1m1095378ef06mm7af7'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = 'I12c12b7cm10d3828cd40mm6789' isSpecification = 'false'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = 'I12c12b7cm10d3828cd40mm678a' language = 'java'
+ body = ''/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = 'I12c12b7cm10d3828cd40mm678b'/>
+ </UML:Method.specification>
+ </UML:Method>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Association xmi.id = 'Im75a362c1m1095378ef06mm7b17' isSpecification = 'false'
+ isRoot = 'false' isLeaf = 'false' isAbstract = 'false'>
+ <UML:Association.connection>
+ <UML:AssociationEnd xmi.id = 'Im75a362c1m1095378ef06mm7b1f' visibility = 'public'
+ isSpecification = 'false' isNavigable = 'false' ordering = 'unordered' aggregation = 'none'
+ targetScope = 'instance' changeability = 'changeable'>
+ <UML:AssociationEnd.multiplicity>
+ <UML:Multiplicity xmi.id = 'Im75a362c1m1095378ef06mm7b21'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = 'Im75a362c1m1095378ef06mm7b23' lower = '1'
+ upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:AssociationEnd.multiplicity>
+ <UML:AssociationEnd.participant>
+ <UML:Class xmi.idref = 'Im75a362c1m1095378ef06mm7b25'/>
+ </UML:AssociationEnd.participant>
+ </UML:AssociationEnd>
+ <UML:AssociationEnd xmi.id = 'Im75a362c1m1095378ef06mm7b19' name = 'firstMonth'
+ visibility = 'public' isSpecification = 'false' isNavigable = 'true' ordering = 'unordered'
+ aggregation = 'none' targetScope = 'instance' changeability = 'changeable'>
+ <UML:AssociationEnd.multiplicity>
+ <UML:Multiplicity xmi.id = 'Im75a362c1m1095378ef06mm7b1b'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = 'Im75a362c1m1095378ef06mm7b1d' lower = '1'
+ upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:AssociationEnd.multiplicity>
+ <UML:AssociationEnd.participant>
+ <UML:Class xmi.idref = 'Im75a362c1m1095378ef06mm7a73'/>
+ </UML:AssociationEnd.participant>
+ </UML:AssociationEnd>
+ </UML:Association.connection>
+ </UML:Association>
+ <UML:Association xmi.id = 'Im75a362c1m1095378ef06mm7b09' isSpecification = 'false'
+ isRoot = 'false' isLeaf = 'false' isAbstract = 'false'>
+ <UML:Association.connection>
+ <UML:AssociationEnd xmi.id = 'Im75a362c1m1095378ef06mm7b11' visibility = 'public'
+ isSpecification = 'false' isNavigable = 'false' ordering = 'unordered' aggregation = 'none'
+ targetScope = 'instance' changeability = 'changeable'>
+ <UML:AssociationEnd.multiplicity>
+ <UML:Multiplicity xmi.id = 'Im75a362c1m1095378ef06mm7b13'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = 'Im75a362c1m1095378ef06mm7b15' lower = '1'
+ upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:AssociationEnd.multiplicity>
+ <UML:AssociationEnd.participant>
+ <UML:Class xmi.idref = 'Im75a362c1m1095378ef06mm7b25'/>
+ </UML:AssociationEnd.participant>
+ </UML:AssociationEnd>
+ <UML:AssociationEnd xmi.id = 'Im75a362c1m1095378ef06mm7b0b' name = 'lastMonth'
+ visibility = 'public' isSpecification = 'false' isNavigable = 'true' ordering = 'unordered'
+ aggregation = 'none' targetScope = 'instance' changeability = 'changeable'>
+ <UML:AssociationEnd.multiplicity>
+ <UML:Multiplicity xmi.id = 'Im75a362c1m1095378ef06mm7b0d'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = 'Im75a362c1m1095378ef06mm7b0f' lower = '1'
+ upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:AssociationEnd.multiplicity>
+ <UML:AssociationEnd.participant>
+ <UML:Class xmi.idref = 'Im75a362c1m1095378ef06mm7a73'/>
+ </UML:AssociationEnd.participant>
+ </UML:AssociationEnd>
+ </UML:Association.connection>
+ </UML:Association>
+ <UML:Generalization xmi.id = 'Im75a362c1m1095378ef06mm7b07' isSpecification = 'false'>
+ <UML:Generalization.child>
+ <UML:Class xmi.idref = 'Im75a362c1m1095378ef06mm7c8d'/>
+ </UML:Generalization.child>
+ <UML:Generalization.parent>
+ <UML:Class xmi.idref = 'Im75a362c1m1095378ef06mm7b25'/>
+ </UML:Generalization.parent>
+ </UML:Generalization>
+ <UML:Generalization xmi.id = 'Im75a362c1m1095378ef06mm7b05' isSpecification = 'false'>
+ <UML:Generalization.child>
+ <UML:Class xmi.idref = 'Im75a362c1m1095378ef06mm7c73'/>
+ </UML:Generalization.child>
+ <UML:Generalization.parent>
+ <UML:Class xmi.idref = 'Im75a362c1m1095378ef06mm7b25'/>
+ </UML:Generalization.parent>
+ </UML:Generalization>
+ <UML:Class xmi.id = 'Im75a362c1m1095378ef06mm539f' name = 'Zone' visibility = 'public'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = 'Im75a362c1m1095378ef06mm7a5f'/>
+ </UML:ModelElement.stereotype>
+ <UML:Classifier.feature>
+ <UML:Attribute xmi.id = 'Im75a362c1m1095378ef06mm538c' name = 'name' visibility = 'private'
+ isSpecification = 'false' ownerScope = 'instance' changeability = 'changeable'>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = 'Im75a362c1m1095378ef06mm7afd'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = 'Im75a362c1m1095378ef06mm537b' name = 'comment'
+ visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable'>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = 'Im75a362c1m1095378ef06mm7afd'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Operation xmi.id = 'Im75a362c1m1095378ef06mm536a' name = 'getFisheryRegion'
+ visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = 'Im75a362c1m1095378ef06mm5352' name = 'return' isSpecification = 'false'
+ kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = 'Im75a362c1m1095378ef06mm7e17'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = 'Im75a362c1m1095378ef06mm5368' isSpecification = 'false'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = 'Im75a362c1m1095378ef06mm5369' language = 'java'
+ body = ''/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = 'Im75a362c1m1095378ef06mm536a'/>
+ </UML:Method.specification>
+ </UML:Method>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Association xmi.id = 'Im75a362c1m1095378ef06mm7b8d' isSpecification = 'false'
+ isRoot = 'false' isLeaf = 'false' isAbstract = 'false'>
+ <UML:Association.connection>
+ <UML:AssociationEnd xmi.id = 'Im75a362c1m1095378ef06mm7b95' visibility = 'public'
+ isSpecification = 'false' isNavigable = 'false' ordering = 'unordered' aggregation = 'none'
+ targetScope = 'instance' changeability = 'changeable'>
+ <UML:AssociationEnd.multiplicity>
+ <UML:Multiplicity xmi.id = 'Im75a362c1m1095378ef06mm7b97'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = 'Im75a362c1m1095378ef06mm7b99' lower = '0'
+ upper = '-1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:AssociationEnd.multiplicity>
+ <UML:AssociationEnd.participant>
+ <UML:Class xmi.idref = 'Im75a362c1m1095378ef06mm539f'/>
+ </UML:AssociationEnd.participant>
+ </UML:AssociationEnd>
+ <UML:AssociationEnd xmi.id = 'Im75a362c1m1095378ef06mm7b8f' visibility = 'public'
+ isSpecification = 'false' isNavigable = 'true' ordering = 'ordered' aggregation = 'none'
+ targetScope = 'instance' changeability = 'changeable'>
+ <UML:AssociationEnd.multiplicity>
+ <UML:Multiplicity xmi.id = 'Im75a362c1m1095378ef06mm7b91'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = 'Im75a362c1m1095378ef06mm7b93' lower = '0'
+ upper = '-1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:AssociationEnd.multiplicity>
+ <UML:AssociationEnd.participant>
+ <UML:Class xmi.idref = 'Im75a362c1m1095378ef06mm7f29'/>
+ </UML:AssociationEnd.participant>
+ </UML:AssociationEnd>
+ </UML:Association.connection>
+ </UML:Association>
+ <UML:Association xmi.id = 'Im75a362c1m1095378ef06mm7b7f' isSpecification = 'false'
+ isRoot = 'false' isLeaf = 'false' isAbstract = 'false'>
+ <UML:Association.connection>
+ <UML:AssociationEnd xmi.id = 'Im75a362c1m1095378ef06mm7b87' visibility = 'public'
+ isSpecification = 'false' isNavigable = 'false' ordering = 'unordered' aggregation = 'none'
+ targetScope = 'instance' changeability = 'changeable'>
+ <UML:AssociationEnd.multiplicity>
+ <UML:Multiplicity xmi.id = 'I7d66fd4cm1097d2a905dmm6992'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = 'I7d66fd4cm1097d2a905dmm6991' lower = '0'
+ upper = '-1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:AssociationEnd.multiplicity>
+ <UML:AssociationEnd.participant>
+ <UML:Class xmi.idref = 'Im75a362c1m1095378ef06mm7c8d'/>
+ </UML:AssociationEnd.participant>
+ </UML:AssociationEnd>
+ <UML:AssociationEnd xmi.id = 'Im75a362c1m1095378ef06mm7b81' visibility = 'public'
+ isSpecification = 'false' isNavigable = 'true' ordering = 'unordered' aggregation = 'none'
+ targetScope = 'instance' changeability = 'changeable'>
+ <UML:AssociationEnd.multiplicity>
+ <UML:Multiplicity xmi.id = 'Im75a362c1m1095378ef06mm7b83'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = 'Im75a362c1m1095378ef06mm7b85' lower = '0'
+ upper = '-1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:AssociationEnd.multiplicity>
+ <UML:AssociationEnd.participant>
+ <UML:Class xmi.idref = 'Im75a362c1m1095378ef06mm539f'/>
+ </UML:AssociationEnd.participant>
+ </UML:AssociationEnd>
+ </UML:Association.connection>
+ </UML:Association>
+ <UML:Association xmi.id = 'Im75a362c1m1095378ef06mm7b55' isSpecification = 'false'
+ isRoot = 'false' isLeaf = 'false' isAbstract = 'false'>
+ <UML:Association.connection>
+ <UML:AssociationEnd xmi.id = 'Im75a362c1m1095378ef06mm7b5d' visibility = 'public'
+ isSpecification = 'false' isNavigable = 'false' ordering = 'unordered' aggregation = 'none'
+ targetScope = 'instance' changeability = 'changeable'>
+ <UML:AssociationEnd.multiplicity>
+ <UML:Multiplicity xmi.id = 'I7d66fd4cm1097d2a905dmm6990'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = 'I7d66fd4cm1097d2a905dmm698f' lower = '0'
+ upper = '-1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:AssociationEnd.multiplicity>
+ <UML:AssociationEnd.participant>
+ <UML:Class xmi.idref = 'Im75a362c1m1095378ef06mm7dc1'/>
+ </UML:AssociationEnd.participant>
+ </UML:AssociationEnd>
+ <UML:AssociationEnd xmi.id = 'Im75a362c1m1095378ef06mm7b57' name = 'reproductionZone'
+ visibility = 'public' isSpecification = 'false' isNavigable = 'true' ordering = 'ordered'
+ aggregation = 'none' targetScope = 'instance' changeability = 'changeable'>
+ <UML:AssociationEnd.multiplicity>
+ <UML:Multiplicity xmi.id = 'Im75a362c1m1095378ef06mm7b59'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = 'Im75a362c1m1095378ef06mm7b5b' lower = '1'
+ upper = '-1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:AssociationEnd.multiplicity>
+ <UML:AssociationEnd.participant>
+ <UML:Class xmi.idref = 'Im75a362c1m1095378ef06mm539f'/>
+ </UML:AssociationEnd.participant>
+ </UML:AssociationEnd>
+ </UML:Association.connection>
+ </UML:Association>
+ <UML:Association xmi.id = 'Im75a362c1m1095378ef06mm7b39' isSpecification = 'false'
+ isRoot = 'false' isLeaf = 'false' isAbstract = 'false'>
+ <UML:Association.connection>
+ <UML:AssociationEnd xmi.id = 'Im75a362c1m1095378ef06mm7b41' visibility = 'public'
+ isSpecification = 'false' isNavigable = 'false' ordering = 'unordered' aggregation = 'none'
+ targetScope = 'instance' changeability = 'changeable'>
+ <UML:AssociationEnd.multiplicity>
+ <UML:Multiplicity xmi.id = 'I7d66fd4cm1097d2a905dmm698c'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = 'I7d66fd4cm1097d2a905dmm698b' lower = '0'
+ upper = '-1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:AssociationEnd.multiplicity>
+ <UML:AssociationEnd.participant>
+ <UML:Class xmi.idref = 'Im75a362c1m1095378ef06mm7dc1'/>
+ </UML:AssociationEnd.participant>
+ </UML:AssociationEnd>
+ <UML:AssociationEnd xmi.id = 'Im75a362c1m1095378ef06mm7b3b' name = 'populationZone'
+ visibility = 'public' isSpecification = 'false' isNavigable = 'true' ordering = 'ordered'
+ aggregation = 'none' targetScope = 'instance' changeability = 'changeable'>
+ <UML:AssociationEnd.multiplicity>
+ <UML:Multiplicity xmi.id = 'Im75a362c1m1095378ef06mm7b3d'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = 'Im75a362c1m1095378ef06mm7b3f' lower = '1'
+ upper = '-1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:AssociationEnd.multiplicity>
+ <UML:AssociationEnd.participant>
+ <UML:Class xmi.idref = 'Im75a362c1m1095378ef06mm539f'/>
+ </UML:AssociationEnd.participant>
+ </UML:AssociationEnd>
+ </UML:Association.connection>
+ </UML:Association>
+ <UML:Association xmi.id = 'Im75a362c1m1095378ef06mm7b47' isSpecification = 'false'
+ isRoot = 'false' isLeaf = 'false' isAbstract = 'false'>
+ <UML:Association.connection>
+ <UML:AssociationEnd xmi.id = 'Im75a362c1m1095378ef06mm7b4f' visibility = 'public'
+ isSpecification = 'false' isNavigable = 'false' ordering = 'unordered' aggregation = 'none'
+ targetScope = 'instance' changeability = 'changeable'>
+ <UML:AssociationEnd.multiplicity>
+ <UML:Multiplicity xmi.id = 'I7d66fd4cm1097d2a905dmm698e'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = 'I7d66fd4cm1097d2a905dmm698d' lower = '0'
+ upper = '-1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:AssociationEnd.multiplicity>
+ <UML:AssociationEnd.participant>
+ <UML:Class xmi.idref = 'Im75a362c1m1095378ef06mm7dc1'/>
+ </UML:AssociationEnd.participant>
+ </UML:AssociationEnd>
+ <UML:AssociationEnd xmi.id = 'Im75a362c1m1095378ef06mm7b49' name = 'recruitmentZone'
+ visibility = 'public' isSpecification = 'false' isNavigable = 'true' ordering = 'ordered'
+ aggregation = 'none' targetScope = 'instance' changeability = 'changeable'>
+ <UML:AssociationEnd.multiplicity>
+ <UML:Multiplicity xmi.id = 'Im75a362c1m1095378ef06mm7b4b'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = 'Im75a362c1m1095378ef06mm7b4d' lower = '1'
+ upper = '-1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:AssociationEnd.multiplicity>
+ <UML:AssociationEnd.participant>
+ <UML:Class xmi.idref = 'Im75a362c1m1095378ef06mm539f'/>
+ </UML:AssociationEnd.participant>
+ </UML:AssociationEnd>
+ </UML:Association.connection>
+ </UML:Association>
+ <UML:Class xmi.id = 'Im75a362c1m1095378ef06mm7a63' name = 'Equation' visibility = 'public'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'>
+ <UML:ModelElement.clientDependency>
+ <UML:Abstraction xmi.idref = 'Im75a362c1m1095378ef06mm52a8'/>
+ </UML:ModelElement.clientDependency>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = 'Im75a362c1m1095378ef06mm7a5f'/>
+ </UML:ModelElement.stereotype>
+ <UML:Namespace.ownedElement>
+ <UML:Actor xmi.id = 'I3988abbcm10c212fd60fmm68bc' name = 'java.lang.Class'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'/>
+ </UML:Namespace.ownedElement>
+ <UML:Classifier.feature>
+ <UML:Attribute xmi.id = 'Im75a362c1m1095378ef06mm7a71' name = 'name' visibility = 'private'
+ isSpecification = 'false' ownerScope = 'instance' changeability = 'changeable'>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = 'Im75a362c1m1095378ef06mm7afd'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = 'Im75a362c1m1095378ef06mm7a6f' name = 'content'
+ visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable'>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = 'Im75a362c1m1095378ef06mm7afd'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Operation xmi.id = 'Im75a362c1m1095378ef06mm7a69' name = 'evaluate'
+ visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = 'Im75a362c1m1095378ef06mm7a6d' name = 'param' isSpecification = 'false'
+ kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Interface xmi.idref = 'Im75a362c1m1095378ef06mm50c8'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = 'Im75a362c1m1095378ef06mm7a6b' name = 'return' isSpecification = 'false'
+ kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType xmi.idref = 'Im75a362c1m1095378ef06mm7af9'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = 'Im75a362c1m1095378ef06mm7a65' isSpecification = 'false'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = 'Im75a362c1m1095378ef06mm7a67' language = 'java'
+ body = ''/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = 'Im75a362c1m1095378ef06mm7a69'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Attribute xmi.id = 'Im75a362c1m1095378ef06mm5220' name = 'category'
+ visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable'>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = 'Im75a362c1m1095378ef06mm7afd'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Operation xmi.id = 'Im75a362c1m1095378ef06mm520f' name = 'evaluate'
+ visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = 'Im75a362c1m1095378ef06mm5164' name = 'name' isSpecification = 'false'
+ kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = 'Im75a362c1m1095378ef06mm7afd'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = 'Im75a362c1m1095378ef06mm5163' name = 'value' isSpecification = 'false'
+ kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = 'Im75a362c1m1095378ef06mm7aeb'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = 'Im75a362c1m1095378ef06mm5162' name = '... others'
+ isSpecification = 'false' kind = 'in'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = 'Im75a362c1m1095378ef06mm7aeb'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = 'Im75a362c1m1095378ef06mm5161' name = 'return' isSpecification = 'false'
+ kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType xmi.idref = 'Im75a362c1m1095378ef06mm7af9'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = 'Im75a362c1m1095378ef06mm520d' isSpecification = 'false'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = 'Im75a362c1m1095378ef06mm520e' language = 'java'
+ body = ''/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = 'Im75a362c1m1095378ef06mm520f'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Attribute xmi.id = 'I3988abbcm10c212fd60fmm68df' name = 'language'
+ visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable'>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = 'Im75a362c1m1095378ef06mm7afd'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = 'I3988abbcm10c212fd60fmm68ce' name = 'javaInterface'
+ visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable'>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = 'I3988abbcm10c212fd60fmm68bb'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Interface xmi.id = 'Im75a362c1m1095378ef06mm52bd' name = 'Formule'
+ visibility = 'public' isSpecification = 'false' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:Classifier.feature>
+ <UML:Operation xmi.id = 'Im75a362c1m1095378ef06mm528f' name = 'getName'
+ visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = 'Im75a362c1m1095378ef06mm5277' name = 'return' isSpecification = 'false'
+ kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = 'Im75a362c1m1095378ef06mm7afd'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = 'Im75a362c1m1095378ef06mm528d' isSpecification = 'false'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = 'Im75a362c1m1095378ef06mm528e' language = 'java'
+ body = ''/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = 'Im75a362c1m1095378ef06mm528f'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = 'Im75a362c1m1095378ef06mm526a' name = 'getCategory'
+ visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = 'Im75a362c1m1095378ef06mm5252' name = 'return' isSpecification = 'false'
+ kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = 'Im75a362c1m1095378ef06mm7afd'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = 'Im75a362c1m1095378ef06mm5268' isSpecification = 'false'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = 'Im75a362c1m1095378ef06mm5269' language = 'java'
+ body = ''/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = 'Im75a362c1m1095378ef06mm526a'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = 'Im75a362c1m1095378ef06mm5245' name = 'getContent'
+ visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = 'Im75a362c1m1095378ef06mm522d' name = 'return' isSpecification = 'false'
+ kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = 'Im75a362c1m1095378ef06mm7afd'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = 'Im75a362c1m1095378ef06mm5243' isSpecification = 'false'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = 'Im75a362c1m1095378ef06mm5244' language = 'java'
+ body = ''/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = 'Im75a362c1m1095378ef06mm5245'/>
+ </UML:Method.specification>
+ </UML:Method>
+ </UML:Classifier.feature>
+ </UML:Interface>
+ <UML:Abstraction xmi.id = 'Im75a362c1m1095378ef06mm52a8' isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = 'Im75a362c1m1095378ef06mm7ab5'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Class xmi.idref = 'Im75a362c1m1095378ef06mm7a63'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Interface xmi.idref = 'Im75a362c1m1095378ef06mm52bd'/>
+ </UML:Dependency.supplier>
+ </UML:Abstraction>
+ <UML:Association xmi.id = 'I4b51df9bm109d715de8dmm6983' isSpecification = 'false'
+ isRoot = 'false' isLeaf = 'false' isAbstract = 'false'>
+ <UML:Association.connection>
+ <UML:AssociationEnd xmi.id = 'I4b51df9bm109d715de8dmm6989' visibility = 'public'
+ isSpecification = 'false' isNavigable = 'false' ordering = 'unordered' aggregation = 'none'
+ targetScope = 'instance' changeability = 'changeable'>
+ <UML:AssociationEnd.multiplicity>
+ <UML:Multiplicity xmi.id = 'I4b51df9bm109d715de8dmm6987'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = 'I4b51df9bm109d715de8dmm6988' lower = '1'
+ upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:AssociationEnd.multiplicity>
+ <UML:AssociationEnd.participant>
+ <UML:Class xmi.idref = 'Im75a362c1m1095378ef06mm7dc1'/>
+ </UML:AssociationEnd.participant>
+ </UML:AssociationEnd>
+ <UML:AssociationEnd xmi.id = 'I4b51df9bm109d715de8dmm6986' name = 'maturityGroup'
+ visibility = 'public' isSpecification = 'false' isNavigable = 'true' ordering = 'unordered'
+ aggregation = 'none' targetScope = 'instance' changeability = 'changeable'>
+ <UML:AssociationEnd.multiplicity>
+ <UML:Multiplicity xmi.id = '127-0-1-1-78ec9054:11ecbd05bf0:-8000:00000000000010A5'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '127-0-1-1-78ec9054:11ecbd05bf0:-8000:00000000000010A4'
+ lower = '0' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:AssociationEnd.multiplicity>
+ <UML:AssociationEnd.participant>
+ <UML:Class xmi.idref = 'Im75a362c1m1095378ef06mm7d71'/>
+ </UML:AssociationEnd.participant>
+ </UML:AssociationEnd>
+ </UML:Association.connection>
+ </UML:Association>
+ <UML:Class xmi.id = 'Im1b146941m10d30239e16mm68ec' name = 'ActiveRule' visibility = 'public'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = 'Im75a362c1m1095378ef06mm7a5f'/>
+ </UML:ModelElement.stereotype>
+ <UML:Classifier.feature>
+ <UML:Attribute xmi.id = 'Im1b146941m10d30239e16mm68d9' name = 'activeRuleDate'
+ visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable'>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = 'Im75a362c1m1095378ef06mm7a9d'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = 'Im1b146941m10d30239e16mm68c8' name = 'name' visibility = 'private'
+ isSpecification = 'false' ownerScope = 'instance' changeability = 'changeable'>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = 'Im75a362c1m1095378ef06mm7afd'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = 'Im1b146941m10d30239e16mm68b7' name = 'param' visibility = 'private'
+ isSpecification = 'false' ownerScope = 'instance' changeability = 'changeable'>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = 'Im75a362c1m1095378ef06mm7afd'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Association xmi.id = 'Im75a362c1m1095378ef06mm7c2d' isSpecification = 'false'
+ isRoot = 'false' isLeaf = 'false' isAbstract = 'false'>
+ <UML:Association.connection>
+ <UML:AssociationEnd xmi.id = 'Im75a362c1m1095378ef06mm7c35' visibility = 'public'
+ isSpecification = 'false' isNavigable = 'true' ordering = 'unordered' aggregation = 'composite'
+ targetScope = 'instance' changeability = 'changeable'>
+ <UML:AssociationEnd.multiplicity>
+ <UML:Multiplicity xmi.id = 'Im75a362c1m1095378ef06mm7c37'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = 'Im75a362c1m1095378ef06mm7c39' lower = '1'
+ upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:AssociationEnd.multiplicity>
+ <UML:AssociationEnd.participant>
+ <UML:Class xmi.idref = 'Im75a362c1m1095378ef06mm7ce5'/>
+ </UML:AssociationEnd.participant>
+ </UML:AssociationEnd>
+ <UML:AssociationEnd xmi.id = 'Im75a362c1m1095378ef06mm7c2f' name = '' visibility = 'public'
+ isSpecification = 'false' isNavigable = 'true' ordering = 'ordered' aggregation = 'none'
+ targetScope = 'instance' changeability = 'changeable'>
+ <UML:AssociationEnd.multiplicity>
+ <UML:Multiplicity xmi.id = 'Im75a362c1m1095378ef06mm7c31'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = 'Im75a362c1m1095378ef06mm7c33' lower = '12'
+ upper = '12'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:AssociationEnd.multiplicity>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = 'I4b51df9bm109d715de8dmm6937' isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>month</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = 'I6fd0e703m109cdb8199dmm6963'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:AssociationEnd.participant>
+ <UML:Class xmi.idref = 'Im75a362c1m1095378ef06mm7ca1'/>
+ </UML:AssociationEnd.participant>
+ </UML:AssociationEnd>
+ </UML:Association.connection>
+ </UML:Association>
+ <UML:Association xmi.id = 'Im3c914382m10e6301c457mm6742' isSpecification = 'false'
+ isRoot = 'false' isLeaf = 'false' isAbstract = 'false'>
+ <UML:Association.connection>
+ <UML:AssociationEnd xmi.id = 'Im3c914382m10e6301c457mm6748' visibility = 'public'
+ isSpecification = 'false' isNavigable = 'false' ordering = 'unordered' aggregation = 'none'
+ targetScope = 'instance' changeability = 'changeable'>
+ <UML:AssociationEnd.multiplicity>
+ <UML:Multiplicity xmi.id = 'Im3c914382m10e6301c457mm6725'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = 'Im3c914382m10e6301c457mm6724' lower = '0'
+ upper = '-1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:AssociationEnd.multiplicity>
+ <UML:AssociationEnd.participant>
+ <UML:Class xmi.idref = 'Im75a362c1m1095378ef06mm7f3f'/>
+ </UML:AssociationEnd.participant>
+ </UML:AssociationEnd>
+ <UML:AssociationEnd xmi.id = 'Im3c914382m10e6301c457mm6745' visibility = 'public'
+ isSpecification = 'false' isNavigable = 'true' ordering = 'unordered' aggregation = 'none'
+ targetScope = 'instance' changeability = 'changeable'>
+ <UML:AssociationEnd.multiplicity>
+ <UML:Multiplicity xmi.id = 'Im3c914382m10e6301c457mm6743'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = 'Im3c914382m10e6301c457mm6744' lower = '1'
+ upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:AssociationEnd.multiplicity>
+ <UML:AssociationEnd.participant>
+ <UML:Class xmi.idref = 'Im75a362c1m1095378ef06mm7f29'/>
+ </UML:AssociationEnd.participant>
+ </UML:AssociationEnd>
+ </UML:Association.connection>
+ </UML:Association>
+ <UML:Class xmi.id = '-64--88-99-118--523393cd:10f4d32d651:-8000:0000000000000AD8'
+ name = 'Set<Cell>' visibility = 'public' isSpecification = 'false'
+ isRoot = 'false' isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ </UML:Namespace.ownedElement>
+ </UML:Package>
+ <UML:Package xmi.id = 'Im75a362c1m1095378ef06mm7ab7' name = 'java' isSpecification = 'false'
+ isRoot = 'false' isLeaf = 'false' isAbstract = 'false'>
+ <UML:Namespace.ownedElement>
+ <UML:Package xmi.id = 'Im75a362c1m1095378ef06mm7ae7' name = 'lang' isSpecification = 'false'
+ isRoot = 'false' isLeaf = 'false' isAbstract = 'false'>
+ <UML:Namespace.ownedElement>
+ <UML:DataType xmi.id = 'Im75a362c1m1095378ef06mm7b01' name = 'int' isSpecification = 'false'
+ isRoot = 'false' isLeaf = 'false' isAbstract = 'false'/>
+ <UML:DataType xmi.id = 'Im75a362c1m1095378ef06mm7aff' name = 'void' isSpecification = 'false'
+ isRoot = 'false' isLeaf = 'false' isAbstract = 'false'/>
+ <UML:Class xmi.id = 'Im75a362c1m1095378ef06mm7afd' name = 'String' isSpecification = 'false'
+ isRoot = 'false' isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ <UML:DataType xmi.id = 'Im75a362c1m1095378ef06mm7afb' name = 'float' isSpecification = 'false'
+ isRoot = 'false' isLeaf = 'false' isAbstract = 'false'/>
+ <UML:DataType xmi.id = 'Im75a362c1m1095378ef06mm7af9' name = 'double' isSpecification = 'false'
+ isRoot = 'false' isLeaf = 'false' isAbstract = 'false'/>
+ <UML:DataType xmi.id = 'Im75a362c1m1095378ef06mm7af7' name = 'boolean' isSpecification = 'false'
+ isRoot = 'false' isLeaf = 'false' isAbstract = 'false'/>
+ <UML:DataType xmi.id = 'Im75a362c1m1095378ef06mm7af5' name = 'int[]' isSpecification = 'false'
+ isRoot = 'false' isLeaf = 'false' isAbstract = 'false'/>
+ <UML:DataType xmi.id = 'Im75a362c1m1095378ef06mm7af3' name = 'double[]'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'/>
+ <UML:Class xmi.id = 'Im75a362c1m1095378ef06mm7af1' name = 'String[]' isSpecification = 'false'
+ isRoot = 'false' isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ <UML:Class xmi.id = 'Im75a362c1m1095378ef06mm7aef' name = 'Double' isSpecification = 'false'
+ isRoot = 'false' isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ <UML:Class xmi.id = 'Im75a362c1m1095378ef06mm7aed' name = 'Integer' isSpecification = 'false'
+ isRoot = 'false' isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ <UML:Class xmi.id = 'Im75a362c1m1095378ef06mm7aeb' name = 'Object' isSpecification = 'false'
+ isRoot = 'false' isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ <UML:Class xmi.id = 'Im75a362c1m1095378ef06mm7ae9' name = 'Exception' isSpecification = 'false'
+ isRoot = 'false' isLeaf = 'false' isAbstract = 'false' isActive = 'false'>
+ <UML:Namespace.ownedElement>
+ <UML:Exception xmi.id = 'Im75a362c1m1095378ef06mm52cf' name = 'exception'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'/>
+ </UML:Namespace.ownedElement>
+ </UML:Class>
+ <UML:Class xmi.id = 'I3988abbcm10c212fd60fmm68bb' name = 'Class' visibility = 'public'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ </UML:Namespace.ownedElement>
+ </UML:Package>
+ <UML:Package xmi.id = 'Im75a362c1m1095378ef06mm7abd' name = 'util' isSpecification = 'false'
+ isRoot = 'false' isLeaf = 'false' isAbstract = 'false'>
+ <UML:Namespace.ownedElement>
+ <UML:Interface xmi.id = 'Im75a362c1m1095378ef06mm7ae5' name = 'Collection'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'/>
+ <UML:Class xmi.id = 'Im75a362c1m1095378ef06mm7ae3' name = 'Hashtable' isSpecification = 'false'
+ isRoot = 'false' isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ <UML:Class xmi.id = 'Im75a362c1m1095378ef06mm7ae1' name = 'HashMap' visibility = 'public'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ <UML:Interface xmi.id = 'Im75a362c1m1095378ef06mm7adf' name = 'Set' isSpecification = 'false'
+ isRoot = 'false' isLeaf = 'false' isAbstract = 'false'/>
+ <UML:Interface xmi.id = 'Im75a362c1m1095378ef06mm7add' name = 'Map' visibility = 'public'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'/>
+ <UML:Interface xmi.id = 'Im75a362c1m1095378ef06mm7adb' name = 'List' isSpecification = 'false'
+ isRoot = 'false' isLeaf = 'false' isAbstract = 'false'/>
+ <UML:Class xmi.id = 'Im75a362c1m1095378ef06mm7ad9' name = 'Date' isSpecification = 'false'
+ isRoot = 'false' isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ <UML:Interface xmi.id = 'Im75a362c1m1095378ef06mm7ad7' name = 'List<String>'
+ visibility = 'public' isSpecification = 'false' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'/>
+ <UML:Interface xmi.id = 'Im75a362c1m1095378ef06mm7ad5' name = 'List<Cell>'
+ visibility = 'public' isSpecification = 'false' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'/>
+ <UML:Interface xmi.id = 'Im75a362c1m1095378ef06mm7ad3' name = 'List<Zone>'
+ visibility = 'public' isSpecification = 'false' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'/>
+ <UML:Interface xmi.id = 'Im75a362c1m1095378ef06mm7ad1' name = 'List<Port>'
+ visibility = 'public' isSpecification = 'false' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'/>
+ <UML:Interface xmi.id = 'Im75a362c1m1095378ef06mm7acf' name = 'List<Gear>'
+ visibility = 'public' isSpecification = 'false' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'/>
+ <UML:Interface xmi.id = 'Im75a362c1m1095378ef06mm7acd' name = 'List<Metier>'
+ visibility = 'public' isSpecification = 'false' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'/>
+ <UML:Interface xmi.id = 'Im75a362c1m1095378ef06mm7acb' name = 'List<TripType>'
+ visibility = 'public' isSpecification = 'false' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'/>
+ <UML:Interface xmi.id = 'Im75a362c1m1095378ef06mm7ac9' name = 'List<VesselType>'
+ visibility = 'public' isSpecification = 'false' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'/>
+ <UML:Interface xmi.id = 'Im75a362c1m1095378ef06mm7ac7' name = 'List<SetOfVessels>'
+ visibility = 'public' isSpecification = 'false' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'/>
+ <UML:Interface xmi.id = 'Im75a362c1m1095378ef06mm7ac5' name = 'List<Strategy>'
+ visibility = 'public' isSpecification = 'false' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'/>
+ <UML:Interface xmi.id = 'Im75a362c1m1095378ef06mm7ac3' name = 'List<Species>'
+ visibility = 'public' isSpecification = 'false' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'/>
+ <UML:Interface xmi.id = 'Im75a362c1m1095378ef06mm7ac1' name = 'List<fr.ifremer.isisfish.types.Month>'
+ visibility = 'public' isSpecification = 'false' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'/>
+ <UML:Interface xmi.id = 'Im75a362c1m1095378ef06mm7abf' name = 'List<ManagementRuleParameter>'
+ visibility = 'public' isSpecification = 'false' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'/>
+ <UML:Interface xmi.id = 'Im75a362c1m1095378ef06mm50c8' name = 'Map<String, Object>'
+ visibility = 'public' isSpecification = 'false' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'/>
+ </UML:Namespace.ownedElement>
+ </UML:Package>
+ <UML:Package xmi.id = 'Im75a362c1m1095378ef06mm7ab9' name = 'util' visibility = 'public'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'>
+ <UML:Namespace.ownedElement>
+ <UML:Class xmi.id = 'Im75a362c1m1095378ef06mm7abb' name = 'ArrayList' visibility = 'public'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ </UML:Namespace.ownedElement>
+ </UML:Package>
+ </UML:Namespace.ownedElement>
+ </UML:Package>
+ <UML:Stereotype xmi.id = 'Im75a362c1m1095378ef06mm7ab5' name = 'realize'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'>
+ <UML:Stereotype.baseClass>Abstraction</UML:Stereotype.baseClass>
+ </UML:Stereotype>
+ <UML:TagDefinition xmi.id = 'Im75a362c1m1095378ef06mm7aaf' name = 'documentation'
+ isSpecification = 'false' tagType = 'String'>
+ <UML:TagDefinition.multiplicity>
+ <UML:Multiplicity xmi.id = 'Im75a362c1m1095378ef06mm7ab1'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = 'Im75a362c1m1095378ef06mm7ab3' lower = '1'
+ upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:TagDefinition.multiplicity>
+ </UML:TagDefinition>
+ <UML:DataType xmi.id = 'Im75a362c1m1095378ef06mm7aad' name = 'List[]' visibility = 'public'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'/>
+ <UML:TagDefinition xmi.id = 'Im75a362c1m1095378ef06mm7aa7' name = 'version'
+ isSpecification = 'false'>
+ <UML:TagDefinition.multiplicity>
+ <UML:Multiplicity xmi.id = 'Im75a362c1m1095378ef06mm7aa9'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = 'Im75a362c1m1095378ef06mm7aab' lower = '1'
+ upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:TagDefinition.multiplicity>
+ </UML:TagDefinition>
+ <UML:Package xmi.id = 'Im75a362c1m1095378ef06mm7aa3' name = 'org.codelutin.math.matrix'
+ visibility = 'public' isSpecification = 'false' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:Namespace.ownedElement>
+ <UML:Class xmi.id = 'Im75a362c1m1095378ef06mm7aa5' name = 'MatrixND' visibility = 'public'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'/>
+ </UML:Namespace.ownedElement>
+ </UML:Package>
+ <UML:Stereotype xmi.id = 'Im75a362c1m1095378ef06mm7aa1' name = 'ordered'
+ visibility = 'public' isSpecification = 'false' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:Stereotype.baseClass>AssociationEnd</UML:Stereotype.baseClass>
+ </UML:Stereotype>
+ <UML:Package xmi.id = 'Im75a362c1m1095378ef06mm7a61' name = 'fr.ifremer.isisfish.types'
+ visibility = 'public' isSpecification = 'false' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:Namespace.ownedElement>
+ <UML:Class xmi.id = 'Im75a362c1m1095378ef06mm7a9d' name = 'Date' visibility = 'public'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'>
+ <UML:Classifier.feature>
+ <UML:Attribute xmi.id = 'Im75a362c1m1095378ef06mm7a9f' name = 'date' visibility = 'private'
+ isSpecification = 'false' ownerScope = 'instance' changeability = 'changeable'>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref = 'Im75a362c1m1095378ef06mm7b01'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Class xmi.id = 'Im75a362c1m1095378ef06mm7a87' name = 'TimeUnit' visibility = 'public'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'>
+ <UML:Classifier.feature>
+ <UML:Attribute xmi.id = 'Im75a362c1m1095378ef06mm7a99' name = 'time' visibility = 'private'
+ isSpecification = 'false' ownerScope = 'instance' changeability = 'changeable'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = 'Im75a362c1m1095378ef06mm7a9b' isSpecification = 'false'>
+ <UML:TaggedValue.dataValue><p>temps stok&eacute; en seconde</p>
+</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = 'Im75a362c1m1095378ef06mm7aaf'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref = 'Im75a362c1m1095378ef06mm7af9'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Operation xmi.id = 'Im75a362c1m1095378ef06mm7a95' name = 'getHour'
+ visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = 'Im75a362c1m1095378ef06mm7a97' name = 'return' isSpecification = 'false'
+ kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType xmi.idref = 'Im75a362c1m1095378ef06mm7af9'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = 'Im75a362c1m1095378ef06mm7a91' isSpecification = 'false'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = 'Im75a362c1m1095378ef06mm7a93' language = 'java'
+ body = ''/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = 'Im75a362c1m1095378ef06mm7a95'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = 'Im75a362c1m1095378ef06mm7a8d' name = 'getDay' visibility = 'public'
+ isSpecification = 'false' ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential'
+ isRoot = 'false' isLeaf = 'false' isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = 'Im75a362c1m1095378ef06mm7a8f' name = 'return' isSpecification = 'false'
+ kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType xmi.idref = 'Im75a362c1m1095378ef06mm7af9'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = 'Im75a362c1m1095378ef06mm7a89' isSpecification = 'false'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = 'Im75a362c1m1095378ef06mm7a8b' language = 'java'
+ body = ''/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = 'Im75a362c1m1095378ef06mm7a8d'/>
+ </UML:Method.specification>
+ </UML:Method>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Class xmi.id = 'Im75a362c1m1095378ef06mm7a73' name = 'Month' visibility = 'public'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'
+ isActive = 'false'>
+ <UML:Classifier.feature>
+ <UML:Attribute xmi.id = 'Im75a362c1m1095378ef06mm7a85' name = 'monthNumber'
+ visibility = 'private' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable'>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref = 'Im75a362c1m1095378ef06mm7b01'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Operation xmi.id = 'Im75a362c1m1095378ef06mm7a81' name = 'next' visibility = 'public'
+ isSpecification = 'false' ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential'
+ isRoot = 'false' isLeaf = 'false' isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = 'Im75a362c1m1095378ef06mm7a83' name = 'return' isSpecification = 'false'
+ kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = 'Im75a362c1m1095378ef06mm7a73'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = 'Im75a362c1m1095378ef06mm7a7d' isSpecification = 'false'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = 'Im75a362c1m1095378ef06mm7a7f' language = 'java'
+ body = ''/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = 'Im75a362c1m1095378ef06mm7a81'/>
+ </UML:Method.specification>
+ </UML:Method>
+ <UML:Operation xmi.id = 'Im75a362c1m1095378ef06mm7a79' name = 'previous'
+ visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = 'Im75a362c1m1095378ef06mm7a7b' name = 'return' isSpecification = 'false'
+ kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = 'Im75a362c1m1095378ef06mm7a73'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = 'Im75a362c1m1095378ef06mm7a75' isSpecification = 'false'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = 'Im75a362c1m1095378ef06mm7a77' language = 'java'
+ body = ''/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = 'Im75a362c1m1095378ef06mm7a79'/>
+ </UML:Method.specification>
+ </UML:Method>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Class xmi.id = 'Im7ac2ea13m109d5712258mm6967' name = 'RangeOfValues'
+ visibility = 'public' isSpecification = 'false' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false' isActive = 'false'>
+ <UML:Classifier.feature>
+ <UML:Attribute xmi.id = 'Im7ac2ea13m109d5712258mm694a' name = 'type' visibility = 'private'
+ isSpecification = 'false' ownerScope = 'instance' changeability = 'changeable'>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = 'Im75a362c1m1095378ef06mm7afd'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = 'Im7ac2ea13m109d5712258mm6939' name = 'values' visibility = 'private'
+ isSpecification = 'false' ownerScope = 'instance' changeability = 'changeable'>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = 'Im75a362c1m1095378ef06mm7afd'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Operation xmi.id = 'Im7ac2ea13m109d5712258mm6928' name = 'getPossibleValues'
+ visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = 'Im7ac2ea13m109d5712258mm6910' name = 'return' isSpecification = 'false'
+ kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Interface xmi.idref = 'Im75a362c1m1095378ef06mm7adb'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Method xmi.id = 'Im7ac2ea13m109d5712258mm6926' isSpecification = 'false'
+ isQuery = 'false'>
+ <UML:Method.body>
+ <UML:ProcedureExpression xmi.id = 'Im7ac2ea13m109d5712258mm6927' language = 'java'
+ body = ''/>
+ </UML:Method.body>
+ <UML:Method.specification>
+ <UML:Operation xmi.idref = 'Im7ac2ea13m109d5712258mm6928'/>
+ </UML:Method.specification>
+ </UML:Method>
+ </UML:Classifier.feature>
+ </UML:Class>
+ </UML:Namespace.ownedElement>
+ </UML:Package>
+ <UML:Stereotype xmi.id = 'Im75a362c1m1095378ef06mm7a5f' name = 'entity'
+ visibility = 'public' isSpecification = 'false' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:Stereotype.baseClass>Class</UML:Stereotype.baseClass>
+ </UML:Stereotype>
+ <UML:Package xmi.id = 'Im75a362c1m1095378ef06mm7a59' name = 'fr.ifremer.isisfish'
+ visibility = 'public' isSpecification = 'false' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:Namespace.ownedElement>
+ <UML:Class xmi.id = 'Im75a362c1m1095378ef06mm7a5b' name = 'IsisFishException'
+ visibility = 'public' isSpecification = 'false' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false' isActive = 'false'>
+ <UML:Namespace.ownedElement>
+ <UML:Exception xmi.id = 'Im75a362c1m1095378ef06mm7a5d' name = 'exception'
+ isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'/>
+ </UML:Namespace.ownedElement>
+ </UML:Class>
+ </UML:Namespace.ownedElement>
+ </UML:Package>
+ <UML:TagDefinition xmi.id = 'I6fd0e703m109cdb8199dmm6963' name = 'order-by'
+ isSpecification = 'false'>
+ <UML:TagDefinition.multiplicity>
+ <UML:Multiplicity xmi.id = 'I6fd0e703m109cdb8199dmm6962'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = 'I6fd0e703m109cdb8199dmm6961' lower = '1'
+ upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:TagDefinition.multiplicity>
+ </UML:TagDefinition>
+ <UML:Stereotype xmi.id = 'I4b51df9bm109d715de8dmm6960' name = 'indexed'
+ visibility = 'public' isSpecification = 'false' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:Stereotype.baseClass>AssociationEnd</UML:Stereotype.baseClass>
+ </UML:Stereotype>
+ </UML:Namespace.ownedElement>
+ </UML:Model>
+ <UML:Multiplicity xmi.id = 'I4b51df9bm109d715de8dmm6984'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = 'I4b51df9bm109d715de8dmm6985' lower = '1'
+ upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '127-0-1-1-78ec9054:11ecbd05bf0:-8000:00000000000010A3'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '127-0-1-1-78ec9054:11ecbd05bf0:-8000:00000000000010A2'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:A_context_raisedSignal>
+ <UML:Operation xmi.idref = 'Im75a362c1m1095378ef06mm7e65'/>
+ <UML:Exception xmi.idref = 'Im75a362c1m1095378ef06mm52cf'/>
+ <UML:Operation xmi.idref = 'Im75a362c1m1095378ef06mm7da9'/>
+ <UML:Exception xmi.idref = 'Im75a362c1m1095378ef06mm7a5d'/>
+ </UML:A_context_raisedSignal>
+ </XMI.content>
+</XMI>
Copied: trunk/ant-eugene-task/src/test/resources/xmi/1.2/topiatest.xmi (from rev 769, trunk/eugene/src/test/resources/xmi/1.2/topiatest.xmi)
===================================================================
--- trunk/ant-eugene-task/src/test/resources/xmi/1.2/topiatest.xmi (rev 0)
+++ trunk/ant-eugene-task/src/test/resources/xmi/1.2/topiatest.xmi 2009-12-20 12:58:28 UTC (rev 772)
@@ -0,0 +1,1441 @@
+<?xml version = '1.0' encoding = 'UTF-8' ?>
+<XMI xmi.version = '1.2' xmlns:UML = 'org.omg.xmi.namespace.UML' timestamp = 'Thu Nov 05 18:36:55 CET 2009'>
+ <XMI.header> <XMI.documentation>
+ <XMI.exporter>ArgoUML (using Netbeans XMI Writer version 1.0)</XMI.exporter>
+ <XMI.exporterVersion>0.28.1(6) revised on $Date: 2007-05-12 08:08:08 +0200 (Sat, 12 May 2007) $ </XMI.exporterVersion>
+ </XMI.documentation>
+ <XMI.metamodel xmi.name="UML" xmi.version="1.4"/></XMI.header>
+ <XMI.content>
+ <UML:Model xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:000000000000077B'
+ name = 'TopiaTest' isSpecification = 'false' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:00000000000008E3'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>1.2</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '127-0-0-1-3f03561c:11667f969c5:-8000:00000000000008E4'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:Namespace.ownedElement>
+ <UML:TagDefinition xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:00000000000008E4'
+ name = 'version' isSpecification = 'false' tagType = 'String'>
+ <UML:TagDefinition.multiplicity>
+ <UML:Multiplicity xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:00000000000008E6'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:00000000000008E5'
+ lower = '0' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:TagDefinition.multiplicity>
+ </UML:TagDefinition>
+ <UML:Stereotype xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:00000000000008E7'
+ name = 'entity' isSpecification = 'false' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:Stereotype.baseClass>Class</UML:Stereotype.baseClass>
+ </UML:Stereotype>
+ <UML:Package xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:000000000000090B'
+ name = 'org' isSpecification = 'false' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:Namespace.ownedElement>
+ <UML:Package xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:000000000000090C'
+ name = 'nuiton' isSpecification = 'false' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:Namespace.ownedElement>
+ <UML:Package xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:000000000000090D'
+ name = 'topiatest' isSpecification = 'false' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:Namespace.ownedElement>
+ <UML:Class xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:00000000000008DA'
+ name = 'Personne' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '127-0-0-1-3f03561c:11667f969c5:-8000:00000000000008E7'/>
+ </UML:ModelElement.stereotype>
+ <UML:GeneralizableElement.generalization>
+ <UML:Generalization xmi.idref = '-64--88-99-15-7b62aac4:121aaa56ef3:-8000:0000000000001020'/>
+ </UML:GeneralizableElement.generalization>
+ <UML:Classifier.feature>
+ <UML:Attribute xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000CF9'
+ name = 'name' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000CFD'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000CFC'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-64--88-99-15-67f6b63e:12187ee3a69:-8000:0000000000000EB0'
+ name = 'otherNames' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-64--88-99-15-67f6b63e:12187ee3a69:-8000:0000000000000EB8'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-64--88-99-15-67f6b63e:12187ee3a69:-8000:0000000000000EB7'
+ lower = '0' upper = '-1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Class xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:00000000000008DE'
+ name = 'Employe' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '127-0-0-1-3f03561c:11667f969c5:-8000:00000000000008E7'/>
+ </UML:ModelElement.stereotype>
+ <UML:GeneralizableElement.generalization>
+ <UML:Generalization xmi.idref = '127-0-0-1-3f03561c:11667f969c5:-8000:00000000000008E2'/>
+ </UML:GeneralizableElement.generalization>
+ <UML:Classifier.feature>
+ <UML:Attribute xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D54'
+ name = 'salary' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D5A'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D59'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Class xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:00000000000008E0'
+ name = 'Company' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '127-0-0-1-3f03561c:11667f969c5:-8000:00000000000008E7'/>
+ </UML:ModelElement.stereotype>
+ <UML:Classifier.feature>
+ <UML:Attribute xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:00000000000011BD'
+ name = 'name' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:00000000000011C5'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:00000000000011C4'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Class xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:00000000000008F9'
+ name = 'Address' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '127-0-0-1-3f03561c:11667f969c5:-8000:00000000000008E7'/>
+ </UML:ModelElement.stereotype>
+ <UML:Classifier.feature>
+ <UML:Attribute xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000903'
+ name = 'city' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000CF7'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000CF6'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000CE8'
+ name = 'adress' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000CF3'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000CF2'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Association xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:00000000000008FB'
+ name = '' isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'>
+ <UML:Association.connection>
+ <UML:AssociationEnd xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:00000000000008FC'
+ visibility = 'public' isSpecification = 'false' isNavigable = 'false' ordering = 'unordered'
+ aggregation = 'aggregate' targetScope = 'instance' changeability = 'changeable'>
+ <UML:AssociationEnd.multiplicity>
+ <UML:Multiplicity xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:00000000000008FD'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:00000000000008FE'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:AssociationEnd.multiplicity>
+ <UML:AssociationEnd.participant>
+ <UML:Class xmi.idref = '127-0-0-1-3f03561c:11667f969c5:-8000:00000000000008DA'/>
+ </UML:AssociationEnd.participant>
+ </UML:AssociationEnd>
+ <UML:AssociationEnd xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:00000000000008FF'
+ visibility = 'public' isSpecification = 'false' isNavigable = 'true' ordering = 'unordered'
+ aggregation = 'none' targetScope = 'instance' changeability = 'changeable'>
+ <UML:AssociationEnd.multiplicity>
+ <UML:Multiplicity xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000900'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000901'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:AssociationEnd.multiplicity>
+ <UML:AssociationEnd.participant>
+ <UML:Class xmi.idref = '127-0-0-1-3f03561c:11667f969c5:-8000:00000000000008F9'/>
+ </UML:AssociationEnd.participant>
+ </UML:AssociationEnd>
+ </UML:Association.connection>
+ </UML:Association>
+ <UML:Generalization xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:00000000000008E2'
+ isSpecification = 'false'>
+ <UML:Generalization.child>
+ <UML:Class xmi.idref = '127-0-0-1-3f03561c:11667f969c5:-8000:00000000000008DE'/>
+ </UML:Generalization.child>
+ <UML:Generalization.parent>
+ <UML:Class xmi.idref = '127-0-0-1-3f03561c:11667f969c5:-8000:00000000000008DA'/>
+ </UML:Generalization.parent>
+ </UML:Generalization>
+ <UML:Association xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000CFE'
+ name = '' isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'>
+ <UML:Association.connection>
+ <UML:AssociationEnd xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000CFF'
+ visibility = 'public' isSpecification = 'false' isNavigable = 'false' ordering = 'unordered'
+ aggregation = 'none' targetScope = 'instance' changeability = 'changeable'>
+ <UML:AssociationEnd.multiplicity>
+ <UML:Multiplicity xmi.id = '-64--88-99-15--164a0c3b:121af97fc30:-8000:000000000000102C'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-64--88-99-15--164a0c3b:121af97fc30:-8000:000000000000102B'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:AssociationEnd.multiplicity>
+ <UML:AssociationEnd.participant>
+ <UML:Class xmi.idref = '127-0-0-1-3f03561c:11667f969c5:-8000:00000000000008E0'/>
+ </UML:AssociationEnd.participant>
+ </UML:AssociationEnd>
+ <UML:AssociationEnd xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D02'
+ visibility = 'public' isSpecification = 'false' isNavigable = 'true' ordering = 'unordered'
+ aggregation = 'none' targetScope = 'instance' changeability = 'changeable'>
+ <UML:AssociationEnd.multiplicity>
+ <UML:Multiplicity xmi.id = '-64--88-99-15--164a0c3b:121af97fc30:-8000:000000000000102A'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-64--88-99-15--164a0c3b:121af97fc30:-8000:0000000000001029'
+ lower = '0' upper = '-1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:AssociationEnd.multiplicity>
+ <UML:AssociationEnd.participant>
+ <UML:Class xmi.idref = '127-0-0-1-3f03561c:11667f969c5:-8000:00000000000008DE'/>
+ </UML:AssociationEnd.participant>
+ </UML:AssociationEnd>
+ </UML:Association.connection>
+ </UML:Association>
+ <UML:Class xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D0B'
+ name = 'Department' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '127-0-0-1-3f03561c:11667f969c5:-8000:00000000000008E7'/>
+ </UML:ModelElement.stereotype>
+ <UML:Classifier.feature>
+ <UML:Attribute xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D25'
+ name = 'name' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D29'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D28'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Class xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D2A'
+ name = 'Product' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '127-0-0-1-3f03561c:11667f969c5:-8000:00000000000008E7'/>
+ </UML:ModelElement.stereotype>
+ <UML:Classifier.feature>
+ <UML:Attribute xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D37'
+ name = 'name' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D3F'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D3E'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Class xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D5B'
+ name = 'Store' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '127-0-0-1-3f03561c:11667f969c5:-8000:00000000000008E7'/>
+ </UML:ModelElement.stereotype>
+ <UML:Namespace.ownedElement>
+ <UML:Class xmi.id = '-64--88-99-15--68a124bf:123dcd43ccb:-8000:000000000000104C'
+ name = 'Row' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'>
+ <UML:Classifier.feature>
+ <UML:Attribute xmi.id = '-64--88-99-15--68a124bf:123dcd43ccb:-8000:0000000000001051'
+ name = 'num' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-64--88-99-15--68a124bf:123dcd43ccb:-8000:0000000000001052'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-64--88-99-15--68a124bf:123dcd43ccb:-8000:0000000000001053'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-64--88-99-15--68a124bf:123dcd43ccb:-8000:0000000000001057'
+ language = '' body = ''/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-64--88-99-15--68a124bf:123dcd43ccb:-8000:0000000000001054'
+ name = 'position' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-64--88-99-15--68a124bf:123dcd43ccb:-8000:0000000000001055'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-64--88-99-15--68a124bf:123dcd43ccb:-8000:0000000000001056'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ </UML:Class>
+ </UML:Namespace.ownedElement>
+ <UML:Classifier.feature>
+ <UML:Attribute xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D7D'
+ name = 'name' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D83'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D82'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-64--88-99-15--68a124bf:123dcd43ccb:-8000:0000000000001046'
+ language = '' body = ''/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-64--88-99-15--68a124bf:123dcd43ccb:-8000:0000000000001034'
+ name = 'DEFAULT_NUM' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-64--88-99-15--68a124bf:123dcd43ccb:-8000:0000000000001035'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-64--88-99-15--68a124bf:123dcd43ccb:-8000:0000000000001036'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-64--88-99-15--68a124bf:123dcd43ccb:-8000:0000000000001041'
+ language = '' body = 'B78947'/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Operation xmi.id = '-64--88-99-15--68a124bf:123dcd43ccb:-8000:000000000000103A'
+ name = 'getDefaultNum' visibility = 'public' isSpecification = 'false' ownerScope = 'classifier'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-64--88-99-15--68a124bf:123dcd43ccb:-8000:000000000000103B'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Attribute xmi.id = '-64--88-99-15--68a124bf:123dcd43ccb:-8000:0000000000001042'
+ name = 'numStore' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-64--88-99-15--68a124bf:123dcd43ccb:-8000:0000000000001043'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-64--88-99-15--68a124bf:123dcd43ccb:-8000:0000000000001044'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:Attribute.initialValue>
+ <UML:Expression xmi.id = '-64--88-99-15--68a124bf:123dcd43ccb:-8000:0000000000001045'
+ language = '' body = ''/>
+ </UML:Attribute.initialValue>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Class xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D40'
+ name = 'Type' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '127-0-0-1-3f03561c:11667f969c5:-8000:00000000000008E7'/>
+ </UML:ModelElement.stereotype>
+ <UML:Classifier.feature>
+ <UML:Attribute xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D4D'
+ name = 'name' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D53'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D52'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:AssociationClass xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D65'
+ name = 'Bill' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '127-0-0-1-3f03561c:11667f969c5:-8000:00000000000008E7'/>
+ </UML:ModelElement.stereotype>
+ <UML:Association.connection>
+ <UML:AssociationEnd xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D66'
+ visibility = 'public' isSpecification = 'false' isNavigable = 'false' ordering = 'unordered'
+ aggregation = 'none' targetScope = 'instance' changeability = 'changeable'>
+ <UML:AssociationEnd.multiplicity>
+ <UML:Multiplicity xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D89'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D88'
+ lower = '0' upper = '-1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:AssociationEnd.multiplicity>
+ <UML:AssociationEnd.participant>
+ <UML:Class xmi.idref = '127-0-0-1-3f03561c:11667f969c5:-8000:00000000000008E0'/>
+ </UML:AssociationEnd.participant>
+ </UML:AssociationEnd>
+ <UML:AssociationEnd xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D69'
+ visibility = 'public' isSpecification = 'false' isNavigable = 'true' ordering = 'unordered'
+ aggregation = 'none' targetScope = 'instance' changeability = 'changeable'>
+ <UML:AssociationEnd.multiplicity>
+ <UML:Multiplicity xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D8D'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D8C'
+ lower = '0' upper = '-1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:AssociationEnd.multiplicity>
+ <UML:AssociationEnd.participant>
+ <UML:Class xmi.idref = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D5B'/>
+ </UML:AssociationEnd.participant>
+ </UML:AssociationEnd>
+ </UML:Association.connection>
+ <UML:Classifier.feature>
+ <UML:Attribute xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D6D'
+ name = 'cost' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D75'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D74'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D76'
+ name = 'date' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D7A'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D79'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000085F'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ </UML:AssociationClass>
+ <UML:Association xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D18'
+ name = '' isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'>
+ <UML:Association.connection>
+ <UML:AssociationEnd xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D19'
+ name = 'lead' visibility = 'public' isSpecification = 'false' isNavigable = 'false'
+ ordering = 'unordered' aggregation = 'none' targetScope = 'instance' changeability = 'changeable'>
+ <UML:AssociationEnd.multiplicity>
+ <UML:Multiplicity xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D24'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D23'
+ lower = '0' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:AssociationEnd.multiplicity>
+ <UML:AssociationEnd.participant>
+ <UML:Class xmi.idref = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D0B'/>
+ </UML:AssociationEnd.participant>
+ </UML:AssociationEnd>
+ <UML:AssociationEnd xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D1C'
+ name = 'leader' visibility = 'public' isSpecification = 'false' isNavigable = 'true'
+ ordering = 'unordered' aggregation = 'none' targetScope = 'instance' changeability = 'changeable'>
+ <UML:AssociationEnd.multiplicity>
+ <UML:Multiplicity xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D1D'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D1E'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:AssociationEnd.multiplicity>
+ <UML:AssociationEnd.participant>
+ <UML:Class xmi.idref = '127-0-0-1-3f03561c:11667f969c5:-8000:00000000000008DE'/>
+ </UML:AssociationEnd.participant>
+ </UML:AssociationEnd>
+ </UML:Association.connection>
+ </UML:Association>
+ <UML:Association xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D0D'
+ name = '' isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'>
+ <UML:Association.connection>
+ <UML:AssociationEnd xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D0E'
+ visibility = 'public' isSpecification = 'false' isNavigable = 'true' ordering = 'unordered'
+ aggregation = 'composite' targetScope = 'instance' changeability = 'changeable'>
+ <UML:AssociationEnd.multiplicity>
+ <UML:Multiplicity xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D0F'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D10'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:AssociationEnd.multiplicity>
+ <UML:AssociationEnd.participant>
+ <UML:Class xmi.idref = '127-0-0-1-3f03561c:11667f969c5:-8000:00000000000008E0'/>
+ </UML:AssociationEnd.participant>
+ </UML:AssociationEnd>
+ <UML:AssociationEnd xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D11'
+ visibility = 'public' isSpecification = 'false' isNavigable = 'true' ordering = 'unordered'
+ aggregation = 'none' targetScope = 'instance' changeability = 'changeable'>
+ <UML:AssociationEnd.multiplicity>
+ <UML:Multiplicity xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D17'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D16'
+ lower = '0' upper = '-1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:AssociationEnd.multiplicity>
+ <UML:AssociationEnd.participant>
+ <UML:Class xmi.idref = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D0B'/>
+ </UML:AssociationEnd.participant>
+ </UML:AssociationEnd>
+ </UML:Association.connection>
+ </UML:Association>
+ <UML:Association xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D2C'
+ name = '' isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'>
+ <UML:Association.connection>
+ <UML:AssociationEnd xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D2D'
+ visibility = 'public' isSpecification = 'false' isNavigable = 'false' ordering = 'unordered'
+ aggregation = 'none' targetScope = 'instance' changeability = 'changeable'>
+ <UML:AssociationEnd.multiplicity>
+ <UML:Multiplicity xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D2E'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D2F'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:AssociationEnd.multiplicity>
+ <UML:AssociationEnd.participant>
+ <UML:Class xmi.idref = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D0B'/>
+ </UML:AssociationEnd.participant>
+ </UML:AssociationEnd>
+ <UML:AssociationEnd xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D30'
+ visibility = 'public' isSpecification = 'false' isNavigable = 'true' ordering = 'unordered'
+ aggregation = 'none' targetScope = 'instance' changeability = 'changeable'>
+ <UML:AssociationEnd.multiplicity>
+ <UML:Multiplicity xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D36'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D35'
+ lower = '0' upper = '-1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:AssociationEnd.multiplicity>
+ <UML:AssociationEnd.participant>
+ <UML:Class xmi.idref = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D2A'/>
+ </UML:AssociationEnd.participant>
+ </UML:AssociationEnd>
+ </UML:Association.connection>
+ </UML:Association>
+ <UML:Association xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D42'
+ name = '' isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'>
+ <UML:Association.connection>
+ <UML:AssociationEnd xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D43'
+ visibility = 'public' isSpecification = 'false' isNavigable = 'false' ordering = 'unordered'
+ aggregation = 'none' targetScope = 'instance' changeability = 'changeable'>
+ <UML:AssociationEnd.multiplicity>
+ <UML:Multiplicity xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D4C'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D4B'
+ lower = '0' upper = '-1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:AssociationEnd.multiplicity>
+ <UML:AssociationEnd.participant>
+ <UML:Class xmi.idref = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D2A'/>
+ </UML:AssociationEnd.participant>
+ </UML:AssociationEnd>
+ <UML:AssociationEnd xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D46'
+ visibility = 'public' isSpecification = 'false' isNavigable = 'true' ordering = 'unordered'
+ aggregation = 'none' targetScope = 'instance' changeability = 'changeable'>
+ <UML:AssociationEnd.multiplicity>
+ <UML:Multiplicity xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D47'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D48'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:AssociationEnd.multiplicity>
+ <UML:AssociationEnd.participant>
+ <UML:Class xmi.idref = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D40'/>
+ </UML:AssociationEnd.participant>
+ </UML:AssociationEnd>
+ </UML:Association.connection>
+ </UML:Association>
+ <UML:Package xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000E71'
+ name = 'beangen' isSpecification = 'false' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:Namespace.ownedElement>
+ <UML:Class xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000E72'
+ name = 'Voiture' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'true' isActive = 'false'>
+ <UML:ModelElement.clientDependency>
+ <UML:Abstraction xmi.idref = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000E77'/>
+ </UML:ModelElement.clientDependency>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000E73'/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000EA1'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>Doc for BeanA</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition href = 'http://argouml.org/profiles/uml14/default-uml14.xmi#.:000000000000087C'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:Classifier.feature>
+ <UML:Attribute xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000E7C'
+ name = 'immatriculation' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000E7D'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000E7E'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000EA2'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>attrA of BeanA</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition href = 'http://argouml.org/profiles/uml14/default-uml14.xmi#.:000000000000087C'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000E7F'
+ name = 'modele' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000E80'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000E81'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000EE6'
+ name = 'proprietaire' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000EE7'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000EE8'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = '127-0-0-1-3f03561c:11667f969c5:-8000:00000000000008DA'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Class xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000E75'
+ name = 'Roue' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000E73'/>
+ </UML:ModelElement.stereotype>
+ <UML:Classifier.feature>
+ <UML:Operation xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000E85'
+ name = 'mount' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000E86'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Operation xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000E87'
+ name = 'getModel' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000E88'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D2A'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000E89'
+ name = 'id' isSpecification = 'false'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Abstraction xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000E77'
+ isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000E78'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Class xmi.idref = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000E72'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Interface xmi.idref = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000E76'/>
+ </UML:Dependency.supplier>
+ </UML:Abstraction>
+ <UML:Interface xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000E76'
+ name = 'Vehicule' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:Classifier.feature>
+ <UML:Operation xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000E7A'
+ name = 'start' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000E7B'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ </UML:Classifier.feature>
+ </UML:Interface>
+ <UML:Association xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000E8A'
+ name = '' isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'>
+ <UML:Association.connection>
+ <UML:AssociationEnd xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000E8B'
+ visibility = 'public' isSpecification = 'false' isNavigable = 'true' ordering = 'unordered'
+ aggregation = 'composite' targetScope = 'instance' changeability = 'changeable'>
+ <UML:AssociationEnd.multiplicity>
+ <UML:Multiplicity xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000E8C'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000E8D'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:AssociationEnd.multiplicity>
+ <UML:AssociationEnd.participant>
+ <UML:Class xmi.idref = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000E72'/>
+ </UML:AssociationEnd.participant>
+ </UML:AssociationEnd>
+ <UML:AssociationEnd xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000E8E'
+ visibility = 'public' isSpecification = 'false' isNavigable = 'true' ordering = 'unordered'
+ aggregation = 'none' targetScope = 'instance' changeability = 'changeable'>
+ <UML:AssociationEnd.multiplicity>
+ <UML:Multiplicity xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000ED2'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000ED1'
+ lower = '4' upper = '4'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:AssociationEnd.multiplicity>
+ <UML:AssociationEnd.participant>
+ <UML:Class xmi.idref = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000E75'/>
+ </UML:AssociationEnd.participant>
+ </UML:AssociationEnd>
+ </UML:Association.connection>
+ </UML:Association>
+ <UML:Class xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000EAB'
+ name = 'RelationDTO' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000E74'/>
+ </UML:ModelElement.stereotype>
+ <UML:Classifier.feature>
+ <UML:Attribute xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000EAC'
+ name = 'idCompany' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000EAD'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000EAE'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000EAF'
+ name = 'idDepartement' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000EB0'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000EB1'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000EBB'
+ name = 'dateDebut' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000EBC'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000EBD'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000085F'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Class xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000EA9'
+ name = 'PersonneDTO' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.clientDependency>
+ <UML:Dependency xmi.idref = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000EAA'/>
+ </UML:ModelElement.clientDependency>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000E74'/>
+ </UML:ModelElement.stereotype>
+ <UML:Namespace.ownedElement>
+ <UML:Dependency xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000EAA'
+ isSpecification = 'false'>
+ <UML:Dependency.client>
+ <UML:Class xmi.idref = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000EA9'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '127-0-0-1-3f03561c:11667f969c5:-8000:00000000000008DA'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ </UML:Namespace.ownedElement>
+ </UML:Class>
+ <UML:Association xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000EB2'
+ name = '' isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'>
+ <UML:Association.connection>
+ <UML:AssociationEnd xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000EB3'
+ visibility = 'public' isSpecification = 'false' isNavigable = 'false' ordering = 'unordered'
+ aggregation = 'none' targetScope = 'instance' changeability = 'changeable'>
+ <UML:AssociationEnd.multiplicity>
+ <UML:Multiplicity xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000EBA'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000EB9'
+ lower = '0' upper = '-1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:AssociationEnd.multiplicity>
+ <UML:AssociationEnd.participant>
+ <UML:Class xmi.idref = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000EAB'/>
+ </UML:AssociationEnd.participant>
+ </UML:AssociationEnd>
+ <UML:AssociationEnd xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000EB6'
+ name = 'person' visibility = 'public' isSpecification = 'false' isNavigable = 'true'
+ ordering = 'unordered' aggregation = 'none' targetScope = 'instance' changeability = 'changeable'>
+ <UML:AssociationEnd.multiplicity>
+ <UML:Multiplicity xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000EB7'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000EB8'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:AssociationEnd.multiplicity>
+ <UML:AssociationEnd.participant>
+ <UML:Class xmi.idref = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000EA9'/>
+ </UML:AssociationEnd.participant>
+ </UML:AssociationEnd>
+ </UML:Association.connection>
+ </UML:Association>
+ <UML:Class xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000ED3'
+ name = 'Siege' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000E73'/>
+ </UML:ModelElement.stereotype>
+ <UML:Classifier.feature>
+ <UML:Attribute xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000EDB'
+ name = 'noSerie' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000EDC'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000EDD'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Association xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000ED4'
+ name = '' isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'>
+ <UML:Association.connection>
+ <UML:AssociationEnd xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000ED5'
+ visibility = 'public' isSpecification = 'false' isNavigable = 'true' ordering = 'unordered'
+ aggregation = 'none' targetScope = 'instance' changeability = 'changeable'>
+ <UML:AssociationEnd.multiplicity>
+ <UML:Multiplicity xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000EE5'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000EE4'
+ lower = '1' upper = '4'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:AssociationEnd.multiplicity>
+ <UML:AssociationEnd.participant>
+ <UML:Class xmi.idref = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000ED3'/>
+ </UML:AssociationEnd.participant>
+ </UML:AssociationEnd>
+ <UML:AssociationEnd xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000ED8'
+ visibility = 'public' isSpecification = 'false' isNavigable = 'true' ordering = 'unordered'
+ aggregation = 'composite' targetScope = 'instance' changeability = 'changeable'>
+ <UML:AssociationEnd.multiplicity>
+ <UML:Multiplicity xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000ED9'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000EDA'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:AssociationEnd.multiplicity>
+ <UML:AssociationEnd.participant>
+ <UML:Class xmi.idref = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000E72'/>
+ </UML:AssociationEnd.participant>
+ </UML:AssociationEnd>
+ </UML:Association.connection>
+ </UML:Association>
+ </UML:Namespace.ownedElement>
+ </UML:Package>
+ <UML:Package xmi.id = '-64--88-99-15-7b62aac4:121aaa56ef3:-8000:000000000000100A'
+ name = 'deletetest' isSpecification = 'false' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:Namespace.ownedElement>
+ <UML:Class xmi.id = '-64--88-99-15-7b62aac4:121aaa56ef3:-8000:000000000000100B'
+ name = 'Contact2' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '127-0-0-1-3f03561c:11667f969c5:-8000:00000000000008E7'/>
+ </UML:ModelElement.stereotype>
+ <UML:Classifier.feature>
+ <UML:Attribute xmi.id = '-64--88-99-15-7b62aac4:121aaa56ef3:-8000:0000000000001019'
+ name = 'contactValue' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-64--88-99-15-7b62aac4:121aaa56ef3:-8000:000000000000101A'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-64--88-99-15-7b62aac4:121aaa56ef3:-8000:000000000000101B'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-64--88-99-15-7b62aac4:121aaa56ef3:-8000:000000000000101C'
+ name = 'type' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-64--88-99-15-7b62aac4:121aaa56ef3:-8000:000000000000101D'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-64--88-99-15-7b62aac4:121aaa56ef3:-8000:000000000000101E'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Operation xmi.id = '-64--88-99-15--164a0c3b:121af97fc30:-8000:000000000000102F'
+ name = 'findAllByCompany' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-64--88-99-15--164a0c3b:121af97fc30:-8000:0000000000001034'/>
+ </UML:ModelElement.stereotype>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-64--88-99-15--164a0c3b:121af97fc30:-8000:0000000000001030'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-64--88-99-15--164a0c3b:121af97fc30:-8000:0000000000001032'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-64--88-99-15--164a0c3b:121af97fc30:-8000:0000000000001033'
+ name = 'company' isSpecification = 'false'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '127-0-0-1-3f03561c:11667f969c5:-8000:00000000000008E0'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Association xmi.id = '-64--88-99-15-7b62aac4:121aaa56ef3:-8000:000000000000100C'
+ name = '' isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'>
+ <UML:Association.connection>
+ <UML:AssociationEnd xmi.id = '-64--88-99-15-7b62aac4:121aaa56ef3:-8000:000000000000100D'
+ name = 'contacts' visibility = 'public' isSpecification = 'false' isNavigable = 'true'
+ ordering = 'unordered' aggregation = 'none' targetScope = 'instance' changeability = 'changeable'>
+ <UML:AssociationEnd.multiplicity>
+ <UML:Multiplicity xmi.id = '-64--88-99-15--164a0c3b:121af97fc30:-8000:0000000000001026'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-64--88-99-15--164a0c3b:121af97fc30:-8000:0000000000001025'
+ lower = '0' upper = '-1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:AssociationEnd.multiplicity>
+ <UML:AssociationEnd.participant>
+ <UML:Class xmi.idref = '-64--88-99-15-7b62aac4:121aaa56ef3:-8000:000000000000100B'/>
+ </UML:AssociationEnd.participant>
+ </UML:AssociationEnd>
+ <UML:AssociationEnd xmi.id = '-64--88-99-15-7b62aac4:121aaa56ef3:-8000:0000000000001010'
+ visibility = 'public' isSpecification = 'false' isNavigable = 'true' ordering = 'unordered'
+ aggregation = 'none' targetScope = 'instance' changeability = 'changeable'>
+ <UML:AssociationEnd.multiplicity>
+ <UML:Multiplicity xmi.id = '-64--88-99-15--164a0c3b:121af97fc30:-8000:0000000000001028'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-64--88-99-15--164a0c3b:121af97fc30:-8000:0000000000001027'
+ lower = '0' upper = '-1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:AssociationEnd.multiplicity>
+ <UML:AssociationEnd.participant>
+ <UML:Class xmi.idref = '-64--88-99-15-7b62aac4:121aaa56ef3:-8000:000000000000101F'/>
+ </UML:AssociationEnd.participant>
+ </UML:AssociationEnd>
+ </UML:Association.connection>
+ </UML:Association>
+ <UML:Class xmi.id = '-64--88-99-15-7b62aac4:121aaa56ef3:-8000:0000000000001017'
+ name = 'Telephone2' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '127-0-0-1-3f03561c:11667f969c5:-8000:00000000000008E7'/>
+ </UML:ModelElement.stereotype>
+ <UML:GeneralizableElement.generalization>
+ <UML:Generalization xmi.idref = '-64--88-99-15-7b62aac4:121aaa56ef3:-8000:0000000000001018'/>
+ </UML:GeneralizableElement.generalization>
+ <UML:Classifier.feature>
+ <UML:Attribute xmi.id = '-64--88-99-15-7b62aac4:121aaa56ef3:-8000:0000000000001021'
+ name = 'prefix' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-64--88-99-15-7b62aac4:121aaa56ef3:-8000:0000000000001022'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-64--88-99-15-7b62aac4:121aaa56ef3:-8000:0000000000001023'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-64--88-99-15-7b62aac4:121aaa56ef3:-8000:0000000000001024'
+ name = 'country' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-64--88-99-15-7b62aac4:121aaa56ef3:-8000:0000000000001025'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-64--88-99-15-7b62aac4:121aaa56ef3:-8000:0000000000001026'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Generalization xmi.id = '-64--88-99-15-7b62aac4:121aaa56ef3:-8000:0000000000001018'
+ isSpecification = 'false'>
+ <UML:Generalization.child>
+ <UML:Class xmi.idref = '-64--88-99-15-7b62aac4:121aaa56ef3:-8000:0000000000001017'/>
+ </UML:Generalization.child>
+ <UML:Generalization.parent>
+ <UML:Class xmi.idref = '-64--88-99-15-7b62aac4:121aaa56ef3:-8000:000000000000100B'/>
+ </UML:Generalization.parent>
+ </UML:Generalization>
+ <UML:Class xmi.id = '-64--88-99-15-7b62aac4:121aaa56ef3:-8000:000000000000101F'
+ name = 'Party2' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '127-0-0-1-3f03561c:11667f969c5:-8000:00000000000008E7'/>
+ </UML:ModelElement.stereotype>
+ </UML:Class>
+ </UML:Namespace.ownedElement>
+ </UML:Package>
+ <UML:Generalization xmi.id = '-64--88-99-15-7b62aac4:121aaa56ef3:-8000:0000000000001020'
+ isSpecification = 'false'>
+ <UML:Generalization.child>
+ <UML:Class xmi.idref = '127-0-0-1-3f03561c:11667f969c5:-8000:00000000000008DA'/>
+ </UML:Generalization.child>
+ <UML:Generalization.parent>
+ <UML:Class xmi.idref = '-64--88-99-15-7b62aac4:121aaa56ef3:-8000:000000000000101F'/>
+ </UML:Generalization.parent>
+ </UML:Generalization>
+ </UML:Namespace.ownedElement>
+ </UML:Package>
+ <UML:Package xmi.id = '127-0-0-1-13652238:1219c622604:-8000:000000000000121D'
+ name = 'topia' isSpecification = 'false' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:Namespace.ownedElement>
+ <UML:Package xmi.id = '127-0-0-1-13652238:1219c622604:-8000:000000000000121E'
+ name = 'test' isSpecification = 'false' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:Namespace.ownedElement>
+ <UML:Package xmi.id = '127-0-0-1-13652238:1219c622604:-8000:000000000000121F'
+ name = 'entities' isSpecification = 'false' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:Namespace.ownedElement>
+ <UML:Class xmi.id = '127-0-0-1-13652238:1219c622604:-8000:0000000000001220'
+ name = 'Person' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '127-0-0-1-3f03561c:11667f969c5:-8000:00000000000008E7'/>
+ </UML:ModelElement.stereotype>
+ <UML:Classifier.feature>
+ <UML:Attribute xmi.id = '127-0-0-1-13652238:1219c622604:-8000:0000000000001228'
+ name = 'name' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '127-0-0-1-13652238:1219c622604:-8000:0000000000001229'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '127-0-0-1-13652238:1219c622604:-8000:000000000000122A'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '127-0-0-1-13652238:1219c622604:-8000:000000000000122B'
+ name = 'firstname' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '127-0-0-1-13652238:1219c622604:-8000:000000000000122C'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '127-0-0-1-13652238:1219c622604:-8000:000000000000122D'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Class xmi.id = '127-0-0-1-13652238:1219c622604:-8000:0000000000001221'
+ name = 'Pet' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '127-0-0-1-3f03561c:11667f969c5:-8000:00000000000008E7'/>
+ </UML:ModelElement.stereotype>
+ <UML:Classifier.feature>
+ <UML:Attribute xmi.id = '127-0-0-1-13652238:1219c622604:-8000:0000000000001222'
+ name = 'name' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '127-0-0-1-13652238:1219c622604:-8000:0000000000001223'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '127-0-0-1-13652238:1219c622604:-8000:0000000000001224'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '127-0-0-1-13652238:1219c622604:-8000:0000000000001225'
+ name = 'type' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '127-0-0-1-13652238:1219c622604:-8000:0000000000001226'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '127-0-0-1-13652238:1219c622604:-8000:0000000000001227'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Association xmi.id = '127-0-0-1-13652238:1219c622604:-8000:0000000000001237'
+ name = '' isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'>
+ <UML:Association.connection>
+ <UML:AssociationEnd xmi.id = '127-0-0-1-13652238:1219c622604:-8000:0000000000001238'
+ visibility = 'public' isSpecification = 'false' isNavigable = 'true' ordering = 'unordered'
+ aggregation = 'none' targetScope = 'instance' changeability = 'changeable'>
+ <UML:AssociationEnd.multiplicity>
+ <UML:Multiplicity xmi.id = '127-0-0-1-13652238:1219c622604:-8000:0000000000001239'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '127-0-0-1-13652238:1219c622604:-8000:000000000000123A'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:AssociationEnd.multiplicity>
+ <UML:AssociationEnd.participant>
+ <UML:Class xmi.idref = '127-0-0-1-13652238:1219c622604:-8000:0000000000001220'/>
+ </UML:AssociationEnd.participant>
+ </UML:AssociationEnd>
+ <UML:AssociationEnd xmi.id = '127-0-0-1-13652238:1219c622604:-8000:000000000000123B'
+ visibility = 'public' isSpecification = 'false' isNavigable = 'true' ordering = 'unordered'
+ aggregation = 'none' targetScope = 'instance' changeability = 'changeable'>
+ <UML:AssociationEnd.multiplicity>
+ <UML:Multiplicity xmi.id = '127-0-0-1-13652238:1219c622604:-8000:000000000000123F'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '127-0-0-1-13652238:1219c622604:-8000:000000000000123E'
+ lower = '0' upper = '-1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:AssociationEnd.multiplicity>
+ <UML:AssociationEnd.participant>
+ <UML:Class xmi.idref = '127-0-0-1-13652238:1219c622604:-8000:0000000000001221'/>
+ </UML:AssociationEnd.participant>
+ </UML:AssociationEnd>
+ </UML:Association.connection>
+ </UML:Association>
+ <UML:Association xmi.id = '127-0-0-1--7876194c:121c66e8e17:-8000:000000000000102A'
+ name = '' isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'>
+ <UML:Association.connection>
+ <UML:AssociationEnd xmi.id = '127-0-0-1--7876194c:121c66e8e17:-8000:000000000000102B'
+ visibility = 'public' isSpecification = 'false' isNavigable = 'false' ordering = 'unordered'
+ aggregation = 'composite' targetScope = 'instance' changeability = 'changeable'>
+ <UML:AssociationEnd.multiplicity>
+ <UML:Multiplicity xmi.id = '127-0-0-1--7876194c:121c66e8e17:-8000:000000000000102C'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '127-0-0-1--7876194c:121c66e8e17:-8000:000000000000102D'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:AssociationEnd.multiplicity>
+ <UML:AssociationEnd.participant>
+ <UML:Class xmi.idref = '127-0-0-1-13652238:1219c622604:-8000:0000000000001221'/>
+ </UML:AssociationEnd.participant>
+ </UML:AssociationEnd>
+ <UML:AssociationEnd xmi.id = '127-0-0-1--7876194c:121c66e8e17:-8000:000000000000102E'
+ visibility = 'public' isSpecification = 'false' isNavigable = 'true' ordering = 'unordered'
+ aggregation = 'none' targetScope = 'instance' changeability = 'changeable'>
+ <UML:AssociationEnd.multiplicity>
+ <UML:Multiplicity xmi.id = '127-0-0-1--7876194c:121c66e8e17:-8000:000000000000102F'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '127-0-0-1--7876194c:121c66e8e17:-8000:0000000000001030'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:AssociationEnd.multiplicity>
+ <UML:AssociationEnd.participant>
+ <UML:Class xmi.idref = '127-0-0-1--7876194c:121c66e8e17:-8000:0000000000001029'/>
+ </UML:AssociationEnd.participant>
+ </UML:AssociationEnd>
+ </UML:Association.connection>
+ </UML:Association>
+ <UML:Class xmi.id = '127-0-0-1--7876194c:121c66e8e17:-8000:0000000000001029'
+ name = 'Race' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '127-0-0-1-3f03561c:11667f969c5:-8000:00000000000008E7'/>
+ </UML:ModelElement.stereotype>
+ <UML:Classifier.feature>
+ <UML:Attribute xmi.id = '127-0-0-1--7876194c:121c66e8e17:-8000:0000000000001031'
+ name = 'name' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '127-0-0-1--7876194c:121c66e8e17:-8000:0000000000001032'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '127-0-0-1--7876194c:121c66e8e17:-8000:0000000000001033'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ </UML:Class>
+ </UML:Namespace.ownedElement>
+ </UML:Package>
+ </UML:Namespace.ownedElement>
+ </UML:Package>
+ </UML:Namespace.ownedElement>
+ </UML:Package>
+ </UML:Namespace.ownedElement>
+ </UML:Package>
+ </UML:Namespace.ownedElement>
+ </UML:Package>
+ <UML:Stereotype xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000E73'
+ name = 'bean' isSpecification = 'false' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:Stereotype.baseClass>Class</UML:Stereotype.baseClass>
+ </UML:Stereotype>
+ <UML:Stereotype xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000E74'
+ name = 'dto' isSpecification = 'false' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:Stereotype.baseClass>Class</UML:Stereotype.baseClass>
+ </UML:Stereotype>
+ <UML:Stereotype xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000E78'
+ name = 'realize' isSpecification = 'false' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:Stereotype.baseClass>Abstraction</UML:Stereotype.baseClass>
+ </UML:Stereotype>
+ <UML:Package xmi.id = '-64--88-99-15--164a0c3b:121af97fc30:-8000:0000000000001031'
+ name = 'java.util' isSpecification = 'false' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:Namespace.ownedElement>
+ <UML:Class xmi.id = '-64--88-99-15--164a0c3b:121af97fc30:-8000:0000000000001032'
+ name = 'Set<Contact2>' visibility = 'public' isSpecification = 'false'
+ isRoot = 'false' isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ </UML:Namespace.ownedElement>
+ </UML:Package>
+ <UML:Stereotype xmi.id = '-64--88-99-15--164a0c3b:121af97fc30:-8000:0000000000001034'
+ name = 'dao' isSpecification = 'false' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:Stereotype.baseClass>Operation</UML:Stereotype.baseClass>
+ </UML:Stereotype>
+ </UML:Namespace.ownedElement>
+ </UML:Model>
+ <UML:Expression xmi.id = '-64--88-99-15--68a124bf:123dcd43ccb:-8000:000000000000103C'
+ language = '' body = 'B'/>
+ <UML:Expression xmi.id = '-64--88-99-15--68a124bf:123dcd43ccb:-8000:000000000000103D'
+ language = '' body = 'B7'/>
+ <UML:Expression xmi.id = '-64--88-99-15--68a124bf:123dcd43ccb:-8000:000000000000103E'
+ language = '' body = 'B78'/>
+ <UML:Expression xmi.id = '-64--88-99-15--68a124bf:123dcd43ccb:-8000:000000000000103F'
+ language = '' body = 'B789'/>
+ <UML:Expression xmi.id = '-64--88-99-15--68a124bf:123dcd43ccb:-8000:0000000000001040'
+ language = '' body = 'B7894'/>
+ <UML:Multiplicity xmi.id = '127-0-0-1-13652238:1219c622604:-8000:0000000000001233'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '127-0-0-1-13652238:1219c622604:-8000:0000000000001234'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '127-0-0-1-13652238:1219c622604:-8000:000000000000123C'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '127-0-0-1-13652238:1219c622604:-8000:000000000000123D'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </XMI.content>
+</XMI>
Copied: trunk/ant-eugene-task/src/test/resources/xmi/2.1/TestXMI21.properties (from rev 769, trunk/eugene/src/test/resources/xmi/2.1/TestXMI21.properties)
===================================================================
--- trunk/ant-eugene-task/src/test/resources/xmi/2.1/TestXMI21.properties (rev 0)
+++ trunk/ant-eugene-task/src/test/resources/xmi/2.1/TestXMI21.properties 2009-12-20 12:58:28 UTC (rev 772)
@@ -0,0 +1,2 @@
+
+model.tagvalue.anytag=azerty
Copied: trunk/ant-eugene-task/src/test/resources/xmi/2.1/TestXMI21.uml (from rev 769, trunk/eugene/src/test/resources/xmi/2.1/TestXMI21.uml)
===================================================================
--- trunk/ant-eugene-task/src/test/resources/xmi/2.1/TestXMI21.uml (rev 0)
+++ trunk/ant-eugene-task/src/test/resources/xmi/2.1/TestXMI21.uml 2009-12-20 12:58:28 UTC (rev 772)
@@ -0,0 +1,249 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<uml:Model xmi:version="2.1" xmlns:xmi="http://schema.omg.org/spec/XMI/2.1" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:uml="http://www.eclipse.org/uml2/2.1.0/UML" xmi:id="_qb8akM37EdqwVrslYOdUDA" name="XMITest21">
+ <packagedElement xmi:type="uml:Package" xmi:id="_w8IxIM37EdqwVrslYOdUDA" name="org.nuiton.eugene.test21">
+ <eAnnotations xmi:id="_WUax4GWDEd64qsCRqbn5Bg" source="http://www.topcased.org/documentation">
+ <details xmi:id="_WUax4WWDEd64qsCRqbn5Bg" key="documentation" value="model doc!"/>
+ </eAnnotations>
+ <packagedElement xmi:type="uml:Class" xmi:id="_NNUyUP58Ed2zEeRO-8Et9Q" name="ClassA" clientDependency="_X7ZekP58Ed2zEeRO-8Et9Q _YbeFwf58Ed2zEeRO-8Et9Q" isAbstract="true">
+ <eAnnotations xmi:id="_La8WoGVyEd64qsCRqbn5Bg" source="http://www.topcased.org/documentation">
+ <details xmi:id="_La-L0GVyEd64qsCRqbn5Bg" key="documentation" value="My Class A is a super Class!"/>
+ </eAnnotations>
+ <ownedAttribute xmi:id="_OkwfUP58Ed2zEeRO-8Et9Q" name="name" isOrdered="true">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_qOxkEFUHEd6orZyN8N8Vlw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_S7E-oFUIEd6orZyN8N8Vlw" value="2"/>
+ </ownedAttribute>
+ <interfaceRealization xmi:id="_X7ZekP58Ed2zEeRO-8Et9Q" name="InterfaceRealization1" supplier="_TdnrsP58Ed2zEeRO-8Et9Q" client="_NNUyUP58Ed2zEeRO-8Et9Q" contract="_TdnrsP58Ed2zEeRO-8Et9Q"/>
+ <interfaceRealization xmi:id="_YbeFwf58Ed2zEeRO-8Et9Q" name="InterfaceRealization2" supplier="_VvGmIP58Ed2zEeRO-8Et9Q" client="_NNUyUP58Ed2zEeRO-8Et9Q" contract="_VvGmIP58Ed2zEeRO-8Et9Q"/>
+ <ownedOperation xmi:id="_hm5koP6qEd2zEeRO-8Et9Q" name="add">
+ <eAnnotations xmi:id="_kJ_xsGVvEd64qsCRqbn5Bg" source="http://www.topcased.org/documentation">
+ <details xmi:id="_kJ_xsWVvEd64qsCRqbn5Bg" key="documentation" value="That is just a method to add a Formula!"/>
+ </eAnnotations>
+ <ownedParameter xmi:id="_il4VYP6qEd2zEeRO-8Et9Q" name="formula" type="_DIpMEP6iEd2zEeRO-8Et9Q"/>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Interface" xmi:id="_TdnrsP58Ed2zEeRO-8Et9Q" name="InterfaceA">
+ <eAnnotations xmi:id="_Pl1NQGVzEd64qsCRqbn5Bg" source="http://www.topcased.org/documentation">
+ <details xmi:id="_Pl10UGVzEd64qsCRqbn5Bg" key="documentation" value="Interface A. What is interface A? Interface A is the interface called A. What else?"/>
+ </eAnnotations>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Interface" xmi:id="_VvGmIP58Ed2zEeRO-8Et9Q" name="InterfaceB"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_ZsQYMP58Ed2zEeRO-8Et9Q" name="ClassB">
+ <eAnnotations xmi:id="_qD2fAGWFEd65mK_2GazyJQ" source="http://www.topcased.org/documentation">
+ <details xmi:id="_qD3GEGWFEd65mK_2GazyJQ" key="documentation" value="This is some documentation
on multiple lines !

Very hard to do !"/>
+ </eAnnotations>
+ <generalization xmi:id="_eo5RUP58Ed2zEeRO-8Et9Q" general="_NNUyUP58Ed2zEeRO-8Et9Q"/>
+ <ownedAttribute xmi:id="_aqVxEP58Ed2zEeRO-8Et9Q" name="cost">
+ <eAnnotations xmi:id="_19P_QP6VEd2zEeRO-8Et9Q" source="http://www.topcased.org/documentation">
+ <details xmi:id="_19QmUP6VEd2zEeRO-8Et9Q" key="documentation" value="Cost attribute comment"/>
+ </eAnnotations>
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Integer"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_je1FgP58Ed2zEeRO-8Et9Q" name="protectedCost" visibility="protected">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Integer"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_nr6xAP58Ed2zEeRO-8Et9Q" name="privateCost" visibility="private">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Integer"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_Ak0J8P6NEd2zEeRO-8Et9Q" name="packageCost" visibility="package">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Integer"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_8-GlgFRNEd6cNsKbEBJ-iA" name="double" type="_7MEnMFRNEd6cNsKbEBJ-iA"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_f4vvoP58Ed2zEeRO-8Et9Q" name="ClassC">
+ <eAnnotations xmi:id="_wS4dcP6VEd2zEeRO-8Et9Q" source="http://www.topcased.org/documentation">
+ <details xmi:id="_wS6SoP6VEd2zEeRO-8Et9Q" key="documentation" value="Class C Comment"/>
+ </eAnnotations>
+ <generalization xmi:id="_hukBwP58Ed2zEeRO-8Et9Q" general="_NNUyUP58Ed2zEeRO-8Et9Q"/>
+ <ownedAttribute xmi:id="_FrUkMP6iEd2zEeRO-8Et9Q" name="formula" type="_DIpMEP6iEd2zEeRO-8Et9Q">
+ <eAnnotations xmi:id="_l4vwgGWFEd65mK_2GazyJQ" source="http://www.topcased.org/documentation">
+ <details xmi:id="_l4wXkGWFEd65mK_2GazyJQ" key="documentation" value="azerty"/>
+ </eAnnotations>
+ </ownedAttribute>
+ <ownedOperation xmi:id="_0E3xQP6pEd2zEeRO-8Et9Q" name="launchException" raisedException="_O_SJQP6qEd2zEeRO-8Et9Q">
+ <eAnnotations xmi:id="_mX81AGWFEd65mK_2GazyJQ" source="http://www.topcased.org/documentation">
+ <details xmi:id="_mX81AWWFEd65mK_2GazyJQ" key="documentation" value="launchExcep comment"/>
+ </eAnnotations>
+ <ownedParameter xmi:id="_4JuGwP6pEd2zEeRO-8Et9Q" name="msg">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Integer"/>
+ </ownedParameter>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_3DtAEP6MEd2zEeRO-8Et9Q" name="ClassD" visibility="protected">
+ <ownedOperation xmi:id="_ETYGYP6NEd2zEeRO-8Et9Q" name="getFirst">
+ <ownedParameter xmi:id="_GtUZQP6NEd2zEeRO-8Et9Q" name="return" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Boolean"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_JRci4P6NEd2zEeRO-8Et9Q" name="getSecond" visibility="protected">
+ <ownedParameter xmi:id="_MI6fQP6NEd2zEeRO-8Et9Q" name="return" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_eBT-AP6qEd2zEeRO-8Et9Q" name="name">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Integer"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_OoKv8P6NEd2zEeRO-8Et9Q" name="close" visibility="package"/>
+ <ownedOperation xmi:id="_RvNZYP6NEd2zEeRO-8Et9Q" name="getInstance" isStatic="true">
+ <ownedParameter xmi:id="_Ss04MP6NEd2zEeRO-8Et9Q" name="return" type="_3DtAEP6MEd2zEeRO-8Et9Q" direction="return"/>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_dFFFcP6NEd2zEeRO-8Et9Q" name="ClassE"/>
+ <packagedElement xmi:type="uml:Association" xmi:id="_hQn40P6NEd2zEeRO-8Et9Q" name="Association3" memberEnd="_hQn40f6NEd2zEeRO-8Et9Q _hQn41P6NEd2zEeRO-8Et9Q" navigableOwnedEnd="_hQn40f6NEd2zEeRO-8Et9Q _hQn41P6NEd2zEeRO-8Et9Q">
+ <eAnnotations xmi:id="_0N974GWAEd64qsCRqbn5Bg" source="http://www.topcased.org/documentation">
+ <details xmi:id="_0N-i8GWAEd64qsCRqbn5Bg" key="documentation" value="this is class D class E asso"/>
+ </eAnnotations>
+ <ownedEnd xmi:id="_hQn40f6NEd2zEeRO-8Et9Q" name="source" type="_3DtAEP6MEd2zEeRO-8Et9Q" association="_hQn40P6NEd2zEeRO-8Et9Q">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_hQn40v6NEd2zEeRO-8Et9Q" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_hQn40_6NEd2zEeRO-8Et9Q"/>
+ </ownedEnd>
+ <ownedEnd xmi:id="_hQn41P6NEd2zEeRO-8Et9Q" name="target" visibility="public" type="_dFFFcP6NEd2zEeRO-8Et9Q" association="_hQn40P6NEd2zEeRO-8Et9Q">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_hQn41f6NEd2zEeRO-8Et9Q" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_hQn41v6NEd2zEeRO-8Et9Q"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_pboycP6NEd2zEeRO-8Et9Q" name="ClassF">
+ <ownedAttribute xmi:id="_rdaF0P6hEd2zEeRO-8Et9Q" name="equation" type="_ncUO8P6hEd2zEeRO-8Et9Q"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_rmReBP6NEd2zEeRO-8Et9Q" name="Association4" memberEnd="_rmReBf6NEd2zEeRO-8Et9Q _rmReCP6NEd2zEeRO-8Et9Q">
+ <ownedEnd xmi:id="_rmReBf6NEd2zEeRO-8Et9Q" name="source" type="_pboycP6NEd2zEeRO-8Et9Q" association="_rmReBP6NEd2zEeRO-8Et9Q">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_rmReBv6NEd2zEeRO-8Et9Q" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_rmReB_6NEd2zEeRO-8Et9Q" value="1"/>
+ </ownedEnd>
+ <ownedEnd xmi:id="_rmReCP6NEd2zEeRO-8Et9Q" name="target" type="_dFFFcP6NEd2zEeRO-8Et9Q" aggregation="composite" association="_rmReBP6NEd2zEeRO-8Et9Q">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_rmReCf6NEd2zEeRO-8Et9Q" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_rmReCv6NEd2zEeRO-8Et9Q" value="1"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_vhCqcP6NEd2zEeRO-8Et9Q" name="ClassG"/>
+ <packagedElement xmi:type="uml:AssociationClass" xmi:id="_0bvC4P6NEd2zEeRO-8Et9Q" name="AssociationClassGToF" memberEnd="_0bvp4P6NEd2zEeRO-8Et9Q _0bvp4_6NEd2zEeRO-8Et9Q" navigableOwnedEnd="_0bvp4_6NEd2zEeRO-8Et9Q">
+ <eAnnotations xmi:id="_nTt-4GVzEd64qsCRqbn5Bg" source="http://www.topcased.org/documentation">
+ <details xmi:id="_nTt-4WVzEd64qsCRqbn5Bg" key="documentation" value="An association Class! That is beautifull!"/>
+ </eAnnotations>
+ <ownedAttribute xmi:id="_SRvpQP6OEd2zEeRO-8Et9Q" name="price" visibility="protected">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/Ecore.metamodel.uml#EFloat"/>
+ </ownedAttribute>
+ <ownedOperation xmi:id="_QmGm0P6OEd2zEeRO-8Et9Q" name="getPrice">
+ <ownedParameter xmi:id="_WKIQEP6OEd2zEeRO-8Et9Q" name="return" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/Ecore.metamodel.uml#EFloat"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedEnd xmi:id="_0bvp4P6NEd2zEeRO-8Et9Q" name="source" type="_vhCqcP6NEd2zEeRO-8Et9Q" association="_0bvC4P6NEd2zEeRO-8Et9Q">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_0bvp4f6NEd2zEeRO-8Et9Q" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_0bvp4v6NEd2zEeRO-8Et9Q"/>
+ </ownedEnd>
+ <ownedEnd xmi:id="_0bvp4_6NEd2zEeRO-8Et9Q" name="target" type="_pboycP6NEd2zEeRO-8Et9Q" association="_0bvC4P6NEd2zEeRO-8Et9Q">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_0bvp5P6NEd2zEeRO-8Et9Q" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_0bvp5f6NEd2zEeRO-8Et9Q"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_4u46Gv6NEd2zEeRO-8Et9Q" name="Association5" memberEnd="_4u46G_6NEd2zEeRO-8Et9Q _4u46Hv6NEd2zEeRO-8Et9Q">
+ <eAnnotations xmi:id="_czdsMGVzEd64qsCRqbn5Bg" source="http://www.topcased.org/documentation">
+ <details xmi:id="_czdsMWVzEd64qsCRqbn5Bg" key="documentation" value="This is an association from ClassC to ClassE."/>
+ </eAnnotations>
+ <ownedEnd xmi:id="_4u46G_6NEd2zEeRO-8Et9Q" name="source" type="_dFFFcP6NEd2zEeRO-8Et9Q" isOrdered="true" association="_4u46Gv6NEd2zEeRO-8Et9Q">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_4u46HP6NEd2zEeRO-8Et9Q" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_4u46Hf6NEd2zEeRO-8Et9Q"/>
+ </ownedEnd>
+ <ownedEnd xmi:id="_4u46Hv6NEd2zEeRO-8Et9Q" name="target" type="_f4vvoP58Ed2zEeRO-8Et9Q" association="_4u46Gv6NEd2zEeRO-8Et9Q">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_4u46H_6NEd2zEeRO-8Et9Q" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_4u46IP6NEd2zEeRO-8Et9Q" value="1"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_O_SJQP6qEd2zEeRO-8Et9Q" name="ClassCException"/>
+ <packagedElement xmi:type="uml:PrimitiveType" xmi:id="_7MEnMFRNEd6cNsKbEBJ-iA" name="double">
+ <eAnnotations xmi:id="_X-h9kGVzEd64qsCRqbn5Bg" source="http://www.topcased.org/documentation">
+ <details xmi:id="_X-ikoGVzEd64qsCRqbn5Bg" key="documentation" value="This is the PrimitiveType Double!"/>
+ </eAnnotations>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_ZK95QFUREd6orZyN8N8Vlw" name="MultiplicityClass">
+ <ownedAttribute xmi:id="_dA6QEFUREd6orZyN8N8Vlw" name="strings">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_THY7UFUTEd6orZyN8N8Vlw" value="*"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_fT0t4FUREd6orZyN8N8Vlw" name="doubles" type="_7MEnMFRNEd6cNsKbEBJ-iA" isOrdered="true">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Tx7GEFUTEd6orZyN8N8Vlw" value="5"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_9VqJ0lUREd6orZyN8N8Vlw" name="dataTypes" type="_yRJ6kFUREd6orZyN8N8Vlw" isOrdered="true" isUnique="false">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_URmEoFUTEd6orZyN8N8Vlw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_UtFGwFUTEd6orZyN8N8Vlw"/>
+ </ownedAttribute>
+ <ownedOperation xmi:id="_g4qkwFUREd6orZyN8N8Vlw" name="getStrings">
+ <ownedParameter xmi:id="_saqoUFUREd6orZyN8N8Vlw" name="return" isOrdered="true" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_hVB7MFUSEd6orZyN8N8Vlw" value="*"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_omE8YFUREd6orZyN8N8Vlw" name="getDoubles">
+ <ownedParameter xmi:id="_aD6eAFUSEd6orZyN8N8Vlw" name="return" type="_7MEnMFRNEd6cNsKbEBJ-iA" isOrdered="true" isUnique="false" direction="return">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_iNo-MFUSEd6orZyN8N8Vlw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_h1gLAFUSEd6orZyN8N8Vlw" value="2"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_pibP4FUREd6orZyN8N8Vlw" name="addAndGetAll">
+ <ownedParameter xmi:id="_cCm_UFUSEd6orZyN8N8Vlw" name="return" type="_yRJ6kFUREd6orZyN8N8Vlw" direction="return">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_kqsPcFUSEd6orZyN8N8Vlw" value="19"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_iyibAFUSEd6orZyN8N8Vlw" value="3"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_tjh4YFUSEd6orZyN8N8Vlw" name="strings">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_1C7pMFUSEd6orZyN8N8Vlw" value="*"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_upvSgFUSEd6orZyN8N8Vlw" name="doubles" type="_7MEnMFRNEd6cNsKbEBJ-iA" isOrdered="true">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_0nKTMFUSEd6orZyN8N8Vlw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_vh5iMFUVEd6orZyN8N8Vlw" value="5"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_vP1pMFUSEd6orZyN8N8Vlw" name="dataTypes" type="_yRJ6kFUREd6orZyN8N8Vlw" isOrdered="true" isUnique="false">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_0JQPMFUSEd6orZyN8N8Vlw" value="18"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_6fjfYFUREd6orZyN8N8Vlw" name="getDataTypes">
+ <ownedParameter xmi:id="_nnO5EFUSEd6orZyN8N8Vlw" name="return" type="_yRJ6kFUREd6orZyN8N8Vlw" direction="return">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_s3BXsFUSEd6orZyN8N8Vlw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_sGn1gFUSEd6orZyN8N8Vlw"/>
+ </ownedParameter>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:DataType" xmi:id="_yRJ6kFUREd6orZyN8N8Vlw" name="DataType1">
+ <eAnnotations xmi:id="_UsryUGVzEd64qsCRqbn5Bg" source="http://www.topcased.org/documentation">
+ <details xmi:id="_UsryUWVzEd64qsCRqbn5Bg" key="documentation" value="Just call it DataType1"/>
+ </eAnnotations>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_y9HIAFUZEd6orZyN8N8Vlw" name="StaticClass">
+ <ownedAttribute xmi:id="_0gQ80lUZEd6orZyN8N8Vlw" name="azerty" isStatic="true">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_2VwygFWgEd6d4fJXl9gajg" value="azerty"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_brBJ8FZrEd6IzL8VmWdbhw" name="SubClass">
+ <generalization xmi:id="_fFgT01ZrEd6IzL8VmWdbhw" general="_y9HIAFUZEd6orZyN8N8Vlw"/>
+ <ownedAttribute xmi:id="_gfXpwFZrEd6IzL8VmWdbhw" name="toto">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Integer"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Enumeration" xmi:id="_9y2ygGWAEd64qsCRqbn5Bg" name="MyEnumeration">
+ <eAnnotations xmi:id="_agNu0GWBEd64qsCRqbn5Bg" source="http://www.topcased.org/documentation">
+ <details xmi:id="_agOV4GWBEd64qsCRqbn5Bg" key="documentation" value="MyEnumeration is just a simply enumeration in order to test documentation in enumeration."/>
+ </eAnnotations>
+ <ownedLiteral xmi:id="_BGl0IGWBEd64qsCRqbn5Bg" name="Literal1"/>
+ <ownedLiteral xmi:id="_B75EcmWBEd64qsCRqbn5Bg" name="Literal2"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_O-CukKbcEd6m3c2K_Ke8nQ" name="OuterClass">
+ <nestedClassifier xmi:type="uml:Class" xmi:id="_uUWDEKbcEd6m3c2K_Ke8nQ" name="InnerClass"/>
+ </packagedElement>
+ <profileApplication xmi:id="_7Jv4UP6gEd2zEeRO-8Et9Q">
+ <eAnnotations xmi:id="_7Jv4Uf6gEd2zEeRO-8Et9Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="pathmap://UML_PROFILES/Standard.profile.uml#_yzU58YinEdqtvbnfB2L_5w"/>
+ </eAnnotations>
+ <appliedProfile href="pathmap://UML_PROFILES/Standard.profile.uml#_0"/>
+ </profileApplication>
+ </packagedElement>
+ <packagedElement xmi:type="uml:DataType" xmi:id="_ncUO8P6hEd2zEeRO-8Et9Q" name="Equation"/>
+ <packagedElement xmi:type="uml:Package" xmi:id="_8d2vEP6hEd2zEeRO-8Et9Q" name="org">
+ <packagedElement xmi:type="uml:Package" xmi:id="_-aZUQP6hEd2zEeRO-8Et9Q" name="codelutin">
+ <packagedElement xmi:type="uml:Package" xmi:id="_BYCKEP6iEd2zEeRO-8Et9Q" name="types">
+ <packagedElement xmi:type="uml:DataType" xmi:id="_DIpMEP6iEd2zEeRO-8Et9Q" name="Formula"/>
+ </packagedElement>
+ </packagedElement>
+ </packagedElement>
+</uml:Model>
Copied: trunk/ant-eugene-task/src/test/resources/xmi/2.1/TestXMI21.umldi (from rev 769, trunk/eugene/src/test/resources/xmi/2.1/TestXMI21.umldi)
===================================================================
--- trunk/ant-eugene-task/src/test/resources/xmi/2.1/TestXMI21.umldi (rev 0)
+++ trunk/ant-eugene-task/src/test/resources/xmi/2.1/TestXMI21.umldi 2009-12-20 12:58:28 UTC (rev 772)
@@ -0,0 +1,544 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<diagrams:Diagrams xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:di="http://www.topcased.org/DI/1.0" xmlns:diagrams="http://www.topcased.org/Diagrams/1.0" xmi:id="__zkfAf3jEd2LebRc8diKJw" activeDiagram="__zpXgP3jEd2LebRc8diKJw">
+ <model href="TestXMI21.uml#_w8IxIM37EdqwVrslYOdUDA"/>
+ <diagrams xmi:id="__zpXgP3jEd2LebRc8diKJw" position="0,0" size="100,100" name="CDTest21" viewport="0,358">
+ <property xmi:id="__7azcP3jEd2LebRc8diKJw" key="pageFormatName" value="A4"/>
+ <property xmi:id="__7azcf3jEd2LebRc8diKJw" key="diagramWidth" value="840"/>
+ <property xmi:id="__7azcv3jEd2LebRc8diKJw" key="diagramHeight" value="1188"/>
+ <property xmi:id="__7azc_3jEd2LebRc8diKJw" key="pageMarginName" value="Small Margin"/>
+ <property xmi:id="__7azdP3jEd2LebRc8diKJw" key="diagramTopMargin" value="20"/>
+ <property xmi:id="__7azdf3jEd2LebRc8diKJw" key="diagramBottomMargin" value="20"/>
+ <property xmi:id="__7azdv3jEd2LebRc8diKJw" key="diagramLeftMargin" value="20"/>
+ <property xmi:id="__7azd_3jEd2LebRc8diKJw" key="diagramRightMargin" value="20"/>
+ <property xmi:id="__7azeP3jEd2LebRc8diKJw" key="orientation" value="portrait"/>
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="__zqloP3jEd2LebRc8diKJw" presentation="org.topcased.modeler.uml.classdiagram">
+ <element href="TestXMI21.uml#_w8IxIM37EdqwVrslYOdUDA"/>
+ </semanticModel>
+ <contained xsi:type="di:GraphNode" xmi:id="_NM0cAP58Ed2zEeRO-8Et9Q" position="125,149" size="365,-1">
+ <anchorage xmi:id="_X7T_AP58Ed2zEeRO-8Et9Q" graphEdge="_X7Y3gP58Ed2zEeRO-8Et9Q _YbdesP58Ed2zEeRO-8Et9Q _eo4qQP58Ed2zEeRO-8Et9Q _hujasP58Ed2zEeRO-8Et9Q"/>
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_NM0cAf58Ed2zEeRO-8Et9Q" presentation="default">
+ <element href="TestXMI21.uml#_NNUyUP58Ed2zEeRO-8Et9Q"/>
+ </semanticModel>
+ <contained xsi:type="di:GraphNode" xmi:id="_NM1DEP58Ed2zEeRO-8Et9Q">
+ <property xmi:id="_NM1DEf58Ed2zEeRO-8Et9Q" key="eStructuralFeatureID" value="37"/>
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_NM1DEv58Ed2zEeRO-8Et9Q" presentation="default">
+ <element href="TestXMI21.uml#_NNUyUP58Ed2zEeRO-8Et9Q"/>
+ </semanticModel>
+ <contained xsi:type="di:GraphNode" xmi:id="_OkPh8P58Ed2zEeRO-8Et9Q" position="0,0" size="-1,-1">
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_OkPh8f58Ed2zEeRO-8Et9Q" presentation="default">
+ <element href="TestXMI21.uml#_OkwfUP58Ed2zEeRO-8Et9Q"/>
+ </semanticModel>
+ </contained>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="_NM1DE_58Ed2zEeRO-8Et9Q">
+ <property xmi:id="_NM1DFP58Ed2zEeRO-8Et9Q" key="eStructuralFeatureID" value="47"/>
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_NM1DFf58Ed2zEeRO-8Et9Q" presentation="default">
+ <element href="TestXMI21.uml#_NNUyUP58Ed2zEeRO-8Et9Q"/>
+ </semanticModel>
+ <contained xsi:type="di:GraphNode" xmi:id="_hm4WgP6qEd2zEeRO-8Et9Q" position="0,0" size="-1,-1">
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_hm4Wgf6qEd2zEeRO-8Et9Q" presentation="default">
+ <element href="TestXMI21.uml#_hm5koP6qEd2zEeRO-8Et9Q"/>
+ </semanticModel>
+ </contained>
+ </contained>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="_TdM08P58Ed2zEeRO-8Et9Q" position="160,28" size="135,-1">
+ <anchorage xmi:id="_X7T_Af58Ed2zEeRO-8Et9Q" graphEdge="_X7Y3gP58Ed2zEeRO-8Et9Q"/>
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_TdM08f58Ed2zEeRO-8Et9Q" presentation="default">
+ <element href="TestXMI21.uml#_TdnrsP58Ed2zEeRO-8Et9Q"/>
+ </semanticModel>
+ <contained xsi:type="di:GraphNode" xmi:id="_TdM08v58Ed2zEeRO-8Et9Q">
+ <property xmi:id="_TdM08_58Ed2zEeRO-8Et9Q" key="eStructuralFeatureID" value="37"/>
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_TdM09P58Ed2zEeRO-8Et9Q" presentation="default">
+ <element href="TestXMI21.uml#_TdnrsP58Ed2zEeRO-8Et9Q"/>
+ </semanticModel>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="_TdM09f58Ed2zEeRO-8Et9Q">
+ <property xmi:id="_TdM09v58Ed2zEeRO-8Et9Q" key="eStructuralFeatureID" value="38"/>
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_TdM09_58Ed2zEeRO-8Et9Q" presentation="default">
+ <element href="TestXMI21.uml#_TdnrsP58Ed2zEeRO-8Et9Q"/>
+ </semanticModel>
+ </contained>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="_VvEw8P58Ed2zEeRO-8Et9Q" position="363,30" size="135,-1">
+ <anchorage xmi:id="_YbbpgP58Ed2zEeRO-8Et9Q" graphEdge="_YbdesP58Ed2zEeRO-8Et9Q"/>
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_VvEw8f58Ed2zEeRO-8Et9Q" presentation="default">
+ <element href="TestXMI21.uml#_VvGmIP58Ed2zEeRO-8Et9Q"/>
+ </semanticModel>
+ <contained xsi:type="di:GraphNode" xmi:id="_VvEw8v58Ed2zEeRO-8Et9Q">
+ <property xmi:id="_VvEw8_58Ed2zEeRO-8Et9Q" key="eStructuralFeatureID" value="37"/>
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_VvEw9P58Ed2zEeRO-8Et9Q" presentation="default">
+ <element href="TestXMI21.uml#_VvGmIP58Ed2zEeRO-8Et9Q"/>
+ </semanticModel>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="_VvEw9f58Ed2zEeRO-8Et9Q">
+ <property xmi:id="_VvEw9v58Ed2zEeRO-8Et9Q" key="eStructuralFeatureID" value="38"/>
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_VvEw9_58Ed2zEeRO-8Et9Q" presentation="default">
+ <element href="TestXMI21.uml#_VvGmIP58Ed2zEeRO-8Et9Q"/>
+ </semanticModel>
+ </contained>
+ </contained>
+ <contained xsi:type="di:GraphEdge" xmi:id="_X7Y3gP58Ed2zEeRO-8Et9Q" anchor="_X7T_AP58Ed2zEeRO-8Et9Q _X7T_Af58Ed2zEeRO-8Et9Q">
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_X7Y3gf58Ed2zEeRO-8Et9Q" presentation="default">
+ <element href="TestXMI21.uml#_X7ZekP58Ed2zEeRO-8Et9Q"/>
+ </semanticModel>
+ <contained xsi:type="di:EdgeObjectOffset" xmi:id="_X7Y3gv58Ed2zEeRO-8Et9Q" id="stereotypeEdgeObject"/>
+ </contained>
+ <contained xsi:type="di:GraphEdge" xmi:id="_YbdesP58Ed2zEeRO-8Et9Q" anchor="_X7T_AP58Ed2zEeRO-8Et9Q _YbbpgP58Ed2zEeRO-8Et9Q">
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_Ybdesf58Ed2zEeRO-8Et9Q" presentation="default">
+ <element href="TestXMI21.uml#_YbeFwf58Ed2zEeRO-8Et9Q"/>
+ </semanticModel>
+ <contained xsi:type="di:EdgeObjectOffset" xmi:id="_YbeFwP58Ed2zEeRO-8Et9Q" id="stereotypeEdgeObject"/>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="_ZsN78P58Ed2zEeRO-8Et9Q" position="114,257" size="195,-1">
+ <anchorage xmi:id="_eo1m8P58Ed2zEeRO-8Et9Q" graphEdge="_eo4qQP58Ed2zEeRO-8Et9Q"/>
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_ZsN78f58Ed2zEeRO-8Et9Q" presentation="default">
+ <element href="TestXMI21.uml#_ZsQYMP58Ed2zEeRO-8Et9Q"/>
+ </semanticModel>
+ <contained xsi:type="di:GraphNode" xmi:id="_ZsN78v58Ed2zEeRO-8Et9Q">
+ <property xmi:id="_ZsN78_58Ed2zEeRO-8Et9Q" key="eStructuralFeatureID" value="37"/>
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_ZsN79P58Ed2zEeRO-8Et9Q" presentation="default">
+ <element href="TestXMI21.uml#_ZsQYMP58Ed2zEeRO-8Et9Q"/>
+ </semanticModel>
+ <contained xsi:type="di:GraphNode" xmi:id="_aqT74P58Ed2zEeRO-8Et9Q" position="0,0" size="-1,-1">
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_aqUi8P58Ed2zEeRO-8Et9Q" presentation="default">
+ <element href="TestXMI21.uml#_aqVxEP58Ed2zEeRO-8Et9Q"/>
+ </semanticModel>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="_jez3YP58Ed2zEeRO-8Et9Q" position="0,0" size="-1,-1">
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_jez3Yf58Ed2zEeRO-8Et9Q" presentation="default">
+ <element href="TestXMI21.uml#_je1FgP58Ed2zEeRO-8Et9Q"/>
+ </semanticModel>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="_nr5i4P58Ed2zEeRO-8Et9Q" position="0,0" size="-1,-1">
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_nr5i4f58Ed2zEeRO-8Et9Q" presentation="default">
+ <element href="TestXMI21.uml#_nr6xAP58Ed2zEeRO-8Et9Q"/>
+ </semanticModel>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="_Aky70P6NEd2zEeRO-8Et9Q" position="0,0" size="-1,-1">
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_Aky70f6NEd2zEeRO-8Et9Q" presentation="default">
+ <element href="TestXMI21.uml#_Ak0J8P6NEd2zEeRO-8Et9Q"/>
+ </semanticModel>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="_8-C7IFRNEd6cNsKbEBJ-iA" position="0,0" size="-1,-1">
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_8-C7IVRNEd6cNsKbEBJ-iA" presentation="default">
+ <element href="TestXMI21.uml#_8-GlgFRNEd6cNsKbEBJ-iA"/>
+ </semanticModel>
+ </contained>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="_ZsN79f58Ed2zEeRO-8Et9Q">
+ <property xmi:id="_ZsN79v58Ed2zEeRO-8Et9Q" key="eStructuralFeatureID" value="47"/>
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_ZsN79_58Ed2zEeRO-8Et9Q" presentation="default">
+ <element href="TestXMI21.uml#_ZsQYMP58Ed2zEeRO-8Et9Q"/>
+ </semanticModel>
+ </contained>
+ </contained>
+ <contained xsi:type="di:GraphEdge" xmi:id="_eo4qQP58Ed2zEeRO-8Et9Q" anchor="_eo1m8P58Ed2zEeRO-8Et9Q _X7T_AP58Ed2zEeRO-8Et9Q">
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_eo4qQf58Ed2zEeRO-8Et9Q" presentation="default">
+ <element href="TestXMI21.uml#_eo5RUP58Ed2zEeRO-8Et9Q"/>
+ </semanticModel>
+ <contained xsi:type="di:EdgeObjectOffset" xmi:id="_eo4qQv58Ed2zEeRO-8Et9Q" id="stereotypeEdgeObject"/>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="_f4tTYP58Ed2zEeRO-8Et9Q" position="453,268" size="233,-1">
+ <anchorage xmi:id="_hug-cP58Ed2zEeRO-8Et9Q" graphEdge="_hujasP58Ed2zEeRO-8Et9Q _4u46EP6NEd2zEeRO-8Et9Q"/>
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_f4t6cP58Ed2zEeRO-8Et9Q" presentation="default">
+ <element href="TestXMI21.uml#_f4vvoP58Ed2zEeRO-8Et9Q"/>
+ </semanticModel>
+ <contained xsi:type="di:GraphNode" xmi:id="_f4t6cf58Ed2zEeRO-8Et9Q">
+ <property xmi:id="_f4t6cv58Ed2zEeRO-8Et9Q" key="eStructuralFeatureID" value="37"/>
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_f4t6c_58Ed2zEeRO-8Et9Q" presentation="default">
+ <element href="TestXMI21.uml#_f4vvoP58Ed2zEeRO-8Et9Q"/>
+ </semanticModel>
+ <contained xsi:type="di:GraphNode" xmi:id="_FrTWEP6iEd2zEeRO-8Et9Q" position="0,0" size="-1,-1">
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_FrTWEf6iEd2zEeRO-8Et9Q" presentation="default">
+ <element href="TestXMI21.uml#_FrUkMP6iEd2zEeRO-8Et9Q"/>
+ </semanticModel>
+ </contained>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="_f4t6dP58Ed2zEeRO-8Et9Q">
+ <property xmi:id="_f4t6df58Ed2zEeRO-8Et9Q" key="eStructuralFeatureID" value="47"/>
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_f4t6dv58Ed2zEeRO-8Et9Q" presentation="default">
+ <element href="TestXMI21.uml#_f4vvoP58Ed2zEeRO-8Et9Q"/>
+ </semanticModel>
+ <contained xsi:type="di:GraphNode" xmi:id="_0E2jIP6pEd2zEeRO-8Et9Q" position="0,0" size="-1,-1">
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_0E2jIf6pEd2zEeRO-8Et9Q" presentation="default">
+ <element href="TestXMI21.uml#_0E3xQP6pEd2zEeRO-8Et9Q"/>
+ </semanticModel>
+ </contained>
+ </contained>
+ </contained>
+ <contained xsi:type="di:GraphEdge" xmi:id="_hujasP58Ed2zEeRO-8Et9Q" anchor="_hug-cP58Ed2zEeRO-8Et9Q _X7T_AP58Ed2zEeRO-8Et9Q">
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_hujasf58Ed2zEeRO-8Et9Q" presentation="default">
+ <element href="TestXMI21.uml#_hukBwP58Ed2zEeRO-8Et9Q"/>
+ </semanticModel>
+ <contained xsi:type="di:EdgeObjectOffset" xmi:id="_hujasv58Ed2zEeRO-8Et9Q" id="stereotypeEdgeObject"/>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="_3Dqj0P6MEd2zEeRO-8Et9Q" position="22,436" size="291,-1">
+ <anchorage xmi:id="_hQjAUP6NEd2zEeRO-8Et9Q" graphEdge="_hQnRwP6NEd2zEeRO-8Et9Q"/>
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_3Dqj0f6MEd2zEeRO-8Et9Q" presentation="default">
+ <element href="TestXMI21.uml#_3DtAEP6MEd2zEeRO-8Et9Q"/>
+ </semanticModel>
+ <contained xsi:type="di:GraphNode" xmi:id="_3Dqj0v6MEd2zEeRO-8Et9Q">
+ <property xmi:id="_3Dqj0_6MEd2zEeRO-8Et9Q" key="eStructuralFeatureID" value="37"/>
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_3Dqj1P6MEd2zEeRO-8Et9Q" presentation="default">
+ <element href="TestXMI21.uml#_3DtAEP6MEd2zEeRO-8Et9Q"/>
+ </semanticModel>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="_3Dqj1f6MEd2zEeRO-8Et9Q">
+ <property xmi:id="_3Dqj1v6MEd2zEeRO-8Et9Q" key="eStructuralFeatureID" value="47"/>
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_3Dqj1_6MEd2zEeRO-8Et9Q" presentation="default">
+ <element href="TestXMI21.uml#_3DtAEP6MEd2zEeRO-8Et9Q"/>
+ </semanticModel>
+ <contained xsi:type="di:GraphNode" xmi:id="_ETR_wP6NEd2zEeRO-8Et9Q" position="0,0" size="-1,-1">
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_ETSm0P6NEd2zEeRO-8Et9Q" presentation="default">
+ <element href="TestXMI21.uml#_ETYGYP6NEd2zEeRO-8Et9Q"/>
+ </semanticModel>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="_JRbUwP6NEd2zEeRO-8Et9Q" position="0,0" size="-1,-1">
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_JRbUwf6NEd2zEeRO-8Et9Q" presentation="default">
+ <element href="TestXMI21.uml#_JRci4P6NEd2zEeRO-8Et9Q"/>
+ </semanticModel>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="_OoI6wP6NEd2zEeRO-8Et9Q" position="0,0" size="-1,-1">
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_OoI6wf6NEd2zEeRO-8Et9Q" presentation="default">
+ <element href="TestXMI21.uml#_OoKv8P6NEd2zEeRO-8Et9Q"/>
+ </semanticModel>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="_RvMLQP6NEd2zEeRO-8Et9Q" position="0,0" size="-1,-1">
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_RvMLQf6NEd2zEeRO-8Et9Q" presentation="default">
+ <element href="TestXMI21.uml#_RvNZYP6NEd2zEeRO-8Et9Q"/>
+ </semanticModel>
+ </contained>
+ </contained>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="_dFDQQP6NEd2zEeRO-8Et9Q" position="522,475" size="100,-1">
+ <anchorage xmi:id="_hQjAUf6NEd2zEeRO-8Et9Q" graphEdge="_hQnRwP6NEd2zEeRO-8Et9Q _rmQ28P6NEd2zEeRO-8Et9Q _4u46EP6NEd2zEeRO-8Et9Q"/>
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_dFDQQf6NEd2zEeRO-8Et9Q" presentation="default">
+ <element href="TestXMI21.uml#_dFFFcP6NEd2zEeRO-8Et9Q"/>
+ </semanticModel>
+ <contained xsi:type="di:GraphNode" xmi:id="_dFDQQv6NEd2zEeRO-8Et9Q">
+ <property xmi:id="_dFDQQ_6NEd2zEeRO-8Et9Q" key="eStructuralFeatureID" value="37"/>
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_dFDQRP6NEd2zEeRO-8Et9Q" presentation="default">
+ <element href="TestXMI21.uml#_dFFFcP6NEd2zEeRO-8Et9Q"/>
+ </semanticModel>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="_dFDQRf6NEd2zEeRO-8Et9Q">
+ <property xmi:id="_dFDQRv6NEd2zEeRO-8Et9Q" key="eStructuralFeatureID" value="47"/>
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_dFDQR_6NEd2zEeRO-8Et9Q" presentation="default">
+ <element href="TestXMI21.uml#_dFFFcP6NEd2zEeRO-8Et9Q"/>
+ </semanticModel>
+ </contained>
+ </contained>
+ <contained xsi:type="di:GraphEdge" xmi:id="_hQnRwP6NEd2zEeRO-8Et9Q" anchor="_hQjAUP6NEd2zEeRO-8Et9Q _hQjAUf6NEd2zEeRO-8Et9Q">
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_hQnRwf6NEd2zEeRO-8Et9Q" presentation="default">
+ <element href="TestXMI21.uml#_hQn40P6NEd2zEeRO-8Et9Q"/>
+ </semanticModel>
+ <contained xsi:type="di:EdgeObjectUV" xmi:id="_hQnRwv6NEd2zEeRO-8Et9Q" id="srcNameEdgeObject" uDistance="10" vDistance="10"/>
+ <contained xsi:type="di:EdgeObjectUV" xmi:id="_hQnRw_6NEd2zEeRO-8Et9Q" id="srcPropertiesEdgeObject" uDistance="25" vDistance="10"/>
+ <contained xsi:type="di:EdgeObjectUV" xmi:id="_hQnRxP6NEd2zEeRO-8Et9Q" id="srcCountEdgeObject" uDistance="10" vDistance="-10"/>
+ <contained xsi:type="di:EdgeObjectUV" xmi:id="_hQnRxf6NEd2zEeRO-8Et9Q" id="targetNameEdgeObject" uDistance="10" vDistance="10"/>
+ <contained xsi:type="di:EdgeObjectUV" xmi:id="_hQnRxv6NEd2zEeRO-8Et9Q" id="targetPropertiesEdgeObject" uDistance="25" vDistance="10"/>
+ <contained xsi:type="di:EdgeObjectUV" xmi:id="_hQnRx_6NEd2zEeRO-8Et9Q" id="targetCountEdgeObject" uDistance="10" vDistance="-10"/>
+ <contained xsi:type="di:EdgeObjectOffset" xmi:id="_hQnRyP6NEd2zEeRO-8Et9Q" visible="false" id="middleNameEdgeObject" offset="0,10"/>
+ <contained xsi:type="di:EdgeObjectOffset" xmi:id="_hQnRyf6NEd2zEeRO-8Et9Q" id="stereotypeEdgeObject" offset="0,-10"/>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="_pbmWMP6NEd2zEeRO-8Et9Q" position="484,678" size="172,-1">
+ <anchorage xmi:id="_rmAYQP6NEd2zEeRO-8Et9Q" graphEdge="_rmQ28P6NEd2zEeRO-8Et9Q _0bvC0P6NEd2zEeRO-8Et9Q"/>
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_pbmWMf6NEd2zEeRO-8Et9Q" presentation="default">
+ <element href="TestXMI21.uml#_pboycP6NEd2zEeRO-8Et9Q"/>
+ </semanticModel>
+ <contained xsi:type="di:GraphNode" xmi:id="_pbmWMv6NEd2zEeRO-8Et9Q">
+ <property xmi:id="_pbm9QP6NEd2zEeRO-8Et9Q" key="eStructuralFeatureID" value="37"/>
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_pbm9Qf6NEd2zEeRO-8Et9Q" presentation="default">
+ <element href="TestXMI21.uml#_pboycP6NEd2zEeRO-8Et9Q"/>
+ </semanticModel>
+ <contained xsi:type="di:GraphNode" xmi:id="_rdY3sP6hEd2zEeRO-8Et9Q" position="0,0" size="-1,-1">
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_rdY3sf6hEd2zEeRO-8Et9Q" presentation="default">
+ <element href="TestXMI21.uml#_rdaF0P6hEd2zEeRO-8Et9Q"/>
+ </semanticModel>
+ </contained>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="_pbm9Qv6NEd2zEeRO-8Et9Q">
+ <property xmi:id="_pbm9Q_6NEd2zEeRO-8Et9Q" key="eStructuralFeatureID" value="47"/>
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_pbm9RP6NEd2zEeRO-8Et9Q" presentation="default">
+ <element href="TestXMI21.uml#_pboycP6NEd2zEeRO-8Et9Q"/>
+ </semanticModel>
+ </contained>
+ </contained>
+ <contained xsi:type="di:GraphEdge" xmi:id="_rmQ28P6NEd2zEeRO-8Et9Q" anchor="_rmAYQP6NEd2zEeRO-8Et9Q _hQjAUf6NEd2zEeRO-8Et9Q">
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_rmQ28f6NEd2zEeRO-8Et9Q" presentation="default">
+ <element href="TestXMI21.uml#_rmReBP6NEd2zEeRO-8Et9Q"/>
+ </semanticModel>
+ <contained xsi:type="di:EdgeObjectUV" xmi:id="_rmQ28v6NEd2zEeRO-8Et9Q" id="srcNameEdgeObject" uDistance="10" vDistance="10"/>
+ <contained xsi:type="di:EdgeObjectUV" xmi:id="_rmQ28_6NEd2zEeRO-8Et9Q" id="srcPropertiesEdgeObject" uDistance="25" vDistance="10"/>
+ <contained xsi:type="di:EdgeObjectUV" xmi:id="_rmQ29P6NEd2zEeRO-8Et9Q" id="srcCountEdgeObject" uDistance="10" vDistance="-10"/>
+ <contained xsi:type="di:EdgeObjectUV" xmi:id="_rmQ29f6NEd2zEeRO-8Et9Q" id="targetNameEdgeObject" uDistance="10" vDistance="10"/>
+ <contained xsi:type="di:EdgeObjectUV" xmi:id="_rmReAP6NEd2zEeRO-8Et9Q" id="targetPropertiesEdgeObject" uDistance="25" vDistance="10"/>
+ <contained xsi:type="di:EdgeObjectUV" xmi:id="_rmReAf6NEd2zEeRO-8Et9Q" id="targetCountEdgeObject" uDistance="10" vDistance="-10"/>
+ <contained xsi:type="di:EdgeObjectOffset" xmi:id="_rmReAv6NEd2zEeRO-8Et9Q" visible="false" id="middleNameEdgeObject" offset="0,10"/>
+ <contained xsi:type="di:EdgeObjectOffset" xmi:id="_rmReA_6NEd2zEeRO-8Et9Q" id="stereotypeEdgeObject" offset="0,-10"/>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="_vhAOMP6NEd2zEeRO-8Et9Q" position="47,683" size="100,-1">
+ <anchorage xmi:id="_0bpjQP6NEd2zEeRO-8Et9Q" graphEdge="_0bvC0P6NEd2zEeRO-8Et9Q"/>
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_vhAOMf6NEd2zEeRO-8Et9Q" presentation="default">
+ <element href="TestXMI21.uml#_vhCqcP6NEd2zEeRO-8Et9Q"/>
+ </semanticModel>
+ <contained xsi:type="di:GraphNode" xmi:id="_vhAOMv6NEd2zEeRO-8Et9Q">
+ <property xmi:id="_vhAOM_6NEd2zEeRO-8Et9Q" key="eStructuralFeatureID" value="37"/>
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_vhAONP6NEd2zEeRO-8Et9Q" presentation="default">
+ <element href="TestXMI21.uml#_vhCqcP6NEd2zEeRO-8Et9Q"/>
+ </semanticModel>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="_vhAONf6NEd2zEeRO-8Et9Q">
+ <property xmi:id="_vhAONv6NEd2zEeRO-8Et9Q" key="eStructuralFeatureID" value="47"/>
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_vhAON_6NEd2zEeRO-8Et9Q" presentation="default">
+ <element href="TestXMI21.uml#_vhCqcP6NEd2zEeRO-8Et9Q"/>
+ </semanticModel>
+ </contained>
+ </contained>
+ <contained xsi:type="di:GraphEdge" xmi:id="_0bvC0P6NEd2zEeRO-8Et9Q" anchor="_0bpjQP6NEd2zEeRO-8Et9Q _rmAYQP6NEd2zEeRO-8Et9Q">
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_0bvC0f6NEd2zEeRO-8Et9Q" presentation="default">
+ <element href="TestXMI21.uml#_0bvC4P6NEd2zEeRO-8Et9Q"/>
+ </semanticModel>
+ <contained xsi:type="di:EdgeObjectUV" xmi:id="_0bvC0v6NEd2zEeRO-8Et9Q" id="srcNameEdgeObject" uDistance="10" vDistance="10"/>
+ <contained xsi:type="di:EdgeObjectUV" xmi:id="_0bvC0_6NEd2zEeRO-8Et9Q" id="srcCountEdgeObject" uDistance="10" vDistance="-10"/>
+ <contained xsi:type="di:EdgeObjectUV" xmi:id="_0bvC1P6NEd2zEeRO-8Et9Q" id="targetNameEdgeObject" uDistance="10" vDistance="10"/>
+ <contained xsi:type="di:EdgeObjectUV" xmi:id="_0bvC1f6NEd2zEeRO-8Et9Q" id="targetCountEdgeObject" uDistance="10" vDistance="-10"/>
+ <contained xsi:type="di:EdgeObjectOffset" xmi:id="_0bvC1v6NEd2zEeRO-8Et9Q" visible="false" id="middleNameEdgeObject" offset="0,20"/>
+ <contained xsi:type="di:EdgeObjectOffset" xmi:id="_0bvC1_6NEd2zEeRO-8Et9Q" id="stereotypeEdgeObject"/>
+ <contained xsi:type="di:GraphNode" xmi:id="_0bvC2P6NEd2zEeRO-8Et9Q" position="236,804" size="100,-1">
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_0bvC2f6NEd2zEeRO-8Et9Q" presentation="default">
+ <element href="TestXMI21.uml#_0bvC4P6NEd2zEeRO-8Et9Q"/>
+ </semanticModel>
+ <contained xsi:type="di:GraphNode" xmi:id="_0bvC2v6NEd2zEeRO-8Et9Q">
+ <property xmi:id="_0bvC2_6NEd2zEeRO-8Et9Q" key="eStructuralFeatureID" value="37"/>
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_0bvC3P6NEd2zEeRO-8Et9Q" presentation="default">
+ <element href="TestXMI21.uml#_0bvC4P6NEd2zEeRO-8Et9Q"/>
+ </semanticModel>
+ <contained xsi:type="di:GraphNode" xmi:id="_SRubIP6OEd2zEeRO-8Et9Q" position="0,0" size="-1,-1">
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_SRubIf6OEd2zEeRO-8Et9Q" presentation="default">
+ <element href="TestXMI21.uml#_SRvpQP6OEd2zEeRO-8Et9Q"/>
+ </semanticModel>
+ </contained>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="_0bvC3f6NEd2zEeRO-8Et9Q">
+ <property xmi:id="_0bvC3v6NEd2zEeRO-8Et9Q" key="eStructuralFeatureID" value="47"/>
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_0bvC3_6NEd2zEeRO-8Et9Q" presentation="default">
+ <element href="TestXMI21.uml#_0bvC4P6NEd2zEeRO-8Et9Q"/>
+ </semanticModel>
+ <contained xsi:type="di:GraphNode" xmi:id="_QmExoP6OEd2zEeRO-8Et9Q" position="0,0" size="-1,-1">
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_QmExof6OEd2zEeRO-8Et9Q" presentation="default">
+ <element href="TestXMI21.uml#_QmGm0P6OEd2zEeRO-8Et9Q"/>
+ </semanticModel>
+ </contained>
+ </contained>
+ </contained>
+ </contained>
+ <contained xsi:type="di:GraphEdge" xmi:id="_4u46EP6NEd2zEeRO-8Et9Q" anchor="_hQjAUf6NEd2zEeRO-8Et9Q _hug-cP58Ed2zEeRO-8Et9Q">
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_4u46Ef6NEd2zEeRO-8Et9Q" presentation="default">
+ <element href="TestXMI21.uml#_4u46Gv6NEd2zEeRO-8Et9Q"/>
+ </semanticModel>
+ <contained xsi:type="di:EdgeObjectUV" xmi:id="_4u46Ev6NEd2zEeRO-8Et9Q" id="srcNameEdgeObject" uDistance="10" vDistance="10"/>
+ <contained xsi:type="di:EdgeObjectUV" xmi:id="_4u46E_6NEd2zEeRO-8Et9Q" id="srcPropertiesEdgeObject" uDistance="25" vDistance="10"/>
+ <contained xsi:type="di:EdgeObjectUV" xmi:id="_4u46FP6NEd2zEeRO-8Et9Q" id="srcCountEdgeObject" uDistance="10" vDistance="-10"/>
+ <contained xsi:type="di:EdgeObjectUV" xmi:id="_4u46Ff6NEd2zEeRO-8Et9Q" id="targetNameEdgeObject" uDistance="10" vDistance="10"/>
+ <contained xsi:type="di:EdgeObjectUV" xmi:id="_4u46Fv6NEd2zEeRO-8Et9Q" id="targetPropertiesEdgeObject" uDistance="25" vDistance="10"/>
+ <contained xsi:type="di:EdgeObjectUV" xmi:id="_4u46F_6NEd2zEeRO-8Et9Q" id="targetCountEdgeObject" uDistance="10" vDistance="-10"/>
+ <contained xsi:type="di:EdgeObjectOffset" xmi:id="_4u46GP6NEd2zEeRO-8Et9Q" visible="false" id="middleNameEdgeObject" offset="0,10"/>
+ <contained xsi:type="di:EdgeObjectOffset" xmi:id="_4u46Gf6NEd2zEeRO-8Et9Q" id="stereotypeEdgeObject" offset="0,-10"/>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="_O_QUEP6qEd2zEeRO-8Et9Q" position="560,155" size="159,-1">
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_O_QUEf6qEd2zEeRO-8Et9Q" presentation="default">
+ <element href="TestXMI21.uml#_O_SJQP6qEd2zEeRO-8Et9Q"/>
+ </semanticModel>
+ <contained xsi:type="di:GraphNode" xmi:id="_O_QUEv6qEd2zEeRO-8Et9Q">
+ <property xmi:id="_O_QUE_6qEd2zEeRO-8Et9Q" key="eStructuralFeatureID" value="37"/>
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_O_QUFP6qEd2zEeRO-8Et9Q" presentation="default">
+ <element href="TestXMI21.uml#_O_SJQP6qEd2zEeRO-8Et9Q"/>
+ </semanticModel>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="_O_QUFf6qEd2zEeRO-8Et9Q">
+ <property xmi:id="_O_QUFv6qEd2zEeRO-8Et9Q" key="eStructuralFeatureID" value="47"/>
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_O_QUF_6qEd2zEeRO-8Et9Q" presentation="default">
+ <element href="TestXMI21.uml#_O_SJQP6qEd2zEeRO-8Et9Q"/>
+ </semanticModel>
+ </contained>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="_7Lc8IFRNEd6cNsKbEBJ-iA" position="615,72" size="148,-1">
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_7LdjMFRNEd6cNsKbEBJ-iA" presentation="default">
+ <element href="TestXMI21.uml#_7MEnMFRNEd6cNsKbEBJ-iA"/>
+ </semanticModel>
+ <contained xsi:type="di:GraphNode" xmi:id="_7LdjMVRNEd6cNsKbEBJ-iA">
+ <property xmi:id="_7LdjMlRNEd6cNsKbEBJ-iA" key="eStructuralFeatureID" value="37"/>
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_7LdjM1RNEd6cNsKbEBJ-iA" presentation="default">
+ <element href="TestXMI21.uml#_7MEnMFRNEd6cNsKbEBJ-iA"/>
+ </semanticModel>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="_7LdjNFRNEd6cNsKbEBJ-iA">
+ <property xmi:id="_7LdjNVRNEd6cNsKbEBJ-iA" key="eStructuralFeatureID" value="38"/>
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_7LdjNlRNEd6cNsKbEBJ-iA" presentation="default">
+ <element href="TestXMI21.uml#_7MEnMFRNEd6cNsKbEBJ-iA"/>
+ </semanticModel>
+ </contained>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="_ZK1WYFUREd6orZyN8N8Vlw" position="48,804" size="712,-1">
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_ZK1WYVUREd6orZyN8N8Vlw" presentation="default">
+ <element href="TestXMI21.uml#_ZK95QFUREd6orZyN8N8Vlw"/>
+ </semanticModel>
+ <contained xsi:type="di:GraphNode" xmi:id="_ZK1WYlUREd6orZyN8N8Vlw">
+ <property xmi:id="_ZK1WY1UREd6orZyN8N8Vlw" key="eStructuralFeatureID" value="37"/>
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_ZK1WZFUREd6orZyN8N8Vlw" presentation="default">
+ <element href="TestXMI21.uml#_ZK95QFUREd6orZyN8N8Vlw"/>
+ </semanticModel>
+ <contained xsi:type="di:GraphNode" xmi:id="_dA3z0FUREd6orZyN8N8Vlw" position="0,0" size="-1,-1">
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_dA3z0VUREd6orZyN8N8Vlw" presentation="default">
+ <element href="TestXMI21.uml#_dA6QEFUREd6orZyN8N8Vlw"/>
+ </semanticModel>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="_fT0G0FUREd6orZyN8N8Vlw" position="0,0" size="-1,-1">
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_fT0G0VUREd6orZyN8N8Vlw" presentation="default">
+ <element href="TestXMI21.uml#_fT0t4FUREd6orZyN8N8Vlw"/>
+ </semanticModel>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="_9VqJ0FUREd6orZyN8N8Vlw" position="0,0" size="-1,-1">
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_9VqJ0VUREd6orZyN8N8Vlw" presentation="default">
+ <element href="TestXMI21.uml#_9VqJ0lUREd6orZyN8N8Vlw"/>
+ </semanticModel>
+ </contained>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="_ZK1WZVUREd6orZyN8N8Vlw">
+ <property xmi:id="_ZK1WZlUREd6orZyN8N8Vlw" key="eStructuralFeatureID" value="47"/>
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_ZK1WZ1UREd6orZyN8N8Vlw" presentation="default">
+ <element href="TestXMI21.uml#_ZK95QFUREd6orZyN8N8Vlw"/>
+ </semanticModel>
+ <contained xsi:type="di:GraphNode" xmi:id="_g4ha0FUREd6orZyN8N8Vlw" position="0,0" size="-1,-1">
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_g4ha0VUREd6orZyN8N8Vlw" presentation="default">
+ <element href="TestXMI21.uml#_g4qkwFUREd6orZyN8N8Vlw"/>
+ </semanticModel>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="_omEVUFUREd6orZyN8N8Vlw" position="0,0" size="-1,-1">
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_omEVUVUREd6orZyN8N8Vlw" presentation="default">
+ <element href="TestXMI21.uml#_omE8YFUREd6orZyN8N8Vlw"/>
+ </semanticModel>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="_piao0FUREd6orZyN8N8Vlw" position="0,0" size="-1,-1">
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_piao0VUREd6orZyN8N8Vlw" presentation="default">
+ <element href="TestXMI21.uml#_pibP4FUREd6orZyN8N8Vlw"/>
+ </semanticModel>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="_6fi4UFUREd6orZyN8N8Vlw" position="0,0" size="-1,-1">
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_6fi4UVUREd6orZyN8N8Vlw" presentation="default">
+ <element href="TestXMI21.uml#_6fjfYFUREd6orZyN8N8Vlw"/>
+ </semanticModel>
+ </contained>
+ </contained>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="_yRCl0FUREd6orZyN8N8Vlw" position="586,18" size="150,-1">
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_yRCl0VUREd6orZyN8N8Vlw" presentation="default">
+ <element href="TestXMI21.uml#_yRJ6kFUREd6orZyN8N8Vlw"/>
+ </semanticModel>
+ <contained xsi:type="di:GraphNode" xmi:id="_yRCl0lUREd6orZyN8N8Vlw">
+ <property xmi:id="_yRCl01UREd6orZyN8N8Vlw" key="eStructuralFeatureID" value="37"/>
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_yRCl1FUREd6orZyN8N8Vlw" presentation="default">
+ <element href="TestXMI21.uml#_yRJ6kFUREd6orZyN8N8Vlw"/>
+ </semanticModel>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="_yRCl1VUREd6orZyN8N8Vlw">
+ <property xmi:id="_yRCl1lUREd6orZyN8N8Vlw" key="eStructuralFeatureID" value="38"/>
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_yRCl11UREd6orZyN8N8Vlw" presentation="default">
+ <element href="TestXMI21.uml#_yRJ6kFUREd6orZyN8N8Vlw"/>
+ </semanticModel>
+ </contained>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="_y9F54FUZEd6orZyN8N8Vlw" position="89,1000" size="163,-1">
+ <anchorage xmi:id="_fFfFsVZrEd6IzL8VmWdbhw" graphEdge="_fFgT0FZrEd6IzL8VmWdbhw"/>
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_y9F54VUZEd6orZyN8N8Vlw" presentation="default">
+ <element href="TestXMI21.uml#_y9HIAFUZEd6orZyN8N8Vlw"/>
+ </semanticModel>
+ <contained xsi:type="di:GraphNode" xmi:id="_y9F54lUZEd6orZyN8N8Vlw">
+ <property xmi:id="_y9F541UZEd6orZyN8N8Vlw" key="eStructuralFeatureID" value="37"/>
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_y9F55FUZEd6orZyN8N8Vlw" presentation="default">
+ <element href="TestXMI21.uml#_y9HIAFUZEd6orZyN8N8Vlw"/>
+ </semanticModel>
+ <contained xsi:type="di:GraphNode" xmi:id="_0gQ80FUZEd6orZyN8N8Vlw" position="0,0" size="-1,-1">
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_0gQ80VUZEd6orZyN8N8Vlw" presentation="default">
+ <element href="TestXMI21.uml#_0gQ80lUZEd6orZyN8N8Vlw"/>
+ </semanticModel>
+ </contained>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="_y9F55VUZEd6orZyN8N8Vlw">
+ <property xmi:id="_y9F55lUZEd6orZyN8N8Vlw" key="eStructuralFeatureID" value="47"/>
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_y9F551UZEd6orZyN8N8Vlw" presentation="default">
+ <element href="TestXMI21.uml#_y9HIAFUZEd6orZyN8N8Vlw"/>
+ </semanticModel>
+ </contained>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="_bqatAFZrEd6IzL8VmWdbhw" position="430,1003" size="100,-1">
+ <anchorage xmi:id="_fFfFsFZrEd6IzL8VmWdbhw" graphEdge="_fFgT0FZrEd6IzL8VmWdbhw"/>
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_bqbUEFZrEd6IzL8VmWdbhw" presentation="default">
+ <element href="TestXMI21.uml#_brBJ8FZrEd6IzL8VmWdbhw"/>
+ </semanticModel>
+ <contained xsi:type="di:GraphNode" xmi:id="_bqbUEVZrEd6IzL8VmWdbhw">
+ <property xmi:id="_bqbUElZrEd6IzL8VmWdbhw" key="eStructuralFeatureID" value="37"/>
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_bqbUE1ZrEd6IzL8VmWdbhw" presentation="default">
+ <element href="TestXMI21.uml#_brBJ8FZrEd6IzL8VmWdbhw"/>
+ </semanticModel>
+ <contained xsi:type="di:GraphNode" xmi:id="_gfVNgFZrEd6IzL8VmWdbhw" position="0,0" size="-1,-1">
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_gfVNgVZrEd6IzL8VmWdbhw" presentation="default">
+ <element href="TestXMI21.uml#_gfXpwFZrEd6IzL8VmWdbhw"/>
+ </semanticModel>
+ </contained>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="_bqbUFFZrEd6IzL8VmWdbhw">
+ <property xmi:id="_bqbUFVZrEd6IzL8VmWdbhw" key="eStructuralFeatureID" value="47"/>
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_bqbUFlZrEd6IzL8VmWdbhw" presentation="default">
+ <element href="TestXMI21.uml#_brBJ8FZrEd6IzL8VmWdbhw"/>
+ </semanticModel>
+ </contained>
+ </contained>
+ <contained xsi:type="di:GraphEdge" xmi:id="_fFgT0FZrEd6IzL8VmWdbhw" anchor="_fFfFsFZrEd6IzL8VmWdbhw _fFfFsVZrEd6IzL8VmWdbhw">
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_fFgT0VZrEd6IzL8VmWdbhw" presentation="default">
+ <element href="TestXMI21.uml#_fFgT01ZrEd6IzL8VmWdbhw"/>
+ </semanticModel>
+ <contained xsi:type="di:EdgeObjectOffset" xmi:id="_fFgT0lZrEd6IzL8VmWdbhw" id="stereotypeEdgeObject"/>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="_9ytokGWAEd64qsCRqbn5Bg" position="682,516" size="100,-1">
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_9ytokWWAEd64qsCRqbn5Bg" presentation="default">
+ <element href="TestXMI21.uml#_9y2ygGWAEd64qsCRqbn5Bg"/>
+ </semanticModel>
+ <contained xsi:type="di:GraphNode" xmi:id="_9ytokmWAEd64qsCRqbn5Bg">
+ <property xmi:id="_9ytok2WAEd64qsCRqbn5Bg" key="eStructuralFeatureID" value="39"/>
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_9ytolGWAEd64qsCRqbn5Bg" presentation="default">
+ <element href="TestXMI21.uml#_9y2ygGWAEd64qsCRqbn5Bg"/>
+ </semanticModel>
+ <contained xsi:type="di:GraphNode" xmi:id="_BGMykGWBEd64qsCRqbn5Bg" position="0,0" size="-1,-1">
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_BGNZoGWBEd64qsCRqbn5Bg" presentation="default">
+ <element href="TestXMI21.uml#_BGl0IGWBEd64qsCRqbn5Bg"/>
+ </semanticModel>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="_B75EcGWBEd64qsCRqbn5Bg" position="0,0" size="-1,-1">
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_B75EcWWBEd64qsCRqbn5Bg" presentation="default">
+ <element href="TestXMI21.uml#_B75EcmWBEd64qsCRqbn5Bg"/>
+ </semanticModel>
+ </contained>
+ </contained>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="_O992EKbcEd6m3c2K_Ke8nQ" position="190,604" size="100,-1">
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_O992EabcEd6m3c2K_Ke8nQ" presentation="default">
+ <element href="TestXMI21.uml#_O-CukKbcEd6m3c2K_Ke8nQ"/>
+ </semanticModel>
+ <contained xsi:type="di:GraphNode" xmi:id="_O992EqbcEd6m3c2K_Ke8nQ">
+ <property xmi:id="_O992E6bcEd6m3c2K_Ke8nQ" key="eStructuralFeatureID" value="37"/>
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_O992FKbcEd6m3c2K_Ke8nQ" presentation="default">
+ <element href="TestXMI21.uml#_O-CukKbcEd6m3c2K_Ke8nQ"/>
+ </semanticModel>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="_O992FabcEd6m3c2K_Ke8nQ">
+ <property xmi:id="_O992FqbcEd6m3c2K_Ke8nQ" key="eStructuralFeatureID" value="47"/>
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_O992F6bcEd6m3c2K_Ke8nQ" presentation="default">
+ <element href="TestXMI21.uml#_O-CukKbcEd6m3c2K_Ke8nQ"/>
+ </semanticModel>
+ </contained>
+ </contained>
+ </diagrams>
+</diagrams:Diagrams>
Copied: trunk/ant-eugene-task/src/test/resources/xmi/2.1/cmsCore.uml (from rev 769, trunk/eugene/src/test/resources/xmi/2.1/cmsCore.uml)
===================================================================
--- trunk/ant-eugene-task/src/test/resources/xmi/2.1/cmsCore.uml (rev 0)
+++ trunk/ant-eugene-task/src/test/resources/xmi/2.1/cmsCore.uml 2009-12-20 12:58:28 UTC (rev 772)
@@ -0,0 +1,4998 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="2.1" xmlns:xmi="http://schema.omg.org/spec/XMI/2.1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:AcceleoBusiness="http:///schemas/AcceleoBusiness/_81fAsPWcEdyuYMHNZCqWBQ/0" xmlns:Sharengoserviceprofile="http:///schemas/Sharengoserviceprofile/_bMLXQKEQEd2L7a68DRX6Bg/1" xmlns:Sharengoserviceprofile_1="http:///schemas/Sharengoserviceprofile/_pCa5EPQ4Ed2_aZMAEjWDNQ/2" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:uml="http://www.eclipse.org/uml2/2.1.0/UML" xsi:schemaLocation="http:///schemas/AcceleoBusiness/_81fAsPWcEdyuYMHNZCqWBQ/0 pathmap://ACCELEO_PROFILES/Acceleo.Business.profile.uml#_81g14fWcEdyuYMHNZCqWBQ http:///schemas/Sharengoserviceprofile/_bMLXQKEQEd2L7a68DRX6Bg/1 pathmap://SHARENGO_PROFILES/Sharengo.service.profile.uml#_bMLXQaEQEd2L7a68DRX6Bg http:///schemas/Sharengoserviceprofile/_pCa5EPQ4Ed2_aZMAEjWDNQ/2 pathmap://SHARENGO_PROFILES/Sharengo.service.profile.uml#_pCbgIPQ4Ed2_aZMAEjWDNQ">
+ <uml:Model xmi:id="_qb8akM37EdqwVrslYOdUDA" name="org::sharengo::cms::core">
+ <packagedElement xmi:type="uml:Package" xmi:id="_w8IxIM37EdqwVrslYOdUDA" name="org.sharengo.cms.core.services">
+ <packagedElement xmi:type="uml:Enumeration" xmi:id="_EvqPMOiTEd25AsNl_TBRDQ" name="ImportStrategy">
+ <ownedLiteral xmi:id="_HU8PYOiTEd25AsNl_TBRDQ" name="CREATE_UPDATE"/>
+ <ownedLiteral xmi:id="_HrlNwOiTEd25AsNl_TBRDQ" name="UPDATE_ONLY"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_dMNk0OhrEd25AsNl_TBRDQ" name="XMLImportExportSrv" clientDependency="_G83CYOiaEd25AsNl_TBRDQ _MvnEI-iaEd25AsNl_TBRDQ _Z76GVOiaEd25AsNl_TBRDQ _h1gf0-iaEd25AsNl_TBRDQ _ugQAw-uSEd2nbcXqLzlhyA _e3MN8-uiEd2w6L86tbByuw _yGzKsOvUEd2y9MAFkymhaQ _0V7Us-vUEd2y9MAFkymhaQ _FpAlo-7AEd2vc7ElAwQEXw _q0zzQ-7TEd2vc7ElAwQEXw _EIExVPdmEd2Fr5Df5xrkyw _HqrVZPdmEd2Fr5Df5xrkyw _uF1O9PkiEd2ngN8mqQoDPw _uoP_hPkiEd2ngN8mqQoDPw _8dreQ_kiEd2ngN8mqQoDPw _TDTVY_klEd2ngN8mqQoDPw _gPp7EwGuEd632JysvO87Dg _KT-c8AJpEd6BOa-ng0LLhw">
+ <ownedOperation xmi:id="_fbp34OhrEd25AsNl_TBRDQ" name="exportContentsByContentDef">
+ <ownedParameter xmi:id="_TAPjQOhvEd25AsNl_TBRDQ" name="definitionIds" isOrdered="true">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_OGfJkOhwEd25AsNl_TBRDQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_OjP-EOhwEd25AsNl_TBRDQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_fChCUOhvEd25AsNl_TBRDQ" name="return" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_YNI5EHmZEd2HRLLd0I1WrA"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_GfaEUHmfEd2HRLLd0I1WrA"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_KQqi-HjwEd2MH8DN-NMNrA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_hzn00OhrEd25AsNl_TBRDQ" name="exportContentsBySearch">
+ <ownedParameter xmi:id="_Wvm7gOhwEd25AsNl_TBRDQ" name="searchCriteria" type="_FzLjsLoaEd2A0rZMX9hUqA" isOrdered="true">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_7i_jwOhwEd25AsNl_TBRDQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_76CKwOhwEd25AsNl_TBRDQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_xY6OAOhzEd25AsNl_TBRDQ" name="return" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_GfaEUHmfEd2HRLLd0I1WrA"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_YNI5EHmZEd2HRLLd0I1WrA"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_4RBZUKs-Ed2Nmqhc73l7SA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_j-yr4OhrEd25AsNl_TBRDQ" name="exportContentsBySoc">
+ <ownedParameter xmi:id="_agNC0OhxEd25AsNl_TBRDQ" name="SocIds" isOrdered="true">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_cmlggOhxEd25AsNl_TBRDQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_cFBEgOhxEd25AsNl_TBRDQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_y3C_8OhzEd25AsNl_TBRDQ" name="return" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_GfaEUHmfEd2HRLLd0I1WrA"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_YNI5EHmZEd2HRLLd0I1WrA"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_KQqi-HjwEd2MH8DN-NMNrA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_pSZ6kOhrEd25AsNl_TBRDQ" name="exportContentDefByIds">
+ <ownedParameter xmi:id="_oVSjUOhxEd25AsNl_TBRDQ" name="ContentDefIds" isOrdered="true">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Qys7YOh0Ed25AsNl_TBRDQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_QgETQOh0Ed25AsNl_TBRDQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_0JsTkOhzEd25AsNl_TBRDQ" name="return" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_GfaEUHmfEd2HRLLd0I1WrA"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_YNI5EHmZEd2HRLLd0I1WrA"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_KQqi-HjwEd2MH8DN-NMNrA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_NaoF8OhsEd25AsNl_TBRDQ" name="exportAllContentDef">
+ <ownedParameter xmi:id="_1gaO4OhzEd25AsNl_TBRDQ" name="return" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_Wlc2wOhsEd25AsNl_TBRDQ" name="exportAllLinks">
+ <ownedParameter xmi:id="_3rxTMOhzEd25AsNl_TBRDQ" name="return" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_cYvEAOhsEd25AsNl_TBRDQ" name="exportLinksRelatedToContent">
+ <ownedParameter xmi:id="_4wQ2EOhzEd25AsNl_TBRDQ" name="return" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_8K04cOhzEd25AsNl_TBRDQ" name="contentId" isOrdered="true">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_NvJDwOh0Ed25AsNl_TBRDQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_NbvmoOh0Ed25AsNl_TBRDQ"/>
+ </ownedParameter>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_GfaEUHmfEd2HRLLd0I1WrA"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_YNI5EHmZEd2HRLLd0I1WrA"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_KQqi-HjwEd2MH8DN-NMNrA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ccEPYOhtEd25AsNl_TBRDQ" name="exportLinksOfLinkDef">
+ <ownedParameter xmi:id="_54cmIOhzEd25AsNl_TBRDQ" name="return" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_C3-s8Oh0Ed25AsNl_TBRDQ" name="LinkDefId" isOrdered="true">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_O5O4UOh0Ed25AsNl_TBRDQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_OnvfsOh0Ed25AsNl_TBRDQ"/>
+ </ownedParameter>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_GfaEUHmfEd2HRLLd0I1WrA"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_YNI5EHmZEd2HRLLd0I1WrA"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_KQqi-HjwEd2MH8DN-NMNrA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_kxi3IOhuEd25AsNl_TBRDQ" name="importContents">
+ <ownedParameter xmi:id="_XFj2AOhzEd25AsNl_TBRDQ" name="return" type="_kXbRgOhvEd25AsNl_TBRDQ" direction="return"/>
+ <ownedParameter xmi:id="_hsuB8OhzEd25AsNl_TBRDQ" name="resource">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_-yF6AOiREd25AsNl_TBRDQ" name="strategy" type="_EvqPMOiTEd25AsNl_TBRDQ"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_YNI5EHmZEd2HRLLd0I1WrA"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_GfaEUHmfEd2HRLLd0I1WrA"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_4RBZUKs-Ed2Nmqhc73l7SA"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_R_qg8OYHEd2ikLHnwqSzSg"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_JUeMMOlZEd2hcOPlZHSiFw"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_mu5UoOhuEd25AsNl_TBRDQ" name="importContentDef">
+ <ownedParameter xmi:id="_YV1LEOhzEd25AsNl_TBRDQ" name="return" type="_kXbRgOhvEd25AsNl_TBRDQ" direction="return"/>
+ <ownedParameter xmi:id="_pjgYAOhzEd25AsNl_TBRDQ" name="resource">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_-yF6AOiREd25AsNl_TBRDQ" name="strategy" type="_EvqPMOiTEd25AsNl_TBRDQ"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_R_qg8OYHEd2ikLHnwqSzSg"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_GfaEUHmfEd2HRLLd0I1WrA"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_YNI5EHmZEd2HRLLd0I1WrA"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_4RBZUKs-Ed2Nmqhc73l7SA"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_JUeMMOlZEd2hcOPlZHSiFw"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_oerQMOhuEd25AsNl_TBRDQ" name="importLinks">
+ <ownedParameter xmi:id="_ZhGrYOhzEd25AsNl_TBRDQ" name="return" type="_kXbRgOhvEd25AsNl_TBRDQ" direction="return"/>
+ <ownedParameter xmi:id="_sbJTgOhzEd25AsNl_TBRDQ" name="resource">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_-yF6AOiREd25AsNl_TBRDQ" name="strategy" type="_EvqPMOiTEd25AsNl_TBRDQ"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_R_qg8OYHEd2ikLHnwqSzSg"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_4RBZUKs-Ed2Nmqhc73l7SA"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_YNI5EHmZEd2HRLLd0I1WrA"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_GfaEUHmfEd2HRLLd0I1WrA"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_JUeMMOlZEd2hcOPlZHSiFw"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_YL-0EOiKEd25AsNl_TBRDQ" name="importSoc">
+ <ownedParameter xmi:id="_Zh7TUOiKEd25AsNl_TBRDQ" name="resource">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_-yF6AOiREd25AsNl_TBRDQ" name="strategy" type="_EvqPMOiTEd25AsNl_TBRDQ"/>
+ <ownedParameter xmi:id="_ZzEtsOiKEd25AsNl_TBRDQ" name="return" type="_kXbRgOhvEd25AsNl_TBRDQ" direction="return"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_R_qg8OYHEd2ikLHnwqSzSg"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_4RBZUKs-Ed2Nmqhc73l7SA"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_YNI5EHmZEd2HRLLd0I1WrA"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_GfaEUHmfEd2HRLLd0I1WrA"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_JUeMMOlZEd2hcOPlZHSiFw"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_spkSkOiKEd25AsNl_TBRDQ" name="exportSocByIds">
+ <ownedParameter xmi:id="_uHozEOiKEd25AsNl_TBRDQ" name="ids">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xB92MOiKEd25AsNl_TBRDQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_wtTNwOiKEd25AsNl_TBRDQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_uL0vgOiKEd25AsNl_TBRDQ" name="return" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedParameter>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_GfaEUHmfEd2HRLLd0I1WrA"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_YNI5EHmZEd2HRLLd0I1WrA"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_KQqi-HjwEd2MH8DN-NMNrA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_xNxvMOxcEd2y9MAFkymhaQ" name="exportContentsByIds">
+ <ownedParameter xmi:id="_1PcN0OxcEd2y9MAFkymhaQ" name="contentIds" visibility="public" isOrdered="true">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_SgoP8OxdEd2y9MAFkymhaQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VAkdIOxdEd2y9MAFkymhaQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_DZdcgOxdEd2y9MAFkymhaQ" name="Parameter1" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_GfaEUHmfEd2HRLLd0I1WrA"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_YNI5EHmZEd2HRLLd0I1WrA"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_KQqi-HjwEd2MH8DN-NMNrA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_aSQxAPdlEd2Fr5Df5xrkyw" name="exportNomenclatureById">
+ <ownedParameter xmi:id="_dwvDAPdlEd2Fr5Df5xrkyw" name="return" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_gm7NAPdlEd2Fr5Df5xrkyw" name="id">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_GfaEUHmfEd2HRLLd0I1WrA"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_KQqi-HjwEd2MH8DN-NMNrA"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_YNI5EHmZEd2HRLLd0I1WrA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_rz40svdlEd2Fr5Df5xrkyw" name="importNomenclature">
+ <ownedParameter xmi:id="_uo4E0PdlEd2Fr5Df5xrkyw" name="return" type="_kXbRgOhvEd25AsNl_TBRDQ" direction="return"/>
+ <ownedParameter xmi:id="_wU6I0PdlEd2Fr5Df5xrkyw" name="resourse">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_5f-xQPdlEd2Fr5Df5xrkyw" name="strategy" type="_EvqPMOiTEd25AsNl_TBRDQ"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_GfaEUHmfEd2HRLLd0I1WrA"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_4RBZUKs-Ed2Nmqhc73l7SA"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_YNI5EHmZEd2HRLLd0I1WrA"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_R_qg8OYHEd2ikLHnwqSzSg"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_JUeMMOlZEd2hcOPlZHSiFw"/>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_Ugb_4Hi_Ed2oZoPbWJIMHg" name="ContentSrv" clientDependency="_JMIko3jAEd2oZoPbWJIMHg _sqMpo3jJEd2vSLEPekkQZw _W1GZ43sfEd2br5ngUa3Ghw _PG6HAIYTEd2FDsNjNrtp7Q _PckZkOleEd2w6L86tbByuw">
+ <ownedOperation xmi:id="_LpgsYHjIEd2vSLEPekkQZw" name="create">
+ <ownedParameter xmi:id="_OSEDAHjIEd2vSLEPekkQZw" name="return" type="_3UukkHjHEd2vSLEPekkQZw" direction="return"/>
+ <ownedParameter xmi:id="_RbyNAHjIEd2vSLEPekkQZw" name="content" type="_3UukkHjHEd2vSLEPekkQZw"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_KQqi-HjwEd2MH8DN-NMNrA"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_bI0twHg-Ed2lVPDSSAZWVg"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_IaaAMHjVEd2XX6MpUtjnfg" name="find">
+ <ownedParameter xmi:id="_KeeJsHjVEd2XX6MpUtjnfg" name="return" type="_3UukkHjHEd2vSLEPekkQZw" direction="return" effect="read"/>
+ <ownedParameter xmi:id="_Kg8O4HjVEd2XX6MpUtjnfg" name="contentID">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_cqEC8X_REd2UJZ6mvauuHQ" name="delete">
+ <ownedParameter xmi:id="_laVlwH_REd2UJZ6mvauuHQ" name="contentId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_AjD0MEEtEd6CQdz5SsrpPw" name="return" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_vdrM8IATEd2AxNDbeUs4Sw" name="update">
+ <ownedParameter xmi:id="_8-K9gIATEd2AxNDbeUs4Sw" name="content" type="_3UukkHjHEd2vSLEPekkQZw"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_KQqi-HjwEd2MH8DN-NMNrA"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_4RBZUKs-Ed2Nmqhc73l7SA"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_EbIwUKtAEd2Nmqhc73l7SA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_K8Su8JOAEd2PpNHrflS_6A" name="deleteAttributesFromAttributeDef">
+ <ownedParameter xmi:id="_QVyjMJOAEd2PpNHrflS_6A" name="attributeDefId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedParameter>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_GfaEUHmfEd2HRLLd0I1WrA"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_YNI5EHmZEd2HRLLd0I1WrA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_OXz74JuJEd2hhejVV_1tQg" name="findAll">
+ <ownedParameter xmi:id="_ewFK0JuJEd2hhejVV_1tQg" name="return" type="_G8ZTMJuJEd2hhejVV_1tQg" direction="return"/>
+ <ownedParameter xmi:id="_iejnsJuJEd2hhejVV_1tQg" name="start">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Integer"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_igZawJuJEd2hhejVV_1tQg" name="end">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Integer"/>
+ </ownedParameter>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_4RBZUKs-Ed2Nmqhc73l7SA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_1INfoJwnEd2jKtVlU3vFlQ" name="findContentHeader">
+ <ownedParameter xmi:id="__7k7kJwnEd2jKtVlU3vFlQ" name="return" type="__rDAwJttEd2hONjUBs7mIQ" direction="return"/>
+ <ownedParameter xmi:id="_BkpLIJwoEd2jKtVlU3vFlQ" name="id">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_2cDtIJwnEd2jKtVlU3vFlQ" name="findContentsByIds">
+ <ownedParameter xmi:id="_3aIe8JwnEd2jKtVlU3vFlQ" name="return" type="_5PgFIJwnEd2jKtVlU3vFlQ" direction="return"/>
+ <ownedParameter xmi:id="_-iY7EJwnEd2jKtVlU3vFlQ" name="ids" type="_o1-dkIVgEd2N0bQZBk24XA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_Uo5a4LsDEd2hnI17Wy1x7w" name="findContentIdsCorrespondingToContentDefs">
+ <ownedParameter xmi:id="_ZplGgLsDEd2hnI17Wy1x7w" name="contentDefId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_iI-7wLsDEd2hnI17Wy1x7w" name="return" type="_ddB9cIViEd2N0bQZBk24XA" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_P3yNoPm_Ed2-r9_matJLyA" name="findContents">
+ <ownedParameter xmi:id="_XNnywPm_Ed2-r9_matJLyA" name="return" type="_nOLcQKXAEd2BUJWkFP_TZQ" direction="return"/>
+ <ownedParameter xmi:id="_dRgAwPm_Ed2-r9_matJLyA" name="ids" type="_o1-dkIVgEd2N0bQZBk24XA"/>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_-u-c1XTbEd20yqJGyRKhKA" name="Dependency1" supplier="_3ac7wHTaEd20yqJGyRKhKA" client="_yvPJ2HTaEd20yqJGyRKhKA"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_zAlIsHggEd2Vxr2aiClL8g" name="AttributeDefinitionSrv" clientDependency="_CTSdxXghEd2Vxr2aiClL8g _52HgE3jDEd2y99hUAsLkzQ _3JaPFHm8Ed2ql75AYIhxSA _zZJ1IpPJEd24J-xmUsjYjg">
+ <ownedOperation xmi:id="_0lpMkHghEd2Vxr2aiClL8g" name="create">
+ <ownedParameter xmi:id="_Sddw4HgiEd2Vxr2aiClL8g" name="return" type="_4oxq2HghEd2Vxr2aiClL8g" direction="return"/>
+ <ownedParameter xmi:id="_VgEmQHgiEd2Vxr2aiClL8g" name="attributeDefinitionData" type="_4oxq2HghEd2Vxr2aiClL8g"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_yvGYUHXJEd20DoWUDUK0Ig"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_YNI5EHmZEd2HRLLd0I1WrA"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_KQqi-HjwEd2MH8DN-NMNrA"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_GfaEUHmfEd2HRLLd0I1WrA"/>
+ <raisedException xmi:type="uml:Class" href="#_eJUcAN5UEd2Bgrjmm1cxJQ"/>
+ <raisedException xmi:type="uml:Class" href="#_Qwk5QN5UEd2Bgrjmm1cxJQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_QCWoQHhBEd2X9uNQyI_qHw" name="findByContentDef">
+ <ownedParameter xmi:id="_kei_oHhBEd2X9uNQyI_qHw" name="return" type="_ZytvEHhBEd2X9uNQyI_qHw" direction="return"/>
+ <ownedParameter xmi:id="_c3YOIHjqEd2MH8DN-NMNrA" name="contentDefId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_GfaEUHmfEd2HRLLd0I1WrA"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_YNI5EHmZEd2HRLLd0I1WrA"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_KQqi-HjwEd2MH8DN-NMNrA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_0vbNIHhBEd2X9uNQyI_qHw" name="moveAtIndex">
+ <ownedParameter xmi:id="_9Z5p8HhBEd2X9uNQyI_qHw" name="index">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_6VQiUHhDEd2X9uNQyI_qHw" name="attributeDefinitionId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_YNI5EHmZEd2HRLLd0I1WrA"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_673s0HXGEd2Ekv686xx4qA"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_KQqi-HjwEd2MH8DN-NMNrA"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_GfaEUHmfEd2HRLLd0I1WrA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_bYAHQHkEEd2Atp1vvmnWrA" name="createItem">
+ <ownedParameter xmi:id="_j_5KIHkEEd2Atp1vvmnWrA" name="itemData" type="_tM0CIHkDEd2Atp1vvmnWrA"/>
+ <ownedParameter xmi:id="_tR_noHkEEd2Atp1vvmnWrA" name="return" type="_tM0CIHkDEd2Atp1vvmnWrA" direction="return"/>
+ <ownedParameter xmi:id="_ih7lEHkJEd2Atp1vvmnWrA" name="idClosedList">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedParameter>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_YNI5EHmZEd2HRLLd0I1WrA"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_GfaEUHmfEd2HRLLd0I1WrA"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_yvGYUHXJEd20DoWUDUK0Ig"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_KQqi-HjwEd2MH8DN-NMNrA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_IsL5oHkKEd2Atp1vvmnWrA" name="moveItemAtIndex">
+ <ownedParameter xmi:id="_L5kboHkKEd2Atp1vvmnWrA" name="index">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Integer"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_QoFZMHkKEd2Atp1vvmnWrA" name="itemId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedParameter>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_GfaEUHmfEd2HRLLd0I1WrA"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_YNI5EHmZEd2HRLLd0I1WrA"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_673s0HXGEd2Ekv686xx4qA"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_KQqi-HjwEd2MH8DN-NMNrA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_m28oEHkKEd2Atp1vvmnWrA" name="deleteItem">
+ <ownedParameter xmi:id="_p-XsAHkKEd2Atp1vvmnWrA" name="id">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedParameter>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_YNI5EHmZEd2HRLLd0I1WrA"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_GfaEUHmfEd2HRLLd0I1WrA"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_KQqi-HjwEd2MH8DN-NMNrA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_70CtEHkKEd2Atp1vvmnWrA" name="findItemByClosedListId">
+ <ownedParameter xmi:id="_Ayb5sHkLEd2Atp1vvmnWrA" name="idClosedList">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_MtfWcHkLEd2Atp1vvmnWrA" name="return" type="_IB7mQHkLEd2Atp1vvmnWrA" direction="return"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_YNI5EHmZEd2HRLLd0I1WrA"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_GfaEUHmfEd2HRLLd0I1WrA"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_KQqi-HjwEd2MH8DN-NMNrA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_M-qAgAl6Ed63k8rLfgI_ng" name="findNamesBeginingWith">
+ <ownedParameter xmi:id="_PkOUkAl6Ed63k8rLfgI_ng" name="return" type="_ddB9cIViEd2N0bQZBk24XA" direction="return"/>
+ <ownedParameter xmi:id="_SQ-1wAl6Ed63k8rLfgI_ng" name="contentDefId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_TgeuwAl6Ed63k8rLfgI_ng" name="nameBeginning">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedParameter>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_GfaEUHmfEd2HRLLd0I1WrA"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_EbIwUKtAEd2Nmqhc73l7SA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_v3FY8DVhEd6Qg9MkiTPhqA" name="findById">
+ <ownedParameter xmi:id="_yBQxgDVhEd6Qg9MkiTPhqA" name="attDefId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_0ekhcDVhEd6Qg9MkiTPhqA" name="return" type="_4oxq2HghEd2Vxr2aiClL8g" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_tb8nQESLEd6vAcvzaNvDvA" name="findAllWhichNameIs">
+ <ownedParameter xmi:id="_vHNPMESLEd6vAcvzaNvDvA" name="return" type="_ZytvEHhBEd2X9uNQyI_qHw" direction="return"/>
+ <ownedParameter xmi:id="_x51u4ESLEd6vAcvzaNvDvA" name="name">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_CTSdxXghEd2Vxr2aiClL8g" name="Dependency5" supplier="_-4GJSHggEd2Vxr2aiClL8g" client="_zAlIsHggEd2Vxr2aiClL8g"/>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_JMIko3jAEd2oZoPbWJIMHg" name="Dependency2" supplier="_iO1pkHi_Ed2oZoPbWJIMHg" client="_Ugb_4Hi_Ed2oZoPbWJIMHg"/>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_52HgE3jDEd2y99hUAsLkzQ" name="Dependency3" supplier="_3ac7wHTaEd20yqJGyRKhKA" client="_zAlIsHggEd2Vxr2aiClL8g"/>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_sqMpo3jJEd2vSLEPekkQZw" name="Dependency4" supplier="_3ac7wHTaEd20yqJGyRKhKA" client="_Ugb_4Hi_Ed2oZoPbWJIMHg"/>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_3JaPFHm8Ed2ql75AYIhxSA" name="Dependency6" supplier="_pfA7oHm8Ed2ql75AYIhxSA" client="_zAlIsHggEd2Vxr2aiClL8g"/>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_W1GZ43sfEd2br5ngUa3Ghw" name="Dependency7" supplier="_QKN2QHsfEd2br5ngUa3Ghw" client="_Ugb_4Hi_Ed2oZoPbWJIMHg"/>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_O-C80oCrEd2cf9nnj9AFLw" name="Dependency8" supplier="_iO1pkHi_Ed2oZoPbWJIMHg" client="_yvPJ2HTaEd20yqJGyRKhKA"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_IfiXMIVfEd2N0bQZBk24XA" name="ContentIndexSrv">
+ <ownedOperation xmi:id="_7ifcgIVfEd2N0bQZBk24XA" name="indexContent">
+ <ownedParameter xmi:id="_N5Y7UIVgEd2N0bQZBk24XA" name="content" type="_NcHbSHXPEd2gat_LwJwOew"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_99MkYoVfEd2N0bQZBk24XA" name="deleteContent">
+ <ownedParameter xmi:id="_Zb7KYIVgEd2N0bQZBk24XA" name="contentId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="__vVQYoVfEd2N0bQZBk24XA" name="deleteContentByDefinition">
+ <ownedParameter xmi:id="_fdENcIVgEd2N0bQZBk24XA" name="contentDefId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_lCpIMLfcEd2R1IIOAjE5TA" name="searchContents">
+ <ownedParameter xmi:id="_qZaYkLfcEd2R1IIOAjE5TA" name="return" type="_9szvMJwtEd2jKtVlU3vFlQ" direction="return"/>
+ <ownedParameter xmi:id="_1QMU4LfcEd2R1IIOAjE5TA" name="keywords" type="_o1-dkIVgEd2N0bQZBk24XA"/>
+ <ownedParameter xmi:id="_2X_DYLfcEd2R1IIOAjE5TA" name="start">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Integer"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_3MlwILfcEd2R1IIOAjE5TA" name="end">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Integer"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_McjHwLpDEd2ea__X_Ke6sQ" name="requestContent">
+ <ownedParameter xmi:id="_PzRmALrSEd2ea__X_Ke6sQ" name="restriction" type="_SdWXILpEEd2ea__X_Ke6sQ"/>
+ <ownedParameter xmi:id="_XHk6ELrSEd2ea__X_Ke6sQ" name="start">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Integer"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_YoEccLrSEd2ea__X_Ke6sQ" name="end">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Integer"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_gDP0kLrSEd2ea__X_Ke6sQ" name="return" type="_9szvMJwtEd2jKtVlU3vFlQ" direction="return"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_YNI5EHmZEd2HRLLd0I1WrA"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_GfaEUHmfEd2HRLLd0I1WrA"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_673s0HXGEd2Ekv686xx4qA"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_4RBZUKs-Ed2Nmqhc73l7SA"/>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_PG6HAIYTEd2FDsNjNrtp7Q" name="Dependency9" supplier="_IfiXMIVfEd2N0bQZBk24XA" client="_Ugb_4Hi_Ed2oZoPbWJIMHg"/>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_1uQxU5OHEd2PpNHrflS_6A" name="Dependency10" supplier="_Ugb_4Hi_Ed2oZoPbWJIMHg" client="_yvPJ2HTaEd20yqJGyRKhKA"/>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_tPcMQ5PGEd24J-xmUsjYjg" name="Dependency12" supplier="_zAlIsHggEd2Vxr2aiClL8g" client="_yvPJ2HTaEd20yqJGyRKhKA"/>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_zZJ1IpPJEd24J-xmUsjYjg" name="Dependency11" supplier="_QKN2QHsfEd2br5ngUa3Ghw" client="_zAlIsHggEd2Vxr2aiClL8g"/>
+ <packagedElement xmi:type="uml:DataType" xmi:id="_5PgFIJwnEd2jKtVlU3vFlQ" name="List<ContentHeader>"/>
+ <packagedElement xmi:type="uml:DataType" xmi:id="_9szvMJwtEd2jKtVlU3vFlQ" name="PagedResult<String>"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_s08WwKGqEd2ENuCUfYNU7A" name="SetOfContentsSrv" clientDependency="_vhomg6GqEd2ENuCUfYNU7A _WH5fYKTREd2FhPzHNqBWcg _WQgo06TREd2FhPzHNqBWcg _fBi08KZjEd2MuuCSF2EUvA _Akb40aaQEd2G__lOTDfUPw">
+ <ownedOperation xmi:id="_qjqdYKQrEd2GAYp1IpBaGw" name="findAllOrderedBy">
+ <ownedParameter xmi:id="_uGTdsKQrEd2GAYp1IpBaGw" name="return" type="_wjKoGKQzEd2GAYp1IpBaGw" direction="return"/>
+ <ownedParameter xmi:id="_zIK1EKQrEd2GAYp1IpBaGw" name="start">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Integer"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_HEKCYKQsEd2GAYp1IpBaGw" name="end">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_qrcD4KQsEd2GAYp1IpBaGw" name="sortConstraints" type="_idubkKQsEd2GAYp1IpBaGw"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_YNI5EHmZEd2HRLLd0I1WrA"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_GfaEUHmfEd2HRLLd0I1WrA"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_4RBZUKs-Ed2Nmqhc73l7SA"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_673s0HXGEd2Ekv686xx4qA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_92YqIKW-Ed2BUJWkFP_TZQ" name="addContent">
+ <ownedParameter xmi:id="_JI7VYKW_Ed2BUJWkFP_TZQ" name="contentId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_6fGfEKXbEd2kj_N50xZfpA" name="setOfContentsId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_OtjOwKZzEd2vf6b7mmCg9Q" name="return" type="_g6OzsNcdEd2nifBZRRnUOg" direction="return"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_YNI5EHmZEd2HRLLd0I1WrA"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_KQqi-HjwEd2MH8DN-NMNrA"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_GfaEUHmfEd2HRLLd0I1WrA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__5FhsKW-Ed2BUJWkFP_TZQ" name="addContents">
+ <ownedParameter xmi:id="_CbSYsKW_Ed2BUJWkFP_TZQ" name="return" type="_g6OzsNcdEd2nifBZRRnUOg" direction="return"/>
+ <ownedParameter xmi:id="_FFNoUKW_Ed2BUJWkFP_TZQ" name="listOfContentIds" type="_ddB9cIViEd2N0bQZBk24XA"/>
+ <ownedParameter xmi:id="_8ZZBgKXbEd2kj_N50xZfpA" name="setOfContentsId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedParameter>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_YNI5EHmZEd2HRLLd0I1WrA"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_KQqi-HjwEd2MH8DN-NMNrA"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_GfaEUHmfEd2HRLLd0I1WrA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_F1R5oKaLEd2G__lOTDfUPw" name="getContents">
+ <ownedParameter xmi:id="_NZxl0KaLEd2G__lOTDfUPw" name="setOfContentsId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_PSD9IKaLEd2G__lOTDfUPw" name="return" type="_5PgFIJwnEd2jKtVlU3vFlQ" direction="return"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_GfaEUHmfEd2HRLLd0I1WrA"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_YNI5EHmZEd2HRLLd0I1WrA"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_KQqi-HjwEd2MH8DN-NMNrA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_HD8sMKaLEd2G__lOTDfUPw" name="removeContent">
+ <ownedParameter xmi:id="_dVFzAKaLEd2G__lOTDfUPw" name="setOfContentsId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_e_FPoKaLEd2G__lOTDfUPw" name="contentId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_QYjX0NciEd2nifBZRRnUOg" name="return" type="_g6OzsNcdEd2nifBZRRnUOg" direction="return"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_GfaEUHmfEd2HRLLd0I1WrA"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_YNI5EHmZEd2HRLLd0I1WrA"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_KQqi-HjwEd2MH8DN-NMNrA"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_4RBZUKs-Ed2Nmqhc73l7SA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_CjwPgKcwEd26eZS_gEW-Hg" name="getContentsOrderedByContentDef">
+ <ownedParameter xmi:id="_FWIQgKcwEd26eZS_gEW-Hg" name="return" type="_G8ZTMJuJEd2hhejVV_1tQg" direction="return"/>
+ <ownedParameter xmi:id="_HbVpgKcwEd26eZS_gEW-Hg" name="start">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Integer"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_HjijQKcwEd26eZS_gEW-Hg" name="end">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Integer"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_Hru18KcwEd26eZS_gEW-Hg" name="setOfContentsId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedParameter>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_YNI5EHmZEd2HRLLd0I1WrA"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_GfaEUHmfEd2HRLLd0I1WrA"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_KQqi-HjwEd2MH8DN-NMNrA"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_4RBZUKs-Ed2Nmqhc73l7SA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_BkY-YLSQEd2Svo_ZuxkYww" name="getContentsOrderedBy">
+ <ownedParameter xmi:id="_FwGw4LSQEd2Svo_ZuxkYww" name="start">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Integer"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_G5D9ALSQEd2Svo_ZuxkYww" name="end">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Integer"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_Hjmu0LSQEd2Svo_ZuxkYww" name="setOfContentsId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_It-3QLSQEd2Svo_ZuxkYww" name="sortConstraints" type="_idubkKQsEd2GAYp1IpBaGw"/>
+ <ownedParameter xmi:id="_Li7rILSQEd2Svo_ZuxkYww" name="return" type="_G8ZTMJuJEd2hhejVV_1tQg" direction="return"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_GfaEUHmfEd2HRLLd0I1WrA"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_4RBZUKs-Ed2Nmqhc73l7SA"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_KQqi-HjwEd2MH8DN-NMNrA"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_YNI5EHmZEd2HRLLd0I1WrA"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_673s0HXGEd2Ekv686xx4qA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_zdDEsLcKEd24mr0Xuj8kuQ" name="removeContents">
+ <ownedParameter xmi:id="_3Lo2ULcKEd24mr0Xuj8kuQ" name="setOfContentsId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_5TUUgLcKEd24mr0Xuj8kuQ" name="listOfContentIds" type="_ddB9cIViEd2N0bQZBk24XA"/>
+ <ownedParameter xmi:id="_-RCLsLcKEd24mr0Xuj8kuQ" name="return" type="_g6OzsNcdEd2nifBZRRnUOg" direction="return"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_GfaEUHmfEd2HRLLd0I1WrA"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_KQqi-HjwEd2MH8DN-NMNrA"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_YNI5EHmZEd2HRLLd0I1WrA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_pBtfcvm_Ed2-r9_matJLyA" name="getContentsDtoOrderedByContentDef">
+ <ownedParameter xmi:id="_26RKsPm_Ed2-r9_matJLyA" name="return" type="_TqtQMPnAEd2-r9_matJLyA" direction="return"/>
+ <ownedParameter xmi:id="_1yBTwPnAEd2-r9_matJLyA" name="start">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Integer"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_2-wzsPnAEd2-r9_matJLyA" name="end">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Integer"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_5cHm8PnAEd2-r9_matJLyA" name="setOfContentId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedParameter>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_GfaEUHmfEd2HRLLd0I1WrA"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_4RBZUKs-Ed2Nmqhc73l7SA"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_KQqi-HjwEd2MH8DN-NMNrA"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_YNI5EHmZEd2HRLLd0I1WrA"/>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_vhomg6GqEd2ENuCUfYNU7A" name="Dependency13" supplier="_dSGT8KGqEd2ENuCUfYNU7A" client="_s08WwKGqEd2ENuCUfYNU7A"/>
+ <packagedElement xmi:type="uml:DataType" xmi:id="_idubkKQsEd2GAYp1IpBaGw" name="List<SortConstraint>"/>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_fBi08KZjEd2MuuCSF2EUvA" name="Dependency14" supplier="_iO1pkHi_Ed2oZoPbWJIMHg" client="_s08WwKGqEd2ENuCUfYNU7A"/>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_Akb40aaQEd2G__lOTDfUPw" name="Dependency15" supplier="_Ugb_4Hi_Ed2oZoPbWJIMHg" client="_s08WwKGqEd2ENuCUfYNU7A"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_YAvggLo_Ed29K_Ps1iXPuQ" name="ContentSearchSrv" clientDependency="_bAZvkLo_Ed29K_Ps1iXPuQ _bREBw7o_Ed29K_Ps1iXPuQ _2Cdy9LuYEd2r54aHCi3ysg _ndJqY-LfEd2Ft61T9l4BYg">
+ <ownedOperation xmi:id="_g-dCYLo_Ed29K_Ps1iXPuQ" name="doAdvancedSearch">
+ <ownedParameter xmi:id="_j3d24Lo_Ed29K_Ps1iXPuQ" name="contentDefs" type="_mxjpcLo_Ed29K_Ps1iXPuQ"/>
+ <ownedParameter xmi:id="_vJNQ4Lo_Ed29K_Ps1iXPuQ" name="return" type="_G8ZTMJuJEd2hhejVV_1tQg" direction="return"/>
+ <ownedParameter xmi:id="_Cg9UALrVEd2Re4E5q7qDVg" name="start">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Integer"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_FVgfQLrVEd2Re4E5q7qDVg" name="end">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Integer"/>
+ </ownedParameter>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_4RBZUKs-Ed2Nmqhc73l7SA"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_673s0HXGEd2Ekv686xx4qA"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_EbIwUKtAEd2Nmqhc73l7SA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_FDblgMbCEd2uuaPd80qeIQ" name="doSearch">
+ <ownedParameter xmi:id="_Qe90sMbCEd2uuaPd80qeIQ" name="searchDtos" type="_JAhtMMbCEd2uuaPd80qeIQ"/>
+ <ownedParameter xmi:id="_Td65IMbCEd2uuaPd80qeIQ" name="start">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Integer"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_Uj4boMbCEd2uuaPd80qeIQ" name="end">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Integer"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_ipN-oMbCEd2uuaPd80qeIQ" name="return" type="_G8ZTMJuJEd2hhejVV_1tQg" direction="return"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_4RBZUKs-Ed2Nmqhc73l7SA"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_EbIwUKtAEd2Nmqhc73l7SA"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_673s0HXGEd2Ekv686xx4qA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_4OyvUAJfEd6NXsEhrbvcFg" name="doSearchContentIds">
+ <ownedParameter xmi:id="_4OyvUQJfEd6NXsEhrbvcFg" name="searchDtos" type="_JAhtMMbCEd2uuaPd80qeIQ"/>
+ <ownedParameter xmi:id="_4OyvUgJfEd6NXsEhrbvcFg" name="start">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Integer"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_4OyvUwJfEd6NXsEhrbvcFg" name="end">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Integer"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_4OyvVAJfEd6NXsEhrbvcFg" name="return" type="_9szvMJwtEd2jKtVlU3vFlQ" direction="return"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_4RBZUKs-Ed2Nmqhc73l7SA"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_EbIwUKtAEd2Nmqhc73l7SA"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_673s0HXGEd2Ekv686xx4qA"/>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_bAZvkLo_Ed29K_Ps1iXPuQ" name="Dependency16" supplier="_IfiXMIVfEd2N0bQZBk24XA" client="_YAvggLo_Ed29K_Ps1iXPuQ"/>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_bREBw7o_Ed29K_Ps1iXPuQ" name="Dependency17" supplier="_Ugb_4Hi_Ed2oZoPbWJIMHg" client="_YAvggLo_Ed29K_Ps1iXPuQ"/>
+ <packagedElement xmi:type="uml:DataType" xmi:id="_mxjpcLo_Ed29K_Ps1iXPuQ" name="List<ContentDefSearchDto>"/>
+ <packagedElement xmi:type="uml:DataType" xmi:id="_Uzat0LrMEd2ea__X_Ke6sQ" name="List<RestrictionDto>"/>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_2Cdy9LuYEd2r54aHCi3ysg" name="Dependency18" supplier="_zAlIsHggEd2Vxr2aiClL8g" client="_YAvggLo_Ed29K_Ps1iXPuQ"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_Qwk5QN5UEd2Bgrjmm1cxJQ" name="InvalidTypeException">
+ <generalization xmi:id="_W08Pc95UEd2Bgrjmm1cxJQ">
+ <general xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_4RBZUKs-Ed2Nmqhc73l7SA"/>
+ </generalization>
+ <ownedAttribute xmi:id="_qH-mYt5UEd2Bgrjmm1cxJQ" name="expectedType" type="_OoJh0HXVEd2XodZQ_XQIpQ"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_eJUcAN5UEd2Bgrjmm1cxJQ" name="InvalidDefaultValueException">
+ <generalization xmi:id="_jSD3c95UEd2Bgrjmm1cxJQ">
+ <general xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_4RBZUKs-Ed2Nmqhc73l7SA"/>
+ </generalization>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_fw3BkN5UEd2Bgrjmm1cxJQ" name="MandatoryValueException">
+ <generalization xmi:id="_jiTS495UEd2Bgrjmm1cxJQ">
+ <general xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_4RBZUKs-Ed2Nmqhc73l7SA"/>
+ </generalization>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_7_RdIuI7Ed2T1_-09lWd5Q" name="impl"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_x1MNMOkqEd2VcLeORko10g" name="ContentLinkSrv" clientDependency="_Jy7_w-krEd2VcLeORko10g _yWuXg-krEd2VcLeORko10g _y3MAQ-krEd2VcLeORko10g _6iGEM-kwEd2w6L86tbByuw">
+ <ownedOperation xmi:id="_x1MNMekqEd2VcLeORko10g" name="deleteByContentId">
+ <ownedParameter xmi:id="_x1MNMukqEd2VcLeORko10g" name="contentId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedParameter>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_GfaEUHmfEd2HRLLd0I1WrA"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_YNI5EHmZEd2HRLLd0I1WrA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_x1MNM-kqEd2VcLeORko10g" name="findByContentId">
+ <ownedParameter xmi:id="_x1MNNOkqEd2VcLeORko10g" name="return" type="_GDHoYO64Ed2f7NU7M_arnA" direction="return"/>
+ <ownedParameter xmi:id="_x1MNNekqEd2VcLeORko10g" name="contentId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_x1MNNukqEd2VcLeORko10g" name="start">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Integer"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_x1MNN-kqEd2VcLeORko10g" name="end">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Integer"/>
+ </ownedParameter>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_KQqi-HjwEd2MH8DN-NMNrA"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_GfaEUHmfEd2HRLLd0I1WrA"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_YNI5EHmZEd2HRLLd0I1WrA"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_bI0twHg-Ed2lVPDSSAZWVg"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_x1MNOOkqEd2VcLeORko10g" name="linkContents">
+ <ownedParameter xmi:id="_x1MNOekqEd2VcLeORko10g" name="linkDefId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_x1MNOukqEd2VcLeORko10g" name="linkName">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_x1MNO-kqEd2VcLeORko10g" name="fromContentId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_x1MNPOkqEd2VcLeORko10g" name="toContentId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedParameter>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_KQqi-HjwEd2MH8DN-NMNrA"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_GfaEUHmfEd2HRLLd0I1WrA"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_YNI5EHmZEd2HRLLd0I1WrA"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_yvGYUHXJEd20DoWUDUK0Ig"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_4RBZUKs-Ed2Nmqhc73l7SA"/>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_YPxfsPOSEd2JbqIoInRhNw" name="ContentNomenclatureSrv" clientDependency="_0X9nRPQzEd22_7AHmZR45g _0gwW4_QzEd22_7AHmZR45g _0psQc_QzEd22_7AHmZR45g _azYGoA72Ed6i07THnW3V5A _w_-Eow72Ed6i07THnW3V5A _NN8JsA8MEd6i07THnW3V5A">
+ <ownedOperation xmi:id="_YPxfsfOSEd2JbqIoInRhNw" name="addContents">
+ <ownedParameter xmi:id="_YPxfsvOSEd2JbqIoInRhNw" name="nodeId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_YPxfs_OSEd2JbqIoInRhNw" name="contentIds" isOrdered="true">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_YPxftPOSEd2JbqIoInRhNw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_YPxftfOSEd2JbqIoInRhNw"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_RVBYMPbAEd2HAbtEgyVO4g" name="return" type="_g6OzsNcdEd2nifBZRRnUOg" direction="return"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_GfaEUHmfEd2HRLLd0I1WrA"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_KQqi-HjwEd2MH8DN-NMNrA"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_YNI5EHmZEd2HRLLd0I1WrA"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_yvGYUHXJEd20DoWUDUK0Ig"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_YPxft_OSEd2JbqIoInRhNw" name="removeContents">
+ <ownedParameter xmi:id="_YPxfuPOSEd2JbqIoInRhNw" name="nodeId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_YPxfufOSEd2JbqIoInRhNw" name="contentIds" isOrdered="true">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_YPxfuvOSEd2JbqIoInRhNw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_YPxfu_OSEd2JbqIoInRhNw"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_Yg2FsPbAEd2HAbtEgyVO4g" name="return" type="_g6OzsNcdEd2nifBZRRnUOg" direction="return"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_GfaEUHmfEd2HRLLd0I1WrA"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_4RBZUKs-Ed2Nmqhc73l7SA"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_KQqi-HjwEd2MH8DN-NMNrA"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_YNI5EHmZEd2HRLLd0I1WrA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_YPxfvfOSEd2JbqIoInRhNw" name="findContentsByNode">
+ <ownedParameter xmi:id="_YPxfvvOSEd2JbqIoInRhNw" name="nodeId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_YPxfv_OSEd2JbqIoInRhNw" name="start">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Integer"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_YPxfwPOSEd2JbqIoInRhNw" name="end">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Integer"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_ePEz0PbAEd2HAbtEgyVO4g" name="return" type="_G8ZTMJuJEd2hhejVV_1tQg" direction="return"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_GfaEUHmfEd2HRLLd0I1WrA"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_KQqi-HjwEd2MH8DN-NMNrA"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_YNI5EHmZEd2HRLLd0I1WrA"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_673s0HXGEd2Ekv686xx4qA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_2a80ovnDEd2-r9_matJLyA" name="findContentsDtoByNode">
+ <ownedParameter xmi:id="_NldzcPnEEd2-r9_matJLyA" name="return" type="_TqtQMPnAEd2-r9_matJLyA" direction="return"/>
+ <ownedParameter xmi:id="_SjmhYPnEEd2-r9_matJLyA" name="nodeId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_YJOtIPnEEd2-r9_matJLyA" name="start">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Integer"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_ZifmIPnEEd2-r9_matJLyA" name="end">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Integer"/>
+ </ownedParameter>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_GfaEUHmfEd2HRLLd0I1WrA"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_KQqi-HjwEd2MH8DN-NMNrA"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_YNI5EHmZEd2HRLLd0I1WrA"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_673s0HXGEd2Ekv686xx4qA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_rAF68A74Ed6i07THnW3V5A" name="searchContents">
+ <ownedParameter xmi:id="_yocMYA74Ed6i07THnW3V5A" name="return" type="_TqtQMPnAEd2-r9_matJLyA" direction="return"/>
+ <ownedParameter xmi:id="_-qN8MA74Ed6i07THnW3V5A" name="cnSearchDto" type="_50mREA74Ed6i07THnW3V5A"/>
+ <ownedParameter xmi:id="_CVD2QA75Ed6i07THnW3V5A" name="start">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Integer"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_DZMz0A75Ed6i07THnW3V5A" name="end">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Integer"/>
+ </ownedParameter>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_4RBZUKs-Ed2Nmqhc73l7SA"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_673s0HXGEd2Ekv686xx4qA"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_EbIwUKtAEd2Nmqhc73l7SA"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_KQqi-HjwEd2MH8DN-NMNrA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_So_a8BPfEd6gmdaSlhZGXg" name="countSearchContentsResult">
+ <ownedParameter xmi:id="_bjDL4BPfEd6gmdaSlhZGXg" name="cnSearchDtoList" type="_50mREA74Ed6i07THnW3V5A"/>
+ <ownedParameter xmi:id="_jSGiQBPfEd6gmdaSlhZGXg" name="return" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ </ownedParameter>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_EbIwUKtAEd2Nmqhc73l7SA"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_4RBZUKs-Ed2Nmqhc73l7SA"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_KQqi-HjwEd2MH8DN-NMNrA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_x2UXUBVYEd6ea7tnvz6BlA" name="countContents">
+ <ownedParameter xmi:id="_yrY-IBVYEd6ea7tnvz6BlA" name="return" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_1UBNQBVYEd6ea7tnvz6BlA" name="nodeId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedParameter>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_KQqi-HjwEd2MH8DN-NMNrA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_Wot2MBVbEd6ea7tnvz6BlA" name="searchContentsIds">
+ <ownedParameter xmi:id="_dZdKMBVbEd6ea7tnvz6BlA" name="cnSearchDto" type="_50mREA74Ed6i07THnW3V5A"/>
+ <ownedParameter xmi:id="_ffHPIBVbEd6ea7tnvz6BlA" name="start">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Integer"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_gg4OIBVbEd6ea7tnvz6BlA" name="end">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Integer"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_m1AeoBVbEd6ea7tnvz6BlA" name="return" type="_9szvMJwtEd2jKtVlU3vFlQ" direction="return"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_4RBZUKs-Ed2Nmqhc73l7SA"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_673s0HXGEd2Ekv686xx4qA"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_EbIwUKtAEd2Nmqhc73l7SA"/>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:DataType" xmi:id="_TqtQMPnAEd2-r9_matJLyA" name="PagedResult<Content>"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_xswuUP9BEd2Qm_QM6AOnsQ" name="ReferentialSrv" clientDependency="_UK96AP9lEd2BCr3614c-tA _UyLrAP9lEd2BCr3614c-tA _qabwYP9mEd2BCr3614c-tA _pCnsEP9qEd2c4u-jA89yIA _qXDIZP9qEd2c4u-jA89yIA _d6n9JAJNEd64Q-y4tjzcsw">
+ <ownedOperation xmi:id="_EmUOQP9CEd2Qm_QM6AOnsQ" name="findBySource">
+ <ownedParameter xmi:id="_IyWw4P9CEd2Qm_QM6AOnsQ" name="return" direction="return">
+ <type xmi:type="uml:Class" href="org.sharengo.utils.container.nomenclature/src/main/uml/conception.uml#_yF0iAKUBEd2nLbvCg8hnUg"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_MkYRAP9CEd2Qm_QM6AOnsQ" name="source">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedParameter>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_YNI5EHmZEd2HRLLd0I1WrA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_DhEDIAHDEd6YN9j9rf_V2Q" name="findReferentialBySource">
+ <ownedParameter xmi:id="_GNudsAHDEd6YN9j9rf_V2Q" name="return" type="_e8X8AP9CEd2Qm_QM6AOnsQ" direction="return"/>
+ <ownedParameter xmi:id="_OwODMAHDEd6YN9j9rf_V2Q" name="source">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedParameter>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_YNI5EHmZEd2HRLLd0I1WrA"/>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_k6KdkA4_Ed6KQuvMUCD2yg" name="facet">
+ <packagedElement xmi:type="uml:Class" xmi:id="_d9MVUA5IEd6KQuvMUCD2yg" name="FacetViewSrv" clientDependency="_Iq9mcw5LEd6KQuvMUCD2yg _Jl8A8w5LEd6KQuvMUCD2yg _L-cwcw5LEd6KQuvMUCD2yg _UUIB8w5LEd6KQuvMUCD2yg _RHLosw-nEd6Za8ap1ETEyA">
+ <ownedOperation xmi:id="_B27_0A5JEd6KQuvMUCD2yg" name="saveView">
+ <ownedParameter xmi:id="_HZFZwA5JEd6KQuvMUCD2yg" name="viewName">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_J_olQA5JEd6KQuvMUCD2yg" name="facetsName" type="_Pk2hUA5JEd6KQuvMUCD2yg"/>
+ <ownedParameter xmi:id="_dCUgEA8aEd6ZEphZXOMnTg" name="return" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_xsuDUCs5Ed6tjYAzTLw2Cw" name="topicId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_g-XK0A5JEd6KQuvMUCD2yg" name="deleteView">
+ <ownedParameter xmi:id="_h6FzQA5JEd6KQuvMUCD2yg" name="return" visibility="public" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_nLnXQA5JEd6KQuvMUCD2yg" name="viewName">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_qUDH0A5JEd6KQuvMUCD2yg" name="findAllView">
+ <ownedParameter xmi:id="_srtiwA5JEd6KQuvMUCD2yg" name="return" type="_ddB9cIViEd2N0bQZBk24XA" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_uvLPUA5JEd6KQuvMUCD2yg" name="findView">
+ <ownedParameter xmi:id="_vTy_UA5JEd6KQuvMUCD2yg" name="return" type="_Pk2hUA5JEd6KQuvMUCD2yg" direction="return"/>
+ <ownedParameter xmi:id="_xX2hwA5JEd6KQuvMUCD2yg" name="viewName">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_0Vhz0A5JEd6KQuvMUCD2yg" name="searchTopic">
+ <ownedParameter xmi:id="_1HHBwA5JEd6KQuvMUCD2yg" name="return" type="_EfoV0A5IEd6KQuvMUCD2yg" direction="return"/>
+ <ownedParameter xmi:id="_2vZ1QA5JEd6KQuvMUCD2yg" name="viewName">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_5NVQQA5JEd6KQuvMUCD2yg" name="topicIds" type="_Pk2hUA5JEd6KQuvMUCD2yg"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_BZVBUA5KEd6KQuvMUCD2yg" name="searchContent">
+ <ownedParameter xmi:id="_BzWD0A5KEd6KQuvMUCD2yg" name="return" type="_TqtQMPnAEd2-r9_matJLyA" direction="return"/>
+ <ownedParameter xmi:id="_mSndQA5KEd6KQuvMUCD2yg" name="topicIds" type="_Pk2hUA5JEd6KQuvMUCD2yg"/>
+ <ownedParameter xmi:id="_p3kxwA5KEd6KQuvMUCD2yg" name="start">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_vbLkQA5KEd6KQuvMUCD2yg" name="end">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ </ownedParameter>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_673s0HXGEd2Ekv686xx4qA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_p-Fd4A5UEd6KQuvMUCD2yg" name="renameView">
+ <ownedParameter xmi:id="_qyCDUA5UEd6KQuvMUCD2yg" name="oldViewName">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_s99IUA5UEd6KQuvMUCD2yg" name="newViewName">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_vdBy0A5UEd6KQuvMUCD2yg" name="return" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ </ownedParameter>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_yvGYUHXJEd20DoWUDUK0Ig"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_F_XBoCswEd6tjYAzTLw2Cw" name="addChain">
+ <ownedParameter xmi:id="_7uHl4CswEd6tjYAzTLw2Cw" name="return" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_9YWTECswEd6tjYAzTLw2Cw" name="viewName">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_-aKVYCswEd6tjYAzTLw2Cw" name="chain" type="_ddB9cIViEd2N0bQZBk24XA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_HG54gCswEd6tjYAzTLw2Cw" name="removeChain">
+ <ownedParameter xmi:id="_V_fdYCswEd6tjYAzTLw2Cw" name="return" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_X92AcCswEd6tjYAzTLw2Cw" name="viewName">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_ZF2xYCswEd6tjYAzTLw2Cw" name="chainIndex">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Integer"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_VvbWAC_vEd6wTqNjal63Xg" name="getFlatView">
+ <ownedParameter xmi:id="_XGvHMC_vEd6wTqNjal63Xg" name="return" type="_CQdfEC_zEd6wTqNjal63Xg" direction="return"/>
+ <ownedParameter xmi:id="_YsLbAC_vEd6wTqNjal63Xg" name="viewName">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_cOJOADViEd6Qg9MkiTPhqA" name="getTopic">
+ <ownedParameter xmi:id="_eq6LYDViEd6Qg9MkiTPhqA" name="return" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_igwbkDViEd6Qg9MkiTPhqA" name="viewName">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_gUQTUA5IEd6KQuvMUCD2yg" name="FacetSrv" clientDependency="_IItYgw5MEd6KQuvMUCD2yg _MONf4xIeEd6Za8ap1ETEyA _je274xIeEd6Za8ap1ETEyA _xai8wC1_Ed6R-vHwJRLroA _reQ8Uz_aEd6_Lec3g9P76A _vnO80z_aEd6_Lec3g9P76A">
+ <ownedOperation xmi:id="_cthV0A5LEd6KQuvMUCD2yg" name="createFacet">
+ <ownedParameter xmi:id="_fE4OwA5LEd6KQuvMUCD2yg" name="facetName">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_yvGYUHXJEd20DoWUDUK0Ig"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_mIKrUA5LEd6KQuvMUCD2yg" name="deleteFacet">
+ <ownedParameter xmi:id="_m8V6QA5LEd6KQuvMUCD2yg" name="return" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_orbSQA5LEd6KQuvMUCD2yg" name="facetName">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_uafG0A5LEd6KQuvMUCD2yg" name="renameFacet">
+ <ownedParameter xmi:id="_xWPGQA5LEd6KQuvMUCD2yg" name="return" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_zo33QA5LEd6KQuvMUCD2yg" name="oldFacetName">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_17W3QA5LEd6KQuvMUCD2yg" name="newFacetName">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_yvGYUHXJEd20DoWUDUK0Ig"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_4z_4UA5LEd6KQuvMUCD2yg" name="findAllFacet">
+ <ownedParameter xmi:id="_5hTqQA5LEd6KQuvMUCD2yg" name="return" type="_ddB9cIViEd2N0bQZBk24XA" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_esaUwCsxEd6tjYAzTLw2Cw" name="addContentFacet">
+ <ownedParameter xmi:id="_h1io4CsxEd6tjYAzTLw2Cw" name="return" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_jNR34CsxEd6tjYAzTLw2Cw" name="facetName">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_mNaoECsxEd6tjYAzTLw2Cw" name="contentId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_gDgDgCsxEd6tjYAzTLw2Cw" name="findContentFacet">
+ <ownedParameter xmi:id="_ow__ICsxEd6tjYAzTLw2Cw" name="return" type="_3UukkHjHEd2vSLEPekkQZw" direction="return"/>
+ <ownedParameter xmi:id="_ryCHMCsxEd6tjYAzTLw2Cw" name="facetName">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_aCOWAC2AEd6R-vHwJRLroA" name="saveSegmentation">
+ <ownedParameter xmi:id="_b2XNIC2AEd6R-vHwJRLroA" name="return" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_c9yvQC2AEd6R-vHwJRLroA" name="facetName">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_OEAzYC2HEd6R-vHwJRLroA" name="segmentationAttDefId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_OsOxQC5IEd6xvOBU31IlXw" name="deleteContentFacet">
+ <ownedParameter xmi:id="_Re5tMC5IEd6xvOBU31IlXw" name="return" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_TG6z4C5IEd6xvOBU31IlXw" name="facetName">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_6Zbgci6JEd6ts7qX7YWm0w" name="getSegmentation">
+ <ownedParameter xmi:id="_9f4UAC6JEd6ts7qX7YWm0w" name="facetName">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_A1qkEC6KEd6ts7qX7YWm0w" name="return" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_NrMWQD5HEd6us98SLDIclA" name="findAllFacetByContentDefinition">
+ <ownedParameter xmi:id="_RsxVUD5HEd6us98SLDIclA" name="return" type="_ddB9cIViEd2N0bQZBk24XA" direction="return"/>
+ <ownedParameter xmi:id="_Xg1lsD5HEd6us98SLDIclA" name="contentDefinitionName">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_7crg0D_aEd6_Lec3g9P76A" name="createContent">
+ <ownedParameter xmi:id="_9oScwD_aEd6_Lec3g9P76A" name="return" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_-9k0sD_aEd6_Lec3g9P76A" name="facetName">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_A6-8kD_bEd6_Lec3g9P76A" name="contentDefinitionName">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_yox70ECWEd6fr9GmRQTM7Q" name="isFacet">
+ <ownedParameter xmi:id="_8N1KgECWEd6fr9GmRQTM7Q" name="return" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_9uym8ECWEd6fr9GmRQTM7Q" name="facetName">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_muW50EweEd6SUqmuGcZJOw" name="isType">
+ <ownedParameter xmi:id="_oRmOMEweEd6SUqmuGcZJOw" name="facetName">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_r08ZIEweEd6SUqmuGcZJOw" name="contentDefinitionName">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_xGd9IEweEd6SUqmuGcZJOw" name="return" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ </ownedParameter>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_hm9RUA5IEd6KQuvMUCD2yg" name="TopicSrv" clientDependency="_bB3k8w5OEd6KQuvMUCD2yg _isl08w5OEd6KQuvMUCD2yg _CuFh0g8bEd6ZEphZXOMnTg _OgY94xIeEd6Za8ap1ETEyA _a7E88BIeEd6Za8ap1ETEyA _O_wroCUQEd61bp1hxMeETg _MmtlYC_sEd6cNN8u-rRFgA _NKQXUy_sEd6cNN8u-rRFgA">
+ <ownedOperation xmi:id="_SrRYUA5MEd6KQuvMUCD2yg" name="createRootTopic">
+ <ownedParameter xmi:id="_VEsGwA5MEd6KQuvMUCD2yg" name="facetName">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_XVWh0A5MEd6KQuvMUCD2yg" name="topicValue">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_DMPw0B06Ed6sNL3iT4yqBg" name="return" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_yvGYUHXJEd20DoWUDUK0Ig"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_i8OeUA5MEd6KQuvMUCD2yg" name="deleteTopic">
+ <ownedParameter xmi:id="_kPwiwA5MEd6KQuvMUCD2yg" name="return" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_l_h3QA5MEd6KQuvMUCD2yg" name="topicId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_u3eIUQ5MEd6KQuvMUCD2yg" name="renameTopic">
+ <ownedParameter xmi:id="_v5YRQA5MEd6KQuvMUCD2yg" name="return" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_xr0fQA5MEd6KQuvMUCD2yg" name="topicId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_0CMgwA5MEd6KQuvMUCD2yg" name="topicValue">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_yvGYUHXJEd20DoWUDUK0Ig"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_2zvbUA5MEd6KQuvMUCD2yg" name="findRootsTopic">
+ <ownedParameter xmi:id="_3pSjQA5MEd6KQuvMUCD2yg" name="return" type="_j8IR8B07Ed6sNL3iT4yqBg" direction="return"/>
+ <ownedParameter xmi:id="_4-gpwA5MEd6KQuvMUCD2yg" name="facetName">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_8E4k0A5MEd6KQuvMUCD2yg" name="searchTopic">
+ <ownedParameter xmi:id="_8wIhQA5MEd6KQuvMUCD2yg" name="return" type="_EfoV0A5IEd6KQuvMUCD2yg" direction="return"/>
+ <ownedParameter xmi:id="_Abf_wA5NEd6KQuvMUCD2yg" name="topicIds" type="_ddB9cIViEd2N0bQZBk24XA"/>
+ <ownedParameter xmi:id="_AfxbwA5NEd6KQuvMUCD2yg" name="facetNames" type="_ddB9cIViEd2N0bQZBk24XA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_SFzeUg5NEd6KQuvMUCD2yg" name="searchContent">
+ <ownedParameter xmi:id="_TTnVQA5NEd6KQuvMUCD2yg" name="return" type="_TqtQMPnAEd2-r9_matJLyA" direction="return"/>
+ <ownedParameter xmi:id="_XLMDwA5NEd6KQuvMUCD2yg" name="topicIds" type="_ddB9cIViEd2N0bQZBk24XA"/>
+ <ownedParameter xmi:id="_Au8Y0A5QEd6KQuvMUCD2yg" name="start">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_CgPXUA5QEd6KQuvMUCD2yg" name="end">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ </ownedParameter>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_673s0HXGEd2Ekv686xx4qA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_6GnE0A5NEd6KQuvMUCD2yg" name="addContentTopic">
+ <ownedParameter xmi:id="_9wA0cA5NEd6KQuvMUCD2yg" name="topicId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_AIMMwA5OEd6KQuvMUCD2yg" name="contentId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_UzgrkA8aEd6ZEphZXOMnTg" name="return" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_C6f8UA5OEd6KQuvMUCD2yg" name="deleteContentTopic">
+ <ownedParameter xmi:id="_DxHbQA5OEd6KQuvMUCD2yg" name="return" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_E-8gUA5OEd6KQuvMUCD2yg" name="topicId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_IP1pUA5OEd6KQuvMUCD2yg" name="contentId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_NOD20Q5OEd6KQuvMUCD2yg" name="findContentsTopic">
+ <ownedParameter xmi:id="_OONsQA5OEd6KQuvMUCD2yg" name="return" type="_nOLcQKXAEd2BUJWkFP_TZQ" direction="return"/>
+ <ownedParameter xmi:id="_RCvCUA5OEd6KQuvMUCD2yg" name="topicId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_QjYxEB06Ed6sNL3iT4yqBg" name="createNodeTopic">
+ <ownedParameter xmi:id="_S9VrAB06Ed6sNL3iT4yqBg" name="return" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_UlJWUB06Ed6sNL3iT4yqBg" name="parentTopicId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_Un1d8B06Ed6sNL3iT4yqBg" name="topicValue">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedParameter>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_yvGYUHXJEd20DoWUDUK0Ig"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_rC78kB07Ed6sNL3iT4yqBg" name="findNodesTopic">
+ <ownedParameter xmi:id="_ukwdgB07Ed6sNL3iT4yqBg" name="parentTopicId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_1bIfcB07Ed6sNL3iT4yqBg" name="return" type="_j8IR8B07Ed6sNL3iT4yqBg" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__OwNQB1JEd6sNL3iT4yqBg" name="moveTopic">
+ <ownedParameter xmi:id="_BlJc4B1KEd6sNL3iT4yqBg" name="return" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_FDMREB1KEd6sNL3iT4yqBg" name="fromTopicId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_FF8qIB1KEd6sNL3iT4yqBg" name="toTopicId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_9_TKcB9gEd6Y0pLDes4cng" name="findRootByName">
+ <ownedParameter xmi:id="_ALXZYB9hEd6Y0pLDes4cng" name="return" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_B9k94B9hEd6Y0pLDes4cng" name="facetName">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_KeAt4B9hEd6Y0pLDes4cng" name="topicValue">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_jDLlcB9kEd6Y0pLDes4cng" name="findNodeByName">
+ <ownedParameter xmi:id="_k0UL4B9kEd6Y0pLDes4cng" name="return" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_nfEh8B9kEd6Y0pLDes4cng" name="parentTopicId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_p4aX4B9kEd6Y0pLDes4cng" name="topicValue">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_iIAW0B-JEd6aY9VmaJwuZQ" name="findParent">
+ <ownedParameter xmi:id="_lJDtAB-JEd6aY9VmaJwuZQ" name="return" type="_SsxC8B07Ed6sNL3iT4yqBg" direction="return"/>
+ <ownedParameter xmi:id="_ocX34B-JEd6aY9VmaJwuZQ" name="topicId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_66ztYCAeEd6Rg765w0YsUw" name="deleteAllByFacet">
+ <ownedParameter xmi:id="_c2XM4CAfEd6Rg765w0YsUw" name="facetName">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_esvfsCAfEd6Rg765w0YsUw" name="return" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_2vPuECAtEd6Rg765w0YsUw" name="findFacet">
+ <ownedParameter xmi:id="_Ay91wCAuEd6Rg765w0YsUw" name="return" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_ET4-0CAuEd6Rg765w0YsUw" name="topicId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_bTjRUCBWEd65zZRswDaukg" name="findValue">
+ <ownedParameter xmi:id="_dQ4gsCBWEd65zZRswDaukg" name="return" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_erZ98CBWEd65zZRswDaukg" name="topicId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_4Bi2EC8YEd6nTaxxaFh6RQ" name="saveRequest">
+ <ownedParameter xmi:id="_85HpAC8YEd6nTaxxaFh6RQ" name="return" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_-to6oC8YEd6nTaxxaFh6RQ" name="topicId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_BDkQMC8ZEd6nTaxxaFh6RQ" name="search" type="_JAhtMMbCEd2uuaPd80qeIQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_CafNkC8eEd6LoL7mDHS7Iw" name="getRequest">
+ <ownedParameter xmi:id="_DSXQwC8eEd6LoL7mDHS7Iw" name="return" type="_JAhtMMbCEd2uuaPd80qeIQ" direction="return"/>
+ <ownedParameter xmi:id="_E7JzgC8eEd6LoL7mDHS7Iw" name="topicId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_18f-oC_oEd6m7Z8-52146A" name="createContent">
+ <ownedParameter xmi:id="_6BuHkC_oEd6m7Z8-52146A" name="return" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_7PydMC_oEd6m7Z8-52146A" name="topicId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_83JckC_oEd6m7Z8-52146A" name="contentDefinitionName">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_30KRwEEpEd6naM7GDXYidw" name="findTopicResult">
+ <ownedParameter xmi:id="_9vIbYEEpEd6naM7GDXYidw" name="return" type="_D5ipwB08Ed6sNL3iT4yqBg" direction="return"/>
+ <ownedParameter xmi:id="_AgtyMEEqEd6naM7GDXYidw" name="topicId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_CyLegEEqEd6naM7GDXYidw" name="findRootsTopicResult">
+ <ownedParameter xmi:id="_FF8Q4EEqEd6naM7GDXYidw" name="return" type="_g_fFMB08Ed6sNL3iT4yqBg" direction="return"/>
+ <ownedParameter xmi:id="_4tZxcEEqEd6naM7GDXYidw" name="facetName">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_y0-JAEErEd6naM7GDXYidw" name="findNodesTopicResult">
+ <ownedParameter xmi:id="_1LtW4EErEd6naM7GDXYidw" name="return" type="_g_fFMB08Ed6sNL3iT4yqBg" direction="return"/>
+ <ownedParameter xmi:id="_A9uzcEEsEd6naM7GDXYidw" name="topicParentId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_IZDVgEEsEd6naM7GDXYidw" name="isType">
+ <ownedParameter xmi:id="_J5nwYEEsEd6naM7GDXYidw" name="return" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_LID5cEEsEd6naM7GDXYidw" name="topicId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_NMlV8EEsEd6naM7GDXYidw" name="contentDefinitionName">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_0bPyMFTSEd6m1uIJAJogNQ" name="findType">
+ <ownedParameter xmi:id="_3j4XEFTSEd6m1uIJAJogNQ" name="return" type="_g_fFMB08Ed6sNL3iT4yqBg" direction="return"/>
+ <ownedParameter xmi:id="_5mHUkFTSEd6m1uIJAJogNQ" name="search" type="_JAhtMMbCEd2uuaPd80qeIQ"/>
+ <ownedParameter xmi:id="_7VbWEFTSEd6m1uIJAJogNQ" name="contentDefinitionName">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_lYRm0A5IEd6KQuvMUCD2yg" name="TopicRuleSrv" clientDependency="_qLZ6cw5PEd6KQuvMUCD2yg _sbTggw5PEd6KQuvMUCD2yg _JYw1Yw-wEd6Za8ap1ETEyA _rzW54BVZEd6ea7tnvz6BlA">
+ <ownedOperation xmi:id="_tEZ9Ug5OEd6KQuvMUCD2yg" name="saveTopicRule">
+ <ownedParameter xmi:id="_wqqSUA5OEd6KQuvMUCD2yg" name="search" type="_50mREA74Ed6i07THnW3V5A"/>
+ <ownedParameter xmi:id="_BbekIA5PEd6KQuvMUCD2yg" name="topicIds" type="_ddB9cIViEd2N0bQZBk24XA"/>
+ <ownedParameter xmi:id="_-fqZkA8aEd6ZEphZXOMnTg" name="return" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_29QsME6hEd6NiYsm9_1_qQ" name="user">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_4MCMcE6hEd6NiYsm9_1_qQ" name="number">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_KcJTYA5PEd6KQuvMUCD2yg" name="applyTopicRule">
+ <ownedParameter xmi:id="_Lo4zUA5PEd6KQuvMUCD2yg" name="topicIds" type="_ddB9cIViEd2N0bQZBk24XA"/>
+ <ownedParameter xmi:id="_M8u8kA8aEd6ZEphZXOMnTg" name="return" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_OmBS0A5PEd6KQuvMUCD2yg" name="deleteTopicRule">
+ <ownedParameter xmi:id="_PIMy0A5PEd6KQuvMUCD2yg" name="return" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_QM3U0A5PEd6KQuvMUCD2yg" name="topicIds" type="_ddB9cIViEd2N0bQZBk24XA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_UXgwUg5PEd6KQuvMUCD2yg" name="findTopicRule">
+ <ownedParameter xmi:id="_VcKrQA5PEd6KQuvMUCD2yg" name="return" type="_5R04IE9XEd6VjacN4bzw2Q" direction="return"/>
+ <ownedParameter xmi:id="_XAgL0A5PEd6KQuvMUCD2yg" name="topicIds" type="_ddB9cIViEd2N0bQZBk24XA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_RXPBgCTdEd6QZ5hRjKYwWQ" name="removeTopic">
+ <ownedParameter xmi:id="_uXwxcCTdEd6QZ5hRjKYwWQ" name="return" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_0VbCsCTdEd6QZ5hRjKYwWQ" name="topicId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_HbRBYFGwEd6lINZTnfnS_Q" name="saveTopicRuleNumber">
+ <ownedParameter xmi:id="_hvXAQFGwEd6lINZTnfnS_Q" name="search" type="_50mREA74Ed6i07THnW3V5A"/>
+ <ownedParameter xmi:id="_h_bckFGwEd6lINZTnfnS_Q" name="topicIds" type="_ddB9cIViEd2N0bQZBk24XA"/>
+ <ownedParameter xmi:id="_jFxZkFGwEd6lINZTnfnS_Q" name="user">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_jjw9IFGwEd6lINZTnfnS_Q" name="number">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_kIASoFGwEd6lINZTnfnS_Q" name="return" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ </ownedParameter>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_sw1v0A5IEd6KQuvMUCD2yg" name="FacetContentSrv" clientDependency="_gIGNAA5QEd6KQuvMUCD2yg _xSI3Iw5QEd6KQuvMUCD2yg _gnh-4w-sEd6Za8ap1ETEyA">
+ <ownedOperation xmi:id="_ww1WUg5PEd6KQuvMUCD2yg" name="addTopicContent">
+ <ownedParameter xmi:id="_y7YiUA5PEd6KQuvMUCD2yg" name="contentId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_0p7u0A5PEd6KQuvMUCD2yg" name="topicId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_0K4XEA8aEd6ZEphZXOMnTg" name="return" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_5V_1Ug5PEd6KQuvMUCD2yg" name="deleteTopicContent">
+ <ownedParameter xmi:id="_MCvoUA5QEd6KQuvMUCD2yg" name="return" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_Nc7HUA5QEd6KQuvMUCD2yg" name="contentId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_Pkf30A5QEd6KQuvMUCD2yg" name="topicId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_SK5SUg5QEd6KQuvMUCD2yg" name="findAllTopicContent">
+ <ownedParameter xmi:id="_Sy34UA5QEd6KQuvMUCD2yg" name="return" type="_Ka0XUA5HEd6KQuvMUCD2yg" direction="return"/>
+ <ownedParameter xmi:id="_UvJ-0A5QEd6KQuvMUCD2yg" name="contentId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_G-TYcA7cEd6GlpMc1IXijg" name="findAllTopic">
+ <ownedParameter xmi:id="_MGpyUA7cEd6GlpMc1IXijg" name="return" type="_j8IR8B07Ed6sNL3iT4yqBg" direction="return"/>
+ <ownedParameter xmi:id="_UIC14A7cEd6GlpMc1IXijg" name="contentId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_XGjOYA7cEd6GlpMc1IXijg" name="facetName">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_x4510A5IEd6KQuvMUCD2yg" name="FacetDomainProductCatalogSrv" clientDependency="_eYWXkw5ZEd6KQuvMUCD2yg _-IWlgw5ZEd6KQuvMUCD2yg __yelAw5ZEd6KQuvMUCD2yg _AOjdAw5aEd6KQuvMUCD2yg _AoQ9gw5aEd6KQuvMUCD2yg _k3bH8w_GEd6Za8ap1ETEyA _lQXzcw_GEd6Za8ap1ETEyA _wMen0x3AEd6dVI2yFn6RnA _yqJBZCOEEd6gj5bfXc-Mvw">
+ <ownedOperation xmi:id="_lKjk0g5REd6KQuvMUCD2yg" name="createCatalog">
+ <ownedParameter xmi:id="_otYLUA5REd6KQuvMUCD2yg" name="catalogName">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_nGmUYB9gEd6Y0pLDes4cng" name="return" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_yvGYUHXJEd20DoWUDUK0Ig"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_sKGJ0g5REd6KQuvMUCD2yg" name="deleteCatalog">
+ <ownedParameter xmi:id="_vjE30A5REd6KQuvMUCD2yg" name="catalogName">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_FKSQ0A5SEd6KQuvMUCD2yg" name="return" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_zV1-0g5REd6KQuvMUCD2yg" name="findAllCatalog">
+ <ownedParameter xmi:id="_1PTa0A5REd6KQuvMUCD2yg" name="return" type="_g_fFMB08Ed6sNL3iT4yqBg" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_Nk_zUg5SEd6KQuvMUCD2yg" name="addSection">
+ <ownedParameter xmi:id="_QKBU0A5SEd6KQuvMUCD2yg" name="sectionId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_UvrRUA5SEd6KQuvMUCD2yg" name="sectionName">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_Pi0YkA8bEd6ZEphZXOMnTg" name="return" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_yvGYUHXJEd20DoWUDUK0Ig"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_VpupUg5TEd6KQuvMUCD2yg" name="renameLevel">
+ <ownedParameter xmi:id="_YHDAUA5TEd6KQuvMUCD2yg" name="levelId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_Z7eLUA5TEd6KQuvMUCD2yg" name="levelName">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_uaWqUA5TEd6KQuvMUCD2yg" name="return" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ </ownedParameter>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_yvGYUHXJEd20DoWUDUK0Ig"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_4uEgYA5UEd6KQuvMUCD2yg" name="deleteLevel">
+ <ownedParameter xmi:id="_53JoUA5UEd6KQuvMUCD2yg" name="levelId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_9p6vUA5UEd6KQuvMUCD2yg" name="return" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_g1If4A5VEd6KQuvMUCD2yg" name="findAllLevel">
+ <ownedParameter xmi:id="_i2cQUA5VEd6KQuvMUCD2yg" name="parentLevelId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_k9omUA5VEd6KQuvMUCD2yg" name="return" type="_g_fFMB08Ed6sNL3iT4yqBg" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_sM9c4A7bEd6GlpMc1IXijg" name="getContentCatalog">
+ <ownedParameter xmi:id="_tn5w4A7bEd6GlpMc1IXijg" name="return" type="_3UukkHjHEd2vSLEPekkQZw" direction="return"/>
+ <ownedParameter xmi:id="_wFoXkA7bEd6GlpMc1IXijg" name="catalogName">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_cnHx4A5WEd6KQuvMUCD2yg" name="getContentLevel">
+ <ownedParameter xmi:id="_inGXUA5WEd6KQuvMUCD2yg" name="return" type="_3UukkHjHEd2vSLEPekkQZw" direction="return"/>
+ <ownedParameter xmi:id="_n9f-0A5XEd6KQuvMUCD2yg" name="levelId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_LY45YA5YEd6KQuvMUCD2yg" name="findProducts">
+ <ownedParameter xmi:id="_UGvaUA5YEd6KQuvMUCD2yg" name="categoryId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_YIAQUA5YEd6KQuvMUCD2yg" name="return" type="_TqtQMPnAEd2-r9_matJLyA" direction="return"/>
+ <ownedParameter xmi:id="_f-230A5YEd6KQuvMUCD2yg" name="start">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_h1aw0A5YEd6KQuvMUCD2yg" name="end">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ </ownedParameter>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_673s0HXGEd2Ekv686xx4qA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_Mz9MYA5cEd6KQuvMUCD2yg" name="saveSearch">
+ <ownedParameter xmi:id="_z4ew0A5cEd6KQuvMUCD2yg" name="categoryId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_4NlI0A5cEd6KQuvMUCD2yg" name="search" type="_50mREA74Ed6i07THnW3V5A"/>
+ <ownedParameter xmi:id="_WAyhkA8bEd6ZEphZXOMnTg" name="return" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_f8hUcE6hEd6NiYsm9_1_qQ" name="user">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_hmCP8E6hEd6NiYsm9_1_qQ" name="number">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_YWVDYA5cEd6KQuvMUCD2yg" name="getSearch">
+ <ownedParameter xmi:id="_CDAV0A5dEd6KQuvMUCD2yg" name="return" type="_50mREA74Ed6i07THnW3V5A" direction="return"/>
+ <ownedParameter xmi:id="_Lk5i0A5dEd6KQuvMUCD2yg" name="categoryId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_b4sW4A5cEd6KQuvMUCD2yg" name="deleteSearch">
+ <ownedParameter xmi:id="_QsRsUA5dEd6KQuvMUCD2yg" name="return" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_X67EUA5dEd6KQuvMUCD2yg" name="categoryId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_3Mv3gB2-Ed6dVI2yFn6RnA" name="createLocalProduct">
+ <ownedParameter xmi:id="_Ahn8MB2_Ed6dVI2yFn6RnA" name="return" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_JOpWsB2_Ed6dVI2yFn6RnA" name="topicId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_L2imAB2_Ed6dVI2yFn6RnA" name="product" type="_3UukkHjHEd2vSLEPekkQZw"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_FRkdIB2_Ed6dVI2yFn6RnA" name="addProduct">
+ <ownedParameter xmi:id="_G6QSMB2_Ed6dVI2yFn6RnA" name="return" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_OGU3UB2_Ed6dVI2yFn6RnA" name="topicId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_PeMpMB2_Ed6dVI2yFn6RnA" name="productId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_OPZbgB4GEd6Hj8IcKtrWfg" name="renameCatalog">
+ <ownedParameter xmi:id="_T3RqAB4GEd6Hj8IcKtrWfg" name="oldCatalogName">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_UD80EB4GEd6Hj8IcKtrWfg" name="newCatalogName">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_l9JDMB4GEd6Hj8IcKtrWfg" name="return" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ </ownedParameter>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_yvGYUHXJEd20DoWUDUK0Ig"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_py7zkB4HEd6Hj8IcKtrWfg" name="move">
+ <ownedParameter xmi:id="_u3D0wB4HEd6Hj8IcKtrWfg" name="fromLevelId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_v-RUcB4HEd6Hj8IcKtrWfg" name="toLevelId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_2ieBQB4HEd6Hj8IcKtrWfg" name="return" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_HPxsEB4IEd6Hj8IcKtrWfg" name="addCategory">
+ <ownedParameter xmi:id="_ImQW0B4IEd6Hj8IcKtrWfg" name="sectionId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_OufgYB4IEd6Hj8IcKtrWfg" name="categoryName">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_Ut4P8B4IEd6Hj8IcKtrWfg" name="return" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_yvGYUHXJEd20DoWUDUK0Ig"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_x5fPMB9gEd6Y0pLDes4cng" name="isCategory">
+ <ownedParameter xmi:id="_y8ztYB9gEd6Y0pLDes4cng" name="return" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_0V2j8B9gEd6Y0pLDes4cng" name="levelId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_W46oICK-Ed6OMJznllRp2A" name="findLevel">
+ <ownedParameter xmi:id="_ab8qACK-Ed6OMJznllRp2A" name="return" type="_D5ipwB08Ed6sNL3iT4yqBg" direction="return"/>
+ <ownedParameter xmi:id="_dIESACK-Ed6OMJznllRp2A" name="levelId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_sCRWUCNUEd6d3NARAvR2pQ" name="isCatalog">
+ <ownedParameter xmi:id="_J9IAgCNVEd6d3NARAvR2pQ" name="return" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_26QaQCNZEd6d3NARAvR2pQ" name="levelId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_6Vx4MCNUEd6d3NARAvR2pQ" name="isSection">
+ <ownedParameter xmi:id="_LhRT0CNVEd6d3NARAvR2pQ" name="return" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_6Re0wCNZEd6d3NARAvR2pQ" name="levelId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ye4HUEtqEd6vPPc7KDt3WQ" name="findAllSearch">
+ <ownedParameter xmi:id="_J594wEtrEd6vPPc7KDt3WQ" name="catalogName">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_n9mPAEtsEd6vPPc7KDt3WQ" name="return" type="_UQqbIE9uEd6VjacN4bzw2Q" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_pbIukEttEd6vPPc7KDt3WQ" name="setRequestNumber">
+ <ownedParameter xmi:id="_0p9-gEttEd6vPPc7KDt3WQ" name="return" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_85ioAEttEd6vPPc7KDt3WQ" name="categoryId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="__2SF8EttEd6vPPc7KDt3WQ" name="number">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ </ownedParameter>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_673s0HXGEd2Ekv686xx4qA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_Xvpu0EtuEd6vPPc7KDt3WQ" name="getRequestNumber">
+ <ownedParameter xmi:id="_eKtGsEtuEd6vPPc7KDt3WQ" name="return" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_yR8hwEtuEd6vPPc7KDt3WQ" name="categoryId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_oGapME6gEd6NiYsm9_1_qQ" name="findAllCategory">
+ <ownedParameter xmi:id="_rtxxcE6gEd6NiYsm9_1_qQ" name="return" type="_ddB9cIViEd2N0bQZBk24XA" direction="return"/>
+ <ownedParameter xmi:id="_uuDEgE6gEd6NiYsm9_1_qQ" name="catalogName">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_qnotoFTTEd6m1uIJAJogNQ" name="updateDescription">
+ <ownedParameter xmi:id="_uJE0EFTTEd6m1uIJAJogNQ" name="return" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_yZhVkFTTEd6m1uIJAJogNQ" name="c" type="_3UukkHjHEd2vSLEPekkQZw"/>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_rzW54BVZEd6ea7tnvz6BlA" name="Dependency1" supplier="_YPxfsPOSEd2JbqIoInRhNw" client="_lYRm0A5IEd6KQuvMUCD2yg"/>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_wMen0x3AEd6dVI2yFn6RnA" name="Dependency2" supplier="_xswuUP9BEd2Qm_QM6AOnsQ" client="_x4510A5IEd6KQuvMUCD2yg"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_J7MKQCK6Ed6OMJznllRp2A" name="FacetDomainEditCatalogSrv" clientDependency="_y058cCK_Ed6OMJznllRp2A _0pZY4CK_Ed6OMJznllRp2A _2h_SMCK_Ed6OMJznllRp2A _3VDG0CK_Ed6OMJznllRp2A _4FS4ACK_Ed6OMJznllRp2A _83YuBCK_Ed6OMJznllRp2A _9nbq5CK_Ed6OMJznllRp2A _-U08ZCK_Ed6OMJznllRp2A _3Qjy4COEEd6gj5bfXc-Mvw">
+ <ownedOperation xmi:id="_O1wm0CK6Ed6OMJznllRp2A" name="createCatalog">
+ <ownedParameter xmi:id="_WZpPACK6Ed6OMJznllRp2A" name="return" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_dFh4MCK6Ed6OMJznllRp2A" name="catalogName">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_yvGYUHXJEd20DoWUDUK0Ig"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_lBWfQCK6Ed6OMJznllRp2A" name="deleteCatalog">
+ <ownedParameter xmi:id="_jEG6ACK7Ed6OMJznllRp2A" name="return" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_V21K8CK8Ed6OMJznllRp2A" name="catalogName">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_mkwLsCK6Ed6OMJznllRp2A" name="findAllCatalog">
+ <ownedParameter xmi:id="_lY8qcCK7Ed6OMJznllRp2A" name="return" type="_g_fFMB08Ed6sNL3iT4yqBg" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_qMXyoCK6Ed6OMJznllRp2A" name="renameCatalog">
+ <ownedParameter xmi:id="_oK8Q8CK7Ed6OMJznllRp2A" name="return" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_pTxEwCK8Ed6OMJznllRp2A" name="oldCatalogName">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_pV0TMCK8Ed6OMJznllRp2A" name="newCatalogName">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_yvGYUHXJEd20DoWUDUK0Ig"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_tLGNkCK6Ed6OMJznllRp2A" name="addDirectory">
+ <ownedParameter xmi:id="_rlAkECK7Ed6OMJznllRp2A" name="return" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_xIrLgCK8Ed6OMJznllRp2A" name="directoryId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_xQ4FQCK8Ed6OMJznllRp2A" name="directoryName">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_yvGYUHXJEd20DoWUDUK0Ig"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_yWYmsCK6Ed6OMJznllRp2A" name="renameLevel">
+ <ownedParameter xmi:id="_uENxcCK7Ed6OMJznllRp2A" name="return" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_4MU0cCK8Ed6OMJznllRp2A" name="levelId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_4UkKcCK8Ed6OMJznllRp2A" name="levelName">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_yvGYUHXJEd20DoWUDUK0Ig"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_z0I-ICK6Ed6OMJznllRp2A" name="findAllLevel">
+ <ownedParameter xmi:id="_wKuK8CK7Ed6OMJznllRp2A" name="return" type="_g_fFMB08Ed6sNL3iT4yqBg" direction="return"/>
+ <ownedParameter xmi:id="_9bUo4CK8Ed6OMJznllRp2A" name="parentLevelId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_1kb3ECK6Ed6OMJznllRp2A" name="deleteLevel">
+ <ownedParameter xmi:id="_0yKQICK7Ed6OMJznllRp2A" name="return" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_AdR-ACK9Ed6OMJznllRp2A" name="levelId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_5HypECK6Ed6OMJznllRp2A" name="findLevel">
+ <ownedParameter xmi:id="_2kE5sCK7Ed6OMJznllRp2A" name="return" type="_D5ipwB08Ed6sNL3iT4yqBg" direction="return"/>
+ <ownedParameter xmi:id="_K9gbgCK9Ed6OMJznllRp2A" name="levelId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_65srkCK6Ed6OMJznllRp2A" name="getContentLevel">
+ <ownedParameter xmi:id="_48hXwCK7Ed6OMJznllRp2A" name="return" type="_3UukkHjHEd2vSLEPekkQZw" direction="return"/>
+ <ownedParameter xmi:id="_YWDxACK9Ed6OMJznllRp2A" name="levelId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_9VCFkCK6Ed6OMJznllRp2A" name="findArticles">
+ <ownedParameter xmi:id="_-BefYCK7Ed6OMJznllRp2A" name="return" type="_TqtQMPnAEd2-r9_matJLyA" direction="return"/>
+ <ownedParameter xmi:id="_dCuUcCK9Ed6OMJznllRp2A" name="folderId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_dJENACK9Ed6OMJznllRp2A" name="start">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_dQnmgCK9Ed6OMJznllRp2A" name="end">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ </ownedParameter>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_673s0HXGEd2Ekv686xx4qA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_BXvtECK7Ed6OMJznllRp2A" name="addFolder">
+ <ownedParameter xmi:id="_GDiRUCK8Ed6OMJznllRp2A" name="return" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_pcfGcCK9Ed6OMJznllRp2A" name="directoryName">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_pkDuECK9Ed6OMJznllRp2A" name="folderName">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_yvGYUHXJEd20DoWUDUK0Ig"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_CfszoCK7Ed6OMJznllRp2A" name="addArticle">
+ <ownedParameter xmi:id="_Ivx1ICK8Ed6OMJznllRp2A" name="return" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_37On8CK9Ed6OMJznllRp2A" name="folderId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_4EJ6cCK9Ed6OMJznllRp2A" name="articleId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_FImvkCK7Ed6OMJznllRp2A" name="move">
+ <ownedParameter xmi:id="_KdLyICK8Ed6OMJznllRp2A" name="return" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_9aMLACK9Ed6OMJznllRp2A" name="fromLevelId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_9bjc8CK9Ed6OMJznllRp2A" name="toLevelId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_LMMCoCK7Ed6OMJznllRp2A" name="isFolder">
+ <ownedParameter xmi:id="_M8r6cCK8Ed6OMJznllRp2A" name="return" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_BoCEcCK-Ed6OMJznllRp2A" name="levelId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_NVhGoCK7Ed6OMJznllRp2A" name="isCatalog">
+ <ownedParameter xmi:id="_OtgX0CK8Ed6OMJznllRp2A" name="levelId" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_IdTTICK-Ed6OMJznllRp2A" name="levelId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_fX1ckCK7Ed6OMJznllRp2A" name="getContentCatalog">
+ <ownedParameter xmi:id="_SrAvMCK8Ed6OMJznllRp2A" name="return" type="_3UukkHjHEd2vSLEPekkQZw" direction="return"/>
+ <ownedParameter xmi:id="_L3ErUCK-Ed6OMJznllRp2A" name="catalogName">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_0arywCNUEd6d3NARAvR2pQ" name="isDirectory">
+ <ownedParameter xmi:id="_EirKACNVEd6d3NARAvR2pQ" name="return" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="__QqrkCNZEd6d3NARAvR2pQ" name="levelId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedParameter>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_WQAP2CT0Ed6Bk7gvYh5YAQ" name="Association1" memberEnd="_WQAP2ST0Ed6Bk7gvYh5YAQ _WQA24ST0Ed6Bk7gvYh5YAQ">
+ <ownedEnd xmi:id="_WQAP2ST0Ed6Bk7gvYh5YAQ" name="source" type="_x4510A5IEd6KQuvMUCD2yg" association="_WQAP2CT0Ed6Bk7gvYh5YAQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_WQAP2iT0Ed6Bk7gvYh5YAQ" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_WQA24CT0Ed6Bk7gvYh5YAQ" value="1"/>
+ </ownedEnd>
+ <ownedEnd xmi:id="_WQA24ST0Ed6Bk7gvYh5YAQ" name="target" type="_pfA7oHm8Ed2ql75AYIhxSA" association="_WQAP2CT0Ed6Bk7gvYh5YAQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_WQA24iT0Ed6Bk7gvYh5YAQ" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_WQA24yT0Ed6Bk7gvYh5YAQ" value="1"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_O_wroCUQEd61bp1hxMeETg" name="Dependency3" supplier="_lYRm0A5IEd6KQuvMUCD2yg" client="_hm9RUA5IEd6KQuvMUCD2yg"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_2kgvUCtSEd6tjYAzTLw2Cw" name="FacetSegmentationSrv" clientDependency="_Fpxo0ytUEd6tjYAzTLw2Cw _GPEuQytUEd6tjYAzTLw2Cw _HEEckytUEd6tjYAzTLw2Cw _KgYycytUEd6tjYAzTLw2Cw _jciuAytUEd6tjYAzTLw2Cw _8quYoDVjEd6Qg9MkiTPhqA">
+ <ownedOperation xmi:id="_P1nVQCtVEd6tjYAzTLw2Cw" name="create">
+ <ownedParameter xmi:id="_gMy_ECtVEd6tjYAzTLw2Cw" name="return" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_tBG_ECtVEd6tjYAzTLw2Cw" name="familyId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_yvGYUHXJEd20DoWUDUK0Ig"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_RXQHICtVEd6tjYAzTLw2Cw" name="update">
+ <ownedParameter xmi:id="_yzbjACtVEd6tjYAzTLw2Cw" name="return" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_1nPucCtVEd6tjYAzTLw2Cw" name="segmentationName">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_3Y7HcCtVEd6tjYAzTLw2Cw" name="facetName" type="_Pk2hUA5JEd6KQuvMUCD2yg"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_BElUcCtWEd6tjYAzTLw2Cw" name="remove">
+ <ownedParameter xmi:id="_C5FX8CtWEd6tjYAzTLw2Cw" name="segmentationName">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_KI7p0CtWEd6tjYAzTLw2Cw" name="return" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_xD0xICtWEd6tjYAzTLw2Cw" name="addCriterion">
+ <ownedParameter xmi:id="_BtNlQCtXEd6tjYAzTLw2Cw" name="return" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_D38-gCtXEd6tjYAzTLw2Cw" name="segmentationName">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_FjDOYCtXEd6tjYAzTLw2Cw" name="criterion" type="_55WnYCtWEd6tjYAzTLw2Cw"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_yvGYUHXJEd20DoWUDUK0Ig"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_DPFLMCtYEd6tjYAzTLw2Cw" name="removeCriterion">
+ <ownedParameter xmi:id="_GC5WoCtYEd6tjYAzTLw2Cw" name="return" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_H3fgwCtYEd6tjYAzTLw2Cw" name="criterionName">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_o2WPMDVjEd6Qg9MkiTPhqA" name="segmentationName">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_RV8YMCtYEd6tjYAzTLw2Cw" name="editCriterion">
+ <ownedParameter xmi:id="_SUr4YCtYEd6tjYAzTLw2Cw" name="return" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_XVs7MCtYEd6tjYAzTLw2Cw" name="criterionName">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_Zwm3YCtYEd6tjYAzTLw2Cw" name="criterion" type="_55WnYCtWEd6tjYAzTLw2Cw"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_h84VQitYEd6tjYAzTLw2Cw" name="findCriterion">
+ <ownedParameter xmi:id="_jDQHcCtYEd6tjYAzTLw2Cw" name="return" type="_55WnYCtWEd6tjYAzTLw2Cw" direction="return"/>
+ <ownedParameter xmi:id="_nYfCUCtYEd6tjYAzTLw2Cw" name="criterionName">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_TFR8wC2mEd6R-vHwJRLroA" name="findAllCriterions">
+ <ownedParameter xmi:id="_mynDAC2mEd6R-vHwJRLroA" name="return" type="_zKx5kC2mEd6R-vHwJRLroA" direction="return"/>
+ <ownedParameter xmi:id="_3i-o4C2mEd6R-vHwJRLroA" name="segmentationName">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_54S2AC5MEd6xvOBU31IlXw" name="saveDescriptiveContent">
+ <ownedParameter xmi:id="_M2oIQC5NEd6xvOBU31IlXw" name="return" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_gCJh8C5NEd6xvOBU31IlXw" name="description" type="_55WnYCtWEd6tjYAzTLw2Cw"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__C1oQC5MEd6xvOBU31IlXw" name="addCriterionValues">
+ <ownedParameter xmi:id="_ONZt8C5NEd6xvOBU31IlXw" name="return" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_afysoC5NEd6xvOBU31IlXw" name="criterionName">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_c-TWcC5NEd6xvOBU31IlXw" name="criterionValues" type="_uPKaQC5NEd6xvOBU31IlXw"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_QyVYsC8lEd6-MauFHegShA" name="find">
+ <ownedParameter xmi:id="_UQ1f4C8lEd6-MauFHegShA" name="return" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_tG2-QC8lEd6-MauFHegShA" name="familyId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_zMZZIC8lEd6-MauFHegShA" name="findSegmentationChains">
+ <ownedParameter xmi:id="_1dbnoC8lEd6-MauFHegShA" name="return" type="_Pk2hUA5JEd6KQuvMUCD2yg" direction="return"/>
+ <ownedParameter xmi:id="_31XIUC8lEd6-MauFHegShA" name="segmentationName">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_jGB_AC_UEd60r8Vp-3Ec5w" name="getCompleteSegmentation">
+ <ownedParameter xmi:id="_D5Tn0C_VEd60r8Vp-3Ec5w" name="return" type="_EfoV0A5IEd6KQuvMUCD2yg" direction="return"/>
+ <ownedParameter xmi:id="_GNiUQC_VEd60r8Vp-3Ec5w" name="segmentationName">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ScERMC_WEd60r8Vp-3Ec5w" name="getSegmentingCriterionValues">
+ <ownedParameter xmi:id="_WD-MAC_WEd60r8Vp-3Ec5w" name="return" type="_g_fFMB08Ed6sNL3iT4yqBg" direction="return"/>
+ <ownedParameter xmi:id="_XuJ14C_WEd60r8Vp-3Ec5w" name="segmentationName">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_bap80C_WEd60r8Vp-3Ec5w" name="criterionName">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_Fpxo0ytUEd6tjYAzTLw2Cw" name="Dependency4" supplier="_Ugb_4Hi_Ed2oZoPbWJIMHg" client="_2kgvUCtSEd6tjYAzTLw2Cw"/>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_GPEuQytUEd6tjYAzTLw2Cw" name="Dependency5" supplier="_yvPJ2HTaEd20yqJGyRKhKA" client="_2kgvUCtSEd6tjYAzTLw2Cw"/>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_HEEckytUEd6tjYAzTLw2Cw" name="Dependency6" supplier="_hm9RUA5IEd6KQuvMUCD2yg" client="_2kgvUCtSEd6tjYAzTLw2Cw"/>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_KgYycytUEd6tjYAzTLw2Cw" name="Dependency7" supplier="_gUQTUA5IEd6KQuvMUCD2yg" client="_2kgvUCtSEd6tjYAzTLw2Cw"/>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_jciuAytUEd6tjYAzTLw2Cw" name="Dependency8" supplier="_d9MVUA5IEd6KQuvMUCD2yg" client="_2kgvUCtSEd6tjYAzTLw2Cw"/>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_xai8wC1_Ed6R-vHwJRLroA" name="Dependency9" supplier="_-4GJSHggEd2Vxr2aiClL8g" client="_gUQTUA5IEd6KQuvMUCD2yg"/>
+ <packagedElement xmi:type="uml:DataType" xmi:id="_zKx5kC2mEd6R-vHwJRLroA" name="List<CriterionDto>"/>
+ <packagedElement xmi:type="uml:DataType" xmi:id="_uPKaQC5NEd6xvOBU31IlXw" name="Map<String, CriterionDto>"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_jwI9AC5VEd6W6LY8irJDig" name="FamilySrv" clientDependency="_OYR_Ey6LEd6FoZrLsKOTCQ _O1anAy6LEd6FoZrLsKOTCQ _bGCH8C_nEd6m7Z8-52146A _4qW9oFEGEd643dseCuH5RA">
+ <ownedOperation xmi:id="_nj-bAC5VEd6W6LY8irJDig" name="createFamily">
+ <ownedParameter xmi:id="_vKcdIC5VEd6W6LY8irJDig" name="familyName">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_1jTcoC5VEd6W6LY8irJDig" name="return" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_yvGYUHXJEd20DoWUDUK0Ig"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_EbIwUKtAEd2Nmqhc73l7SA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_-489YC5VEd6W6LY8irJDig" name="deleteFamily">
+ <ownedParameter xmi:id="_ULBM0C5WEd6W6LY8irJDig" name="return" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_ZTCPgC5WEd6W6LY8irJDig" name="familyId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_KQqi-HjwEd2MH8DN-NMNrA"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_EbIwUKtAEd2Nmqhc73l7SA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_fjrHIi5WEd6W6LY8irJDig" name="findAllFamilies">
+ <ownedParameter xmi:id="_xnq4EC5WEd6W6LY8irJDig" name="return" type="_j8IR8B07Ed6sNL3iT4yqBg" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_CkF88i5XEd6W6LY8irJDig" name="getFamilyName">
+ <ownedParameter xmi:id="_FwpYgC5XEd6W6LY8irJDig" name="familyId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_NISUcC5XEd6W6LY8irJDig" name="return" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_KQqi-HjwEd2MH8DN-NMNrA"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_EbIwUKtAEd2Nmqhc73l7SA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_O5tOwC5XEd6W6LY8irJDig" name="getFamilyContent">
+ <ownedParameter xmi:id="_Ttpe4C5XEd6W6LY8irJDig" name="return" type="_3UukkHjHEd2vSLEPekkQZw" direction="return"/>
+ <ownedParameter xmi:id="_VZNo0C5XEd6W6LY8irJDig" name="familyId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_KQqi-HjwEd2MH8DN-NMNrA"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_EbIwUKtAEd2Nmqhc73l7SA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_cMvyIC5XEd6W6LY8irJDig" name="renameFamily">
+ <ownedParameter xmi:id="_h7p1sC5XEd6W6LY8irJDig" name="familyId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_mg8l0C5XEd6W6LY8irJDig" name="familyName">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_v72aAC5XEd6W6LY8irJDig" name="return" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ </ownedParameter>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_yvGYUHXJEd20DoWUDUK0Ig"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_KQqi-HjwEd2MH8DN-NMNrA"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_EbIwUKtAEd2Nmqhc73l7SA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_JSuisC5YEd6W6LY8irJDig" name="findProducts">
+ <ownedParameter xmi:id="_NdFDQC5YEd6W6LY8irJDig" name="return" type="_TqtQMPnAEd2-r9_matJLyA" direction="return"/>
+ <ownedParameter xmi:id="_gC35sC5YEd6W6LY8irJDig" name="familyId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_UUaOsC_dEd6uXI1DlaVnBQ" name="start">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_WfxTAC_dEd6uXI1DlaVnBQ" name="end">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ </ownedParameter>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_673s0HXGEd2Ekv686xx4qA"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_KQqi-HjwEd2MH8DN-NMNrA"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_EbIwUKtAEd2Nmqhc73l7SA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_SoZRki5YEd6W6LY8irJDig" name="findProductsByTopics">
+ <ownedParameter xmi:id="_dfv1oC5YEd6W6LY8irJDig" name="return" type="_TqtQMPnAEd2-r9_matJLyA" direction="return"/>
+ <ownedParameter xmi:id="_cQPMMC5xEd6W6LY8irJDig" name="familyId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_byDsAC_dEd6uXI1DlaVnBQ" name="topicIds" type="_ddB9cIViEd2N0bQZBk24XA"/>
+ <ownedParameter xmi:id="_d7_0AC_dEd6uXI1DlaVnBQ" name="start">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_fu-NgC_dEd6uXI1DlaVnBQ" name="end">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ </ownedParameter>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_673s0HXGEd2Ekv686xx4qA"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_KQqi-HjwEd2MH8DN-NMNrA"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_EbIwUKtAEd2Nmqhc73l7SA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_wa_XoC5YEd6W6LY8irJDig" name="saveFamilyRequest">
+ <ownedParameter xmi:id="_yzgHIC5YEd6W6LY8irJDig" name="searchDto" type="_JAhtMMbCEd2uuaPd80qeIQ"/>
+ <ownedParameter xmi:id="_8hx9wC5tEd6W6LY8irJDig" name="return" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_DaZzsC50Ed6W6LY8irJDig" name="familyId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_4RBZUKs-Ed2Nmqhc73l7SA"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_KQqi-HjwEd2MH8DN-NMNrA"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_EbIwUKtAEd2Nmqhc73l7SA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_wIjIgC5zEd6W6LY8irJDig" name="getFamilyRequest">
+ <ownedParameter xmi:id="_3257UC5zEd6W6LY8irJDig" name="return" type="_JAhtMMbCEd2uuaPd80qeIQ" direction="return"/>
+ <ownedParameter xmi:id="_7YucQC5zEd6W6LY8irJDig" name="familyId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_KQqi-HjwEd2MH8DN-NMNrA"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_EbIwUKtAEd2Nmqhc73l7SA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_OQgZEDSfEd6SRfzb6Civ8A" name="removeFamilyRequest">
+ <ownedParameter xmi:id="_X4YSQDSfEd6SRfzb6Civ8A" name="return" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_ZiVSoDSfEd6SRfzb6Civ8A" name="familyId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_e_pcsExVEd663ZuzwRMpEw" name="isFamily">
+ <ownedParameter xmi:id="_k1Nh4ExVEd663ZuzwRMpEw" name="familyId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_uKSa4ExVEd663ZuzwRMpEw" name="return" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ </ownedParameter>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:DataType" xmi:id="_-duIAC5XEd6W6LY8irJDig" name="PagedResult<TopicDTO>"/>
+ <packagedElement xmi:type="uml:DataType" xmi:id="_HiG40C6IEd6ts7qX7YWm0w" name="PagedResult<TopicDTO>"/>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_OYR_Ey6LEd6FoZrLsKOTCQ" name="Dependency10" supplier="_Ugb_4Hi_Ed2oZoPbWJIMHg" client="_jwI9AC5VEd6W6LY8irJDig"/>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_O1anAy6LEd6FoZrLsKOTCQ" name="Dependency11" supplier="_hm9RUA5IEd6KQuvMUCD2yg" client="_jwI9AC5VEd6W6LY8irJDig"/>
+ <packagedElement xmi:type="uml:DataType" xmi:id="_CQdfEC_zEd6wTqNjal63Xg" name="List<List<FacetResult>>"/>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_8quYoDVjEd6Qg9MkiTPhqA" name="Dependency12" supplier="_zAlIsHggEd2Vxr2aiClL8g" client="_2kgvUCtSEd6tjYAzTLw2Cw"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_aJeVgD4_Ed6us98SLDIclA" name="LabelSrv" clientDependency="_y2fzcz5AEd6us98SLDIclA _zM125D5AEd6us98SLDIclA _JHvEMEtjEd6RroIE_si1DQ _Lf0-IEt9Ed6vPPc7KDt3WQ _u6tTo0uDEd6vPPc7KDt3WQ _UeLW81EUEd6gYNMtyDOtdg">
+ <ownedOperation xmi:id="_ZQkFoD5BEd6us98SLDIclA" name="createSubject">
+ <ownedParameter xmi:id="_iqlJAD5BEd6us98SLDIclA" name="subjectName">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_yvGYUHXJEd20DoWUDUK0Ig"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_bI0twHg-Ed2lVPDSSAZWVg"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_uwRIcj5BEd6us98SLDIclA" name="createLabel">
+ <ownedParameter xmi:id="_zbEqsD5BEd6us98SLDIclA" name="return" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_36us4D5BEd6us98SLDIclA" name="subjectName">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_Ahw0ID5CEd6us98SLDIclA" name="labelName">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_yvGYUHXJEd20DoWUDUK0Ig"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_bI0twHg-Ed2lVPDSSAZWVg"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_jKYN8j5CEd6us98SLDIclA" name="createSubLabel">
+ <ownedParameter xmi:id="_lYtGsD5CEd6us98SLDIclA" name="return" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_pXtS4D5CEd6us98SLDIclA" name="labelId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_ylw94D5CEd6us98SLDIclA" name="labelName">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_bI0twHg-Ed2lVPDSSAZWVg"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_yvGYUHXJEd20DoWUDUK0Ig"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_wC3t4j5DEd6us98SLDIclA" name="deleteSubject">
+ <ownedParameter xmi:id="_58kW4D5DEd6us98SLDIclA" name="return" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_QAKw8D5EEd6us98SLDIclA" name="subjectName">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_sgG8Uj5EEd6us98SLDIclA" name="deleteLabel">
+ <ownedParameter xmi:id="_vqnJcD5EEd6us98SLDIclA" name="return" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_zXpb4D5EEd6us98SLDIclA" name="labelId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_C_mBIj5FEd6us98SLDIclA" name="getSubjectContent">
+ <ownedParameter xmi:id="_HMgtgD5FEd6us98SLDIclA" name="return" type="_3UukkHjHEd2vSLEPekkQZw" direction="return"/>
+ <ownedParameter xmi:id="_NnyH0D5FEd6us98SLDIclA" name="subjectName">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_TR5K8T5FEd6us98SLDIclA" name="getLabelContent">
+ <ownedParameter xmi:id="_WABlID5FEd6us98SLDIclA" name="return" type="_3UukkHjHEd2vSLEPekkQZw" direction="return"/>
+ <ownedParameter xmi:id="_Ze3DgD5FEd6us98SLDIclA" name="labelId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_jk9Jwj5FEd6us98SLDIclA" name="renameSubject">
+ <ownedParameter xmi:id="_mUbnwD5FEd6us98SLDIclA" name="return" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_oW2ygD5FEd6us98SLDIclA" name="subjectOldName">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_r_BMAD5FEd6us98SLDIclA" name="subjectNewName">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_bI0twHg-Ed2lVPDSSAZWVg"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_yvGYUHXJEd20DoWUDUK0Ig"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_zP9DAD5FEd6us98SLDIclA" name="renameLabel">
+ <ownedParameter xmi:id="_2TdQQD5FEd6us98SLDIclA" name="return" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_3pgdMD5FEd6us98SLDIclA" name="labelId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_83wDsD5FEd6us98SLDIclA" name="labelNewName">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_bI0twHg-Ed2lVPDSSAZWVg"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_yvGYUHXJEd20DoWUDUK0Ig"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_Fr5Z4D5GEd6us98SLDIclA" name="findAllSubject">
+ <ownedParameter xmi:id="_I5_GgD5GEd6us98SLDIclA" name="return" type="_ddB9cIViEd2N0bQZBk24XA" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ZV44Qj5GEd6us98SLDIclA" name="findLabel">
+ <ownedParameter xmi:id="_asuvYD5GEd6us98SLDIclA" name="return" type="_g_fFMB08Ed6sNL3iT4yqBg" direction="return"/>
+ <ownedParameter xmi:id="_leLfwD5GEd6us98SLDIclA" name="subjectName">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_rPunoD5GEd6us98SLDIclA" name="findSubLabel">
+ <ownedParameter xmi:id="_skc-4D5GEd6us98SLDIclA" name="return" type="_g_fFMB08Ed6sNL3iT4yqBg" direction="return"/>
+ <ownedParameter xmi:id="_wzpjMD5GEd6us98SLDIclA" name="labelId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_d8XtAEEsEd6naM7GDXYidw" name="getLabel">
+ <ownedParameter xmi:id="_fgw38EEsEd6naM7GDXYidw" name="return" type="_D5ipwB08Ed6sNL3iT4yqBg" direction="return"/>
+ <ownedParameter xmi:id="_g3R-8EEsEd6naM7GDXYidw" name="labelId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_jYk3AEEsEd6naM7GDXYidw" name="moveLabel">
+ <ownedParameter xmi:id="_koNS4EEsEd6naM7GDXYidw" name="return" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_lzrAcEEsEd6naM7GDXYidw" name="fromLabelId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_7lQdcEEsEd6naM7GDXYidw" name="toLabelId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_NDuDgEthEd6RroIE_si1DQ" name="classifyFamily">
+ <ownedParameter xmi:id="_Sp-hYEthEd6RroIE_si1DQ" name="return" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_X9b_EEthEd6RroIE_si1DQ" name="familyId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_frhFEEthEd6RroIE_si1DQ" name="labelIds" type="_ddB9cIViEd2N0bQZBk24XA"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_EbIwUKtAEd2Nmqhc73l7SA"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_KQqi-HjwEd2MH8DN-NMNrA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_e5A0oEtiEd6RroIE_si1DQ" name="findSubjectsByFamily">
+ <ownedParameter xmi:id="_xp3EgEtiEd6RroIE_si1DQ" name="familyId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_1qiEoEtiEd6RroIE_si1DQ" name="return" type="_Ka0XUA5HEd6KQuvMUCD2yg" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_LFxeMEtjEd6RroIE_si1DQ" name="unClassifyFamily">
+ <ownedParameter xmi:id="_PJ73MEtjEd6RroIE_si1DQ" name="return" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_QoeRwEtjEd6RroIE_si1DQ" name="familyId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_kNJyUEtjEd6RroIE_si1DQ" name="unClassifyFamilyfromLabel">
+ <ownedParameter xmi:id="_na_nUEtjEd6RroIE_si1DQ" name="familyId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_r6B-cEtjEd6RroIE_si1DQ" name="labelId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_wAgEkEtjEd6RroIE_si1DQ" name="return" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_DuVsoEweEd6SUqmuGcZJOw" name="isLabel">
+ <ownedParameter xmi:id="_FSoJ4EweEd6SUqmuGcZJOw" name="return" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_J5dLEEweEd6SUqmuGcZJOw" name="labelId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_PKe_0EweEd6SUqmuGcZJOw" name="isSubject">
+ <ownedParameter xmi:id="_RVKHoEweEd6SUqmuGcZJOw" name="subjectName">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_S3zmIEweEd6SUqmuGcZJOw" name="return" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_P-5QkFEGEd643dseCuH5RA" name="findParentLabel">
+ <ownedParameter xmi:id="_VEX8oFEGEd643dseCuH5RA" name="return" type="_SsxC8B07Ed6sNL3iT4yqBg" direction="return"/>
+ <ownedParameter xmi:id="_WrJGIFEGEd643dseCuH5RA" name="labelId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_bQsU8lEGEd643dseCuH5RA" name="findSubject">
+ <ownedParameter xmi:id="_dYQeYFEGEd643dseCuH5RA" name="return" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_fJMQgFEGEd643dseCuH5RA" name="labelId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_y2fzcz5AEd6us98SLDIclA" name="Dependency13" supplier="_hm9RUA5IEd6KQuvMUCD2yg" client="_aJeVgD4_Ed6us98SLDIclA"/>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_zM125D5AEd6us98SLDIclA" name="Dependency14" supplier="_gUQTUA5IEd6KQuvMUCD2yg" client="_aJeVgD4_Ed6us98SLDIclA"/>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_JHvEMEtjEd6RroIE_si1DQ" name="Dependency15" supplier="_jwI9AC5VEd6W6LY8irJDig" client="_aJeVgD4_Ed6us98SLDIclA"/>
+ <packagedElement xmi:type="uml:DataType" xmi:id="_NPuowEttEd6vPPc7KDt3WQ" name="List<List<ContentNomenclatureSearchDto>>"/>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_Lf0-IEt9Ed6vPPc7KDt3WQ" name="Dependency16" supplier="_sw1v0A5IEd6KQuvMUCD2yg" client="_aJeVgD4_Ed6us98SLDIclA"/>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_u6tTo0uDEd6vPPc7KDt3WQ" name="Dependency17" supplier="_yvPJ2HTaEd20yqJGyRKhKA" client="_aJeVgD4_Ed6us98SLDIclA"/>
+ <packagedElement xmi:type="uml:DataType" xmi:id="_UQqbIE9uEd6VjacN4bzw2Q" name="List<TopicRuleDto>"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_ZoF7YE-FEd6jPaCGdA6eKw" name="WebMasteringSrv" clientDependency="_r2TUEE-MEd6jPaCGdA6eKw _sfeM40-MEd6jPaCGdA6eKw _swu8A0-MEd6jPaCGdA6eKw _s_XN40-MEd6jPaCGdA6eKw _JwqrY1EUEd6gYNMtyDOtdg">
+ <ownedOperation xmi:id="_eD-Q0E-FEd6jPaCGdA6eKw" name="createEntryPoint">
+ <ownedParameter xmi:id="_IKa4sE-HEd6jPaCGdA6eKw" name="entryPointName">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_yvGYUHXJEd20DoWUDUK0Ig"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_bI0twHg-Ed2lVPDSSAZWVg"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_eipJ0E-FEd6jPaCGdA6eKw" name="deleteEntryPoint">
+ <ownedParameter xmi:id="_S9A4kE-HEd6jPaCGdA6eKw" name="entryPointName">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_8MFXEE-JEd6jPaCGdA6eKw" name="return" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_lYrNgE-FEd6jPaCGdA6eKw" name="renameEntryPoint">
+ <ownedParameter xmi:id="_Y__usE-HEd6jPaCGdA6eKw" name="oldEntryPointName">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_gTmfME-HEd6jPaCGdA6eKw" name="newEntryPointName">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_-vcEoE-JEd6jPaCGdA6eKw" name="return" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ </ownedParameter>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_bI0twHg-Ed2lVPDSSAZWVg"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_yvGYUHXJEd20DoWUDUK0Ig"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_26s50k-FEd6jPaCGdA6eKw" name="findAllEntryPoints">
+ <ownedParameter xmi:id="_BR9EsE-KEd6jPaCGdA6eKw" name="return" type="_ddB9cIViEd2N0bQZBk24XA" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_5s3fck-FEd6jPaCGdA6eKw" name="getEntryPointDescription">
+ <ownedParameter xmi:id="_l4tGgE-HEd6jPaCGdA6eKw" name="entryPointName">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_DFPnQE-KEd6jPaCGdA6eKw" name="return" type="_3UukkHjHEd2vSLEPekkQZw" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_92iDgk-FEd6jPaCGdA6eKw" name="createLevel">
+ <ownedParameter xmi:id="_q3U8oE-HEd6jPaCGdA6eKw" name="entryPointName">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_rGNGIE-HEd6jPaCGdA6eKw" name="levelName">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_HjqTUE-KEd6jPaCGdA6eKw" name="return" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_bI0twHg-Ed2lVPDSSAZWVg"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_yvGYUHXJEd20DoWUDUK0Ig"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_CCRrME-GEd6jPaCGdA6eKw" name="createSubLevel">
+ <ownedParameter xmi:id="_0wmH0E-HEd6jPaCGdA6eKw" name="levelId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_09Qq0E-HEd6jPaCGdA6eKw" name="levelName">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_KeNY4E-KEd6jPaCGdA6eKw" name="return" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_bI0twHg-Ed2lVPDSSAZWVg"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_yvGYUHXJEd20DoWUDUK0Ig"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ELEjsE-GEd6jPaCGdA6eKw" name="renameLevel">
+ <ownedParameter xmi:id="_7XYOkE-HEd6jPaCGdA6eKw" name="levelId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_73VhAE-HEd6jPaCGdA6eKw" name="newLevelName">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_MQbkcE-KEd6jPaCGdA6eKw" name="return" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ </ownedParameter>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_bI0twHg-Ed2lVPDSSAZWVg"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_yvGYUHXJEd20DoWUDUK0Ig"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_FuL8QE-GEd6jPaCGdA6eKw" name="findLevel">
+ <ownedParameter xmi:id="_BpwyoE-IEd6jPaCGdA6eKw" name="entryPointName">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_NnVtAE-KEd6jPaCGdA6eKw" name="return" type="_aSk7EFGvEd6lINZTnfnS_Q" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_Hug1QE-GEd6jPaCGdA6eKw" name="findSubLevel">
+ <ownedParameter xmi:id="_F4ZWQE-IEd6jPaCGdA6eKw" name="levelId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_p9o0ME-KEd6jPaCGdA6eKw" name="return" type="_aSk7EFGvEd6lINZTnfnS_Q" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_JvE-0E-GEd6jPaCGdA6eKw" name="getLevelDescription">
+ <ownedParameter xmi:id="_Ly_FYE-IEd6jPaCGdA6eKw" name="levelId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_3CZrAE-KEd6jPaCGdA6eKw" name="return" type="_3UukkHjHEd2vSLEPekkQZw" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_Mo3PYE-GEd6jPaCGdA6eKw" name="getLevel">
+ <ownedParameter xmi:id="_PjtlAE-IEd6jPaCGdA6eKw" name="levelId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_6XHkEE-KEd6jPaCGdA6eKw" name="return" type="_xIOzQFGmEd6lINZTnfnS_Q" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_PBxngE-GEd6jPaCGdA6eKw" name="moveLevel">
+ <ownedParameter xmi:id="_UViVQE-IEd6jPaCGdA6eKw" name="fromLevelId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_UxNkoE-IEd6jPaCGdA6eKw" name="toLevelId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_8i5fIE-KEd6jPaCGdA6eKw" name="return" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_TasvkE-GEd6jPaCGdA6eKw" name="classifyFamily">
+ <ownedParameter xmi:id="_gOIT4E-IEd6jPaCGdA6eKw" name="familyId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_gfctYE-IEd6jPaCGdA6eKw" name="levelIds" type="_ddB9cIViEd2N0bQZBk24XA"/>
+ <ownedParameter xmi:id="_AC6CME-LEd6jPaCGdA6eKw" name="return" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ </ownedParameter>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_EbIwUKtAEd2Nmqhc73l7SA"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_KQqi-HjwEd2MH8DN-NMNrA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_YitLME-GEd6jPaCGdA6eKw" name="unClassifyFamily">
+ <ownedParameter xmi:id="_qVwEIE-IEd6jPaCGdA6eKw" name="familyId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_BGHysE-LEd6jPaCGdA6eKw" name="return" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_cA-B0E-GEd6jPaCGdA6eKw" name="unClassifyFamilyFromLevel">
+ <ownedParameter xmi:id="_vnwJQE-IEd6jPaCGdA6eKw" name="familyId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_zVV1UE-IEd6jPaCGdA6eKw" name="levelId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_CIcLUE-LEd6jPaCGdA6eKw" name="return" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_nMzBEE-GEd6jPaCGdA6eKw" name="findEntryPointByFamily">
+ <ownedParameter xmi:id="_5tsegE-IEd6jPaCGdA6eKw" name="familyId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_O1iwEE-LEd6jPaCGdA6eKw" name="return" type="_a-Lc0FGvEd6lINZTnfnS_Q" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_tR1ssE-GEd6jPaCGdA6eKw" name="classifyEditCase">
+ <ownedParameter xmi:id="_9RWygE-IEd6jPaCGdA6eKw" name="editCaseId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_9XZJEE-IEd6jPaCGdA6eKw" name="labelIds" type="_ddB9cIViEd2N0bQZBk24XA"/>
+ <ownedParameter xmi:id="_EV0B0E-LEd6jPaCGdA6eKw" name="return" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ </ownedParameter>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_EbIwUKtAEd2Nmqhc73l7SA"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_KQqi-HjwEd2MH8DN-NMNrA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_vutXwE-GEd6jPaCGdA6eKw" name="unClassifyEditCase">
+ <ownedParameter xmi:id="_-a6bkE-IEd6jPaCGdA6eKw" name="editCaseId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_Fh4MUE-LEd6jPaCGdA6eKw" name="return" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_xxkAUE-GEd6jPaCGdA6eKw" name="unClassifyEditCaseFromLevel">
+ <ownedParameter xmi:id="_-yzXIE-IEd6jPaCGdA6eKw" name="editCaseId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_-2WaYE-IEd6jPaCGdA6eKw" name="levelId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_GX5OUE-LEd6jPaCGdA6eKw" name="return" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_1jDU8E-GEd6jPaCGdA6eKw" name="findEntryPointByEditCase">
+ <ownedParameter xmi:id="__VNgoE-IEd6jPaCGdA6eKw" name="editCaseId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_MysHgE-LEd6jPaCGdA6eKw" name="return" type="_a-Lc0FGvEd6lINZTnfnS_Q" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_99tNEE-GEd6jPaCGdA6eKw" name="classify" visibility="private">
+ <ownedParameter xmi:id="__tUeoE-IEd6jPaCGdA6eKw" name="topicId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="__2K4oE-IEd6jPaCGdA6eKw" name="levelIds" type="_ddB9cIViEd2N0bQZBk24XA"/>
+ <ownedParameter xmi:id="_HjSDYE-LEd6jPaCGdA6eKw" name="return" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ </ownedParameter>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_KQqi-HjwEd2MH8DN-NMNrA"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_EbIwUKtAEd2Nmqhc73l7SA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__pSlIE-GEd6jPaCGdA6eKw" name="unClassify" visibility="private">
+ <ownedParameter xmi:id="_AYzroE-JEd6jPaCGdA6eKw" name="topicId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_ImzV4E-LEd6jPaCGdA6eKw" name="return" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_CForwE-HEd6jPaCGdA6eKw" name="unClassifyFromLevel" visibility="private">
+ <ownedParameter xmi:id="_BC_4IE-JEd6jPaCGdA6eKw" name="topicId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_BFUzYE-JEd6jPaCGdA6eKw" name="levelId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_KxcBcE-LEd6jPaCGdA6eKw" name="return" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_V67T0E-KEd6jPaCGdA6eKw" name="deleteLevel">
+ <ownedParameter xmi:id="_ZLqEwE-KEd6jPaCGdA6eKw" name="return" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_ismPgE-KEd6jPaCGdA6eKw" name="levelId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_64J_Ik-LEd6jPaCGdA6eKw" name="isLevel">
+ <ownedParameter xmi:id="__WucME-LEd6jPaCGdA6eKw" name="return" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_CPOTUE-MEd6jPaCGdA6eKw" name="levelId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_7RMKME-LEd6jPaCGdA6eKw" name="isEntryPoint">
+ <ownedParameter xmi:id="_AzgjQE-MEd6jPaCGdA6eKw" name="return" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_C2xbgE-MEd6jPaCGdA6eKw" name="entryPointName">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_7QVeMFECEd643dseCuH5RA" name="findParentLevel">
+ <ownedParameter xmi:id="_UhFe0FEFEd643dseCuH5RA" name="return" type="_xIOzQFGmEd6lINZTnfnS_Q" direction="return"/>
+ <ownedParameter xmi:id="_WcbKIFEFEd643dseCuH5RA" name="levelId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_jWSYgFEFEd643dseCuH5RA" name="findEntryPoint">
+ <ownedParameter xmi:id="_n-wYcFEFEd643dseCuH5RA" name="return" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_ryuZUFEFEd643dseCuH5RA" name="levelId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_2OVckFEFEd643dseCuH5RA" name="isClassified">
+ <ownedParameter xmi:id="_31Y58FEFEd643dseCuH5RA" name="return" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_6cBlAFEFEd643dseCuH5RA" name="familyId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_dpVEIFTTEd6m1uIJAJogNQ" name="getUnclassifiedEntryPoint">
+ <ownedParameter xmi:id="_hBnOkFTTEd6m1uIJAJogNQ" name="return" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_r2TUEE-MEd6jPaCGdA6eKw" name="Dependency18" supplier="_hm9RUA5IEd6KQuvMUCD2yg" client="_ZoF7YE-FEd6jPaCGdA6eKw"/>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_sfeM40-MEd6jPaCGdA6eKw" name="Dependency19" supplier="_jwI9AC5VEd6W6LY8irJDig" client="_ZoF7YE-FEd6jPaCGdA6eKw"/>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_swu8A0-MEd6jPaCGdA6eKw" name="Dependency20" supplier="_sw1v0A5IEd6KQuvMUCD2yg" client="_ZoF7YE-FEd6jPaCGdA6eKw"/>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_s_XN40-MEd6jPaCGdA6eKw" name="Dependency21" supplier="_gUQTUA5IEd6KQuvMUCD2yg" client="_ZoF7YE-FEd6jPaCGdA6eKw"/>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_4qW9oFEGEd643dseCuH5RA" name="Dependency22" supplier="_ZoF7YE-FEd6jPaCGdA6eKw" client="_jwI9AC5VEd6W6LY8irJDig"/>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_JwqrY1EUEd6gYNMtyDOtdg" name="Dependency23" supplier="_Ugb_4Hi_Ed2oZoPbWJIMHg" client="_ZoF7YE-FEd6jPaCGdA6eKw"/>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_UeLW81EUEd6gYNMtyDOtdg" name="Dependency24" supplier="_Ugb_4Hi_Ed2oZoPbWJIMHg" client="_aJeVgD4_Ed6us98SLDIclA"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_fbDdYA7rEd67kIKaKolRBA" name="AttributeSrv" clientDependency="_XqiR8w7sEd67kIKaKolRBA _KnrO0xI9Ed6OOOY3SXyaHQ">
+ <ownedOperation xmi:id="_tnIhkA7rEd67kIKaKolRBA" name="findValuesForAttributeDef">
+ <ownedParameter xmi:id="_wSy2kA7rEd67kIKaKolRBA" name="attributeDefId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_yV590A7rEd67kIKaKolRBA" name="return" type="_ddB9cIViEd2N0bQZBk24XA" direction="return"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_YNI5EHmZEd2HRLLd0I1WrA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_KRUy4BISEd6Rc4a-4dQbWA" name="findNamesBeginningWith">
+ <ownedParameter xmi:id="_NpV3kBISEd6Rc4a-4dQbWA" name="return" type="_ddB9cIViEd2N0bQZBk24XA" direction="return"/>
+ <ownedParameter xmi:id="_XiJvwBISEd6Rc4a-4dQbWA" name="attributeDefId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_YzJdkBISEd6Rc4a-4dQbWA" name="nameBeginning">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedParameter>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_YNI5EHmZEd2HRLLd0I1WrA"/>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_XqiR8w7sEd67kIKaKolRBA" name="Dependency19" supplier="_QKN2QHsfEd2br5ngUa3Ghw" client="_fbDdYA7rEd67kIKaKolRBA"/>
+ <packagedElement xmi:type="uml:DataType" xmi:id="_50mREA74Ed6i07THnW3V5A" name="List<ContentNomenclatureSearchDto>"/>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_KnrO0xI9Ed6OOOY3SXyaHQ" name="Dependency20" supplier="_-4GJSHggEd2Vxr2aiClL8g" client="_fbDdYA7rEd67kIKaKolRBA"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_yvPJ2HTaEd20yqJGyRKhKA" name="ContentDefinitionSrv" clientDependency="_-u-c1XTbEd20yqJGyRKhKA _O-C80oCrEd2cf9nnj9AFLw _1uQxU5OHEd2PpNHrflS_6A _tPcMQ5PGEd24J-xmUsjYjg _O_lio-leEd2w6L86tbByuw">
+ <ownedOperation xmi:id="_75mnoHTaEd20yqJGyRKhKA" name="create">
+ <ownedParameter xmi:id="_NIShMHTbEd20yqJGyRKhKA" name="contentDefinitionData" type="_VbTx0MeREd2h5Jm14AAEsA"/>
+ <ownedParameter xmi:id="_zxIPMHTbEd20yqJGyRKhKA" name="return" type="_VbTx0MeREd2h5Jm14AAEsA" direction="return"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_yvGYUHXJEd20DoWUDUK0Ig"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_EbIwUKtAEd2Nmqhc73l7SA"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_4RBZUKs-Ed2Nmqhc73l7SA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_hBZtsnWsEd2gat_LwJwOew" name="findAllOrderedByName">
+ <ownedParameter xmi:id="_kmb6sHWsEd2gat_LwJwOew" name="return" type="_SFAOkHWmEd2gat_LwJwOew" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ma-fcHpXEd2KlrgMGH48yg" name="find">
+ <ownedParameter xmi:id="_oTh8gHpXEd2KlrgMGH48yg" name="return" type="_VbTx0MeREd2h5Jm14AAEsA" direction="return"/>
+ <ownedParameter xmi:id="_rQeOwHpXEd2KlrgMGH48yg" name="id">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ME61oH_REd2UJZ6mvauuHQ" name="delete">
+ <ownedParameter xmi:id="_ODUcAH_REd2UJZ6mvauuHQ" name="contentDefinitionId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_dQQDkECMEd6gFeLh6Y5JDQ" name="return" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_IBCPUIrbEd2Y45ctWyGYNQ" name="update">
+ <ownedParameter xmi:id="_JzENoIrbEd2Y45ctWyGYNQ" name="definition" type="_VbTx0MeREd2h5Jm14AAEsA"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_EbIwUKtAEd2Nmqhc73l7SA"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_4RBZUKs-Ed2Nmqhc73l7SA"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_Z3cGsHj0Ed2Lq_BH-5XVEg"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_UsJm4LTnEd252vzLZ9nqrQ" name="findAllOrderedBy">
+ <ownedParameter xmi:id="_cvkqwLTnEd252vzLZ9nqrQ" name="start">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Integer"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_dZtM4LTnEd252vzLZ9nqrQ" name="end">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Integer"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_eAQ2kLTnEd252vzLZ9nqrQ" name="sortConstraints" type="_idubkKQsEd2GAYp1IpBaGw"/>
+ <ownedParameter xmi:id="_xK1OALTnEd252vzLZ9nqrQ" name="return" type="_n5F84LTnEd252vzLZ9nqrQ" direction="return"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_673s0HXGEd2Ekv686xx4qA"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_4RBZUKs-Ed2Nmqhc73l7SA"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_EbIwUKtAEd2Nmqhc73l7SA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_U50BILvGEd2kF4XjUgVq9Q" name="findAllWithNameBegin">
+ <ownedParameter xmi:id="_ReNAcLvHEd2kF4XjUgVq9Q" name="beginName">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_zNgzsLvHEd2kF4XjUgVq9Q" name="return" type="_ddB9cIViEd2N0bQZBk24XA" direction="return"/>
+ <ownedParameter xmi:id="_9IBVALvHEd2kF4XjUgVq9Q" name="numberRequired">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Integer"/>
+ </ownedParameter>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_4RBZUKs-Ed2Nmqhc73l7SA"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_YNI5EHmZEd2HRLLd0I1WrA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_55KmsL1kEd2hO74hOuNnYA" name="findByName">
+ <ownedParameter xmi:id="_9ionwL1kEd2hO74hOuNnYA" name="return" type="_-1M2GHTaEd20yqJGyRKhKA" direction="return"/>
+ <ownedParameter xmi:id="_ALuw8L1lEd2hO74hOuNnYA" name="name">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_oGgKUOYJEd2J1PltzDe2qg" name="createOrUpdate">
+ <ownedParameter xmi:id="_Ce6ogOYKEd2J1PltzDe2qg" name="ContentDefDto" type="_VbTx0MeREd2h5Jm14AAEsA"/>
+ <ownedParameter xmi:id="_zbrvsOjDEd2D5cFtHFAUAA" name="return" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_feodEOlgEd2Jo-YbKSXwIw" name="strategy" type="_EvqPMOiTEd25AsNl_TBRDQ"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_vE68IOMjEd2zc-bceOzXYQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_6N73sECIEd6gFeLh6Y5JDQ" name="getContentDefByName">
+ <ownedParameter xmi:id="_UgmTMECJEd6gFeLh6Y5JDQ" name="return" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_bvIWcECJEd6gFeLh6Y5JDQ" name="name">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_i_1uYD-hEd6_O_u-D-Y8sg" name="EditorialSrv" clientDependency="_G9EPED_AEd6_O_u-D-Y8sg _H1UFsj_AEd6_O_u-D-Y8sg">
+ <ownedOperation xmi:id="_sJPi4D-hEd6_O_u-D-Y8sg" name="create">
+ <ownedParameter xmi:id="_t7e8kD-hEd6_O_u-D-Y8sg" name="return" type="_VbTx0MeREd2h5Jm14AAEsA" direction="return"/>
+ <ownedParameter xmi:id="_zxwzcD-hEd6_O_u-D-Y8sg" name="description" type="_3UukkHjHEd2vSLEPekkQZw"/>
+ <ownedParameter xmi:id="_7AE0QD-hEd6_O_u-D-Y8sg" name="composant" type="_HbpkID-iEd6_O_u-D-Y8sg"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_yvGYUHXJEd20DoWUDUK0Ig"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_bI0twHg-Ed2lVPDSSAZWVg"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_85uoED-iEd6_O_u-D-Y8sg" name="deleteModel">
+ <ownedParameter xmi:id="_Ah4agD-jEd6_O_u-D-Y8sg" name="modelId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_F2zQwD-jEd6_O_u-D-Y8sg" name="return" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ </ownedParameter>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_sPzWgD-kEd6_O_u-D-Y8sg"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_nG5PED-8Ed6_O_u-D-Y8sg" name="updateDescription">
+ <ownedParameter xmi:id="_s48tQD-8Ed6_O_u-D-Y8sg" name="return" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_uRGzAD-8Ed6_O_u-D-Y8sg" name="modelId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_wh_3kD-8Ed6_O_u-D-Y8sg" name="description" type="_3UukkHjHEd2vSLEPekkQZw"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_bI0twHg-Ed2lVPDSSAZWVg"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_yvGYUHXJEd20DoWUDUK0Ig"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_-IvaED-8Ed6_O_u-D-Y8sg" name="findModel">
+ <ownedParameter xmi:id="_ANQ2kD-9Ed6_O_u-D-Y8sg" name="modelId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_DbFdcD-9Ed6_O_u-D-Y8sg" name="return" type="_VbTx0MeREd2h5Jm14AAEsA" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_IHUjED-9Ed6_O_u-D-Y8sg" name="findModelByName">
+ <ownedParameter xmi:id="_KGbUED-9Ed6_O_u-D-Y8sg" name="modelName">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_QMvLAD-9Ed6_O_u-D-Y8sg" name="return" type="_VbTx0MeREd2h5Jm14AAEsA" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_TzBVMD-9Ed6_O_u-D-Y8sg" name="findModels">
+ <ownedParameter xmi:id="_ViKXkD-9Ed6_O_u-D-Y8sg" name="begin">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Integer"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_Wk0ucD-9Ed6_O_u-D-Y8sg" name="end">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Integer"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_pIcaoD-9Ed6_O_u-D-Y8sg" name="return" type="_n5F84LTnEd252vzLZ9nqrQ" direction="return"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_673s0HXGEd2Ekv686xx4qA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_QgjCYD--Ed6_O_u-D-Y8sg" name="addContentDef">
+ <ownedParameter xmi:id="_SOw3sD--Ed6_O_u-D-Y8sg" name="return" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_T9-ykD--Ed6_O_u-D-Y8sg" name="modelId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_U_bogD--Ed6_O_u-D-Y8sg" name="composant" type="_VbTx0MeREd2h5Jm14AAEsA"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_bI0twHg-Ed2lVPDSSAZWVg"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_yvGYUHXJEd20DoWUDUK0Ig"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_8VRmcD--Ed6_O_u-D-Y8sg" name="removeContentDef">
+ <ownedParameter xmi:id="_-6LzMD--Ed6_O_u-D-Y8sg" name="modelId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_L2ppoD-_Ed6_O_u-D-Y8sg" name="composantId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_SjVkED-_Ed6_O_u-D-Y8sg" name="return" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ </ownedParameter>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_sPzWgD-kEd6_O_u-D-Y8sg"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_EbIwUKtAEd2Nmqhc73l7SA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_EGXQcEwxEd6rAqa4OnNuyg" name="createModel">
+ <ownedParameter xmi:id="_FwZJUEwxEd6rAqa4OnNuyg" name="return" type="_VbTx0MeREd2h5Jm14AAEsA" direction="return"/>
+ <ownedParameter xmi:id="_h6b4MExoEd6rAqa4OnNuyg" name="name">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_it8YwExoEd6rAqa4OnNuyg" name="description" type="_3UukkHjHEd2vSLEPekkQZw"/>
+ <ownedParameter xmi:id="_i34-8ExoEd6rAqa4OnNuyg" name="specificAttDefs" type="_ZytvEHhBEd2X9uNQyI_qHw"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_yvGYUHXJEd20DoWUDUK0Ig"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_bI0twHg-Ed2lVPDSSAZWVg"/>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_G9EPED_AEd6_O_u-D-Y8sg" name="Dependency21" supplier="_yvPJ2HTaEd20yqJGyRKhKA" client="_i_1uYD-hEd6_O_u-D-Y8sg"/>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_H1UFsj_AEd6_O_u-D-Y8sg" name="Dependency22" supplier="_Ugb_4Hi_Ed2oZoPbWJIMHg" client="_i_1uYD-hEd6_O_u-D-Y8sg"/>
+ <packagedElement xmi:type="uml:DataType" xmi:id="_ZUwg0EwxEd6rAqa4OnNuyg" name="Set<AttributeDef>"/>
+ <profileApplication xmi:id="_MIURkPWdEdyp25RO5nzQ4A">
+ <eAnnotations xmi:id="_MIURkfWdEdyp25RO5nzQ4A" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="pathmap://ACCELEO_PROFILES/Acceleo.Business.profile.uml#_81g14fWcEdyuYMHNZCqWBQ"/>
+ </eAnnotations>
+ <appliedProfile href="pathmap://ACCELEO_PROFILES/Acceleo.Business.profile.uml#_JX9fQPWcEdyuYMHNZCqWBQ"/>
+ </profileApplication>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_tBzGgPWREdy_h6Mk-BiOHw" name="org.sharengo.cms.core.daos">
+ <packagedElement xmi:type="uml:Class" xmi:id="_3ac7wHTaEd20yqJGyRKhKA" name="ContentDefinitionDao" clientDependency="__sX5M3TbEd20yqJGyRKhKA">
+ <ownedOperation xmi:id="_vlxCMnUAEd20yqJGyRKhKA" name="findByName">
+ <ownedParameter xmi:id="_zbMboHUAEd20yqJGyRKhKA" name="return" type="_--aR4HTZEd20yqJGyRKhKA" direction="return"/>
+ <ownedParameter xmi:id="_9HFSIHUAEd20yqJGyRKhKA" name="name">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_9niAQLTcEd252vzLZ9nqrQ" name="findAllOrderedBy">
+ <ownedParameter xmi:id="_GzlgILTdEd252vzLZ9nqrQ" name="start">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Integer"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_IAxsALTdEd252vzLZ9nqrQ" name="end">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Integer"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_IzWYcLTdEd252vzLZ9nqrQ" name="sortConstraints" type="_idubkKQsEd2GAYp1IpBaGw"/>
+ <ownedParameter xmi:id="_QGTosLTdEd252vzLZ9nqrQ" name="return" type="_XzNfcLTcEd252vzLZ9nqrQ" direction="return"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_4RBZUKs-Ed2Nmqhc73l7SA"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_YNI5EHmZEd2HRLLd0I1WrA"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_673s0HXGEd2Ekv686xx4qA"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_GfaEUHmfEd2HRLLd0I1WrA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_R2V-MLvIEd2kF4XjUgVq9Q" name="findAllWithNameBegin">
+ <ownedParameter xmi:id="_SzDeELvIEd2kF4XjUgVq9Q" name="return" type="_ddB9cIViEd2N0bQZBk24XA" direction="return"/>
+ <ownedParameter xmi:id="_VLYAULvIEd2kF4XjUgVq9Q" name="beginName">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_WN0UwLvIEd2kF4XjUgVq9Q" name="numberRequired">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Integer"/>
+ </ownedParameter>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="__sX5M3TbEd20yqJGyRKhKA" name="Dependency1" supplier="_--aR4HTZEd20yqJGyRKhKA" client="_3ac7wHTaEd20yqJGyRKhKA"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_-4GJSHggEd2Vxr2aiClL8g" name="AttributeDefinitionDao" clientDependency="_DqndE3ghEd2Vxr2aiClL8g">
+ <ownedOperation xmi:id="_3h2ssnjqEd2MH8DN-NMNrA" name="findByContentDef">
+ <ownedParameter xmi:id="_9dY3AHjqEd2MH8DN-NMNrA" name="return" type="_6knTGHjqEd2MH8DN-NMNrA" direction="return"/>
+ <ownedParameter xmi:id="_-5LfkHjqEd2MH8DN-NMNrA" name="contentDefId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_g1wycHjuEd2CQ9DaulPw1g" name="findByNameAndContentDefId">
+ <ownedParameter xmi:id="_kO-J8HjuEd2CQ9DaulPw1g" name="return" type="_KYKiGHXPEd2gat_LwJwOew" direction="return"/>
+ <ownedParameter xmi:id="_mmWRAHjuEd2CQ9DaulPw1g" name="name">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_rRUyYHjuEd2CQ9DaulPw1g" name="contentDefId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_PoPg0JbaEd2g8ssKKY6Zwg" name="findClosedListByListItemId">
+ <ownedParameter xmi:id="_V9qKwJbaEd2g8ssKKY6Zwg" name="return" type="_RuhOKHXbEd2XodZQ_XQIpQ" direction="return"/>
+ <ownedParameter xmi:id="_Xrx5cJbaEd2g8ssKKY6Zwg" name="listItemId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ZSL4YJuBEd2_apBKoRAUAA" name="findClosedList">
+ <ownedParameter xmi:id="_azTs4JuBEd2_apBKoRAUAA" name="return" type="_RuhOKHXbEd2XodZQ_XQIpQ" direction="return"/>
+ <ownedParameter xmi:id="_fiv3gJuBEd2_apBKoRAUAA" name="closedListId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_3sVngAl7Ed63k8rLfgI_ng" name="findByContentDefAndNameBeginningWith">
+ <ownedParameter xmi:id="_7OPoAAl7Ed63k8rLfgI_ng" name="contentDefId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_8EX-wAl7Ed63k8rLfgI_ng" name="nameBeginning">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_-R0twAl7Ed63k8rLfgI_ng" name="return" type="_ddB9cIViEd2N0bQZBk24XA" direction="return"/>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_DqndE3ghEd2Vxr2aiClL8g" name="Dependency2" supplier="_KYKiGHXPEd2gat_LwJwOew" client="_-4GJSHggEd2Vxr2aiClL8g"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_iO1pkHi_Ed2oZoPbWJIMHg" name="ContentDao" clientDependency="_Jar-A3jAEd2oZoPbWJIMHg">
+ <ownedOperation xmi:id="_xUAboHjwEd2Lq_BH-5XVEg" name="findAllWithOrder">
+ <ownedParameter xmi:id="_5rLh8HjwEd2Lq_BH-5XVEg" name="return" type="_NcHbSHXPEd2gat_LwJwOew" isOrdered="true" isUnique="false" direction="return" effect="read">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_EQRRUHjxEd2Lq_BH-5XVEg" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_D3oH0HjxEd2Lq_BH-5XVEg"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_5vmH4HjwEd2Lq_BH-5XVEg" name="orderParameter">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_nkGFgICrEd2cf9nnj9AFLw" name="deleteFromDefinition">
+ <ownedParameter xmi:id="_swbAcICrEd2cf9nnj9AFLw" name="definition" type="_--aR4HTZEd20yqJGyRKhKA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_RC6D4JOsEd2mZZ8LBxpIfQ" name="findByContentDef">
+ <ownedParameter xmi:id="_U6_IsJOsEd2mZZ8LBxpIfQ" name="return" type="_fNJKwIYTEd2FDsNjNrtp7Q" direction="return"/>
+ <ownedParameter xmi:id="_XG2jUJOsEd2mZZ8LBxpIfQ" name="contentDefId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_sYeZILsEEd2hnI17Wy1x7w" name="findIdsByContentDef">
+ <ownedParameter xmi:id="_v1pqoLsEEd2hnI17Wy1x7w" name="contentDefId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_2s0WwLsEEd2hnI17Wy1x7w" name="return" type="_ddB9cIViEd2N0bQZBk24XA" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_V0cZ0O69Ed2vc7ElAwQEXw" name="findName">
+ <ownedParameter xmi:id="_ZdSv0O69Ed2vc7ElAwQEXw" name="return" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_bhkUsO69Ed2vc7ElAwQEXw" name="contentId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_8WqK4CKQEd6kB4PlcXn84A" name="findByTopic">
+ <ownedParameter xmi:id="__DI_QCKQEd6kB4PlcXn84A" name="topicId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_AHVnMCKREd6kB4PlcXn84A" name="return" type="_fNJKwIYTEd2FDsNjNrtp7Q" direction="return"/>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_Jar-A3jAEd2oZoPbWJIMHg" name="Dependency3" supplier="_NcHbSHXPEd2gat_LwJwOew" client="_iO1pkHi_Ed2oZoPbWJIMHg"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_pfA7oHm8Ed2ql75AYIhxSA" name="ListItemDao" clientDependency="_0MUL1Xm8Ed2ql75AYIhxSA">
+ <ownedOperation xmi:id="_Ce6VcXnCEd2JTcXoWjYKZg" name="findByNameAndClosedListId">
+ <ownedParameter xmi:id="_Nn8fYHnCEd2JTcXoWjYKZg" name="name">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_PAIaUHnCEd2JTcXoWjYKZg" name="closedListId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_co5WEHnCEd2JTcXoWjYKZg" name="return" type="_Bq1oyHXTEd2XodZQ_XQIpQ" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_zO378JPCEd24J-xmUsjYjg" name="findByDefinition">
+ <ownedParameter xmi:id="_1D480JPCEd24J-xmUsjYjg" name="return" type="_Bq1oyHXTEd2XodZQ_XQIpQ" direction="return">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_5GNiwJPCEd24J-xmUsjYjg" value="*"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_1GoHwJPCEd24J-xmUsjYjg" name="definitionId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedParameter>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_0MUL1Xm8Ed2ql75AYIhxSA" name="Dependency4" supplier="_Bq1oyHXTEd2XodZQ_XQIpQ" client="_pfA7oHm8Ed2ql75AYIhxSA"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_QKN2QHsfEd2br5ngUa3Ghw" name="AttributeDao" clientDependency="_TqllsHsfEd2br5ngUa3Ghw">
+ <ownedOperation xmi:id="_ojBEoIQIEd29-aQCdYahig" name="findByAttributeDefAndContent">
+ <ownedParameter xmi:id="_utN9EIQIEd29-aQCdYahig" name="return" type="_O3Kc-HXPEd2gat_LwJwOew" direction="return"/>
+ <ownedParameter xmi:id="_16qbMIQIEd29-aQCdYahig" name="attributeDefId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_3gODwIQIEd29-aQCdYahig" name="contentId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_zlEUYpOAEd2PpNHrflS_6A" name="findByAttributeDef">
+ <ownedParameter xmi:id="_3KY1QJOAEd2PpNHrflS_6A" name="return" type="_8ZIyEJOAEd2PpNHrflS_6A" direction="return"/>
+ <ownedParameter xmi:id="_AOZMYJOBEd2PpNHrflS_6A" name="attributeDefId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedParameter>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_YNI5EHmZEd2HRLLd0I1WrA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_J5If4hITEd6Rc4a-4dQbWA" name="findByNameBeginningWith">
+ <ownedParameter xmi:id="_M15L8BITEd6Rc4a-4dQbWA" name="return" type="_ddB9cIViEd2N0bQZBk24XA" direction="return"/>
+ <ownedParameter xmi:id="_OWzlEBITEd6Rc4a-4dQbWA" name="attDefId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_PlBrsBITEd6Rc4a-4dQbWA" name="type" type="_OoJh0HXVEd2XodZQ_XQIpQ"/>
+ <ownedParameter xmi:id="_Yn27IBI0Ed6Dg6REkzSh0g" name="nameBeginning">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedParameter>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_TqllsHsfEd2br5ngUa3Ghw" name="Dependency5" supplier="_O3Kc-HXPEd2gat_LwJwOew" client="_QKN2QHsfEd2br5ngUa3Ghw"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_dSGT8KGqEd2ENuCUfYNU7A" name="SetOfContentsDao" clientDependency="_r7fmRaGqEd2ENuCUfYNU7A">
+ <ownedOperation xmi:id="_R6AP8qHOEd2ENuCUfYNU7A" name="findByName">
+ <ownedParameter xmi:id="_VYGugKHOEd2ENuCUfYNU7A" name="return" type="_8wC-AKGpEd2ENuCUfYNU7A" direction="return"/>
+ <ownedParameter xmi:id="_W_MoIKHOEd2ENuCUfYNU7A" name="name">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_oSuqoqQtEd2GAYp1IpBaGw" name="findAllOrderedBy">
+ <ownedParameter xmi:id="_potmIKQtEd2GAYp1IpBaGw" name="return" type="_gu1EEKGrEd2ENuCUfYNU7A" direction="return"/>
+ <ownedParameter xmi:id="_tX3_gKQtEd2GAYp1IpBaGw" name="start">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Integer"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_zzAP4KQtEd2GAYp1IpBaGw" name="end">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Integer"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_1NmloKQtEd2GAYp1IpBaGw" name="sortConstraints" type="_idubkKQsEd2GAYp1IpBaGw"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_vBhbcqcuEd26eZS_gEW-Hg" name="findContentsBySetOfContentsOrderedByContentDef">
+ <ownedParameter xmi:id="_2UONAKcuEd26eZS_gEW-Hg" name="return" type="_LwOsgHjVEd2XX6MpUtjnfg" direction="return"/>
+ <ownedParameter xmi:id="_-i--MKcuEd26eZS_gEW-Hg" name="start">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Integer"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_-xuk0KcuEd26eZS_gEW-Hg" name="end">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Integer"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_-73YQKcuEd26eZS_gEW-Hg" name="setOfContentsId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_j_2OsLJbEd2hzeyeF-1t2g" name="findContentsOrderedBy">
+ <ownedParameter xmi:id="_ahExsLJcEd2hzeyeF-1t2g" name="start">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Integer"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_ao_-oLJcEd2hzeyeF-1t2g" name="end">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Integer"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_eVdCQLJcEd2hzeyeF-1t2g" name="sortConstraints" type="_idubkKQsEd2GAYp1IpBaGw"/>
+ <ownedParameter xmi:id="_h0hxMLJcEd2hzeyeF-1t2g" name="return" type="_LwOsgHjVEd2XX6MpUtjnfg" direction="return"/>
+ <ownedParameter xmi:id="_b5CYQLJeEd2hzeyeF-1t2g" name="setOfContentsId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedParameter>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_GfaEUHmfEd2HRLLd0I1WrA"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_4RBZUKs-Ed2Nmqhc73l7SA"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_KQqi-HjwEd2MH8DN-NMNrA"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_673s0HXGEd2Ekv686xx4qA"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_YNI5EHmZEd2HRLLd0I1WrA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_DF9fAA8KEd6i07THnW3V5A" name="containsContent">
+ <ownedParameter xmi:id="_EtKtYA8KEd6i07THnW3V5A" name="return" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_K2xv8A8KEd6i07THnW3V5A" name="setOfContentsId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_MgI6cA8KEd6i07THnW3V5A" name="contentId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedParameter>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_r7fmRaGqEd2ENuCUfYNU7A" name="Dependency6" supplier="_8wC-AKGpEd2ENuCUfYNU7A" client="_dSGT8KGqEd2ENuCUfYNU7A"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_bxj5WPhREd2Hu-BP-VasxQ" name="TempNodesIdsDao" clientDependency="_ggzPpfhREd2Hu-BP-VasxQ"/>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_ggzPpfhREd2Hu-BP-VasxQ" name="Dependency7" supplier="_wFp6GPhQEd2Hu-BP-VasxQ" client="_bxj5WPhREd2Hu-BP-VasxQ"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_hUWziPhREd2Hu-BP-VasxQ" name="TempNodeContentsDao" clientDependency="_m22yxfhREd2Hu-BP-VasxQ"/>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_m22yxfhREd2Hu-BP-VasxQ" name="Dependency8" supplier="_79nmmPhQEd2Hu-BP-VasxQ" client="_hUWziPhREd2Hu-BP-VasxQ"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_poU0cP9aEd25BaYHbAwXwQ" name="ReferentialDao" clientDependency="_HknsQP9fEd25BaYHbAwXwQ">
+ <ownedOperation xmi:id="_1ZptcP9aEd25BaYHbAwXwQ" name="existSource">
+ <ownedParameter xmi:id="_2m15UP9aEd25BaYHbAwXwQ" name="return" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_3qVWoP9aEd25BaYHbAwXwQ" name="source">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedParameter>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_pJdIgA4_Ed6KQuvMUCD2yg" name="facet">
+ <packagedElement xmi:type="uml:Class" xmi:id="_GTtU0A5DEd6KQuvMUCD2yg" name="FacetViewDao" clientDependency="_lA-6cw5DEd6KQuvMUCD2yg">
+ <ownedOperation xmi:id="_EXOkkA5EEd6KQuvMUCD2yg" name="findByName">
+ <ownedParameter xmi:id="_wfw1cA5EEd6KQuvMUCD2yg" name="viewName">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_3HxrQA5EEd6KQuvMUCD2yg" name="return" type="_GyHPcA5AEd6KQuvMUCD2yg" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_VtjsUA5GEd6KQuvMUCD2yg" name="findAllViewName">
+ <ownedParameter xmi:id="_YGvxQA5GEd6KQuvMUCD2yg" name="return" type="_ddB9cIViEd2N0bQZBk24XA" direction="return"/>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_LybnUA5DEd6KQuvMUCD2yg" name="FacetViewChainDao" clientDependency="_li24cw5DEd6KQuvMUCD2yg"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_QWfBUA5DEd6KQuvMUCD2yg" name="FacetDao" clientDependency="_mOa98w5DEd6KQuvMUCD2yg">
+ <ownedOperation xmi:id="_AR870A5FEd6KQuvMUCD2yg" name="findByName">
+ <ownedParameter xmi:id="_CLP_wA5FEd6KQuvMUCD2yg" name="return" type="_l5XbUA5AEd6KQuvMUCD2yg" direction="return"/>
+ <ownedParameter xmi:id="_FQxmQA5FEd6KQuvMUCD2yg" name="facetName">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_dStf0A5GEd6KQuvMUCD2yg" name="findAllFacetName">
+ <ownedParameter xmi:id="_fMFcQA5GEd6KQuvMUCD2yg" name="return" type="_ddB9cIViEd2N0bQZBk24XA" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_uW3iQD5HEd6us98SLDIclA" name="findAllFacetNameByContentDefinition">
+ <ownedParameter xmi:id="_0swGQD5HEd6us98SLDIclA" name="return" type="_ddB9cIViEd2N0bQZBk24XA" direction="return"/>
+ <ownedParameter xmi:id="_4JiWMD5HEd6us98SLDIclA" name="contentDefinitionName">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_SRUWUA5DEd6KQuvMUCD2yg" name="TopicDao" clientDependency="_nKAccw5DEd6KQuvMUCD2yg">
+ <ownedOperation xmi:id="_NutRUA5EEd6KQuvMUCD2yg" name="findByFacet">
+ <ownedParameter xmi:id="_RmuPQA5FEd6KQuvMUCD2yg" name="return" type="_xRGPsA7cEd6GlpMc1IXijg" direction="return"/>
+ <ownedParameter xmi:id="_cVW8MA5FEd6KQuvMUCD2yg" name="facetName">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_sf8a0A5NEd6KQuvMUCD2yg" name="findFacetNameByTopicId">
+ <ownedParameter xmi:id="_yBQHQA5NEd6KQuvMUCD2yg" name="return" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_zugTQA5NEd6KQuvMUCD2yg" name="topicId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_pn7e4g7cEd6GlpMc1IXijg" name="findAllTopic">
+ <ownedParameter xmi:id="_tVze0A7cEd6GlpMc1IXijg" name="return" type="_xRGPsA7cEd6GlpMc1IXijg" direction="return"/>
+ <ownedParameter xmi:id="_00GcYA7cEd6GlpMc1IXijg" name="contentId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_7YZ24g7cEd6GlpMc1IXijg" name="findAllTopic">
+ <ownedParameter xmi:id="_84TjYA7cEd6GlpMc1IXijg" name="return" type="_xRGPsA7cEd6GlpMc1IXijg" direction="return"/>
+ <ownedParameter xmi:id="_-YvbYA7cEd6GlpMc1IXijg" name="contentId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_AP_Q4A7dEd6GlpMc1IXijg" name="facetName">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_0282gB1KEd6sNL3iT4yqBg" name="findByParentId">
+ <ownedParameter xmi:id="_-rcPYB1KEd6sNL3iT4yqBg" name="return" type="_xRGPsA7cEd6GlpMc1IXijg" direction="return"/>
+ <ownedParameter xmi:id="_AdCv4B1LEd6sNL3iT4yqBg" name="parentTopicId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_DGPxUB1MEd6sNL3iT4yqBg" name="findByTopicId">
+ <ownedParameter xmi:id="_HQuNsB1MEd6sNL3iT4yqBg" name="topicId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_HYK5gB1MEd6sNL3iT4yqBg" name="childTopicValue">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_SB87oB1MEd6sNL3iT4yqBg" name="return" type="__T4G0A5AEd6KQuvMUCD2yg" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_H9VgMB4JEd6Hj8IcKtrWfg" name="findByFacetName">
+ <ownedParameter xmi:id="_TQl9IB4JEd6Hj8IcKtrWfg" name="facetName">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_UytQIB4JEd6Hj8IcKtrWfg" name="childTopicValue">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_bm4SoB4JEd6Hj8IcKtrWfg" name="return" type="__T4G0A5AEd6KQuvMUCD2yg" direction="return"/>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_e9siUA5DEd6KQuvMUCD2yg" name="TopicRuleDao" clientDependency="_oB7i8w5DEd6KQuvMUCD2yg">
+ <ownedOperation xmi:id="_eb9Rwg5EEd6KQuvMUCD2yg" name="findByTopics">
+ <ownedParameter xmi:id="_oB3moA5FEd6KQuvMUCD2yg" name="return" type="_xntcUA5BEd6KQuvMUCD2yg" direction="return"/>
+ <ownedParameter xmi:id="_pjntQA5FEd6KQuvMUCD2yg" name="topics" type="_ddB9cIViEd2N0bQZBk24XA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_FTbHACUBEd6Bk7gvYh5YAQ" name="findByTopic">
+ <ownedParameter xmi:id="_HqVUACUBEd6Bk7gvYh5YAQ" name="return" type="_T0otsCUBEd6Bk7gvYh5YAQ" direction="return"/>
+ <ownedParameter xmi:id="_2oEQYCUBEd6Bk7gvYh5YAQ" name="topicId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ </ownedOperation>
+ </packagedElement>
+ </packagedElement>
+ <profileApplication xmi:id="_Mg9bEPWdEdyp25RO5nzQ4A">
+ <eAnnotations xmi:id="_Mg-CIPWdEdyp25RO5nzQ4A" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="pathmap://ACCELEO_PROFILES/Acceleo.Business.profile.uml#_81g14fWcEdyuYMHNZCqWBQ"/>
+ </eAnnotations>
+ <appliedProfile href="pathmap://ACCELEO_PROFILES/Acceleo.Business.profile.uml#_JX9fQPWcEdyuYMHNZCqWBQ"/>
+ </profileApplication>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="__PrMMPWREdy_h6Mk-BiOHw" name="org.sharengo.cms.core.dtos">
+ <packagedElement xmi:type="uml:Class" xmi:id="_kXbRgOhvEd25AsNl_TBRDQ" name="ImportResult">
+ <ownedAttribute xmi:id="_NIyD0OhzEd25AsNl_TBRDQ" name="submitted">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Integer"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_OSA8wOhzEd25AsNl_TBRDQ" name="updated">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Integer"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_PbtvwuhzEd25AsNl_TBRDQ" name="created">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Integer"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_TjL7cOhzEd25AsNl_TBRDQ" name="total">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Integer"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_-1M2GHTaEd20yqJGyRKhKA" name="ContentDefHeader">
+ <ownedAttribute xmi:id="_DZ3UEnTbEd20yqJGyRKhKA" name="name">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_D5wVEnTbEd20yqJGyRKhKA" name="description">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_thVsInTbEd20yqJGyRKhKA" name="id">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_D_bU8EFPEd68g6bliBN4DQ" name="definitionId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_3P478lRBEd6nD7wVEJxfpg" name="isDisable">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_9KVhIFRBEd6nD7wVEJxfpg" value="false"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_4oxq2HghEd2Vxr2aiClL8g" name="AttributeDef">
+ <ownedAttribute xmi:id="_7MY3EnghEd2Vxr2aiClL8g" name="id">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_8R01InghEd2Vxr2aiClL8g" name="name">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_9Mr64nghEd2Vxr2aiClL8g" name="type" type="_OoJh0HXVEd2XodZQ_XQIpQ"/>
+ <ownedAttribute xmi:id="_SLZoIHgwEd2nN4b0ot5Urw" name="idContentDef">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_ikVLkN5QEd2Bgrjmm1cxJQ" name="defaultValue">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_ZJmhEN5REd2Bgrjmm1cxJQ" name="isMandatory">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Boolean"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_3UukkHjHEd2vSLEPekkQZw" name="Content">
+ <ownedAttribute xmi:id="_8k-9QHjHEd2vSLEPekkQZw" name="id">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_u99XgMhTEd2UGuMtCFt8YQ" name="definitionId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_kIsMMMhVEd2UGuMtCFt8YQ" name="attributeValues" type="_BoG6wMhaEd2zn4jAoVOTPA"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_tM0CIHkDEd2Atp1vvmnWrA" name="Item">
+ <ownedAttribute xmi:id="_5MHFsHkDEd2Atp1vvmnWrA" name="id">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_60eKoHkDEd2Atp1vvmnWrA" name="name">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_5apesHkIEd2Atp1vvmnWrA" name="ClosedListAttributeDef">
+ <generalization xmi:id="_9n3GAHkIEd2Atp1vvmnWrA" general="_4oxq2HghEd2Vxr2aiClL8g"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_D18_8HkJEd2Atp1vvmnWrA" name="Association1" memberEnd="_D18_8XkJEd2Atp1vvmnWrA _D19nAHkJEd2Atp1vvmnWrA" navigableOwnedEnd="_D19nAHkJEd2Atp1vvmnWrA">
+ <ownedEnd xmi:id="_D18_8XkJEd2Atp1vvmnWrA" name="" type="_5apesHkIEd2Atp1vvmnWrA" association="_D18_8HkJEd2Atp1vvmnWrA">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_D18_8nkJEd2Atp1vvmnWrA" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_D18_83kJEd2Atp1vvmnWrA" value="1"/>
+ </ownedEnd>
+ <ownedEnd xmi:id="_D19nAHkJEd2Atp1vvmnWrA" name="Items" type="_tM0CIHkDEd2Atp1vvmnWrA" isOrdered="true" aggregation="composite" association="_D18_8HkJEd2Atp1vvmnWrA">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_D19nAXkJEd2Atp1vvmnWrA" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_D19nAnkJEd2Atp1vvmnWrA"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="__rDAwJttEd2hONjUBs7mIQ" name="ContentHeader">
+ <ownedAttribute xmi:id="_DZav8JtuEd2hONjUBs7mIQ" name="id">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_Ey1Z8JtuEd2hONjUBs7mIQ" name="name">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_IXbiEJtuEd2hONjUBs7mIQ" name="definition" type="_-1M2GHTaEd20yqJGyRKhKA"/>
+ <ownedAttribute xmi:id="_aUz-sMhSEd2UGuMtCFt8YQ" name="firstAttributeDef" type="_4oxq2HghEd2Vxr2aiClL8g"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_F-eccKGqEd2ENuCUfYNU7A" name="SetOfContents">
+ <ownedAttribute xmi:id="_KDPSYqGqEd2ENuCUfYNU7A" name="name">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_LcinoKGqEd2ENuCUfYNU7A" name="description">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_O1fgcKGqEd2ENuCUfYNU7A" name="updateDate">
+ <type xmi:type="uml:DataType" href="pathmap://ACCELEO_PROFILES/Acceleo.Business.profile.uml#_unIxYASfEd2Qys9YSCxJaQ"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_QHO1IaGqEd2ENuCUfYNU7A" name="creationDate">
+ <type xmi:type="uml:DataType" href="pathmap://ACCELEO_PROFILES/Acceleo.Business.profile.uml#_unIxYASfEd2Qys9YSCxJaQ"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_zNSG8aGsEd2ENuCUfYNU7A" name="id">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_l_LuIqHREd2ENuCUfYNU7A" name="containedContentsCount">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Integer"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_PKoIWKQuEd2GAYp1IpBaGw" name="SortConstraint">
+ <ownedAttribute xmi:id="_cwaokKQuEd2GAYp1IpBaGw" name="columName">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_eU_ZsqQuEd2GAYp1IpBaGw" name="sortMode" type="_SiQLdaQuEd2GAYp1IpBaGw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Enumeration" xmi:id="_SiQLdaQuEd2GAYp1IpBaGw" name="SortMode">
+ <ownedLiteral xmi:id="_W86_8qQuEd2GAYp1IpBaGw" name="ASC"/>
+ <ownedLiteral xmi:id="_YLwKkqQuEd2GAYp1IpBaGw" name="DESC"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_FzLjsLoaEd2A0rZMX9hUqA" name="ContentDefSearchDto">
+ <generalization xmi:id="_jD6zE8bBEd2uuaPd80qeIQ" general="_bCy1QMbBEd2uuaPd80qeIQ"/>
+ <ownedAttribute xmi:id="_HvVP4LoxEd2LUbkYKt0ISw" name="contentDefId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_Z0A9UroxEd2LUbkYKt0ISw" name="fromDate">
+ <type xmi:type="uml:DataType" href="pathmap://ACCELEO_PROFILES/Acceleo.Business.profile.uml#_unIxYASfEd2Qys9YSCxJaQ"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_bWW50roxEd2LUbkYKt0ISw" name="toDate">
+ <type xmi:type="uml:DataType" href="pathmap://ACCELEO_PROFILES/Acceleo.Business.profile.uml#_unIxYASfEd2Qys9YSCxJaQ"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_ZttegAJSEd6NXsEhrbvcFg" name="includedContentIds" type="_ddB9cIViEd2N0bQZBk24XA"/>
+ <ownedAttribute xmi:id="_e3KroAJSEd6NXsEhrbvcFg" name="excludedContentIds" type="_ddB9cIViEd2N0bQZBk24XA"/>
+ <ownedAttribute xmi:id="_xWP2EAJSEd6NXsEhrbvcFg" name="source">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_lvPOoLowEd2LUbkYKt0ISw" name="AttributeSearchDto" isAbstract="true">
+ <ownedAttribute xmi:id="_h0ok0roxEd2LUbkYKt0ISw" name="attributeDefId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_9L_6YLo4Ed2LUbkYKt0ISw" name="operand" type="_TZSRYLo4Ed2LUbkYKt0ISw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_ozMu4LowEd2LUbkYKt0ISw" name="NumericAttributeSearchDto">
+ <generalization xmi:id="_3c3G87owEd2LUbkYKt0ISw" general="_lvPOoLowEd2LUbkYKt0ISw"/>
+ <ownedAttribute xmi:id="_xY6RYLo5Ed2LUbkYKt0ISw" name="value">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_y3uYsrr9Ed2wgp-E8fwUgg" name="secondValue">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_wtqrELowEd2LUbkYKt0ISw" name="TextAttributeSearchDto">
+ <generalization xmi:id="_3okAoLowEd2LUbkYKt0ISw" general="_lvPOoLowEd2LUbkYKt0ISw"/>
+ <ownedAttribute xmi:id="_Hpyu8Lo5Ed2LUbkYKt0ISw" name="value">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_0FQ5ALowEd2LUbkYKt0ISw" name="DateAttributeSearchDto">
+ <generalization xmi:id="_316gI7owEd2LUbkYKt0ISw" general="_lvPOoLowEd2LUbkYKt0ISw"/>
+ <ownedAttribute xmi:id="_dtJRYLo5Ed2LUbkYKt0ISw" name="value">
+ <type xmi:type="uml:DataType" href="pathmap://ACCELEO_PROFILES/Acceleo.Business.profile.uml#_unIxYASfEd2Qys9YSCxJaQ"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_0ivu0LunEd2ycMmoQ1_NCQ" name="secondValue">
+ <type xmi:type="uml:DataType" href="pathmap://ACCELEO_PROFILES/Acceleo.Business.profile.uml#_unIxYASfEd2Qys9YSCxJaQ"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_A_hI8LoxEd2LUbkYKt0ISw" name="Association2" memberEnd="_A_hI8boxEd2LUbkYKt0ISw _A_hI9LoxEd2LUbkYKt0ISw" navigableOwnedEnd="_A_hI9LoxEd2LUbkYKt0ISw">
+ <ownedEnd xmi:id="_A_hI8boxEd2LUbkYKt0ISw" name="" type="_FzLjsLoaEd2A0rZMX9hUqA" association="_A_hI8LoxEd2LUbkYKt0ISw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_A_hI8roxEd2LUbkYKt0ISw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_A_hI87oxEd2LUbkYKt0ISw" value="1"/>
+ </ownedEnd>
+ <ownedEnd xmi:id="_A_hI9LoxEd2LUbkYKt0ISw" name="attributes" type="_lvPOoLowEd2LUbkYKt0ISw" isOrdered="true" isUnique="false" association="_A_hI8LoxEd2LUbkYKt0ISw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_A_hI9boxEd2LUbkYKt0ISw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_A_hI9roxEd2LUbkYKt0ISw"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_KP7H4LoyEd2LUbkYKt0ISw" name="ListAttributeSearchDto" isAbstract="true">
+ <generalization xmi:id="_EQYYk7o4Ed2LUbkYKt0ISw" general="_lvPOoLowEd2LUbkYKt0ISw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_t1qfALo3Ed2LUbkYKt0ISw" name="SingleChoiceAttributeSearchDto">
+ <generalization xmi:id="_EcCO87o4Ed2LUbkYKt0ISw" general="_KP7H4LoyEd2LUbkYKt0ISw"/>
+ <ownedAttribute xmi:id="_Kh4WYro5Ed2LUbkYKt0ISw" name="choiceId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_5-eq8Lo3Ed2LUbkYKt0ISw" name="MultipleChoiceAttributeSearchDto">
+ <generalization xmi:id="_ErQ9w7o4Ed2LUbkYKt0ISw" general="_KP7H4LoyEd2LUbkYKt0ISw"/>
+ <ownedAttribute xmi:id="_X17mYro5Ed2LUbkYKt0ISw" name="choiceIds" type="_ddB9cIViEd2N0bQZBk24XA"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Enumeration" xmi:id="_TZSRYLo4Ed2LUbkYKt0ISw" name="SearchOperand">
+ <ownedLiteral xmi:id="_eFUWQLo4Ed2LUbkYKt0ISw" name="EQUALS"/>
+ <ownedLiteral xmi:id="_fh4a4Lo4Ed2LUbkYKt0ISw" name="NOT_EQUALS"/>
+ <ownedLiteral xmi:id="_hEwi4Lo4Ed2LUbkYKt0ISw" name="LESS"/>
+ <ownedLiteral xmi:id="_iar0ALo4Ed2LUbkYKt0ISw" name="LESS_OR_EQUALS"/>
+ <ownedLiteral xmi:id="_mAAU4Lo4Ed2LUbkYKt0ISw" name="GREATER"/>
+ <ownedLiteral xmi:id="_m0klYro4Ed2LUbkYKt0ISw" name="GREATER_OR_EQUALS"/>
+ <ownedLiteral xmi:id="_ojHx4Lo4Ed2LUbkYKt0ISw" name="BEGINS_WITH"/>
+ <ownedLiteral xmi:id="_pz75gLo4Ed2LUbkYKt0ISw" name="ENDS_WITH"/>
+ <ownedLiteral xmi:id="_rBX9Aro4Ed2LUbkYKt0ISw" name="CONTAINS"/>
+ <ownedLiteral xmi:id="_rw7xsLo4Ed2LUbkYKt0ISw" name="NOT_CONTAINS"/>
+ <ownedLiteral xmi:id="_vdyd8Lo4Ed2LUbkYKt0ISw" name="BETWEEN"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_SdWXILpEEd2ea__X_Ke6sQ" name="RestrictionDto" isAbstract="true">
+ <ownedAttribute xmi:id="_-8TxsLpJEd2ea__X_Ke6sQ" name="name" type="_vtyLULpEEd2ea__X_Ke6sQ"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Enumeration" xmi:id="_vtyLULpEEd2ea__X_Ke6sQ" name="RestrictionName">
+ <ownedLiteral xmi:id="_2kinwrpEEd2ea__X_Ke6sQ" name="EQUALS"/>
+ <ownedLiteral xmi:id="_5k4MQbpEEd2ea__X_Ke6sQ" name="NOT_EQUALS"/>
+ <ownedLiteral xmi:id="_BwwBgLpFEd2ea__X_Ke6sQ" name="LESS"/>
+ <ownedLiteral xmi:id="_tx6fEbpFEd2ea__X_Ke6sQ" name="LESS_OR_EQUAL"/>
+ <ownedLiteral xmi:id="_wl0xIbpFEd2ea__X_Ke6sQ" name="GREATER"/>
+ <ownedLiteral xmi:id="_yYH1MLpFEd2ea__X_Ke6sQ" name="GREATER_OR_EQUAL"/>
+ <ownedLiteral xmi:id="_1WaLQLpFEd2ea__X_Ke6sQ" name="CONTAINS"/>
+ <ownedLiteral xmi:id="_5PShUrpFEd2ea__X_Ke6sQ" name="STARTS_WITH"/>
+ <ownedLiteral xmi:id="_7O8E4rpFEd2ea__X_Ke6sQ" name="ENDS_WITH"/>
+ <ownedLiteral xmi:id="_Qu4_UrpGEd2ea__X_Ke6sQ" name="NOT"/>
+ <ownedLiteral xmi:id="_Syq08rpGEd2ea__X_Ke6sQ" name="AND"/>
+ <ownedLiteral xmi:id="_Ui6DgLpGEd2ea__X_Ke6sQ" name="OR"/>
+ <ownedLiteral xmi:id="_Wdeo0rsBEd2r54aHCi3ysg" name="BETWEEN"/>
+ <ownedLiteral xmi:id="__BqDwMbWEd2uuaPd80qeIQ" name="TRUE"/>
+ <ownedLiteral xmi:id="_AIlPkMbXEd2uuaPd80qeIQ" name="FALSE"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_FFdooLpHEd2ea__X_Ke6sQ" name="BinaryOperator">
+ <generalization xmi:id="_hqzRY7pHEd2ea__X_Ke6sQ" general="_SdWXILpEEd2ea__X_Ke6sQ"/>
+ <ownedAttribute xmi:id="_UO1MwLpNEd2ea__X_Ke6sQ" name="element" type="_agULMLpIEd2ea__X_Ke6sQ"/>
+ <ownedAttribute xmi:id="_ZgPcAbpNEd2ea__X_Ke6sQ" name="value">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_NMZTgLpHEd2ea__X_Ke6sQ" name="Equals">
+ <generalization xmi:id="_kTRIc7pHEd2ea__X_Ke6sQ" general="_FFdooLpHEd2ea__X_Ke6sQ"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_lVlhELpHEd2ea__X_Ke6sQ" name="NotEquals">
+ <generalization xmi:id="_nfHZY7pHEd2ea__X_Ke6sQ" general="_FFdooLpHEd2ea__X_Ke6sQ"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_s94IILpHEd2ea__X_Ke6sQ" name="GreaterOrEqual">
+ <generalization xmi:id="_1U-V8LpHEd2ea__X_Ke6sQ" general="_FFdooLpHEd2ea__X_Ke6sQ"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_wB9kMLpHEd2ea__X_Ke6sQ" name="Greater">
+ <generalization xmi:id="_1iHaELpHEd2ea__X_Ke6sQ" general="_FFdooLpHEd2ea__X_Ke6sQ"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_xECFMLpHEd2ea__X_Ke6sQ" name="Less">
+ <generalization xmi:id="_05QqULpHEd2ea__X_Ke6sQ" general="_FFdooLpHEd2ea__X_Ke6sQ"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_x6JN0LpHEd2ea__X_Ke6sQ" name="LessOrEqual">
+ <generalization xmi:id="_Czqvs7pIEd2ea__X_Ke6sQ" general="_FFdooLpHEd2ea__X_Ke6sQ"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_GlrBsLpIEd2ea__X_Ke6sQ" name="Not">
+ <generalization xmi:id="_IK56ILpIEd2ea__X_Ke6sQ" general="_SdWXILpEEd2ea__X_Ke6sQ"/>
+ <ownedAttribute xmi:id="_e1nlQLpNEd2ea__X_Ke6sQ" name="restriction" type="_SdWXILpEEd2ea__X_Ke6sQ"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_KZ2d8LpIEd2ea__X_Ke6sQ" name="And">
+ <generalization xmi:id="_NrTAkLpIEd2ea__X_Ke6sQ" general="_SdWXILpEEd2ea__X_Ke6sQ"/>
+ <ownedAttribute xmi:id="_NMxQELrNEd2ea__X_Ke6sQ" name="restrictions" type="_Uzat0LrMEd2ea__X_Ke6sQ"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_L4m68LpIEd2ea__X_Ke6sQ" name="Or">
+ <generalization xmi:id="_N4BN8LpIEd2ea__X_Ke6sQ" general="_SdWXILpEEd2ea__X_Ke6sQ"/>
+ <ownedAttribute xmi:id="_hzHpALrNEd2ea__X_Ke6sQ" name="restrictions" type="_Uzat0LrMEd2ea__X_Ke6sQ"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_TtLqgLpIEd2ea__X_Ke6sQ" name="Contains">
+ <generalization xmi:id="_WCc4wLpIEd2ea__X_Ke6sQ" general="_SdWXILpEEd2ea__X_Ke6sQ"/>
+ <ownedAttribute xmi:id="_3jH2QLpMEd2ea__X_Ke6sQ" name="element" type="_agULMLpIEd2ea__X_Ke6sQ"/>
+ <ownedAttribute xmi:id="_KN2QALpNEd2ea__X_Ke6sQ" name="value" type="_ddB9cIViEd2N0bQZBk24XA"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_agULMLpIEd2ea__X_Ke6sQ" name="ElementDto">
+ <ownedAttribute xmi:id="_2zatELpLEd2ea__X_Ke6sQ" name="elementName" type="_oO-TkLpIEd2ea__X_Ke6sQ"/>
+ <ownedAttribute xmi:id="_6IXPobpLEd2ea__X_Ke6sQ" name="operandName">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_AgeoQLpMEd2ea__X_Ke6sQ" name="operandType" type="_Syz3gLpJEd2ea__X_Ke6sQ"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Enumeration" xmi:id="_oO-TkLpIEd2ea__X_Ke6sQ" name="ElementName">
+ <ownedLiteral xmi:id="_ra5dALpIEd2ea__X_Ke6sQ" name="CONTENT_DEFINITION"/>
+ <ownedLiteral xmi:id="_uy6hsrpIEd2ea__X_Ke6sQ" name="CONTENT"/>
+ <ownedLiteral xmi:id="_v29_sLpIEd2ea__X_Ke6sQ" name="ATTRIBUTE"/>
+ <ownedLiteral xmi:id="_rK13QC2VEd6Baqqif9vVOQ" name="FACET"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_0psH0LpIEd2ea__X_Ke6sQ" name="EndsWith">
+ <generalization xmi:id="_F6SF4LpJEd2ea__X_Ke6sQ" general="_FFdooLpHEd2ea__X_Ke6sQ"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_G6C5wLpJEd2ea__X_Ke6sQ" name="StartsWith">
+ <generalization xmi:id="_LTpXQLpJEd2ea__X_Ke6sQ" general="_FFdooLpHEd2ea__X_Ke6sQ"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Enumeration" xmi:id="_Syz3gLpJEd2ea__X_Ke6sQ" name="OperandType">
+ <ownedLiteral xmi:id="_VpP5ILpJEd2ea__X_Ke6sQ" name="ID"/>
+ <ownedLiteral xmi:id="_W1EzELpJEd2ea__X_Ke6sQ" name="STRING"/>
+ <ownedLiteral xmi:id="_YpbFkrpJEd2ea__X_Ke6sQ" name="TEXT"/>
+ <ownedLiteral xmi:id="_answIrpJEd2ea__X_Ke6sQ" name="XHTML"/>
+ <ownedLiteral xmi:id="_cRxsULpJEd2ea__X_Ke6sQ" name="MULTIMEDIA"/>
+ <ownedLiteral xmi:id="_eBsx0rpJEd2ea__X_Ke6sQ" name="FLOAT"/>
+ <ownedLiteral xmi:id="_fvBPQrpJEd2ea__X_Ke6sQ" name="INTEGER"/>
+ <ownedLiteral xmi:id="_g4zh0LpJEd2ea__X_Ke6sQ" name="DATE"/>
+ <ownedLiteral xmi:id="_i7vp8LpJEd2ea__X_Ke6sQ" name="SIMPLE_CHOICE_CLOSED_LIST"/>
+ <ownedLiteral xmi:id="_j2kTcbpJEd2ea__X_Ke6sQ" name="MULTIPLE_CHOICE_CLOSED_LIST"/>
+ <ownedLiteral xmi:id="_ky5dwC2VEd6Baqqif9vVOQ" name="FACET_NAME"/>
+ <ownedLiteral xmi:id="_n5fbQC2VEd6Baqqif9vVOQ" name="PARENT_TOPIC"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Enumeration" xmi:id="_q4feFLpJEd2ea__X_Ke6sQ" name="OperandName">
+ <ownedLiteral xmi:id="_tKiZMLpJEd2ea__X_Ke6sQ" name="ID"/>
+ <ownedLiteral xmi:id="_u8EBMLpJEd2ea__X_Ke6sQ" name="CREATION_DATE"/>
+ <ownedLiteral xmi:id="_UUJjYgJTEd6NXsEhrbvcFg" name="SOURCE"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_Sp7wcLraEd2I3Oprj84ARg" name="Between">
+ <generalization xmi:id="_7uQpc7raEd2I3Oprj84ARg" general="_SdWXILpEEd2ea__X_Ke6sQ"/>
+ <ownedAttribute xmi:id="_jDR9cLraEd2I3Oprj84ARg" name="element" type="_agULMLpIEd2ea__X_Ke6sQ"/>
+ <ownedAttribute xmi:id="_m6zBkLraEd2I3Oprj84ARg" name="min">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_p0fykbraEd2I3Oprj84ARg" name="max">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_bCy1QMbBEd2uuaPd80qeIQ" name="AbstractSearchDto" isAbstract="true"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_kAX0QMbBEd2uuaPd80qeIQ" name="KeywordsSearchDto">
+ <generalization xmi:id="_2F8Sg8bBEd2uuaPd80qeIQ" general="_bCy1QMbBEd2uuaPd80qeIQ"/>
+ <ownedAttribute xmi:id="_4aGtgMbBEd2uuaPd80qeIQ" name="keyword">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:DataType" xmi:id="_JAhtMMbCEd2uuaPd80qeIQ" name="List<AbstractSearchDto>"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_VbTx0MeREd2h5Jm14AAEsA" name="ContentDef">
+ <generalization xmi:id="_Z19_Q8eREd2h5Jm14AAEsA" general="_-1M2GHTaEd20yqJGyRKhKA"/>
+ <ownedAttribute xmi:id="_XQIlcMeREd2h5Jm14AAEsA" name="attributes" type="_ZytvEHhBEd2X9uNQyI_qHw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_b7u8YMhWEd2UGuMtCFt8YQ" name="AttributeValue" isAbstract="true">
+ <ownedAttribute xmi:id="_gVRIcMhWEd2UGuMtCFt8YQ" name="attributeDefId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedAttribute>
+ <ownedOperation xmi:id="_TkUJAMhXEd2UGuMtCFt8YQ" name="getValue">
+ <ownedParameter xmi:id="_V_kDcMhXEd2UGuMtCFt8YQ" name="return" direction="return">
+ <type xmi:type="uml:DataType" href="pathmap://ACCELEO_PROFILES/Acceleo.Business.profile.uml#_xqoXkASfEd2Qys9YSCxJaQ"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_zfJt8chXEd2UGuMtCFt8YQ" name="setValue">
+ <ownedParameter xmi:id="_0dx5YMhXEd2UGuMtCFt8YQ" name="value">
+ <type xmi:type="uml:DataType" href="pathmap://ACCELEO_PROFILES/Acceleo.Business.profile.uml#_xqoXkASfEd2Qys9YSCxJaQ"/>
+ </ownedParameter>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_ysvPAMhWEd2UGuMtCFt8YQ" name="StringValue">
+ <generalization xmi:id="_1zLbg8hWEd2UGuMtCFt8YQ" general="_b7u8YMhWEd2UGuMtCFt8YQ"/>
+ <ownedAttribute xmi:id="_I-bvcshXEd2UGuMtCFt8YQ" name="stringValue">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedAttribute>
+ <ownedOperation xmi:id="_7eIPUMhaEd2zn4jAoVOTPA" name="getValue">
+ <ownedParameter xmi:id="_7eIPUchaEd2zn4jAoVOTPA" name="return" direction="return">
+ <type xmi:type="uml:DataType" href="pathmap://ACCELEO_PROFILES/Acceleo.Business.profile.uml#_xqoXkASfEd2Qys9YSCxJaQ"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_7eJdcMhaEd2zn4jAoVOTPA" name="setValue">
+ <ownedParameter xmi:id="_7eJdcchaEd2zn4jAoVOTPA" name="value">
+ <type xmi:type="uml:DataType" href="pathmap://ACCELEO_PROFILES/Acceleo.Business.profile.uml#_xqoXkASfEd2Qys9YSCxJaQ"/>
+ </ownedParameter>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_3tyHAMhWEd2UGuMtCFt8YQ" name="DateValue">
+ <generalization xmi:id="__rbTA8hWEd2UGuMtCFt8YQ" general="_b7u8YMhWEd2UGuMtCFt8YQ"/>
+ <ownedAttribute xmi:id="_LPxf8shXEd2UGuMtCFt8YQ" name="dateValue">
+ <type xmi:type="uml:DataType" href="pathmap://ACCELEO_PROFILES/Acceleo.Business.profile.uml#_unIxYASfEd2Qys9YSCxJaQ"/>
+ </ownedAttribute>
+ <ownedOperation xmi:id="_78lF4MhaEd2zn4jAoVOTPA" name="getValue">
+ <ownedParameter xmi:id="_78ls8MhaEd2zn4jAoVOTPA" name="return" direction="return">
+ <type xmi:type="uml:DataType" href="pathmap://ACCELEO_PROFILES/Acceleo.Business.profile.uml#_xqoXkASfEd2Qys9YSCxJaQ"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_78ls8chaEd2zn4jAoVOTPA" name="setValue">
+ <ownedParameter xmi:id="_78ls8shaEd2zn4jAoVOTPA" name="value">
+ <type xmi:type="uml:DataType" href="pathmap://ACCELEO_PROFILES/Acceleo.Business.profile.uml#_xqoXkASfEd2Qys9YSCxJaQ"/>
+ </ownedParameter>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_CAfs8MhXEd2UGuMtCFt8YQ" name="DoubleValue">
+ <generalization xmi:id="_IC24A8hXEd2UGuMtCFt8YQ" general="_b7u8YMhWEd2UGuMtCFt8YQ"/>
+ <ownedAttribute xmi:id="_NsVpAMhXEd2UGuMtCFt8YQ" name="doubleValue" type="_70rUaHXXEd2XodZQ_XQIpQ"/>
+ <ownedOperation xmi:id="_89HV0MhaEd2zn4jAoVOTPA" name="getValue">
+ <ownedParameter xmi:id="_89HV0chaEd2zn4jAoVOTPA" name="return" direction="return">
+ <type xmi:type="uml:DataType" href="pathmap://ACCELEO_PROFILES/Acceleo.Business.profile.uml#_xqoXkASfEd2Qys9YSCxJaQ"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_89H84MhaEd2zn4jAoVOTPA" name="setValue">
+ <ownedParameter xmi:id="_89H84chaEd2zn4jAoVOTPA" name="value">
+ <type xmi:type="uml:DataType" href="pathmap://ACCELEO_PROFILES/Acceleo.Business.profile.uml#_xqoXkASfEd2Qys9YSCxJaQ"/>
+ </ownedParameter>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_FMMz9shXEd2UGuMtCFt8YQ" name="IntegerValue">
+ <generalization xmi:id="_IRM2A8hXEd2UGuMtCFt8YQ" general="_b7u8YMhWEd2UGuMtCFt8YQ"/>
+ <ownedAttribute xmi:id="_Q4CI8shXEd2UGuMtCFt8YQ" name="integerValue">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Integer"/>
+ </ownedAttribute>
+ <ownedOperation xmi:id="_-O9_QMhaEd2zn4jAoVOTPA" name="getValue">
+ <ownedParameter xmi:id="_-O9_QchaEd2zn4jAoVOTPA" name="return" direction="return">
+ <type xmi:type="uml:DataType" href="pathmap://ACCELEO_PROFILES/Acceleo.Business.profile.uml#_xqoXkASfEd2Qys9YSCxJaQ"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_-O9_QshaEd2zn4jAoVOTPA" name="setValue">
+ <ownedParameter xmi:id="_-O9_Q8haEd2zn4jAoVOTPA" name="value">
+ <type xmi:type="uml:DataType" href="pathmap://ACCELEO_PROFILES/Acceleo.Business.profile.uml#_xqoXkASfEd2Qys9YSCxJaQ"/>
+ </ownedParameter>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:DataType" xmi:id="_U48ZoMhXEd2UGuMtCFt8YQ" name="AttributeType"/>
+ <packagedElement xmi:type="uml:DataType" xmi:id="_BoG6wMhaEd2zn4jAoVOTPA" name="Set<AttributeValue>"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_g6OzsNcdEd2nifBZRRnUOg" name="UpdateResult">
+ <ownedAttribute xmi:id="_mpSoQNcdEd2nifBZRRnUOg" name="submitted">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Integer"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_oVMJYtcdEd2nifBZRRnUOg" name="dealt">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Integer"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_wH4poNcdEd2nifBZRRnUOg" name="total">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Integer"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_0hSnEOkqEd2VcLeORko10g" name="ContentLink">
+ <generalization xmi:id="_0hSnEekqEd2VcLeORko10g">
+ <general xmi:type="uml:Class" href="cmsLink.uml#_Q7hZ8I8AEd2TZJhzNZ91vg"/>
+ </generalization>
+ <ownedAttribute xmi:id="_0hSnEukqEd2VcLeORko10g" name="sourceContent" type="__rDAwJttEd2hONjUBs7mIQ"/>
+ <ownedAttribute xmi:id="_0hSnE-kqEd2VcLeORko10g" name="targetContent" type="__rDAwJttEd2hONjUBs7mIQ"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_zqte8O69Ed2vc7ElAwQEXw" name="LinkWithContentNames">
+ <generalization xmi:id="_BIcZ8-6_Ed2vc7ElAwQEXw">
+ <general xmi:type="uml:Class" href="cmsLink.uml#_Q7hZ8I8AEd2TZJhzNZ91vg"/>
+ </generalization>
+ <ownedAttribute xmi:id="_2e2agO69Ed2vc7ElAwQEXw" name="contentSourceName">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_405r4u69Ed2vc7ElAwQEXw" name="contentTargetName">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_37knQPEaEd2U9JmEC6FyWg" name="LinkDefinitionExport">
+ <generalization xmi:id="_Lg6PI_EbEd2U9JmEC6FyWg">
+ <general xmi:type="uml:Class" href="cmsLink.uml#_c2ZwIIrlEd2IhLeDKBwRog"/>
+ </generalization>
+ <ownedOperation xmi:id="_R3_tAPEbEd2U9JmEC6FyWg" name="addAllLinks">
+ <ownedParameter xmi:id="_U9sSoPEbEd2U9JmEC6FyWg" name="links" type="_iy_1kPEbEd2U9JmEC6FyWg"/>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_Fr3uYPEbEd2U9JmEC6FyWg" name="Association3" memberEnd="_Fr3uYfEbEd2U9JmEC6FyWg _Fr4VcfEbEd2U9JmEC6FyWg" navigableOwnedEnd="_Fr4VcfEbEd2U9JmEC6FyWg">
+ <ownedEnd xmi:id="_Fr3uYfEbEd2U9JmEC6FyWg" name="source" type="_37knQPEaEd2U9JmEC6FyWg" association="_Fr3uYPEbEd2U9JmEC6FyWg">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Fr3uYvEbEd2U9JmEC6FyWg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Fr4VcPEbEd2U9JmEC6FyWg" value="1"/>
+ </ownedEnd>
+ <ownedEnd xmi:id="_Fr4VcfEbEd2U9JmEC6FyWg" name="links" type="_zqte8O69Ed2vc7ElAwQEXw" aggregation="composite" association="_Fr3uYPEbEd2U9JmEC6FyWg">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Fr4VcvEbEd2U9JmEC6FyWg" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Fr4Vc_EbEd2U9JmEC6FyWg"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_v0cXgPdOEd2So46ZaKFSQw" name="Association4" memberEnd="_v0cXgfdOEd2So46ZaKFSQw _v0cXhPdOEd2So46ZaKFSQw" navigableOwnedEnd="_v0cXhPdOEd2So46ZaKFSQw">
+ <ownedEnd xmi:id="_v0cXgfdOEd2So46ZaKFSQw" name="source" type="_b7u8YMhWEd2UGuMtCFt8YQ" association="_v0cXgPdOEd2So46ZaKFSQw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_v0cXgvdOEd2So46ZaKFSQw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_v0cXg_dOEd2So46ZaKFSQw" value="1"/>
+ </ownedEnd>
+ <ownedEnd xmi:id="_v0cXhPdOEd2So46ZaKFSQw" name="target" association="_v0cXgPdOEd2So46ZaKFSQw">
+ <type xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception-helper.uml#_Hb8X5PaMEd2-MYgc0GvAJw"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_v0cXhfdOEd2So46ZaKFSQw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_v0cXhvdOEd2So46ZaKFSQw" value="1"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_yHKBCvdOEd2So46ZaKFSQw" name="Association5" memberEnd="_yHKBC_dOEd2So46ZaKFSQw _yHKBDvdOEd2So46ZaKFSQw" navigableOwnedEnd="_yHKBDvdOEd2So46ZaKFSQw">
+ <ownedEnd xmi:id="_yHKBC_dOEd2So46ZaKFSQw" name="source" type="_3UukkHjHEd2vSLEPekkQZw" association="_yHKBCvdOEd2So46ZaKFSQw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_yHKBDPdOEd2So46ZaKFSQw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_yHKBDfdOEd2So46ZaKFSQw" value="1"/>
+ </ownedEnd>
+ <ownedEnd xmi:id="_yHKBDvdOEd2So46ZaKFSQw" name="target" association="_yHKBCvdOEd2So46ZaKFSQw">
+ <type xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception-helper.uml#_Hb8X5PaMEd2-MYgc0GvAJw"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_yHKBD_dOEd2So46ZaKFSQw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_yHKBEPdOEd2So46ZaKFSQw" value="1"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_yZixivdOEd2So46ZaKFSQw" name="Association6" memberEnd="_yZixi_dOEd2So46ZaKFSQw _yZixjvdOEd2So46ZaKFSQw" navigableOwnedEnd="_yZixjvdOEd2So46ZaKFSQw">
+ <ownedEnd xmi:id="_yZixi_dOEd2So46ZaKFSQw" name="source" type="_3UukkHjHEd2vSLEPekkQZw" association="_yZixivdOEd2So46ZaKFSQw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_yZixjPdOEd2So46ZaKFSQw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_yZixjfdOEd2So46ZaKFSQw" value="1"/>
+ </ownedEnd>
+ <ownedEnd xmi:id="_yZixjvdOEd2So46ZaKFSQw" name="target" association="_yZixivdOEd2So46ZaKFSQw">
+ <type xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception-helper.uml#_Hb8X4faMEd2-MYgc0GvAJw"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_yZixj_dOEd2So46ZaKFSQw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_yZixkPdOEd2So46ZaKFSQw" value="1"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_DsL-CvdPEd2So46ZaKFSQw" name="Association7" memberEnd="_DsL-C_dPEd2So46ZaKFSQw _DsL-DvdPEd2So46ZaKFSQw" navigableOwnedEnd="_DsL-DvdPEd2So46ZaKFSQw">
+ <ownedEnd xmi:id="_DsL-C_dPEd2So46ZaKFSQw" name="source" type="_4oxq2HghEd2Vxr2aiClL8g" association="_DsL-CvdPEd2So46ZaKFSQw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_DsL-DPdPEd2So46ZaKFSQw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_DsL-DfdPEd2So46ZaKFSQw" value="1"/>
+ </ownedEnd>
+ <ownedEnd xmi:id="_DsL-DvdPEd2So46ZaKFSQw" name="target" association="_DsL-CvdPEd2So46ZaKFSQw">
+ <type xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception-helper.uml#_Hb8X5PaMEd2-MYgc0GvAJw"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_DsL-D_dPEd2So46ZaKFSQw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_DsL-EPdPEd2So46ZaKFSQw" value="1"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_EhHa6vdPEd2So46ZaKFSQw" name="Association8" memberEnd="_EhHa6_dPEd2So46ZaKFSQw _EhHa7vdPEd2So46ZaKFSQw" navigableOwnedEnd="_EhHa7vdPEd2So46ZaKFSQw">
+ <ownedEnd xmi:id="_EhHa6_dPEd2So46ZaKFSQw" name="source" type="_-1M2GHTaEd20yqJGyRKhKA" association="_EhHa6vdPEd2So46ZaKFSQw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_EhHa7PdPEd2So46ZaKFSQw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_EhHa7fdPEd2So46ZaKFSQw" value="1"/>
+ </ownedEnd>
+ <ownedEnd xmi:id="_EhHa7vdPEd2So46ZaKFSQw" name="target" association="_EhHa6vdPEd2So46ZaKFSQw">
+ <type xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception-helper.uml#_Hb8X5PaMEd2-MYgc0GvAJw"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_EhHa7_dPEd2So46ZaKFSQw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_EhHa8PdPEd2So46ZaKFSQw" value="1"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_HtwWCvdPEd2So46ZaKFSQw" name="Association10" memberEnd="_HtwWC_dPEd2So46ZaKFSQw _HtwWDvdPEd2So46ZaKFSQw" navigableOwnedEnd="_HtwWDvdPEd2So46ZaKFSQw">
+ <ownedEnd xmi:id="_HtwWC_dPEd2So46ZaKFSQw" name="source" type="_-1M2GHTaEd20yqJGyRKhKA" association="_HtwWCvdPEd2So46ZaKFSQw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_HtwWDPdPEd2So46ZaKFSQw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_HtwWDfdPEd2So46ZaKFSQw" value="1"/>
+ </ownedEnd>
+ <ownedEnd xmi:id="_HtwWDvdPEd2So46ZaKFSQw" name="target" association="_HtwWCvdPEd2So46ZaKFSQw">
+ <type xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception-helper.uml#_Hb8X4faMEd2-MYgc0GvAJw"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_HtwWD_dPEd2So46ZaKFSQw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_HtwWEPdPEd2So46ZaKFSQw" value="1"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_ZFg2kPdQEd2So46ZaKFSQw" name="Association9" memberEnd="_ZFg2kfdQEd2So46ZaKFSQw _ZFg2lPdQEd2So46ZaKFSQw" navigableOwnedEnd="_ZFg2lPdQEd2So46ZaKFSQw">
+ <ownedEnd xmi:id="_ZFg2kfdQEd2So46ZaKFSQw" name="source" type="__rDAwJttEd2hONjUBs7mIQ" association="_ZFg2kPdQEd2So46ZaKFSQw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_ZFg2kvdQEd2So46ZaKFSQw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_ZFg2k_dQEd2So46ZaKFSQw" value="1"/>
+ </ownedEnd>
+ <ownedEnd xmi:id="_ZFg2lPdQEd2So46ZaKFSQw" name="target" association="_ZFg2kPdQEd2So46ZaKFSQw">
+ <type xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception-helper.uml#_Hb8X4faMEd2-MYgc0GvAJw"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_ZFg2lfdQEd2So46ZaKFSQw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_ZFg2lvdQEd2So46ZaKFSQw" value="1"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_IVebWPdlEd2Fr5Df5xrkyw" name="Association11" memberEnd="_IVebWfdlEd2Fr5Df5xrkyw _IVebXPdlEd2Fr5Df5xrkyw" navigableOwnedEnd="_IVebXPdlEd2Fr5Df5xrkyw">
+ <ownedEnd xmi:id="_IVebWfdlEd2Fr5Df5xrkyw" name="source" association="_IVebWPdlEd2Fr5Df5xrkyw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_IVebWvdlEd2Fr5Df5xrkyw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_IVebW_dlEd2Fr5Df5xrkyw" value="1"/>
+ </ownedEnd>
+ <ownedEnd xmi:id="_IVebXPdlEd2Fr5Df5xrkyw" name="nomenclatureNodes" isUnique="false" aggregation="composite" association="_IVebWPdlEd2Fr5Df5xrkyw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_IVebXfdlEd2Fr5Df5xrkyw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_IVebXvdlEd2Fr5Df5xrkyw"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_PBkf6fdlEd2Fr5Df5xrkyw" name="Association12" memberEnd="_PBkf6vdlEd2Fr5Df5xrkyw _PBkf7fdlEd2Fr5Df5xrkyw" navigableOwnedEnd="_PBkf7fdlEd2Fr5Df5xrkyw">
+ <ownedEnd xmi:id="_PBkf6vdlEd2Fr5Df5xrkyw" name="source" association="_PBkf6fdlEd2Fr5Df5xrkyw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_PBkf6_dlEd2Fr5Df5xrkyw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_PBkf7PdlEd2Fr5Df5xrkyw" value="1"/>
+ </ownedEnd>
+ <ownedEnd xmi:id="_PBkf7fdlEd2Fr5Df5xrkyw" name="contents" type="_3UukkHjHEd2vSLEPekkQZw" isUnique="false" aggregation="composite" association="_PBkf6fdlEd2Fr5Df5xrkyw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_PBkf7vdlEd2Fr5Df5xrkyw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_PBkf7_dlEd2Fr5Df5xrkyw"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_B3oxKfhVEd2du7_XCS7v_A" name="Association13" memberEnd="_B3oxKvhVEd2du7_XCS7v_A _B3oxLfhVEd2du7_XCS7v_A" navigableOwnedEnd="_B3oxLfhVEd2du7_XCS7v_A">
+ <ownedEnd xmi:id="_B3oxKvhVEd2du7_XCS7v_A" name="source" type="_tM0CIHkDEd2Atp1vvmnWrA" association="_B3oxKfhVEd2du7_XCS7v_A">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_B3oxK_hVEd2du7_XCS7v_A" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_B3oxLPhVEd2du7_XCS7v_A" value="1"/>
+ </ownedEnd>
+ <ownedEnd xmi:id="_B3oxLfhVEd2du7_XCS7v_A" name="target" association="_B3oxKfhVEd2du7_XCS7v_A">
+ <type xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception-helper.uml#_Hb8X5PaMEd2-MYgc0GvAJw"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_B3oxLvhVEd2du7_XCS7v_A" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_B3oxL_hVEd2du7_XCS7v_A" value="1"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_k4ogWPm2Ed2ngN8mqQoDPw" name="LinkBetweenNodesAndContents">
+ <ownedAttribute xmi:id="_mB840Pm2Ed2ngN8mqQoDPw" name="nodeId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_p9LYQvm2Ed2ngN8mqQoDPw" name="contentsIds" type="_ddB9cIViEd2N0bQZBk24XA"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_e8X8AP9CEd2Qm_QM6AOnsQ" name="Referential">
+ <ownedAttribute xmi:id="_1KLa8v9CEd2Qm_QM6AOnsQ" name="source">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_12E3ov9CEd2Qm_QM6AOnsQ" name="date">
+ <type xmi:type="uml:DataType" href="pathmap://ACCELEO_PROFILES/Acceleo.Business.profile.uml#_unIxYASfEd2Qys9YSCxJaQ"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_2Z7LkP9CEd2Qm_QM6AOnsQ" name="nbProducts">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Integer"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_cKzzgP9nEd2c4u-jA89yIA" name="id">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_sQHqCP9CEd2Qm_QM6AOnsQ" name="importedDataToNomenclatureDTO" memberEnd="_sQIREP9CEd2Qm_QM6AOnsQ _sQIRE_9CEd2Qm_QM6AOnsQ" navigableOwnedEnd="_sQIRE_9CEd2Qm_QM6AOnsQ">
+ <ownedEnd xmi:id="_sQIREP9CEd2Qm_QM6AOnsQ" name="referential" type="_e8X8AP9CEd2Qm_QM6AOnsQ" association="_sQHqCP9CEd2Qm_QM6AOnsQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_sQIREf9CEd2Qm_QM6AOnsQ" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_sQIREv9CEd2Qm_QM6AOnsQ" value="1"/>
+ </ownedEnd>
+ <ownedEnd xmi:id="_sQIRE_9CEd2Qm_QM6AOnsQ" name="nomenclature" association="_sQHqCP9CEd2Qm_QM6AOnsQ">
+ <type xmi:type="uml:Class" href="org.sharengo.utils.container.nomenclature/src/main/uml/conception.uml#_yF0iAKUBEd2nLbvCg8hnUg"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_sQIRFP9CEd2Qm_QM6AOnsQ" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_sQIRFf9CEd2Qm_QM6AOnsQ" value="1"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_rAF6AA4_Ed6KQuvMUCD2yg" name="facet">
+ <packagedElement xmi:type="uml:Class" xmi:id="_EGAKUA5HEd6KQuvMUCD2yg" name="FacetContent">
+ <ownedAttribute xmi:id="_F8VZ0A5HEd6KQuvMUCD2yg" name="facetName" visibility="protected">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_Q7E_UA5HEd6KQuvMUCD2yg" name="topics" visibility="protected" type="_j8IR8B07Ed6sNL3iT4yqBg"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:DataType" xmi:id="_Ka0XUA5HEd6KQuvMUCD2yg" name="List<FacetContent>"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_Vcdf0A5HEd6KQuvMUCD2yg" name="FacetResult">
+ <ownedAttribute xmi:id="_gcp20A5HEd6KQuvMUCD2yg" name="facetName" visibility="protected">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="__YtfUA5HEd6KQuvMUCD2yg" name="topicResults" visibility="protected" type="_g_fFMB08Ed6sNL3iT4yqBg"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:DataType" xmi:id="_EfoV0A5IEd6KQuvMUCD2yg" name="List<FacetResult>"/>
+ <packagedElement xmi:type="uml:DataType" xmi:id="_Pk2hUA5JEd6KQuvMUCD2yg" name="List<List<String>>"/>
+ <packagedElement xmi:type="uml:DataType" xmi:id="_xRGPsA7cEd6GlpMc1IXijg" name="List<Topic>"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_SsxC8B07Ed6sNL3iT4yqBg" name="TopicDTO">
+ <ownedAttribute xmi:id="_Z6w6sB07Ed6sNL3iT4yqBg" name="id">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_c4zZIB07Ed6sNL3iT4yqBg" name="value">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:DataType" xmi:id="_j8IR8B07Ed6sNL3iT4yqBg" name="List<TopicDTO>"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_D5ipwB08Ed6sNL3iT4yqBg" name="TopicResult">
+ <generalization xmi:id="_K-prQB08Ed6sNL3iT4yqBg" general="_SsxC8B07Ed6sNL3iT4yqBg"/>
+ <ownedAttribute xmi:id="_GUebIB08Ed6sNL3iT4yqBg" name="count">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Integer"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:DataType" xmi:id="_g_fFMB08Ed6sNL3iT4yqBg" name="List<TopicResult>"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_55WnYCtWEd6tjYAzTLw2Cw" name="CriterionDto">
+ <ownedAttribute xmi:id="_MgiDQCtqEd6tjYAzTLw2Cw" name="name" visibility="protected">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_tEh58CtqEd6tjYAzTLw2Cw" name="displayName" visibility="protected">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_uGOAcCtqEd6tjYAzTLw2Cw" name="pictureId" visibility="protected">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_yAPmACtqEd6tjYAzTLw2Cw" name="pitch" visibility="protected">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_T_pTEC2BEd6R-vHwJRLroA" name="attDefId" visibility="protected">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_x0oyoC8-Ed6-MauFHegShA" name="contentId" visibility="protected">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_5R04IE9XEd6VjacN4bzw2Q" name="TopicRuleDto">
+ <ownedAttribute xmi:id="_IHxYsE9YEd6VjacN4bzw2Q" name="id">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_hh8F8k9YEd6VjacN4bzw2Q" name="request">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_oWsXQk9YEd6VjacN4bzw2Q" name="search" type="_50mREA74Ed6i07THnW3V5A"/>
+ <ownedAttribute xmi:id="_qok6Uk9YEd6VjacN4bzw2Q" name="number">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_sMtmkk9YEd6VjacN4bzw2Q" name="lastUser">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_uT3gUk9YEd6VjacN4bzw2Q" name="creationDate">
+ <type xmi:type="uml:DataType" href="pathmap://ACCELEO_PROFILES/Acceleo.Business.profile.uml#_unIxYASfEd2Qys9YSCxJaQ"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_xvggwk9YEd6VjacN4bzw2Q" name="lastUsedDate">
+ <type xmi:type="uml:DataType" href="pathmap://ACCELEO_PROFILES/Acceleo.Business.profile.uml#_unIxYASfEd2Qys9YSCxJaQ"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_zkLjYk9YEd6VjacN4bzw2Q" name="lastModificationDate">
+ <type xmi:type="uml:DataType" href="pathmap://ACCELEO_PROFILES/Acceleo.Business.profile.uml#_unIxYASfEd2Qys9YSCxJaQ"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_xIOzQFGmEd6lINZTnfnS_Q" name="Level">
+ <generalization xmi:id="_-L8PQ1GoEd6lINZTnfnS_Q" general="_D5ipwB08Ed6sNL3iT4yqBg"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_3CkDsFGmEd6lINZTnfnS_Q" name="EntryPoint">
+ <ownedAttribute xmi:id="_wqIskFGnEd6lINZTnfnS_Q" name="name">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_UKe4QFGrEd6lINZTnfnS_Q" name="Label">
+ <generalization xmi:id="_qinX41GrEd6lINZTnfnS_Q" general="_D5ipwB08Ed6sNL3iT4yqBg"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_VfsXsFGrEd6lINZTnfnS_Q" name="Subject">
+ <ownedAttribute xmi:id="_rNxNsFGrEd6lINZTnfnS_Q" name="name">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_r56skFGsEd6lINZTnfnS_Q" name="A_<subject>_<label>" memberEnd="_r56skVGsEd6lINZTnfnS_Q _r56slFGsEd6lINZTnfnS_Q" navigableOwnedEnd="_r56slFGsEd6lINZTnfnS_Q">
+ <ownedEnd xmi:id="_r56skVGsEd6lINZTnfnS_Q" name="subject" type="_VfsXsFGrEd6lINZTnfnS_Q" isUnique="false" association="_r56skFGsEd6lINZTnfnS_Q">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_r56sklGsEd6lINZTnfnS_Q" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_r56sk1GsEd6lINZTnfnS_Q" value="1"/>
+ </ownedEnd>
+ <ownedEnd xmi:id="_r56slFGsEd6lINZTnfnS_Q" name="labels" type="_UKe4QFGrEd6lINZTnfnS_Q" isUnique="false" association="_r56skFGsEd6lINZTnfnS_Q">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_r56slVGsEd6lINZTnfnS_Q" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_r56sllGsEd6lINZTnfnS_Q"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_zfpH2lGsEd6lINZTnfnS_Q" name="A_<entryPoint>_<level>" memberEnd="_zfpH21GsEd6lINZTnfnS_Q _zfpH3lGsEd6lINZTnfnS_Q" navigableOwnedEnd="_zfpH3lGsEd6lINZTnfnS_Q">
+ <ownedEnd xmi:id="_zfpH21GsEd6lINZTnfnS_Q" name="entryPoint" type="_3CkDsFGmEd6lINZTnfnS_Q" isUnique="false" association="_zfpH2lGsEd6lINZTnfnS_Q">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_zfpH3FGsEd6lINZTnfnS_Q" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_zfpH3VGsEd6lINZTnfnS_Q" value="1"/>
+ </ownedEnd>
+ <ownedEnd xmi:id="_zfpH3lGsEd6lINZTnfnS_Q" name="level" type="_xIOzQFGmEd6lINZTnfnS_Q" isUnique="false" association="_zfpH2lGsEd6lINZTnfnS_Q">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_zfpH31GsEd6lINZTnfnS_Q" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_zfpH4FGsEd6lINZTnfnS_Q"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_jCwpMFGtEd6lINZTnfnS_Q" name="Family">
+ <generalization xmi:id="_nlSZM1GtEd6lINZTnfnS_Q" general="_SsxC8B07Ed6sNL3iT4yqBg"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:DataType" xmi:id="_aSk7EFGvEd6lINZTnfnS_Q" name="List<Level>"/>
+ <packagedElement xmi:type="uml:DataType" xmi:id="_a-Lc0FGvEd6lINZTnfnS_Q" name="List<EntryPoint>"/>
+ <packagedElement xmi:type="uml:DataType" xmi:id="_gtODQFGvEd6lINZTnfnS_Q" name="List<Family>"/>
+ <packagedElement xmi:type="uml:DataType" xmi:id="_jBrZMFGvEd6lINZTnfnS_Q" name="List<Label>"/>
+ <packagedElement xmi:type="uml:DataType" xmi:id="_k33ewFGvEd6lINZTnfnS_Q" name="List<Subject>"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_pn_cYA70Ed6i07THnW3V5A" name="ContentNomenclatureSearchDto">
+ <ownedAttribute xmi:id="_S6i-oA71Ed6i07THnW3V5A" name="searchNodeIds" type="_P2_uEA71Ed6i07THnW3V5A"/>
+ <ownedOperation xmi:id="_k0TOcA71Ed6i07THnW3V5A" name="addSearchNodeId">
+ <ownedParameter xmi:id="_nHCtIA71Ed6i07THnW3V5A" name="nodeId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_qJUyYA71Ed6i07THnW3V5A" name="removeSearchNodeId">
+ <ownedParameter xmi:id="_syvrsA71Ed6i07THnW3V5A" name="nodeId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_utHtsA71Ed6i07THnW3V5A" name="containsNodeId">
+ <ownedParameter xmi:id="_wQ-GEA71Ed6i07THnW3V5A" name="nodeId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_xa9M8A71Ed6i07THnW3V5A" name="return" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_0mbDYA71Ed6i07THnW3V5A" name="getSearchDtoAsList">
+ <ownedParameter xmi:id="_1oKNMA71Ed6i07THnW3V5A" name="return" type="_JAhtMMbCEd2uuaPd80qeIQ" direction="return"/>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_w1XpEA70Ed6i07THnW3V5A" name="Association14" memberEnd="_w1XpEQ70Ed6i07THnW3V5A _w1XpFA70Ed6i07THnW3V5A" navigableOwnedEnd="_w1XpFA70Ed6i07THnW3V5A">
+ <ownedEnd xmi:id="_w1XpEQ70Ed6i07THnW3V5A" name="source" type="_pn_cYA70Ed6i07THnW3V5A" association="_w1XpEA70Ed6i07THnW3V5A">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_w1XpEg70Ed6i07THnW3V5A" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_w1XpEw70Ed6i07THnW3V5A" value="1"/>
+ </ownedEnd>
+ <ownedEnd xmi:id="_w1XpFA70Ed6i07THnW3V5A" name="searchDto" type="_FzLjsLoaEd2A0rZMX9hUqA" association="_w1XpEA70Ed6i07THnW3V5A">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_w1XpFQ70Ed6i07THnW3V5A" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_w1XpFg70Ed6i07THnW3V5A" value="1"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_wmHRUC2OEd6Baqqif9vVOQ" name="FacetSearchDto">
+ <ownedAttribute xmi:id="_7ph7cC2OEd6Baqqif9vVOQ" name="facetName">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_AHTHQC2PEd6Baqqif9vVOQ" name="topicId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_MDuqwC2UEd6Baqqif9vVOQ" name="parentTopicId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_GxH6-i2PEd6Baqqif9vVOQ" name="Association15" memberEnd="_GxH6-y2PEd6Baqqif9vVOQ _GxH6_i2PEd6Baqqif9vVOQ" navigableOwnedEnd="_GxH6_i2PEd6Baqqif9vVOQ">
+ <ownedEnd xmi:id="_GxH6-y2PEd6Baqqif9vVOQ" name="search" type="_FzLjsLoaEd2A0rZMX9hUqA" isUnique="false" association="_GxH6-i2PEd6Baqqif9vVOQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_GxH6_C2PEd6Baqqif9vVOQ" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_GxH6_S2PEd6Baqqif9vVOQ" value="1"/>
+ </ownedEnd>
+ <ownedEnd xmi:id="_GxH6_i2PEd6Baqqif9vVOQ" name="facets" type="_wmHRUC2OEd6Baqqif9vVOQ" isOrdered="true" isUnique="false" association="_GxH6-i2PEd6Baqqif9vVOQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_GxH6_y2PEd6Baqqif9vVOQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_GxH7AC2PEd6Baqqif9vVOQ"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_hK3J0EFOEd68g6bliBN4DQ" name="ContentValue">
+ <generalization xmi:id="_qHCaokFOEd68g6bliBN4DQ" general="_b7u8YMhWEd2UGuMtCFt8YQ"/>
+ <ownedAttribute xmi:id="_uwXWMEFOEd68g6bliBN4DQ" name="contentValue" type="_3UukkHjHEd2vSLEPekkQZw"/>
+ </packagedElement>
+ <profileApplication xmi:id="_M2BsIPWdEdyp25RO5nzQ4A">
+ <eAnnotations xmi:id="_M2CTMPWdEdyp25RO5nzQ4A" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="pathmap://ACCELEO_PROFILES/Acceleo.Business.profile.uml#_81g14fWcEdyuYMHNZCqWBQ"/>
+ </eAnnotations>
+ <appliedProfile href="pathmap://ACCELEO_PROFILES/Acceleo.Business.profile.uml#_JX9fQPWcEdyuYMHNZCqWBQ"/>
+ </profileApplication>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_Cp0X0PWSEdy_h6Mk-BiOHw" name="org.sharengo.cms.core.entities">
+ <ownedComment xmi:id="_EelqkN5REd2Bgrjmm1cxJQ" annotatedElement="_KYKiGHXPEd2gat_LwJwOew">
+ <body>For ClosedList, default value refer a ListItem Id
+for xhtml or text, defaultValue refer an other entity by its ID
+</body>
+ </ownedComment>
+ <ownedComment xmi:id="_OyvY8PbREd2So46ZaKFSQw">
+ <body>View embedded model to know all attributes in entities</body>
+ </ownedComment>
+ <packagedElement xmi:type="uml:Class" xmi:id="_--aR4HTZEd20yqJGyRKhKA" name="ContentDefinition">
+ <ownedAttribute xmi:id="_DJcH4nTaEd20yqJGyRKhKA" name="name">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_aH5AonTaEd20yqJGyRKhKA" name="description">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_2ClQwFRAEd6nD7wVEJxfpg" name="isDisable">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_kMHEkFTnEd6KRY193l1Mng" value="false"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_KYKiGHXPEd2gat_LwJwOew" name="AttributeDefinition">
+ <ownedAttribute xmi:id="_gCH60nXUEd2XodZQ_XQIpQ" name="type" type="_OoJh0HXVEd2XodZQ_XQIpQ"/>
+ <ownedAttribute xmi:id="_4WNIYHgGEd2YSIB0I8pjiw" name="name">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_s4Bo8N5QEd2Bgrjmm1cxJQ" name="defaultValue">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_GcsWAN5REd2Bgrjmm1cxJQ" name="isMandatory">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Boolean"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_NcHbSHXPEd2gat_LwJwOew" name="ContentEntity"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_O3Kc-HXPEd2gat_LwJwOew" name="Attribute"/>
+ <packagedElement xmi:type="uml:Association" xmi:id="_RoVkGXXPEd2gat_LwJwOew" name="Association1" memberEnd="_RoVkGnXPEd2gat_LwJwOew _RoVkHXXPEd2gat_LwJwOew" navigableOwnedEnd="_RoVkGnXPEd2gat_LwJwOew">
+ <ownedEnd xmi:id="_RoVkGnXPEd2gat_LwJwOew" name="definition" type="_--aR4HTZEd20yqJGyRKhKA" isUnique="false" association="_RoVkGXXPEd2gat_LwJwOew">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_RoVkG3XPEd2gat_LwJwOew" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_RoVkHHXPEd2gat_LwJwOew" value="1"/>
+ </ownedEnd>
+ <ownedEnd xmi:id="_RoVkHXXPEd2gat_LwJwOew" name="" visibility="public" type="_NcHbSHXPEd2gat_LwJwOew" isUnique="false" aggregation="shared" association="_RoVkGXXPEd2gat_LwJwOew">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_RoVkHnXPEd2gat_LwJwOew" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_RoVkH3XPEd2gat_LwJwOew"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_SC286XXPEd2gat_LwJwOew" name="Association2" memberEnd="_SC286nXPEd2gat_LwJwOew _SC287XXPEd2gat_LwJwOew" navigableOwnedEnd="_SC286nXPEd2gat_LwJwOew _SC287XXPEd2gat_LwJwOew">
+ <ownedEnd xmi:id="_SC286nXPEd2gat_LwJwOew" name="contentDefinition" type="_--aR4HTZEd20yqJGyRKhKA" association="_SC286XXPEd2gat_LwJwOew">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_SC2863XPEd2gat_LwJwOew" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_SC287HXPEd2gat_LwJwOew" value="1"/>
+ </ownedEnd>
+ <ownedEnd xmi:id="_SC287XXPEd2gat_LwJwOew" name="attributeDefinitions" type="_KYKiGHXPEd2gat_LwJwOew" isOrdered="true" aggregation="shared" association="_SC286XXPEd2gat_LwJwOew">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_SC287nXPEd2gat_LwJwOew" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_SC2873XPEd2gat_LwJwOew"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_ShjrGXXPEd2gat_LwJwOew" name="Association3" memberEnd="_ShjrGnXPEd2gat_LwJwOew _ShjrHXXPEd2gat_LwJwOew" navigableOwnedEnd="_ShjrGnXPEd2gat_LwJwOew">
+ <ownedEnd xmi:id="_ShjrGnXPEd2gat_LwJwOew" name="definition" type="_KYKiGHXPEd2gat_LwJwOew" isUnique="false" association="_ShjrGXXPEd2gat_LwJwOew">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_ShjrG3XPEd2gat_LwJwOew" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_ShjrHHXPEd2gat_LwJwOew" value="1"/>
+ </ownedEnd>
+ <ownedEnd xmi:id="_ShjrHXXPEd2gat_LwJwOew" name="" type="_O3Kc-HXPEd2gat_LwJwOew" isUnique="false" association="_ShjrGXXPEd2gat_LwJwOew">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_ShjrHnXPEd2gat_LwJwOew" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_ShjrH3XPEd2gat_LwJwOew"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_tqu32HXPEd2gat_LwJwOew" name="Association4" memberEnd="_tqu32XXPEd2gat_LwJwOew _tqu33HXPEd2gat_LwJwOew" navigableOwnedEnd="_tqu33HXPEd2gat_LwJwOew _tqu32XXPEd2gat_LwJwOew">
+ <ownedEnd xmi:id="_tqu32XXPEd2gat_LwJwOew" name="content" type="_NcHbSHXPEd2gat_LwJwOew" association="_tqu32HXPEd2gat_LwJwOew">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_tqu32nXPEd2gat_LwJwOew" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_tqu323XPEd2gat_LwJwOew" value="1"/>
+ </ownedEnd>
+ <ownedEnd xmi:id="_tqu33HXPEd2gat_LwJwOew" name="attributes" type="_O3Kc-HXPEd2gat_LwJwOew" isOrdered="true" isUnique="false" aggregation="shared" association="_tqu32HXPEd2gat_LwJwOew">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_tqu33XXPEd2gat_LwJwOew" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_tqu33nXPEd2gat_LwJwOew"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_IVEMeHXQEd2gat_LwJwOew" name="SimpleStringAttribute" clientDependency="_WnlaY3XREd2gat_LwJwOew">
+ <generalization xmi:id="_CdB95HXXEd2XodZQ_XQIpQ" general="_O3Kc-HXPEd2gat_LwJwOew"/>
+ <ownedAttribute xmi:id="_kWQCcnXUEd2XodZQ_XQIpQ" name="value">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_mOq5eHXQEd2gat_LwJwOew" name="ClosedListAttribute" clientDependency="_Xqoy03XREd2gat_LwJwOew">
+ <generalization xmi:id="_C_mfc3XXEd2XodZQ_XQIpQ" general="_O3Kc-HXPEd2gat_LwJwOew"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_WnlaY3XREd2gat_LwJwOew" name="Dependency1" client="_IVEMeHXQEd2gat_LwJwOew"/>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_XRJ703XREd2gat_LwJwOew" name="Dependency2" client="_i__W-HXQEd2gat_LwJwOew"/>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_Xqoy03XREd2gat_LwJwOew" name="Dependency3" client="_mOq5eHXQEd2gat_LwJwOew"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_Bq1oyHXTEd2XodZQ_XQIpQ" name="ListItem">
+ <ownedAttribute xmi:id="_rq4tsnXUEd2XodZQ_XQIpQ" name="value">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_WdyWeHXXEd2XodZQ_XQIpQ" name="TextAttribute">
+ <generalization xmi:id="_jfpqRHXXEd2XodZQ_XQIpQ" general="_O3Kc-HXPEd2gat_LwJwOew"/>
+ <ownedAttribute xmi:id="_dEiA8nXXEd2XodZQ_XQIpQ" name="value">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_vF4GiHXXEd2XodZQ_XQIpQ" name="FloatAttribute">
+ <generalization xmi:id="_A50pRHXYEd2XodZQ_XQIpQ" general="_O3Kc-HXPEd2gat_LwJwOew"/>
+ <ownedAttribute xmi:id="_yVv70nXXEd2XodZQ_XQIpQ" name="value" type="_70rUaHXXEd2XodZQ_XQIpQ"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_i__W-HXQEd2gat_LwJwOew" name="IntegerAttribute" clientDependency="_XRJ703XREd2gat_LwJwOew">
+ <generalization xmi:id="_CudsJHXXEd2XodZQ_XQIpQ" general="_O3Kc-HXPEd2gat_LwJwOew"/>
+ <ownedAttribute xmi:id="_xnw70nXUEd2XodZQ_XQIpQ" name="value">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Integer"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_l2fJWHXYEd2XodZQ_XQIpQ" name="MultimediaAttribute">
+ <generalization xmi:id="_3zEDpHXYEd2XodZQ_XQIpQ" general="_O3Kc-HXPEd2gat_LwJwOew"/>
+ <ownedAttribute xmi:id="_x8TEknXYEd2XodZQ_XQIpQ" name="value">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_9F6dWHXYEd2XodZQ_XQIpQ" name="MultipleChoiceClosedListAttribute">
+ <generalization xmi:id="_kK9-g3XfEd2XodZQ_XQIpQ" general="_mOq5eHXQEd2gat_LwJwOew"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_sRfBYHXZEd2XodZQ_XQIpQ" name="XhtmlAttribute">
+ <generalization xmi:id="_CQJ4JHXaEd2XodZQ_XQIpQ" general="_O3Kc-HXPEd2gat_LwJwOew"/>
+ <ownedAttribute xmi:id="_uhlbwnXZEd2XodZQ_XQIpQ" name="value">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_RuhOKHXbEd2XodZQ_XQIpQ" name="ClosedList">
+ <generalization xmi:id="_sPBRU3XbEd2XodZQ_XQIpQ" general="_KYKiGHXPEd2gat_LwJwOew"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_bxNbGnXbEd2XodZQ_XQIpQ" name="Association5" memberEnd="_bxNbG3XbEd2XodZQ_XQIpQ _bxNbHnXbEd2XodZQ_XQIpQ" navigableOwnedEnd="_bxNbHnXbEd2XodZQ_XQIpQ _bxNbG3XbEd2XodZQ_XQIpQ">
+ <ownedEnd xmi:id="_bxNbG3XbEd2XodZQ_XQIpQ" name="closedList" type="_RuhOKHXbEd2XodZQ_XQIpQ" association="_bxNbGnXbEd2XodZQ_XQIpQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_bxNbHHXbEd2XodZQ_XQIpQ" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_bxNbHXXbEd2XodZQ_XQIpQ" value="1"/>
+ </ownedEnd>
+ <ownedEnd xmi:id="_bxNbHnXbEd2XodZQ_XQIpQ" name="items" type="_Bq1oyHXTEd2XodZQ_XQIpQ" isOrdered="true" aggregation="shared" association="_bxNbGnXbEd2XodZQ_XQIpQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_bxNbH3XbEd2XodZQ_XQIpQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_bxNbIHXbEd2XodZQ_XQIpQ"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_Hn2DqHXcEd2XodZQ_XQIpQ" name="Association6" memberEnd="_Hn2DqXXcEd2XodZQ_XQIpQ _Hn2DrHXcEd2XodZQ_XQIpQ" navigableOwnedEnd="_Hn2DrHXcEd2XodZQ_XQIpQ">
+ <ownedEnd xmi:id="_Hn2DqXXcEd2XodZQ_XQIpQ" name="list" type="_cKqgGHXfEd2XodZQ_XQIpQ" isUnique="false" association="_Hn2DqHXcEd2XodZQ_XQIpQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Hn2DqnXcEd2XodZQ_XQIpQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Hn2Dq3XcEd2XodZQ_XQIpQ"/>
+ </ownedEnd>
+ <ownedEnd xmi:id="_Hn2DrHXcEd2XodZQ_XQIpQ" name="choice" type="_Bq1oyHXTEd2XodZQ_XQIpQ" isUnique="false" aggregation="shared" association="_Hn2DqHXcEd2XodZQ_XQIpQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Hn2DrXXcEd2XodZQ_XQIpQ" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Hn2DrnXcEd2XodZQ_XQIpQ"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_XCS_eHXcEd2XodZQ_XQIpQ" name="Association7" memberEnd="_XCS_eXXcEd2XodZQ_XQIpQ _XCS_fHXcEd2XodZQ_XQIpQ" navigableOwnedEnd="_XCS_fHXcEd2XodZQ_XQIpQ">
+ <ownedEnd xmi:id="_XCS_eXXcEd2XodZQ_XQIpQ" name="list" type="_9F6dWHXYEd2XodZQ_XQIpQ" isUnique="false" association="_XCS_eHXcEd2XodZQ_XQIpQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_XCS_enXcEd2XodZQ_XQIpQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_XCS_e3XcEd2XodZQ_XQIpQ"/>
+ </ownedEnd>
+ <ownedEnd xmi:id="_XCS_fHXcEd2XodZQ_XQIpQ" name="choices" type="_Bq1oyHXTEd2XodZQ_XQIpQ" isUnique="false" aggregation="shared" association="_XCS_eHXcEd2XodZQ_XQIpQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_XCS_fXXcEd2XodZQ_XQIpQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_XCS_fnXcEd2XodZQ_XQIpQ"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_cKqgGHXfEd2XodZQ_XQIpQ" name="SimpleChoiceClosedListAttribute">
+ <generalization xmi:id="_kkAJk3XfEd2XodZQ_XQIpQ" general="_mOq5eHXQEd2gat_LwJwOew"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Enumeration" xmi:id="_OoJh0HXVEd2XodZQ_XQIpQ" name="AttributeType">
+ <ownedLiteral xmi:id="_OTJI4nXaEd2XodZQ_XQIpQ" name="SIMPLE_STRING"/>
+ <ownedLiteral xmi:id="_QeeYAHXaEd2XodZQ_XQIpQ" name="TEXT"/>
+ <ownedLiteral xmi:id="_TT9-cnXaEd2XodZQ_XQIpQ" name="MULTIMEDIA"/>
+ <ownedLiteral xmi:id="_UnjtQnXaEd2XodZQ_XQIpQ" name="FLOAT"/>
+ <ownedLiteral xmi:id="_XHc3InXaEd2XodZQ_XQIpQ" name="INTEGER"/>
+ <ownedLiteral xmi:id="_e5J44nXaEd2XodZQ_XQIpQ" name="XHTML"/>
+ <ownedLiteral xmi:id="_fmTSwnXaEd2XodZQ_XQIpQ" name="SIMPLE_CHOICE_CLOSED_LIST"/>
+ <ownedLiteral xmi:id="_hPzAInXaEd2XodZQ_XQIpQ" name="MULTIPLE_CHOICE_CLOSED_LIST"/>
+ <ownedLiteral xmi:id="_QFHfYH2GEd2PvufzAfDQGg" name="DATE"/>
+ <ownedLiteral xmi:id="_6n6QQD-_Ed6_O_u-D-Y8sg" name="CONTENT_DEF"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_qIx38HtJEd2br5ngUa3Ghw" name="DateAttribute">
+ <generalization xmi:id="_0BkiA3tJEd2br5ngUa3Ghw" general="_O3Kc-HXPEd2gat_LwJwOew"/>
+ <ownedAttribute xmi:id="_rnLvoHtJEd2br5ngUa3Ghw" name="value">
+ <type xmi:type="uml:DataType" href="pathmap://ACCELEO_PROFILES/Acceleo.Business.profile.uml#_unIxYASfEd2Qys9YSCxJaQ"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_8wC-AKGpEd2ENuCUfYNU7A" name="SetOfContentsEntity">
+ <ownedAttribute xmi:id="_JTYbYKGtEd2ENuCUfYNU7A" name="name">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_K021MKGtEd2ENuCUfYNU7A" name="description">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_WoIrcKaOEd2G__lOTDfUPw" name="containedContentsCount">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Integer"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_Z3T9OKGsEd2ENuCUfYNU7A" name="Association8" memberEnd="_Z3T9OaGsEd2ENuCUfYNU7A _Z3T9PKGsEd2ENuCUfYNU7A" navigableOwnedEnd="_Z3T9PKGsEd2ENuCUfYNU7A">
+ <ownedEnd xmi:id="_Z3T9OaGsEd2ENuCUfYNU7A" name="" type="_8wC-AKGpEd2ENuCUfYNU7A" isUnique="false" association="_Z3T9OKGsEd2ENuCUfYNU7A">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Z3T9OqGsEd2ENuCUfYNU7A" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Z3T9O6GsEd2ENuCUfYNU7A"/>
+ </ownedEnd>
+ <ownedEnd xmi:id="_Z3T9PKGsEd2ENuCUfYNU7A" name="contents" type="_NcHbSHXPEd2gat_LwJwOew" association="_Z3T9OKGsEd2ENuCUfYNU7A">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Z3T9PaGsEd2ENuCUfYNU7A" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Z3T9PqGsEd2ENuCUfYNU7A"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_YRqcafbPEd2So46ZaKFSQw" name="Association9" memberEnd="_YRqcavbPEd2So46ZaKFSQw _YRqcbfbPEd2So46ZaKFSQw" navigableOwnedEnd="_YRqcbfbPEd2So46ZaKFSQw">
+ <ownedEnd xmi:id="_YRqcavbPEd2So46ZaKFSQw" name="source" type="_--aR4HTZEd20yqJGyRKhKA" association="_YRqcafbPEd2So46ZaKFSQw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_YRqca_bPEd2So46ZaKFSQw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_YRqcbPbPEd2So46ZaKFSQw" value="1"/>
+ </ownedEnd>
+ <ownedEnd xmi:id="_YRqcbfbPEd2So46ZaKFSQw" name="target" association="_YRqcafbPEd2So46ZaKFSQw">
+ <type xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception-helper.uml#_Hb8X5PaMEd2-MYgc0GvAJw"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_YRqcbvbPEd2So46ZaKFSQw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_YRqcb_bPEd2So46ZaKFSQw" value="1"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_Yox76vbPEd2So46ZaKFSQw" name="Association10" memberEnd="_Yox76_bPEd2So46ZaKFSQw _Yox77vbPEd2So46ZaKFSQw" navigableOwnedEnd="_Yox77vbPEd2So46ZaKFSQw">
+ <ownedEnd xmi:id="_Yox76_bPEd2So46ZaKFSQw" name="source" type="_KYKiGHXPEd2gat_LwJwOew" association="_Yox76vbPEd2So46ZaKFSQw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Yox77PbPEd2So46ZaKFSQw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Yox77fbPEd2So46ZaKFSQw" value="1"/>
+ </ownedEnd>
+ <ownedEnd xmi:id="_Yox77vbPEd2So46ZaKFSQw" name="target" association="_Yox76vbPEd2So46ZaKFSQw">
+ <type xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception-helper.uml#_Hb8X5PaMEd2-MYgc0GvAJw"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Yox77_bPEd2So46ZaKFSQw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Yox78PbPEd2So46ZaKFSQw" value="1"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_ZFY_avbPEd2So46ZaKFSQw" name="Association11" memberEnd="_ZFY_a_bPEd2So46ZaKFSQw _ZFY_bvbPEd2So46ZaKFSQw" navigableOwnedEnd="_ZFY_bvbPEd2So46ZaKFSQw">
+ <ownedEnd xmi:id="_ZFY_a_bPEd2So46ZaKFSQw" name="source" type="_O3Kc-HXPEd2gat_LwJwOew" association="_ZFY_avbPEd2So46ZaKFSQw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_ZFY_bPbPEd2So46ZaKFSQw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_ZFY_bfbPEd2So46ZaKFSQw" value="1"/>
+ </ownedEnd>
+ <ownedEnd xmi:id="_ZFY_bvbPEd2So46ZaKFSQw" name="target" association="_ZFY_avbPEd2So46ZaKFSQw">
+ <type xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception-helper.uml#_Hb8X5PaMEd2-MYgc0GvAJw"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_ZFY_b_bPEd2So46ZaKFSQw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_ZFY_cPbPEd2So46ZaKFSQw" value="1"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_ZeZ8WvbPEd2So46ZaKFSQw" name="Association12" memberEnd="_ZeZ8W_bPEd2So46ZaKFSQw _ZeZ8XvbPEd2So46ZaKFSQw" navigableOwnedEnd="_ZeZ8XvbPEd2So46ZaKFSQw">
+ <ownedEnd xmi:id="_ZeZ8W_bPEd2So46ZaKFSQw" name="source" type="_NcHbSHXPEd2gat_LwJwOew" association="_ZeZ8WvbPEd2So46ZaKFSQw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_ZeZ8XPbPEd2So46ZaKFSQw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_ZeZ8XfbPEd2So46ZaKFSQw" value="1"/>
+ </ownedEnd>
+ <ownedEnd xmi:id="_ZeZ8XvbPEd2So46ZaKFSQw" name="target" association="_ZeZ8WvbPEd2So46ZaKFSQw">
+ <type xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception-helper.uml#_Hb8X5PaMEd2-MYgc0GvAJw"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_ZeZ8X_bPEd2So46ZaKFSQw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_ZeZ8YPbPEd2So46ZaKFSQw" value="1"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_bMCi2vbPEd2So46ZaKFSQw" name="Association15" memberEnd="_bMCi2_bPEd2So46ZaKFSQw _bMCi3vbPEd2So46ZaKFSQw" navigableOwnedEnd="_bMCi3vbPEd2So46ZaKFSQw">
+ <ownedEnd xmi:id="_bMCi2_bPEd2So46ZaKFSQw" name="source" type="_--aR4HTZEd20yqJGyRKhKA" association="_bMCi2vbPEd2So46ZaKFSQw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_bMCi3PbPEd2So46ZaKFSQw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_bMCi3fbPEd2So46ZaKFSQw" value="1"/>
+ </ownedEnd>
+ <ownedEnd xmi:id="_bMCi3vbPEd2So46ZaKFSQw" name="target" association="_bMCi2vbPEd2So46ZaKFSQw">
+ <type xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception-helper.uml#_Hb8X4faMEd2-MYgc0GvAJw"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_bMCi3_bPEd2So46ZaKFSQw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_bMCi4PbPEd2So46ZaKFSQw" value="1"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_bpabWvbPEd2So46ZaKFSQw" name="Association16" memberEnd="_bpabW_bPEd2So46ZaKFSQw _bpabXvbPEd2So46ZaKFSQw" navigableOwnedEnd="_bpabXvbPEd2So46ZaKFSQw">
+ <ownedEnd xmi:id="_bpabW_bPEd2So46ZaKFSQw" name="source" type="_NcHbSHXPEd2gat_LwJwOew" association="_bpabWvbPEd2So46ZaKFSQw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_bpabXPbPEd2So46ZaKFSQw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_bpabXfbPEd2So46ZaKFSQw" value="1"/>
+ </ownedEnd>
+ <ownedEnd xmi:id="_bpabXvbPEd2So46ZaKFSQw" name="target" association="_bpabWvbPEd2So46ZaKFSQw">
+ <type xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception-helper.uml#_Hb8X4faMEd2-MYgc0GvAJw"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_bpabX_bPEd2So46ZaKFSQw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_bpabYPbPEd2So46ZaKFSQw" value="1"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_cIsYWvbPEd2So46ZaKFSQw" name="Association17" memberEnd="_cIsYW_bPEd2So46ZaKFSQw _cIsYXvbPEd2So46ZaKFSQw" navigableOwnedEnd="_cIsYXvbPEd2So46ZaKFSQw">
+ <ownedEnd xmi:id="_cIsYW_bPEd2So46ZaKFSQw" name="source" type="_8wC-AKGpEd2ENuCUfYNU7A" association="_cIsYWvbPEd2So46ZaKFSQw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_cIsYXPbPEd2So46ZaKFSQw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_cIsYXfbPEd2So46ZaKFSQw" value="1"/>
+ </ownedEnd>
+ <ownedEnd xmi:id="_cIsYXvbPEd2So46ZaKFSQw" name="target" association="_cIsYWvbPEd2So46ZaKFSQw">
+ <type xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception-helper.uml#_Hb8X4faMEd2-MYgc0GvAJw"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_cIsYX_bPEd2So46ZaKFSQw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_cIsYYPbPEd2So46ZaKFSQw" value="1"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_CQag2vbREd2So46ZaKFSQw" name="Association14" memberEnd="_CQag2_bREd2So46ZaKFSQw _CQag3vbREd2So46ZaKFSQw" navigableOwnedEnd="_CQag3vbREd2So46ZaKFSQw">
+ <ownedEnd xmi:id="_CQag2_bREd2So46ZaKFSQw" name="source" type="_8wC-AKGpEd2ENuCUfYNU7A" association="_CQag2vbREd2So46ZaKFSQw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_CQag3PbREd2So46ZaKFSQw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_CQag3fbREd2So46ZaKFSQw" value="1"/>
+ </ownedEnd>
+ <ownedEnd xmi:id="_CQag3vbREd2So46ZaKFSQw" name="target" association="_CQag2vbREd2So46ZaKFSQw">
+ <type xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception-helper.uml#_Hb8X5PaMEd2-MYgc0GvAJw"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_CQag3_bREd2So46ZaKFSQw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_CQag4PbREd2So46ZaKFSQw" value="1"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_wFp6GPhQEd2Hu-BP-VasxQ" name="TempNodesIds">
+ <ownedAttribute xmi:id="_zGB60PhQEd2Hu-BP-VasxQ" name="technicalId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_1UogYvhQEd2Hu-BP-VasxQ" name="externalId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_79nmmPhQEd2Hu-BP-VasxQ" name="TempNodeContents">
+ <ownedAttribute xmi:id="_CUtrgvhREd2Hu-BP-VasxQ" name="technicalNodeId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_GC1jEvhREd2Hu-BP-VasxQ" name="technicalContentId" type="_ddB9cIViEd2N0bQZBk24XA" isUnique="false"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_J6nwKfhVEd2du7_XCS7v_A" name="Association13" memberEnd="_J6nwKvhVEd2du7_XCS7v_A _J6nwLfhVEd2du7_XCS7v_A" navigableOwnedEnd="_J6nwLfhVEd2du7_XCS7v_A">
+ <ownedEnd xmi:id="_J6nwKvhVEd2du7_XCS7v_A" name="source" type="_Bq1oyHXTEd2XodZQ_XQIpQ" association="_J6nwKfhVEd2du7_XCS7v_A">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_J6nwK_hVEd2du7_XCS7v_A" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_J6nwLPhVEd2du7_XCS7v_A" value="1"/>
+ </ownedEnd>
+ <ownedEnd xmi:id="_J6nwLfhVEd2du7_XCS7v_A" name="target" association="_J6nwKfhVEd2du7_XCS7v_A">
+ <type xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception-helper.uml#_Hb8X5PaMEd2-MYgc0GvAJw"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_J6nwLvhVEd2du7_XCS7v_A" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_J6nwL_hVEd2du7_XCS7v_A" value="1"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_g3AcsP9CEd2Qm_QM6AOnsQ" name="ReferentialEntity">
+ <ownedAttribute xmi:id="_s3QigP9CEd2Qm_QM6AOnsQ" name="source">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_uL5aMv9CEd2Qm_QM6AOnsQ" name="date">
+ <type xmi:type="uml:DataType" href="pathmap://ACCELEO_PROFILES/Acceleo.Business.profile.uml#_unIxYASfEd2Qys9YSCxJaQ"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_uvZI0v9CEd2Qm_QM6AOnsQ" name="nbProducts">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Integer"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_r7qc-P9CEd2Qm_QM6AOnsQ" name="importedDataToNomenclatureEntity" memberEnd="_r7qc-f9CEd2Qm_QM6AOnsQ _r7qc_P9CEd2Qm_QM6AOnsQ" navigableOwnedEnd="_r7qc_P9CEd2Qm_QM6AOnsQ">
+ <ownedEnd xmi:id="_r7qc-f9CEd2Qm_QM6AOnsQ" name="referential" type="_g3AcsP9CEd2Qm_QM6AOnsQ" association="_r7qc-P9CEd2Qm_QM6AOnsQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_r7qc-v9CEd2Qm_QM6AOnsQ" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_r7qc-_9CEd2Qm_QM6AOnsQ" value="1"/>
+ </ownedEnd>
+ <ownedEnd xmi:id="_r7qc_P9CEd2Qm_QM6AOnsQ" name="nomenclature" association="_r7qc-P9CEd2Qm_QM6AOnsQ">
+ <type xmi:type="uml:Class" href="org.sharengo.utils.container.nomenclature/src/main/uml/conception.uml#_2IP1oKUBEd2nLbvCg8hnUg"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_r7qc_f9CEd2Qm_QM6AOnsQ" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_r7qc_v9CEd2Qm_QM6AOnsQ" value="1"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_t3SJkA4_Ed6KQuvMUCD2yg" name="facet">
+ <ownedComment xmi:id="_kjUToD4-Ed6us98SLDIclA" annotatedElement="__T4G0A5AEd6KQuvMUCD2yg">
+ <body>Hierarchical topic is not here, because generator is not available</body>
+ </ownedComment>
+ <packagedElement xmi:type="uml:Class" xmi:id="_GyHPcA5AEd6KQuvMUCD2yg" name="FacetView">
+ <ownedAttribute xmi:id="_NHljwA5AEd6KQuvMUCD2yg" name="name" visibility="protected">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_Vpjk0A5AEd6KQuvMUCD2yg" name="FacetViewChain"/>
+ <packagedElement xmi:type="uml:Association" xmi:id="_fqh6gg5AEd6KQuvMUCD2yg" name="Association1" memberEnd="_fqh6gw5AEd6KQuvMUCD2yg _fqh6hg5AEd6KQuvMUCD2yg" navigableOwnedEnd="_fqh6hg5AEd6KQuvMUCD2yg">
+ <ownedEnd xmi:id="_fqh6gw5AEd6KQuvMUCD2yg" name="view" type="_GyHPcA5AEd6KQuvMUCD2yg" association="_fqh6gg5AEd6KQuvMUCD2yg">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_fqh6hA5AEd6KQuvMUCD2yg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_fqh6hQ5AEd6KQuvMUCD2yg" value="1"/>
+ </ownedEnd>
+ <ownedEnd xmi:id="_fqh6hg5AEd6KQuvMUCD2yg" name="chains" type="_Vpjk0A5AEd6KQuvMUCD2yg" isOrdered="true" isUnique="false" association="_fqh6gg5AEd6KQuvMUCD2yg">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_fqh6hw5AEd6KQuvMUCD2yg" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_fqh6iA5AEd6KQuvMUCD2yg"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_l5XbUA5AEd6KQuvMUCD2yg" name="Facet">
+ <ownedAttribute xmi:id="_oFvMQg5AEd6KQuvMUCD2yg" name="name" visibility="protected">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_w3q7-g5AEd6KQuvMUCD2yg" name="Association2" memberEnd="_w3q7-w5AEd6KQuvMUCD2yg _w3q7_g5AEd6KQuvMUCD2yg" navigableOwnedEnd="_w3q7_g5AEd6KQuvMUCD2yg">
+ <ownedEnd xmi:id="_w3q7-w5AEd6KQuvMUCD2yg" name="chain" type="_Vpjk0A5AEd6KQuvMUCD2yg" isUnique="false" association="_w3q7-g5AEd6KQuvMUCD2yg">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_w3q7_A5AEd6KQuvMUCD2yg" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_w3q7_Q5AEd6KQuvMUCD2yg"/>
+ </ownedEnd>
+ <ownedEnd xmi:id="_w3q7_g5AEd6KQuvMUCD2yg" name="facets" visibility="public" type="_l5XbUA5AEd6KQuvMUCD2yg" isOrdered="true" isUnique="false" association="_w3q7-g5AEd6KQuvMUCD2yg">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_w3q7_w5AEd6KQuvMUCD2yg" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_w3q8AA5AEd6KQuvMUCD2yg"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="__T4G0A5AEd6KQuvMUCD2yg" name="Topic">
+ <ownedAttribute xmi:id="_CDpfwg5BEd6KQuvMUCD2yg" name="value" visibility="protected">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_G4AHYC2BEd6R-vHwJRLroA" name="request" visibility="protected">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_Hax8gA5BEd6KQuvMUCD2yg" name="Association3" memberEnd="_Hax8gQ5BEd6KQuvMUCD2yg _Hax8hA5BEd6KQuvMUCD2yg" navigableOwnedEnd="_Hax8gQ5BEd6KQuvMUCD2yg _Hax8hA5BEd6KQuvMUCD2yg">
+ <ownedEnd xmi:id="_Hax8gQ5BEd6KQuvMUCD2yg" name="facet" visibility="public" type="_l5XbUA5AEd6KQuvMUCD2yg" isUnique="false" association="_Hax8gA5BEd6KQuvMUCD2yg">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Hax8gg5BEd6KQuvMUCD2yg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Hax8gw5BEd6KQuvMUCD2yg"/>
+ </ownedEnd>
+ <ownedEnd xmi:id="_Hax8hA5BEd6KQuvMUCD2yg" name="topics" type="__T4G0A5AEd6KQuvMUCD2yg" isOrdered="true" isUnique="false" aggregation="shared" association="_Hax8gA5BEd6KQuvMUCD2yg">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Hax8hQ5BEd6KQuvMUCD2yg" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Hax8hg5BEd6KQuvMUCD2yg"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_mM_sgA5BEd6KQuvMUCD2yg" name="Association4" memberEnd="_mM_sgQ5BEd6KQuvMUCD2yg _mM_shA5BEd6KQuvMUCD2yg" navigableOwnedEnd="_mM_shA5BEd6KQuvMUCD2yg">
+ <ownedEnd xmi:id="_mM_sgQ5BEd6KQuvMUCD2yg" name="topic" type="__T4G0A5AEd6KQuvMUCD2yg" isUnique="false" association="_mM_sgA5BEd6KQuvMUCD2yg">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_mM_sgg5BEd6KQuvMUCD2yg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_mM_sgw5BEd6KQuvMUCD2yg" value="1"/>
+ </ownedEnd>
+ <ownedEnd xmi:id="_mM_shA5BEd6KQuvMUCD2yg" name="contents" type="_NcHbSHXPEd2gat_LwJwOew" isUnique="false" association="_mM_sgA5BEd6KQuvMUCD2yg">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_mM_shQ5BEd6KQuvMUCD2yg" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_mM_shg5BEd6KQuvMUCD2yg"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_xntcUA5BEd6KQuvMUCD2yg" name="TopicRule">
+ <ownedAttribute xmi:id="_1GU4Qg5BEd6KQuvMUCD2yg" name="request" visibility="protected">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_2bwJkkuLEd6vPPc7KDt3WQ" name="number" visibility="protected">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_dSphsEuMEd6vPPc7KDt3WQ" name="lastUser" visibility="protected">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_xHoIEkuMEd6vPPc7KDt3WQ" name="creationDate" visibility="protected">
+ <type xmi:type="uml:DataType" href="pathmap://ACCELEO_PROFILES/Acceleo.Business.profile.uml#_unIxYASfEd2Qys9YSCxJaQ"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_NEgpsEuNEd6vPPc7KDt3WQ" name="lastUsedDate" visibility="protected">
+ <type xmi:type="uml:DataType" href="pathmap://ACCELEO_PROFILES/Acceleo.Business.profile.uml#_unIxYASfEd2Qys9YSCxJaQ"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_HWc9oE6hEd6NiYsm9_1_qQ" name="lastModificationDate" visibility="protected">
+ <type xmi:type="uml:DataType" href="pathmap://ACCELEO_PROFILES/Acceleo.Business.profile.uml#_unIxYASfEd2Qys9YSCxJaQ"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_6WqJeg5BEd6KQuvMUCD2yg" name="Association5" memberEnd="_6WqJew5BEd6KQuvMUCD2yg _6WqJfg5BEd6KQuvMUCD2yg" navigableOwnedEnd="_6WqJew5BEd6KQuvMUCD2yg">
+ <ownedEnd xmi:id="_6WqJew5BEd6KQuvMUCD2yg" name="rule" visibility="public" type="_xntcUA5BEd6KQuvMUCD2yg" isUnique="false" association="_6WqJeg5BEd6KQuvMUCD2yg">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_6WqJfA5BEd6KQuvMUCD2yg" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_6WqJfQ5BEd6KQuvMUCD2yg"/>
+ </ownedEnd>
+ <ownedEnd xmi:id="_6WqJfg5BEd6KQuvMUCD2yg" name="topics" type="__T4G0A5AEd6KQuvMUCD2yg" isUnique="false" association="_6WqJeg5BEd6KQuvMUCD2yg">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_6WqJfw5BEd6KQuvMUCD2yg" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_6WqJgA5BEd6KQuvMUCD2yg"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_IE8AUCsrEd6tjYAzTLw2Cw" name="Association6" memberEnd="_IE8AUSsrEd6tjYAzTLw2Cw _IE8AVCsrEd6tjYAzTLw2Cw" navigableOwnedEnd="_IE8AVCsrEd6tjYAzTLw2Cw">
+ <ownedEnd xmi:id="_IE8AUSsrEd6tjYAzTLw2Cw" name="facet" type="_l5XbUA5AEd6KQuvMUCD2yg" association="_IE8AUCsrEd6tjYAzTLw2Cw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_IE8AUisrEd6tjYAzTLw2Cw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_IE8AUysrEd6tjYAzTLw2Cw"/>
+ </ownedEnd>
+ <ownedEnd xmi:id="_IE8AVCsrEd6tjYAzTLw2Cw" name="content" type="_NcHbSHXPEd2gat_LwJwOew" association="_IE8AUCsrEd6tjYAzTLw2Cw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_IE8AVSsrEd6tjYAzTLw2Cw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_IE8AVisrEd6tjYAzTLw2Cw" value="1"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_0uC8yCstEd6tjYAzTLw2Cw" name="Association7" memberEnd="_0uC8ySstEd6tjYAzTLw2Cw _0uC8zCstEd6tjYAzTLw2Cw" navigableOwnedEnd="_0uC8zCstEd6tjYAzTLw2Cw">
+ <ownedEnd xmi:id="_0uC8ySstEd6tjYAzTLw2Cw" name="view" type="_GyHPcA5AEd6KQuvMUCD2yg" isUnique="false" association="_0uC8yCstEd6tjYAzTLw2Cw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_0uC8yistEd6tjYAzTLw2Cw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_0uC8yystEd6tjYAzTLw2Cw"/>
+ </ownedEnd>
+ <ownedEnd xmi:id="_0uC8zCstEd6tjYAzTLw2Cw" name="topic" type="__T4G0A5AEd6KQuvMUCD2yg" association="_0uC8yCstEd6tjYAzTLw2Cw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_0uC8zSstEd6tjYAzTLw2Cw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_0uC8zistEd6tjYAzTLw2Cw"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_oVdEsC14Ed6R-vHwJRLroA" name="Association8" memberEnd="_oVdEsS14Ed6R-vHwJRLroA _oVdEtC14Ed6R-vHwJRLroA" navigableOwnedEnd="_oVdEtC14Ed6R-vHwJRLroA">
+ <ownedEnd xmi:id="_oVdEsS14Ed6R-vHwJRLroA" name="facet" type="_l5XbUA5AEd6KQuvMUCD2yg" association="_oVdEsC14Ed6R-vHwJRLroA">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_oVdEsi14Ed6R-vHwJRLroA" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_oVdEsy14Ed6R-vHwJRLroA"/>
+ </ownedEnd>
+ <ownedEnd xmi:id="_oVdEtC14Ed6R-vHwJRLroA" name="segmentation" type="_KYKiGHXPEd2gat_LwJwOew" association="_oVdEsC14Ed6R-vHwJRLroA">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_oVdEtS14Ed6R-vHwJRLroA" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_oVdEti14Ed6R-vHwJRLroA" value="1"/>
+ </ownedEnd>
+ </packagedElement>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_CjQXeg5CEd6KQuvMUCD2yg" name="Association19" memberEnd="_CjQXew5CEd6KQuvMUCD2yg _CjQXfg5CEd6KQuvMUCD2yg" navigableOwnedEnd="_CjQXfg5CEd6KQuvMUCD2yg">
+ <ownedEnd xmi:id="_CjQXew5CEd6KQuvMUCD2yg" name="contents" type="_NcHbSHXPEd2gat_LwJwOew" isUnique="false" association="_CjQXeg5CEd6KQuvMUCD2yg">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_CjQXfA5CEd6KQuvMUCD2yg" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_CjQXfQ5CEd6KQuvMUCD2yg"/>
+ </ownedEnd>
+ <ownedEnd xmi:id="_CjQXfg5CEd6KQuvMUCD2yg" name="topics" type="__T4G0A5AEd6KQuvMUCD2yg" isUnique="false" association="_CjQXeg5CEd6KQuvMUCD2yg">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_CjQXfw5CEd6KQuvMUCD2yg" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_CjQXgA5CEd6KQuvMUCD2yg"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_bj2s4D_AEd6_O_u-D-Y8sg" name="ContentDefAttribute">
+ <generalization xmi:id="_kbNvID_AEd6_O_u-D-Y8sg" general="_O3Kc-HXPEd2gat_LwJwOew"/>
+ <ownedAttribute xmi:id="_fa86QD_AEd6_O_u-D-Y8sg" name="value" type="_NcHbSHXPEd2gat_LwJwOew"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_wmvQ0D_AEd6_O_u-D-Y8sg" name="Association18" memberEnd="_wmvQ0T_AEd6_O_u-D-Y8sg _wmv34T_AEd6_O_u-D-Y8sg" navigableOwnedEnd="_wmvQ0T_AEd6_O_u-D-Y8sg">
+ <ownedEnd xmi:id="_wmvQ0T_AEd6_O_u-D-Y8sg" name="definition" type="_NcHbSHXPEd2gat_LwJwOew" isUnique="false" association="_wmvQ0D_AEd6_O_u-D-Y8sg">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_wmvQ0j_AEd6_O_u-D-Y8sg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_wmv34D_AEd6_O_u-D-Y8sg"/>
+ </ownedEnd>
+ <ownedEnd xmi:id="_wmv34T_AEd6_O_u-D-Y8sg" name="" type="_--aR4HTZEd20yqJGyRKhKA" isUnique="false" association="_wmvQ0D_AEd6_O_u-D-Y8sg">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_wmv34j_AEd6_O_u-D-Y8sg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_wmv34z_AEd6_O_u-D-Y8sg" value="1"/>
+ </ownedEnd>
+ </packagedElement>
+ <profileApplication xmi:id="_NQyVgPWdEdyp25RO5nzQ4A">
+ <eAnnotations xmi:id="_NQy8kPWdEdyp25RO5nzQ4A" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="pathmap://ACCELEO_PROFILES/Acceleo.Business.profile.uml#_81g14fWcEdyuYMHNZCqWBQ"/>
+ </eAnnotations>
+ <appliedProfile href="pathmap://ACCELEO_PROFILES/Acceleo.Business.profile.uml#_JX9fQPWcEdyuYMHNZCqWBQ"/>
+ </profileApplication>
+ </packagedElement>
+ <packagedElement xmi:type="uml:DataType" xmi:id="_Uw46WHXYEd2XodZQ_XQIpQ" name="byte[]"/>
+ <packagedElement xmi:type="uml:DataType" xmi:id="_70rUaHXXEd2XodZQ_XQIpQ" name="Double"/>
+ <packagedElement xmi:type="uml:DataType" xmi:id="_SFAOkHWmEd2gat_LwJwOew" name="List<ContentDefHeader>"/>
+ <packagedElement xmi:type="uml:DataType" xmi:id="_ZytvEHhBEd2X9uNQyI_qHw" name="List<AttributeDef>"/>
+ <packagedElement xmi:type="uml:DataType" xmi:id="_LwOsgHjVEd2XX6MpUtjnfg" name="PagedResult<ContentEntity>"/>
+ <packagedElement xmi:type="uml:DataType" xmi:id="_6knTGHjqEd2MH8DN-NMNrA" name="List<AttributeDefinition>"/>
+ <packagedElement xmi:type="uml:DataType" xmi:id="_IB7mQHkLEd2Atp1vvmnWrA" name="List<Item>"/>
+ <packagedElement xmi:type="uml:DataType" xmi:id="_qGleoHqQEd2L-b3UA1-28A" name="Map<String, Serializable>"/>
+ <packagedElement xmi:type="uml:DataType" xmi:id="_o1-dkIVgEd2N0bQZBk24XA" name="String[]"/>
+ <packagedElement xmi:type="uml:DataType" xmi:id="_ddB9cIViEd2N0bQZBk24XA" name="List<String>"/>
+ <packagedElement xmi:type="uml:DataType" xmi:id="_fNJKwIYTEd2FDsNjNrtp7Q" name="List<ContentEntity>"/>
+ <packagedElement xmi:type="uml:DataType" xmi:id="_8ZIyEJOAEd2PpNHrflS_6A" name="List<Attribute>"/>
+ <packagedElement xmi:type="uml:DataType" xmi:id="_G8ZTMJuJEd2hhejVV_1tQg" name="PagedResult<ContentHeader>"/>
+ <packagedElement xmi:type="uml:DataType" xmi:id="_gu1EEKGrEd2ENuCUfYNU7A" name="PagedResult<SetOfContentsEntity>"/>
+ <packagedElement xmi:type="uml:DataType" xmi:id="_wjKoGKQzEd2GAYp1IpBaGw" name="PagedResult<SetOfContents>"/>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_WH5fYKTREd2FhPzHNqBWcg" name="Dependency1" supplier="_F-eccKGqEd2ENuCUfYNU7A" client="_s08WwKGqEd2ENuCUfYNU7A"/>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_WQgo06TREd2FhPzHNqBWcg" name="Dependency2" supplier="_8wC-AKGpEd2ENuCUfYNU7A" client="_s08WwKGqEd2ENuCUfYNU7A"/>
+ <packagedElement xmi:type="uml:DataType" xmi:id="_nOLcQKXAEd2BUJWkFP_TZQ" name="List<Content>"/>
+ <packagedElement xmi:type="uml:DataType" xmi:id="_XzNfcLTcEd252vzLZ9nqrQ" name="PagedResult<ContentDefinition>"/>
+ <packagedElement xmi:type="uml:DataType" xmi:id="_n5F84LTnEd252vzLZ9nqrQ" name="PagedResult<ContentDefHeader>"/>
+ <packagedElement xmi:type="uml:DataType" xmi:id="_BdoPcN5bEd2Q5-9ABN1uxA" name="OutputStream"/>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_fT8r0-C0Ed2_mrdRrPOl2g" name="Dependency3" supplier="_3ac7wHTaEd20yqJGyRKhKA"/>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_sIzIBOFcEd2Q5-9ABN1uxA" name="Dependency4" supplier="_iO1pkHi_Ed2oZoPbWJIMHg"/>
+ <packagedElement xmi:type="uml:DataType" xmi:id="_1lQ10OI1Ed2Ft61T9l4BYg" name="Iterable<ContentEntity>"/>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_B2IVE-I3Ed2Ft61T9l4BYg" name="Dependency5" supplier="_dSGT8KGqEd2ENuCUfYNU7A"/>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_KJYksOI3Ed2Ft61T9l4BYg" name="Dependency6" supplier="_3ac7wHTaEd20yqJGyRKhKA"/>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_WGw_4-I7Ed2T1_-09lWd5Q" name="Dependency7"/>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_ndJqY-LfEd2Ft61T9l4BYg" name="Dependency8" client="_YAvggLo_Ed29K_Ps1iXPuQ"/>
+ <packagedElement xmi:type="uml:DataType" xmi:id="_T4D3QOPpEd2zfYSdqx49HA" name="Exception"/>
+ <packagedElement xmi:type="uml:DataType" xmi:id="_j-fvUOPpEd2zfYSdqx49HA" name="HttpServletRequest"/>
+ <packagedElement xmi:type="uml:DataType" xmi:id="_me7rwOPpEd2zfYSdqx49HA" name="HttpServletResponse"/>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_QdPrU-PrEd2zfYSdqx49HA" name="Dependency9"/>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="__DnmU-YJEd2J1PltzDe2qg" name="Dependency10" supplier="_yvPJ2HTaEd20yqJGyRKhKA"/>
+ <packagedElement xmi:type="uml:DataType" xmi:id="_VRMbwOYKEd2J1PltzDe2qg" name="InputStream"/>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_G83CYOiaEd25AsNl_TBRDQ" name="Dependency11" supplier="_Ugb_4Hi_Ed2oZoPbWJIMHg" client="_dMNk0OhrEd25AsNl_TBRDQ"/>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_MvnEI-iaEd25AsNl_TBRDQ" name="Dependency12" supplier="_yvPJ2HTaEd20yqJGyRKhKA" client="_dMNk0OhrEd25AsNl_TBRDQ"/>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_Z76GVOiaEd25AsNl_TBRDQ" name="Dependency13" supplier="_s08WwKGqEd2ENuCUfYNU7A" client="_dMNk0OhrEd25AsNl_TBRDQ"/>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_h1gf0-iaEd25AsNl_TBRDQ" name="Dependency14" supplier="_YAvggLo_Ed29K_Ps1iXPuQ" client="_dMNk0OhrEd25AsNl_TBRDQ"/>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_Jy7_w-krEd2VcLeORko10g" name="Dependency15" supplier="_Ugb_4Hi_Ed2oZoPbWJIMHg" client="_x1MNMOkqEd2VcLeORko10g"/>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_yWuXg-krEd2VcLeORko10g" name="Dependency16" client="_x1MNMOkqEd2VcLeORko10g">
+ <supplier xmi:type="uml:Class" href="conception-helper.uml#_SoCyYNcbEd2J-62N77cHzg"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_y3MAQ-krEd2VcLeORko10g" name="Dependency17" client="_x1MNMOkqEd2VcLeORko10g"/>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_6iGEM-kwEd2w6L86tbByuw" name="Dependency18" client="_x1MNMOkqEd2VcLeORko10g">
+ <supplier xmi:type="uml:Class" href="cmsLink.uml#_9FUhAI7-Ed2TZJhzNZ91vg"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_O_lio-leEd2w6L86tbByuw" name="Dependency19" client="_yvPJ2HTaEd20yqJGyRKhKA">
+ <supplier xmi:type="uml:Class" href="cmsLink.uml#_9FUhAI7-Ed2TZJhzNZ91vg"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_PckZkOleEd2w6L86tbByuw" name="Dependency20" client="_Ugb_4Hi_Ed2oZoPbWJIMHg">
+ <supplier xmi:type="uml:Class" href="cmsLink.uml#_9FUhAI7-Ed2TZJhzNZ91vg"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_ugQAw-uSEd2nbcXqLzlhyA" name="Dependency21" client="_dMNk0OhrEd25AsNl_TBRDQ"/>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_e3MN8-uiEd2w6L86tbByuw" name="Dependency22" supplier="_zAlIsHggEd2Vxr2aiClL8g" client="_dMNk0OhrEd25AsNl_TBRDQ"/>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_yGzKsOvUEd2y9MAFkymhaQ" name="Dependency23" supplier="_iO1pkHi_Ed2oZoPbWJIMHg" client="_dMNk0OhrEd25AsNl_TBRDQ"/>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_0V7Us-vUEd2y9MAFkymhaQ" name="Dependency24" supplier="_3ac7wHTaEd20yqJGyRKhKA" client="_dMNk0OhrEd25AsNl_TBRDQ"/>
+ <packagedElement xmi:type="uml:DataType" xmi:id="_GDHoYO64Ed2f7NU7M_arnA" name="PagedResult<ContentLink>"/>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_FpAlo-7AEd2vc7ElAwQEXw" name="Dependency25" client="_dMNk0OhrEd25AsNl_TBRDQ">
+ <supplier xmi:type="uml:Class" href="cmsLink.uml#_uY4mEIr-Ed2zQqb9w4_QNQ"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_q0zzQ-7TEd2vc7ElAwQEXw" name="Dependency26" client="_dMNk0OhrEd25AsNl_TBRDQ">
+ <supplier xmi:type="uml:Class" href="cmsLink.uml#_9FUhAI7-Ed2TZJhzNZ91vg"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:DataType" xmi:id="_iy_1kPEbEd2U9JmEC6FyWg" name="List<LinkWithContentNames>"/>
+ <packagedElement xmi:type="uml:Package" xmi:id="_cj444vOVEd2JbqIoInRhNw" name="org.sharengo.cms.core.initialization">
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_ieuqNPOWEd2JbqIoInRhNw" name="Dependency1">
+ <supplier xmi:type="uml:Class" href="cmsLink.uml#_9FUhAI7-Ed2TZJhzNZ91vg"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="__IZq8BJDEd6o-Ots7TkB2A" name="StartupInitializer" clientDependency="_jH14UBJFEd6o-Ots7TkB2A">
+ <ownedOperation xmi:id="_HrvlABJEEd6o-Ots7TkB2A" name="onStartup">
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_c4VnwHXGEd2Ekv686xx4qA"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception-helper.uml#_j3qGYKEgEd2PM6_wGJR42Q"/>
+ </ownedOperation>
+ </packagedElement>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_TJXCtPOWEd2JbqIoInRhNw" name="Dependency31">
+ <client xmi:type="uml:Class" href="cmsLink.uml#_9FUhAI7-Ed2TZJhzNZ91vg"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_t_rloPQqEd2JbqIoInRhNw" name="org.sharengo.cms.core.aspects">
+ <packagedElement xmi:type="uml:Class" xmi:id="_t_rlofQqEd2JbqIoInRhNw" name="BeforeNodeDeleteAspect" clientDependency="_Qo3KtPQsEd2JbqIoInRhNw _gKAAg_QwEd22_7AHmZR45g _fT7bsPbDEd2HAbtEgyVO4g">
+ <interfaceRealization xmi:id="_fT7bsPbDEd2HAbtEgyVO4g" name="InterfaceRealization1" client="_t_rlofQqEd2JbqIoInRhNw">
+ <supplier xmi:type="uml:Interface" href="conception-helper.uml#_5MTPQPbAEd2HAbtEgyVO4g"/>
+ <contract href="conception-helper.uml#_5MTPQPbAEd2HAbtEgyVO4g"/>
+ </interfaceRealization>
+ <ownedOperation xmi:id="_t_rlo_QqEd2JbqIoInRhNw" name="onNodeDelete">
+ <ownedParameter xmi:id="_t_rlpPQqEd2JbqIoInRhNw" name="nodeId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_t_rlpfQqEd2JbqIoInRhNw" name="return" isOrdered="true" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_t_rlpvQqEd2JbqIoInRhNw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_t_rlp_QqEd2JbqIoInRhNw"/>
+ </ownedParameter>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_GfaEUHmfEd2HRLLd0I1WrA"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_KQqi-HjwEd2MH8DN-NMNrA"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_YNI5EHmZEd2HRLLd0I1WrA"/>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_t_rlqPQqEd2JbqIoInRhNw" name="BeforeLinkDeleteAspect" clientDependency="_NJVv0_QsEd2JbqIoInRhNw _Nddls_QsEd2JbqIoInRhNw _t_rluPQqEd2JbqIoInRhNw _feXxI_bDEd2HAbtEgyVO4g">
+ <interfaceRealization xmi:id="_feXxI_bDEd2HAbtEgyVO4g" name="InterfaceRealization1" client="_t_rlqPQqEd2JbqIoInRhNw">
+ <supplier xmi:type="uml:Interface" href="conception-helper.uml#_5MTPQPbAEd2HAbtEgyVO4g"/>
+ <contract href="conception-helper.uml#_5MTPQPbAEd2HAbtEgyVO4g"/>
+ </interfaceRealization>
+ <ownedOperation xmi:id="_t_rlqvQqEd2JbqIoInRhNw" name="onLinkDelete">
+ <ownedParameter xmi:id="_t_rlq_QqEd2JbqIoInRhNw" name="linkId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_t_rlrPQqEd2JbqIoInRhNw" name="return" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedParameter>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_GfaEUHmfEd2HRLLd0I1WrA"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_KQqi-HjwEd2MH8DN-NMNrA"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_YNI5EHmZEd2HRLLd0I1WrA"/>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_t_rlsPQqEd2JbqIoInRhNw" name="CompositionInitializer" clientDependency="_UX3zE_QsEd2JbqIoInRhNw">
+ <ownedAttribute xmi:id="_t_rlsfQqEd2JbqIoInRhNw" name="linkDefId" visibility="private" isStatic="true">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_t_rlsvQqEd2JbqIoInRhNw" name="linkDefName">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedAttribute>
+ <ownedOperation xmi:id="_t_rls_QqEd2JbqIoInRhNw" name="initializeComposition">
+ <eAnnotations xmi:id="_t_rltPQqEd2JbqIoInRhNw" source="http://www.topcased.org/documentation">
+ <details xmi:id="_t_rltfQqEd2JbqIoInRhNw" key="documentation" value="This dedicated opearation allow to load or create the dedicated LinkDef on application initialisation.
"/>
+ </eAnnotations>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_c4VnwHXGEd2Ekv686xx4qA"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception-helper.uml#_j3qGYKEgEd2PM6_wGJR42Q"/>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_t_rluPQqEd2JbqIoInRhNw" name="Dependency6" supplier="_t_rlsPQqEd2JbqIoInRhNw" client="_t_rlqPQqEd2JbqIoInRhNw"/>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_NJVv0_QsEd2JbqIoInRhNw" name="Dependency7" supplier="_s08WwKGqEd2ENuCUfYNU7A" client="_t_rlqPQqEd2JbqIoInRhNw"/>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_Nddls_QsEd2JbqIoInRhNw" name="Dependency8" client="_t_rlqPQqEd2JbqIoInRhNw">
+ <supplier xmi:type="uml:Class" href="cmsLink.uml#_9FUhAI7-Ed2TZJhzNZ91vg"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_Qo3KtPQsEd2JbqIoInRhNw" name="Dependency9" client="_t_rlofQqEd2JbqIoInRhNw">
+ <supplier xmi:type="uml:Class" href="org.sharengo.utils.container.nomenclature/src/main/uml/conception.uml#_OKT88KUBEd2nLbvCg8hnUg"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_UX3zE_QsEd2JbqIoInRhNw" name="Dependency10" client="_t_rlsPQqEd2JbqIoInRhNw">
+ <supplier xmi:type="uml:Class" href="cmsLink.uml#_9FUhAI7-Ed2TZJhzNZ91vg"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_gKAAg_QwEd22_7AHmZR45g" name="Dependency11" client="_t_rlofQqEd2JbqIoInRhNw">
+ <supplier xmi:type="uml:Class" href="cmsLink.uml#_9FUhAI7-Ed2TZJhzNZ91vg"/>
+ </packagedElement>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_0X9nRPQzEd22_7AHmZR45g" name="Dependency27" client="_YPxfsPOSEd2JbqIoInRhNw">
+ <supplier xmi:type="uml:Class" href="org.sharengo.utils.container.nomenclature/src/main/uml/conception.uml#_OKT88KUBEd2nLbvCg8hnUg"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_0gwW4_QzEd22_7AHmZR45g" name="Dependency28" supplier="_s08WwKGqEd2ENuCUfYNU7A" client="_YPxfsPOSEd2JbqIoInRhNw"/>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_0psQc_QzEd22_7AHmZR45g" name="Dependency29" client="_YPxfsPOSEd2JbqIoInRhNw">
+ <supplier xmi:type="uml:Class" href="cmsLink.uml#_9FUhAI7-Ed2TZJhzNZ91vg"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_RHILgvbTEd2HpdG1FYiBVQ" name="Dependency33"/>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_W_Rqo_bTEd2HpdG1FYiBVQ" name="Dependency34">
+ <supplier xmi:type="uml:Class" href="org.sharengo.utils.container.nomenclature/src/main/uml/conception.uml#_OKT88KUBEd2nLbvCg8hnUg"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_mQnGsvbTEd2HpdG1FYiBVQ" name="Dependency35"/>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_mabxEPbTEd2HpdG1FYiBVQ" name="Dependency36">
+ <supplier xmi:type="uml:Class" href="org.sharengo.utils.container.nomenclature/src/main/uml/conception.uml#__a9XIKUBEd2nLbvCg8hnUg"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_EIExVPdmEd2Fr5Df5xrkyw" name="Dependency37" supplier="_YPxfsPOSEd2JbqIoInRhNw" client="_dMNk0OhrEd25AsNl_TBRDQ"/>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_HqrVZPdmEd2Fr5Df5xrkyw" name="Dependency38" client="_dMNk0OhrEd25AsNl_TBRDQ">
+ <supplier xmi:type="uml:Class" href="org.sharengo.utils.container.nomenclature/src/main/uml/conception.uml#__a9XIKUBEd2nLbvCg8hnUg"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_fD5BEPdyEd26SJHML9L6aA" name="Dependency39" supplier="_YPxfsPOSEd2JbqIoInRhNw"/>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_dpucNPhOEd2EUscs1VHtew" name="Dependency40" supplier="_yvPJ2HTaEd20yqJGyRKhKA"/>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_lQlDY_hPEd2EUscs1VHtew" name="Dependency41" supplier="_Ugb_4Hi_Ed2oZoPbWJIMHg"/>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_uF1O9PkiEd2ngN8mqQoDPw" name="Dependency42" supplier="_bxj5WPhREd2Hu-BP-VasxQ" client="_dMNk0OhrEd25AsNl_TBRDQ"/>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_uoP_hPkiEd2ngN8mqQoDPw" name="Dependency43" supplier="_hUWziPhREd2Hu-BP-VasxQ" client="_dMNk0OhrEd25AsNl_TBRDQ"/>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_8dreQ_kiEd2ngN8mqQoDPw" name="Dependency44" supplier="_pfA7oHm8Ed2ql75AYIhxSA" client="_dMNk0OhrEd25AsNl_TBRDQ"/>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_TDTVY_klEd2ngN8mqQoDPw" name="Dependency45" client="_dMNk0OhrEd25AsNl_TBRDQ">
+ <supplier xmi:type="uml:Class" href="org.sharengo.utils.container.nomenclature/src/main/uml/conception.uml#_OKT88KUBEd2nLbvCg8hnUg"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:DataType" xmi:id="_HLaUUP9aEd2Qm_QM6AOnsQ" name="List<ImportedData>"/>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_HknsQP9fEd25BaYHbAwXwQ" name="Dependency47" supplier="_g3AcsP9CEd2Qm_QM6AOnsQ" client="_poU0cP9aEd25BaYHbAwXwQ"/>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_UK96AP9lEd2BCr3614c-tA" name="Dependency48" supplier="_e8X8AP9CEd2Qm_QM6AOnsQ" client="_xswuUP9BEd2Qm_QM6AOnsQ"/>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_UyLrAP9lEd2BCr3614c-tA" name="Dependency49" supplier="_g3AcsP9CEd2Qm_QM6AOnsQ" client="_xswuUP9BEd2Qm_QM6AOnsQ"/>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_qabwYP9mEd2BCr3614c-tA" name="Dependency46" client="_xswuUP9BEd2Qm_QM6AOnsQ">
+ <supplier xmi:type="uml:Class" href="org.sharengo.utils.container.nomenclature/src/main/uml/conception.uml#_yF0iAKUBEd2nLbvCg8hnUg"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Usage" xmi:id="_pCnsEP9qEd2c4u-jA89yIA" name="Usage1" client="_xswuUP9BEd2Qm_QM6AOnsQ">
+ <supplier xmi:type="uml:Class" href="org.sharengo.utils.container.nomenclature/src/main/uml/conception.uml#__a9XIKUBEd2nLbvCg8hnUg"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Usage" xmi:id="_qXDIZP9qEd2c4u-jA89yIA" name="Usage2" supplier="_poU0cP9aEd25BaYHbAwXwQ" client="_xswuUP9BEd2Qm_QM6AOnsQ"/>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_gPp7EwGuEd632JysvO87Dg" name="Dependency50" supplier="_xswuUP9BEd2Qm_QM6AOnsQ" client="_dMNk0OhrEd25AsNl_TBRDQ"/>
+ <packagedElement xmi:type="uml:Usage" xmi:id="_d6n9JAJNEd64Q-y4tjzcsw" name="Usage3" client="_xswuUP9BEd2Qm_QM6AOnsQ">
+ <supplier xmi:type="uml:Class" href="org.sharengo.utils.container.nomenclature/src/main/uml/conception.uml#_OKT88KUBEd2nLbvCg8hnUg"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_4XqxwwJPEd6NXsEhrbvcFg" name="Dependency30"/>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_4zNeQwJPEd6NXsEhrbvcFg" name="Dependency32"/>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_0AMJQwJREd6NXsEhrbvcFg" name="Dependency51" supplier="_YAvggLo_Ed29K_Ps1iXPuQ"/>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_jkLsAwJgEd6NXsEhrbvcFg" name="Dependency52">
+ <supplier xmi:type="uml:Class" href="org.sharengo.utils.container.nomenclature/src/main/uml/conception.uml#__a9XIKUBEd2nLbvCg8hnUg"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_KT-c8AJpEd6BOa-ng0LLhw" name="Dependency53" supplier="_-4GJSHggEd2Vxr2aiClL8g" client="_dMNk0OhrEd25AsNl_TBRDQ"/>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_lA-6cw5DEd6KQuvMUCD2yg" name="Dependency54" supplier="_GyHPcA5AEd6KQuvMUCD2yg" client="_GTtU0A5DEd6KQuvMUCD2yg"/>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_li24cw5DEd6KQuvMUCD2yg" name="Dependency55" supplier="_Vpjk0A5AEd6KQuvMUCD2yg" client="_LybnUA5DEd6KQuvMUCD2yg"/>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_mOa98w5DEd6KQuvMUCD2yg" name="Dependency56" supplier="_l5XbUA5AEd6KQuvMUCD2yg" client="_QWfBUA5DEd6KQuvMUCD2yg"/>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_nKAccw5DEd6KQuvMUCD2yg" name="Dependency57" supplier="__T4G0A5AEd6KQuvMUCD2yg" client="_SRUWUA5DEd6KQuvMUCD2yg"/>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_oB7i8w5DEd6KQuvMUCD2yg" name="Dependency58" supplier="_xntcUA5BEd6KQuvMUCD2yg" client="_e9siUA5DEd6KQuvMUCD2yg"/>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_Iq9mcw5LEd6KQuvMUCD2yg" name="Dependency59" supplier="_GTtU0A5DEd6KQuvMUCD2yg" client="_d9MVUA5IEd6KQuvMUCD2yg"/>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_Jl8A8w5LEd6KQuvMUCD2yg" name="Dependency60" supplier="_LybnUA5DEd6KQuvMUCD2yg" client="_d9MVUA5IEd6KQuvMUCD2yg"/>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_L-cwcw5LEd6KQuvMUCD2yg" name="Dependency61" supplier="_QWfBUA5DEd6KQuvMUCD2yg" client="_d9MVUA5IEd6KQuvMUCD2yg"/>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_UUIB8w5LEd6KQuvMUCD2yg" name="Dependency62" supplier="_hm9RUA5IEd6KQuvMUCD2yg" client="_d9MVUA5IEd6KQuvMUCD2yg"/>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_IItYgw5MEd6KQuvMUCD2yg" name="Dependency63" supplier="_QWfBUA5DEd6KQuvMUCD2yg" client="_gUQTUA5IEd6KQuvMUCD2yg"/>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_bB3k8w5OEd6KQuvMUCD2yg" name="Dependency64" supplier="_SRUWUA5DEd6KQuvMUCD2yg" client="_hm9RUA5IEd6KQuvMUCD2yg"/>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_isl08w5OEd6KQuvMUCD2yg" name="Dependency65" supplier="_QWfBUA5DEd6KQuvMUCD2yg" client="_hm9RUA5IEd6KQuvMUCD2yg"/>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_qLZ6cw5PEd6KQuvMUCD2yg" name="Dependency66" supplier="_e9siUA5DEd6KQuvMUCD2yg" client="_lYRm0A5IEd6KQuvMUCD2yg"/>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_sbTggw5PEd6KQuvMUCD2yg" name="Dependency67" supplier="_SRUWUA5DEd6KQuvMUCD2yg" client="_lYRm0A5IEd6KQuvMUCD2yg"/>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_gIGNAA5QEd6KQuvMUCD2yg" name="Dependency69" supplier="_SRUWUA5DEd6KQuvMUCD2yg" client="_sw1v0A5IEd6KQuvMUCD2yg"/>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_xSI3Iw5QEd6KQuvMUCD2yg" name="Dependency70" supplier="_iO1pkHi_Ed2oZoPbWJIMHg" client="_sw1v0A5IEd6KQuvMUCD2yg"/>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_eYWXkw5ZEd6KQuvMUCD2yg" name="Dependency68" supplier="_hm9RUA5IEd6KQuvMUCD2yg" client="_x4510A5IEd6KQuvMUCD2yg"/>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_-IWlgw5ZEd6KQuvMUCD2yg" name="Dependency71" supplier="_d9MVUA5IEd6KQuvMUCD2yg" client="_x4510A5IEd6KQuvMUCD2yg"/>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="__yelAw5ZEd6KQuvMUCD2yg" name="Dependency72" supplier="_sw1v0A5IEd6KQuvMUCD2yg" client="_x4510A5IEd6KQuvMUCD2yg"/>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_AOjdAw5aEd6KQuvMUCD2yg" name="Dependency73" supplier="_gUQTUA5IEd6KQuvMUCD2yg" client="_x4510A5IEd6KQuvMUCD2yg"/>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_AoQ9gw5aEd6KQuvMUCD2yg" name="Dependency74" supplier="_lYRm0A5IEd6KQuvMUCD2yg" client="_x4510A5IEd6KQuvMUCD2yg"/>
+ <packagedElement xmi:type="uml:DataType" xmi:id="_P2_uEA71Ed6i07THnW3V5A" name="Set<String>"/>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_azYGoA72Ed6i07THnW3V5A" name="Dependency75" supplier="_Ugb_4Hi_Ed2oZoPbWJIMHg" client="_YPxfsPOSEd2JbqIoInRhNw"/>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_w_-Eow72Ed6i07THnW3V5A" name="Dependency76" supplier="_YAvggLo_Ed29K_Ps1iXPuQ" client="_YPxfsPOSEd2JbqIoInRhNw"/>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_NN8JsA8MEd6i07THnW3V5A" name="Dependency77" supplier="_dSGT8KGqEd2ENuCUfYNU7A" client="_YPxfsPOSEd2JbqIoInRhNw"/>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_CuFh0g8bEd6ZEphZXOMnTg" name="Dependency79" supplier="_gUQTUA5IEd6KQuvMUCD2yg" client="_hm9RUA5IEd6KQuvMUCD2yg"/>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_RHLosw-nEd6Za8ap1ETEyA" name="Dependency80" supplier="_SRUWUA5DEd6KQuvMUCD2yg" client="_d9MVUA5IEd6KQuvMUCD2yg"/>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_gnh-4w-sEd6Za8ap1ETEyA" name="Dependency81" supplier="_IfiXMIVfEd2N0bQZBk24XA" client="_sw1v0A5IEd6KQuvMUCD2yg"/>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_JYw1Yw-wEd6Za8ap1ETEyA" name="Dependency83" supplier="_sw1v0A5IEd6KQuvMUCD2yg" client="_lYRm0A5IEd6KQuvMUCD2yg"/>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_k3bH8w_GEd6Za8ap1ETEyA" name="Dependency84" supplier="_yvPJ2HTaEd20yqJGyRKhKA" client="_x4510A5IEd6KQuvMUCD2yg"/>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_lQXzcw_GEd6Za8ap1ETEyA" name="Dependency85" supplier="_Ugb_4Hi_Ed2oZoPbWJIMHg" client="_x4510A5IEd6KQuvMUCD2yg"/>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_MONf4xIeEd6Za8ap1ETEyA" name="Dependency86" supplier="_IfiXMIVfEd2N0bQZBk24XA" client="_gUQTUA5IEd6KQuvMUCD2yg"/>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_OgY94xIeEd6Za8ap1ETEyA" name="Dependency87" supplier="_IfiXMIVfEd2N0bQZBk24XA" client="_hm9RUA5IEd6KQuvMUCD2yg"/>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_a7E88BIeEd6Za8ap1ETEyA" name="Dependency88" supplier="_iO1pkHi_Ed2oZoPbWJIMHg" client="_hm9RUA5IEd6KQuvMUCD2yg"/>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_je274xIeEd6Za8ap1ETEyA" name="Dependency78" supplier="_iO1pkHi_Ed2oZoPbWJIMHg" client="_gUQTUA5IEd6KQuvMUCD2yg"/>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_jH14UBJFEd6o-Ots7TkB2A" name="Dependency89" supplier="_dMNk0OhrEd25AsNl_TBRDQ" client="__IZq8BJDEd6o-Ots7TkB2A"/>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_y058cCK_Ed6OMJznllRp2A" name="Dependency82" supplier="_hm9RUA5IEd6KQuvMUCD2yg" client="_J7MKQCK6Ed6OMJznllRp2A"/>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_0pZY4CK_Ed6OMJznllRp2A" name="Dependency90" supplier="_d9MVUA5IEd6KQuvMUCD2yg" client="_J7MKQCK6Ed6OMJznllRp2A"/>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_2h_SMCK_Ed6OMJznllRp2A" name="Dependency91" supplier="_sw1v0A5IEd6KQuvMUCD2yg" client="_J7MKQCK6Ed6OMJznllRp2A"/>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_3VDG0CK_Ed6OMJznllRp2A" name="Dependency92" supplier="_gUQTUA5IEd6KQuvMUCD2yg" client="_J7MKQCK6Ed6OMJznllRp2A"/>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_4FS4ACK_Ed6OMJznllRp2A" name="Dependency93" supplier="_lYRm0A5IEd6KQuvMUCD2yg" client="_J7MKQCK6Ed6OMJznllRp2A"/>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_83YuBCK_Ed6OMJznllRp2A" name="Dependency94" supplier="_yvPJ2HTaEd20yqJGyRKhKA" client="_J7MKQCK6Ed6OMJznllRp2A"/>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_9nbq5CK_Ed6OMJznllRp2A" name="Dependency95" supplier="_Ugb_4Hi_Ed2oZoPbWJIMHg" client="_J7MKQCK6Ed6OMJznllRp2A"/>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_-U08ZCK_Ed6OMJznllRp2A" name="Dependency96" supplier="_xswuUP9BEd2Qm_QM6AOnsQ" client="_J7MKQCK6Ed6OMJznllRp2A"/>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_hzkiVCODEd6gj5bfXc-Mvw" name="Dependency97" supplier="_hm9RUA5IEd6KQuvMUCD2yg"/>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_kRt_xCODEd6gj5bfXc-Mvw" name="Dependency98" supplier="_yvPJ2HTaEd20yqJGyRKhKA"/>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_956h9CODEd6gj5bfXc-Mvw" name="Dependency99" supplier="_Ugb_4Hi_Ed2oZoPbWJIMHg"/>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_fPiC0COEEd6gj5bfXc-Mvw" name="Dependency100" supplier="_lYRm0A5IEd6KQuvMUCD2yg"/>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_kFj9oCOEEd6gj5bfXc-Mvw" name="Dependency101" supplier="_sw1v0A5IEd6KQuvMUCD2yg"/>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_yqJBZCOEEd6gj5bfXc-Mvw" name="Dependency102" client="_x4510A5IEd6KQuvMUCD2yg"/>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_3Qjy4COEEd6gj5bfXc-Mvw" name="Dependency103" client="_J7MKQCK6Ed6OMJznllRp2A"/>
+ <packagedElement xmi:type="uml:DataType" xmi:id="_T0otsCUBEd6Bk7gvYh5YAQ" name="List<TopicRule>"/>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_bGCH8C_nEd6m7Z8-52146A" name="Dependency104" supplier="_yvPJ2HTaEd20yqJGyRKhKA" client="_jwI9AC5VEd6W6LY8irJDig"/>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_MmtlYC_sEd6cNN8u-rRFgA" name="Dependency105" supplier="_yvPJ2HTaEd20yqJGyRKhKA" client="_hm9RUA5IEd6KQuvMUCD2yg"/>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_NKQXUy_sEd6cNN8u-rRFgA" name="Dependency106" supplier="_Ugb_4Hi_Ed2oZoPbWJIMHg" client="_hm9RUA5IEd6KQuvMUCD2yg"/>
+ <packagedElement xmi:type="uml:DataType" xmi:id="_HbpkID-iEd6_O_u-D-Y8sg" name="List<ContentDef>"/>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_reQ8Uz_aEd6_Lec3g9P76A" name="Dependency107" supplier="_Ugb_4Hi_Ed2oZoPbWJIMHg" client="_gUQTUA5IEd6KQuvMUCD2yg"/>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_vnO80z_aEd6_Lec3g9P76A" name="Dependency108" supplier="_yvPJ2HTaEd20yqJGyRKhKA" client="_gUQTUA5IEd6KQuvMUCD2yg"/>
+ <profileApplication xmi:id="_LmCD4PWdEdyp25RO5nzQ4A">
+ <eAnnotations xmi:id="_LmFHMPWdEdyp25RO5nzQ4A" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="pathmap://ACCELEO_PROFILES/Acceleo.Business.profile.uml#_81g14fWcEdyuYMHNZCqWBQ"/>
+ </eAnnotations>
+ <appliedProfile href="pathmap://ACCELEO_PROFILES/Acceleo.Business.profile.uml#_JX9fQPWcEdyuYMHNZCqWBQ"/>
+ </profileApplication>
+ <profileApplication xmi:id="_lZpLIKTREd2FhPzHNqBWcg">
+ <eAnnotations xmi:id="_lZxG8KTREd2FhPzHNqBWcg" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="pathmap://SHARENGO_PROFILES/Sharengo.service.profile.uml#_pCbgIPQ4Ed2_aZMAEjWDNQ"/>
+ </eAnnotations>
+ <appliedProfile href="pathmap://SHARENGO_PROFILES/Sharengo.service.profile.uml#_EY2fUKDiEd25boenPflnPQ"/>
+ </profileApplication>
+ </uml:Model>
+ <AcceleoBusiness:Entity xmi:id="_xLZYgHTaEd20yqJGyRKhKA" base_Class="_--aR4HTZEd20yqJGyRKhKA"/>
+ <AcceleoBusiness:Service xmi:id="_14QJMHTaEd20yqJGyRKhKA" base_Class="_yvPJ2HTaEd20yqJGyRKhKA"/>
+ <AcceleoBusiness:Dao xmi:id="_5REfIHTaEd20yqJGyRKhKA" base_Class="_3ac7wHTaEd20yqJGyRKhKA"/>
+ <AcceleoBusiness:Dto xmi:id="_B-XmcHTbEd20yqJGyRKhKA" base_Class="_-1M2GHTaEd20yqJGyRKhKA"/>
+ <AcceleoBusiness:Remote xmi:id="_iP8nsHTsEd2rPt0GVlmSZQ" base_Operation="_75mnoHTaEd20yqJGyRKhKA"/>
+ <AcceleoBusiness:BusinessException xmi:id="_a-yYUHUaEd2q--EK4nC0vA"/>
+ <AcceleoBusiness:Remote xmi:id="_RXj5wHWmEd2gat_LwJwOew"/>
+ <AcceleoBusiness:Remote xmi:id="_jrbD8HWsEd2gat_LwJwOew" base_Operation="_hBZtsnWsEd2gat_LwJwOew"/>
+ <AcceleoBusiness:Entity xmi:id="_IYuicHXmEd2XodZQ_XQIpQ" base_Class="_RuhOKHXbEd2XodZQ_XQIpQ"/>
+ <AcceleoBusiness:Entity xmi:id="_I62_IHXmEd2XodZQ_XQIpQ" base_Class="_sRfBYHXZEd2XodZQ_XQIpQ"/>
+ <AcceleoBusiness:Entity xmi:id="_Jk4MgHXmEd2XodZQ_XQIpQ" base_Class="_cKqgGHXfEd2XodZQ_XQIpQ"/>
+ <AcceleoBusiness:Entity xmi:id="_KnL-EHXmEd2XodZQ_XQIpQ" base_Class="_9F6dWHXYEd2XodZQ_XQIpQ"/>
+ <AcceleoBusiness:Entity xmi:id="_Lbo50HXmEd2XodZQ_XQIpQ" base_Class="_WdyWeHXXEd2XodZQ_XQIpQ"/>
+ <AcceleoBusiness:Entity xmi:id="_MRSIYHXmEd2XodZQ_XQIpQ" base_Class="_l2fJWHXYEd2XodZQ_XQIpQ"/>
+ <AcceleoBusiness:Entity xmi:id="_Mz2p8HXmEd2XodZQ_XQIpQ" base_Class="_i__W-HXQEd2gat_LwJwOew"/>
+ <AcceleoBusiness:Entity xmi:id="_ORu9MHXmEd2XodZQ_XQIpQ"/>
+ <AcceleoBusiness:Entity xmi:id="_O1fxkHXmEd2XodZQ_XQIpQ" base_Class="_vF4GiHXXEd2XodZQ_XQIpQ"/>
+ <AcceleoBusiness:Entity xmi:id="_Pyb68HXmEd2XodZQ_XQIpQ" base_Class="_Bq1oyHXTEd2XodZQ_XQIpQ"/>
+ <AcceleoBusiness:Entity xmi:id="_QyXG4HXmEd2XodZQ_XQIpQ" base_Class="_mOq5eHXQEd2gat_LwJwOew"/>
+ <AcceleoBusiness:Entity xmi:id="_RYXW8HXmEd2XodZQ_XQIpQ" base_Class="_IVEMeHXQEd2gat_LwJwOew"/>
+ <AcceleoBusiness:Entity xmi:id="_R5l0sHXmEd2XodZQ_XQIpQ" base_Class="_O3Kc-HXPEd2gat_LwJwOew"/>
+ <AcceleoBusiness:Entity xmi:id="_SXi8AHXmEd2XodZQ_XQIpQ" base_Class="_NcHbSHXPEd2gat_LwJwOew"/>
+ <AcceleoBusiness:Entity xmi:id="_S5OFsHXmEd2XodZQ_XQIpQ" base_Class="_KYKiGHXPEd2gat_LwJwOew"/>
+ <AcceleoBusiness:Dto xmi:id="_L7ClsHgiEd2Vxr2aiClL8g" base_Class="_4oxq2HghEd2Vxr2aiClL8g"/>
+ <AcceleoBusiness:Dao xmi:id="_Mg5EwHgiEd2Vxr2aiClL8g" base_Class="_-4GJSHggEd2Vxr2aiClL8g"/>
+ <AcceleoBusiness:Service xmi:id="_OcRMUHgiEd2Vxr2aiClL8g" base_Class="_zAlIsHggEd2Vxr2aiClL8g"/>
+ <AcceleoBusiness:Remote xmi:id="_Reu3wHgiEd2Vxr2aiClL8g" base_Operation="_0lpMkHghEd2Vxr2aiClL8g"/>
+ <AcceleoBusiness:Remote xmi:id="_oWtkAHhBEd2X9uNQyI_qHw" base_Operation="_QCWoQHhBEd2X9uNQyI_qHw"/>
+ <AcceleoBusiness:Remote xmi:id="_4vsvMHhCEd2X9uNQyI_qHw" base_Operation="_0vbNIHhBEd2X9uNQyI_qHw"/>
+ <AcceleoBusiness:Service xmi:id="_XAQRQHi_Ed2oZoPbWJIMHg" base_Class="_Ugb_4Hi_Ed2oZoPbWJIMHg"/>
+ <AcceleoBusiness:Dao xmi:id="_LgUNwHjAEd2oZoPbWJIMHg" base_Class="_iO1pkHi_Ed2oZoPbWJIMHg"/>
+ <AcceleoBusiness:Dto xmi:id="_6_hbUHjHEd2vSLEPekkQZw" base_Class="_3UukkHjHEd2vSLEPekkQZw"/>
+ <AcceleoBusiness:Remote xmi:id="_fqrUoHjIEd2vSLEPekkQZw" base_Operation="_LpgsYHjIEd2vSLEPekkQZw"/>
+ <AcceleoBusiness:Remote xmi:id="_liA7cHjIEd2vSLEPekkQZw"/>
+ <AcceleoBusiness:Remote xmi:id="_J__d8HjVEd2XX6MpUtjnfg" base_Operation="_IaaAMHjVEd2XX6MpUtjnfg"/>
+ <AcceleoBusiness:Remote xmi:id="_xh9U4HjsEd2Lq_BH-5XVEg"/>
+ <AcceleoBusiness:Dto xmi:id="_0e9aEHkDEd2Atp1vvmnWrA" base_Class="_tM0CIHkDEd2Atp1vvmnWrA"/>
+ <AcceleoBusiness:Dao xmi:id="_Kd7LwHkEEd2Atp1vvmnWrA"/>
+ <AcceleoBusiness:Remote xmi:id="_CjcZwHkKEd2Atp1vvmnWrA" base_Operation="_bYAHQHkEEd2Atp1vvmnWrA"/>
+ <AcceleoBusiness:Remote xmi:id="_ko74YHkKEd2Atp1vvmnWrA" base_Operation="_IsL5oHkKEd2Atp1vvmnWrA"/>
+ <AcceleoBusiness:Remote xmi:id="_ywmWoHkKEd2Atp1vvmnWrA" base_Operation="_m28oEHkKEd2Atp1vvmnWrA"/>
+ <AcceleoBusiness:Remote xmi:id="_GbhCEHkLEd2Atp1vvmnWrA" base_Operation="_70CtEHkKEd2Atp1vvmnWrA"/>
+ <AcceleoBusiness:Dao xmi:id="_M3_bYHm9Ed2ql75AYIhxSA" base_Class="_pfA7oHm8Ed2ql75AYIhxSA"/>
+ <AcceleoBusiness:Remote xmi:id="_qsHkgHpXEd2KlrgMGH48yg" base_Operation="_ma-fcHpXEd2KlrgMGH48yg"/>
+ <AcceleoBusiness:Dao xmi:id="_SJIaAHsfEd2br5ngUa3Ghw" base_Class="_QKN2QHsfEd2br5ngUa3Ghw"/>
+ <AcceleoBusiness:Entity xmi:id="_S1W88H2HEd2PvufzAfDQGg" base_Class="_qIx38HtJEd2br5ngUa3Ghw"/>
+ <AcceleoBusiness:Remote xmi:id="_YtT5gH_REd2UJZ6mvauuHQ" base_Operation="_ME61oH_REd2UJZ6mvauuHQ"/>
+ <AcceleoBusiness:Remote xmi:id="_k7r64H_REd2UJZ6mvauuHQ" base_Operation="_cqEC8X_REd2UJZ6mvauuHQ"/>
+ <AcceleoBusiness:Remote xmi:id="_IZoYYIANEd2AxNDbeUs4Sw"/>
+ <AcceleoBusiness:Remote xmi:id="_8jDHwIATEd2AxNDbeUs4Sw" base_Operation="_vdrM8IATEd2AxNDbeUs4Sw"/>
+ <AcceleoBusiness:Service xmi:id="_QFmwsIVfEd2N0bQZBk24XA" base_Class="_IfiXMIVfEd2N0bQZBk24XA"/>
+ <AcceleoBusiness:Remote xmi:id="_b6mb8IYTEd2FDsNjNrtp7Q"/>
+ <AcceleoBusiness:Remote xmi:id="_qvof4IrcEd2Y45ctWyGYNQ" base_Operation="_IBCPUIrbEd2Y45ctWyGYNQ"/>
+ <AcceleoBusiness:Dto xmi:id="_yz8twI7QEd2S3Joda-hMBQ" base_Class="_5apesHkIEd2Atp1vvmnWrA"/>
+ <AcceleoBusiness:Remote xmi:id="_PmnJAJOAEd2PpNHrflS_6A" base_Operation="_K8Su8JOAEd2PpNHrflS_6A"/>
+ <AcceleoBusiness:Dto xmi:id="_ONdhUJtuEd2hONjUBs7mIQ" base_Class="__rDAwJttEd2hONjUBs7mIQ"/>
+ <AcceleoBusiness:Remote xmi:id="_na5l4JuJEd2hhejVV_1tQg" base_Operation="_OXz74JuJEd2hhejVV_1tQg"/>
+ <AcceleoBusiness:Remote xmi:id="_eOI-UJwsEd2jKtVlU3vFlQ" base_Operation="_1INfoJwnEd2jKtVlU3vFlQ"/>
+ <AcceleoBusiness:Remote xmi:id="_ejaqwJwsEd2jKtVlU3vFlQ" base_Operation="_2cDtIJwnEd2jKtVlU3vFlQ"/>
+ <AcceleoBusiness:Entity xmi:id="__zEqIKGpEd2ENuCUfYNU7A" base_Class="_8wC-AKGpEd2ENuCUfYNU7A"/>
+ <AcceleoBusiness:Dto xmi:id="_ItWdgKGqEd2ENuCUfYNU7A" base_Class="_F-eccKGqEd2ENuCUfYNU7A"/>
+ <AcceleoBusiness:Dao xmi:id="_iwyKMKGqEd2ENuCUfYNU7A" base_Class="_dSGT8KGqEd2ENuCUfYNU7A"/>
+ <AcceleoBusiness:Remote xmi:id="_OqIvkKGrEd2ENuCUfYNU7A"/>
+ <AcceleoBusiness:Remote xmi:id="_y5IRUKGrEd2ENuCUfYNU7A"/>
+ <AcceleoBusiness:Remote xmi:id="_zMjjoKGrEd2ENuCUfYNU7A"/>
+ <AcceleoBusiness:Remote xmi:id="_zhkxYKGrEd2ENuCUfYNU7A"/>
+ <AcceleoBusiness:Remote xmi:id="_z6H0QKGrEd2ENuCUfYNU7A"/>
+ <Sharengoserviceprofile:CrudService xmi:id="_m8_NMKTREd2FhPzHNqBWcg" base_Class="_s08WwKGqEd2ENuCUfYNU7A"/>
+ <AcceleoBusiness:Dto xmi:id="_n_izYKTyEd2m-IdKVzbNwA" base_Class="_PKoIWKQuEd2GAYp1IpBaGw"/>
+ <AcceleoBusiness:Remote xmi:id="_5rAQ0KWoEd2Sy4jX_MS0IA" base_Operation="_qjqdYKQrEd2GAYp1IpBaGw"/>
+ <AcceleoBusiness:Remote xmi:id="_EuWAcKW_Ed2BUJWkFP_TZQ" base_Operation="__5FhsKW-Ed2BUJWkFP_TZQ"/>
+ <AcceleoBusiness:Remote xmi:id="_3FcP4KXAEd2BUJWkFP_TZQ" base_Operation="_92YqIKW-Ed2BUJWkFP_TZQ"/>
+ <AcceleoBusiness:Remote xmi:id="_VYcFgKaLEd2G__lOTDfUPw" base_Operation="_F1R5oKaLEd2G__lOTDfUPw"/>
+ <AcceleoBusiness:Remote xmi:id="_s4PX0KaLEd2G__lOTDfUPw" base_Operation="_HD8sMKaLEd2G__lOTDfUPw"/>
+ <AcceleoBusiness:Remote xmi:id="_RF5DQKcwEd26eZS_gEW-Hg" base_Operation="_CjwPgKcwEd26eZS_gEW-Hg"/>
+ <AcceleoBusiness:Remote xmi:id="_xm36AKdjEd2kkeUn0Lf9KQ"/>
+ <AcceleoBusiness:Remote xmi:id="_E0D_YLSQEd2Svo_ZuxkYww" base_Operation="_BkY-YLSQEd2Svo_ZuxkYww"/>
+ <AcceleoBusiness:Remote xmi:id="_WtyugLTnEd252vzLZ9nqrQ" base_Operation="_UsJm4LTnEd252vzLZ9nqrQ"/>
+ <AcceleoBusiness:Remote xmi:id="_2itOELcKEd24mr0Xuj8kuQ" base_Operation="_zdDEsLcKEd24mr0Xuj8kuQ"/>
+ <AcceleoBusiness:Dto xmi:id="_kj3AoLowEd2LUbkYKt0ISw" base_Class="_FzLjsLoaEd2A0rZMX9hUqA"/>
+ <AcceleoBusiness:Dto xmi:id="_noZvsLowEd2LUbkYKt0ISw" base_Class="_lvPOoLowEd2LUbkYKt0ISw"/>
+ <AcceleoBusiness:Dto xmi:id="_tNcFkLowEd2LUbkYKt0ISw" base_Class="_ozMu4LowEd2LUbkYKt0ISw"/>
+ <AcceleoBusiness:Dto xmi:id="_y8O0YLowEd2LUbkYKt0ISw" base_Class="_wtqrELowEd2LUbkYKt0ISw"/>
+ <AcceleoBusiness:Dto xmi:id="_3EPLkLowEd2LUbkYKt0ISw" base_Class="_0FQ5ALowEd2LUbkYKt0ISw"/>
+ <AcceleoBusiness:Dto xmi:id="_MFhXkLoyEd2LUbkYKt0ISw" base_Class="_KP7H4LoyEd2LUbkYKt0ISw"/>
+ <AcceleoBusiness:Dto xmi:id="_94TcMLo3Ed2LUbkYKt0ISw" base_Class="_5-eq8Lo3Ed2LUbkYKt0ISw"/>
+ <AcceleoBusiness:Dto xmi:id="_-KBeULo3Ed2LUbkYKt0ISw" base_Class="_t1qfALo3Ed2LUbkYKt0ISw"/>
+ <AcceleoBusiness:Service xmi:id="_ZgFMULo_Ed29K_Ps1iXPuQ" base_Class="_YAvggLo_Ed29K_Ps1iXPuQ"/>
+ <AcceleoBusiness:Remote xmi:id="_nxQ9gLpAEd29K_Ps1iXPuQ" base_Operation="_g-dCYLo_Ed29K_Ps1iXPuQ"/>
+ <AcceleoBusiness:Dto xmi:id="_ULEdMLpEEd2ea__X_Ke6sQ" base_Class="_SdWXILpEEd2ea__X_Ke6sQ"/>
+ <AcceleoBusiness:Dto xmi:id="_3Trt0LrVEd2Re4E5q7qDVg" base_Class="_TtLqgLpIEd2ea__X_Ke6sQ"/>
+ <AcceleoBusiness:Dto xmi:id="_3qXIcLrVEd2Re4E5q7qDVg" base_Class="_FFdooLpHEd2ea__X_Ke6sQ"/>
+ <AcceleoBusiness:Dto xmi:id="_4EXj4LrVEd2Re4E5q7qDVg" base_Class="_GlrBsLpIEd2ea__X_Ke6sQ"/>
+ <AcceleoBusiness:Dto xmi:id="_4Z8yULrVEd2Re4E5q7qDVg" base_Class="_KZ2d8LpIEd2ea__X_Ke6sQ"/>
+ <AcceleoBusiness:Dto xmi:id="_402loLrVEd2Re4E5q7qDVg" base_Class="_L4m68LpIEd2ea__X_Ke6sQ"/>
+ <AcceleoBusiness:Dto xmi:id="_99laALrVEd2Re4E5q7qDVg" base_Class="_wB9kMLpHEd2ea__X_Ke6sQ"/>
+ <AcceleoBusiness:Dto xmi:id="_-Sxm4LrVEd2Re4E5q7qDVg" base_Class="_NMZTgLpHEd2ea__X_Ke6sQ"/>
+ <AcceleoBusiness:Dto xmi:id="_-l1s0LrVEd2Re4E5q7qDVg" base_Class="_lVlhELpHEd2ea__X_Ke6sQ"/>
+ <AcceleoBusiness:Dto xmi:id="_-3ZW4LrVEd2Re4E5q7qDVg" base_Class="_xECFMLpHEd2ea__X_Ke6sQ"/>
+ <AcceleoBusiness:Dto xmi:id="__LEg0LrVEd2Re4E5q7qDVg" base_Class="_s94IILpHEd2ea__X_Ke6sQ"/>
+ <AcceleoBusiness:Dto xmi:id="__f1P4LrVEd2Re4E5q7qDVg" base_Class="_x6JN0LpHEd2ea__X_Ke6sQ"/>
+ <AcceleoBusiness:Dto xmi:id="__5fGALrVEd2Re4E5q7qDVg" base_Class="_0psH0LpIEd2ea__X_Ke6sQ"/>
+ <AcceleoBusiness:Dto xmi:id="_AT-CkLrWEd2Re4E5q7qDVg" base_Class="_G6C5wLpJEd2ea__X_Ke6sQ"/>
+ <AcceleoBusiness:Dto xmi:id="_AuHn8LrWEd2Re4E5q7qDVg" base_Class="_agULMLpIEd2ea__X_Ke6sQ"/>
+ <AcceleoBusiness:Dto xmi:id="_hSwbALraEd2I3Oprj84ARg" base_Class="_Sp7wcLraEd2I3Oprj84ARg"/>
+ <AcceleoBusiness:Remote xmi:id="_YC1LILsDEd2hnI17Wy1x7w" base_Operation="_Uo5a4LsDEd2hnI17Wy1x7w"/>
+ <AcceleoBusiness:Remote xmi:id="_a8dgELvGEd2kF4XjUgVq9Q" base_Operation="_U50BILvGEd2kF4XjUgVq9Q"/>
+ <AcceleoBusiness:Remote xmi:id="_A8eRYL1lEd2hO74hOuNnYA" base_Operation="_55KmsL1kEd2hO74hOuNnYA"/>
+ <AcceleoBusiness:Dto xmi:id="_ghyNgMbBEd2uuaPd80qeIQ" base_Class="_bCy1QMbBEd2uuaPd80qeIQ"/>
+ <AcceleoBusiness:Dto xmi:id="_nxNBkMbBEd2uuaPd80qeIQ" base_Class="_kAX0QMbBEd2uuaPd80qeIQ"/>
+ <AcceleoBusiness:Remote xmi:id="_PsxiwMbCEd2uuaPd80qeIQ" base_Operation="_FDblgMbCEd2uuaPd80qeIQ"/>
+ <AcceleoBusiness:Dto xmi:id="_WvZP4MeREd2h5Jm14AAEsA" base_Class="_VbTx0MeREd2h5Jm14AAEsA"/>
+ <AcceleoBusiness:Dto xmi:id="_esOHAMhWEd2UGuMtCFt8YQ" base_Class="_b7u8YMhWEd2UGuMtCFt8YQ"/>
+ <AcceleoBusiness:Dto xmi:id="_3LyNMMhWEd2UGuMtCFt8YQ" base_Class="_ysvPAMhWEd2UGuMtCFt8YQ"/>
+ <AcceleoBusiness:Dto xmi:id="_5Vx_kMhWEd2UGuMtCFt8YQ" base_Class="_3tyHAMhWEd2UGuMtCFt8YQ"/>
+ <AcceleoBusiness:Dto xmi:id="_EIUVEMhXEd2UGuMtCFt8YQ" base_Class="_CAfs8MhXEd2UGuMtCFt8YQ"/>
+ <AcceleoBusiness:Dto xmi:id="_HXiDEMhXEd2UGuMtCFt8YQ" base_Class="_FMMz9shXEd2UGuMtCFt8YQ"/>
+ <AcceleoBusiness:Dto xmi:id="_2HFzANcdEd2nifBZRRnUOg" base_Class="_g6OzsNcdEd2nifBZRRnUOg"/>
+ <AcceleoBusiness:Service xmi:id="_dnw0oN40Ed2Q5-9ABN1uxA"/>
+ <AcceleoBusiness:Dto xmi:id="_tWFx4N44Ed2Q5-9ABN1uxA"/>
+ <AcceleoBusiness:Dto xmi:id="_t0xR8N44Ed2Q5-9ABN1uxA"/>
+ <AcceleoBusiness:Dto xmi:id="_uS5YYN44Ed2Q5-9ABN1uxA"/>
+ <AcceleoBusiness:Dto xmi:id="_u0d0YN44Ed2Q5-9ABN1uxA"/>
+ <AcceleoBusiness:Dto xmi:id="_-B-gYN44Ed2Q5-9ABN1uxA"/>
+ <AcceleoBusiness:Service xmi:id="_JHaxgOCvEd2azvOuM1o-5g"/>
+ <AcceleoBusiness:Remote xmi:id="_leZDgOFyEd2_mrdRrPOl2g"/>
+ <AcceleoBusiness:Config xmi:id="_Cp7zwOI7Ed2T1_-09lWd5Q"/>
+ <AcceleoBusiness:Service xmi:id="_yQ9vYOPpEd2zfYSdqx49HA"/>
+ <AcceleoBusiness:Remote xmi:id="_Z_wY0OPqEd2zfYSdqx49HA"/>
+ <AcceleoBusiness:Remote xmi:id="_f6pC4OPqEd2zfYSdqx49HA"/>
+ <AcceleoBusiness:Remote xmi:id="_l7xe4OPqEd2zfYSdqx49HA"/>
+ <AcceleoBusiness:Remote xmi:id="_1s1nsOYKEd2J1PltzDe2qg"/>
+ <AcceleoBusiness:Service xmi:id="_xw73AOh0Ed25AsNl_TBRDQ" base_Class="_dMNk0OhrEd25AsNl_TBRDQ"/>
+ <AcceleoBusiness:Dto xmi:id="_yLnA0Oh0Ed25AsNl_TBRDQ" base_Class="_kXbRgOhvEd25AsNl_TBRDQ"/>
+ <AcceleoBusiness:Remote xmi:id="_U85B4OiKEd25AsNl_TBRDQ" base_Operation="_fbp34OhrEd25AsNl_TBRDQ"/>
+ <AcceleoBusiness:Remote xmi:id="_VO0fYOiKEd25AsNl_TBRDQ" base_Operation="_hzn00OhrEd25AsNl_TBRDQ"/>
+ <AcceleoBusiness:Remote xmi:id="_Vr414OiKEd25AsNl_TBRDQ" base_Operation="_j-yr4OhrEd25AsNl_TBRDQ"/>
+ <AcceleoBusiness:Remote xmi:id="_WBM-kOiKEd25AsNl_TBRDQ" base_Operation="_pSZ6kOhrEd25AsNl_TBRDQ"/>
+ <AcceleoBusiness:Remote xmi:id="_WRbL4OiKEd25AsNl_TBRDQ" base_Operation="_NaoF8OhsEd25AsNl_TBRDQ"/>
+ <AcceleoBusiness:Remote xmi:id="_WhQXoOiKEd25AsNl_TBRDQ" base_Operation="_Wlc2wOhsEd25AsNl_TBRDQ"/>
+ <AcceleoBusiness:Remote xmi:id="_W2lucOiKEd25AsNl_TBRDQ" base_Operation="_cYvEAOhsEd25AsNl_TBRDQ"/>
+ <AcceleoBusiness:Remote xmi:id="_XFno8OiKEd25AsNl_TBRDQ" base_Operation="_ccEPYOhtEd25AsNl_TBRDQ"/>
+ <AcceleoBusiness:Remote xmi:id="_XTfs4OiKEd25AsNl_TBRDQ" base_Operation="_kxi3IOhuEd25AsNl_TBRDQ"/>
+ <AcceleoBusiness:Remote xmi:id="_XhgTsOiKEd25AsNl_TBRDQ" base_Operation="_mu5UoOhuEd25AsNl_TBRDQ"/>
+ <AcceleoBusiness:Remote xmi:id="_Xwr_MOiKEd25AsNl_TBRDQ" base_Operation="_oerQMOhuEd25AsNl_TBRDQ"/>
+ <AcceleoBusiness:Remote xmi:id="_rWjykOiKEd25AsNl_TBRDQ" base_Operation="_YL-0EOiKEd25AsNl_TBRDQ"/>
+ <AcceleoBusiness:Remote xmi:id="_0Lt1YOiKEd25AsNl_TBRDQ" base_Operation="_spkSkOiKEd25AsNl_TBRDQ"/>
+ <AcceleoBusiness:Dto xmi:id="_sDhpMOktEd2VcLeORko10g" base_Class="_0hSnEOkqEd2VcLeORko10g"/>
+ <AcceleoBusiness:Service xmi:id="_wVEW4OktEd2VcLeORko10g" base_Class="_x1MNMOkqEd2VcLeORko10g"/>
+ <AcceleoBusiness:Remote xmi:id="_duFiwOkvEd2w6L86tbByuw" base_Operation="_x1MNMekqEd2VcLeORko10g"/>
+ <AcceleoBusiness:Remote xmi:id="_ek85UOkvEd2w6L86tbByuw" base_Operation="_x1MNM-kqEd2VcLeORko10g"/>
+ <AcceleoBusiness:Remote xmi:id="_fJRHUOkvEd2w6L86tbByuw" base_Operation="_x1MNOOkqEd2VcLeORko10g"/>
+ <AcceleoBusiness:Remote xmi:id="_c3i04OxnEd2cCItakgS7Lg" base_Operation="_xNxvMOxcEd2y9MAFkymhaQ"/>
+ <AcceleoBusiness:Dto xmi:id="_AMxRUO6-Ed2vc7ElAwQEXw" base_Class="_zqte8O69Ed2vc7ElAwQEXw"/>
+ <AcceleoBusiness:Dto xmi:id="_EfieIPEbEd2U9JmEC6FyWg" base_Class="_37knQPEaEd2U9JmEC6FyWg"/>
+ <AcceleoBusiness:Service xmi:id="_mtIhIPOSEd2JbqIoInRhNw" base_Class="_YPxfsPOSEd2JbqIoInRhNw"/>
+ <AcceleoBusiness:Service xmi:id="_jw0j8PQ1Ed22_7AHmZR45g" base_Class="_t_rlofQqEd2JbqIoInRhNw"/>
+ <AcceleoBusiness:Service xmi:id="_kOewUPQ1Ed22_7AHmZR45g" base_Class="_t_rlqPQqEd2JbqIoInRhNw"/>
+ <Sharengoserviceprofile_1:Embedded xmi:id="_u4YxoPbPEd2So46ZaKFSQw" base_Association="_bMCi2vbPEd2So46ZaKFSQw"/>
+ <Sharengoserviceprofile_1:Embedded xmi:id="_vSpEsPbPEd2So46ZaKFSQw" base_Association="_YRqcafbPEd2So46ZaKFSQw"/>
+ <Sharengoserviceprofile_1:Embedded xmi:id="_vvA3oPbPEd2So46ZaKFSQw" base_Association="_Yox76vbPEd2So46ZaKFSQw"/>
+ <Sharengoserviceprofile_1:Embedded xmi:id="_wQ5csPbPEd2So46ZaKFSQw" base_Association="_ZFY_avbPEd2So46ZaKFSQw"/>
+ <Sharengoserviceprofile_1:Embedded xmi:id="_xGExMPbPEd2So46ZaKFSQw" base_Association="_bpabWvbPEd2So46ZaKFSQw"/>
+ <Sharengoserviceprofile_1:Embedded xmi:id="_xrADMPbPEd2So46ZaKFSQw" base_Association="_cIsYWvbPEd2So46ZaKFSQw"/>
+ <Sharengoserviceprofile_1:Embedded xmi:id="_y7RYQPbPEd2So46ZaKFSQw"/>
+ <Sharengoserviceprofile_1:Embedded xmi:id="_JV-qwPbQEd2So46ZaKFSQw" base_Association="_ZeZ8WvbPEd2So46ZaKFSQw"/>
+ <Sharengoserviceprofile_1:Embedded xmi:id="_EJUjMPbREd2So46ZaKFSQw" base_Association="_CQag2vbREd2So46ZaKFSQw"/>
+ <AcceleoBusiness:Service xmi:id="_MHXs8PbTEd2HpdG1FYiBVQ"/>
+ <AcceleoBusiness:Dao xmi:id="_MnUYUPbTEd2HpdG1FYiBVQ"/>
+ <AcceleoBusiness:Entity xmi:id="_NNavAPbTEd2HpdG1FYiBVQ"/>
+ <AcceleoBusiness:Dto xmi:id="_NsssAPbTEd2HpdG1FYiBVQ"/>
+ <AcceleoBusiness:Remote xmi:id="_GCbdEPbVEd2HpdG1FYiBVQ"/>
+ <AcceleoBusiness:Remote xmi:id="_Gs59cPbVEd2HpdG1FYiBVQ"/>
+ <AcceleoBusiness:Remote xmi:id="_HU-DAPbVEd2HpdG1FYiBVQ"/>
+ <AcceleoBusiness:Remote xmi:id="_Hy4HAPbVEd2HpdG1FYiBVQ"/>
+ <AcceleoBusiness:Remote xmi:id="_IN_8wPbVEd2HpdG1FYiBVQ"/>
+ <AcceleoBusiness:Remote xmi:id="_Ip0WEPbVEd2HpdG1FYiBVQ"/>
+ <AcceleoBusiness:Remote xmi:id="_JDOUkPbVEd2HpdG1FYiBVQ"/>
+ <AcceleoBusiness:Remote xmi:id="_Jb0awPbVEd2HpdG1FYiBVQ"/>
+ <AcceleoBusiness:Remote xmi:id="_J55d4PbVEd2HpdG1FYiBVQ"/>
+ <AcceleoBusiness:Remote xmi:id="_KSPscPbVEd2HpdG1FYiBVQ"/>
+ <AcceleoBusiness:Remote xmi:id="_KsCFcPbVEd2HpdG1FYiBVQ"/>
+ <AcceleoBusiness:Remote xmi:id="_LEpZwPbVEd2HpdG1FYiBVQ"/>
+ <AcceleoBusiness:Remote xmi:id="_LbWCgPbVEd2HpdG1FYiBVQ"/>
+ <AcceleoBusiness:Remote xmi:id="_L2S5IPbVEd2HpdG1FYiBVQ"/>
+ <AcceleoBusiness:Remote xmi:id="_MM2X8PbVEd2HpdG1FYiBVQ"/>
+ <AcceleoBusiness:Remote xmi:id="_MmmUsPbVEd2HpdG1FYiBVQ"/>
+ <AcceleoBusiness:Remote xmi:id="_NAZUwPbVEd2HpdG1FYiBVQ"/>
+ <AcceleoBusiness:Remote xmi:id="_NZhmcPbVEd2HpdG1FYiBVQ"/>
+ <AcceleoBusiness:Remote xmi:id="_N0cA0PbVEd2HpdG1FYiBVQ"/>
+ <Sharengoserviceprofile_1:Embedded xmi:id="_-alsEPdPEd2So46ZaKFSQw" base_Association="_EhHa6vdPEd2So46ZaKFSQw"/>
+ <Sharengoserviceprofile_1:Embedded xmi:id="_-3lKEPdPEd2So46ZaKFSQw" base_Association="_yHKBCvdOEd2So46ZaKFSQw"/>
+ <Sharengoserviceprofile_1:Embedded xmi:id="__YeQoPdPEd2So46ZaKFSQw" base_Association="_HtwWCvdPEd2So46ZaKFSQw"/>
+ <Sharengoserviceprofile_1:Embedded xmi:id="__0ZXoPdPEd2So46ZaKFSQw" base_Association="_yZixivdOEd2So46ZaKFSQw"/>
+ <Sharengoserviceprofile_1:Embedded xmi:id="_ART9IPdQEd2So46ZaKFSQw" base_Association="_DsL-CvdPEd2So46ZaKFSQw"/>
+ <Sharengoserviceprofile_1:Embedded xmi:id="_Azy_IPdQEd2So46ZaKFSQw" base_Association="_v0cXgPdOEd2So46ZaKFSQw"/>
+ <Sharengoserviceprofile_1:Embedded xmi:id="_2198sPdSEd28Bvfkb-l2ww" base_Association="_ZFg2kPdQEd2So46ZaKFSQw"/>
+ <Sharengoserviceprofile_1:CrudService xmi:id="_rU-McPdXEd2lh9IJqfaKxQ" base_Class="_s08WwKGqEd2ENuCUfYNU7A"/>
+ <AcceleoBusiness:Dto xmi:id="__u1VoPdkEd2Fr5Df5xrkyw"/>
+ <AcceleoBusiness:Dto xmi:id="_F5YzYPdlEd2Fr5Df5xrkyw"/>
+ <AcceleoBusiness:Remote xmi:id="_cEQTEPdlEd2Fr5Df5xrkyw" base_Operation="_aSQxAPdlEd2Fr5Df5xrkyw"/>
+ <AcceleoBusiness:Remote xmi:id="_tp6iMPdlEd2Fr5Df5xrkyw" base_Operation="_rz40svdlEd2Fr5Df5xrkyw"/>
+ <AcceleoBusiness:Remote xmi:id="_j7HOsPdyEd26SJHML9L6aA"/>
+ <AcceleoBusiness:Remote xmi:id="_kgksMPdyEd26SJHML9L6aA"/>
+ <AcceleoBusiness:Remote xmi:id="_lAQR0PdyEd26SJHML9L6aA"/>
+ <AcceleoBusiness:Remote xmi:id="_rN0x4PdzEd26SJHML9L6aA" base_Operation="_YPxfsfOSEd2JbqIoInRhNw"/>
+ <AcceleoBusiness:Remote xmi:id="_r23H0PdzEd26SJHML9L6aA" base_Operation="_YPxft_OSEd2JbqIoInRhNw"/>
+ <AcceleoBusiness:Remote xmi:id="_sWwv4PdzEd26SJHML9L6aA" base_Operation="_YPxfvfOSEd2JbqIoInRhNw"/>
+ <AcceleoBusiness:Dto xmi:id="_NFHhwPhLEd2EUscs1VHtew"/>
+ <AcceleoBusiness:Entity xmi:id="_ylZS8PhQEd2Hu-BP-VasxQ" base_Class="_wFp6GPhQEd2Hu-BP-VasxQ"/>
+ <AcceleoBusiness:Entity xmi:id="_Bz75sPhREd2Hu-BP-VasxQ" base_Class="_79nmmPhQEd2Hu-BP-VasxQ"/>
+ <AcceleoBusiness:Dao xmi:id="_eEflQPhREd2Hu-BP-VasxQ" base_Class="_bxj5WPhREd2Hu-BP-VasxQ"/>
+ <AcceleoBusiness:Dao xmi:id="_lrwRkPhREd2Hu-BP-VasxQ" base_Class="_hUWziPhREd2Hu-BP-VasxQ"/>
+ <Sharengoserviceprofile_1:Embedded xmi:id="_C2XqQPhVEd2du7_XCS7v_A" base_Association="_B3oxKfhVEd2du7_XCS7v_A"/>
+ <Sharengoserviceprofile_1:Embedded xmi:id="_KrM4gPhVEd2du7_XCS7v_A" base_Association="_J6nwKfhVEd2du7_XCS7v_A"/>
+ <AcceleoBusiness:Dto xmi:id="_JdAKkPhWEd2HjeLblxEjvQ"/>
+ <AcceleoBusiness:Remote xmi:id="_UzsG8Pm_Ed2-r9_matJLyA" base_Operation="_P3yNoPm_Ed2-r9_matJLyA"/>
+ <AcceleoBusiness:Remote xmi:id="_v-gScPm_Ed2-r9_matJLyA" base_Operation="_pBtfcvm_Ed2-r9_matJLyA"/>
+ <AcceleoBusiness:Remote xmi:id="_LGnycPnEEd2-r9_matJLyA" base_Operation="_2a80ovnDEd2-r9_matJLyA"/>
+ <AcceleoBusiness:Dto xmi:id="_LKMGAPnTEd2T75KyApI1XQ" base_Class="_k4ogWPm2Ed2ngN8mqQoDPw"/>
+ <Sharengoserviceprofile_1:CrudService xmi:id="_CWW90P9CEd2Qm_QM6AOnsQ" base_Class="_xswuUP9BEd2Qm_QM6AOnsQ"/>
+ <AcceleoBusiness:Remote xmi:id="_Hm_xAP9CEd2Qm_QM6AOnsQ" base_Operation="_EmUOQP9CEd2Qm_QM6AOnsQ"/>
+ <AcceleoBusiness:Remote xmi:id="_H8lmgP9CEd2Qm_QM6AOnsQ"/>
+ <AcceleoBusiness:Entity xmi:id="_pLVDUP9CEd2Qm_QM6AOnsQ" base_Class="_g3AcsP9CEd2Qm_QM6AOnsQ"/>
+ <AcceleoBusiness:Dto xmi:id="_phQQAP9CEd2Qm_QM6AOnsQ" base_Class="_e8X8AP9CEd2Qm_QM6AOnsQ"/>
+ <AcceleoBusiness:Remote xmi:id="_NgHzoP9aEd2Qm_QM6AOnsQ"/>
+ <AcceleoBusiness:Dao xmi:id="_0ILegP9aEd25BaYHbAwXwQ" base_Class="_poU0cP9aEd25BaYHbAwXwQ"/>
+ <AcceleoBusiness:Remote xmi:id="_KSM_wAHDEd6YN9j9rf_V2Q" base_Operation="_DhEDIAHDEd6YN9j9rf_V2Q"/>
+ <AcceleoBusiness:Entity xmi:id="_ipZugAJPEd6NXsEhrbvcFg"/>
+ <AcceleoBusiness:Dao xmi:id="_ygvaoAJPEd6NXsEhrbvcFg"/>
+ <AcceleoBusiness:Remote xmi:id="_XzHsAAJQEd6NXsEhrbvcFg"/>
+ <AcceleoBusiness:Remote xmi:id="_YN0rAAJQEd6NXsEhrbvcFg"/>
+ <AcceleoBusiness:Remote xmi:id="_Yuo5EAJQEd6NXsEhrbvcFg"/>
+ <AcceleoBusiness:Remote xmi:id="_4JpbUAmLEd63k8rLfgI_ng" base_Operation="_M-qAgAl6Ed63k8rLfgI_ng"/>
+ <AcceleoBusiness:Entity xmi:id="_LLTdQA5AEd6KQuvMUCD2yg" base_Class="_GyHPcA5AEd6KQuvMUCD2yg"/>
+ <AcceleoBusiness:Entity xmi:id="_XcAZ4A5AEd6KQuvMUCD2yg" base_Class="_Vpjk0A5AEd6KQuvMUCD2yg"/>
+ <AcceleoBusiness:Entity xmi:id="_nWh84A5AEd6KQuvMUCD2yg" base_Class="_l5XbUA5AEd6KQuvMUCD2yg"/>
+ <AcceleoBusiness:Entity xmi:id="_AzVucA5BEd6KQuvMUCD2yg" base_Class="__T4G0A5AEd6KQuvMUCD2yg"/>
+ <AcceleoBusiness:Entity xmi:id="_z55hYA5BEd6KQuvMUCD2yg" base_Class="_xntcUA5BEd6KQuvMUCD2yg"/>
+ <AcceleoBusiness:Dao xmi:id="_K1y_8A5DEd6KQuvMUCD2yg" base_Class="_GTtU0A5DEd6KQuvMUCD2yg"/>
+ <AcceleoBusiness:Dao xmi:id="_MTBy8A5DEd6KQuvMUCD2yg" base_Class="_LybnUA5DEd6KQuvMUCD2yg"/>
+ <AcceleoBusiness:Dao xmi:id="_R4AecA5DEd6KQuvMUCD2yg" base_Class="_QWfBUA5DEd6KQuvMUCD2yg"/>
+ <AcceleoBusiness:Dao xmi:id="_UZcgcA5DEd6KQuvMUCD2yg" base_Class="_SRUWUA5DEd6KQuvMUCD2yg"/>
+ <AcceleoBusiness:Dao xmi:id="_fV0ucA5DEd6KQuvMUCD2yg" base_Class="_e9siUA5DEd6KQuvMUCD2yg"/>
+ <AcceleoBusiness:Dto xmi:id="_JGEx8A5HEd6KQuvMUCD2yg" base_Class="_EGAKUA5HEd6KQuvMUCD2yg"/>
+ <AcceleoBusiness:Dto xmi:id="_ZogCcA5HEd6KQuvMUCD2yg" base_Class="_Vcdf0A5HEd6KQuvMUCD2yg"/>
+ <AcceleoBusiness:Service xmi:id="_7yqJMA5IEd6KQuvMUCD2yg" base_Class="_d9MVUA5IEd6KQuvMUCD2yg"/>
+ <AcceleoBusiness:Service xmi:id="_8GaysA5IEd6KQuvMUCD2yg" base_Class="_gUQTUA5IEd6KQuvMUCD2yg"/>
+ <AcceleoBusiness:Service xmi:id="_8WDxMA5IEd6KQuvMUCD2yg" base_Class="_hm9RUA5IEd6KQuvMUCD2yg"/>
+ <AcceleoBusiness:Service xmi:id="_8orLMA5IEd6KQuvMUCD2yg" base_Class="_lYRm0A5IEd6KQuvMUCD2yg"/>
+ <AcceleoBusiness:Service xmi:id="_89IYQA5IEd6KQuvMUCD2yg" base_Class="_sw1v0A5IEd6KQuvMUCD2yg"/>
+ <AcceleoBusiness:Service xmi:id="_9hNVsA5IEd6KQuvMUCD2yg" base_Class="_x4510A5IEd6KQuvMUCD2yg"/>
+ <AcceleoBusiness:Remote xmi:id="_JqCIsA5JEd6KQuvMUCD2yg" base_Operation="_B27_0A5JEd6KQuvMUCD2yg"/>
+ <AcceleoBusiness:Remote xmi:id="_6aOEsA5KEd6KQuvMUCD2yg" base_Operation="_g-XK0A5JEd6KQuvMUCD2yg"/>
+ <AcceleoBusiness:Remote xmi:id="_6zA_MA5KEd6KQuvMUCD2yg" base_Operation="_qUDH0A5JEd6KQuvMUCD2yg"/>
+ <AcceleoBusiness:Remote xmi:id="_7NCBsA5KEd6KQuvMUCD2yg" base_Operation="_uvLPUA5JEd6KQuvMUCD2yg"/>
+ <AcceleoBusiness:Remote xmi:id="_7gGusA5KEd6KQuvMUCD2yg" base_Operation="_0Vhz0A5JEd6KQuvMUCD2yg"/>
+ <AcceleoBusiness:Remote xmi:id="_71GHQA5KEd6KQuvMUCD2yg" base_Operation="_BZVBUA5KEd6KQuvMUCD2yg"/>
+ <AcceleoBusiness:Remote xmi:id="_7BXHwA5LEd6KQuvMUCD2yg" base_Operation="_cthV0A5LEd6KQuvMUCD2yg"/>
+ <AcceleoBusiness:Remote xmi:id="_7TqYsA5LEd6KQuvMUCD2yg" base_Operation="_mIKrUA5LEd6KQuvMUCD2yg"/>
+ <AcceleoBusiness:Remote xmi:id="_7nkzMA5LEd6KQuvMUCD2yg" base_Operation="_uafG0A5LEd6KQuvMUCD2yg"/>
+ <AcceleoBusiness:Remote xmi:id="_8AN8sA5LEd6KQuvMUCD2yg" base_Operation="_4z_4UA5LEd6KQuvMUCD2yg"/>
+ <AcceleoBusiness:Remote xmi:id="_VrIJwA5OEd6KQuvMUCD2yg" base_Operation="_SrRYUA5MEd6KQuvMUCD2yg"/>
+ <AcceleoBusiness:Remote xmi:id="_V-qJwA5OEd6KQuvMUCD2yg" base_Operation="_i8OeUA5MEd6KQuvMUCD2yg"/>
+ <AcceleoBusiness:Remote xmi:id="_WPrBQA5OEd6KQuvMUCD2yg" base_Operation="_u3eIUQ5MEd6KQuvMUCD2yg"/>
+ <AcceleoBusiness:Remote xmi:id="_WgYWwA5OEd6KQuvMUCD2yg" base_Operation="_2zvbUA5MEd6KQuvMUCD2yg"/>
+ <AcceleoBusiness:Remote xmi:id="_WyTNMA5OEd6KQuvMUCD2yg" base_Operation="_8E4k0A5MEd6KQuvMUCD2yg"/>
+ <AcceleoBusiness:Remote xmi:id="_XF_lQA5OEd6KQuvMUCD2yg" base_Operation="_SFzeUg5NEd6KQuvMUCD2yg"/>
+ <AcceleoBusiness:Remote xmi:id="_XXxRwA5OEd6KQuvMUCD2yg" base_Operation="_6GnE0A5NEd6KQuvMUCD2yg"/>
+ <AcceleoBusiness:Remote xmi:id="_Xn3jQA5OEd6KQuvMUCD2yg" base_Operation="_C6f8UA5OEd6KQuvMUCD2yg"/>
+ <AcceleoBusiness:Remote xmi:id="_X5L8wA5OEd6KQuvMUCD2yg" base_Operation="_NOD20Q5OEd6KQuvMUCD2yg"/>
+ <AcceleoBusiness:Remote xmi:id="_bSnhQA5PEd6KQuvMUCD2yg" base_Operation="_tEZ9Ug5OEd6KQuvMUCD2yg"/>
+ <AcceleoBusiness:Remote xmi:id="_bjoYwA5PEd6KQuvMUCD2yg" base_Operation="_KcJTYA5PEd6KQuvMUCD2yg"/>
+ <AcceleoBusiness:Remote xmi:id="_b6bvMA5PEd6KQuvMUCD2yg" base_Operation="_OmBS0A5PEd6KQuvMUCD2yg"/>
+ <AcceleoBusiness:Remote xmi:id="_cJjJQA5PEd6KQuvMUCD2yg" base_Operation="_UXgwUg5PEd6KQuvMUCD2yg"/>
+ <AcceleoBusiness:Remote xmi:id="_YVjdwA5QEd6KQuvMUCD2yg" base_Operation="_ww1WUg5PEd6KQuvMUCD2yg"/>
+ <AcceleoBusiness:Remote xmi:id="_YqADwA5QEd6KQuvMUCD2yg" base_Operation="_5V_1Ug5PEd6KQuvMUCD2yg"/>
+ <AcceleoBusiness:Remote xmi:id="_Y7n_QA5QEd6KQuvMUCD2yg" base_Operation="_SK5SUg5QEd6KQuvMUCD2yg"/>
+ <AcceleoBusiness:Remote xmi:id="_LfzkQA5ZEd6KQuvMUCD2yg" base_Operation="_lKjk0g5REd6KQuvMUCD2yg"/>
+ <AcceleoBusiness:Remote xmi:id="_L2oI0A5ZEd6KQuvMUCD2yg" base_Operation="_sKGJ0g5REd6KQuvMUCD2yg"/>
+ <AcceleoBusiness:Remote xmi:id="_MTUE0A5ZEd6KQuvMUCD2yg" base_Operation="_zV1-0g5REd6KQuvMUCD2yg"/>
+ <AcceleoBusiness:Remote xmi:id="_MniBUA5ZEd6KQuvMUCD2yg" base_Operation="_Nk_zUg5SEd6KQuvMUCD2yg"/>
+ <AcceleoBusiness:Remote xmi:id="_M9u60A5ZEd6KQuvMUCD2yg"/>
+ <AcceleoBusiness:Remote xmi:id="_NV6KQA5ZEd6KQuvMUCD2yg"/>
+ <AcceleoBusiness:Remote xmi:id="_Nsk90A5ZEd6KQuvMUCD2yg" base_Operation="_VpupUg5TEd6KQuvMUCD2yg"/>
+ <AcceleoBusiness:Remote xmi:id="_OGmAUA5ZEd6KQuvMUCD2yg"/>
+ <AcceleoBusiness:Remote xmi:id="_OePrUA5ZEd6KQuvMUCD2yg"/>
+ <AcceleoBusiness:Remote xmi:id="_Oy_zUA5ZEd6KQuvMUCD2yg" base_Operation="_4uEgYA5UEd6KQuvMUCD2yg"/>
+ <AcceleoBusiness:Remote xmi:id="_PKRq4A5ZEd6KQuvMUCD2yg"/>
+ <AcceleoBusiness:Remote xmi:id="_PdaCQA5ZEd6KQuvMUCD2yg"/>
+ <AcceleoBusiness:Remote xmi:id="_PyT7QA5ZEd6KQuvMUCD2yg" base_Operation="_g1If4A5VEd6KQuvMUCD2yg"/>
+ <AcceleoBusiness:Remote xmi:id="_QKqJ0A5ZEd6KQuvMUCD2yg"/>
+ <AcceleoBusiness:Remote xmi:id="_QdlF0A5ZEd6KQuvMUCD2yg"/>
+ <AcceleoBusiness:Remote xmi:id="_Q3DVwA5ZEd6KQuvMUCD2yg" base_Operation="_cnHx4A5WEd6KQuvMUCD2yg"/>
+ <AcceleoBusiness:Remote xmi:id="_RLIIUA5ZEd6KQuvMUCD2yg"/>
+ <AcceleoBusiness:Remote xmi:id="_RhtcUA5ZEd6KQuvMUCD2yg"/>
+ <AcceleoBusiness:Remote xmi:id="_R3XjQA5ZEd6KQuvMUCD2yg" base_Operation="_LY45YA5YEd6KQuvMUCD2yg"/>
+ <AcceleoBusiness:Remote xmi:id="_a0eEUA5dEd6KQuvMUCD2yg" base_Operation="_Mz9MYA5cEd6KQuvMUCD2yg"/>
+ <AcceleoBusiness:Remote xmi:id="_bK1V4A5dEd6KQuvMUCD2yg" base_Operation="_YWVDYA5cEd6KQuvMUCD2yg"/>
+ <AcceleoBusiness:Remote xmi:id="_be9y0A5dEd6KQuvMUCD2yg" base_Operation="_b4sW4A5cEd6KQuvMUCD2yg"/>
+ <AcceleoBusiness:Remote xmi:id="_rkZlUA5dEd6KQuvMUCD2yg" base_Operation="_p-Fd4A5UEd6KQuvMUCD2yg"/>
+ <AcceleoBusiness:Remote xmi:id="_zVlFYA7bEd6GlpMc1IXijg" base_Operation="_sM9c4A7bEd6GlpMc1IXijg"/>
+ <AcceleoBusiness:Remote xmi:id="_RxOIcA7cEd6GlpMc1IXijg" base_Operation="_G-TYcA7cEd6GlpMc1IXijg"/>
+ <AcceleoBusiness:Service xmi:id="_iRrFMA7rEd67kIKaKolRBA" base_Class="_fbDdYA7rEd67kIKaKolRBA"/>
+ <AcceleoBusiness:Remote xmi:id="_v09rEA7rEd67kIKaKolRBA" base_Operation="_tnIhkA7rEd67kIKaKolRBA"/>
+ <AcceleoBusiness:Dto xmi:id="_sVPs0A70Ed6i07THnW3V5A" base_Class="_pn_cYA70Ed6i07THnW3V5A"/>
+ <AcceleoBusiness:Remote xmi:id="_af8-4A73Ed6i07THnW3V5A"/>
+ <AcceleoBusiness:Remote xmi:id="_xjWzoA74Ed6i07THnW3V5A" base_Operation="_rAF68A74Ed6i07THnW3V5A"/>
+ <AcceleoBusiness:Remote xmi:id="_h89hwBISEd6Rc4a-4dQbWA" base_Operation="_KRUy4BISEd6Rc4a-4dQbWA"/>
+ <AcceleoBusiness:Remote xmi:id="_idE-wBPfEd6gmdaSlhZGXg" base_Operation="_So_a8BPfEd6gmdaSlhZGXg"/>
+ <AcceleoBusiness:Remote xmi:id="_4FeoQBVYEd6ea7tnvz6BlA" base_Operation="_x2UXUBVYEd6ea7tnvz6BlA"/>
+ <AcceleoBusiness:Remote xmi:id="_cpnBoBVbEd6ea7tnvz6BlA" base_Operation="_Wot2MBVbEd6ea7tnvz6BlA"/>
+ <AcceleoBusiness:Remote xmi:id="_ht4HIB06Ed6sNL3iT4yqBg" base_Operation="_QjYxEB06Ed6sNL3iT4yqBg"/>
+ <AcceleoBusiness:Remote xmi:id="_3CUfsB07Ed6sNL3iT4yqBg" base_Operation="_rC78kB07Ed6sNL3iT4yqBg"/>
+ <AcceleoBusiness:Remote xmi:id="_Sxd-8B1KEd6sNL3iT4yqBg" base_Operation="__OwNQB1JEd6sNL3iT4yqBg"/>
+ <AcceleoBusiness:Remote xmi:id="_i6T7QB3NEd6Rqt7TeCJVaw" base_Operation="_3Mv3gB2-Ed6dVI2yFn6RnA"/>
+ <AcceleoBusiness:Remote xmi:id="_jcxIEB3NEd6Rqt7TeCJVaw" base_Operation="_FRkdIB2_Ed6dVI2yFn6RnA"/>
+ <AcceleoBusiness:Dto xmi:id="_gayOsB3WEd6Rqt7TeCJVaw" base_Class="_D5ipwB08Ed6sNL3iT4yqBg"/>
+ <AcceleoBusiness:Dto xmi:id="_hSLwwB3WEd6Rqt7TeCJVaw" base_Class="_SsxC8B07Ed6sNL3iT4yqBg"/>
+ <AcceleoBusiness:Remote xmi:id="_ehoT4B4GEd6Hj8IcKtrWfg" base_Operation="_OPZbgB4GEd6Hj8IcKtrWfg"/>
+ <AcceleoBusiness:Remote xmi:id="_X_ZrEB4IEd6Hj8IcKtrWfg" base_Operation="_HPxsEB4IEd6Hj8IcKtrWfg"/>
+ <AcceleoBusiness:Remote xmi:id="_a6yeIB4IEd6Hj8IcKtrWfg" base_Operation="_py7zkB4HEd6Hj8IcKtrWfg"/>
+ <AcceleoBusiness:Remote xmi:id="_NJIQUB9hEd6Y0pLDes4cng" base_Operation="_x5fPMB9gEd6Y0pLDes4cng"/>
+ <AcceleoBusiness:Remote xmi:id="_O2slYB9hEd6Y0pLDes4cng" base_Operation="_9_TKcB9gEd6Y0pLDes4cng"/>
+ <AcceleoBusiness:Remote xmi:id="_sU5BYB9kEd6Y0pLDes4cng" base_Operation="_jDLlcB9kEd6Y0pLDes4cng"/>
+ <AcceleoBusiness:Remote xmi:id="_rHBgQB-JEd6aY9VmaJwuZQ" base_Operation="_iIAW0B-JEd6aY9VmaJwuZQ"/>
+ <AcceleoBusiness:Remote xmi:id="_j5EaoCAfEd6Rg765w0YsUw" base_Operation="_66ztYCAeEd6Rg765w0YsUw"/>
+ <AcceleoBusiness:Remote xmi:id="_JATqoCAuEd6Rg765w0YsUw" base_Operation="_2vPuECAtEd6Rg765w0YsUw"/>
+ <AcceleoBusiness:Remote xmi:id="_hN4hwCBWEd65zZRswDaukg" base_Operation="_bTjRUCBWEd65zZRswDaukg"/>
+ <AcceleoBusiness:Remote xmi:id="_gCusUCK-Ed6OMJznllRp2A" base_Operation="_W46oICK-Ed6OMJznllRp2A"/>
+ <AcceleoBusiness:Service xmi:id="_g_vuMCK-Ed6OMJznllRp2A" base_Class="_J7MKQCK6Ed6OMJznllRp2A"/>
+ <AcceleoBusiness:Remote xmi:id="_haX0sCK-Ed6OMJznllRp2A" base_Operation="_O1wm0CK6Ed6OMJznllRp2A"/>
+ <AcceleoBusiness:Remote xmi:id="_iAVogCK-Ed6OMJznllRp2A" base_Operation="_lBWfQCK6Ed6OMJznllRp2A"/>
+ <AcceleoBusiness:Remote xmi:id="_i4WOkCK-Ed6OMJznllRp2A" base_Operation="_mkwLsCK6Ed6OMJznllRp2A"/>
+ <AcceleoBusiness:Remote xmi:id="_jmvloCK-Ed6OMJznllRp2A" base_Operation="_qMXyoCK6Ed6OMJznllRp2A"/>
+ <AcceleoBusiness:Remote xmi:id="_j6eZ8CK-Ed6OMJznllRp2A" base_Operation="_tLGNkCK6Ed6OMJznllRp2A"/>
+ <AcceleoBusiness:Remote xmi:id="_kSl_ACK-Ed6OMJznllRp2A" base_Operation="_yWYmsCK6Ed6OMJznllRp2A"/>
+ <AcceleoBusiness:Remote xmi:id="_kjycsCK-Ed6OMJznllRp2A" base_Operation="_z0I-ICK6Ed6OMJznllRp2A"/>
+ <AcceleoBusiness:Remote xmi:id="_k2dhECK-Ed6OMJznllRp2A" base_Operation="_1kb3ECK6Ed6OMJznllRp2A"/>
+ <AcceleoBusiness:Remote xmi:id="_lKBWQCK-Ed6OMJznllRp2A" base_Operation="_5HypECK6Ed6OMJznllRp2A"/>
+ <AcceleoBusiness:Remote xmi:id="_lddPoCK-Ed6OMJznllRp2A" base_Operation="_65srkCK6Ed6OMJznllRp2A"/>
+ <AcceleoBusiness:Remote xmi:id="_lvYGECK-Ed6OMJznllRp2A" base_Operation="_9VCFkCK6Ed6OMJznllRp2A"/>
+ <AcceleoBusiness:Remote xmi:id="_mB7OoCK-Ed6OMJznllRp2A" base_Operation="_BXvtECK7Ed6OMJznllRp2A"/>
+ <AcceleoBusiness:Remote xmi:id="_mUPGoCK-Ed6OMJznllRp2A" base_Operation="_CfszoCK7Ed6OMJznllRp2A"/>
+ <AcceleoBusiness:Remote xmi:id="_mpY3QCK-Ed6OMJznllRp2A" base_Operation="_FImvkCK7Ed6OMJznllRp2A"/>
+ <AcceleoBusiness:Remote xmi:id="_nASUUCK-Ed6OMJznllRp2A" base_Operation="_LMMCoCK7Ed6OMJznllRp2A"/>
+ <AcceleoBusiness:Remote xmi:id="_nScbUCK-Ed6OMJznllRp2A" base_Operation="_NVhGoCK7Ed6OMJznllRp2A"/>
+ <AcceleoBusiness:Remote xmi:id="_nkjfACK-Ed6OMJznllRp2A" base_Operation="_fX1ckCK7Ed6OMJznllRp2A"/>
+ <AcceleoBusiness:Remote xmi:id="_Gs_FcCNVEd6d3NARAvR2pQ" base_Operation="_0arywCNUEd6d3NARAvR2pQ"/>
+ <AcceleoBusiness:Remote xmi:id="_II5CwCNVEd6d3NARAvR2pQ" base_Operation="_sCRWUCNUEd6d3NARAvR2pQ"/>
+ <AcceleoBusiness:Remote xmi:id="_ImtAICNVEd6d3NARAvR2pQ" base_Operation="_6Vx4MCNUEd6d3NARAvR2pQ"/>
+ <AcceleoBusiness:Service xmi:id="_u9YGoCOCEd6gj5bfXc-Mvw"/>
+ <AcceleoBusiness:Remote xmi:id="_0ydDoCOCEd6gj5bfXc-Mvw"/>
+ <AcceleoBusiness:Remote xmi:id="_1T-cUCOCEd6gj5bfXc-Mvw"/>
+ <AcceleoBusiness:Remote xmi:id="_1uP9gCOCEd6gj5bfXc-Mvw"/>
+ <AcceleoBusiness:Remote xmi:id="_2G2qwCOCEd6gj5bfXc-Mvw"/>
+ <AcceleoBusiness:Remote xmi:id="_2bs5YCOCEd6gj5bfXc-Mvw"/>
+ <AcceleoBusiness:Remote xmi:id="_2tZtYCOCEd6gj5bfXc-Mvw"/>
+ <AcceleoBusiness:Remote xmi:id="_3BMzICOCEd6gj5bfXc-Mvw"/>
+ <AcceleoBusiness:Remote xmi:id="_3SFHwCOCEd6gj5bfXc-Mvw"/>
+ <AcceleoBusiness:Remote xmi:id="_3jgO8COCEd6gj5bfXc-Mvw"/>
+ <AcceleoBusiness:Remote xmi:id="_zh0bgCTdEd6QZ5hRjKYwWQ" base_Operation="_RXPBgCTdEd6QZ5hRjKYwWQ"/>
+ <AcceleoBusiness:Dto xmi:id="_-_A0EC2PEd6Baqqif9vVOQ" base_Class="_wmHRUC2OEd6Baqqif9vVOQ"/>
+ <AcceleoBusiness:Remote xmi:id="_6boDQCswEd6tjYAzTLw2Cw" base_Operation="_HG54gCswEd6tjYAzTLw2Cw"/>
+ <AcceleoBusiness:Remote xmi:id="_7CgdECswEd6tjYAzTLw2Cw" base_Operation="_F_XBoCswEd6tjYAzTLw2Cw"/>
+ <AcceleoBusiness:Remote xmi:id="_nVHP8CsxEd6tjYAzTLw2Cw" base_Operation="_esaUwCsxEd6tjYAzTLw2Cw"/>
+ <AcceleoBusiness:Remote xmi:id="_oLL8UCsxEd6tjYAzTLw2Cw" base_Operation="_gDgDgCsxEd6tjYAzTLw2Cw"/>
+ <AcceleoBusiness:Service xmi:id="_69zDwCtSEd6tjYAzTLw2Cw" base_Class="_2kgvUCtSEd6tjYAzTLw2Cw"/>
+ <AcceleoBusiness:Dto xmi:id="_XKp-QCtXEd6tjYAzTLw2Cw" base_Class="_55WnYCtWEd6tjYAzTLw2Cw"/>
+ <AcceleoBusiness:Remote xmi:id="_t46pcCtYEd6tjYAzTLw2Cw" base_Operation="_h84VQitYEd6tjYAzTLw2Cw"/>
+ <AcceleoBusiness:Remote xmi:id="_uURvwCtYEd6tjYAzTLw2Cw" base_Operation="_RV8YMCtYEd6tjYAzTLw2Cw"/>
+ <AcceleoBusiness:Remote xmi:id="_uq7VMCtYEd6tjYAzTLw2Cw" base_Operation="_DPFLMCtYEd6tjYAzTLw2Cw"/>
+ <AcceleoBusiness:Remote xmi:id="_vBMgICtYEd6tjYAzTLw2Cw"/>
+ <AcceleoBusiness:Remote xmi:id="_vZvjACtYEd6tjYAzTLw2Cw"/>
+ <AcceleoBusiness:Remote xmi:id="_vz6WgCtYEd6tjYAzTLw2Cw" base_Operation="_xD0xICtWEd6tjYAzTLw2Cw"/>
+ <AcceleoBusiness:Remote xmi:id="_wK2P0CtYEd6tjYAzTLw2Cw" base_Operation="_BElUcCtWEd6tjYAzTLw2Cw"/>
+ <AcceleoBusiness:Remote xmi:id="_wizc0CtYEd6tjYAzTLw2Cw" base_Operation="_RXQHICtVEd6tjYAzTLw2Cw"/>
+ <AcceleoBusiness:Remote xmi:id="_w87NACtYEd6tjYAzTLw2Cw" base_Operation="_P1nVQCtVEd6tjYAzTLw2Cw"/>
+ <AcceleoBusiness:Dto xmi:id="_AvtOoCtsEd6tjYAzTLw2Cw"/>
+ <AcceleoBusiness:Remote xmi:id="_OAOuUC2BEd6R-vHwJRLroA" base_Operation="_aCOWAC2AEd6R-vHwJRLroA"/>
+ <AcceleoBusiness:Remote xmi:id="_7xi7EC2mEd6R-vHwJRLroA" base_Operation="_TFR8wC2mEd6R-vHwJRLroA"/>
+ <AcceleoBusiness:Remote xmi:id="_SmWdcC5IEd6xvOBU31IlXw" base_Operation="_OsOxQC5IEd6xvOBU31IlXw"/>
+ <AcceleoBusiness:Remote xmi:id="_PS1sAC5NEd6xvOBU31IlXw" base_Operation="_54S2AC5MEd6xvOBU31IlXw"/>
+ <AcceleoBusiness:Remote xmi:id="_PpFo0C5NEd6xvOBU31IlXw" base_Operation="__C1oQC5MEd6xvOBU31IlXw"/>
+ <AcceleoBusiness:Service xmi:id="_nA-boC5VEd6W6LY8irJDig" base_Class="_jwI9AC5VEd6W6LY8irJDig"/>
+ <AcceleoBusiness:Remote xmi:id="_sT8xIC5VEd6W6LY8irJDig" base_Operation="_nj-bAC5VEd6W6LY8irJDig"/>
+ <AcceleoBusiness:Remote xmi:id="_L-FAkC5WEd6W6LY8irJDig" base_Operation="_-489YC5VEd6W6LY8irJDig"/>
+ <AcceleoBusiness:Remote xmi:id="_viAMEC5WEd6W6LY8irJDig" base_Operation="_fjrHIi5WEd6W6LY8irJDig"/>
+ <AcceleoBusiness:Remote xmi:id="_FHRrYC5XEd6W6LY8irJDig" base_Operation="_CkF88i5XEd6W6LY8irJDig"/>
+ <AcceleoBusiness:Remote xmi:id="_RsL9cC5XEd6W6LY8irJDig" base_Operation="_O5tOwC5XEd6W6LY8irJDig"/>
+ <AcceleoBusiness:Remote xmi:id="_dWhdoC5XEd6W6LY8irJDig" base_Operation="_cMvyIC5XEd6W6LY8irJDig"/>
+ <AcceleoBusiness:Remote xmi:id="_LfswkC5YEd6W6LY8irJDig" base_Operation="_JSuisC5YEd6W6LY8irJDig"/>
+ <AcceleoBusiness:Remote xmi:id="_c-F6EC5YEd6W6LY8irJDig" base_Operation="_SoZRki5YEd6W6LY8irJDig"/>
+ <AcceleoBusiness:Remote xmi:id="_ySg58C5YEd6W6LY8irJDig" base_Operation="_wa_XoC5YEd6W6LY8irJDig"/>
+ <AcceleoBusiness:Remote xmi:id="_zNT6AC5zEd6W6LY8irJDig" base_Operation="_wIjIgC5zEd6W6LY8irJDig"/>
+ <AcceleoBusiness:Service xmi:id="_jMubMC6HEd6ts7qX7YWm0w"/>
+ <AcceleoBusiness:Remote xmi:id="_UG6AsC6JEd6ts7qX7YWm0w"/>
+ <AcceleoBusiness:Remote xmi:id="_Uc7UAC6JEd6ts7qX7YWm0w"/>
+ <AcceleoBusiness:Remote xmi:id="_UwtysC6JEd6ts7qX7YWm0w"/>
+ <AcceleoBusiness:Remote xmi:id="_VCxMAC6JEd6ts7qX7YWm0w"/>
+ <AcceleoBusiness:Remote xmi:id="_VTtyEC6JEd6ts7qX7YWm0w"/>
+ <AcceleoBusiness:Remote xmi:id="_VnIdUC6JEd6ts7qX7YWm0w"/>
+ <AcceleoBusiness:Remote xmi:id="_V2rVMC6JEd6ts7qX7YWm0w"/>
+ <AcceleoBusiness:Remote xmi:id="_WG6JkC6JEd6ts7qX7YWm0w"/>
+ <AcceleoBusiness:Remote xmi:id="_WZH68C6JEd6ts7qX7YWm0w"/>
+ <AcceleoBusiness:Remote xmi:id="_WsHvcC6JEd6ts7qX7YWm0w"/>
+ <AcceleoBusiness:Remote xmi:id="_76VSgC6JEd6ts7qX7YWm0w" base_Operation="_6Zbgci6JEd6ts7qX7YWm0w"/>
+ <AcceleoBusiness:Remote xmi:id="_FRCWMC8ZEd6nTaxxaFh6RQ" base_Operation="_4Bi2EC8YEd6nTaxxaFh6RQ"/>
+ <AcceleoBusiness:Remote xmi:id="_HQhvcC8eEd6LoL7mDHS7Iw" base_Operation="_CafNkC8eEd6LoL7mDHS7Iw"/>
+ <AcceleoBusiness:Remote xmi:id="_sgoEsC8lEd6-MauFHegShA" base_Operation="_QyVYsC8lEd6-MauFHegShA"/>
+ <AcceleoBusiness:Remote xmi:id="_64Y0cC8lEd6-MauFHegShA" base_Operation="_zMZZIC8lEd6-MauFHegShA"/>
+ <AcceleoBusiness:Remote xmi:id="_C6cy4C_VEd60r8Vp-3Ec5w" base_Operation="_jGB_AC_UEd60r8Vp-3Ec5w"/>
+ <AcceleoBusiness:Remote xmi:id="_hy_-8C_WEd60r8Vp-3Ec5w" base_Operation="_ScERMC_WEd60r8Vp-3Ec5w"/>
+ <AcceleoBusiness:Remote xmi:id="_DH_vkC_pEd6m7Z8-52146A" base_Operation="_18f-oC_oEd6m7Z8-52146A"/>
+ <AcceleoBusiness:Remote xmi:id="_bueHUC_vEd6wTqNjal63Xg" base_Operation="_VvbWAC_vEd6wTqNjal63Xg"/>
+ <AcceleoBusiness:Remote xmi:id="_TcWy4DSfEd6SRfzb6Civ8A" base_Operation="_OQgZEDSfEd6SRfzb6Civ8A"/>
+ <AcceleoBusiness:Remote xmi:id="_w5db8DVhEd6Qg9MkiTPhqA" base_Operation="_v3FY8DVhEd6Qg9MkiTPhqA"/>
+ <AcceleoBusiness:Remote xmi:id="_pEE-oDViEd6Qg9MkiTPhqA" base_Operation="_cOJOADViEd6Qg9MkiTPhqA"/>
+ <AcceleoBusiness:Service xmi:id="_fpBHYD4_Ed6us98SLDIclA" base_Class="_aJeVgD4_Ed6us98SLDIclA"/>
+ <AcceleoBusiness:Remote xmi:id="_ngIisD5BEd6us98SLDIclA" base_Operation="_ZQkFoD5BEd6us98SLDIclA"/>
+ <AcceleoBusiness:Remote xmi:id="_GvapMD5CEd6us98SLDIclA" base_Operation="_uwRIcj5BEd6us98SLDIclA"/>
+ <AcceleoBusiness:Remote xmi:id="_nMLPcD5CEd6us98SLDIclA" base_Operation="_jKYN8j5CEd6us98SLDIclA"/>
+ <AcceleoBusiness:Remote xmi:id="_VsdlYD5EEd6us98SLDIclA" base_Operation="_wC3t4j5DEd6us98SLDIclA"/>
+ <AcceleoBusiness:Remote xmi:id="_AS_4AD5FEd6us98SLDIclA" base_Operation="_sgG8Uj5EEd6us98SLDIclA"/>
+ <AcceleoBusiness:Remote xmi:id="_R8zAQD5FEd6us98SLDIclA" base_Operation="_C_mBIj5FEd6us98SLDIclA"/>
+ <AcceleoBusiness:Remote xmi:id="_fFyPwD5FEd6us98SLDIclA" base_Operation="_TR5K8T5FEd6us98SLDIclA"/>
+ <AcceleoBusiness:Remote xmi:id="_vwbBED5FEd6us98SLDIclA" base_Operation="_jk9Jwj5FEd6us98SLDIclA"/>
+ <AcceleoBusiness:Remote xmi:id="_BEyr4D5GEd6us98SLDIclA" base_Operation="_zP9DAD5FEd6us98SLDIclA"/>
+ <AcceleoBusiness:Remote xmi:id="_WPg9MD5GEd6us98SLDIclA" base_Operation="_Fr5Z4D5GEd6us98SLDIclA"/>
+ <AcceleoBusiness:Remote xmi:id="_qkc2AD5GEd6us98SLDIclA" base_Operation="_ZV44Qj5GEd6us98SLDIclA"/>
+ <AcceleoBusiness:Remote xmi:id="_17SLYD5GEd6us98SLDIclA" base_Operation="_rPunoD5GEd6us98SLDIclA"/>
+ <AcceleoBusiness:Remote xmi:id="_O1m68D5HEd6us98SLDIclA" base_Operation="_NrMWQD5HEd6us98SLDIclA"/>
+ <AcceleoBusiness:Service xmi:id="_pbaqsD-hEd6_O_u-D-Y8sg" base_Class="_i_1uYD-hEd6_O_u-D-Y8sg"/>
+ <AcceleoBusiness:Remote xmi:id="_ySeyAD-hEd6_O_u-D-Y8sg" base_Operation="_sJPi4D-hEd6_O_u-D-Y8sg"/>
+ <AcceleoBusiness:Remote xmi:id="_-cCIUD-iEd6_O_u-D-Y8sg" base_Operation="_85uoED-iEd6_O_u-D-Y8sg"/>
+ <AcceleoBusiness:Remote xmi:id="_9dI4UD-8Ed6_O_u-D-Y8sg" base_Operation="_nG5PED-8Ed6_O_u-D-Y8sg"/>
+ <AcceleoBusiness:Remote xmi:id="_vPCI8D--Ed6_O_u-D-Y8sg" base_Operation="_-IvaED-8Ed6_O_u-D-Y8sg"/>
+ <AcceleoBusiness:Remote xmi:id="_vyIO8D--Ed6_O_u-D-Y8sg" base_Operation="_IHUjED-9Ed6_O_u-D-Y8sg"/>
+ <AcceleoBusiness:Remote xmi:id="_wU8oID--Ed6_O_u-D-Y8sg" base_Operation="_TzBVMD-9Ed6_O_u-D-Y8sg"/>
+ <AcceleoBusiness:Remote xmi:id="_w6iBcD--Ed6_O_u-D-Y8sg" base_Operation="_QgjCYD--Ed6_O_u-D-Y8sg"/>
+ <AcceleoBusiness:Remote xmi:id="_-hOgoD--Ed6_O_u-D-Y8sg" base_Operation="_8VRmcD--Ed6_O_u-D-Y8sg"/>
+ <AcceleoBusiness:Entity xmi:id="_rNG5sD_AEd6_O_u-D-Y8sg" base_Class="_bj2s4D_AEd6_O_u-D-Y8sg"/>
+ <AcceleoBusiness:Remote xmi:id="_8I8_oECYEd6fr9GmRQTM7Q" base_Operation="_7crg0D_aEd6_Lec3g9P76A"/>
+ <AcceleoBusiness:Remote xmi:id="_8joJcECYEd6fr9GmRQTM7Q" base_Operation="_yox70ECWEd6fr9GmRQTM7Q"/>
+ <AcceleoBusiness:Remote xmi:id="__jUV0EEpEd6naM7GDXYidw" base_Operation="_30KRwEEpEd6naM7GDXYidw"/>
+ <AcceleoBusiness:Remote xmi:id="_nuXA8EErEd6naM7GDXYidw" base_Operation="_CyLegEEqEd6naM7GDXYidw"/>
+ <AcceleoBusiness:Remote xmi:id="_D3qN8EEsEd6naM7GDXYidw" base_Operation="_y0-JAEErEd6naM7GDXYidw"/>
+ <AcceleoBusiness:Remote xmi:id="_P4e7gEEsEd6naM7GDXYidw" base_Operation="_IZDVgEEsEd6naM7GDXYidw"/>
+ <AcceleoBusiness:Remote xmi:id="_i0aaAEEsEd6naM7GDXYidw" base_Operation="_d8XtAEEsEd6naM7GDXYidw"/>
+ <AcceleoBusiness:Remote xmi:id="__ZPscEEsEd6naM7GDXYidw" base_Operation="_jYk3AEEsEd6naM7GDXYidw"/>
+ <AcceleoBusiness:Remote xmi:id="_YNMEQECKEd6gFeLh6Y5JDQ" base_Operation="_6N73sECIEd6gFeLh6Y5JDQ"/>
+ <AcceleoBusiness:Dto xmi:id="_2Wxt8EFOEd68g6bliBN4DQ" base_Class="_hK3J0EFOEd68g6bliBN4DQ"/>
+ <AcceleoBusiness:Remote xmi:id="_1w9KYESLEd6vAcvzaNvDvA" base_Operation="_tb8nQESLEd6vAcvzaNvDvA"/>
+ <AcceleoBusiness:Remote xmi:id="_QreNUEthEd6RroIE_si1DQ" base_Operation="_NDuDgEthEd6RroIE_si1DQ"/>
+ <AcceleoBusiness:Remote xmi:id="_jcp-8EtiEd6RroIE_si1DQ" base_Operation="_e5A0oEtiEd6RroIE_si1DQ"/>
+ <AcceleoBusiness:Remote xmi:id="_WMhwMEtjEd6RroIE_si1DQ" base_Operation="_LFxeMEtjEd6RroIE_si1DQ"/>
+ <AcceleoBusiness:Remote xmi:id="_mtMGIEtjEd6RroIE_si1DQ" base_Operation="_kNJyUEtjEd6RroIE_si1DQ"/>
+ <AcceleoBusiness:Remote xmi:id="_3LmVIEtqEd6vPPc7KDt3WQ" base_Operation="_ye4HUEtqEd6vPPc7KDt3WQ"/>
+ <AcceleoBusiness:Remote xmi:id="_yqWQIEttEd6vPPc7KDt3WQ" base_Operation="_pbIukEttEd6vPPc7KDt3WQ"/>
+ <AcceleoBusiness:Remote xmi:id="_a8vV4EtuEd6vPPc7KDt3WQ" base_Operation="_Xvpu0EtuEd6vPPc7KDt3WQ"/>
+ <AcceleoBusiness:Remote xmi:id="_H7dicEwgEd6SUqmuGcZJOw" base_Operation="_muW50EweEd6SUqmuGcZJOw"/>
+ <AcceleoBusiness:Remote xmi:id="_KX8zAEwgEd6SUqmuGcZJOw" base_Operation="_DuVsoEweEd6SUqmuGcZJOw"/>
+ <AcceleoBusiness:Remote xmi:id="_Ku6hgEwgEd6SUqmuGcZJOw" base_Operation="_PKe_0EweEd6SUqmuGcZJOw"/>
+ <AcceleoBusiness:Remote xmi:id="__g-kQEwxEd6rAqa4OnNuyg" base_Operation="_EGXQcEwxEd6rAqa4OnNuyg"/>
+ <AcceleoBusiness:Remote xmi:id="_rsFTEExVEd663ZuzwRMpEw" base_Operation="_e_pcsExVEd663ZuzwRMpEw"/>
+ <AcceleoBusiness:Remote xmi:id="_q7c8oE6gEd6NiYsm9_1_qQ" base_Operation="_oGapME6gEd6NiYsm9_1_qQ"/>
+ <AcceleoBusiness:Dto xmi:id="_AdOu4E9YEd6VjacN4bzw2Q" base_Class="_5R04IE9XEd6VjacN4bzw2Q"/>
+ <AcceleoBusiness:Remote xmi:id="_o7-_YE-JEd6jPaCGdA6eKw" base_Operation="_eD-Q0E-FEd6jPaCGdA6eKw"/>
+ <AcceleoBusiness:Remote xmi:id="_pYdgAE-JEd6jPaCGdA6eKw" base_Operation="_eipJ0E-FEd6jPaCGdA6eKw"/>
+ <AcceleoBusiness:Remote xmi:id="_pwzHgE-JEd6jPaCGdA6eKw" base_Operation="_lYrNgE-FEd6jPaCGdA6eKw"/>
+ <AcceleoBusiness:Remote xmi:id="_qKqZAE-JEd6jPaCGdA6eKw" base_Operation="_26s50k-FEd6jPaCGdA6eKw"/>
+ <AcceleoBusiness:Remote xmi:id="_qi7IAE-JEd6jPaCGdA6eKw" base_Operation="_5s3fck-FEd6jPaCGdA6eKw"/>
+ <AcceleoBusiness:Remote xmi:id="_q4-QgE-JEd6jPaCGdA6eKw" base_Operation="_92iDgk-FEd6jPaCGdA6eKw"/>
+ <AcceleoBusiness:Remote xmi:id="_tO-ekE-JEd6jPaCGdA6eKw" base_Operation="_CCRrME-GEd6jPaCGdA6eKw"/>
+ <AcceleoBusiness:Remote xmi:id="_uysUEE-JEd6jPaCGdA6eKw" base_Operation="_ELEjsE-GEd6jPaCGdA6eKw"/>
+ <AcceleoBusiness:Remote xmi:id="_vKM1IE-JEd6jPaCGdA6eKw" base_Operation="_FuL8QE-GEd6jPaCGdA6eKw"/>
+ <AcceleoBusiness:Remote xmi:id="_vj_OIE-JEd6jPaCGdA6eKw" base_Operation="_Hug1QE-GEd6jPaCGdA6eKw"/>
+ <AcceleoBusiness:Remote xmi:id="_v5rxUE-JEd6jPaCGdA6eKw" base_Operation="_JvE-0E-GEd6jPaCGdA6eKw"/>
+ <AcceleoBusiness:Remote xmi:id="_wQKXoE-JEd6jPaCGdA6eKw" base_Operation="_Mo3PYE-GEd6jPaCGdA6eKw"/>
+ <AcceleoBusiness:Remote xmi:id="_wtAEoE-JEd6jPaCGdA6eKw" base_Operation="_PBxngE-GEd6jPaCGdA6eKw"/>
+ <AcceleoBusiness:Remote xmi:id="_xAnkME-JEd6jPaCGdA6eKw" base_Operation="_TasvkE-GEd6jPaCGdA6eKw"/>
+ <AcceleoBusiness:Remote xmi:id="_xUSuIE-JEd6jPaCGdA6eKw" base_Operation="_YitLME-GEd6jPaCGdA6eKw"/>
+ <AcceleoBusiness:Remote xmi:id="_xvO9sE-JEd6jPaCGdA6eKw" base_Operation="_cA-B0E-GEd6jPaCGdA6eKw"/>
+ <AcceleoBusiness:Remote xmi:id="_yBd9ME-JEd6jPaCGdA6eKw" base_Operation="_nMzBEE-GEd6jPaCGdA6eKw"/>
+ <AcceleoBusiness:Remote xmi:id="_yXl-ME-JEd6jPaCGdA6eKw" base_Operation="_tR1ssE-GEd6jPaCGdA6eKw"/>
+ <AcceleoBusiness:Remote xmi:id="_yoZaUE-JEd6jPaCGdA6eKw" base_Operation="_vutXwE-GEd6jPaCGdA6eKw"/>
+ <AcceleoBusiness:Remote xmi:id="_y9KJYE-JEd6jPaCGdA6eKw" base_Operation="_xxkAUE-GEd6jPaCGdA6eKw"/>
+ <AcceleoBusiness:Remote xmi:id="_zOOrQE-JEd6jPaCGdA6eKw" base_Operation="_1jDU8E-GEd6jPaCGdA6eKw"/>
+ <AcceleoBusiness:Remote xmi:id="_b0yqME-KEd6jPaCGdA6eKw" base_Operation="_V67T0E-KEd6jPaCGdA6eKw"/>
+ <AcceleoBusiness:Remote xmi:id="_NLUNcE-MEd6jPaCGdA6eKw" base_Operation="_64J_Ik-LEd6jPaCGdA6eKw"/>
+ <AcceleoBusiness:Remote xmi:id="_OtNeAE-MEd6jPaCGdA6eKw" base_Operation="_7RMKME-LEd6jPaCGdA6eKw"/>
+ <AcceleoBusiness:Service xmi:id="_ubuBsE-NEd6jPaCGdA6eKw" base_Class="_ZoF7YE-FEd6jPaCGdA6eKw"/>
+ <AcceleoBusiness:Remote xmi:id="_b9eX4FEFEd643dseCuH5RA" base_Operation="_7QVeMFECEd643dseCuH5RA"/>
+ <AcceleoBusiness:Remote xmi:id="_1AJyMFEFEd643dseCuH5RA" base_Operation="_jWSYgFEFEd643dseCuH5RA"/>
+ <AcceleoBusiness:Remote xmi:id="_-kz_UFEFEd643dseCuH5RA" base_Operation="_2OVckFEFEd643dseCuH5RA"/>
+ <AcceleoBusiness:Remote xmi:id="_TSTiEFEGEd643dseCuH5RA" base_Operation="_P-5QkFEGEd643dseCuH5RA"/>
+ <AcceleoBusiness:Remote xmi:id="_erUBsFEGEd643dseCuH5RA" base_Operation="_bQsU8lEGEd643dseCuH5RA"/>
+ <AcceleoBusiness:Dto xmi:id="_xONbQFGtEd6lINZTnfnS_Q" base_Class="_jCwpMFGtEd6lINZTnfnS_Q"/>
+ <AcceleoBusiness:Dto xmi:id="_xzWvsFGtEd6lINZTnfnS_Q" base_Class="_UKe4QFGrEd6lINZTnfnS_Q"/>
+ <AcceleoBusiness:Dto xmi:id="_yTqncFGtEd6lINZTnfnS_Q" base_Class="_xIOzQFGmEd6lINZTnfnS_Q"/>
+ <AcceleoBusiness:Dto xmi:id="_y2KQgFGtEd6lINZTnfnS_Q" base_Class="_3CkDsFGmEd6lINZTnfnS_Q"/>
+ <AcceleoBusiness:Dto xmi:id="_zY4jEFGtEd6lINZTnfnS_Q" base_Class="_VfsXsFGrEd6lINZTnfnS_Q"/>
+ <AcceleoBusiness:Remote xmi:id="_14jdsFTSEd6m1uIJAJogNQ" base_Operation="_0bPyMFTSEd6m1uIJAJogNQ"/>
+ <AcceleoBusiness:Remote xmi:id="_gHfvsFTTEd6m1uIJAJogNQ" base_Operation="_dpVEIFTTEd6m1uIJAJogNQ"/>
+ <AcceleoBusiness:Remote xmi:id="_ss2tsFTTEd6m1uIJAJogNQ" base_Operation="_qnotoFTTEd6m1uIJAJogNQ"/>
+</xmi:XMI>
Copied: trunk/ant-eugene-task/src/test/resources/xmi/2.1/cmsLink.uml (from rev 769, trunk/eugene/src/test/resources/xmi/2.1/cmsLink.uml)
===================================================================
--- trunk/ant-eugene-task/src/test/resources/xmi/2.1/cmsLink.uml (rev 0)
+++ trunk/ant-eugene-task/src/test/resources/xmi/2.1/cmsLink.uml 2009-12-20 12:58:28 UTC (rev 772)
@@ -0,0 +1,425 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="2.1" xmlns:xmi="http://schema.omg.org/spec/XMI/2.1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:AcceleoBusiness="http:///schemas/AcceleoBusiness/_81fAsPWcEdyuYMHNZCqWBQ/0" xmlns:Sharengoserviceprofile="http:///schemas/Sharengoserviceprofile/_bMLXQKEQEd2L7a68DRX6Bg/1" xmlns:Sharengoserviceprofile_1="http:///schemas/Sharengoserviceprofile/_pCa5EPQ4Ed2_aZMAEjWDNQ/2" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:uml="http://www.eclipse.org/uml2/2.1.0/UML" xsi:schemaLocation="http:///schemas/AcceleoBusiness/_81fAsPWcEdyuYMHNZCqWBQ/0 pathmap://ACCELEO_PROFILES/Acceleo.Business.profile.uml#_81g14fWcEdyuYMHNZCqWBQ http:///schemas/Sharengoserviceprofile/_bMLXQKEQEd2L7a68DRX6Bg/1 pathmap://SHARENGO_PROFILES/Sharengo.service.profile.uml#_bMLXQaEQEd2L7a68DRX6Bg http:///schemas/Sharengoserviceprofile/_pCa5EPQ4Ed2_aZMAEjWDNQ/2 pathmap://SHARENGO_PROFILES/Sharengo.service.profile.uml#_pCbgIPQ4Ed2_aZMAEjWDNQ">
+ <uml:Model xmi:id="_qb8akM37EdqwVrslYOdUDA" name="org::sharengo::utils::container::link">
+ <packagedElement xmi:type="uml:Package" xmi:id="_w8IxIM37EdqwVrslYOdUDA" name="org.sharengo.utils.container.link.services">
+ <packagedElement xmi:type="uml:Class" xmi:id="_uY4mEIr-Ed2zQqb9w4_QNQ" name="LinkDefinitionSrv" clientDependency="_VMAbA4sLEd2zQqb9w4_QNQ _2_ffU6UEEd2k3eK_Lp3Frw _3tRLUqUEEd2k3eK_Lp3Frw __duhIMXYEd2-8YlSmAaQ6Q">
+ <ownedOperation xmi:id="_RYHKANAUEd2cQYB39pbhsw" name="findByName">
+ <ownedParameter xmi:id="_S3FCYNAUEd2cQYB39pbhsw" name="name">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_UHI8ENAUEd2cQYB39pbhsw" name="return" type="_c2ZwIIrlEd2IhLeDKBwRog" direction="return"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_YNI5EHmZEd2HRLLd0I1WrA"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_GfaEUHmfEd2HRLLd0I1WrA"/>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_VMAbA4sLEd2zQqb9w4_QNQ" name="Dependency1" supplier="_fvANkIroEd2IhLeDKBwRog" client="_uY4mEIr-Ed2zQqb9w4_QNQ"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_9FUhAI7-Ed2TZJhzNZ91vg" name="LinkSrv" clientDependency="__FUp447-Ed2TZJhzNZ91vg _Kz80M47_Ed2TZJhzNZ91vg">
+ <ownedOperation xmi:id="_JLjdkI8AEd2TZJhzNZ91vg" name="create">
+ <ownedParameter xmi:id="_l_h34I8DEd2TZJhzNZ91vg" name="return" type="_Q7hZ8I8AEd2TZJhzNZ91vg" direction="return"/>
+ <ownedParameter xmi:id="_3f1F4I8DEd2TZJhzNZ91vg" name="link" type="_Q7hZ8I8AEd2TZJhzNZ91vg"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_YNI5EHmZEd2HRLLd0I1WrA"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_GfaEUHmfEd2HRLLd0I1WrA"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_KQqi-HjwEd2MH8DN-NMNrA"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_yvGYUHXJEd20DoWUDUK0Ig"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_4RBZUKs-Ed2Nmqhc73l7SA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_u7JjcI_REd2HauxSWiOG3w" name="findAllByContent">
+ <ownedParameter xmi:id="_xdFUsI_REd2HauxSWiOG3w" name="start">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Integer"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_xfOCsI_REd2HauxSWiOG3w" name="end">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Integer"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_40C7MI_REd2HauxSWiOG3w" name="return" type="_CcXgUI_SEd2HauxSWiOG3w" direction="return"/>
+ <ownedParameter xmi:id="_QPfAAI_UEd2HauxSWiOG3w" name="entityId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedParameter>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_YNI5EHmZEd2HRLLd0I1WrA"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_GfaEUHmfEd2HRLLd0I1WrA"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_4RBZUKs-Ed2Nmqhc73l7SA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_CDjdEpwaEd2jKtVlU3vFlQ" name="delete">
+ <ownedParameter xmi:id="_F7CsAJwaEd2jKtVlU3vFlQ" name="linkId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedParameter>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_GfaEUHmfEd2HRLLd0I1WrA"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_YNI5EHmZEd2HRLLd0I1WrA"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_KQqi-HjwEd2MH8DN-NMNrA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_DANSkJwaEd2jKtVlU3vFlQ" name="deleteByEntityId">
+ <ownedParameter xmi:id="_EITjEJwaEd2jKtVlU3vFlQ" name="entityId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedParameter>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_GfaEUHmfEd2HRLLd0I1WrA"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_YNI5EHmZEd2HRLLd0I1WrA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_fOAvcKDYEd2h0IgxKuvUCA" name="update">
+ <ownedParameter xmi:id="_rbbukKDYEd2h0IgxKuvUCA" name="link" type="_Q7hZ8I8AEd2TZJhzNZ91vg"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_YNI5EHmZEd2HRLLd0I1WrA"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_GfaEUHmfEd2HRLLd0I1WrA"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_yvGYUHXJEd20DoWUDUK0Ig"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_KQqi-HjwEd2MH8DN-NMNrA"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_4RBZUKs-Ed2Nmqhc73l7SA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_LE8j4KDiEd2h0IgxKuvUCA" name="find">
+ <ownedParameter xmi:id="_PxJNQKDiEd2h0IgxKuvUCA" name="linkId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_Xkl7cKDiEd2h0IgxKuvUCA" name="return" type="_Q7hZ8I8AEd2TZJhzNZ91vg" direction="return"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_GfaEUHmfEd2HRLLd0I1WrA"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_YNI5EHmZEd2HRLLd0I1WrA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_EWe7MNAeEd2UY7ZCxznfRg" name="findRelatedTo">
+ <ownedParameter xmi:id="_E2PZUNAeEd2UY7ZCxznfRg" name="return" type="_CcXgUI_SEd2HauxSWiOG3w" direction="return"/>
+ <ownedParameter xmi:id="_Ic9BUNAeEd2UY7ZCxznfRg" name="boundId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedParameter>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_GfaEUHmfEd2HRLLd0I1WrA"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_YNI5EHmZEd2HRLLd0I1WrA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_uDGz4O7WEd2R4ZtD5-VcmA" name="findByLinkDef">
+ <ownedParameter xmi:id="_wUUBgO7WEd2R4ZtD5-VcmA" name="return" type="_CcXgUI_SEd2HauxSWiOG3w" direction="return"/>
+ <ownedParameter xmi:id="_yWzdsO7WEd2R4ZtD5-VcmA" name="linkDefId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedParameter>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_GfaEUHmfEd2HRLLd0I1WrA"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_YNI5EHmZEd2HRLLd0I1WrA"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_KQqi-HjwEd2MH8DN-NMNrA"/>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="__FUp447-Ed2TZJhzNZ91vg" name="Dependency2" supplier="_2Cf-gI7-Ed2TZJhzNZ91vg" client="_9FUhAI7-Ed2TZJhzNZ91vg"/>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_Kz80M47_Ed2TZJhzNZ91vg" name="Dependency3" supplier="_fvANkIroEd2IhLeDKBwRog" client="_9FUhAI7-Ed2TZJhzNZ91vg"/>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_2_ffU6UEEd2k3eK_Lp3Frw" name="Dependency4" supplier="_c2ZwIIrlEd2IhLeDKBwRog" client="_uY4mEIr-Ed2zQqb9w4_QNQ"/>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_3tRLUqUEEd2k3eK_Lp3Frw" name="Dependency5" supplier="_LufsoIroEd2IhLeDKBwRog" client="_uY4mEIr-Ed2zQqb9w4_QNQ"/>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="__duhIMXYEd2-8YlSmAaQ6Q" name="Dependency6" supplier="_2Cf-gI7-Ed2TZJhzNZ91vg" client="_uY4mEIr-Ed2zQqb9w4_QNQ"/>
+ <profileApplication xmi:id="_MIURkPWdEdyp25RO5nzQ4A">
+ <eAnnotations xmi:id="_MIURkfWdEdyp25RO5nzQ4A" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="pathmap://ACCELEO_PROFILES/Acceleo.Business.profile.uml#_81g14fWcEdyuYMHNZCqWBQ"/>
+ </eAnnotations>
+ <appliedProfile href="pathmap://ACCELEO_PROFILES/Acceleo.Business.profile.uml#_JX9fQPWcEdyuYMHNZCqWBQ"/>
+ </profileApplication>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_tBzGgPWREdy_h6Mk-BiOHw" name="org.sharengo.utils.container.link.daos">
+ <packagedElement xmi:type="uml:Class" xmi:id="_fvANkIroEd2IhLeDKBwRog" name="LinkDefinitionDao" clientDependency="_W-MKU4sLEd2zQqb9w4_QNQ">
+ <ownedOperation xmi:id="_g-DGcIufEd2EPJQ4AZxy5g" name="get">
+ <ownedParameter xmi:id="_h8edkIufEd2EPJQ4AZxy5g" name="return" type="_xeNZII7sEd2TZJhzNZ91vg" direction="return"/>
+ <ownedParameter xmi:id="_YPfCoI-3Ed2tTo-QrgrvjA" name="start">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_YRSZcI-3Ed2tTo-QrgrvjA" name="end">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ </ownedParameter>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_GfaEUHmfEd2HRLLd0I1WrA"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_YNI5EHmZEd2HRLLd0I1WrA"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_bI0twHg-Ed2lVPDSSAZWVg"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_njyWcI4zEd2TdbFAPL6LJw" name="findByName">
+ <ownedParameter xmi:id="_pzhkcI4zEd2TdbFAPL6LJw" name="name">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_u0FUQI4zEd2TdbFAPL6LJw" name="result" type="_LufsoIroEd2IhLeDKBwRog" direction="return"/>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_W-MKU4sLEd2zQqb9w4_QNQ" name="Dependency1" supplier="_LufsoIroEd2IhLeDKBwRog" client="_fvANkIroEd2IhLeDKBwRog"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_2Cf-gI7-Ed2TZJhzNZ91vg" name="LinkDao" clientDependency="_49bek47-Ed2TZJhzNZ91vg">
+ <ownedOperation xmi:id="_Da4bMI_LEd2tTo-QrgrvjA" name="findByName">
+ <ownedParameter xmi:id="_GnbPsI_LEd2tTo-QrgrvjA" name="name">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_KJpZQI_LEd2tTo-QrgrvjA" name="result" type="_-ercgI5BEd2yq5IM5PZa8A" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_s6ZY8JBbEd2E4-FUm_dE_g" name="linksRelatedTo">
+ <ownedParameter xmi:id="_0uUBMJBbEd2E4-FUm_dE_g" name="entityId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_5CTl8JBbEd2E4-FUm_dE_g" name="return" type="_a6Z4MJFhEd2KAoS_KFncGw" isOrdered="true" isUnique="false" direction="return">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_sDgXwJBcEd2E4-FUm_dE_g" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_lAL2YJFWEd2KAoS_KFncGw" name="start">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Integer"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_lEJJUJFWEd2KAoS_KFncGw" name="end">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Integer"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_1eLmEpwbEd2jKtVlU3vFlQ" name="deleteByEntityId">
+ <ownedParameter xmi:id="_3BXQEJwbEd2jKtVlU3vFlQ" name="entityId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_DrgXMKcvEd26YZ4PE8pCiA" name="linksByEntities">
+ <ownedParameter xmi:id="_zgHRMKcvEd26YZ4PE8pCiA" name="entitySourceId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_K5ekUKcwEd26YZ4PE8pCiA" name="entityTargetId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_Z_-pYKcwEd26YZ4PE8pCiA" name="name">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_fwP-4KcwEd26YZ4PE8pCiA" name="return" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Integer"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_1g99EMXYEd2-8YlSmAaQ6Q" name="deleteByLinkDefinitionId">
+ <ownedParameter xmi:id="_4j6JoMXYEd2-8YlSmAaQ6Q" name="linkDefinitionId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_7_BDMu7YEd2R4ZtD5-VcmA" name="findByLinkDef">
+ <ownedParameter xmi:id="__qTpMO7YEd2R4ZtD5-VcmA" name="return" type="_a6Z4MJFhEd2KAoS_KFncGw" direction="return"/>
+ <ownedParameter xmi:id="_LVyY4O7ZEd2R4ZtD5-VcmA" name="linkDefId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_P4RFkO7ZEd2R4ZtD5-VcmA" name="start">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Integer"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_RctT0O7ZEd2R4ZtD5-VcmA" name="end">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Integer"/>
+ </ownedParameter>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_49bek47-Ed2TZJhzNZ91vg" name="Dependency2" supplier="_-ercgI5BEd2yq5IM5PZa8A" client="_2Cf-gI7-Ed2TZJhzNZ91vg"/>
+ <profileApplication xmi:id="_Mg9bEPWdEdyp25RO5nzQ4A">
+ <eAnnotations xmi:id="_Mg-CIPWdEdyp25RO5nzQ4A" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="pathmap://ACCELEO_PROFILES/Acceleo.Business.profile.uml#_81g14fWcEdyuYMHNZCqWBQ"/>
+ </eAnnotations>
+ <appliedProfile href="pathmap://ACCELEO_PROFILES/Acceleo.Business.profile.uml#_JX9fQPWcEdyuYMHNZCqWBQ"/>
+ </profileApplication>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="__PrMMPWREdy_h6Mk-BiOHw" name="org.sharengo.utils.container.link.dtos">
+ <packagedElement xmi:type="uml:Class" xmi:id="_c2ZwIIrlEd2IhLeDKBwRog" name="LinkDefinition">
+ <ownedAttribute xmi:id="_vY4XYIrmEd2IhLeDKBwRog" name="name">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_X9tQ8IrnEd2IhLeDKBwRog" name="directionType" type="_qTVrwIuoEd2EPJQ4AZxy5g"/>
+ <ownedAttribute xmi:id="_If5CoIroEd2IhLeDKBwRog" name="id">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_FxuCoNaLEd2EvcfjEHUVCg" name="sourceEntityType">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_So9a0NaLEd2EvcfjEHUVCg" name="targetEntityType">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_Q7hZ8I8AEd2TZJhzNZ91vg" name="Link">
+ <ownedAttribute xmi:id="_TW7scI8AEd2TZJhzNZ91vg" name="id">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_W-fB8I8AEd2TZJhzNZ91vg" name="name">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_mCdXco8AEd2TZJhzNZ91vg" name="sourceEntityId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_Y-9PcI8BEd2TZJhzNZ91vg" name="targetEntityId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_1GezcI8EEd2TZJhzNZ91vg" name="linkDefinitionId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_WEZiYO6yEd2R4ZtD5-VcmA" name="Association1" memberEnd="_WEZiYe6yEd2R4ZtD5-VcmA _WEZiZO6yEd2R4ZtD5-VcmA" navigableOwnedEnd="_WEZiZO6yEd2R4ZtD5-VcmA">
+ <ownedEnd xmi:id="_WEZiYe6yEd2R4ZtD5-VcmA" name="source" association="_WEZiYO6yEd2R4ZtD5-VcmA">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_WEZiYu6yEd2R4ZtD5-VcmA" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_WEZiY-6yEd2R4ZtD5-VcmA" value="1"/>
+ </ownedEnd>
+ <ownedEnd xmi:id="_WEZiZO6yEd2R4ZtD5-VcmA" name="links" type="_Q7hZ8I8AEd2TZJhzNZ91vg" aggregation="composite" association="_WEZiYO6yEd2R4ZtD5-VcmA">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_WEZiZe6yEd2R4ZtD5-VcmA" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_WEZiZu6yEd2R4ZtD5-VcmA"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_cyGl6vbIEd2hfYFyIHz3vg" name="Association2" memberEnd="_cyGl6_bIEd2hfYFyIHz3vg _cyGl7vbIEd2hfYFyIHz3vg" navigableOwnedEnd="_cyGl7vbIEd2hfYFyIHz3vg">
+ <ownedEnd xmi:id="_cyGl6_bIEd2hfYFyIHz3vg" name="source" type="_c2ZwIIrlEd2IhLeDKBwRog" association="_cyGl6vbIEd2hfYFyIHz3vg">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_cyGl7PbIEd2hfYFyIHz3vg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_cyGl7fbIEd2hfYFyIHz3vg" value="1"/>
+ </ownedEnd>
+ <ownedEnd xmi:id="_cyGl7vbIEd2hfYFyIHz3vg" name="target" association="_cyGl6vbIEd2hfYFyIHz3vg">
+ <type xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception-helper.uml#_Hb8X4faMEd2-MYgc0GvAJw"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_cyGl7_bIEd2hfYFyIHz3vg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_cyGl8PbIEd2hfYFyIHz3vg" value="1"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_dTmJavbIEd2hfYFyIHz3vg" name="Association3" memberEnd="_dTmJa_bIEd2hfYFyIHz3vg _dTmJbvbIEd2hfYFyIHz3vg" navigableOwnedEnd="_dTmJbvbIEd2hfYFyIHz3vg">
+ <ownedEnd xmi:id="_dTmJa_bIEd2hfYFyIHz3vg" name="source" type="_Q7hZ8I8AEd2TZJhzNZ91vg" association="_dTmJavbIEd2hfYFyIHz3vg">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_dTmJbPbIEd2hfYFyIHz3vg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_dTmJbfbIEd2hfYFyIHz3vg" value="1"/>
+ </ownedEnd>
+ <ownedEnd xmi:id="_dTmJbvbIEd2hfYFyIHz3vg" name="target" association="_dTmJavbIEd2hfYFyIHz3vg">
+ <type xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception-helper.uml#_Hb8X5PaMEd2-MYgc0GvAJw"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_dTmJb_bIEd2hfYFyIHz3vg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_dTmJcPbIEd2hfYFyIHz3vg" value="1"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_d5C_2vbIEd2hfYFyIHz3vg" name="Association4" memberEnd="_d5C_2_bIEd2hfYFyIHz3vg _d5C_3vbIEd2hfYFyIHz3vg" navigableOwnedEnd="_d5C_3vbIEd2hfYFyIHz3vg">
+ <ownedEnd xmi:id="_d5C_2_bIEd2hfYFyIHz3vg" name="source" type="_Q7hZ8I8AEd2TZJhzNZ91vg" association="_d5C_2vbIEd2hfYFyIHz3vg">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_d5C_3PbIEd2hfYFyIHz3vg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_d5C_3fbIEd2hfYFyIHz3vg" value="1"/>
+ </ownedEnd>
+ <ownedEnd xmi:id="_d5C_3vbIEd2hfYFyIHz3vg" name="target" association="_d5C_2vbIEd2hfYFyIHz3vg">
+ <type xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception-helper.uml#_Hb8X4faMEd2-MYgc0GvAJw"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_d5C_3_bIEd2hfYFyIHz3vg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_d5C_4PbIEd2hfYFyIHz3vg" value="1"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_eNV02vbIEd2hfYFyIHz3vg" name="Association5" memberEnd="_eNV02_bIEd2hfYFyIHz3vg _eNV03vbIEd2hfYFyIHz3vg" navigableOwnedEnd="_eNV03vbIEd2hfYFyIHz3vg">
+ <ownedEnd xmi:id="_eNV02_bIEd2hfYFyIHz3vg" name="source" type="_c2ZwIIrlEd2IhLeDKBwRog" association="_eNV02vbIEd2hfYFyIHz3vg">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_eNV03PbIEd2hfYFyIHz3vg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_eNV03fbIEd2hfYFyIHz3vg" value="1"/>
+ </ownedEnd>
+ <ownedEnd xmi:id="_eNV03vbIEd2hfYFyIHz3vg" name="target" association="_eNV02vbIEd2hfYFyIHz3vg">
+ <type xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception-helper.uml#_Hb8X5PaMEd2-MYgc0GvAJw"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_eNV03_bIEd2hfYFyIHz3vg" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_eNV04PbIEd2hfYFyIHz3vg" value="1"/>
+ </ownedEnd>
+ </packagedElement>
+ <profileApplication xmi:id="_M2BsIPWdEdyp25RO5nzQ4A">
+ <eAnnotations xmi:id="_M2CTMPWdEdyp25RO5nzQ4A" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="pathmap://ACCELEO_PROFILES/Acceleo.Business.profile.uml#_81g14fWcEdyuYMHNZCqWBQ"/>
+ </eAnnotations>
+ <appliedProfile href="pathmap://ACCELEO_PROFILES/Acceleo.Business.profile.uml#_JX9fQPWcEdyuYMHNZCqWBQ"/>
+ </profileApplication>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_Cp0X0PWSEdy_h6Mk-BiOHw" name="org.sharengo.utils.container.link.entities">
+ <packagedElement xmi:type="uml:Class" xmi:id="_LufsoIroEd2IhLeDKBwRog" name="LinkDefinitionEntity">
+ <ownedAttribute xmi:id="_QRR7UIroEd2IhLeDKBwRog" name="name">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_Sn078IroEd2IhLeDKBwRog" name="directionType" type="_qTVrwIuoEd2EPJQ4AZxy5g"/>
+ <ownedAttribute xmi:id="_2Kds0NZ9Ed27MNrAVBAOlQ" name="sourceEntityType">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_5icVQNZ9Ed27MNrAVBAOlQ" name="targetEntityType">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Enumeration" xmi:id="_qTVrwIuoEd2EPJQ4AZxy5g" name="LinkDefType">
+ <ownedLiteral xmi:id="_9zWHsIuoEd2EPJQ4AZxy5g" name="MASTER_SLAVE"/>
+ <ownedLiteral xmi:id="_BVHlUIupEd2EPJQ4AZxy5g" name="BIDIRECTIONAL"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_-ercgI5BEd2yq5IM5PZa8A" name="LinkEntity">
+ <ownedAttribute xmi:id="_u1klII77Ed2TZJhzNZ91vg" name="name">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_6ZEW4I-SEd2qCZRofqgmcQ" name="sourceEntityId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_7yZhUI-SEd2qCZRofqgmcQ" name="targetEntityId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_V4vTOI5CEd2yq5IM5PZa8A" name="Association1" memberEnd="_V4vTOY5CEd2yq5IM5PZa8A _V4vTPI5CEd2yq5IM5PZa8A" navigableOwnedEnd="_V4vTPI5CEd2yq5IM5PZa8A">
+ <ownedEnd xmi:id="_V4vTOY5CEd2yq5IM5PZa8A" name="link" type="_-ercgI5BEd2yq5IM5PZa8A" isUnique="false" aggregation="composite" association="_V4vTOI5CEd2yq5IM5PZa8A">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_V4vTOo5CEd2yq5IM5PZa8A" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_V4vTO45CEd2yq5IM5PZa8A"/>
+ </ownedEnd>
+ <ownedEnd xmi:id="_V4vTPI5CEd2yq5IM5PZa8A" name="definition" type="_LufsoIroEd2IhLeDKBwRog" association="_V4vTOI5CEd2yq5IM5PZa8A">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_V4vTPY5CEd2yq5IM5PZa8A" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_V4vTPo5CEd2yq5IM5PZa8A" value="1"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_fVIIqvaOEd2-MYgc0GvAJw" name="Association2" memberEnd="_fVIIq_aOEd2-MYgc0GvAJw _fVIIrvaOEd2-MYgc0GvAJw" navigableOwnedEnd="_fVIIrvaOEd2-MYgc0GvAJw">
+ <ownedEnd xmi:id="_fVIIq_aOEd2-MYgc0GvAJw" name="source" type="_LufsoIroEd2IhLeDKBwRog" association="_fVIIqvaOEd2-MYgc0GvAJw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_fVIIrPaOEd2-MYgc0GvAJw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_fVIIrfaOEd2-MYgc0GvAJw" value="1"/>
+ </ownedEnd>
+ <ownedEnd xmi:id="_fVIIrvaOEd2-MYgc0GvAJw" name="target" association="_fVIIqvaOEd2-MYgc0GvAJw">
+ <type xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception-helper.uml#_Hb8X5PaMEd2-MYgc0GvAJw"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_fVIIr_aOEd2-MYgc0GvAJw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_fVIIsPaOEd2-MYgc0GvAJw" value="1"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_fsyauvaOEd2-MYgc0GvAJw" name="Association3" memberEnd="_fsyau_aOEd2-MYgc0GvAJw _fsyavvaOEd2-MYgc0GvAJw" navigableOwnedEnd="_fsyavvaOEd2-MYgc0GvAJw">
+ <ownedEnd xmi:id="_fsyau_aOEd2-MYgc0GvAJw" name="source" type="_-ercgI5BEd2yq5IM5PZa8A" association="_fsyauvaOEd2-MYgc0GvAJw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_fsyavPaOEd2-MYgc0GvAJw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_fsyavfaOEd2-MYgc0GvAJw" value="1"/>
+ </ownedEnd>
+ <ownedEnd xmi:id="_fsyavvaOEd2-MYgc0GvAJw" name="target2" association="_fsyauvaOEd2-MYgc0GvAJw">
+ <type xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception-helper.uml#_Hb8X4faMEd2-MYgc0GvAJw"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_fsyav_aOEd2-MYgc0GvAJw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_fsyawPaOEd2-MYgc0GvAJw" value="1"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_lcE4yvaOEd2-MYgc0GvAJw" name="Association4" memberEnd="_lcE4y_aOEd2-MYgc0GvAJw _lcE4zvaOEd2-MYgc0GvAJw" navigableOwnedEnd="_lcE4zvaOEd2-MYgc0GvAJw">
+ <ownedEnd xmi:id="_lcE4y_aOEd2-MYgc0GvAJw" name="source" type="_-ercgI5BEd2yq5IM5PZa8A" association="_lcE4yvaOEd2-MYgc0GvAJw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_lcE4zPaOEd2-MYgc0GvAJw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_lcE4zfaOEd2-MYgc0GvAJw" value="1"/>
+ </ownedEnd>
+ <ownedEnd xmi:id="_lcE4zvaOEd2-MYgc0GvAJw" name="target" association="_lcE4yvaOEd2-MYgc0GvAJw">
+ <type xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception-helper.uml#_Hb8X5PaMEd2-MYgc0GvAJw"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_lcE4z_aOEd2-MYgc0GvAJw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_lcE40PaOEd2-MYgc0GvAJw" value="1"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_l7buSvaOEd2-MYgc0GvAJw" name="Association5" memberEnd="_l7buS_aOEd2-MYgc0GvAJw _l7buTvaOEd2-MYgc0GvAJw" navigableOwnedEnd="_l7buTvaOEd2-MYgc0GvAJw">
+ <ownedEnd xmi:id="_l7buS_aOEd2-MYgc0GvAJw" name="source" type="_LufsoIroEd2IhLeDKBwRog" association="_l7buSvaOEd2-MYgc0GvAJw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_l7buTPaOEd2-MYgc0GvAJw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_l7buTfaOEd2-MYgc0GvAJw" value="1"/>
+ </ownedEnd>
+ <ownedEnd xmi:id="_l7buTvaOEd2-MYgc0GvAJw" name="target" association="_l7buSvaOEd2-MYgc0GvAJw">
+ <type xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception-helper.uml#_Hb8X4faMEd2-MYgc0GvAJw"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_l7buT_aOEd2-MYgc0GvAJw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_l7buUPaOEd2-MYgc0GvAJw" value="1"/>
+ </ownedEnd>
+ </packagedElement>
+ <profileApplication xmi:id="_NQyVgPWdEdyp25RO5nzQ4A">
+ <eAnnotations xmi:id="_NQy8kPWdEdyp25RO5nzQ4A" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="pathmap://ACCELEO_PROFILES/Acceleo.Business.profile.uml#_81g14fWcEdyuYMHNZCqWBQ"/>
+ </eAnnotations>
+ <appliedProfile href="pathmap://ACCELEO_PROFILES/Acceleo.Business.profile.uml#_JX9fQPWcEdyuYMHNZCqWBQ"/>
+ </profileApplication>
+ </packagedElement>
+ <packagedElement xmi:type="uml:DataType" xmi:id="_Ulfm4IsGEd2zQqb9w4_QNQ" name="PagedResult<LinkDefinition>"/>
+ <packagedElement xmi:type="uml:DataType" xmi:id="_xeNZII7sEd2TZJhzNZ91vg" name="PagedResult<LinkDefinitionEntity>"/>
+ <packagedElement xmi:type="uml:DataType" xmi:id="_CcXgUI_SEd2HauxSWiOG3w" name="PagedResult<Link>"/>
+ <packagedElement xmi:type="uml:DataType" xmi:id="_a6Z4MJFhEd2KAoS_KFncGw" name="PagedResult<LinkEntity>"/>
+ <profileApplication xmi:id="_LmCD4PWdEdyp25RO5nzQ4A">
+ <eAnnotations xmi:id="_LmFHMPWdEdyp25RO5nzQ4A" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="pathmap://ACCELEO_PROFILES/Acceleo.Business.profile.uml#_81g14fWcEdyuYMHNZCqWBQ"/>
+ </eAnnotations>
+ <appliedProfile href="pathmap://ACCELEO_PROFILES/Acceleo.Business.profile.uml#_JX9fQPWcEdyuYMHNZCqWBQ"/>
+ </profileApplication>
+ <profileApplication xmi:id="_Xqq8EKUFEd2k3eK_Lp3Frw">
+ <eAnnotations xmi:id="_XqsxQKUFEd2k3eK_Lp3Frw" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="pathmap://SHARENGO_PROFILES/Sharengo.service.profile.uml#_pCbgIPQ4Ed2_aZMAEjWDNQ"/>
+ </eAnnotations>
+ <appliedProfile href="pathmap://SHARENGO_PROFILES/Sharengo.service.profile.uml#_EY2fUKDiEd25boenPflnPQ"/>
+ </profileApplication>
+ </uml:Model>
+ <AcceleoBusiness:Dto xmi:id="_sqYw0IrmEd2IhLeDKBwRog" base_Class="_c2ZwIIrlEd2IhLeDKBwRog"/>
+ <AcceleoBusiness:Entity xmi:id="_Nc69UIroEd2IhLeDKBwRog" base_Class="_LufsoIroEd2IhLeDKBwRog"/>
+ <AcceleoBusiness:Dao xmi:id="_o6bbUIroEd2IhLeDKBwRog" base_Class="_fvANkIroEd2IhLeDKBwRog"/>
+ <AcceleoBusiness:Remote xmi:id="_6KfL4Ir-Ed2zQqb9w4_QNQ"/>
+ <AcceleoBusiness:Remote xmi:id="_7iO6kIsBEd2zQqb9w4_QNQ"/>
+ <AcceleoBusiness:Remote xmi:id="_3DY7QIsCEd2zQqb9w4_QNQ"/>
+ <AcceleoBusiness:Remote xmi:id="_mYnKkIsDEd2zQqb9w4_QNQ"/>
+ <AcceleoBusiness:Remote xmi:id="_SCrr4IsGEd2zQqb9w4_QNQ"/>
+ <AcceleoBusiness:Remote xmi:id="_6Yxp0IueEd2EPJQ4AZxy5g"/>
+ <AcceleoBusiness:Entity xmi:id="_b_To0I5CEd2yq5IM5PZa8A" base_Class="_-ercgI5BEd2yq5IM5PZa8A"/>
+ <AcceleoBusiness:Entity xmi:id="_cVi-kI5CEd2yq5IM5PZa8A"/>
+ <AcceleoBusiness:Entity xmi:id="_crXdkI5CEd2yq5IM5PZa8A"/>
+ <AcceleoBusiness:Dao xmi:id="_A2uWEI7_Ed2TZJhzNZ91vg" base_Class="_2Cf-gI7-Ed2TZJhzNZ91vg"/>
+ <AcceleoBusiness:Remote xmi:id="_MOvhwI8AEd2TZJhzNZ91vg" base_Operation="_JLjdkI8AEd2TZJhzNZ91vg"/>
+ <AcceleoBusiness:Dto xmi:id="_SK7MUI8AEd2TZJhzNZ91vg" base_Class="_Q7hZ8I8AEd2TZJhzNZ91vg"/>
+ <AcceleoBusiness:Remote xmi:id="_O8wewI_SEd2HauxSWiOG3w" base_Operation="_u7JjcI_REd2HauxSWiOG3w"/>
+ <AcceleoBusiness:Remote xmi:id="_UvqW4JwaEd2jKtVlU3vFlQ" base_Operation="_CDjdEpwaEd2jKtVlU3vFlQ"/>
+ <AcceleoBusiness:Remote xmi:id="_VMT2oJwaEd2jKtVlU3vFlQ" base_Operation="_DANSkJwaEd2jKtVlU3vFlQ"/>
+ <AcceleoBusiness:Remote xmi:id="_Bg37sKDZEd2h0IgxKuvUCA" base_Operation="_fOAvcKDYEd2h0IgxKuvUCA"/>
+ <AcceleoBusiness:Remote xmi:id="_bBfgIKDiEd2h0IgxKuvUCA" base_Operation="_LE8j4KDiEd2h0IgxKuvUCA"/>
+ <Sharengoserviceprofile:CrudService xmi:id="_ZHZ_0KUFEd2k3eK_Lp3Frw" base_Class="_uY4mEIr-Ed2zQqb9w4_QNQ"/>
+ <AcceleoBusiness:Remote xmi:id="_l2PJINAWEd2cQYB39pbhsw" base_Operation="_RYHKANAUEd2cQYB39pbhsw"/>
+ <AcceleoBusiness:Remote xmi:id="_HYukMNAeEd2UY7ZCxznfRg" base_Operation="_EWe7MNAeEd2UY7ZCxznfRg"/>
+ <AcceleoBusiness:Dto xmi:id="_X9xe0O6yEd2R4ZtD5-VcmA"/>
+ <AcceleoBusiness:Remote xmi:id="__PrNkO7WEd2R4ZtD5-VcmA" base_Operation="_uDGz4O7WEd2R4ZtD5-VcmA"/>
+ <Sharengoserviceprofile_1:Embedded xmi:id="_ko7kkPaOEd2-MYgc0GvAJw" base_Association="_fVIIqvaOEd2-MYgc0GvAJw"/>
+ <Sharengoserviceprofile_1:Embedded xmi:id="_pkCMoPaOEd2-MYgc0GvAJw" base_Association="_fsyauvaOEd2-MYgc0GvAJw"/>
+ <Sharengoserviceprofile_1:Embedded xmi:id="_qDK_sPaOEd2-MYgc0GvAJw" base_Association="_l7buSvaOEd2-MYgc0GvAJw"/>
+ <Sharengoserviceprofile_1:Embedded xmi:id="_qiJasPaOEd2-MYgc0GvAJw" base_Association="_lcE4yvaOEd2-MYgc0GvAJw"/>
+ <Sharengoserviceprofile_1:CrudService xmi:id="_mLIXUPazEd2aF7naIqxcFg" base_Class="_uY4mEIr-Ed2zQqb9w4_QNQ"/>
+ <AcceleoBusiness:Service xmi:id="_L_i-wPa0Ed2oUNMJWfgZpQ" base_Class="_9FUhAI7-Ed2TZJhzNZ91vg"/>
+ <Sharengoserviceprofile_1:Embedded xmi:id="_e6hq8PbIEd2hfYFyIHz3vg" base_Association="_cyGl6vbIEd2hfYFyIHz3vg"/>
+ <Sharengoserviceprofile_1:Embedded xmi:id="_fV6mcPbIEd2hfYFyIHz3vg" base_Association="_eNV02vbIEd2hfYFyIHz3vg"/>
+ <Sharengoserviceprofile_1:Embedded xmi:id="_fxdS8PbIEd2hfYFyIHz3vg" base_Association="_d5C_2vbIEd2hfYFyIHz3vg"/>
+ <Sharengoserviceprofile_1:Embedded xmi:id="_gTaJcPbIEd2hfYFyIHz3vg" base_Association="_dTmJavbIEd2hfYFyIHz3vg"/>
+</xmi:XMI>
Added: trunk/ant-eugene-task/src/test/resources/xmi/2.1/http-storage-api/src/main/uml/conception.uml
===================================================================
--- trunk/ant-eugene-task/src/test/resources/xmi/2.1/http-storage-api/src/main/uml/conception.uml (rev 0)
+++ trunk/ant-eugene-task/src/test/resources/xmi/2.1/http-storage-api/src/main/uml/conception.uml 2009-12-20 12:58:28 UTC (rev 772)
@@ -0,0 +1,250 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="2.1" xmlns:xmi="http://schema.omg.org/spec/XMI/2.1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:AcceleoBusiness="http:///schemas/AcceleoBusiness/_my2ZAHXaEd2S2Y-Jnv-fiQ/2" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:uml="http://www.eclipse.org/uml2/2.1.0/UML" xsi:schemaLocation="http:///schemas/AcceleoBusiness/_my2ZAHXaEd2S2Y-Jnv-fiQ/2 pathmap://ACCELEO_PROFILES/Acceleo.Business.profile.uml#_81g14fWcEdyuYMHNZCqWBQ">
+ <uml:Model xmi:id="_qb8akM37EdqwVrslYOdUDA" name="org::sharengo::s4a::storage::http::api">
+ <packagedElement xmi:type="uml:Package" xmi:id="_w8IxIM37EdqwVrslYOdUDA" name="services">
+ <packagedElement xmi:type="uml:Interface" xmi:id="_hqBkGO7mEd2ObcIAlNg7-w" name="IHttpStorageSrv">
+ <ownedOperation xmi:id="_4-4fwu7oEd2ObcIAlNg7-w" name="getDescription">
+ <ownedParameter xmi:id="_VibUkO7wEd2ObcIAlNg7-w" name="return" type="_nstfSO7mEd2ObcIAlNg7-w" direction="return"/>
+ <raisedException xmi:type="uml:Class" href="../../../../org.sharengo.utils.utils/src/main/uml/conception-helper.uml#_j3qGYKEgEd2PM6_wGJR42Q"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_Ji7kEu7tEd2ObcIAlNg7-w" name="getContract">
+ <ownedParameter xmi:id="_YMmb0O7wEd2ObcIAlNg7-w" name="return" type="_8lDAGO7mEd2ObcIAlNg7-w" direction="return"/>
+ <raisedException xmi:type="uml:Class" href="../../../../org.sharengo.utils.utils/src/main/uml/conception-helper.uml#_j3qGYKEgEd2PM6_wGJR42Q"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_5C-RYu7vEd2ObcIAlNg7-w" name="createFileEntry">
+ <ownedParameter xmi:id="__F19UO7wEd2ObcIAlNg7-w" name="return" type="_e_H4iO7wEd2ObcIAlNg7-w" direction="return"/>
+ <ownedParameter xmi:id="_A9WRgO7xEd2ObcIAlNg7-w" name="fileEntry" type="_e_H4iO7wEd2ObcIAlNg7-w"/>
+ <raisedException xmi:type="uml:Class" href="../../../../org.sharengo.utils.utils/src/main/uml/conception.uml#_YNI5EHmZEd2HRLLd0I1WrA"/>
+ <raisedException xmi:type="uml:Class" href="../../../../org.sharengo.utils.utils/src/main/uml/conception.uml#_GfaEUHmfEd2HRLLd0I1WrA"/>
+ <raisedException xmi:type="uml:Class" href="../../../../org.sharengo.utils.utils/src/main/uml/conception.uml#_4RBZUKs-Ed2Nmqhc73l7SA"/>
+ <raisedException xmi:type="uml:Class" href="../../../../org.sharengo.utils.utils/src/main/uml/conception-helper.uml#_j3qGYKEgEd2PM6_wGJR42Q"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_6rIiAu7vEd2ObcIAlNg7-w" name="deleteFileEntry">
+ <ownedParameter xmi:id="_JWiKAO7xEd2ObcIAlNg7-w" name="id">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedParameter>
+ <raisedException xmi:type="uml:Class" href="../../../../org.sharengo.utils.utils/src/main/uml/conception.uml#_YNI5EHmZEd2HRLLd0I1WrA"/>
+ <raisedException xmi:type="uml:Class" href="../../../../org.sharengo.utils.utils/src/main/uml/conception.uml#_GfaEUHmfEd2HRLLd0I1WrA"/>
+ <raisedException xmi:type="uml:Class" href="../../../../org.sharengo.utils.utils/src/main/uml/conception.uml#_KQqi-HjwEd2MH8DN-NMNrA"/>
+ <raisedException xmi:type="uml:Class" href="../../../../org.sharengo.utils.utils/src/main/uml/conception-helper.uml#_j3qGYKEgEd2PM6_wGJR42Q"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_FkgfUu7wEd2ObcIAlNg7-w" name="retrieveFileEntry">
+ <ownedParameter xmi:id="_OvWBwO7xEd2ObcIAlNg7-w" name="id">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_TNwGwO7xEd2ObcIAlNg7-w" name="return" type="_e_H4iO7wEd2ObcIAlNg7-w" direction="return"/>
+ <raisedException xmi:type="uml:Class" href="../../../../org.sharengo.utils.utils/src/main/uml/conception.uml#_YNI5EHmZEd2HRLLd0I1WrA"/>
+ <raisedException xmi:type="uml:Class" href="../../../../org.sharengo.utils.utils/src/main/uml/conception.uml#_GfaEUHmfEd2HRLLd0I1WrA"/>
+ <raisedException xmi:type="uml:Class" href="../../../../org.sharengo.utils.utils/src/main/uml/conception.uml#_KQqi-HjwEd2MH8DN-NMNrA"/>
+ <raisedException xmi:type="uml:Class" href="../../../../org.sharengo.utils.utils/src/main/uml/conception-helper.uml#_j3qGYKEgEd2PM6_wGJR42Q"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_PR4jku7wEd2ObcIAlNg7-w" name="getUploadToken">
+ <ownedParameter xmi:id="_V_OI0O7xEd2ObcIAlNg7-w" name="id">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_YCgPMO7xEd2ObcIAlNg7-w" name="return" type="_VmNvyO7tEd2ObcIAlNg7-w" direction="return"/>
+ <raisedException xmi:type="uml:Class" href="../../../../org.sharengo.utils.utils/src/main/uml/conception.uml#_YNI5EHmZEd2HRLLd0I1WrA"/>
+ <raisedException xmi:type="uml:Class" href="../../../../org.sharengo.utils.utils/src/main/uml/conception.uml#_GfaEUHmfEd2HRLLd0I1WrA"/>
+ <raisedException xmi:type="uml:Class" href="../../../../org.sharengo.utils.utils/src/main/uml/conception.uml#_KQqi-HjwEd2MH8DN-NMNrA"/>
+ <raisedException xmi:type="uml:Class" href="../../../../org.sharengo.utils.utils/src/main/uml/conception-helper.uml#_j3qGYKEgEd2PM6_wGJR42Q"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_Qe6-cu7wEd2ObcIAlNg7-w" name="getDownloadUrl">
+ <ownedParameter xmi:id="_c0bGEO7xEd2ObcIAlNg7-w" name="return" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_e3jbcO7xEd2ObcIAlNg7-w" name="id">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedParameter>
+ <raisedException xmi:type="uml:Class" href="../../../../org.sharengo.utils.utils/src/main/uml/conception.uml#_YNI5EHmZEd2HRLLd0I1WrA"/>
+ <raisedException xmi:type="uml:Class" href="../../../../org.sharengo.utils.utils/src/main/uml/conception.uml#_GfaEUHmfEd2HRLLd0I1WrA"/>
+ <raisedException xmi:type="uml:Class" href="../../../../org.sharengo.utils.utils/src/main/uml/conception.uml#_KQqi-HjwEd2MH8DN-NMNrA"/>
+ <raisedException xmi:type="uml:Class" href="../../../../org.sharengo.utils.utils/src/main/uml/conception.uml#_4RBZUKs-Ed2Nmqhc73l7SA"/>
+ <raisedException xmi:type="uml:Class" href="../../../../org.sharengo.utils.utils/src/main/uml/conception-helper.uml#_j3qGYKEgEd2PM6_wGJR42Q"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_kVhLgvELEd2YNfzDP2MSAQ" name="getThumbnailHtmlCode">
+ <ownedParameter xmi:id="_XTYVcPEMEd2YNfzDP2MSAQ" name="return" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_q5BfUPEMEd2YNfzDP2MSAQ" name="id">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedParameter>
+ <raisedException xmi:type="uml:Class" href="../../../../org.sharengo.utils.utils/src/main/uml/conception.uml#_YNI5EHmZEd2HRLLd0I1WrA"/>
+ <raisedException xmi:type="uml:Class" href="../../../../org.sharengo.utils.utils/src/main/uml/conception.uml#_GfaEUHmfEd2HRLLd0I1WrA"/>
+ <raisedException xmi:type="uml:Class" href="../../../../org.sharengo.utils.utils/src/main/uml/conception.uml#_KQqi-HjwEd2MH8DN-NMNrA"/>
+ <raisedException xmi:type="uml:Class" href="../../../../org.sharengo.utils.utils/src/main/uml/conception.uml#_4RBZUKs-Ed2Nmqhc73l7SA"/>
+ <raisedException xmi:type="uml:Class" href="../../../../org.sharengo.utils.utils/src/main/uml/conception-helper.uml#_j3qGYKEgEd2PM6_wGJR42Q"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_qGUsgvELEd2YNfzDP2MSAQ" name="getViewerHtmlCode">
+ <ownedParameter xmi:id="_ZoGKEPEMEd2YNfzDP2MSAQ" name="return" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_st_c4PEMEd2YNfzDP2MSAQ" name="id">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedParameter>
+ <raisedException xmi:type="uml:Class" href="../../../../org.sharengo.utils.utils/src/main/uml/conception.uml#_YNI5EHmZEd2HRLLd0I1WrA"/>
+ <raisedException xmi:type="uml:Class" href="../../../../org.sharengo.utils.utils/src/main/uml/conception.uml#_GfaEUHmfEd2HRLLd0I1WrA"/>
+ <raisedException xmi:type="uml:Class" href="../../../../org.sharengo.utils.utils/src/main/uml/conception.uml#_KQqi-HjwEd2MH8DN-NMNrA"/>
+ <raisedException xmi:type="uml:Class" href="../../../../org.sharengo.utils.utils/src/main/uml/conception.uml#_4RBZUKs-Ed2Nmqhc73l7SA"/>
+ <raisedException xmi:type="uml:Class" href="../../../../org.sharengo.utils.utils/src/main/uml/conception-helper.uml#_j3qGYKEgEd2PM6_wGJR42Q"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_wAgzAvELEd2YNfzDP2MSAQ" name="getThumbnailJpegImageUrl">
+ <ownedParameter xmi:id="_jnqKgPEMEd2YNfzDP2MSAQ" name="return" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_uFT1IPEMEd2YNfzDP2MSAQ" name="id">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedParameter>
+ <raisedException xmi:type="uml:Class" href="../../../../org.sharengo.utils.utils/src/main/uml/conception.uml#_YNI5EHmZEd2HRLLd0I1WrA"/>
+ <raisedException xmi:type="uml:Class" href="../../../../org.sharengo.utils.utils/src/main/uml/conception.uml#_GfaEUHmfEd2HRLLd0I1WrA"/>
+ <raisedException xmi:type="uml:Class" href="../../../../org.sharengo.utils.utils/src/main/uml/conception.uml#_KQqi-HjwEd2MH8DN-NMNrA"/>
+ <raisedException xmi:type="uml:Class" href="../../../../org.sharengo.utils.utils/src/main/uml/conception.uml#_4RBZUKs-Ed2Nmqhc73l7SA"/>
+ <raisedException xmi:type="uml:Class" href="../../../../org.sharengo.utils.utils/src/main/uml/conception-helper.uml#_j3qGYKEgEd2PM6_wGJR42Q"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_TAreUvLGEd2tb4J5u_5Mmg" name="validateUpload">
+ <ownedParameter xmi:id="_YoZUwPLGEd2tb4J5u_5Mmg" name="id">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_ZK0sYPLGEd2tb4J5u_5Mmg" name="postReponseCode">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Integer"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_a2jOYPLGEd2tb4J5u_5Mmg" name="postResponseContent">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_cHLIwPLGEd2tb4J5u_5Mmg" name="return" type="_4h1OsPLKEd2CRrN6b1NfLw" direction="return"/>
+ <raisedException xmi:type="uml:Class" href="../../../../org.sharengo.utils.utils/src/main/uml/conception-helper.uml#_j3qGYKEgEd2PM6_wGJR42Q"/>
+ <raisedException xmi:type="uml:Class" href="../../../../org.sharengo.utils.utils/src/main/uml/conception.uml#_YNI5EHmZEd2HRLLd0I1WrA"/>
+ <raisedException xmi:type="uml:Class" href="../../../../org.sharengo.utils.utils/src/main/uml/conception.uml#_GfaEUHmfEd2HRLLd0I1WrA"/>
+ <raisedException xmi:type="uml:Class" href="../../../../org.sharengo.utils.utils/src/main/uml/conception.uml#_KQqi-HjwEd2MH8DN-NMNrA"/>
+ </ownedOperation>
+ </packagedElement>
+ <profileApplication xmi:id="_MIURkPWdEdyp25RO5nzQ4A">
+ <eAnnotations xmi:id="_MIURkfWdEdyp25RO5nzQ4A" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="pathmap://ACCELEO_PROFILES/Acceleo.Business.profile.uml#_81g14fWcEdyuYMHNZCqWBQ"/>
+ </eAnnotations>
+ <appliedProfile href="pathmap://ACCELEO_PROFILES/Acceleo.Business.profile.uml#_JX9fQPWcEdyuYMHNZCqWBQ"/>
+ </profileApplication>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_tBzGgPWREdy_h6Mk-BiOHw" name="daos">
+ <profileApplication xmi:id="_Mg9bEPWdEdyp25RO5nzQ4A">
+ <eAnnotations xmi:id="_Mg-CIPWdEdyp25RO5nzQ4A" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="pathmap://ACCELEO_PROFILES/Acceleo.Business.profile.uml#_81g14fWcEdyuYMHNZCqWBQ"/>
+ </eAnnotations>
+ <appliedProfile href="pathmap://ACCELEO_PROFILES/Acceleo.Business.profile.uml#_JX9fQPWcEdyuYMHNZCqWBQ"/>
+ </profileApplication>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="__PrMMPWREdy_h6Mk-BiOHw" name="dtos">
+ <packagedElement xmi:type="uml:Class" xmi:id="_nstfSO7mEd2ObcIAlNg7-w" name="HttpStorageDescription">
+ <ownedAttribute xmi:id="_SMBIgO7nEd2ObcIAlNg7-w" name="name">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_VZ9EIu7nEd2ObcIAlNg7-w" name="type">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_8lDAGO7mEd2ObcIAlNg7-w" name="HttpStorageContract">
+ <ownedAttribute xmi:id="_LpEUsu7uEd2ObcIAlNg7-w" name="maxSize">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Integer"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_GiMB2O7rEd2ObcIAlNg7-w" name="SupportedFormat">
+ <ownedAttribute xmi:id="_IsLNIu7rEd2ObcIAlNg7-w" name="name">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_N_Dmku7sEd2ObcIAlNg7-w" name="code">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_ZfoGyO7sEd2ObcIAlNg7-w" name="Association1" memberEnd="_ZfoGye7sEd2ObcIAlNg7-w _ZfoGzO7sEd2ObcIAlNg7-w" navigableOwnedEnd="_ZfoGzO7sEd2ObcIAlNg7-w">
+ <ownedEnd xmi:id="_ZfoGye7sEd2ObcIAlNg7-w" name="" type="_8lDAGO7mEd2ObcIAlNg7-w" association="_ZfoGyO7sEd2ObcIAlNg7-w">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_ZfoGyu7sEd2ObcIAlNg7-w" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_ZfoGy-7sEd2ObcIAlNg7-w" value="1"/>
+ </ownedEnd>
+ <ownedEnd xmi:id="_ZfoGzO7sEd2ObcIAlNg7-w" name="inputFormats" type="_GiMB2O7rEd2ObcIAlNg7-w" association="_ZfoGyO7sEd2ObcIAlNg7-w">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_ZfoGze7sEd2ObcIAlNg7-w" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_ZfoGzu7sEd2ObcIAlNg7-w" value="1"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_6PnyGO7sEd2ObcIAlNg7-w" name="Association2" memberEnd="_6PnyGe7sEd2ObcIAlNg7-w _6PnyHO7sEd2ObcIAlNg7-w" navigableOwnedEnd="_6PnyHO7sEd2ObcIAlNg7-w">
+ <ownedEnd xmi:id="_6PnyGe7sEd2ObcIAlNg7-w" name="source" type="_8lDAGO7mEd2ObcIAlNg7-w" association="_6PnyGO7sEd2ObcIAlNg7-w">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_6PnyGu7sEd2ObcIAlNg7-w" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_6PnyG-7sEd2ObcIAlNg7-w" value="1"/>
+ </ownedEnd>
+ <ownedEnd xmi:id="_6PnyHO7sEd2ObcIAlNg7-w" name="outputFormats" type="_GiMB2O7rEd2ObcIAlNg7-w" association="_6PnyGO7sEd2ObcIAlNg7-w">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_6PnyHe7sEd2ObcIAlNg7-w" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_6PnyHu7sEd2ObcIAlNg7-w" value="1"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_VmNvyO7tEd2ObcIAlNg7-w" name="HttpTransferToken">
+ <ownedAttribute xmi:id="_WvlgsO7vEd2ObcIAlNg7-w" name="url">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_KKBuaO7vEd2ObcIAlNg7-w" name="HttpParameter">
+ <ownedAttribute xmi:id="_iUxbIu7vEd2ObcIAlNg7-w" name="name">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_i5kxUu7vEd2ObcIAlNg7-w" name="value">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_aoJGqu7vEd2ObcIAlNg7-w" name="Association3" memberEnd="_aoJGq-7vEd2ObcIAlNg7-w _aoJGru7vEd2ObcIAlNg7-w" navigableOwnedEnd="_aoJGru7vEd2ObcIAlNg7-w">
+ <ownedEnd xmi:id="_aoJGq-7vEd2ObcIAlNg7-w" name="source" type="_VmNvyO7tEd2ObcIAlNg7-w" association="_aoJGqu7vEd2ObcIAlNg7-w">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_aoJGrO7vEd2ObcIAlNg7-w" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_aoJGre7vEd2ObcIAlNg7-w" value="1"/>
+ </ownedEnd>
+ <ownedEnd xmi:id="_aoJGru7vEd2ObcIAlNg7-w" name="parameters" type="_KKBuaO7vEd2ObcIAlNg7-w" association="_aoJGqu7vEd2ObcIAlNg7-w">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_aoJGr-7vEd2ObcIAlNg7-w" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_aoJGsO7vEd2ObcIAlNg7-w" value="1"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_e_H4iO7wEd2ObcIAlNg7-w" name="FileEntry">
+ <ownedAttribute xmi:id="_g1SI4u7wEd2ObcIAlNg7-w" name="id">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_iVQG0O7wEd2ObcIAlNg7-w" name="fileName">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_DmgCgPEJEd2YNfzDP2MSAQ" name="state" type="_FboYJfEJEd2YNfzDP2MSAQ"/>
+ <ownedAttribute xmi:id="_bfNkEvEJEd2YNfzDP2MSAQ" name="creationDate">
+ <type xmi:type="uml:DataType" href="pathmap://ACCELEO_PROFILES/Acceleo.Business.profile.uml#_unIxYASfEd2Qys9YSCxJaQ"/>
+ </ownedAttribute>
+ </packagedElement>
+ <profileApplication xmi:id="_M2BsIPWdEdyp25RO5nzQ4A">
+ <eAnnotations xmi:id="_M2CTMPWdEdyp25RO5nzQ4A" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="pathmap://ACCELEO_PROFILES/Acceleo.Business.profile.uml#_81g14fWcEdyuYMHNZCqWBQ"/>
+ </eAnnotations>
+ <appliedProfile href="pathmap://ACCELEO_PROFILES/Acceleo.Business.profile.uml#_JX9fQPWcEdyuYMHNZCqWBQ"/>
+ </profileApplication>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_Cp0X0PWSEdy_h6Mk-BiOHw" name="entities">
+ <profileApplication xmi:id="_NQyVgPWdEdyp25RO5nzQ4A">
+ <eAnnotations xmi:id="_NQy8kPWdEdyp25RO5nzQ4A" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="pathmap://ACCELEO_PROFILES/Acceleo.Business.profile.uml#_81g14fWcEdyuYMHNZCqWBQ"/>
+ </eAnnotations>
+ <appliedProfile href="pathmap://ACCELEO_PROFILES/Acceleo.Business.profile.uml#_JX9fQPWcEdyuYMHNZCqWBQ"/>
+ </profileApplication>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Enumeration" xmi:id="_ExHpoO7nEd2ObcIAlNg7-w" name="GenericFormat">
+ <ownedLiteral xmi:id="_Ie7_Mu7nEd2ObcIAlNg7-w" name="ALL_FORMAT"/>
+ <ownedLiteral xmi:id="_LWYGYO7nEd2ObcIAlNg7-w" name="ORIGINAL_INPUT_FORMAT"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Enumeration" xmi:id="_FboYJfEJEd2YNfzDP2MSAQ" name="FileEntryState">
+ <ownedLiteral xmi:id="_IqdEkvEJEd2YNfzDP2MSAQ" name="CREATED"/>
+ <ownedLiteral xmi:id="_KyM0MvEJEd2YNfzDP2MSAQ" name="UPLOADED"/>
+ <ownedLiteral xmi:id="_yw6sAvE1Ed2YNfzDP2MSAQ" name="UPLOAD_IN_PROGRESS"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:DataType" xmi:id="_4h1OsPLKEd2CRrN6b1NfLw" name="Boolean"/>
+ <profileApplication xmi:id="_LmCD4PWdEdyp25RO5nzQ4A">
+ <eAnnotations xmi:id="_LmFHMPWdEdyp25RO5nzQ4A" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="pathmap://ACCELEO_PROFILES/Acceleo.Business.profile.uml#_81g14fWcEdyuYMHNZCqWBQ"/>
+ </eAnnotations>
+ <appliedProfile href="pathmap://ACCELEO_PROFILES/Acceleo.Business.profile.uml#_JX9fQPWcEdyuYMHNZCqWBQ"/>
+ </profileApplication>
+ </uml:Model>
+ <AcceleoBusiness:Dto xmi:id="_VXIAUO7sEd2ObcIAlNg7-w" base_Class="_GiMB2O7rEd2ObcIAlNg7-w"/>
+ <AcceleoBusiness:Dto xmi:id="_WCyzgO7sEd2ObcIAlNg7-w" base_Class="_8lDAGO7mEd2ObcIAlNg7-w"/>
+ <AcceleoBusiness:Dto xmi:id="_WqbbQO7sEd2ObcIAlNg7-w" base_Class="_nstfSO7mEd2ObcIAlNg7-w"/>
+ <AcceleoBusiness:Dto xmi:id="_pWriAPE8Ed2IhJnrV0PXeg" base_Class="_e_H4iO7wEd2ObcIAlNg7-w"/>
+ <AcceleoBusiness:Dto xmi:id="_p_zXgPE8Ed2IhJnrV0PXeg" base_Class="_VmNvyO7tEd2ObcIAlNg7-w"/>
+ <AcceleoBusiness:Dto xmi:id="_qj3t4PE8Ed2IhJnrV0PXeg" base_Class="_KKBuaO7vEd2ObcIAlNg7-w"/>
+</xmi:XMI>
Copied: trunk/ant-eugene-task/src/test/resources/xmi/2.1/org.sharengo.utils.container.nomenclature/src/main/uml/conception.properties (from rev 769, trunk/eugene/src/test/resources/xmi/2.1/org.sharengo.utils.container.nomenclature/src/main/uml/conception.properties)
===================================================================
--- trunk/ant-eugene-task/src/test/resources/xmi/2.1/org.sharengo.utils.container.nomenclature/src/main/uml/conception.properties (rev 0)
+++ trunk/ant-eugene-task/src/test/resources/xmi/2.1/org.sharengo.utils.container.nomenclature/src/main/uml/conception.properties 2009-12-20 12:58:28 UTC (rev 772)
@@ -0,0 +1,7 @@
+useModelAsBaseImports=yes
+
+useServicePackage=no
+useEntityPackage=no
+useDaoPackage=no
+useDtoPackage=no
+useConfigPackage=no
\ No newline at end of file
Copied: trunk/ant-eugene-task/src/test/resources/xmi/2.1/org.sharengo.utils.container.nomenclature/src/main/uml/conception.uml (from rev 769, trunk/eugene/src/test/resources/xmi/2.1/org.sharengo.utils.container.nomenclature/src/main/uml/conception.uml)
===================================================================
--- trunk/ant-eugene-task/src/test/resources/xmi/2.1/org.sharengo.utils.container.nomenclature/src/main/uml/conception.uml (rev 0)
+++ trunk/ant-eugene-task/src/test/resources/xmi/2.1/org.sharengo.utils.container.nomenclature/src/main/uml/conception.uml 2009-12-20 12:58:28 UTC (rev 772)
@@ -0,0 +1,475 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="2.1" xmlns:xmi="http://schema.omg.org/spec/XMI/2.1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:AcceleoBusiness="http:///schemas/AcceleoBusiness/_my2ZAHXaEd2S2Y-Jnv-fiQ/2" xmlns:Sharengoserviceprofile="http:///schemas/Sharengoserviceprofile/_bMLXQKEQEd2L7a68DRX6Bg/1" xmlns:Sharengoserviceprofile_1="http:///schemas/Sharengoserviceprofile/_pCa5EPQ4Ed2_aZMAEjWDNQ/2" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:uml="http://www.eclipse.org/uml2/2.1.0/UML" xsi:schemaLocation="http:///schemas/AcceleoBusiness/_my2ZAHXaEd2S2Y-Jnv-fiQ/2 pathmap://ACCELEO_PROFILES/Acceleo.Business.profile.uml#_81g14fWcEdyuYMHNZCqWBQ http:///schemas/Sharengoserviceprofile/_bMLXQKEQEd2L7a68DRX6Bg/1 pathmap://SHARENGO_PROFILES/Sharengo.service.profile.uml#_bMLXQaEQEd2L7a68DRX6Bg http:///schemas/Sharengoserviceprofile/_pCa5EPQ4Ed2_aZMAEjWDNQ/2 pathmap://SHARENGO_PROFILES/Sharengo.service.profile.uml#_pCbgIPQ4Ed2_aZMAEjWDNQ">
+ <uml:Model xmi:id="_qb8akM37EdqwVrslYOdUDA" name="org::sharengo::utils::container::nomenclature">
+ <packagedElement xmi:type="uml:Package" xmi:id="_w8IxIM37EdqwVrslYOdUDA" name="org.sharengo.utils.container.nomenclature.services">
+ <packagedElement xmi:type="uml:Class" xmi:id="_OKT88KUBEd2nLbvCg8hnUg" name="NomenclatureSrv" clientDependency="_865OI6UBEd2nLbvCg8hnUg _9U5Cg6UBEd2nLbvCg8hnUg _DXnZ86UCEd2nLbvCg8hnUg _nDTZQ7boEd2KrtrRT6fCnw">
+ <ownedOperation xmi:id="_wgSO4KXCEd2zDMU8vDJUDQ" name="createRootLevel">
+ <ownedParameter xmi:id="_9myyIKXCEd2zDMU8vDJUDQ" name="return" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_9pQQQKXCEd2zDMU8vDJUDQ" name="nomenclatureId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_eU6YsKXEEd2zDMU8vDJUDQ" name="levelTitle">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedParameter>
+ <raisedException xmi:type="uml:Class" href="../../../../org.sharengo.utils.utils/src/main/uml/conception.uml#_KQqi-HjwEd2MH8DN-NMNrA"/>
+ <raisedException xmi:type="uml:Class" href="../../../../org.sharengo.utils.utils/src/main/uml/conception.uml#_YNI5EHmZEd2HRLLd0I1WrA"/>
+ <raisedException xmi:type="uml:Class" href="../../../../org.sharengo.utils.utils/src/main/uml/conception.uml#_GfaEUHmfEd2HRLLd0I1WrA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_wwqNMKXCEd2zDMU8vDJUDQ" name="addLevelChild">
+ <ownedParameter xmi:id="_GQFjMKXDEd2zDMU8vDJUDQ" name="return" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_GRdcMKXDEd2zDMU8vDJUDQ" name="parentId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_G965kKXDEd2zDMU8vDJUDQ" name="childTitle">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedParameter>
+ <raisedException xmi:type="uml:Class" href="../../../../org.sharengo.utils.utils/src/main/uml/conception.uml#_KQqi-HjwEd2MH8DN-NMNrA"/>
+ <raisedException xmi:type="uml:Class" href="../../../../org.sharengo.utils.utils/src/main/uml/conception.uml#_GfaEUHmfEd2HRLLd0I1WrA"/>
+ <raisedException xmi:type="uml:Class" href="../../../../org.sharengo.utils.utils/src/main/uml/conception.uml#_YNI5EHmZEd2HRLLd0I1WrA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_5aLLQKXDEd2zDMU8vDJUDQ" name="getRoots">
+ <ownedParameter xmi:id="_QFtIAKXEEd2zDMU8vDJUDQ" name="return" type="_uEJHIKXDEd2zDMU8vDJUDQ" isOrdered="true" direction="return">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Y4w5EKXEEd2zDMU8vDJUDQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_a624gLffEd2168ohD-3VDw"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_QJhRAKXEEd2zDMU8vDJUDQ" name="nomenclatureId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedParameter>
+ <raisedException xmi:type="uml:Class" href="../../../../org.sharengo.utils.utils/src/main/uml/conception.uml#_KQqi-HjwEd2MH8DN-NMNrA"/>
+ <raisedException xmi:type="uml:Class" href="../../../../org.sharengo.utils.utils/src/main/uml/conception.uml#_YNI5EHmZEd2HRLLd0I1WrA"/>
+ <raisedException xmi:type="uml:Class" href="../../../../org.sharengo.utils.utils/src/main/uml/conception.uml#_GfaEUHmfEd2HRLLd0I1WrA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_LLvIYaXEEd2zDMU8vDJUDQ" name="getChildsOf">
+ <ownedParameter xmi:id="_VbwmsKXEEd2zDMU8vDJUDQ" name="return" type="_uEJHIKXDEd2zDMU8vDJUDQ" isOrdered="true" direction="return">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_l1KeEKXEEd2zDMU8vDJUDQ" value="*"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_VfRNsKXEEd2zDMU8vDJUDQ" name="nomenclatureNodeId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedParameter>
+ <raisedException xmi:type="uml:Class" href="../../../../org.sharengo.utils.utils/src/main/uml/conception.uml#_KQqi-HjwEd2MH8DN-NMNrA"/>
+ <raisedException xmi:type="uml:Class" href="../../../../org.sharengo.utils.utils/src/main/uml/conception.uml#_YNI5EHmZEd2HRLLd0I1WrA"/>
+ <raisedException xmi:type="uml:Class" href="../../../../org.sharengo.utils.utils/src/main/uml/conception.uml#_GfaEUHmfEd2HRLLd0I1WrA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_xq4u4KXEEd2zDMU8vDJUDQ" name="removeNode">
+ <ownedParameter xmi:id="_2T5hYKXEEd2zDMU8vDJUDQ" name="nomenclatureNodeId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedParameter>
+ <raisedException xmi:type="uml:Class" href="../../../../org.sharengo.utils.utils/src/main/uml/conception.uml#_KQqi-HjwEd2MH8DN-NMNrA"/>
+ <raisedException xmi:type="uml:Class" href="../../../../org.sharengo.utils.utils/src/main/uml/conception.uml#_YNI5EHmZEd2HRLLd0I1WrA"/>
+ <raisedException xmi:type="uml:Class" href="../../../../org.sharengo.utils.utils/src/main/uml/conception.uml#_GfaEUHmfEd2HRLLd0I1WrA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_0rZSgKXEEd2zDMU8vDJUDQ" name="removeNodes">
+ <ownedParameter xmi:id="_73UGoKXEEd2zDMU8vDJUDQ" name="nomenclatureNodeIds">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__kQ5gKXEEd2zDMU8vDJUDQ" value="*"/>
+ </ownedParameter>
+ <raisedException xmi:type="uml:Class" href="../../../../org.sharengo.utils.utils/src/main/uml/conception.uml#_YNI5EHmZEd2HRLLd0I1WrA"/>
+ <raisedException xmi:type="uml:Class" href="../../../../org.sharengo.utils.utils/src/main/uml/conception.uml#_GfaEUHmfEd2HRLLd0I1WrA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_roQBkKXFEd2zDMU8vDJUDQ" name="getNomenclatureTree">
+ <ownedParameter xmi:id="_z0fqQKXFEd2zDMU8vDJUDQ" name="return" type="_TznHsKXFEd2zDMU8vDJUDQ" direction="return"/>
+ <ownedParameter xmi:id="_2PgUIKXFEd2zDMU8vDJUDQ" name="nomenclatureNodeId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedParameter>
+ <raisedException xmi:type="uml:Class" href="../../../../org.sharengo.utils.utils/src/main/uml/conception.uml#_KQqi-HjwEd2MH8DN-NMNrA"/>
+ <raisedException xmi:type="uml:Class" href="../../../../org.sharengo.utils.utils/src/main/uml/conception.uml#_YNI5EHmZEd2HRLLd0I1WrA"/>
+ <raisedException xmi:type="uml:Class" href="../../../../org.sharengo.utils.utils/src/main/uml/conception.uml#_GfaEUHmfEd2HRLLd0I1WrA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_6qG8kLbvEd2KrtrRT6fCnw" name="updateNode">
+ <eAnnotations xmi:id="_Bq9TsLbxEd2KrtrRT6fCnw" source="http://www.topcased.org/documentation">
+ <details xmi:id="_Bq96wLbxEd2KrtrRT6fCnw" key="documentation" value="Update a node contained in a nomenclature"/>
+ </eAnnotations>
+ <ownedParameter xmi:id="__zaYsLbvEd2KrtrRT6fCnw" name="nodeId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="__2gI8LbvEd2KrtrRT6fCnw" name="newTitle">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedParameter>
+ <raisedException xmi:type="uml:Class" href="../../../../org.sharengo.utils.utils/src/main/uml/conception.uml#_KQqi-HjwEd2MH8DN-NMNrA"/>
+ <raisedException xmi:type="uml:Class" href="../../../../org.sharengo.utils.utils/src/main/uml/conception.uml#_YNI5EHmZEd2HRLLd0I1WrA"/>
+ <raisedException xmi:type="uml:Class" href="../../../../org.sharengo.utils.utils/src/main/uml/conception.uml#_GfaEUHmfEd2HRLLd0I1WrA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_A8dhELcUEd2KeeDiiZ5-bg" name="moveNodeBefore">
+ <ownedParameter xmi:id="_K2vY4LcUEd2KeeDiiZ5-bg" name="movedNodeId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_PGmEgLcUEd2KeeDiiZ5-bg" name="otherNodeId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedParameter>
+ <raisedException xmi:type="uml:Class" href="../../../../org.sharengo.utils.utils/src/main/uml/conception.uml#_KQqi-HjwEd2MH8DN-NMNrA"/>
+ <raisedException xmi:type="uml:Class" href="../../../../org.sharengo.utils.utils/src/main/uml/conception.uml#_GfaEUHmfEd2HRLLd0I1WrA"/>
+ <raisedException xmi:type="uml:Class" href="../../../../org.sharengo.utils.utils/src/main/uml/conception.uml#_YNI5EHmZEd2HRLLd0I1WrA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_Dn-sILcUEd2KeeDiiZ5-bg" name="moveNodeAfter">
+ <ownedParameter xmi:id="_K2vY4LcUEd2KeeDiiZ5-bg" name="movedNodeId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_PGmEgLcUEd2KeeDiiZ5-bg" name="otherNodeId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedParameter>
+ <raisedException xmi:type="uml:Class" href="../../../../org.sharengo.utils.utils/src/main/uml/conception.uml#_KQqi-HjwEd2MH8DN-NMNrA"/>
+ <raisedException xmi:type="uml:Class" href="../../../../org.sharengo.utils.utils/src/main/uml/conception.uml#_YNI5EHmZEd2HRLLd0I1WrA"/>
+ <raisedException xmi:type="uml:Class" href="../../../../org.sharengo.utils.utils/src/main/uml/conception.uml#_GfaEUHmfEd2HRLLd0I1WrA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_E2kmMLcUEd2KeeDiiZ5-bg" name="setNodePosition">
+ <ownedParameter xmi:id="_K2vY4LcUEd2KeeDiiZ5-bg" name="movedNodeId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_PGmEgLcUEd2KeeDiiZ5-bg" name="nodePosition">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Integer"/>
+ </ownedParameter>
+ <raisedException xmi:type="uml:Class" href="../../../../org.sharengo.utils.utils/src/main/uml/conception.uml#_KQqi-HjwEd2MH8DN-NMNrA"/>
+ <raisedException xmi:type="uml:Class" href="../../../../org.sharengo.utils.utils/src/main/uml/conception.uml#_YNI5EHmZEd2HRLLd0I1WrA"/>
+ <raisedException xmi:type="uml:Class" href="../../../../org.sharengo.utils.utils/src/main/uml/conception.uml#_GfaEUHmfEd2HRLLd0I1WrA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_pJaOgMqOEd2OkPIUdMmWyA" name="moveAsChild">
+ <ownedParameter xmi:id="_urunkMqOEd2OkPIUdMmWyA" name="movedNodeId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_uyU-0MqOEd2OkPIUdMmWyA" name="targetNodeId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedParameter>
+ <raisedException xmi:type="uml:Class" href="../../../../org.sharengo.utils.utils/src/main/uml/conception.uml#_KQqi-HjwEd2MH8DN-NMNrA"/>
+ <raisedException xmi:type="uml:Class" href="#_SWv98MqtEd2OkPIUdMmWyA"/>
+ <raisedException xmi:type="uml:Class" href="../../../../org.sharengo.utils.utils/src/main/uml/conception.uml#_YNI5EHmZEd2HRLLd0I1WrA"/>
+ <raisedException xmi:type="uml:Class" href="../../../../org.sharengo.utils.utils/src/main/uml/conception.uml#_GfaEUHmfEd2HRLLd0I1WrA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_VKxtIM0QEd28dI5dmASfVg" name="findNode">
+ <ownedParameter xmi:id="_euzBEM0QEd28dI5dmASfVg" name="nodeId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_kDhDAM0QEd28dI5dmASfVg" name="return" type="_uEJHIKXDEd2zDMU8vDJUDQ" direction="return"/>
+ <raisedException xmi:type="uml:Class" href="../../../../org.sharengo.utils.utils/src/main/uml/conception.uml#_KQqi-HjwEd2MH8DN-NMNrA"/>
+ <raisedException xmi:type="uml:Class" href="../../../../org.sharengo.utils.utils/src/main/uml/conception.uml#_GfaEUHmfEd2HRLLd0I1WrA"/>
+ <raisedException xmi:type="uml:Class" href="../../../../org.sharengo.utils.utils/src/main/uml/conception.uml#_YNI5EHmZEd2HRLLd0I1WrA"/>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_865OI6UBEd2nLbvCg8hnUg" name="Dependency1" supplier="_yF0iAKUBEd2nLbvCg8hnUg" client="_OKT88KUBEd2nLbvCg8hnUg"/>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_9U5Cg6UBEd2nLbvCg8hnUg" name="Dependency2" supplier="_2IP1oKUBEd2nLbvCg8hnUg" client="_OKT88KUBEd2nLbvCg8hnUg"/>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_DXnZ86UCEd2nLbvCg8hnUg" name="Dependency3" supplier="__a9XIKUBEd2nLbvCg8hnUg" client="_OKT88KUBEd2nLbvCg8hnUg"/>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_nDTZQ7boEd2KrtrRT6fCnw" name="Dependency5" client="_OKT88KUBEd2nLbvCg8hnUg"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_SWv98MqtEd2OkPIUdMmWyA" name="IncorrectMoveException">
+ <generalization xmi:id="_OKs-08quEd2OkPIUdMmWyA">
+ <general xmi:type="uml:Class" href="../../../../org.sharengo.utils.utils/src/main/uml/conception.uml#_4RBZUKs-Ed2Nmqhc73l7SA"/>
+ </generalization>
+ </packagedElement>
+ <profileApplication xmi:id="_MIURkPWdEdyp25RO5nzQ4A">
+ <eAnnotations xmi:id="_MIURkfWdEdyp25RO5nzQ4A" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="pathmap://ACCELEO_PROFILES/Acceleo.Business.profile.uml#_81g14fWcEdyuYMHNZCqWBQ"/>
+ </eAnnotations>
+ <appliedProfile href="pathmap://ACCELEO_PROFILES/Acceleo.Business.profile.uml#_JX9fQPWcEdyuYMHNZCqWBQ"/>
+ </profileApplication>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_tBzGgPWREdy_h6Mk-BiOHw" name="org.sharengo.utils.container.nomenclature.daos">
+ <packagedElement xmi:type="uml:Class" xmi:id="__a9XIKUBEd2nLbvCg8hnUg" name="NomenclatureDao" clientDependency="_AuxvcaUCEd2nLbvCg8hnUg">
+ <ownedOperation xmi:id="_j-SpkKWkEd2JF80ZOmiT1A" name="findByName">
+ <ownedParameter xmi:id="_l_H44KWkEd2JF80ZOmiT1A" name="name">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_uaHIMKWkEd2JF80ZOmiT1A" name="result" type="_2IP1oKUBEd2nLbvCg8hnUg" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_BDR7UKZsEd2hSoU9Ned0VQ" name="findNode">
+ <ownedParameter xmi:id="_CtvSAKZsEd2hSoU9Ned0VQ" name="return" type="_bWQHkKZmEd2hSoU9Ned0VQ" direction="return"/>
+ <ownedParameter xmi:id="_CwcAsKZsEd2hSoU9Ned0VQ" name="nodeId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_z3JVkKaJEd2Xq_aycuMC1w" name="createNode">
+ <ownedParameter xmi:id="_14MAQKaJEd2Xq_aycuMC1w" name="return" type="_bWQHkKZmEd2hSoU9Ned0VQ" direction="return"/>
+ <ownedParameter xmi:id="_3IcHMKaJEd2Xq_aycuMC1w" name="nodeTitle">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_3Kf8sKaJEd2Xq_aycuMC1w" name="nomenclature" type="_2IP1oKUBEd2nLbvCg8hnUg"/>
+ <ownedParameter xmi:id="_XirmILe7Ed2h3JVTJeT3sw" name="parentId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_RaMcoLcFEd2KeeDiiZ5-bg" name="updateNode">
+ <ownedParameter xmi:id="_TmnQ4LcFEd2KeeDiiZ5-bg" name="node" type="_bWQHkKZmEd2hSoU9Ned0VQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_N2zvALfBEd2h3JVTJeT3sw" name="incrementIndexesFromNode">
+ <ownedParameter xmi:id="_UduYoLfBEd2h3JVTJeT3sw" name="return" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Integer"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_UmQpkLfBEd2h3JVTJeT3sw" name="node" type="_bWQHkKZmEd2hSoU9Ned0VQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_o7_vcLfIEd2h3JVTJeT3sw" name="incrementIndexesForPosition">
+ <ownedParameter xmi:id="_uza10LfIEd2h3JVTJeT3sw" name="return" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Integer"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_u9dioLfIEd2h3JVTJeT3sw" name="parentID">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_8gXuALfIEd2h3JVTJeT3sw" name="position">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Integer"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_1JDI4LfNEd2h3JVTJeT3sw" name="getChilds">
+ <ownedParameter xmi:id="_22OcYLfNEd2h3JVTJeT3sw" name="return" type="_bWQHkKZmEd2hSoU9Ned0VQ" isOrdered="true" direction="return">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_7jZWILfNEd2h3JVTJeT3sw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_8NlioLfNEd2h3JVTJeT3sw"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_24j-sLfNEd2h3JVTJeT3sw" name="parentId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_9sE-4LoHEd2fLub6PO-GXQ" name="removeNode">
+ <ownedParameter xmi:id="_AwX2ULoIEd2fLub6PO-GXQ" name="node" type="_bWQHkKZmEd2hSoU9Ned0VQ"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_bt6rwLoREd2fLub6PO-GXQ" name="getRoots">
+ <ownedParameter xmi:id="_d2PqMLoREd2fLub6PO-GXQ" name="nomenclature" type="_2IP1oKUBEd2nLbvCg8hnUg"/>
+ <ownedParameter xmi:id="_k6Uw8LoREd2fLub6PO-GXQ" name="return" type="_bWQHkKZmEd2hSoU9Ned0VQ" isOrdered="true" direction="return">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_ozaiYLoREd2fLub6PO-GXQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_oXQx4LoREd2fLub6PO-GXQ"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_bhR6AMqQEd2OkPIUdMmWyA" name="getNextIndexIn">
+ <ownedParameter xmi:id="_dLLQAMqQEd2OkPIUdMmWyA" name="return" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Integer"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_dNHwwMqQEd2OkPIUdMmWyA" name="nomenclature" type="_2IP1oKUBEd2nLbvCg8hnUg"/>
+ <ownedParameter xmi:id="_dab0AMqQEd2OkPIUdMmWyA" name="parentId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_hgzZIPw4Ed2bV7AHEnJvKw" name="createNode">
+ <ownedParameter xmi:id="_mWmDYPw4Ed2bV7AHEnJvKw" name="nodeTitle">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_rBqEUPw4Ed2bV7AHEnJvKw" name="nomenclature" type="_2IP1oKUBEd2nLbvCg8hnUg"/>
+ <ownedParameter xmi:id="_vINqAPw4Ed2bV7AHEnJvKw" name="parentId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_1EVqMPw4Ed2bV7AHEnJvKw" name="externalId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_lJYz8Pw5Ed2bV7AHEnJvKw" name="return" type="_bWQHkKZmEd2hSoU9Ned0VQ" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_Md-70PzWEd2PIPDmB0ur5g" name="findNodeByExternalId">
+ <ownedParameter xmi:id="_QsvbQPzWEd2PIPDmB0ur5g" name="return" type="_bWQHkKZmEd2hSoU9Ned0VQ" direction="return"/>
+ <ownedParameter xmi:id="_S6TfAPzWEd2PIPDmB0ur5g" name="externalNodeId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedParameter>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_AuxvcaUCEd2nLbvCg8hnUg" name="Dependency1" supplier="_2IP1oKUBEd2nLbvCg8hnUg" client="__a9XIKUBEd2nLbvCg8hnUg"/>
+ <profileApplication xmi:id="_Mg9bEPWdEdyp25RO5nzQ4A">
+ <eAnnotations xmi:id="_Mg-CIPWdEdyp25RO5nzQ4A" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="pathmap://ACCELEO_PROFILES/Acceleo.Business.profile.uml#_81g14fWcEdyuYMHNZCqWBQ"/>
+ </eAnnotations>
+ <appliedProfile href="pathmap://ACCELEO_PROFILES/Acceleo.Business.profile.uml#_JX9fQPWcEdyuYMHNZCqWBQ"/>
+ </profileApplication>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_Cp0X0PWSEdy_h6Mk-BiOHw" name="org.sharengo.utils.container.nomenclature.entities">
+ <packagedElement xmi:type="uml:Class" xmi:id="_2IP1oKUBEd2nLbvCg8hnUg" name="NomenclatureEntity">
+ <ownedAttribute xmi:id="_QMBDEKUOEd2UE9_vp3wznw" name="name">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_HrJBIKZhEd2hSoU9Ned0VQ" name="graphId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_bWQHkKZmEd2hSoU9Ned0VQ" name="NomenclatureNodeEntity">
+ <ownedAttribute xmi:id="_dXdxYKZmEd2hSoU9Ned0VQ" name="title">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_nYIyQLcTEd2KeeDiiZ5-bg" name="nodeIndex">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Integer"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_qmLXILe5Ed2h3JVTJeT3sw" name="parentId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_fuboyKZmEd2hSoU9Ned0VQ" name="Association1" memberEnd="_fuboyaZmEd2hSoU9Ned0VQ _fubozKZmEd2hSoU9Ned0VQ" navigableOwnedEnd="_fuboyaZmEd2hSoU9Ned0VQ _fubozKZmEd2hSoU9Ned0VQ">
+ <ownedEnd xmi:id="_fuboyaZmEd2hSoU9Ned0VQ" name="nomenclature" type="_2IP1oKUBEd2nLbvCg8hnUg" association="_fuboyKZmEd2hSoU9Ned0VQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_fuboyqZmEd2hSoU9Ned0VQ" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_fuboy6ZmEd2hSoU9Ned0VQ" value="1"/>
+ </ownedEnd>
+ <ownedEnd xmi:id="_fubozKZmEd2hSoU9Ned0VQ" name="nodes" type="_bWQHkKZmEd2hSoU9Ned0VQ" aggregation="shared" association="_fuboyKZmEd2hSoU9Ned0VQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_fubozaZmEd2hSoU9Ned0VQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_fubozqZmEd2hSoU9Ned0VQ"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_6Wco0fatEd24qc6_yLs78w" name="Association2" memberEnd="_6Wco0vatEd24qc6_yLs78w _6Wco1fatEd24qc6_yLs78w" navigableOwnedEnd="_6Wco1fatEd24qc6_yLs78w">
+ <ownedEnd xmi:id="_6Wco0vatEd24qc6_yLs78w" name="source" type="_2IP1oKUBEd2nLbvCg8hnUg" association="_6Wco0fatEd24qc6_yLs78w">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_6Wco0_atEd24qc6_yLs78w" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_6Wco1PatEd24qc6_yLs78w" value="1"/>
+ </ownedEnd>
+ <ownedEnd xmi:id="_6Wco1fatEd24qc6_yLs78w" name="target" association="_6Wco0fatEd24qc6_yLs78w">
+ <type xmi:type="uml:Class" href="../../../../org.sharengo.utils.utils/src/main/uml/conception-helper.uml#_Hb8X4faMEd2-MYgc0GvAJw"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_6Wco1vatEd24qc6_yLs78w" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_6Wco1_atEd24qc6_yLs78w" value="1"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_6wOayvatEd24qc6_yLs78w" name="Association3" memberEnd="_6wOay_atEd24qc6_yLs78w _6wOazvatEd24qc6_yLs78w" navigableOwnedEnd="_6wOazvatEd24qc6_yLs78w">
+ <ownedEnd xmi:id="_6wOay_atEd24qc6_yLs78w" name="source" type="_2IP1oKUBEd2nLbvCg8hnUg" association="_6wOayvatEd24qc6_yLs78w">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_6wOazPatEd24qc6_yLs78w" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_6wOazfatEd24qc6_yLs78w" value="1"/>
+ </ownedEnd>
+ <ownedEnd xmi:id="_6wOazvatEd24qc6_yLs78w" name="target" association="_6wOayvatEd24qc6_yLs78w">
+ <type xmi:type="uml:Class" href="../../../../org.sharengo.utils.utils/src/main/uml/conception-helper.uml#_Hb8X5PaMEd2-MYgc0GvAJw"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_6wOaz_atEd24qc6_yLs78w" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_6wOa0PatEd24qc6_yLs78w" value="1"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_7KyP2vatEd24qc6_yLs78w" name="Association4" memberEnd="_7KyP2_atEd24qc6_yLs78w _7KyP3vatEd24qc6_yLs78w" navigableOwnedEnd="_7KyP3vatEd24qc6_yLs78w">
+ <ownedEnd xmi:id="_7KyP2_atEd24qc6_yLs78w" name="source" type="_bWQHkKZmEd2hSoU9Ned0VQ" association="_7KyP2vatEd24qc6_yLs78w">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_7KyP3PatEd24qc6_yLs78w" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_7KyP3fatEd24qc6_yLs78w" value="1"/>
+ </ownedEnd>
+ <ownedEnd xmi:id="_7KyP3vatEd24qc6_yLs78w" name="target" association="_7KyP2vatEd24qc6_yLs78w">
+ <type xmi:type="uml:Class" href="../../../../org.sharengo.utils.utils/src/main/uml/conception-helper.uml#_Hb8X4faMEd2-MYgc0GvAJw"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_7KyP3_atEd24qc6_yLs78w" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_7KyP4PatEd24qc6_yLs78w" value="1"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_7ojJ6vatEd24qc6_yLs78w" name="Association5" memberEnd="_7ojJ6_atEd24qc6_yLs78w _7ojJ7vatEd24qc6_yLs78w" navigableOwnedEnd="_7ojJ7vatEd24qc6_yLs78w">
+ <ownedEnd xmi:id="_7ojJ6_atEd24qc6_yLs78w" name="source" type="_bWQHkKZmEd2hSoU9Ned0VQ" association="_7ojJ6vatEd24qc6_yLs78w">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_7ojJ7PatEd24qc6_yLs78w" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_7ojJ7fatEd24qc6_yLs78w" value="1"/>
+ </ownedEnd>
+ <ownedEnd xmi:id="_7ojJ7vatEd24qc6_yLs78w" name="target" association="_7ojJ6vatEd24qc6_yLs78w">
+ <type xmi:type="uml:Class" href="../../../../org.sharengo.utils.utils/src/main/uml/conception-helper.uml#_Hb8X5PaMEd2-MYgc0GvAJw"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_7ojJ7_atEd24qc6_yLs78w" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_7ojJ8PatEd24qc6_yLs78w" value="1"/>
+ </ownedEnd>
+ </packagedElement>
+ <profileApplication xmi:id="_NQyVgPWdEdyp25RO5nzQ4A">
+ <eAnnotations xmi:id="_NQy8kPWdEdyp25RO5nzQ4A" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="pathmap://ACCELEO_PROFILES/Acceleo.Business.profile.uml#_81g14fWcEdyuYMHNZCqWBQ"/>
+ </eAnnotations>
+ <appliedProfile href="pathmap://ACCELEO_PROFILES/Acceleo.Business.profile.uml#_JX9fQPWcEdyuYMHNZCqWBQ"/>
+ </profileApplication>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="__PrMMPWREdy_h6Mk-BiOHw" name="org.sharengo.utils.container.nomenclature.dtos">
+ <packagedElement xmi:type="uml:Class" xmi:id="_yF0iAKUBEd2nLbvCg8hnUg" name="Nomenclature">
+ <ownedAttribute xmi:id="_JJvTIKUOEd2UE9_vp3wznw" name="id">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_JzurUqUOEd2UE9_vp3wznw" name="name">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_uEJHIKXDEd2zDMU8vDJUDQ" name="NomenclatureNode">
+ <ownedAttribute xmi:id="_yGKLEKXDEd2zDMU8vDJUDQ" name="id">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_yVLegKXDEd2zDMU8vDJUDQ" name="title">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_O2wi8KmFEd2hV_-u0X61lQ" name="hasChild">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Boolean"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_vrUwcLcTEd2KeeDiiZ5-bg" name="nodeIndex">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Integer"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_tCCmQLrSEd2jN8XEkpz7QA" name="parentID">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_TznHsKXFEd2zDMU8vDJUDQ" name="NomenclatureTree">
+ <ownedAttribute xmi:id="_a_Yx4KXFEd2zDMU8vDJUDQ" name="node" type="_uEJHIKXDEd2zDMU8vDJUDQ"/>
+ <ownedAttribute xmi:id="_eHOskKXFEd2zDMU8vDJUDQ" name="childs" type="_TznHsKXFEd2zDMU8vDJUDQ" isOrdered="true">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_juFnYKXFEd2zDMU8vDJUDQ" value="*"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_pdT68PbNEd2So46ZaKFSQw" name="Association1" memberEnd="_pdT68fbNEd2So46ZaKFSQw _pdT69PbNEd2So46ZaKFSQw" navigableOwnedEnd="_pdT69PbNEd2So46ZaKFSQw">
+ <ownedEnd xmi:id="_pdT68fbNEd2So46ZaKFSQw" name="source" type="_yF0iAKUBEd2nLbvCg8hnUg" association="_pdT68PbNEd2So46ZaKFSQw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_pdT68vbNEd2So46ZaKFSQw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_pdT68_bNEd2So46ZaKFSQw" value="1"/>
+ </ownedEnd>
+ <ownedEnd xmi:id="_pdT69PbNEd2So46ZaKFSQw" name="target" association="_pdT68PbNEd2So46ZaKFSQw">
+ <type xmi:type="uml:Class" href="../../../../org.sharengo.utils.utils/src/main/uml/conception-helper.uml#_Hb8X4faMEd2-MYgc0GvAJw"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_pdT69fbNEd2So46ZaKFSQw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_pdT69vbNEd2So46ZaKFSQw" value="1"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_px5q4PbNEd2So46ZaKFSQw" name="Association2" memberEnd="_px5q4fbNEd2So46ZaKFSQw _px5q5PbNEd2So46ZaKFSQw" navigableOwnedEnd="_px5q5PbNEd2So46ZaKFSQw">
+ <ownedEnd xmi:id="_px5q4fbNEd2So46ZaKFSQw" name="source" type="_yF0iAKUBEd2nLbvCg8hnUg" association="_px5q4PbNEd2So46ZaKFSQw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_px5q4vbNEd2So46ZaKFSQw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_px5q4_bNEd2So46ZaKFSQw" value="1"/>
+ </ownedEnd>
+ <ownedEnd xmi:id="_px5q5PbNEd2So46ZaKFSQw" name="target" association="_px5q4PbNEd2So46ZaKFSQw">
+ <type xmi:type="uml:Class" href="../../../../org.sharengo.utils.utils/src/main/uml/conception-helper.uml#_Hb8X5PaMEd2-MYgc0GvAJw"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_px5q5fbNEd2So46ZaKFSQw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_px5q5vbNEd2So46ZaKFSQw" value="1"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_qC1p6vbNEd2So46ZaKFSQw" name="Association3" memberEnd="_qC1p6_bNEd2So46ZaKFSQw _qC1p7vbNEd2So46ZaKFSQw" navigableOwnedEnd="_qC1p7vbNEd2So46ZaKFSQw">
+ <ownedEnd xmi:id="_qC1p6_bNEd2So46ZaKFSQw" name="source" type="_uEJHIKXDEd2zDMU8vDJUDQ" association="_qC1p6vbNEd2So46ZaKFSQw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_qC1p7PbNEd2So46ZaKFSQw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_qC1p7fbNEd2So46ZaKFSQw" value="1"/>
+ </ownedEnd>
+ <ownedEnd xmi:id="_qC1p7vbNEd2So46ZaKFSQw" name="target" association="_qC1p6vbNEd2So46ZaKFSQw">
+ <type xmi:type="uml:Class" href="../../../../org.sharengo.utils.utils/src/main/uml/conception-helper.uml#_Hb8X4faMEd2-MYgc0GvAJw"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_qC1p7_bNEd2So46ZaKFSQw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_qC1p8PbNEd2So46ZaKFSQw" value="1"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_qbFx2vbNEd2So46ZaKFSQw" name="Association4" memberEnd="_qbFx2_bNEd2So46ZaKFSQw _qbFx3vbNEd2So46ZaKFSQw" navigableOwnedEnd="_qbFx3vbNEd2So46ZaKFSQw">
+ <ownedEnd xmi:id="_qbFx2_bNEd2So46ZaKFSQw" name="source" type="_uEJHIKXDEd2zDMU8vDJUDQ" association="_qbFx2vbNEd2So46ZaKFSQw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_qbFx3PbNEd2So46ZaKFSQw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_qbFx3fbNEd2So46ZaKFSQw" value="1"/>
+ </ownedEnd>
+ <ownedEnd xmi:id="_qbFx3vbNEd2So46ZaKFSQw" name="target" association="_qbFx2vbNEd2So46ZaKFSQw">
+ <type xmi:type="uml:Class" href="../../../../org.sharengo.utils.utils/src/main/uml/conception-helper.uml#_Hb8X5PaMEd2-MYgc0GvAJw"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_qbFx3_bNEd2So46ZaKFSQw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_qbFx4PbNEd2So46ZaKFSQw" value="1"/>
+ </ownedEnd>
+ </packagedElement>
+ <profileApplication xmi:id="_M2BsIPWdEdyp25RO5nzQ4A">
+ <eAnnotations xmi:id="_M2CTMPWdEdyp25RO5nzQ4A" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="pathmap://ACCELEO_PROFILES/Acceleo.Business.profile.uml#_81g14fWcEdyuYMHNZCqWBQ"/>
+ </eAnnotations>
+ <appliedProfile href="pathmap://ACCELEO_PROFILES/Acceleo.Business.profile.uml#_JX9fQPWcEdyuYMHNZCqWBQ"/>
+ </profileApplication>
+ </packagedElement>
+ <profileApplication xmi:id="_LmCD4PWdEdyp25RO5nzQ4A">
+ <eAnnotations xmi:id="_LmFHMPWdEdyp25RO5nzQ4A" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="pathmap://ACCELEO_PROFILES/Acceleo.Business.profile.uml#_81g14fWcEdyuYMHNZCqWBQ"/>
+ </eAnnotations>
+ <appliedProfile href="pathmap://ACCELEO_PROFILES/Acceleo.Business.profile.uml#_JX9fQPWcEdyuYMHNZCqWBQ"/>
+ </profileApplication>
+ <profileApplication xmi:id="_qGSfoKUBEd2nLbvCg8hnUg">
+ <eAnnotations xmi:id="_qGYmQKUBEd2nLbvCg8hnUg" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="pathmap://SHARENGO_PROFILES/Sharengo.service.profile.uml#_pCbgIPQ4Ed2_aZMAEjWDNQ"/>
+ </eAnnotations>
+ <appliedProfile href="pathmap://SHARENGO_PROFILES/Sharengo.service.profile.uml#_EY2fUKDiEd25boenPflnPQ"/>
+ </profileApplication>
+ </uml:Model>
+ <Sharengoserviceprofile:CrudService xmi:id="_shxqoKUBEd2nLbvCg8hnUg" base_Class="_OKT88KUBEd2nLbvCg8hnUg"/>
+ <AcceleoBusiness:Dto xmi:id="_60N1gKUBEd2nLbvCg8hnUg" base_Class="_yF0iAKUBEd2nLbvCg8hnUg"/>
+ <AcceleoBusiness:Entity xmi:id="_7jad0KUBEd2nLbvCg8hnUg" base_Class="_2IP1oKUBEd2nLbvCg8hnUg"/>
+ <AcceleoBusiness:Dao xmi:id="_BFMrYKUCEd2nLbvCg8hnUg" base_Class="__a9XIKUBEd2nLbvCg8hnUg"/>
+ <AcceleoBusiness:Remote xmi:id="_GW51kKUCEd2nLbvCg8hnUg"/>
+ <AcceleoBusiness:Remote xmi:id="_SyqS8KXDEd2zDMU8vDJUDQ" base_Operation="_wgSO4KXCEd2zDMU8vDJUDQ"/>
+ <AcceleoBusiness:Remote xmi:id="_TRsYUKXDEd2zDMU8vDJUDQ" base_Operation="_wwqNMKXCEd2zDMU8vDJUDQ"/>
+ <AcceleoBusiness:Dto xmi:id="_2B3LoKXDEd2zDMU8vDJUDQ" base_Class="_uEJHIKXDEd2zDMU8vDJUDQ"/>
+ <AcceleoBusiness:Remote xmi:id="_OK9SkKXEEd2zDMU8vDJUDQ" base_Operation="_5aLLQKXDEd2zDMU8vDJUDQ"/>
+ <AcceleoBusiness:Remote xmi:id="_OpY7AKXEEd2zDMU8vDJUDQ" base_Operation="_LLvIYaXEEd2zDMU8vDJUDQ"/>
+ <AcceleoBusiness:Remote xmi:id="_Ay5P0KXFEd2zDMU8vDJUDQ" base_Operation="_xq4u4KXEEd2zDMU8vDJUDQ"/>
+ <AcceleoBusiness:Remote xmi:id="_BKROAKXFEd2zDMU8vDJUDQ" base_Operation="_0rZSgKXEEd2zDMU8vDJUDQ"/>
+ <AcceleoBusiness:Dto xmi:id="_aLRNUKXFEd2zDMU8vDJUDQ" base_Class="_TznHsKXFEd2zDMU8vDJUDQ"/>
+ <AcceleoBusiness:Remote xmi:id="_1jPrEKXFEd2zDMU8vDJUDQ" base_Operation="_roQBkKXFEd2zDMU8vDJUDQ"/>
+ <AcceleoBusiness:Entity xmi:id="_COVrIKZqEd2hSoU9Ned0VQ" base_Class="_bWQHkKZmEd2hSoU9Ned0VQ"/>
+ <AcceleoBusiness:Dto xmi:id="_glncwLbrEd2KrtrRT6fCnw"/>
+ <AcceleoBusiness:Remote xmi:id="_PaDWYLbwEd2KrtrRT6fCnw" base_Operation="_6qG8kLbvEd2KrtrRT6fCnw"/>
+ <AcceleoBusiness:Remote xmi:id="_ImDIoLcUEd2KeeDiiZ5-bg" base_Operation="_A8dhELcUEd2KeeDiiZ5-bg"/>
+ <AcceleoBusiness:Remote xmi:id="_JDnOYLcUEd2KeeDiiZ5-bg" base_Operation="_Dn-sILcUEd2KeeDiiZ5-bg"/>
+ <AcceleoBusiness:Remote xmi:id="_JgmsYLcUEd2KeeDiiZ5-bg" base_Operation="_E2kmMLcUEd2KeeDiiZ5-bg"/>
+ <AcceleoBusiness:Remote xmi:id="_sHVYMMqOEd2OkPIUdMmWyA" base_Operation="_pJaOgMqOEd2OkPIUdMmWyA"/>
+ <AcceleoBusiness:Remote xmi:id="_YmC6IM0QEd28dI5dmASfVg" base_Operation="_VKxtIM0QEd28dI5dmASfVg"/>
+ <Sharengoserviceprofile_1:Embedded xmi:id="_BS3BUPauEd24qc6_yLs78w" base_Association="_6Wco0fatEd24qc6_yLs78w"/>
+ <Sharengoserviceprofile_1:Embedded xmi:id="_BzC9QPauEd24qc6_yLs78w" base_Association="_7KyP2vatEd24qc6_yLs78w"/>
+ <Sharengoserviceprofile_1:Embedded xmi:id="_CSfSUPauEd24qc6_yLs78w" base_Association="_7ojJ6vatEd24qc6_yLs78w"/>
+ <Sharengoserviceprofile_1:Embedded xmi:id="_DAfn0PauEd24qc6_yLs78w" base_Association="_6wOayvatEd24qc6_yLs78w"/>
+ <Sharengoserviceprofile_1:CrudService xmi:id="_atiaAPawEd2aF7naIqxcFg" base_Class="_OKT88KUBEd2nLbvCg8hnUg"/>
+ <Sharengoserviceprofile_1:Embedded xmi:id="_sOmW0PbNEd2So46ZaKFSQw" base_Association="_pdT68PbNEd2So46ZaKFSQw"/>
+ <Sharengoserviceprofile_1:Embedded xmi:id="_soju8PbNEd2So46ZaKFSQw" base_Association="_qbFx2vbNEd2So46ZaKFSQw"/>
+ <Sharengoserviceprofile_1:Embedded xmi:id="_tBH_8PbNEd2So46ZaKFSQw" base_Association="_px5q4PbNEd2So46ZaKFSQw"/>
+ <Sharengoserviceprofile_1:Embedded xmi:id="_ths9cPbNEd2So46ZaKFSQw" base_Association="_qC1p6vbNEd2So46ZaKFSQw"/>
+</xmi:XMI>
Copied: trunk/ant-eugene-task/src/test/resources/xmi/2.1/org.sharengo.utils.container.nomenclature/src/main/uml/conception.umldi (from rev 769, trunk/eugene/src/test/resources/xmi/2.1/org.sharengo.utils.container.nomenclature/src/main/uml/conception.umldi)
===================================================================
--- trunk/ant-eugene-task/src/test/resources/xmi/2.1/org.sharengo.utils.container.nomenclature/src/main/uml/conception.umldi (rev 0)
+++ trunk/ant-eugene-task/src/test/resources/xmi/2.1/org.sharengo.utils.container.nomenclature/src/main/uml/conception.umldi 2009-12-20 12:58:28 UTC (rev 772)
@@ -0,0 +1,853 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<diagrams:Diagrams xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:di="http://www.topcased.org/DI/1.0" xmlns:diagrams="http://www.topcased.org/Diagrams/1.0" xmi:id="_cd3aIPWREdy_h6Mk-BiOHw" activeDiagram="_KWzjgPatEd24qc6_yLs78w">
+ <model href="conception.uml#_qb8akM37EdqwVrslYOdUDA"/>
+ <diagrams xmi:id="_CP4_cPWTEdy_h6Mk-BiOHw" position="0,0" size="100,100" name="Package Overview" viewport="0,6">
+ <property xmi:id="_CQUdQPWTEdy_h6Mk-BiOHw" key="pageFormatName" value="A4"/>
+ <property xmi:id="_CQUdQfWTEdy_h6Mk-BiOHw" key="diagramWidth" value="840"/>
+ <property xmi:id="_CQUdQvWTEdy_h6Mk-BiOHw" key="diagramHeight" value="1188"/>
+ <property xmi:id="_CQUdQ_WTEdy_h6Mk-BiOHw" key="pageMarginName" value="Small Margin"/>
+ <property xmi:id="_CQUdRPWTEdy_h6Mk-BiOHw" key="diagramTopMargin" value="20"/>
+ <property xmi:id="_CQUdRfWTEdy_h6Mk-BiOHw" key="diagramBottomMargin" value="20"/>
+ <property xmi:id="_CQUdRvWTEdy_h6Mk-BiOHw" key="diagramLeftMargin" value="20"/>
+ <property xmi:id="_CQUdR_WTEdy_h6Mk-BiOHw" key="diagramRightMargin" value="20"/>
+ <property xmi:id="_CQUdSPWTEdy_h6Mk-BiOHw" key="orientation" value="portrait"/>
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_CP4_cfWTEdy_h6Mk-BiOHw" presentation="org.topcased.modeler.uml.classdiagram">
+ <element href="conception.uml#_qb8akM37EdqwVrslYOdUDA"/>
+ </semanticModel>
+ <contained xsi:type="di:GraphNode" xmi:id="_CiytUPWTEdy_h6Mk-BiOHw" position="54,172" size="561,127">
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_CiytUfWTEdy_h6Mk-BiOHw" presentation="default">
+ <element href="conception.uml#_w8IxIM37EdqwVrslYOdUDA"/>
+ </semanticModel>
+ <contained xsi:type="di:GraphNode" xmi:id="_OJ8wkKUBEd2nLbvCg8hnUg" position="6,25" size="178,-1">
+ <anchorage xmi:id="_86aF8KUBEd2nLbvCg8hnUg" graphEdge="_865OIKUBEd2nLbvCg8hnUg _9U5CgKUBEd2nLbvCg8hnUg _DXnZ8KUCEd2nLbvCg8hnUg"/>
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_OJ8wkaUBEd2nLbvCg8hnUg" presentation="default">
+ <element href="conception.uml#_OKT88KUBEd2nLbvCg8hnUg"/>
+ </semanticModel>
+ <contained xsi:type="di:GraphNode" xmi:id="_OJ8wkqUBEd2nLbvCg8hnUg">
+ <property xmi:id="_OJ8wk6UBEd2nLbvCg8hnUg" key="eStructuralFeatureID" value="37"/>
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_OJ8wlKUBEd2nLbvCg8hnUg" presentation="default">
+ <element href="conception.uml#_OKT88KUBEd2nLbvCg8hnUg"/>
+ </semanticModel>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="_OJ8wlaUBEd2nLbvCg8hnUg">
+ <property xmi:id="_OJ8wlqUBEd2nLbvCg8hnUg" key="eStructuralFeatureID" value="47"/>
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_OJ8wl6UBEd2nLbvCg8hnUg" presentation="default">
+ <element href="conception.uml#_OKT88KUBEd2nLbvCg8hnUg"/>
+ </semanticModel>
+ </contained>
+ </contained>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="_C1ow0PWTEdy_h6Mk-BiOHw" position="53,321" size="565,153">
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_C1ow0fWTEdy_h6Mk-BiOHw" presentation="default">
+ <element href="conception.uml#_tBzGgPWREdy_h6Mk-BiOHw"/>
+ </semanticModel>
+ <contained xsi:type="di:GraphNode" xmi:id="__a8JAKUBEd2nLbvCg8hnUg" position="10,17" size="174,-1">
+ <anchorage xmi:id="_AuvTMKUCEd2nLbvCg8hnUg" graphEdge="_AuxIYKUCEd2nLbvCg8hnUg _DXnZ8KUCEd2nLbvCg8hnUg"/>
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="__a8JAaUBEd2nLbvCg8hnUg" presentation="default">
+ <element href="conception.uml#__a9XIKUBEd2nLbvCg8hnUg"/>
+ </semanticModel>
+ <contained xsi:type="di:GraphNode" xmi:id="__a8JAqUBEd2nLbvCg8hnUg">
+ <property xmi:id="__a8JA6UBEd2nLbvCg8hnUg" key="eStructuralFeatureID" value="37"/>
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="__a8JBKUBEd2nLbvCg8hnUg" presentation="default">
+ <element href="conception.uml#__a9XIKUBEd2nLbvCg8hnUg"/>
+ </semanticModel>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="__a8JBaUBEd2nLbvCg8hnUg">
+ <property xmi:id="__a8JBqUBEd2nLbvCg8hnUg" key="eStructuralFeatureID" value="47"/>
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="__a8JB6UBEd2nLbvCg8hnUg" presentation="default">
+ <element href="conception.uml#__a9XIKUBEd2nLbvCg8hnUg"/>
+ </semanticModel>
+ </contained>
+ </contained>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="_DYMrUPWTEdy_h6Mk-BiOHw" position="59,505" size="559,167">
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_DYMrUfWTEdy_h6Mk-BiOHw" presentation="default">
+ <element href="conception.uml#_Cp0X0PWSEdy_h6Mk-BiOHw"/>
+ </semanticModel>
+ <contained xsi:type="di:GraphNode" xmi:id="_2IPOkKUBEd2nLbvCg8hnUg" position="9,31" size="167,-1">
+ <anchorage xmi:id="_9U4bcKUBEd2nLbvCg8hnUg" graphEdge="_9U5CgKUBEd2nLbvCg8hnUg _AuxIYKUCEd2nLbvCg8hnUg _fubowKZmEd2hSoU9Ned0VQ"/>
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_2IPOkaUBEd2nLbvCg8hnUg" presentation="default">
+ <element href="conception.uml#_2IP1oKUBEd2nLbvCg8hnUg"/>
+ </semanticModel>
+ <contained xsi:type="di:GraphNode" xmi:id="_2IPOkqUBEd2nLbvCg8hnUg">
+ <property xmi:id="_2IPOk6UBEd2nLbvCg8hnUg" key="eStructuralFeatureID" value="37"/>
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_2IPOlKUBEd2nLbvCg8hnUg" presentation="default">
+ <element href="conception.uml#_2IP1oKUBEd2nLbvCg8hnUg"/>
+ </semanticModel>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="_2IPOlaUBEd2nLbvCg8hnUg">
+ <property xmi:id="_2IPOlqUBEd2nLbvCg8hnUg" key="eStructuralFeatureID" value="47"/>
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_2IPOl6UBEd2nLbvCg8hnUg" presentation="default">
+ <element href="conception.uml#_2IP1oKUBEd2nLbvCg8hnUg"/>
+ </semanticModel>
+ </contained>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="_bWMdMKZmEd2hSoU9Ned0VQ" position="324,32" size="224,-1">
+ <anchorage xmi:id="_fubBsKZmEd2hSoU9Ned0VQ" graphEdge="_fubowKZmEd2hSoU9Ned0VQ"/>
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_bWNEQKZmEd2hSoU9Ned0VQ" presentation="default">
+ <element href="conception.uml#_bWQHkKZmEd2hSoU9Ned0VQ"/>
+ </semanticModel>
+ <contained xsi:type="di:GraphNode" xmi:id="_bWNEQaZmEd2hSoU9Ned0VQ">
+ <property xmi:id="_bWNEQqZmEd2hSoU9Ned0VQ" key="eStructuralFeatureID" value="37"/>
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_bWNEQ6ZmEd2hSoU9Ned0VQ" presentation="default">
+ <element href="conception.uml#_bWQHkKZmEd2hSoU9Ned0VQ"/>
+ </semanticModel>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="_bWNERKZmEd2hSoU9Ned0VQ">
+ <property xmi:id="_bWNERaZmEd2hSoU9Ned0VQ" key="eStructuralFeatureID" value="47"/>
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_bWNERqZmEd2hSoU9Ned0VQ" presentation="default">
+ <element href="conception.uml#_bWQHkKZmEd2hSoU9Ned0VQ"/>
+ </semanticModel>
+ </contained>
+ </contained>
+ <contained xsi:type="di:GraphEdge" xmi:id="_fubowKZmEd2hSoU9Ned0VQ" anchor="_9U4bcKUBEd2nLbvCg8hnUg _fubBsKZmEd2hSoU9Ned0VQ">
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_fubowaZmEd2hSoU9Ned0VQ" presentation="default">
+ <element href="conception.uml#_fuboyKZmEd2hSoU9Ned0VQ"/>
+ </semanticModel>
+ <contained xsi:type="di:EdgeObjectUV" xmi:id="_fubowqZmEd2hSoU9Ned0VQ" id="srcNameEdgeObject" uDistance="25" vDistance="-8"/>
+ <contained xsi:type="di:EdgeObjectUV" xmi:id="_fubow6ZmEd2hSoU9Ned0VQ" id="srcCountEdgeObject" uDistance="10" vDistance="-10"/>
+ <contained xsi:type="di:EdgeObjectUV" xmi:id="_fuboxKZmEd2hSoU9Ned0VQ" id="targetNameEdgeObject" uDistance="10" vDistance="10"/>
+ <contained xsi:type="di:EdgeObjectUV" xmi:id="_fuboxaZmEd2hSoU9Ned0VQ" id="targetCountEdgeObject" uDistance="-1" vDistance="9"/>
+ <contained xsi:type="di:EdgeObjectOffset" xmi:id="_fuboxqZmEd2hSoU9Ned0VQ" visible="false" id="middleNameEdgeObject" offset="0,10"/>
+ <contained xsi:type="di:EdgeObjectOffset" xmi:id="_fubox6ZmEd2hSoU9Ned0VQ" id="stereotypeEdgeObject" offset="0,-10"/>
+ </contained>
+ </contained>
+ <contained xsi:type="di:GraphEdge" xmi:id="_865OIKUBEd2nLbvCg8hnUg" anchor="_86aF8KUBEd2nLbvCg8hnUg _86atAKUBEd2nLbvCg8hnUg">
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_865OIaUBEd2nLbvCg8hnUg" presentation="default">
+ <element href="conception.uml#_865OI6UBEd2nLbvCg8hnUg"/>
+ </semanticModel>
+ <contained xsi:type="di:EdgeObjectOffset" xmi:id="_865OIqUBEd2nLbvCg8hnUg" id="stereotypeEdgeObject"/>
+ </contained>
+ <contained xsi:type="di:GraphEdge" xmi:id="_9U5CgKUBEd2nLbvCg8hnUg" anchor="_86aF8KUBEd2nLbvCg8hnUg _9U4bcKUBEd2nLbvCg8hnUg">
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_9U5CgaUBEd2nLbvCg8hnUg" presentation="default">
+ <element href="conception.uml#_9U5Cg6UBEd2nLbvCg8hnUg"/>
+ </semanticModel>
+ <contained xsi:type="di:EdgeObjectOffset" xmi:id="_9U5CgqUBEd2nLbvCg8hnUg" id="stereotypeEdgeObject"/>
+ <waypoints>[-117, 0, -119, -348]</waypoints>
+ <waypoints>[-117, 348, -119, 0]</waypoints>
+ </contained>
+ <contained xsi:type="di:GraphEdge" xmi:id="_AuxIYKUCEd2nLbvCg8hnUg" anchor="_AuvTMKUCEd2nLbvCg8hnUg _9U4bcKUBEd2nLbvCg8hnUg">
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_AuxIYaUCEd2nLbvCg8hnUg" presentation="default">
+ <element href="conception.uml#_AuxvcaUCEd2nLbvCg8hnUg"/>
+ </semanticModel>
+ <contained xsi:type="di:EdgeObjectOffset" xmi:id="_AuxvcKUCEd2nLbvCg8hnUg" id="stereotypeEdgeObject"/>
+ </contained>
+ <contained xsi:type="di:GraphEdge" xmi:id="_DXnZ8KUCEd2nLbvCg8hnUg" anchor="_86aF8KUBEd2nLbvCg8hnUg _AuvTMKUCEd2nLbvCg8hnUg">
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_DXnZ8aUCEd2nLbvCg8hnUg" presentation="default">
+ <element href="conception.uml#_DXnZ86UCEd2nLbvCg8hnUg"/>
+ </semanticModel>
+ <contained xsi:type="di:EdgeObjectOffset" xmi:id="_DXnZ8qUCEd2nLbvCg8hnUg" id="stereotypeEdgeObject"/>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="_DGWtYPWTEdy_h6Mk-BiOHw" position="52,15" size="559,139">
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_DGWtYfWTEdy_h6Mk-BiOHw" presentation="default">
+ <element href="conception.uml#__PrMMPWREdy_h6Mk-BiOHw"/>
+ </semanticModel>
+ <contained xsi:type="di:GraphNode" xmi:id="_yFzT4KUBEd2nLbvCg8hnUg" position="9,28" size="158,-1">
+ <anchorage xmi:id="_86atAKUBEd2nLbvCg8hnUg" graphEdge="_865OIKUBEd2nLbvCg8hnUg"/>
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_yFzT4aUBEd2nLbvCg8hnUg" presentation="default">
+ <element href="conception.uml#_yF0iAKUBEd2nLbvCg8hnUg"/>
+ </semanticModel>
+ <contained xsi:type="di:GraphNode" xmi:id="_yFzT4qUBEd2nLbvCg8hnUg">
+ <property xmi:id="_yFzT46UBEd2nLbvCg8hnUg" key="eStructuralFeatureID" value="37"/>
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_yFzT5KUBEd2nLbvCg8hnUg" presentation="default">
+ <element href="conception.uml#_yF0iAKUBEd2nLbvCg8hnUg"/>
+ </semanticModel>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="_yFz68KUBEd2nLbvCg8hnUg">
+ <property xmi:id="_yFz68aUBEd2nLbvCg8hnUg" key="eStructuralFeatureID" value="47"/>
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_yFz68qUBEd2nLbvCg8hnUg" presentation="default">
+ <element href="conception.uml#_yF0iAKUBEd2nLbvCg8hnUg"/>
+ </semanticModel>
+ </contained>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="_uD7rwKXDEd2zDMU8vDJUDQ" position="185,26" size="158,-1">
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_uD7rwaXDEd2zDMU8vDJUDQ" presentation="default">
+ <element href="conception.uml#_uEJHIKXDEd2zDMU8vDJUDQ"/>
+ </semanticModel>
+ <contained xsi:type="di:GraphNode" xmi:id="_uD7rwqXDEd2zDMU8vDJUDQ">
+ <property xmi:id="_uD7rw6XDEd2zDMU8vDJUDQ" key="eStructuralFeatureID" value="37"/>
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_uD7rxKXDEd2zDMU8vDJUDQ" presentation="default">
+ <element href="conception.uml#_uEJHIKXDEd2zDMU8vDJUDQ"/>
+ </semanticModel>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="_uD7rxaXDEd2zDMU8vDJUDQ">
+ <property xmi:id="_uD7rxqXDEd2zDMU8vDJUDQ" key="eStructuralFeatureID" value="47"/>
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_uD7rx6XDEd2zDMU8vDJUDQ" presentation="default">
+ <element href="conception.uml#_uEJHIKXDEd2zDMU8vDJUDQ"/>
+ </semanticModel>
+ </contained>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="_Tzl5kKXFEd2zDMU8vDJUDQ" position="356,25" size="173,-1">
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_Tzl5kaXFEd2zDMU8vDJUDQ" presentation="default">
+ <element href="conception.uml#_TznHsKXFEd2zDMU8vDJUDQ"/>
+ </semanticModel>
+ <contained xsi:type="di:GraphNode" xmi:id="_Tzl5kqXFEd2zDMU8vDJUDQ">
+ <property xmi:id="_Tzl5k6XFEd2zDMU8vDJUDQ" key="eStructuralFeatureID" value="37"/>
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_Tzl5lKXFEd2zDMU8vDJUDQ" presentation="default">
+ <element href="conception.uml#_TznHsKXFEd2zDMU8vDJUDQ"/>
+ </semanticModel>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="_Tzl5laXFEd2zDMU8vDJUDQ">
+ <property xmi:id="_Tzl5lqXFEd2zDMU8vDJUDQ" key="eStructuralFeatureID" value="47"/>
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_Tzl5l6XFEd2zDMU8vDJUDQ" presentation="default">
+ <element href="conception.uml#_TznHsKXFEd2zDMU8vDJUDQ"/>
+ </semanticModel>
+ </contained>
+ </contained>
+ </contained>
+ </diagrams>
+ <subdiagrams xmi:id="_blzJsPWREdy_h6Mk-BiOHw">
+ <model href="conception.uml#_w8IxIM37EdqwVrslYOdUDA"/>
+ <diagrams xmi:id="_PvEKAMqtEd2OkPIUdMmWyA" position="0,0" size="100,100" name="services" viewport="0,0">
+ <property xmi:id="_Pvp_4MqtEd2OkPIUdMmWyA" key="pageFormatName" value="A4"/>
+ <property xmi:id="_Pvp_4cqtEd2OkPIUdMmWyA" key="diagramWidth" value="840"/>
+ <property xmi:id="_Pvp_4sqtEd2OkPIUdMmWyA" key="diagramHeight" value="1188"/>
+ <property xmi:id="_Pvp_48qtEd2OkPIUdMmWyA" key="pageMarginName" value="Small Margin"/>
+ <property xmi:id="_Pvp_5MqtEd2OkPIUdMmWyA" key="diagramTopMargin" value="20"/>
+ <property xmi:id="_Pvp_5cqtEd2OkPIUdMmWyA" key="diagramBottomMargin" value="20"/>
+ <property xmi:id="_Pvp_5sqtEd2OkPIUdMmWyA" key="diagramLeftMargin" value="20"/>
+ <property xmi:id="_Pvp_58qtEd2OkPIUdMmWyA" key="diagramRightMargin" value="20"/>
+ <property xmi:id="_Pvp_6MqtEd2OkPIUdMmWyA" key="orientation" value="portrait"/>
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_PvEKAcqtEd2OkPIUdMmWyA" presentation="org.topcased.modeler.uml.classdiagram">
+ <element href="conception.uml#_w8IxIM37EdqwVrslYOdUDA"/>
+ </semanticModel>
+ <contained xsi:type="di:GraphNode" xmi:id="_PwUHMMqtEd2OkPIUdMmWyA" position="10,11" size="658,-1">
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_PwUHMcqtEd2OkPIUdMmWyA" presentation="default">
+ <element href="conception.uml#_OKT88KUBEd2nLbvCg8hnUg"/>
+ </semanticModel>
+ <contained xsi:type="di:GraphNode" xmi:id="_PwUHMsqtEd2OkPIUdMmWyA">
+ <property xmi:id="_PwUHM8qtEd2OkPIUdMmWyA" key="eStructuralFeatureID" value="37"/>
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_PwUHNMqtEd2OkPIUdMmWyA" presentation="default">
+ <element href="conception.uml#_OKT88KUBEd2nLbvCg8hnUg"/>
+ </semanticModel>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="_PwUHNcqtEd2OkPIUdMmWyA">
+ <property xmi:id="_PwUHNsqtEd2OkPIUdMmWyA" key="eStructuralFeatureID" value="47"/>
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_PwUHN8qtEd2OkPIUdMmWyA" presentation="default">
+ <element href="conception.uml#_OKT88KUBEd2nLbvCg8hnUg"/>
+ </semanticModel>
+ <contained xsi:type="di:GraphNode" xmi:id="_PwWjcMqtEd2OkPIUdMmWyA" position="0,0" size="-1,-1">
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_PwWjccqtEd2OkPIUdMmWyA" presentation="default">
+ <element href="conception.uml#_wgSO4KXCEd2zDMU8vDJUDQ"/>
+ </semanticModel>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="_PwWjcsqtEd2OkPIUdMmWyA" position="0,0" size="-1,-1">
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_PwWjc8qtEd2OkPIUdMmWyA" presentation="default">
+ <element href="conception.uml#_wwqNMKXCEd2zDMU8vDJUDQ"/>
+ </semanticModel>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="_PwWjdMqtEd2OkPIUdMmWyA" position="0,0" size="-1,-1">
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_PwWjdcqtEd2OkPIUdMmWyA" presentation="default">
+ <element href="conception.uml#_5aLLQKXDEd2zDMU8vDJUDQ"/>
+ </semanticModel>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="_PwXKgMqtEd2OkPIUdMmWyA" position="0,0" size="-1,-1">
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_PwXKgcqtEd2OkPIUdMmWyA" presentation="default">
+ <element href="conception.uml#_LLvIYaXEEd2zDMU8vDJUDQ"/>
+ </semanticModel>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="_PwXKgsqtEd2OkPIUdMmWyA" position="0,0" size="-1,-1">
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_PwXKg8qtEd2OkPIUdMmWyA" presentation="default">
+ <element href="conception.uml#_xq4u4KXEEd2zDMU8vDJUDQ"/>
+ </semanticModel>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="_PwXKhMqtEd2OkPIUdMmWyA" position="0,0" size="-1,-1">
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_PwXKhcqtEd2OkPIUdMmWyA" presentation="default">
+ <element href="conception.uml#_0rZSgKXEEd2zDMU8vDJUDQ"/>
+ </semanticModel>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="_PwXKhsqtEd2OkPIUdMmWyA" position="0,0" size="-1,-1">
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_PwXKh8qtEd2OkPIUdMmWyA" presentation="default">
+ <element href="conception.uml#_roQBkKXFEd2zDMU8vDJUDQ"/>
+ </semanticModel>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="_PwXxkMqtEd2OkPIUdMmWyA" position="0,0" size="-1,-1">
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_PwXxkcqtEd2OkPIUdMmWyA" presentation="default">
+ <element href="conception.uml#_6qG8kLbvEd2KrtrRT6fCnw"/>
+ </semanticModel>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="_PwXxksqtEd2OkPIUdMmWyA" position="0,0" size="-1,-1">
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_PwXxk8qtEd2OkPIUdMmWyA" presentation="default">
+ <element href="conception.uml#_A8dhELcUEd2KeeDiiZ5-bg"/>
+ </semanticModel>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="_PwXxlMqtEd2OkPIUdMmWyA" position="0,0" size="-1,-1">
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_PwXxlcqtEd2OkPIUdMmWyA" presentation="default">
+ <element href="conception.uml#_Dn-sILcUEd2KeeDiiZ5-bg"/>
+ </semanticModel>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="_PwXxlsqtEd2OkPIUdMmWyA" position="0,0" size="-1,-1">
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_PwXxl8qtEd2OkPIUdMmWyA" presentation="default">
+ <element href="conception.uml#_E2kmMLcUEd2KeeDiiZ5-bg"/>
+ </semanticModel>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="_PwYYoMqtEd2OkPIUdMmWyA" position="0,0" size="-1,-1">
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_PwYYocqtEd2OkPIUdMmWyA" presentation="default">
+ <element href="conception.uml#_pJaOgMqOEd2OkPIUdMmWyA"/>
+ </semanticModel>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="_xvQk0M0REd28dI5dmASfVg" position="0,0" size="-1,-1">
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_xvQk0c0REd28dI5dmASfVg" presentation="default">
+ <element href="conception.uml#_VKxtIM0QEd28dI5dmASfVg"/>
+ </semanticModel>
+ </contained>
+ </contained>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="_SWffQMqtEd2OkPIUdMmWyA" position="37,468" size="206,-1">
+ <anchorage xmi:id="_OKm4MMquEd2OkPIUdMmWyA" graphEdge="_OKs-0MquEd2OkPIUdMmWyA"/>
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_SWffQcqtEd2OkPIUdMmWyA" presentation="default">
+ <element href="conception.uml#_SWv98MqtEd2OkPIUdMmWyA"/>
+ </semanticModel>
+ <contained xsi:type="di:GraphNode" xmi:id="_SWffQsqtEd2OkPIUdMmWyA">
+ <property xmi:id="_SWffQ8qtEd2OkPIUdMmWyA" key="eStructuralFeatureID" value="37"/>
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_SWffRMqtEd2OkPIUdMmWyA" presentation="default">
+ <element href="conception.uml#_SWv98MqtEd2OkPIUdMmWyA"/>
+ </semanticModel>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="_SWffRcqtEd2OkPIUdMmWyA">
+ <property xmi:id="_SWffRsqtEd2OkPIUdMmWyA" key="eStructuralFeatureID" value="47"/>
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_SWffR8qtEd2OkPIUdMmWyA" presentation="default">
+ <element href="conception.uml#_SWv98MqtEd2OkPIUdMmWyA"/>
+ </semanticModel>
+ </contained>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="_M4Ti0MquEd2OkPIUdMmWyA" position="33,337" size="212,-1">
+ <anchorage xmi:id="_OKm4McquEd2OkPIUdMmWyA" graphEdge="_OKs-0MquEd2OkPIUdMmWyA"/>
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_M4Ti0cquEd2OkPIUdMmWyA" presentation="default">
+ <element href="../../../../org.sharengo.utils.utils/src/main/uml/conception.uml#_4RBZUKs-Ed2Nmqhc73l7SA"/>
+ </semanticModel>
+ <contained xsi:type="di:GraphNode" xmi:id="_M4Ti0squEd2OkPIUdMmWyA">
+ <property xmi:id="_M4Ti08quEd2OkPIUdMmWyA" key="eStructuralFeatureID" value="37"/>
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_M4Ti1MquEd2OkPIUdMmWyA" presentation="default">
+ <element href="../../../../org.sharengo.utils.utils/src/main/uml/conception.uml#_4RBZUKs-Ed2Nmqhc73l7SA"/>
+ </semanticModel>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="_M4Ti1cquEd2OkPIUdMmWyA">
+ <property xmi:id="_M4Ti1squEd2OkPIUdMmWyA" key="eStructuralFeatureID" value="47"/>
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_M4Ti18quEd2OkPIUdMmWyA" presentation="default">
+ <element href="../../../../org.sharengo.utils.utils/src/main/uml/conception.uml#_4RBZUKs-Ed2Nmqhc73l7SA"/>
+ </semanticModel>
+ </contained>
+ </contained>
+ <contained xsi:type="di:GraphEdge" xmi:id="_OKs-0MquEd2OkPIUdMmWyA" anchor="_OKm4MMquEd2OkPIUdMmWyA _OKm4McquEd2OkPIUdMmWyA">
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_OKs-0cquEd2OkPIUdMmWyA" presentation="default">
+ <element href="conception.uml#_OKs-08quEd2OkPIUdMmWyA"/>
+ </semanticModel>
+ <contained xsi:type="di:EdgeObjectOffset" xmi:id="_OKs-0squEd2OkPIUdMmWyA" id="stereotypeEdgeObject"/>
+ </contained>
+ </diagrams>
+ </subdiagrams>
+ <subdiagrams xmi:id="_08VmAPasEd24qc6_yLs78w">
+ <model href="conception.uml#__PrMMPWREdy_h6Mk-BiOHw"/>
+ <diagrams xmi:id="_08XbMPasEd24qc6_yLs78w" position="0,0" size="100,100" name="dtos" viewport="0,0">
+ <property xmi:id="_08jocPasEd24qc6_yLs78w" key="pageFormatName" value="A4"/>
+ <property xmi:id="_08jocfasEd24qc6_yLs78w" key="diagramWidth" value="840"/>
+ <property xmi:id="_08jocvasEd24qc6_yLs78w" key="diagramHeight" value="1188"/>
+ <property xmi:id="_08joc_asEd24qc6_yLs78w" key="pageMarginName" value="Small Margin"/>
+ <property xmi:id="_08jodPasEd24qc6_yLs78w" key="diagramTopMargin" value="20"/>
+ <property xmi:id="_08jodfasEd24qc6_yLs78w" key="diagramBottomMargin" value="20"/>
+ <property xmi:id="_08jodvasEd24qc6_yLs78w" key="diagramLeftMargin" value="20"/>
+ <property xmi:id="_08jod_asEd24qc6_yLs78w" key="diagramRightMargin" value="20"/>
+ <property xmi:id="_08joePasEd24qc6_yLs78w" key="orientation" value="portrait"/>
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_08XbMfasEd24qc6_yLs78w" presentation="org.topcased.modeler.uml.classdiagram">
+ <element href="conception.uml#__PrMMPWREdy_h6Mk-BiOHw"/>
+ </semanticModel>
+ <contained xsi:type="di:GraphNode" xmi:id="_5tMF4PasEd24qc6_yLs78w" position="81,33" size="158,-1">
+ <anchorage xmi:id="_pdSFwPbNEd2So46ZaKFSQw" graphEdge="_pdTT4PbNEd2So46ZaKFSQw _px5D0PbNEd2So46ZaKFSQw"/>
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_5tMF4fasEd24qc6_yLs78w" presentation="default">
+ <element href="conception.uml#_yF0iAKUBEd2nLbvCg8hnUg"/>
+ </semanticModel>
+ <contained xsi:type="di:GraphNode" xmi:id="_5tMF4vasEd24qc6_yLs78w">
+ <property xmi:id="_5tMF4_asEd24qc6_yLs78w" key="eStructuralFeatureID" value="37"/>
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_5tMF5PasEd24qc6_yLs78w" presentation="default">
+ <element href="conception.uml#_yF0iAKUBEd2nLbvCg8hnUg"/>
+ </semanticModel>
+ <contained xsi:type="di:GraphNode" xmi:id="_5tNUAPasEd24qc6_yLs78w" position="0,0" size="-1,-1">
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_5tNUAfasEd24qc6_yLs78w" presentation="default">
+ <element href="conception.uml#_JJvTIKUOEd2UE9_vp3wznw"/>
+ </semanticModel>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="_5tN7EPasEd24qc6_yLs78w" position="0,0" size="-1,-1">
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_5tN7EfasEd24qc6_yLs78w" presentation="default">
+ <element href="conception.uml#_JzurUqUOEd2UE9_vp3wznw"/>
+ </semanticModel>
+ </contained>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="_5tMF5fasEd24qc6_yLs78w">
+ <property xmi:id="_5tMF5vasEd24qc6_yLs78w" key="eStructuralFeatureID" value="47"/>
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_5tMF5_asEd24qc6_yLs78w" presentation="default">
+ <element href="conception.uml#_yF0iAKUBEd2nLbvCg8hnUg"/>
+ </semanticModel>
+ </contained>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="_6BsWQPasEd24qc6_yLs78w" position="444,30" size="158,-1">
+ <anchorage xmi:id="_qC0bwPbNEd2So46ZaKFSQw" graphEdge="_qC1p4PbNEd2So46ZaKFSQw _qbFx0PbNEd2So46ZaKFSQw"/>
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_6BsWQfasEd24qc6_yLs78w" presentation="default">
+ <element href="conception.uml#_uEJHIKXDEd2zDMU8vDJUDQ"/>
+ </semanticModel>
+ <contained xsi:type="di:GraphNode" xmi:id="_6BsWQvasEd24qc6_yLs78w">
+ <property xmi:id="_6BsWQ_asEd24qc6_yLs78w" key="eStructuralFeatureID" value="37"/>
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_6BsWRPasEd24qc6_yLs78w" presentation="default">
+ <element href="conception.uml#_uEJHIKXDEd2zDMU8vDJUDQ"/>
+ </semanticModel>
+ <contained xsi:type="di:GraphNode" xmi:id="_6Bs9UPasEd24qc6_yLs78w" position="0,0" size="-1,-1">
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_6Bs9UfasEd24qc6_yLs78w" presentation="default">
+ <element href="conception.uml#_yGKLEKXDEd2zDMU8vDJUDQ"/>
+ </semanticModel>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="_6Bs9UvasEd24qc6_yLs78w" position="0,0" size="-1,-1">
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_6Bs9U_asEd24qc6_yLs78w" presentation="default">
+ <element href="conception.uml#_yVLegKXDEd2zDMU8vDJUDQ"/>
+ </semanticModel>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="_6BtkYvasEd24qc6_yLs78w" position="0,0" size="-1,-1">
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_6BtkY_asEd24qc6_yLs78w" presentation="default">
+ <element href="conception.uml#_O2wi8KmFEd2hV_-u0X61lQ"/>
+ </semanticModel>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="_6BuLcPasEd24qc6_yLs78w" position="0,0" size="-1,-1">
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_6BuLcfasEd24qc6_yLs78w" presentation="default">
+ <element href="conception.uml#_vrUwcLcTEd2KeeDiiZ5-bg"/>
+ </semanticModel>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="_6BuLcvasEd24qc6_yLs78w" position="0,0" size="-1,-1">
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_6BuLc_asEd24qc6_yLs78w" presentation="default">
+ <element href="conception.uml#_tCCmQLrSEd2jN8XEkpz7QA"/>
+ </semanticModel>
+ </contained>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="_6BsWRfasEd24qc6_yLs78w">
+ <property xmi:id="_6BsWRvasEd24qc6_yLs78w" key="eStructuralFeatureID" value="47"/>
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_6BsWR_asEd24qc6_yLs78w" presentation="default">
+ <element href="conception.uml#_uEJHIKXDEd2zDMU8vDJUDQ"/>
+ </semanticModel>
+ </contained>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="_6XEJUPasEd24qc6_yLs78w" position="157,526" size="360,-1">
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_6XEJUfasEd24qc6_yLs78w" presentation="default">
+ <element href="conception.uml#_TznHsKXFEd2zDMU8vDJUDQ"/>
+ </semanticModel>
+ <contained xsi:type="di:GraphNode" xmi:id="_6XEJUvasEd24qc6_yLs78w">
+ <property xmi:id="_6XEJU_asEd24qc6_yLs78w" key="eStructuralFeatureID" value="37"/>
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_6XEJVPasEd24qc6_yLs78w" presentation="default">
+ <element href="conception.uml#_TznHsKXFEd2zDMU8vDJUDQ"/>
+ </semanticModel>
+ <contained xsi:type="di:GraphNode" xmi:id="_6XEwYPasEd24qc6_yLs78w" position="0,0" size="-1,-1">
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_6XEwYfasEd24qc6_yLs78w" presentation="default">
+ <element href="conception.uml#_a_Yx4KXFEd2zDMU8vDJUDQ"/>
+ </semanticModel>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="_6XEwYvasEd24qc6_yLs78w" position="0,0" size="-1,-1">
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_6XEwY_asEd24qc6_yLs78w" presentation="default">
+ <element href="conception.uml#_eHOskKXFEd2zDMU8vDJUDQ"/>
+ </semanticModel>
+ </contained>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="_6XEJVfasEd24qc6_yLs78w">
+ <property xmi:id="_6XEJVvasEd24qc6_yLs78w" key="eStructuralFeatureID" value="47"/>
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_6XEJV_asEd24qc6_yLs78w" presentation="default">
+ <element href="conception.uml#_TznHsKXFEd2zDMU8vDJUDQ"/>
+ </semanticModel>
+ </contained>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="_k3SLAPbNEd2So46ZaKFSQw" position="24,344" size="273,-1">
+ <anchorage xmi:id="_pdSFwfbNEd2So46ZaKFSQw" graphEdge="_pdTT4PbNEd2So46ZaKFSQw _qC1p4PbNEd2So46ZaKFSQw"/>
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_k3SLAfbNEd2So46ZaKFSQw" presentation="default">
+ <element href="../../../../org.sharengo.utils.utils/src/main/uml/conception-helper.uml#_Hb8X4faMEd2-MYgc0GvAJw"/>
+ </semanticModel>
+ <contained xsi:type="di:GraphNode" xmi:id="_k3SLAvbNEd2So46ZaKFSQw">
+ <property xmi:id="_k3SLA_bNEd2So46ZaKFSQw" key="eStructuralFeatureID" value="37"/>
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_k3SLBPbNEd2So46ZaKFSQw" presentation="default">
+ <element href="../../../../org.sharengo.utils.utils/src/main/uml/conception-helper.uml#_Hb8X4faMEd2-MYgc0GvAJw"/>
+ </semanticModel>
+ <contained xsi:type="di:GraphNode" xmi:id="_k3TZIPbNEd2So46ZaKFSQw" position="0,0" size="-1,-1">
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_k3TZIfbNEd2So46ZaKFSQw" presentation="default">
+ <element href="../../../../org.sharengo.utils.utils/src/main/uml/conception-helper.uml#_Hb8X4vaMEd2-MYgc0GvAJw"/>
+ </semanticModel>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="_k3UAMPbNEd2So46ZaKFSQw" position="0,0" size="-1,-1">
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_k3UAMfbNEd2So46ZaKFSQw" presentation="default">
+ <element href="../../../../org.sharengo.utils.utils/src/main/uml/conception-helper.uml#_Hb8X4_aMEd2-MYgc0GvAJw"/>
+ </semanticModel>
+ </contained>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="_k3SLBfbNEd2So46ZaKFSQw">
+ <property xmi:id="_k3SLBvbNEd2So46ZaKFSQw" key="eStructuralFeatureID" value="47"/>
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_k3SLB_bNEd2So46ZaKFSQw" presentation="default">
+ <element href="../../../../org.sharengo.utils.utils/src/main/uml/conception-helper.uml#_Hb8X4faMEd2-MYgc0GvAJw"/>
+ </semanticModel>
+ </contained>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="_lOJy4PbNEd2So46ZaKFSQw" position="386,344" size="273,-1">
+ <anchorage xmi:id="_px4cwPbNEd2So46ZaKFSQw" graphEdge="_px5D0PbNEd2So46ZaKFSQw _qbFx0PbNEd2So46ZaKFSQw"/>
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_lOJy4fbNEd2So46ZaKFSQw" presentation="default">
+ <element href="../../../../org.sharengo.utils.utils/src/main/uml/conception-helper.uml#_Hb8X5PaMEd2-MYgc0GvAJw"/>
+ </semanticModel>
+ <contained xsi:type="di:GraphNode" xmi:id="_lOJy4vbNEd2So46ZaKFSQw">
+ <property xmi:id="_lOJy4_bNEd2So46ZaKFSQw" key="eStructuralFeatureID" value="37"/>
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_lOJy5PbNEd2So46ZaKFSQw" presentation="default">
+ <element href="../../../../org.sharengo.utils.utils/src/main/uml/conception-helper.uml#_Hb8X5PaMEd2-MYgc0GvAJw"/>
+ </semanticModel>
+ <contained xsi:type="di:GraphNode" xmi:id="_lOVZEPbNEd2So46ZaKFSQw" position="0,0" size="-1,-1">
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_lOVZEfbNEd2So46ZaKFSQw" presentation="default">
+ <element href="../../../../org.sharengo.utils.utils/src/main/uml/conception-helper.uml#_Hb8X5faMEd2-MYgc0GvAJw"/>
+ </semanticModel>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="_lOVZEvbNEd2So46ZaKFSQw" position="0,0" size="-1,-1">
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_lOVZE_bNEd2So46ZaKFSQw" presentation="default">
+ <element href="../../../../org.sharengo.utils.utils/src/main/uml/conception-helper.uml#_Hb8X5vaMEd2-MYgc0GvAJw"/>
+ </semanticModel>
+ </contained>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="_lOJy5fbNEd2So46ZaKFSQw">
+ <property xmi:id="_lOJy5vbNEd2So46ZaKFSQw" key="eStructuralFeatureID" value="47"/>
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_lOJy5_bNEd2So46ZaKFSQw" presentation="default">
+ <element href="../../../../org.sharengo.utils.utils/src/main/uml/conception-helper.uml#_Hb8X5PaMEd2-MYgc0GvAJw"/>
+ </semanticModel>
+ </contained>
+ </contained>
+ <contained xsi:type="di:GraphEdge" xmi:id="_pdTT4PbNEd2So46ZaKFSQw" anchor="_pdSFwPbNEd2So46ZaKFSQw _pdSFwfbNEd2So46ZaKFSQw">
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_pdTT4fbNEd2So46ZaKFSQw" presentation="default">
+ <element href="conception.uml#_pdT68PbNEd2So46ZaKFSQw"/>
+ </semanticModel>
+ <contained xsi:type="di:EdgeObjectUV" xmi:id="_pdTT4vbNEd2So46ZaKFSQw" id="srcNameEdgeObject" uDistance="10" vDistance="10"/>
+ <contained xsi:type="di:EdgeObjectUV" xmi:id="_pdTT4_bNEd2So46ZaKFSQw" id="srcPropertiesEdgeObject" uDistance="25" vDistance="10"/>
+ <contained xsi:type="di:EdgeObjectUV" xmi:id="_pdTT5PbNEd2So46ZaKFSQw" id="srcCountEdgeObject" uDistance="10" vDistance="-10"/>
+ <contained xsi:type="di:EdgeObjectUV" xmi:id="_pdTT5fbNEd2So46ZaKFSQw" id="targetNameEdgeObject" uDistance="10" vDistance="10"/>
+ <contained xsi:type="di:EdgeObjectUV" xmi:id="_pdTT5vbNEd2So46ZaKFSQw" id="targetPropertiesEdgeObject" uDistance="25" vDistance="10"/>
+ <contained xsi:type="di:EdgeObjectUV" xmi:id="_pdTT5_bNEd2So46ZaKFSQw" id="targetCountEdgeObject" uDistance="10" vDistance="-10"/>
+ <contained xsi:type="di:EdgeObjectOffset" xmi:id="_pdTT6PbNEd2So46ZaKFSQw" visible="false" id="middleNameEdgeObject" offset="0,10"/>
+ <contained xsi:type="di:EdgeObjectOffset" xmi:id="_pdTT6fbNEd2So46ZaKFSQw" id="stereotypeEdgeObject" offset="-76,-11"/>
+ </contained>
+ <contained xsi:type="di:GraphEdge" xmi:id="_px5D0PbNEd2So46ZaKFSQw" anchor="_pdSFwPbNEd2So46ZaKFSQw _px4cwPbNEd2So46ZaKFSQw">
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_px5D0fbNEd2So46ZaKFSQw" presentation="default">
+ <element href="conception.uml#_px5q4PbNEd2So46ZaKFSQw"/>
+ </semanticModel>
+ <contained xsi:type="di:EdgeObjectUV" xmi:id="_px5D0vbNEd2So46ZaKFSQw" id="srcNameEdgeObject" uDistance="10" vDistance="10"/>
+ <contained xsi:type="di:EdgeObjectUV" xmi:id="_px5D0_bNEd2So46ZaKFSQw" id="srcPropertiesEdgeObject" uDistance="25" vDistance="10"/>
+ <contained xsi:type="di:EdgeObjectUV" xmi:id="_px5D1PbNEd2So46ZaKFSQw" id="srcCountEdgeObject" uDistance="10" vDistance="-10"/>
+ <contained xsi:type="di:EdgeObjectUV" xmi:id="_px5D1fbNEd2So46ZaKFSQw" id="targetNameEdgeObject" uDistance="10" vDistance="10"/>
+ <contained xsi:type="di:EdgeObjectUV" xmi:id="_px5D1vbNEd2So46ZaKFSQw" id="targetPropertiesEdgeObject" uDistance="25" vDistance="10"/>
+ <contained xsi:type="di:EdgeObjectUV" xmi:id="_px5D1_bNEd2So46ZaKFSQw" id="targetCountEdgeObject" uDistance="10" vDistance="-10"/>
+ <contained xsi:type="di:EdgeObjectOffset" xmi:id="_px5D2PbNEd2So46ZaKFSQw" visible="false" id="middleNameEdgeObject" offset="0,10"/>
+ <contained xsi:type="di:EdgeObjectOffset" xmi:id="_px5D2fbNEd2So46ZaKFSQw" id="stereotypeEdgeObject" offset="117,38"/>
+ </contained>
+ <contained xsi:type="di:GraphEdge" xmi:id="_qC1p4PbNEd2So46ZaKFSQw" anchor="_qC0bwPbNEd2So46ZaKFSQw _pdSFwfbNEd2So46ZaKFSQw">
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_qC1p4fbNEd2So46ZaKFSQw" presentation="default">
+ <element href="conception.uml#_qC1p6vbNEd2So46ZaKFSQw"/>
+ </semanticModel>
+ <contained xsi:type="di:EdgeObjectUV" xmi:id="_qC1p4vbNEd2So46ZaKFSQw" id="srcNameEdgeObject" uDistance="10" vDistance="10"/>
+ <contained xsi:type="di:EdgeObjectUV" xmi:id="_qC1p4_bNEd2So46ZaKFSQw" id="srcPropertiesEdgeObject" uDistance="25" vDistance="10"/>
+ <contained xsi:type="di:EdgeObjectUV" xmi:id="_qC1p5PbNEd2So46ZaKFSQw" id="srcCountEdgeObject" uDistance="10" vDistance="-10"/>
+ <contained xsi:type="di:EdgeObjectUV" xmi:id="_qC1p5fbNEd2So46ZaKFSQw" id="targetNameEdgeObject" uDistance="10" vDistance="10"/>
+ <contained xsi:type="di:EdgeObjectUV" xmi:id="_qC1p5vbNEd2So46ZaKFSQw" id="targetPropertiesEdgeObject" uDistance="25" vDistance="10"/>
+ <contained xsi:type="di:EdgeObjectUV" xmi:id="_qC1p5_bNEd2So46ZaKFSQw" id="targetCountEdgeObject" uDistance="10" vDistance="-10"/>
+ <contained xsi:type="di:EdgeObjectOffset" xmi:id="_qC1p6PbNEd2So46ZaKFSQw" visible="false" id="middleNameEdgeObject" offset="0,10"/>
+ <contained xsi:type="di:EdgeObjectOffset" xmi:id="_qC1p6fbNEd2So46ZaKFSQw" id="stereotypeEdgeObject" offset="-98,16"/>
+ </contained>
+ <contained xsi:type="di:GraphEdge" xmi:id="_qbFx0PbNEd2So46ZaKFSQw" anchor="_qC0bwPbNEd2So46ZaKFSQw _px4cwPbNEd2So46ZaKFSQw">
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_qbFx0fbNEd2So46ZaKFSQw" presentation="default">
+ <element href="conception.uml#_qbFx2vbNEd2So46ZaKFSQw"/>
+ </semanticModel>
+ <contained xsi:type="di:EdgeObjectUV" xmi:id="_qbFx0vbNEd2So46ZaKFSQw" id="srcNameEdgeObject" uDistance="10" vDistance="10"/>
+ <contained xsi:type="di:EdgeObjectUV" xmi:id="_qbFx0_bNEd2So46ZaKFSQw" id="srcPropertiesEdgeObject" uDistance="25" vDistance="10"/>
+ <contained xsi:type="di:EdgeObjectUV" xmi:id="_qbFx1PbNEd2So46ZaKFSQw" id="srcCountEdgeObject" uDistance="10" vDistance="-10"/>
+ <contained xsi:type="di:EdgeObjectUV" xmi:id="_qbFx1fbNEd2So46ZaKFSQw" id="targetNameEdgeObject" uDistance="10" vDistance="10"/>
+ <contained xsi:type="di:EdgeObjectUV" xmi:id="_qbFx1vbNEd2So46ZaKFSQw" id="targetPropertiesEdgeObject" uDistance="25" vDistance="10"/>
+ <contained xsi:type="di:EdgeObjectUV" xmi:id="_qbFx1_bNEd2So46ZaKFSQw" id="targetCountEdgeObject" uDistance="10" vDistance="-10"/>
+ <contained xsi:type="di:EdgeObjectOffset" xmi:id="_qbFx2PbNEd2So46ZaKFSQw" visible="false" id="middleNameEdgeObject" offset="0,10"/>
+ <contained xsi:type="di:EdgeObjectOffset" xmi:id="_qbFx2fbNEd2So46ZaKFSQw" id="stereotypeEdgeObject" offset="75,-18"/>
+ </contained>
+ </diagrams>
+ </subdiagrams>
+ <subdiagrams xmi:id="_KWv5IPatEd24qc6_yLs78w">
+ <model href="conception.uml#_tBzGgPWREdy_h6Mk-BiOHw"/>
+ <diagrams xmi:id="_KWzjgPatEd24qc6_yLs78w" position="0,0" size="100,100" name="daos" viewport="0,0">
+ <property xmi:id="_KXKI0PatEd24qc6_yLs78w" key="pageFormatName" value="A4"/>
+ <property xmi:id="_KXKI0fatEd24qc6_yLs78w" key="diagramWidth" value="840"/>
+ <property xmi:id="_KXKI0vatEd24qc6_yLs78w" key="diagramHeight" value="1188"/>
+ <property xmi:id="_KXKI0_atEd24qc6_yLs78w" key="pageMarginName" value="Small Margin"/>
+ <property xmi:id="_KXKI1PatEd24qc6_yLs78w" key="diagramTopMargin" value="20"/>
+ <property xmi:id="_KXKI1fatEd24qc6_yLs78w" key="diagramBottomMargin" value="20"/>
+ <property xmi:id="_KXKI1vatEd24qc6_yLs78w" key="diagramLeftMargin" value="20"/>
+ <property xmi:id="_KXKI1_atEd24qc6_yLs78w" key="diagramRightMargin" value="20"/>
+ <property xmi:id="_KXKI2PatEd24qc6_yLs78w" key="orientation" value="portrait"/>
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_KWzjgfatEd24qc6_yLs78w" presentation="org.topcased.modeler.uml.classdiagram">
+ <element href="conception.uml#_tBzGgPWREdy_h6Mk-BiOHw"/>
+ </semanticModel>
+ <contained xsi:type="di:GraphNode" xmi:id="_MQ2OUPatEd24qc6_yLs78w" position="62,56" size="657,-1">
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_MQ2OUfatEd24qc6_yLs78w" presentation="default">
+ <element href="conception.uml#__a9XIKUBEd2nLbvCg8hnUg"/>
+ </semanticModel>
+ <contained xsi:type="di:GraphNode" xmi:id="_MQ2OUvatEd24qc6_yLs78w">
+ <property xmi:id="_MQ2OU_atEd24qc6_yLs78w" key="eStructuralFeatureID" value="37"/>
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_MQ2OVPatEd24qc6_yLs78w" presentation="default">
+ <element href="conception.uml#__a9XIKUBEd2nLbvCg8hnUg"/>
+ </semanticModel>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="_MQ2OVfatEd24qc6_yLs78w">
+ <property xmi:id="_MQ2OVvatEd24qc6_yLs78w" key="eStructuralFeatureID" value="47"/>
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_MQ2OV_atEd24qc6_yLs78w" presentation="default">
+ <element href="conception.uml#__a9XIKUBEd2nLbvCg8hnUg"/>
+ </semanticModel>
+ <contained xsi:type="di:GraphNode" xmi:id="_MQ21YPatEd24qc6_yLs78w" position="0,0" size="-1,-1">
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_MQ21YfatEd24qc6_yLs78w" presentation="default">
+ <element href="conception.uml#_j-SpkKWkEd2JF80ZOmiT1A"/>
+ </semanticModel>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="_MQ3ccPatEd24qc6_yLs78w" position="0,0" size="-1,-1">
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_MQ3ccfatEd24qc6_yLs78w" presentation="default">
+ <element href="conception.uml#_BDR7UKZsEd2hSoU9Ned0VQ"/>
+ </semanticModel>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="_MQ3ccvatEd24qc6_yLs78w" position="0,0" size="-1,-1">
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_MQ3cc_atEd24qc6_yLs78w" presentation="default">
+ <element href="conception.uml#_z3JVkKaJEd2Xq_aycuMC1w"/>
+ </semanticModel>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="_MQ3cdPatEd24qc6_yLs78w" position="0,0" size="-1,-1">
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_MQ3cdfatEd24qc6_yLs78w" presentation="default">
+ <element href="conception.uml#_RaMcoLcFEd2KeeDiiZ5-bg"/>
+ </semanticModel>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="_MQ4DgPatEd24qc6_yLs78w" position="0,0" size="-1,-1">
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_MQ4DgfatEd24qc6_yLs78w" presentation="default">
+ <element href="conception.uml#_N2zvALfBEd2h3JVTJeT3sw"/>
+ </semanticModel>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="_MQ4DgvatEd24qc6_yLs78w" position="0,0" size="-1,-1">
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_MQ4Dg_atEd24qc6_yLs78w" presentation="default">
+ <element href="conception.uml#_o7_vcLfIEd2h3JVTJeT3sw"/>
+ </semanticModel>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="_MQ4DhPatEd24qc6_yLs78w" position="0,0" size="-1,-1">
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_MQ4DhfatEd24qc6_yLs78w" presentation="default">
+ <element href="conception.uml#_1JDI4LfNEd2h3JVTJeT3sw"/>
+ </semanticModel>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="_MQ4qkPatEd24qc6_yLs78w" position="0,0" size="-1,-1">
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_MQ4qkfatEd24qc6_yLs78w" presentation="default">
+ <element href="conception.uml#_9sE-4LoHEd2fLub6PO-GXQ"/>
+ </semanticModel>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="_MQ4qkvatEd24qc6_yLs78w" position="0,0" size="-1,-1">
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_MQ4qk_atEd24qc6_yLs78w" presentation="default">
+ <element href="conception.uml#_bt6rwLoREd2fLub6PO-GXQ"/>
+ </semanticModel>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="_MQ4qlPatEd24qc6_yLs78w" position="0,0" size="-1,-1">
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_MQ4qlfatEd24qc6_yLs78w" presentation="default">
+ <element href="conception.uml#_bhR6AMqQEd2OkPIUdMmWyA"/>
+ </semanticModel>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="_hgM8MPw4Ed2bV7AHEnJvKw" position="0,0" size="-1,-1">
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_hgM8Mfw4Ed2bV7AHEnJvKw" presentation="default">
+ <element href="conception.uml#_hgzZIPw4Ed2bV7AHEnJvKw"/>
+ </semanticModel>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="_MdiP4PzWEd2PIPDmB0ur5g" position="0,0" size="-1,-1">
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_MdiP4fzWEd2PIPDmB0ur5g" presentation="default">
+ <element href="conception.uml#_Md-70PzWEd2PIPDmB0ur5g"/>
+ </semanticModel>
+ </contained>
+ </contained>
+ </contained>
+ </diagrams>
+ <subdiagrams xmi:id="_bXbAEPw4Ed2bV7AHEnJvKw">
+ <model href="conception.uml#__a9XIKUBEd2nLbvCg8hnUg"/>
+ <diagrams xmi:id="_bXbAEfw4Ed2bV7AHEnJvKw" position="0,0" size="100,100" name="unnamed" viewport="0,0">
+ <property xmi:id="_bYwc0Pw4Ed2bV7AHEnJvKw" key="pageFormatName" value="A4"/>
+ <property xmi:id="_bYwc0fw4Ed2bV7AHEnJvKw" key="diagramWidth" value="840"/>
+ <property xmi:id="_bYwc0vw4Ed2bV7AHEnJvKw" key="diagramHeight" value="1188"/>
+ <property xmi:id="_bYwc0_w4Ed2bV7AHEnJvKw" key="pageMarginName" value="Small Margin"/>
+ <property xmi:id="_bYwc1Pw4Ed2bV7AHEnJvKw" key="diagramTopMargin" value="20"/>
+ <property xmi:id="_bYwc1fw4Ed2bV7AHEnJvKw" key="diagramBottomMargin" value="20"/>
+ <property xmi:id="_bYwc1vw4Ed2bV7AHEnJvKw" key="diagramLeftMargin" value="20"/>
+ <property xmi:id="_bYwc1_w4Ed2bV7AHEnJvKw" key="diagramRightMargin" value="20"/>
+ <property xmi:id="_bYwc2Pw4Ed2bV7AHEnJvKw" key="orientation" value="portrait"/>
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_bXbAEvw4Ed2bV7AHEnJvKw" presentation="org.topcased.modeler.uml.compositestructuresdiagram">
+ <element href="conception.uml#__a9XIKUBEd2nLbvCg8hnUg"/>
+ </semanticModel>
+ </diagrams>
+ </subdiagrams>
+ </subdiagrams>
+ <subdiagrams xmi:id="_Xt9x4PatEd24qc6_yLs78w">
+ <model href="conception.uml#_Cp0X0PWSEdy_h6Mk-BiOHw"/>
+ <diagrams xmi:id="_XuD4gPatEd24qc6_yLs78w" position="0,0" size="100,100" name="entities" viewport="0,0">
+ <property xmi:id="_Xubr8PatEd24qc6_yLs78w" key="pageFormatName" value="A4"/>
+ <property xmi:id="_Xubr8fatEd24qc6_yLs78w" key="diagramWidth" value="840"/>
+ <property xmi:id="_Xubr8vatEd24qc6_yLs78w" key="diagramHeight" value="1188"/>
+ <property xmi:id="_Xubr8_atEd24qc6_yLs78w" key="pageMarginName" value="Small Margin"/>
+ <property xmi:id="_Xubr9PatEd24qc6_yLs78w" key="diagramTopMargin" value="20"/>
+ <property xmi:id="_XucTAPatEd24qc6_yLs78w" key="diagramBottomMargin" value="20"/>
+ <property xmi:id="_XucTAfatEd24qc6_yLs78w" key="diagramLeftMargin" value="20"/>
+ <property xmi:id="_XucTAvatEd24qc6_yLs78w" key="diagramRightMargin" value="20"/>
+ <property xmi:id="_XucTA_atEd24qc6_yLs78w" key="orientation" value="portrait"/>
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_XuD4gfatEd24qc6_yLs78w" presentation="org.topcased.modeler.uml.classdiagram">
+ <element href="conception.uml#_Cp0X0PWSEdy_h6Mk-BiOHw"/>
+ </semanticModel>
+ <contained xsi:type="di:GraphNode" xmi:id="_ZqQfcPatEd24qc6_yLs78w" position="60,55" size="159,-1">
+ <anchorage xmi:id="_Z_AAYPatEd24qc6_yLs78w" graphEdge="_Z_BOgPatEd24qc6_yLs78w _6WcBwPatEd24qc6_yLs78w _6wOawPatEd24qc6_yLs78w"/>
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_ZqRGgPatEd24qc6_yLs78w" presentation="default">
+ <element href="conception.uml#_2IP1oKUBEd2nLbvCg8hnUg"/>
+ </semanticModel>
+ <contained xsi:type="di:GraphNode" xmi:id="_ZqRGgfatEd24qc6_yLs78w">
+ <property xmi:id="_ZqRGgvatEd24qc6_yLs78w" key="eStructuralFeatureID" value="37"/>
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_ZqRGg_atEd24qc6_yLs78w" presentation="default">
+ <element href="conception.uml#_2IP1oKUBEd2nLbvCg8hnUg"/>
+ </semanticModel>
+ <contained xsi:type="di:GraphNode" xmi:id="_ZqRGh_atEd24qc6_yLs78w" position="0,0" size="-1,-1">
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_ZqRGiPatEd24qc6_yLs78w" presentation="default">
+ <element href="conception.uml#_QMBDEKUOEd2UE9_vp3wznw"/>
+ </semanticModel>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="_ZqSUoPatEd24qc6_yLs78w" position="0,0" size="-1,-1">
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_ZqSUofatEd24qc6_yLs78w" presentation="default">
+ <element href="conception.uml#_HrJBIKZhEd2hSoU9Ned0VQ"/>
+ </semanticModel>
+ </contained>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="_ZqRGhPatEd24qc6_yLs78w">
+ <property xmi:id="_ZqRGhfatEd24qc6_yLs78w" key="eStructuralFeatureID" value="47"/>
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_ZqRGhvatEd24qc6_yLs78w" presentation="default">
+ <element href="conception.uml#_2IP1oKUBEd2nLbvCg8hnUg"/>
+ </semanticModel>
+ </contained>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="_Z-4EkPatEd24qc6_yLs78w" position="441,47" size="198,-1">
+ <anchorage xmi:id="_Z_AAYfatEd24qc6_yLs78w" graphEdge="_Z_BOgPatEd24qc6_yLs78w _7KyP0PatEd24qc6_yLs78w _7ojJ4PatEd24qc6_yLs78w"/>
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_Z-4EkfatEd24qc6_yLs78w" presentation="default">
+ <element href="conception.uml#_bWQHkKZmEd2hSoU9Ned0VQ"/>
+ </semanticModel>
+ <contained xsi:type="di:GraphNode" xmi:id="_Z-4EkvatEd24qc6_yLs78w">
+ <property xmi:id="_Z-4Ek_atEd24qc6_yLs78w" key="eStructuralFeatureID" value="37"/>
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_Z-4ElPatEd24qc6_yLs78w" presentation="default">
+ <element href="conception.uml#_bWQHkKZmEd2hSoU9Ned0VQ"/>
+ </semanticModel>
+ <contained xsi:type="di:GraphNode" xmi:id="_Z-4roPatEd24qc6_yLs78w" position="0,0" size="-1,-1">
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_Z-4rofatEd24qc6_yLs78w" presentation="default">
+ <element href="conception.uml#_dXdxYKZmEd2hSoU9Ned0VQ"/>
+ </semanticModel>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="_Z-5SsPatEd24qc6_yLs78w" position="0,0" size="-1,-1">
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_Z-5SsfatEd24qc6_yLs78w" presentation="default">
+ <element href="conception.uml#_nYIyQLcTEd2KeeDiiZ5-bg"/>
+ </semanticModel>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="_Z-5SsvatEd24qc6_yLs78w" position="0,0" size="-1,-1">
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_Z-5Ss_atEd24qc6_yLs78w" presentation="default">
+ <element href="conception.uml#_qmLXILe5Ed2h3JVTJeT3sw"/>
+ </semanticModel>
+ </contained>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="_Z-4ElfatEd24qc6_yLs78w">
+ <property xmi:id="_Z-4ElvatEd24qc6_yLs78w" key="eStructuralFeatureID" value="47"/>
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_Z-4El_atEd24qc6_yLs78w" presentation="default">
+ <element href="conception.uml#_bWQHkKZmEd2hSoU9Ned0VQ"/>
+ </semanticModel>
+ </contained>
+ </contained>
+ <contained xsi:type="di:GraphEdge" xmi:id="_Z_BOgPatEd24qc6_yLs78w" anchor="_Z_AAYPatEd24qc6_yLs78w _Z_AAYfatEd24qc6_yLs78w">
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_Z_BOgfatEd24qc6_yLs78w" presentation="default">
+ <element href="conception.uml#_fuboyKZmEd2hSoU9Ned0VQ"/>
+ </semanticModel>
+ <contained xsi:type="di:EdgeObjectUV" xmi:id="_Z_BOgvatEd24qc6_yLs78w" id="srcNameEdgeObject" uDistance="10" vDistance="10"/>
+ <contained xsi:type="di:EdgeObjectUV" xmi:id="_Z_BOg_atEd24qc6_yLs78w" id="srcPropertiesEdgeObject" uDistance="25" vDistance="10"/>
+ <contained xsi:type="di:EdgeObjectUV" xmi:id="_Z_BOhPatEd24qc6_yLs78w" id="srcCountEdgeObject" uDistance="10" vDistance="-10"/>
+ <contained xsi:type="di:EdgeObjectUV" xmi:id="_Z_BOhfatEd24qc6_yLs78w" id="targetNameEdgeObject" uDistance="10" vDistance="10"/>
+ <contained xsi:type="di:EdgeObjectUV" xmi:id="_Z_BOhvatEd24qc6_yLs78w" id="targetPropertiesEdgeObject" uDistance="25" vDistance="10"/>
+ <contained xsi:type="di:EdgeObjectUV" xmi:id="_Z_BOh_atEd24qc6_yLs78w" id="targetCountEdgeObject" uDistance="10" vDistance="-10"/>
+ <contained xsi:type="di:EdgeObjectOffset" xmi:id="_Z_BOiPatEd24qc6_yLs78w" visible="false" id="middleNameEdgeObject" offset="0,10"/>
+ <contained xsi:type="di:EdgeObjectOffset" xmi:id="_Z_BOifatEd24qc6_yLs78w" id="stereotypeEdgeObject" offset="0,-10"/>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="_yUzGkPatEd24qc6_yLs78w" position="44,293" size="190,-1">
+ <anchorage xmi:id="_6WbasPatEd24qc6_yLs78w" graphEdge="_6WcBwPatEd24qc6_yLs78w _7KyP0PatEd24qc6_yLs78w"/>
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_yUzGkfatEd24qc6_yLs78w" presentation="default">
+ <element href="../../../../org.sharengo.utils.utils/src/main/uml/conception-helper.uml#_Hb8X4faMEd2-MYgc0GvAJw"/>
+ </semanticModel>
+ <contained xsi:type="di:GraphNode" xmi:id="_yUzGkvatEd24qc6_yLs78w">
+ <property xmi:id="_yUzGk_atEd24qc6_yLs78w" key="eStructuralFeatureID" value="37"/>
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_yUzGlPatEd24qc6_yLs78w" presentation="default">
+ <element href="../../../../org.sharengo.utils.utils/src/main/uml/conception-helper.uml#_Hb8X4faMEd2-MYgc0GvAJw"/>
+ </semanticModel>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="_yUzGlfatEd24qc6_yLs78w">
+ <property xmi:id="_yUzGlvatEd24qc6_yLs78w" key="eStructuralFeatureID" value="47"/>
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_yUzGl_atEd24qc6_yLs78w" presentation="default">
+ <element href="../../../../org.sharengo.utils.utils/src/main/uml/conception-helper.uml#_Hb8X4faMEd2-MYgc0GvAJw"/>
+ </semanticModel>
+ </contained>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="_yr1tkPatEd24qc6_yLs78w" position="413,290" size="252,-1">
+ <anchorage xmi:id="_6wNzsPatEd24qc6_yLs78w" graphEdge="_6wOawPatEd24qc6_yLs78w _7ojJ4PatEd24qc6_yLs78w"/>
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_yr1tkfatEd24qc6_yLs78w" presentation="default">
+ <element href="../../../../org.sharengo.utils.utils/src/main/uml/conception-helper.uml#_Hb8X5PaMEd2-MYgc0GvAJw"/>
+ </semanticModel>
+ <contained xsi:type="di:GraphNode" xmi:id="_yr1tkvatEd24qc6_yLs78w">
+ <property xmi:id="_yr1tk_atEd24qc6_yLs78w" key="eStructuralFeatureID" value="37"/>
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_yr1tlPatEd24qc6_yLs78w" presentation="default">
+ <element href="../../../../org.sharengo.utils.utils/src/main/uml/conception-helper.uml#_Hb8X5PaMEd2-MYgc0GvAJw"/>
+ </semanticModel>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="_yr1tlfatEd24qc6_yLs78w">
+ <property xmi:id="_yr1tlvatEd24qc6_yLs78w" key="eStructuralFeatureID" value="47"/>
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_yr1tl_atEd24qc6_yLs78w" presentation="default">
+ <element href="../../../../org.sharengo.utils.utils/src/main/uml/conception-helper.uml#_Hb8X5PaMEd2-MYgc0GvAJw"/>
+ </semanticModel>
+ </contained>
+ </contained>
+ <contained xsi:type="di:GraphEdge" xmi:id="_6WcBwPatEd24qc6_yLs78w" anchor="_Z_AAYPatEd24qc6_yLs78w _6WbasPatEd24qc6_yLs78w">
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_6WcBwfatEd24qc6_yLs78w" presentation="default">
+ <element href="conception.uml#_6Wco0fatEd24qc6_yLs78w"/>
+ </semanticModel>
+ <contained xsi:type="di:EdgeObjectUV" xmi:id="_6WcBwvatEd24qc6_yLs78w" id="srcNameEdgeObject" uDistance="10" vDistance="10"/>
+ <contained xsi:type="di:EdgeObjectUV" xmi:id="_6WcBw_atEd24qc6_yLs78w" id="srcPropertiesEdgeObject" uDistance="25" vDistance="10"/>
+ <contained xsi:type="di:EdgeObjectUV" xmi:id="_6WcBxPatEd24qc6_yLs78w" id="srcCountEdgeObject" uDistance="10" vDistance="-10"/>
+ <contained xsi:type="di:EdgeObjectUV" xmi:id="_6WcBxfatEd24qc6_yLs78w" id="targetNameEdgeObject" uDistance="10" vDistance="10"/>
+ <contained xsi:type="di:EdgeObjectUV" xmi:id="_6WcBxvatEd24qc6_yLs78w" id="targetPropertiesEdgeObject" uDistance="25" vDistance="10"/>
+ <contained xsi:type="di:EdgeObjectUV" xmi:id="_6WcBx_atEd24qc6_yLs78w" id="targetCountEdgeObject" uDistance="10" vDistance="-10"/>
+ <contained xsi:type="di:EdgeObjectOffset" xmi:id="_6WcByPatEd24qc6_yLs78w" visible="false" id="middleNameEdgeObject" offset="0,10"/>
+ <contained xsi:type="di:EdgeObjectOffset" xmi:id="_6Wco0PatEd24qc6_yLs78w" id="stereotypeEdgeObject" offset="-66,-7"/>
+ </contained>
+ <contained xsi:type="di:GraphEdge" xmi:id="_6wOawPatEd24qc6_yLs78w" anchor="_Z_AAYPatEd24qc6_yLs78w _6wNzsPatEd24qc6_yLs78w">
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_6wOawfatEd24qc6_yLs78w" presentation="default">
+ <element href="conception.uml#_6wOayvatEd24qc6_yLs78w"/>
+ </semanticModel>
+ <contained xsi:type="di:EdgeObjectUV" xmi:id="_6wOawvatEd24qc6_yLs78w" id="srcNameEdgeObject" uDistance="10" vDistance="10"/>
+ <contained xsi:type="di:EdgeObjectUV" xmi:id="_6wOaw_atEd24qc6_yLs78w" id="srcPropertiesEdgeObject" uDistance="25" vDistance="10"/>
+ <contained xsi:type="di:EdgeObjectUV" xmi:id="_6wOaxPatEd24qc6_yLs78w" id="srcCountEdgeObject" uDistance="10" vDistance="-10"/>
+ <contained xsi:type="di:EdgeObjectUV" xmi:id="_6wOaxfatEd24qc6_yLs78w" id="targetNameEdgeObject" uDistance="10" vDistance="10"/>
+ <contained xsi:type="di:EdgeObjectUV" xmi:id="_6wOaxvatEd24qc6_yLs78w" id="targetPropertiesEdgeObject" uDistance="25" vDistance="10"/>
+ <contained xsi:type="di:EdgeObjectUV" xmi:id="_6wOax_atEd24qc6_yLs78w" id="targetCountEdgeObject" uDistance="10" vDistance="-10"/>
+ <contained xsi:type="di:EdgeObjectOffset" xmi:id="_6wOayPatEd24qc6_yLs78w" visible="false" id="middleNameEdgeObject" offset="0,10"/>
+ <contained xsi:type="di:EdgeObjectOffset" xmi:id="_6wOayfatEd24qc6_yLs78w" id="stereotypeEdgeObject" offset="108,10"/>
+ </contained>
+ <contained xsi:type="di:GraphEdge" xmi:id="_7KyP0PatEd24qc6_yLs78w" anchor="_Z_AAYfatEd24qc6_yLs78w _6WbasPatEd24qc6_yLs78w">
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_7KyP0fatEd24qc6_yLs78w" presentation="default">
+ <element href="conception.uml#_7KyP2vatEd24qc6_yLs78w"/>
+ </semanticModel>
+ <contained xsi:type="di:EdgeObjectUV" xmi:id="_7KyP0vatEd24qc6_yLs78w" id="srcNameEdgeObject" uDistance="10" vDistance="10"/>
+ <contained xsi:type="di:EdgeObjectUV" xmi:id="_7KyP0_atEd24qc6_yLs78w" id="srcPropertiesEdgeObject" uDistance="25" vDistance="10"/>
+ <contained xsi:type="di:EdgeObjectUV" xmi:id="_7KyP1PatEd24qc6_yLs78w" id="srcCountEdgeObject" uDistance="10" vDistance="-10"/>
+ <contained xsi:type="di:EdgeObjectUV" xmi:id="_7KyP1fatEd24qc6_yLs78w" id="targetNameEdgeObject" uDistance="10" vDistance="10"/>
+ <contained xsi:type="di:EdgeObjectUV" xmi:id="_7KyP1vatEd24qc6_yLs78w" id="targetPropertiesEdgeObject" uDistance="25" vDistance="10"/>
+ <contained xsi:type="di:EdgeObjectUV" xmi:id="_7KyP1_atEd24qc6_yLs78w" id="targetCountEdgeObject" uDistance="10" vDistance="-10"/>
+ <contained xsi:type="di:EdgeObjectOffset" xmi:id="_7KyP2PatEd24qc6_yLs78w" visible="false" id="middleNameEdgeObject" offset="0,10"/>
+ <contained xsi:type="di:EdgeObjectOffset" xmi:id="_7KyP2fatEd24qc6_yLs78w" id="stereotypeEdgeObject" offset="-105,6"/>
+ </contained>
+ <contained xsi:type="di:GraphEdge" xmi:id="_7ojJ4PatEd24qc6_yLs78w" anchor="_Z_AAYfatEd24qc6_yLs78w _6wNzsPatEd24qc6_yLs78w">
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_7ojJ4fatEd24qc6_yLs78w" presentation="default">
+ <element href="conception.uml#_7ojJ6vatEd24qc6_yLs78w"/>
+ </semanticModel>
+ <contained xsi:type="di:EdgeObjectUV" xmi:id="_7ojJ4vatEd24qc6_yLs78w" id="srcNameEdgeObject" uDistance="10" vDistance="10"/>
+ <contained xsi:type="di:EdgeObjectUV" xmi:id="_7ojJ4_atEd24qc6_yLs78w" id="srcPropertiesEdgeObject" uDistance="25" vDistance="10"/>
+ <contained xsi:type="di:EdgeObjectUV" xmi:id="_7ojJ5PatEd24qc6_yLs78w" id="srcCountEdgeObject" uDistance="10" vDistance="-10"/>
+ <contained xsi:type="di:EdgeObjectUV" xmi:id="_7ojJ5fatEd24qc6_yLs78w" id="targetNameEdgeObject" uDistance="10" vDistance="10"/>
+ <contained xsi:type="di:EdgeObjectUV" xmi:id="_7ojJ5vatEd24qc6_yLs78w" id="targetPropertiesEdgeObject" uDistance="25" vDistance="10"/>
+ <contained xsi:type="di:EdgeObjectUV" xmi:id="_7ojJ5_atEd24qc6_yLs78w" id="targetCountEdgeObject" uDistance="10" vDistance="-10"/>
+ <contained xsi:type="di:EdgeObjectOffset" xmi:id="_7ojJ6PatEd24qc6_yLs78w" visible="false" id="middleNameEdgeObject" offset="0,10"/>
+ <contained xsi:type="di:EdgeObjectOffset" xmi:id="_7ojJ6fatEd24qc6_yLs78w" id="stereotypeEdgeObject" offset="71,-10"/>
+ </contained>
+ </diagrams>
+ </subdiagrams>
+</diagrams:Diagrams>
Copied: trunk/ant-eugene-task/src/test/resources/xmi/2.1/org.sharengo.utils.utils/src/main/uml/conception-helper.uml (from rev 769, trunk/eugene/src/test/resources/xmi/2.1/org.sharengo.utils.utils/src/main/uml/conception-helper.uml)
===================================================================
--- trunk/ant-eugene-task/src/test/resources/xmi/2.1/org.sharengo.utils.utils/src/main/uml/conception-helper.uml (rev 0)
+++ trunk/ant-eugene-task/src/test/resources/xmi/2.1/org.sharengo.utils.utils/src/main/uml/conception-helper.uml 2009-12-20 12:58:28 UTC (rev 772)
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="2.1" xmlns:xmi="http://schema.omg.org/spec/XMI/2.1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:AcceleoBusiness="http:///schemas/AcceleoBusiness/_81fAsPWcEdyuYMHNZCqWBQ/0" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:uml="http://www.eclipse.org/uml2/2.1.0/UML" xsi:schemaLocation="http:///schemas/AcceleoBusiness/_81fAsPWcEdyuYMHNZCqWBQ/0 pathmap://ACCELEO_PROFILES/Acceleo.Business.profile.uml#_81g14fWcEdyuYMHNZCqWBQ">
+ <uml:Model xmi:id="_qb8akM37EdqwVrslYOdUDA">
+ <packagedElement xmi:type="uml:Package" xmi:id="_w8IxIM37EdqwVrslYOdUDA" name="conception-helper">
+ <packagedElement xmi:type="uml:Interface" xmi:id="_hFFQ0Hg-Ed2do542yyYrFA" name="Serializable"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_cYCF4H2vEd22ZfAQrfk_WQ" name="Collection"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_j3qGYKEgEd2PM6_wGJR42Q" name="TechnicalException"/>
+ <packagedElement xmi:type="uml:DataType" xmi:id="_W6YdYKtBEd2Nmqhc73l7SA" name="LogIdentifier"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_Hb8X4PaMEd2-MYgc0GvAJw" name="org.sharengo.utils.utils.embedded">
+ <packagedElement xmi:type="uml:Class" xmi:id="_Hb8X4faMEd2-MYgc0GvAJw" name="DatedElement">
+ <ownedAttribute xmi:id="_Hb8X4vaMEd2-MYgc0GvAJw" name="creationDate">
+ <type xmi:type="uml:DataType" href="pathmap://ACCELEO_PROFILES/Acceleo.Business.profile.uml#_unIxYASfEd2Qys9YSCxJaQ"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_Hb8X4_aMEd2-MYgc0GvAJw" name="updateDate">
+ <type xmi:type="uml:DataType" href="pathmap://ACCELEO_PROFILES/Acceleo.Business.profile.uml#_unIxYASfEd2Qys9YSCxJaQ"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_Hb8X5PaMEd2-MYgc0GvAJw" name="ExternalIdentifiableElement">
+ <ownedAttribute xmi:id="_Hb8X5faMEd2-MYgc0GvAJw" name="externalId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_Hb8X5vaMEd2-MYgc0GvAJw" name="source">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedAttribute>
+ </packagedElement>
+ </packagedElement>
+ <profileApplication xmi:id="_i_GGsKEgEd2PM6_wGJR42Q">
+ <eAnnotations xmi:id="_i_GGsaEgEd2PM6_wGJR42Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="pathmap://ACCELEO_PROFILES/Acceleo.Business.profile.uml#_81g14fWcEdyuYMHNZCqWBQ"/>
+ </eAnnotations>
+ <appliedProfile href="pathmap://ACCELEO_PROFILES/Acceleo.Business.profile.uml#_JX9fQPWcEdyuYMHNZCqWBQ"/>
+ </profileApplication>
+ </uml:Model>
+ <AcceleoBusiness:Exception xmi:id="_mLQgsKEgEd2PM6_wGJR42Q" base_Class="_j3qGYKEgEd2PM6_wGJR42Q"/>
+</xmi:XMI>
Copied: trunk/ant-eugene-task/src/test/resources/xmi/2.1/org.sharengo.utils.utils/src/main/uml/conception-helper.umldi (from rev 769, trunk/eugene/src/test/resources/xmi/2.1/org.sharengo.utils.utils/src/main/uml/conception-helper.umldi)
===================================================================
--- trunk/ant-eugene-task/src/test/resources/xmi/2.1/org.sharengo.utils.utils/src/main/uml/conception-helper.umldi (rev 0)
+++ trunk/ant-eugene-task/src/test/resources/xmi/2.1/org.sharengo.utils.utils/src/main/uml/conception-helper.umldi 2009-12-20 12:58:28 UTC (rev 772)
@@ -0,0 +1,160 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<diagrams:Diagrams xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:di="http://www.topcased.org/DI/1.0" xmlns:diagrams="http://www.topcased.org/Diagrams/1.0" xmi:id="_h0-hIPaMEd2-MYgc0GvAJw" activeDiagram="_h1AWUPaMEd2-MYgc0GvAJw">
+ <model href="conception-helper.uml#_qb8akM37EdqwVrslYOdUDA"/>
+ <subdiagrams xmi:id="_4e_d4Hg7Ed2do542yyYrFA" activeDiagram="_4e_d4Xg7Ed2do542yyYrFA">
+ <model href="conception-helper.uml#_w8IxIM37EdqwVrslYOdUDA"/>
+ <diagrams xmi:id="_4e_d4Xg7Ed2do542yyYrFA" position="0,0" size="100,100" name="conception-helper" viewport="0,0">
+ <property xmi:id="_4fJ18Hg7Ed2do542yyYrFA" key="pageFormatName" value="A4"/>
+ <property xmi:id="_4fJ18Xg7Ed2do542yyYrFA" key="diagramWidth" value="840"/>
+ <property xmi:id="_4fJ18ng7Ed2do542yyYrFA" key="diagramHeight" value="1188"/>
+ <property xmi:id="_4fJ183g7Ed2do542yyYrFA" key="pageMarginName" value="Small Margin"/>
+ <property xmi:id="_4fJ19Hg7Ed2do542yyYrFA" key="diagramTopMargin" value="20"/>
+ <property xmi:id="_4fJ19Xg7Ed2do542yyYrFA" key="diagramBottomMargin" value="20"/>
+ <property xmi:id="_4fJ19ng7Ed2do542yyYrFA" key="diagramLeftMargin" value="20"/>
+ <property xmi:id="_4fJ193g7Ed2do542yyYrFA" key="diagramRightMargin" value="20"/>
+ <property xmi:id="_4fJ1-Hg7Ed2do542yyYrFA" key="orientation" value="portrait"/>
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_4e_d4ng7Ed2do542yyYrFA" presentation="org.topcased.modeler.uml.classdiagram">
+ <element href="conception-helper.uml#_w8IxIM37EdqwVrslYOdUDA"/>
+ </semanticModel>
+ <contained xsi:type="di:GraphNode" xmi:id="_hFCNgHg-Ed2do542yyYrFA" position="30,30" size="114,-1">
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_hFCNgXg-Ed2do542yyYrFA" presentation="default">
+ <element href="conception-helper.uml#_hFFQ0Hg-Ed2do542yyYrFA"/>
+ </semanticModel>
+ <contained xsi:type="di:GraphNode" xmi:id="_hFCNgng-Ed2do542yyYrFA">
+ <property xmi:id="_hFCNg3g-Ed2do542yyYrFA" key="eStructuralFeatureID" value="37"/>
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_hFCNhHg-Ed2do542yyYrFA" presentation="default">
+ <element href="conception-helper.uml#_hFFQ0Hg-Ed2do542yyYrFA"/>
+ </semanticModel>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="_hFCNhXg-Ed2do542yyYrFA">
+ <property xmi:id="_hFCNhng-Ed2do542yyYrFA" key="eStructuralFeatureID" value="38"/>
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_hFCNh3g-Ed2do542yyYrFA" presentation="default">
+ <element href="conception-helper.uml#_hFFQ0Hg-Ed2do542yyYrFA"/>
+ </semanticModel>
+ </contained>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="_cXzcYH2vEd22ZfAQrfk_WQ" position="163,32" size="86,-1">
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_cXzcYX2vEd22ZfAQrfk_WQ" presentation="default">
+ <element href="conception-helper.uml#_cYCF4H2vEd22ZfAQrfk_WQ"/>
+ </semanticModel>
+ <contained xsi:type="di:GraphNode" xmi:id="_cXzcYn2vEd22ZfAQrfk_WQ">
+ <property xmi:id="_cXzcY32vEd22ZfAQrfk_WQ" key="eStructuralFeatureID" value="37"/>
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_cXzcZH2vEd22ZfAQrfk_WQ" presentation="default">
+ <element href="conception-helper.uml#_cYCF4H2vEd22ZfAQrfk_WQ"/>
+ </semanticModel>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="_cXzcZX2vEd22ZfAQrfk_WQ">
+ <property xmi:id="_cXzcZn2vEd22ZfAQrfk_WQ" key="eStructuralFeatureID" value="47"/>
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_cXzcZ32vEd22ZfAQrfk_WQ" presentation="default">
+ <element href="conception-helper.uml#_cYCF4H2vEd22ZfAQrfk_WQ"/>
+ </semanticModel>
+ </contained>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="_j3pfUKEgEd2PM6_wGJR42Q" position="110,135" size="152,-1">
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_j3pfUaEgEd2PM6_wGJR42Q" presentation="default">
+ <element href="conception-helper.uml#_j3qGYKEgEd2PM6_wGJR42Q"/>
+ </semanticModel>
+ <contained xsi:type="di:GraphNode" xmi:id="_j3pfUqEgEd2PM6_wGJR42Q">
+ <property xmi:id="_j3pfU6EgEd2PM6_wGJR42Q" key="eStructuralFeatureID" value="37"/>
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_j3pfVKEgEd2PM6_wGJR42Q" presentation="default">
+ <element href="conception-helper.uml#_j3qGYKEgEd2PM6_wGJR42Q"/>
+ </semanticModel>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="_j3pfVaEgEd2PM6_wGJR42Q">
+ <property xmi:id="_j3pfVqEgEd2PM6_wGJR42Q" key="eStructuralFeatureID" value="47"/>
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_j3pfV6EgEd2PM6_wGJR42Q" presentation="default">
+ <element href="conception-helper.uml#_j3qGYKEgEd2PM6_wGJR42Q"/>
+ </semanticModel>
+ </contained>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="_W6X2UKtBEd2Nmqhc73l7SA" position="367,149" size="115,-1">
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_W6X2UatBEd2Nmqhc73l7SA" presentation="default">
+ <element href="conception-helper.uml#_W6YdYKtBEd2Nmqhc73l7SA"/>
+ </semanticModel>
+ <contained xsi:type="di:GraphNode" xmi:id="_W6X2UqtBEd2Nmqhc73l7SA">
+ <property xmi:id="_W6X2U6tBEd2Nmqhc73l7SA" key="eStructuralFeatureID" value="37"/>
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_W6X2VKtBEd2Nmqhc73l7SA" presentation="default">
+ <element href="conception-helper.uml#_W6YdYKtBEd2Nmqhc73l7SA"/>
+ </semanticModel>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="_W6X2VatBEd2Nmqhc73l7SA">
+ <property xmi:id="_W6X2VqtBEd2Nmqhc73l7SA" key="eStructuralFeatureID" value="38"/>
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_W6X2V6tBEd2Nmqhc73l7SA" presentation="default">
+ <element href="conception-helper.uml#_W6YdYKtBEd2Nmqhc73l7SA"/>
+ </semanticModel>
+ </contained>
+ </contained>
+ </diagrams>
+ </subdiagrams>
+ <subdiagrams xmi:id="_h0-hIfaMEd2-MYgc0GvAJw">
+ <model href="conception-helper.uml#_Hb8X4PaMEd2-MYgc0GvAJw"/>
+ <diagrams xmi:id="_h1AWUPaMEd2-MYgc0GvAJw" position="0,0" size="100,100" name="Embedded" viewport="0,0">
+ <property xmi:id="_h1I5MPaMEd2-MYgc0GvAJw" key="pageFormatName" value="A4"/>
+ <property xmi:id="_h1I5MfaMEd2-MYgc0GvAJw" key="diagramWidth" value="840"/>
+ <property xmi:id="_h1I5MvaMEd2-MYgc0GvAJw" key="diagramHeight" value="1188"/>
+ <property xmi:id="_h1I5M_aMEd2-MYgc0GvAJw" key="pageMarginName" value="Small Margin"/>
+ <property xmi:id="_h1I5NPaMEd2-MYgc0GvAJw" key="diagramTopMargin" value="20"/>
+ <property xmi:id="_h1I5NfaMEd2-MYgc0GvAJw" key="diagramBottomMargin" value="20"/>
+ <property xmi:id="_h1I5NvaMEd2-MYgc0GvAJw" key="diagramLeftMargin" value="20"/>
+ <property xmi:id="_h1I5N_aMEd2-MYgc0GvAJw" key="diagramRightMargin" value="20"/>
+ <property xmi:id="_h1I5OPaMEd2-MYgc0GvAJw" key="orientation" value="portrait"/>
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_h1AWUfaMEd2-MYgc0GvAJw" presentation="org.topcased.modeler.uml.classdiagram">
+ <element href="conception-helper.uml#_Hb8X4PaMEd2-MYgc0GvAJw"/>
+ </semanticModel>
+ <contained xsi:type="di:GraphNode" xmi:id="_wfiREPaMEd2-MYgc0GvAJw" position="152,112" size="158,-1">
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_wfiREfaMEd2-MYgc0GvAJw" presentation="default">
+ <element href="conception-helper.uml#_Hb8X4faMEd2-MYgc0GvAJw"/>
+ </semanticModel>
+ <contained xsi:type="di:GraphNode" xmi:id="_wfiREvaMEd2-MYgc0GvAJw">
+ <property xmi:id="_wfiRE_aMEd2-MYgc0GvAJw" key="eStructuralFeatureID" value="37"/>
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_wfiRFPaMEd2-MYgc0GvAJw" presentation="default">
+ <element href="conception-helper.uml#_Hb8X4faMEd2-MYgc0GvAJw"/>
+ </semanticModel>
+ <contained xsi:type="di:GraphNode" xmi:id="_wfjfMPaMEd2-MYgc0GvAJw" position="0,0" size="-1,-1">
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_wfjfMfaMEd2-MYgc0GvAJw" presentation="default">
+ <element href="conception-helper.uml#_Hb8X4vaMEd2-MYgc0GvAJw"/>
+ </semanticModel>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="_wfpl0PaMEd2-MYgc0GvAJw" position="0,0" size="-1,-1">
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_wfpl0faMEd2-MYgc0GvAJw" presentation="default">
+ <element href="conception-helper.uml#_Hb8X4_aMEd2-MYgc0GvAJw"/>
+ </semanticModel>
+ </contained>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="_wfiRFfaMEd2-MYgc0GvAJw">
+ <property xmi:id="_wfiRFvaMEd2-MYgc0GvAJw" key="eStructuralFeatureID" value="47"/>
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_wfiRF_aMEd2-MYgc0GvAJw" presentation="default">
+ <element href="conception-helper.uml#_Hb8X4faMEd2-MYgc0GvAJw"/>
+ </semanticModel>
+ </contained>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="_w7cJ8PaMEd2-MYgc0GvAJw" position="151,253" size="218,-1">
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_w7cJ8faMEd2-MYgc0GvAJw" presentation="default">
+ <element href="conception-helper.uml#_Hb8X5PaMEd2-MYgc0GvAJw"/>
+ </semanticModel>
+ <contained xsi:type="di:GraphNode" xmi:id="_w7cJ8vaMEd2-MYgc0GvAJw">
+ <property xmi:id="_w7cJ8_aMEd2-MYgc0GvAJw" key="eStructuralFeatureID" value="37"/>
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_w7cJ9PaMEd2-MYgc0GvAJw" presentation="default">
+ <element href="conception-helper.uml#_Hb8X5PaMEd2-MYgc0GvAJw"/>
+ </semanticModel>
+ <contained xsi:type="di:GraphNode" xmi:id="_w7cxAPaMEd2-MYgc0GvAJw" position="0,0" size="-1,-1">
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_w7cxAfaMEd2-MYgc0GvAJw" presentation="default">
+ <element href="conception-helper.uml#_Hb8X5faMEd2-MYgc0GvAJw"/>
+ </semanticModel>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="_w7dYEPaMEd2-MYgc0GvAJw" position="0,0" size="-1,-1">
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_w7dYEfaMEd2-MYgc0GvAJw" presentation="default">
+ <element href="conception-helper.uml#_Hb8X5vaMEd2-MYgc0GvAJw"/>
+ </semanticModel>
+ </contained>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="_w7cJ9faMEd2-MYgc0GvAJw">
+ <property xmi:id="_w7cJ9vaMEd2-MYgc0GvAJw" key="eStructuralFeatureID" value="47"/>
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_w7cJ9_aMEd2-MYgc0GvAJw" presentation="default">
+ <element href="conception-helper.uml#_Hb8X5PaMEd2-MYgc0GvAJw"/>
+ </semanticModel>
+ </contained>
+ </contained>
+ </diagrams>
+ </subdiagrams>
+</diagrams:Diagrams>
Copied: trunk/ant-eugene-task/src/test/resources/xmi/2.1/org.sharengo.utils.utils/src/main/uml/conception.properties (from rev 769, trunk/eugene/src/test/resources/xmi/2.1/org.sharengo.utils.utils/src/main/uml/conception.properties)
===================================================================
--- trunk/ant-eugene-task/src/test/resources/xmi/2.1/org.sharengo.utils.utils/src/main/uml/conception.properties (rev 0)
+++ trunk/ant-eugene-task/src/test/resources/xmi/2.1/org.sharengo.utils.utils/src/main/uml/conception.properties 2009-12-20 12:58:28 UTC (rev 772)
@@ -0,0 +1,7 @@
+useModelAsBaseImports=yes
+
+useServicePackage=no
+useEntityPackage=no
+useDaoPackage=no
+useDtoPackage=no
+useConfigPackage=no
\ No newline at end of file
Copied: trunk/ant-eugene-task/src/test/resources/xmi/2.1/org.sharengo.utils.utils/src/main/uml/conception.uml (from rev 769, trunk/eugene/src/test/resources/xmi/2.1/org.sharengo.utils.utils/src/main/uml/conception.uml)
===================================================================
--- trunk/ant-eugene-task/src/test/resources/xmi/2.1/org.sharengo.utils.utils/src/main/uml/conception.uml (rev 0)
+++ trunk/ant-eugene-task/src/test/resources/xmi/2.1/org.sharengo.utils.utils/src/main/uml/conception.uml 2009-12-20 12:58:28 UTC (rev 772)
@@ -0,0 +1,297 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="2.1" xmlns:xmi="http://schema.omg.org/spec/XMI/2.1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:AcceleoBusiness="http:///schemas/AcceleoBusiness/_81fAsPWcEdyuYMHNZCqWBQ/0" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:uml="http://www.eclipse.org/uml2/2.1.0/UML" xsi:schemaLocation="http:///schemas/AcceleoBusiness/_81fAsPWcEdyuYMHNZCqWBQ/0 pathmap://ACCELEO_PROFILES/Acceleo.Business.profile.uml#_81g14fWcEdyuYMHNZCqWBQ">
+ <uml:Model xmi:id="_qb8akM37EdqwVrslYOdUDA" name="org.sharengo.utils.utils">
+ <packagedElement xmi:type="uml:Package" xmi:id="_w8IxIM37EdqwVrslYOdUDA" name="org.sharengo.utils.utils.services">
+ <packagedElement xmi:type="uml:Interface" xmi:id="_l25sMKEeEd2PM6_wGJR42Q" name="ICrudSrv" redefinedClassifier="_9u74UKEeEd2PM6_wGJR42Q">
+ <ownedOperation xmi:id="_1TsKUKEeEd2PM6_wGJR42Q" name="create">
+ <ownedParameter xmi:id="_OV-jEKEfEd2PM6_wGJR42Q" name="dto" type="_LncgQKEfEd2PM6_wGJR42Q"/>
+ <ownedParameter xmi:id="_QVBpsKEfEd2PM6_wGJR42Q" name="return" type="_LncgQKEfEd2PM6_wGJR42Q" direction="return"/>
+ <raisedException xmi:type="uml:Class" href="#_yvGYUHXJEd20DoWUDUK0Ig"/>
+ <raisedException xmi:type="uml:Class" href="conception-helper.uml#_j3qGYKEgEd2PM6_wGJR42Q"/>
+ <raisedException xmi:type="uml:Class" href="#_EbIwUKtAEd2Nmqhc73l7SA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_0ve_IKEgEd2PM6_wGJR42Q" name="find">
+ <ownedParameter xmi:id="_0ve_IaEgEd2PM6_wGJR42Q" name="entityId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_0ve_IqEgEd2PM6_wGJR42Q" name="return" type="_LncgQKEfEd2PM6_wGJR42Q" direction="return"/>
+ <raisedException xmi:type="uml:Class" href="conception-helper.uml#_j3qGYKEgEd2PM6_wGJR42Q"/>
+ <raisedException xmi:type="uml:Class" href="#_EbIwUKtAEd2Nmqhc73l7SA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_2y7dkKEgEd2PM6_wGJR42Q" name="update">
+ <ownedParameter xmi:id="_2y7dkaEgEd2PM6_wGJR42Q" name="dto" type="_LncgQKEfEd2PM6_wGJR42Q"/>
+ <raisedException xmi:type="uml:Class" href="#_yvGYUHXJEd20DoWUDUK0Ig"/>
+ <raisedException xmi:type="uml:Class" href="conception-helper.uml#_j3qGYKEgEd2PM6_wGJR42Q"/>
+ <raisedException xmi:type="uml:Class" href="#_KQqi-HjwEd2MH8DN-NMNrA"/>
+ <raisedException xmi:type="uml:Class" href="#_EbIwUKtAEd2Nmqhc73l7SA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_3wMXEKEgEd2PM6_wGJR42Q" name="delete">
+ <ownedParameter xmi:id="_3wMXEaEgEd2PM6_wGJR42Q" name="entityId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ <raisedException xmi:type="uml:Class" href="conception-helper.uml#_j3qGYKEgEd2PM6_wGJR42Q"/>
+ <raisedException xmi:type="uml:Class" href="#_KQqi-HjwEd2MH8DN-NMNrA"/>
+ <raisedException xmi:type="uml:Class" href="#_EbIwUKtAEd2Nmqhc73l7SA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_4Gn6EKEgEd2PM6_wGJR42Q" name="findAll">
+ <ownedParameter xmi:id="_4Gn6EaEgEd2PM6_wGJR42Q" name="start">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_Mlxe0KEhEd2PM6_wGJR42Q" name="end">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_UVT9YKEhEd2PM6_wGJR42Q" name="return" type="_Qfx2QKEhEd2PM6_wGJR42Q" direction="return"/>
+ <raisedException xmi:type="uml:Class" href="conception-helper.uml#_j3qGYKEgEd2PM6_wGJR42Q"/>
+ <raisedException xmi:type="uml:Class" href="#_673s0HXGEd2Ekv686xx4qA"/>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:DataType" xmi:id="_9u74UKEeEd2PM6_wGJR42Q" name="AnyDto extends Serializable"/>
+ <packagedElement xmi:type="uml:DataType" xmi:id="_D2KVQKEfEd2PM6_wGJR42Q" name="AnyEntity extends Serializable"/>
+ <packagedElement xmi:type="uml:DataType" xmi:id="_LncgQKEfEd2PM6_wGJR42Q" name="AnyDto"/>
+ <packagedElement xmi:type="uml:DataType" xmi:id="_Mhz2wKEfEd2PM6_wGJR42Q" name="AnyEntity"/>
+ <packagedElement xmi:type="uml:DataType" xmi:id="_Qfx2QKEhEd2PM6_wGJR42Q" name="PagedResult<AnyDto>"/>
+ <packagedElement xmi:type="uml:DataType" xmi:id="_31g0gKHnEd2T0aUWLQqzuQ" name="DAO<AnyEntity>"/>
+ <packagedElement xmi:type="uml:DataType" xmi:id="_FZ2jQKHoEd2T0aUWLQqzuQ" name="Log"/>
+ <packagedElement xmi:type="uml:Package" xmi:id="_4JKaAKQ8Ed2AzttPnb4djA" name="impl">
+ <packagedElement xmi:type="uml:Class" xmi:id="_6MN4EKHlEd2BIt21aAt4XQ" name="AbstractCrudSrv" clientDependency="_LED-8KHmEd2BIt21aAt4XQ" isAbstract="true" redefinedClassifier="_9u74UKEeEd2PM6_wGJR42Q _D2KVQKEfEd2PM6_wGJR42Q">
+ <interfaceRealization xmi:id="_LED-8KHmEd2BIt21aAt4XQ" name="InterfaceRealization1" supplier="_l25sMKEeEd2PM6_wGJR42Q" client="_6MN4EKHlEd2BIt21aAt4XQ" contract="_l25sMKEeEd2PM6_wGJR42Q"/>
+ <ownedOperation xmi:id="_gUeBgKHmEd2BIt21aAt4XQ" name="create">
+ <ownedParameter xmi:id="_gUeBgaHmEd2BIt21aAt4XQ" name="dto" type="_LncgQKEfEd2PM6_wGJR42Q"/>
+ <ownedParameter xmi:id="_gUeBgqHmEd2BIt21aAt4XQ" name="return" type="_LncgQKEfEd2PM6_wGJR42Q" direction="return"/>
+ <raisedException xmi:type="uml:Class" href="#_yvGYUHXJEd20DoWUDUK0Ig"/>
+ <raisedException xmi:type="uml:Class" href="conception-helper.uml#_j3qGYKEgEd2PM6_wGJR42Q"/>
+ <raisedException xmi:type="uml:Class" href="#_EbIwUKtAEd2Nmqhc73l7SA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_h-vyAKHmEd2BIt21aAt4XQ" name="find">
+ <ownedParameter xmi:id="_h-vyAaHmEd2BIt21aAt4XQ" name="entityId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_h-vyAqHmEd2BIt21aAt4XQ" name="return" type="_LncgQKEfEd2PM6_wGJR42Q" direction="return"/>
+ <raisedException xmi:type="uml:Class" href="conception-helper.uml#_j3qGYKEgEd2PM6_wGJR42Q"/>
+ <raisedException xmi:type="uml:Class" href="#_EbIwUKtAEd2Nmqhc73l7SA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_x1foQKHmEd2T0aUWLQqzuQ" name="update">
+ <ownedParameter xmi:id="_x1foQaHmEd2T0aUWLQqzuQ" name="dto" type="_LncgQKEfEd2PM6_wGJR42Q"/>
+ <raisedException xmi:type="uml:Class" href="#_yvGYUHXJEd20DoWUDUK0Ig"/>
+ <raisedException xmi:type="uml:Class" href="conception-helper.uml#_j3qGYKEgEd2PM6_wGJR42Q"/>
+ <raisedException xmi:type="uml:Class" href="#_KQqi-HjwEd2MH8DN-NMNrA"/>
+ <raisedException xmi:type="uml:Class" href="#_EbIwUKtAEd2Nmqhc73l7SA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_yucpgKHmEd2T0aUWLQqzuQ" name="delete">
+ <ownedParameter xmi:id="_yudQkKHmEd2T0aUWLQqzuQ" name="entityId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ <raisedException xmi:type="uml:Class" href="conception-helper.uml#_j3qGYKEgEd2PM6_wGJR42Q"/>
+ <raisedException xmi:type="uml:Class" href="#_KQqi-HjwEd2MH8DN-NMNrA"/>
+ <raisedException xmi:type="uml:Class" href="#_EbIwUKtAEd2Nmqhc73l7SA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_zTIq8KHmEd2T0aUWLQqzuQ" name="findAll">
+ <ownedParameter xmi:id="_zTIq8aHmEd2T0aUWLQqzuQ" name="start">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_zTIq8qHmEd2T0aUWLQqzuQ" name="end">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_zTIq86HmEd2T0aUWLQqzuQ" name="return" type="_Qfx2QKEhEd2PM6_wGJR42Q" direction="return"/>
+ <raisedException xmi:type="uml:Class" href="conception-helper.uml#_j3qGYKEgEd2PM6_wGJR42Q"/>
+ <raisedException xmi:type="uml:Class" href="#_673s0HXGEd2Ekv686xx4qA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_-cp9EKHmEd2T0aUWLQqzuQ" name="convertToDto" visibility="protected" isAbstract="true">
+ <ownedParameter xmi:id="_A0NDQKHnEd2T0aUWLQqzuQ" name="return" type="_LncgQKEfEd2PM6_wGJR42Q" direction="return"/>
+ <ownedParameter xmi:id="_CzdlQKHnEd2T0aUWLQqzuQ" name="entity" type="_Mhz2wKEfEd2PM6_wGJR42Q"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_aPi1MKHnEd2T0aUWLQqzuQ" name="convertToNewEntity" visibility="protected">
+ <ownedParameter xmi:id="_cgK0AKHnEd2T0aUWLQqzuQ" name="return" type="_Mhz2wKEfEd2PM6_wGJR42Q" direction="return"/>
+ <ownedParameter xmi:id="_fFcNIKHnEd2T0aUWLQqzuQ" name="dto" type="_LncgQKEfEd2PM6_wGJR42Q"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_oCavMKHnEd2T0aUWLQqzuQ" name="convertToEntity" visibility="protected" isAbstract="true">
+ <ownedParameter xmi:id="_pcoDYKHnEd2T0aUWLQqzuQ" name="dto" type="_LncgQKEfEd2PM6_wGJR42Q"/>
+ <ownedParameter xmi:id="_qqCRsKHnEd2T0aUWLQqzuQ" name="entity" type="_Mhz2wKEfEd2PM6_wGJR42Q"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ytZrMKHnEd2T0aUWLQqzuQ" name="createEntity" visibility="protected" isAbstract="true">
+ <ownedParameter xmi:id="_z4qkcKHnEd2T0aUWLQqzuQ" name="return" type="_Mhz2wKEfEd2PM6_wGJR42Q" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_1j0esKHnEd2T0aUWLQqzuQ" name="getDao" visibility="protected" isAbstract="true">
+ <ownedParameter xmi:id="_7H6ZYKHnEd2T0aUWLQqzuQ" name="return" type="_31g0gKHnEd2T0aUWLQqzuQ" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_9IXOMKHnEd2T0aUWLQqzuQ" name="getIdFromDto" visibility="protected" isAbstract="true">
+ <ownedParameter xmi:id="_-xGGkKHnEd2T0aUWLQqzuQ" name="return" direction="return">
+ <type xmi:type="uml:Interface" href="conception-helper.uml#_hFFQ0Hg-Ed2do542yyYrFA"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_A0I8YKHoEd2T0aUWLQqzuQ" name="dto" type="_LncgQKEfEd2PM6_wGJR42Q"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_GpkesKHoEd2T0aUWLQqzuQ" name="getLog" visibility="protected" isAbstract="true">
+ <ownedParameter xmi:id="_IvYUoKHoEd2T0aUWLQqzuQ" name="return" type="_FZ2jQKHoEd2T0aUWLQqzuQ" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_OR2esaHoEd2T0aUWLQqzuQ" name="validateDto" visibility="protected" isAbstract="true" raisedException="_GfaEUHmfEd2HRLLd0I1WrA _YNI5EHmZEd2HRLLd0I1WrA">
+ <ownedParameter xmi:id="_Ruj2IKHoEd2T0aUWLQqzuQ" name="dto" type="_LncgQKEfEd2PM6_wGJR42Q"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_k0lEwKHoEd2T0aUWLQqzuQ" name="checkUniqueConstraintsBeforeCreate" visibility="protected">
+ <ownedParameter xmi:id="_nyF-wKHoEd2T0aUWLQqzuQ" name="dto" type="_LncgQKEfEd2PM6_wGJR42Q"/>
+ <raisedException xmi:type="uml:Class" href="#_yvGYUHXJEd20DoWUDUK0Ig"/>
+ <raisedException xmi:type="uml:Class" href="conception-helper.uml#_j3qGYKEgEd2PM6_wGJR42Q"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_u1l2sKHoEd2T0aUWLQqzuQ" name="checkUniqueConstraintsBeforeUpdate" visibility="protected">
+ <ownedParameter xmi:id="_yti_sKHoEd2T0aUWLQqzuQ" name="dto" type="_LncgQKEfEd2PM6_wGJR42Q"/>
+ <ownedParameter xmi:id="_zgAXYKHoEd2T0aUWLQqzuQ" name="entity" type="_Mhz2wKEfEd2PM6_wGJR42Q"/>
+ <raisedException xmi:type="uml:Class" href="#_yvGYUHXJEd20DoWUDUK0Ig"/>
+ <raisedException xmi:type="uml:Class" href="conception-helper.uml#_j3qGYKEgEd2PM6_wGJR42Q"/>
+ </ownedOperation>
+ </packagedElement>
+ </packagedElement>
+ <profileApplication xmi:id="_MIURkPWdEdyp25RO5nzQ4A">
+ <eAnnotations xmi:id="_MIURkfWdEdyp25RO5nzQ4A" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="pathmap://ACCELEO_PROFILES/Acceleo.Business.profile.uml#_81g14fWcEdyuYMHNZCqWBQ"/>
+ </eAnnotations>
+ <appliedProfile href="pathmap://ACCELEO_PROFILES/Acceleo.Business.profile.uml#_JX9fQPWcEdyuYMHNZCqWBQ"/>
+ </profileApplication>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_tBzGgPWREdy_h6Mk-BiOHw" name="daos">
+ <profileApplication xmi:id="_Mg9bEPWdEdyp25RO5nzQ4A">
+ <eAnnotations xmi:id="_Mg-CIPWdEdyp25RO5nzQ4A" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="pathmap://ACCELEO_PROFILES/Acceleo.Business.profile.uml#_81g14fWcEdyuYMHNZCqWBQ"/>
+ </eAnnotations>
+ <appliedProfile href="pathmap://ACCELEO_PROFILES/Acceleo.Business.profile.uml#_JX9fQPWcEdyuYMHNZCqWBQ"/>
+ </profileApplication>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="__PrMMPWREdy_h6Mk-BiOHw" name="dtos">
+ <profileApplication xmi:id="_M2BsIPWdEdyp25RO5nzQ4A">
+ <eAnnotations xmi:id="_M2CTMPWdEdyp25RO5nzQ4A" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="pathmap://ACCELEO_PROFILES/Acceleo.Business.profile.uml#_81g14fWcEdyuYMHNZCqWBQ"/>
+ </eAnnotations>
+ <appliedProfile href="pathmap://ACCELEO_PROFILES/Acceleo.Business.profile.uml#_JX9fQPWcEdyuYMHNZCqWBQ"/>
+ </profileApplication>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_Cp0X0PWSEdy_h6Mk-BiOHw" name="entities">
+ <profileApplication xmi:id="_NQyVgPWdEdyp25RO5nzQ4A">
+ <eAnnotations xmi:id="_NQy8kPWdEdyp25RO5nzQ4A" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="pathmap://ACCELEO_PROFILES/Acceleo.Business.profile.uml#_81g14fWcEdyuYMHNZCqWBQ"/>
+ </eAnnotations>
+ <appliedProfile href="pathmap://ACCELEO_PROFILES/Acceleo.Business.profile.uml#_JX9fQPWcEdyuYMHNZCqWBQ"/>
+ </profileApplication>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_bKMq8HXGEd2Ekv686xx4qA" name="org.sharengo.utils.utils.exceptions">
+ <packagedElement xmi:type="uml:Class" xmi:id="_c4VnwHXGEd2Ekv686xx4qA" name="GenericBusinessException" isAbstract="true"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_673s0HXGEd2Ekv686xx4qA" name="OutOfRangeException">
+ <generalization xmi:id="_nt5gM3j0Ed2Lq_BH-5XVEg" general="_bI0twHg-Ed2lVPDSSAZWVg"/>
+ <ownedAttribute xmi:id="_iaKv4KtAEd2Nmqhc73l7SA" name="minValue">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_jlBZcKtAEd2Nmqhc73l7SA" name="maxValue">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_yvGYUHXJEd20DoWUDUK0Ig" name="UniqueConstraintsException">
+ <generalization xmi:id="_o_-zI3j0Ed2Lq_BH-5XVEg" general="_Z3cGsHj0Ed2Lq_BH-5XVEg"/>
+ <ownedAttribute xmi:id="_qoDjQHXKEd20DoWUDUK0Ig" name="dataName">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_ryxC4HXKEd20DoWUDUK0Ig" name="dataValue">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_bI0twHg-Ed2lVPDSSAZWVg" name="UnexpectedArgumentException" isAbstract="true">
+ <generalization xmi:id="_nMrpg3j0Ed2Lq_BH-5XVEg" general="_c4VnwHXGEd2Ekv686xx4qA"/>
+ <ownedAttribute xmi:id="_IGOxIHg_Ed2lVPDSSAZWVg" name="parameterName">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_Xjqvgng_Ed2lVPDSSAZWVg" name="reason">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedAttribute>
+ <ownedOperation xmi:id="_YPQokKvkEd2rnp-byoZYOw" name="getParameterName">
+ <ownedParameter xmi:id="_dtADoKvkEd2rnp-byoZYOw" name="return" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_KQqi-HjwEd2MH8DN-NMNrA" name="NoSuchEntityException">
+ <generalization xmi:id="_o2bOg3j0Ed2Lq_BH-5XVEg" general="_Z3cGsHj0Ed2Lq_BH-5XVEg"/>
+ <ownedAttribute xmi:id="_NpxMwnjwEd2MH8DN-NMNrA" name="entityName">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_PLYJcnjwEd2MH8DN-NMNrA" name="entityId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_Z3cGsHj0Ed2Lq_BH-5XVEg" name="CoherencyException" isAbstract="true">
+ <generalization xmi:id="_nYJ5s3j0Ed2Lq_BH-5XVEg" general="_c4VnwHXGEd2Ekv686xx4qA"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_YNI5EHmZEd2HRLLd0I1WrA" name="NullParameterException">
+ <generalization xmi:id="_N2AvUqtAEd2Nmqhc73l7SA" general="_EbIwUKtAEd2Nmqhc73l7SA"/>
+ <ownedOperation xmi:id="_eaeLwHmeEd2HRLLd0I1WrA" name="getParameterName">
+ <ownedParameter xmi:id="_m5lGEHmeEd2HRLLd0I1WrA" name="return" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_GfaEUHmfEd2HRLLd0I1WrA" name="EmptyParameterException">
+ <generalization xmi:id="_OEX7c6tAEd2Nmqhc73l7SA" general="_EbIwUKtAEd2Nmqhc73l7SA"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_4RBZUKs-Ed2Nmqhc73l7SA" name="InvalidParameterException">
+ <generalization xmi:id="_6-nA8Ks-Ed2Nmqhc73l7SA" general="_bI0twHg-Ed2lVPDSSAZWVg"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_EbIwUKtAEd2Nmqhc73l7SA" name="NullOrEmptyParameterException">
+ <generalization xmi:id="_S6EfE6tAEd2Nmqhc73l7SA" general="_bI0twHg-Ed2lVPDSSAZWVg"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_vE68IOMjEd2zc-bceOzXYQ" name="ExceptionsStack"/>
+ <packagedElement xmi:type="uml:Association" xmi:id="_AU1kyuMkEd2zc-bceOzXYQ" name="Association1" memberEnd="_AU1ky-MkEd2zc-bceOzXYQ _AU1kzuMkEd2zc-bceOzXYQ" navigableOwnedEnd="_AU1kzuMkEd2zc-bceOzXYQ">
+ <ownedEnd xmi:id="_AU1ky-MkEd2zc-bceOzXYQ" name="stack" type="_vE68IOMjEd2zc-bceOzXYQ" isUnique="false" association="_AU1kyuMkEd2zc-bceOzXYQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_AU1kzOMkEd2zc-bceOzXYQ" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_AU1kzeMkEd2zc-bceOzXYQ" value="1"/>
+ </ownedEnd>
+ <ownedEnd xmi:id="_AU1kzuMkEd2zc-bceOzXYQ" name="exceptions" type="_c4VnwHXGEd2Ekv686xx4qA" isUnique="false" association="_AU1kyuMkEd2zc-bceOzXYQ">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_AU1kz-MkEd2zc-bceOzXYQ" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_AU1k0OMkEd2zc-bceOzXYQ" value="1"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_R_qg8OYHEd2ikLHnwqSzSg" name="XMLException"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_JUeMMOlZEd2hcOPlZHSiFw" name="FileFormatException">
+ <generalization xmi:id="_NYDWYulZEd2hcOPlZHSiFw" general="_c4VnwHXGEd2Ekv686xx4qA"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_sPzWgD-kEd6_O_u-D-Y8sg" name="DataException">
+ <generalization xmi:id="_wz83ID-kEd6_O_u-D-Y8sg" general="_Z3cGsHj0Ed2Lq_BH-5XVEg"/>
+ <ownedAttribute xmi:id="_9xb30ECBEd6bJJyFu8UH4w" name="reason">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedAttribute>
+ </packagedElement>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="__k0DAHmZEd2HRLLd0I1WrA" name="org.sharengo.utils.utils.validation">
+ <packagedElement xmi:type="uml:Class" xmi:id="_CXHykHmaEd2HRLLd0I1WrA" name="ParameterValidator">
+ <ownedOperation xmi:id="_YWpvgnmbEd2HRLLd0I1WrA" name="checkNullParameter" isStatic="true" raisedException="_YNI5EHmZEd2HRLLd0I1WrA">
+ <ownedParameter xmi:id="_o27D4HmbEd2HRLLd0I1WrA" name="o">
+ <type xmi:type="uml:DataType" href="pathmap://ACCELEO_PROFILES/Acceleo.Business.profile.uml#_xqoXkASfEd2Qys9YSCxJaQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_5tKO8HmgEd2HRLLd0I1WrA" name="parameterName">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_yXGkMHmcEd2HRLLd0I1WrA" name="checkEmptyString" isStatic="true" raisedException="_YNI5EHmZEd2HRLLd0I1WrA _GfaEUHmfEd2HRLLd0I1WrA">
+ <ownedParameter xmi:id="_zwq_MHmcEd2HRLLd0I1WrA" name="s">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_86WjsHmgEd2HRLLd0I1WrA" name="parameterName">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_--Be8H2uEd22ZfAQrfk_WQ" name="checkEmptyCollection" isStatic="true" raisedException="_YNI5EHmZEd2HRLLd0I1WrA _GfaEUHmfEd2HRLLd0I1WrA">
+ <ownedParameter xmi:id="_DJ968H2vEd22ZfAQrfk_WQ" name="c">
+ <type xmi:type="uml:Class" href="conception-helper.uml#_cYCF4H2vEd22ZfAQrfk_WQ"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_F4q84H2vEd22ZfAQrfk_WQ" name="parameterName">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ </ownedOperation>
+ </packagedElement>
+ </packagedElement>
+ <profileApplication xmi:id="_LmCD4PWdEdyp25RO5nzQ4A">
+ <eAnnotations xmi:id="_LmFHMPWdEdyp25RO5nzQ4A" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="pathmap://ACCELEO_PROFILES/Acceleo.Business.profile.uml#_81g14fWcEdyuYMHNZCqWBQ"/>
+ </eAnnotations>
+ <appliedProfile href="pathmap://ACCELEO_PROFILES/Acceleo.Business.profile.uml#_JX9fQPWcEdyuYMHNZCqWBQ"/>
+ </profileApplication>
+ </uml:Model>
+ <AcceleoBusiness:BusinessException xmi:id="_mYV-YHXGEd2Ekv686xx4qA" base_Class="_c4VnwHXGEd2Ekv686xx4qA"/>
+ <AcceleoBusiness:BusinessException xmi:id="_0riGIHm2Ed2HRLLd0I1WrA"/>
+ <AcceleoBusiness:BusinessException xmi:id="_-ZM-gOMjEd2zc-bceOzXYQ" base_Class="_vE68IOMjEd2zc-bceOzXYQ"/>
+ <AcceleoBusiness:BusinessException xmi:id="_Tq23cOYHEd2ikLHnwqSzSg" base_Class="_R_qg8OYHEd2ikLHnwqSzSg"/>
+</xmi:XMI>
Copied: trunk/ant-eugene-task/src/test/resources/xmi/2.1/org.sharengo.utils.utils/src/main/uml/conception.umldi (from rev 769, trunk/eugene/src/test/resources/xmi/2.1/org.sharengo.utils.utils/src/main/uml/conception.umldi)
===================================================================
--- trunk/ant-eugene-task/src/test/resources/xmi/2.1/org.sharengo.utils.utils/src/main/uml/conception.umldi (rev 0)
+++ trunk/ant-eugene-task/src/test/resources/xmi/2.1/org.sharengo.utils.utils/src/main/uml/conception.umldi 2009-12-20 12:58:28 UTC (rev 772)
@@ -0,0 +1,784 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<diagrams:Diagrams xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:di="http://www.topcased.org/DI/1.0" xmlns:diagrams="http://www.topcased.org/Diagrams/1.0" xmi:id="_cd3aIPWREdy_h6Mk-BiOHw" activeDiagram="_CP4_cPWTEdy_h6Mk-BiOHw">
+ <model href="conception.uml#_qb8akM37EdqwVrslYOdUDA"/>
+ <diagrams xmi:id="_CP4_cPWTEdy_h6Mk-BiOHw" position="0,0" size="100,100" name="Package Overview" zoom="0.75" viewport="144,0">
+ <property xmi:id="_CQUdQPWTEdy_h6Mk-BiOHw" key="pageFormatName" value="A3"/>
+ <property xmi:id="_CQUdQfWTEdy_h6Mk-BiOHw" key="diagramWidth" value="1188"/>
+ <property xmi:id="_CQUdQvWTEdy_h6Mk-BiOHw" key="diagramHeight" value="1680"/>
+ <property xmi:id="_CQUdQ_WTEdy_h6Mk-BiOHw" key="pageMarginName" value="Small Margin"/>
+ <property xmi:id="_CQUdRPWTEdy_h6Mk-BiOHw" key="diagramTopMargin" value="20"/>
+ <property xmi:id="_CQUdRfWTEdy_h6Mk-BiOHw" key="diagramBottomMargin" value="20"/>
+ <property xmi:id="_CQUdRvWTEdy_h6Mk-BiOHw" key="diagramLeftMargin" value="20"/>
+ <property xmi:id="_CQUdR_WTEdy_h6Mk-BiOHw" key="diagramRightMargin" value="20"/>
+ <property xmi:id="_CQUdSPWTEdy_h6Mk-BiOHw" key="orientation" value="landscape"/>
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_CP4_cfWTEdy_h6Mk-BiOHw" presentation="org.topcased.modeler.uml.classdiagram">
+ <element href="conception.uml#_qb8akM37EdqwVrslYOdUDA"/>
+ </semanticModel>
+ <contained xsi:type="di:GraphNode" xmi:id="_CiytUPWTEdy_h6Mk-BiOHw" position="588,732" size="988,378">
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_CiytUfWTEdy_h6Mk-BiOHw" presentation="default">
+ <element href="conception.uml#_w8IxIM37EdqwVrslYOdUDA"/>
+ </semanticModel>
+ <contained xsi:type="di:GraphNode" xmi:id="_l20zsKEeEd2PM6_wGJR42Q" position="25,28" size="368,-1">
+ <anchorage xmi:id="_LD_tgaHmEd2BIt21aAt4XQ" graphEdge="_LEDX4KHmEd2BIt21aAt4XQ"/>
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_l20zsaEeEd2PM6_wGJR42Q" presentation="default">
+ <element href="conception.uml#_l25sMKEeEd2PM6_wGJR42Q"/>
+ </semanticModel>
+ <contained xsi:type="di:GraphNode" xmi:id="_l20zsqEeEd2PM6_wGJR42Q">
+ <property xmi:id="_l20zs6EeEd2PM6_wGJR42Q" key="eStructuralFeatureID" value="37"/>
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_l20ztKEeEd2PM6_wGJR42Q" presentation="default">
+ <element href="conception.uml#_l25sMKEeEd2PM6_wGJR42Q"/>
+ </semanticModel>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="_l20ztaEeEd2PM6_wGJR42Q">
+ <property xmi:id="_l20ztqEeEd2PM6_wGJR42Q" key="eStructuralFeatureID" value="38"/>
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_l20zt6EeEd2PM6_wGJR42Q" presentation="default">
+ <element href="conception.uml#_l25sMKEeEd2PM6_wGJR42Q"/>
+ </semanticModel>
+ <contained xsi:type="di:GraphNode" xmi:id="_1Tq8MKEeEd2PM6_wGJR42Q" position="0,0" size="-1,-1">
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_1Tq8MaEeEd2PM6_wGJR42Q" presentation="default">
+ <element href="conception.uml#_1TsKUKEeEd2PM6_wGJR42Q"/>
+ </semanticModel>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="_9UoQAKEgEd2PM6_wGJR42Q" position="0,0" size="-1,-1">
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_9UoQAaEgEd2PM6_wGJR42Q" presentation="default">
+ <element href="conception.uml#_0ve_IKEgEd2PM6_wGJR42Q"/>
+ </semanticModel>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="_9Uo3EKEgEd2PM6_wGJR42Q" position="0,0" size="-1,-1">
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_9Uo3EaEgEd2PM6_wGJR42Q" presentation="default">
+ <element href="conception.uml#_2y7dkKEgEd2PM6_wGJR42Q"/>
+ </semanticModel>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="_9UpeIKEgEd2PM6_wGJR42Q" position="0,0" size="-1,-1">
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_9UpeIaEgEd2PM6_wGJR42Q" presentation="default">
+ <element href="conception.uml#_3wMXEKEgEd2PM6_wGJR42Q"/>
+ </semanticModel>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="_9UpeIqEgEd2PM6_wGJR42Q" position="0,0" size="-1,-1">
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_9UpeI6EgEd2PM6_wGJR42Q" presentation="default">
+ <element href="conception.uml#_4Gn6EKEgEd2PM6_wGJR42Q"/>
+ </semanticModel>
+ </contained>
+ </contained>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="_Lnb5MKEfEd2PM6_wGJR42Q" position="36,191" size="115,-1">
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_Lnb5MaEfEd2PM6_wGJR42Q" presentation="default">
+ <element href="conception.uml#_LncgQKEfEd2PM6_wGJR42Q"/>
+ </semanticModel>
+ <contained xsi:type="di:GraphNode" xmi:id="_Lnb5MqEfEd2PM6_wGJR42Q">
+ <property xmi:id="_Lnb5M6EfEd2PM6_wGJR42Q" key="eStructuralFeatureID" value="37"/>
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_Lnb5NKEfEd2PM6_wGJR42Q" presentation="default">
+ <element href="conception.uml#_LncgQKEfEd2PM6_wGJR42Q"/>
+ </semanticModel>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="_Lnb5NaEfEd2PM6_wGJR42Q">
+ <property xmi:id="_Lnb5NqEfEd2PM6_wGJR42Q" key="eStructuralFeatureID" value="38"/>
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_Lnb5N6EfEd2PM6_wGJR42Q" presentation="default">
+ <element href="conception.uml#_LncgQKEfEd2PM6_wGJR42Q"/>
+ </semanticModel>
+ </contained>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="_MhyooKEfEd2PM6_wGJR42Q" position="301,192" size="115,-1">
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_MhyooaEfEd2PM6_wGJR42Q" presentation="default">
+ <element href="conception.uml#_Mhz2wKEfEd2PM6_wGJR42Q"/>
+ </semanticModel>
+ <contained xsi:type="di:GraphNode" xmi:id="_MhyooqEfEd2PM6_wGJR42Q">
+ <property xmi:id="_Mhyoo6EfEd2PM6_wGJR42Q" key="eStructuralFeatureID" value="37"/>
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_MhyopKEfEd2PM6_wGJR42Q" presentation="default">
+ <element href="conception.uml#_Mhz2wKEfEd2PM6_wGJR42Q"/>
+ </semanticModel>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="_MhyopaEfEd2PM6_wGJR42Q">
+ <property xmi:id="_MhyopqEfEd2PM6_wGJR42Q" key="eStructuralFeatureID" value="38"/>
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_Mhyop6EfEd2PM6_wGJR42Q" presentation="default">
+ <element href="conception.uml#_Mhz2wKEfEd2PM6_wGJR42Q"/>
+ </semanticModel>
+ </contained>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="_QfxPMKEhEd2PM6_wGJR42Q" position="38,253" size="183,-1">
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_QfxPMaEhEd2PM6_wGJR42Q" presentation="default">
+ <element href="conception.uml#_Qfx2QKEhEd2PM6_wGJR42Q"/>
+ </semanticModel>
+ <contained xsi:type="di:GraphNode" xmi:id="_QfxPMqEhEd2PM6_wGJR42Q">
+ <property xmi:id="_QfxPM6EhEd2PM6_wGJR42Q" key="eStructuralFeatureID" value="37"/>
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_QfxPNKEhEd2PM6_wGJR42Q" presentation="default">
+ <element href="conception.uml#_Qfx2QKEhEd2PM6_wGJR42Q"/>
+ </semanticModel>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="_QfxPNaEhEd2PM6_wGJR42Q">
+ <property xmi:id="_QfxPNqEhEd2PM6_wGJR42Q" key="eStructuralFeatureID" value="38"/>
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_QfxPN6EhEd2PM6_wGJR42Q" presentation="default">
+ <element href="conception.uml#_Qfx2QKEhEd2PM6_wGJR42Q"/>
+ </semanticModel>
+ </contained>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="_6Lp3YKHlEd2BIt21aAt4XQ" position="511,14" size="448,-1">
+ <anchorage xmi:id="_LD_tgKHmEd2BIt21aAt4XQ" graphEdge="_LEDX4KHmEd2BIt21aAt4XQ"/>
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_6LqecKHlEd2BIt21aAt4XQ" presentation="default">
+ <element href="conception.uml#_6MN4EKHlEd2BIt21aAt4XQ"/>
+ </semanticModel>
+ <contained xsi:type="di:GraphNode" xmi:id="_6LqecaHlEd2BIt21aAt4XQ">
+ <property xmi:id="_6LqecqHlEd2BIt21aAt4XQ" key="eStructuralFeatureID" value="37"/>
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_6Lqec6HlEd2BIt21aAt4XQ" presentation="default">
+ <element href="conception.uml#_6MN4EKHlEd2BIt21aAt4XQ"/>
+ </semanticModel>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="_6LqedKHlEd2BIt21aAt4XQ">
+ <property xmi:id="_6LqedaHlEd2BIt21aAt4XQ" key="eStructuralFeatureID" value="47"/>
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_6LqedqHlEd2BIt21aAt4XQ" presentation="default">
+ <element href="conception.uml#_6MN4EKHlEd2BIt21aAt4XQ"/>
+ </semanticModel>
+ <contained xsi:type="di:GraphNode" xmi:id="_5mccEKHmEd2T0aUWLQqzuQ" position="0,0" size="-1,-1">
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_5mccEaHmEd2T0aUWLQqzuQ" presentation="default">
+ <element href="conception.uml#_gUeBgKHmEd2BIt21aAt4XQ"/>
+ </semanticModel>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="_5mdDIKHmEd2T0aUWLQqzuQ" position="0,0" size="-1,-1">
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_5mdDIaHmEd2T0aUWLQqzuQ" presentation="default">
+ <element href="conception.uml#_h-vyAKHmEd2BIt21aAt4XQ"/>
+ </semanticModel>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="_5meRQKHmEd2T0aUWLQqzuQ" position="0,0" size="-1,-1">
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_5meRQaHmEd2T0aUWLQqzuQ" presentation="default">
+ <element href="conception.uml#_x1foQKHmEd2T0aUWLQqzuQ"/>
+ </semanticModel>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="_5me4UKHmEd2T0aUWLQqzuQ" position="0,0" size="-1,-1">
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_5me4UaHmEd2T0aUWLQqzuQ" presentation="default">
+ <element href="conception.uml#_yucpgKHmEd2T0aUWLQqzuQ"/>
+ </semanticModel>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="_5me4UqHmEd2T0aUWLQqzuQ" position="0,0" size="-1,-1">
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_5me4U6HmEd2T0aUWLQqzuQ" presentation="default">
+ <element href="conception.uml#_zTIq8KHmEd2T0aUWLQqzuQ"/>
+ </semanticModel>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="_-cmSsKHmEd2T0aUWLQqzuQ" position="0,0" size="-1,-1">
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_-cmSsaHmEd2T0aUWLQqzuQ" presentation="default">
+ <element href="conception.uml#_-cp9EKHmEd2T0aUWLQqzuQ"/>
+ </semanticModel>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="_aPiOIKHnEd2T0aUWLQqzuQ" position="0,0" size="-1,-1">
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_aPiOIaHnEd2T0aUWLQqzuQ" presentation="default">
+ <element href="conception.uml#_aPi1MKHnEd2T0aUWLQqzuQ"/>
+ </semanticModel>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="_oCaIIKHnEd2T0aUWLQqzuQ" position="0,0" size="-1,-1">
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_oCaIIaHnEd2T0aUWLQqzuQ" presentation="default">
+ <element href="conception.uml#_oCavMKHnEd2T0aUWLQqzuQ"/>
+ </semanticModel>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="_ytZEIKHnEd2T0aUWLQqzuQ" position="0,0" size="-1,-1">
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_ytZEIaHnEd2T0aUWLQqzuQ" presentation="default">
+ <element href="conception.uml#_ytZrMKHnEd2T0aUWLQqzuQ"/>
+ </semanticModel>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="_1jz3oKHnEd2T0aUWLQqzuQ" position="0,0" size="-1,-1">
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_1jz3oaHnEd2T0aUWLQqzuQ" presentation="default">
+ <element href="conception.uml#_1j0esKHnEd2T0aUWLQqzuQ"/>
+ </semanticModel>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="_9IWnIKHnEd2T0aUWLQqzuQ" position="0,0" size="-1,-1">
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_9IWnIaHnEd2T0aUWLQqzuQ" presentation="default">
+ <element href="conception.uml#_9IXOMKHnEd2T0aUWLQqzuQ"/>
+ </semanticModel>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="_Gpj3oKHoEd2T0aUWLQqzuQ" position="0,0" size="-1,-1">
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_Gpj3oaHoEd2T0aUWLQqzuQ" presentation="default">
+ <element href="conception.uml#_GpkesKHoEd2T0aUWLQqzuQ"/>
+ </semanticModel>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="_OR13oKHoEd2T0aUWLQqzuQ" position="0,0" size="-1,-1">
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_OR2esKHoEd2T0aUWLQqzuQ" presentation="default">
+ <element href="conception.uml#_OR2esaHoEd2T0aUWLQqzuQ"/>
+ </semanticModel>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="_k0j2oKHoEd2T0aUWLQqzuQ" position="0,0" size="-1,-1">
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_k0kdsKHoEd2T0aUWLQqzuQ" presentation="default">
+ <element href="conception.uml#_k0lEwKHoEd2T0aUWLQqzuQ"/>
+ </semanticModel>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="_u1lPoKHoEd2T0aUWLQqzuQ" position="0,0" size="-1,-1">
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_u1lPoaHoEd2T0aUWLQqzuQ" presentation="default">
+ <element href="conception.uml#_u1l2sKHoEd2T0aUWLQqzuQ"/>
+ </semanticModel>
+ </contained>
+ </contained>
+ </contained>
+ <contained xsi:type="di:GraphEdge" xmi:id="_LEDX4KHmEd2BIt21aAt4XQ" anchor="_LD_tgKHmEd2BIt21aAt4XQ _LD_tgaHmEd2BIt21aAt4XQ">
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_LEDX4aHmEd2BIt21aAt4XQ" presentation="default">
+ <element href="conception.uml#_LED-8KHmEd2BIt21aAt4XQ"/>
+ </semanticModel>
+ <contained xsi:type="di:EdgeObjectOffset" xmi:id="_LEDX4qHmEd2BIt21aAt4XQ" id="stereotypeEdgeObject"/>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="_31e_UKHnEd2T0aUWLQqzuQ" position="301,254" size="119,-1">
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_31e_UaHnEd2T0aUWLQqzuQ" presentation="default">
+ <element href="conception.uml#_31g0gKHnEd2T0aUWLQqzuQ"/>
+ </semanticModel>
+ <contained xsi:type="di:GraphNode" xmi:id="_31e_UqHnEd2T0aUWLQqzuQ">
+ <property xmi:id="_31e_U6HnEd2T0aUWLQqzuQ" key="eStructuralFeatureID" value="37"/>
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_31e_VKHnEd2T0aUWLQqzuQ" presentation="default">
+ <element href="conception.uml#_31g0gKHnEd2T0aUWLQqzuQ"/>
+ </semanticModel>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="_31e_VaHnEd2T0aUWLQqzuQ">
+ <property xmi:id="_31e_VqHnEd2T0aUWLQqzuQ" key="eStructuralFeatureID" value="38"/>
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_31e_V6HnEd2T0aUWLQqzuQ" presentation="default">
+ <element href="conception.uml#_31g0gKHnEd2T0aUWLQqzuQ"/>
+ </semanticModel>
+ </contained>
+ </contained>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="_C1ow0PWTEdy_h6Mk-BiOHw" position="206,16" size="82,50">
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_C1ow0fWTEdy_h6Mk-BiOHw" presentation="default">
+ <element href="conception.uml#_tBzGgPWREdy_h6Mk-BiOHw"/>
+ </semanticModel>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="_DGWtYPWTEdy_h6Mk-BiOHw" position="112,12" size="84,54">
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_DGWtYfWTEdy_h6Mk-BiOHw" presentation="default">
+ <element href="conception.uml#__PrMMPWREdy_h6Mk-BiOHw"/>
+ </semanticModel>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="_DYMrUPWTEdy_h6Mk-BiOHw" position="292,13" size="77,54">
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_DYMrUfWTEdy_h6Mk-BiOHw" presentation="default">
+ <element href="conception.uml#_Cp0X0PWSEdy_h6Mk-BiOHw"/>
+ </semanticModel>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="_bKJAkHXGEd2Ekv686xx4qA" position="17,70" size="1534,633">
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_bKJAkXXGEd2Ekv686xx4qA" presentation="default">
+ <element href="conception.uml#_bKMq8HXGEd2Ekv686xx4qA"/>
+ </semanticModel>
+ <contained xsi:type="di:GraphNode" xmi:id="_c3xAAHXGEd2Ekv686xx4qA" position="521,50" size="213,-1">
+ <anchorage xmi:id="_nMqbYXj0Ed2Lq_BH-5XVEg" graphEdge="_nMrpgHj0Ed2Lq_BH-5XVEg _nYJ5sHj0Ed2Lq_BH-5XVEg _AU1kwOMkEd2zc-bceOzXYQ _NYCvUOlZEd2hcOPlZHSiFw"/>
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_c3xAAXXGEd2Ekv686xx4qA" presentation="default">
+ <element href="conception.uml#_c4VnwHXGEd2Ekv686xx4qA"/>
+ </semanticModel>
+ <contained xsi:type="di:GraphNode" xmi:id="_c3xAAnXGEd2Ekv686xx4qA">
+ <property xmi:id="_c3xAA3XGEd2Ekv686xx4qA" key="eStructuralFeatureID" value="37"/>
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_c3xABHXGEd2Ekv686xx4qA" presentation="default">
+ <element href="conception.uml#_c4VnwHXGEd2Ekv686xx4qA"/>
+ </semanticModel>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="_c3xABXXGEd2Ekv686xx4qA">
+ <property xmi:id="_c3xABnXGEd2Ekv686xx4qA" key="eStructuralFeatureID" value="47"/>
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_c3xAB3XGEd2Ekv686xx4qA" presentation="default">
+ <element href="conception.uml#_c4VnwHXGEd2Ekv686xx4qA"/>
+ </semanticModel>
+ </contained>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="_672esHXGEd2Ekv686xx4qA" position="484,391" size="170,-1">
+ <anchorage xmi:id="_nt4SEHj0Ed2Lq_BH-5XVEg" graphEdge="_nt5gMHj0Ed2Lq_BH-5XVEg"/>
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_672esXXGEd2Ekv686xx4qA" presentation="default">
+ <element href="conception.uml#_673s0HXGEd2Ekv686xx4qA"/>
+ </semanticModel>
+ <contained xsi:type="di:GraphNode" xmi:id="_672esnXGEd2Ekv686xx4qA">
+ <property xmi:id="_672es3XGEd2Ekv686xx4qA" key="eStructuralFeatureID" value="37"/>
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_672etHXGEd2Ekv686xx4qA" presentation="default">
+ <element href="conception.uml#_673s0HXGEd2Ekv686xx4qA"/>
+ </semanticModel>
+ <contained xsi:type="di:GraphNode" xmi:id="_iaKI0KtAEd2Nmqhc73l7SA" position="0,0" size="-1,-1">
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_iaKI0atAEd2Nmqhc73l7SA" presentation="default">
+ <element href="conception.uml#_iaKv4KtAEd2Nmqhc73l7SA"/>
+ </semanticModel>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="_jlAyYKtAEd2Nmqhc73l7SA" position="0,0" size="-1,-1">
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_jlAyYatAEd2Nmqhc73l7SA" presentation="default">
+ <element href="conception.uml#_jlBZcKtAEd2Nmqhc73l7SA"/>
+ </semanticModel>
+ </contained>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="_672etXXGEd2Ekv686xx4qA">
+ <property xmi:id="_672etnXGEd2Ekv686xx4qA" key="eStructuralFeatureID" value="47"/>
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_672et3XGEd2Ekv686xx4qA" presentation="default">
+ <element href="conception.uml#_673s0HXGEd2Ekv686xx4qA"/>
+ </semanticModel>
+ </contained>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="_oGJtkHXSEd20DoWUDUK0Ig" position="916,301" size="221,-1">
+ <anchorage xmi:id="_o_9lAHj0Ed2Lq_BH-5XVEg" graphEdge="_o_-zIHj0Ed2Lq_BH-5XVEg"/>
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_oGJtkXXSEd20DoWUDUK0Ig" presentation="default">
+ <element href="conception.uml#_yvGYUHXJEd20DoWUDUK0Ig"/>
+ </semanticModel>
+ <contained xsi:type="di:GraphNode" xmi:id="_oGJtknXSEd20DoWUDUK0Ig">
+ <property xmi:id="_oGJtk3XSEd20DoWUDUK0Ig" key="eStructuralFeatureID" value="37"/>
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_oGJtlHXSEd20DoWUDUK0Ig" presentation="default">
+ <element href="conception.uml#_yvGYUHXJEd20DoWUDUK0Ig"/>
+ </semanticModel>
+ <contained xsi:type="di:GraphNode" xmi:id="_oGK7sHXSEd20DoWUDUK0Ig" position="0,0" size="-1,-1">
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_oGK7sXXSEd20DoWUDUK0Ig" presentation="default">
+ <element href="conception.uml#_qoDjQHXKEd20DoWUDUK0Ig"/>
+ </semanticModel>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="_oGK7snXSEd20DoWUDUK0Ig" position="0,0" size="-1,-1">
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_oGK7s3XSEd20DoWUDUK0Ig" presentation="default">
+ <element href="conception.uml#_ryxC4HXKEd20DoWUDUK0Ig"/>
+ </semanticModel>
+ </contained>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="_oGKUoHXSEd20DoWUDUK0Ig">
+ <property xmi:id="_oGKUoXXSEd20DoWUDUK0Ig" key="eStructuralFeatureID" value="47"/>
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_oGKUonXSEd20DoWUDUK0Ig" presentation="default">
+ <element href="conception.uml#_yvGYUHXJEd20DoWUDUK0Ig"/>
+ </semanticModel>
+ </contained>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="_bIqVsHg-Ed2lVPDSSAZWVg" position="198,187" size="282,-1">
+ <anchorage xmi:id="_nMqbYHj0Ed2Lq_BH-5XVEg" graphEdge="_nMrpgHj0Ed2Lq_BH-5XVEg _nt5gMHj0Ed2Lq_BH-5XVEg _6-mZ4Ks-Ed2Nmqhc73l7SA _S6EfEKtAEd2Nmqhc73l7SA"/>
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_bIq8wHg-Ed2lVPDSSAZWVg" presentation="default">
+ <element href="conception.uml#_bI0twHg-Ed2lVPDSSAZWVg"/>
+ </semanticModel>
+ <contained xsi:type="di:GraphNode" xmi:id="_bIq8wXg-Ed2lVPDSSAZWVg">
+ <property xmi:id="_bIq8wng-Ed2lVPDSSAZWVg" key="eStructuralFeatureID" value="37"/>
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_bIq8w3g-Ed2lVPDSSAZWVg" presentation="default">
+ <element href="conception.uml#_bI0twHg-Ed2lVPDSSAZWVg"/>
+ </semanticModel>
+ <contained xsi:type="di:GraphNode" xmi:id="_IGG1UHg_Ed2lVPDSSAZWVg" position="0,0" size="-1,-1">
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_IGG1UXg_Ed2lVPDSSAZWVg" presentation="default">
+ <element href="conception.uml#_IGOxIHg_Ed2lVPDSSAZWVg"/>
+ </semanticModel>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="_XjqvgHg_Ed2lVPDSSAZWVg" position="0,0" size="-1,-1">
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_XjqvgXg_Ed2lVPDSSAZWVg" presentation="default">
+ <element href="conception.uml#_Xjqvgng_Ed2lVPDSSAZWVg"/>
+ </semanticModel>
+ </contained>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="_bIq8xHg-Ed2lVPDSSAZWVg">
+ <property xmi:id="_bIq8xXg-Ed2lVPDSSAZWVg" key="eStructuralFeatureID" value="47"/>
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_bIq8xng-Ed2lVPDSSAZWVg" presentation="default">
+ <element href="conception.uml#_bI0twHg-Ed2lVPDSSAZWVg"/>
+ </semanticModel>
+ <contained xsi:type="di:GraphNode" xmi:id="_YPG3kKvkEd2rnp-byoZYOw" position="0,0" size="-1,-1">
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_YPG3kavkEd2rnp-byoZYOw" presentation="default">
+ <element href="conception.uml#_YPQokKvkEd2rnp-byoZYOw"/>
+ </semanticModel>
+ </contained>
+ </contained>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="_KQqi8HjwEd2MH8DN-NMNrA" position="669,299" size="205,-1">
+ <anchorage xmi:id="_o2ancHj0Ed2Lq_BH-5XVEg" graphEdge="_o2bOgHj0Ed2Lq_BH-5XVEg"/>
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_KQqi8XjwEd2MH8DN-NMNrA" presentation="default">
+ <element href="conception.uml#_KQqi-HjwEd2MH8DN-NMNrA"/>
+ </semanticModel>
+ <contained xsi:type="di:GraphNode" xmi:id="_KQqi8njwEd2MH8DN-NMNrA">
+ <property xmi:id="_KQqi83jwEd2MH8DN-NMNrA" key="eStructuralFeatureID" value="37"/>
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_KQqi9HjwEd2MH8DN-NMNrA" presentation="default">
+ <element href="conception.uml#_KQqi-HjwEd2MH8DN-NMNrA"/>
+ </semanticModel>
+ <contained xsi:type="di:GraphNode" xmi:id="_NpxMwHjwEd2MH8DN-NMNrA" position="0,0" size="-1,-1">
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_NpxMwXjwEd2MH8DN-NMNrA" presentation="default">
+ <element href="conception.uml#_NpxMwnjwEd2MH8DN-NMNrA"/>
+ </semanticModel>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="_PLYJcHjwEd2MH8DN-NMNrA" position="0,0" size="-1,-1">
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_PLYJcXjwEd2MH8DN-NMNrA" presentation="default">
+ <element href="conception.uml#_PLYJcnjwEd2MH8DN-NMNrA"/>
+ </semanticModel>
+ </contained>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="_KQqi9XjwEd2MH8DN-NMNrA">
+ <property xmi:id="_KQqi9njwEd2MH8DN-NMNrA" key="eStructuralFeatureID" value="47"/>
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_KQqi93jwEd2MH8DN-NMNrA" presentation="default">
+ <element href="conception.uml#_KQqi-HjwEd2MH8DN-NMNrA"/>
+ </semanticModel>
+ </contained>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="_Z3YcUHj0Ed2Lq_BH-5XVEg" position="790,198" size="180,-1">
+ <anchorage xmi:id="_nYIrkHj0Ed2Lq_BH-5XVEg" graphEdge="_nYJ5sHj0Ed2Lq_BH-5XVEg _o2bOgHj0Ed2Lq_BH-5XVEg _o_-zIHj0Ed2Lq_BH-5XVEg _wz8QED-kEd6_O_u-D-Y8sg"/>
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_Z3YcUXj0Ed2Lq_BH-5XVEg" presentation="default">
+ <element href="conception.uml#_Z3cGsHj0Ed2Lq_BH-5XVEg"/>
+ </semanticModel>
+ <contained xsi:type="di:GraphNode" xmi:id="_Z3YcUnj0Ed2Lq_BH-5XVEg">
+ <property xmi:id="_Z3YcU3j0Ed2Lq_BH-5XVEg" key="eStructuralFeatureID" value="37"/>
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_Z3YcVHj0Ed2Lq_BH-5XVEg" presentation="default">
+ <element href="conception.uml#_Z3cGsHj0Ed2Lq_BH-5XVEg"/>
+ </semanticModel>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="_Z3YcVXj0Ed2Lq_BH-5XVEg">
+ <property xmi:id="_Z3YcVnj0Ed2Lq_BH-5XVEg" key="eStructuralFeatureID" value="47"/>
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_Z3YcV3j0Ed2Lq_BH-5XVEg" presentation="default">
+ <element href="conception.uml#_Z3cGsHj0Ed2Lq_BH-5XVEg"/>
+ </semanticModel>
+ </contained>
+ </contained>
+ <contained xsi:type="di:GraphEdge" xmi:id="_nMrpgHj0Ed2Lq_BH-5XVEg" anchor="_nMqbYHj0Ed2Lq_BH-5XVEg _nMqbYXj0Ed2Lq_BH-5XVEg">
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_nMrpgXj0Ed2Lq_BH-5XVEg" presentation="default">
+ <element href="conception.uml#_nMrpg3j0Ed2Lq_BH-5XVEg"/>
+ </semanticModel>
+ <contained xsi:type="di:EdgeObjectOffset" xmi:id="_nMrpgnj0Ed2Lq_BH-5XVEg" id="stereotypeEdgeObject"/>
+ </contained>
+ <contained xsi:type="di:GraphEdge" xmi:id="_nYJ5sHj0Ed2Lq_BH-5XVEg" anchor="_nYIrkHj0Ed2Lq_BH-5XVEg _nMqbYXj0Ed2Lq_BH-5XVEg">
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_nYJ5sXj0Ed2Lq_BH-5XVEg" presentation="default">
+ <element href="conception.uml#_nYJ5s3j0Ed2Lq_BH-5XVEg"/>
+ </semanticModel>
+ <contained xsi:type="di:EdgeObjectOffset" xmi:id="_nYJ5snj0Ed2Lq_BH-5XVEg" id="stereotypeEdgeObject"/>
+ </contained>
+ <contained xsi:type="di:GraphEdge" xmi:id="_nt5gMHj0Ed2Lq_BH-5XVEg" anchor="_nt4SEHj0Ed2Lq_BH-5XVEg _nMqbYHj0Ed2Lq_BH-5XVEg">
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_nt5gMXj0Ed2Lq_BH-5XVEg" presentation="default">
+ <element href="conception.uml#_nt5gM3j0Ed2Lq_BH-5XVEg"/>
+ </semanticModel>
+ <contained xsi:type="di:EdgeObjectOffset" xmi:id="_nt5gMnj0Ed2Lq_BH-5XVEg" id="stereotypeEdgeObject"/>
+ </contained>
+ <contained xsi:type="di:GraphEdge" xmi:id="_o2bOgHj0Ed2Lq_BH-5XVEg" anchor="_o2ancHj0Ed2Lq_BH-5XVEg _nYIrkHj0Ed2Lq_BH-5XVEg">
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_o2bOgXj0Ed2Lq_BH-5XVEg" presentation="default">
+ <element href="conception.uml#_o2bOg3j0Ed2Lq_BH-5XVEg"/>
+ </semanticModel>
+ <contained xsi:type="di:EdgeObjectOffset" xmi:id="_o2bOgnj0Ed2Lq_BH-5XVEg" id="stereotypeEdgeObject"/>
+ </contained>
+ <contained xsi:type="di:GraphEdge" xmi:id="_o_-zIHj0Ed2Lq_BH-5XVEg" anchor="_o_9lAHj0Ed2Lq_BH-5XVEg _nYIrkHj0Ed2Lq_BH-5XVEg">
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_o_-zIXj0Ed2Lq_BH-5XVEg" presentation="default">
+ <element href="conception.uml#_o_-zI3j0Ed2Lq_BH-5XVEg"/>
+ </semanticModel>
+ <contained xsi:type="di:EdgeObjectOffset" xmi:id="_o_-zInj0Ed2Lq_BH-5XVEg" id="stereotypeEdgeObject"/>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="_YNCycHmZEd2HRLLd0I1WrA" position="37,522" size="225,-1">
+ <anchorage xmi:id="_51DicKs_Ed2Nmqhc73l7SA" graphEdge="_N2AIQKtAEd2Nmqhc73l7SA"/>
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_YNDZgHmZEd2HRLLd0I1WrA" presentation="default">
+ <element href="conception.uml#_YNI5EHmZEd2HRLLd0I1WrA"/>
+ </semanticModel>
+ <contained xsi:type="di:GraphNode" xmi:id="_YNDZgXmZEd2HRLLd0I1WrA">
+ <property xmi:id="_YNDZgnmZEd2HRLLd0I1WrA" key="eStructuralFeatureID" value="37"/>
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_YNDZg3mZEd2HRLLd0I1WrA" presentation="default">
+ <element href="conception.uml#_YNI5EHmZEd2HRLLd0I1WrA"/>
+ </semanticModel>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="_YNDZhHmZEd2HRLLd0I1WrA">
+ <property xmi:id="_YNDZhXmZEd2HRLLd0I1WrA" key="eStructuralFeatureID" value="47"/>
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_YNDZhnmZEd2HRLLd0I1WrA" presentation="default">
+ <element href="conception.uml#_YNI5EHmZEd2HRLLd0I1WrA"/>
+ </semanticModel>
+ </contained>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="_GfY2MHmfEd2HRLLd0I1WrA" position="278,524" size="209,-1">
+ <anchorage xmi:id="_6AMbcKs_Ed2Nmqhc73l7SA" graphEdge="_OEX7cKtAEd2Nmqhc73l7SA"/>
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_GfY2MXmfEd2HRLLd0I1WrA" presentation="default">
+ <element href="conception.uml#_GfaEUHmfEd2HRLLd0I1WrA"/>
+ </semanticModel>
+ <contained xsi:type="di:GraphNode" xmi:id="_GfY2MnmfEd2HRLLd0I1WrA">
+ <property xmi:id="_GfY2M3mfEd2HRLLd0I1WrA" key="eStructuralFeatureID" value="37"/>
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_GfY2NHmfEd2HRLLd0I1WrA" presentation="default">
+ <element href="conception.uml#_GfaEUHmfEd2HRLLd0I1WrA"/>
+ </semanticModel>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="_GfY2NXmfEd2HRLLd0I1WrA">
+ <property xmi:id="_GfY2NnmfEd2HRLLd0I1WrA" key="eStructuralFeatureID" value="47"/>
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_GfY2N3mfEd2HRLLd0I1WrA" presentation="default">
+ <element href="conception.uml#_GfaEUHmfEd2HRLLd0I1WrA"/>
+ </semanticModel>
+ </contained>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="_4Q42cKs-Ed2Nmqhc73l7SA" position="31,361" size="212,-1">
+ <anchorage xmi:id="_6-kksKs-Ed2Nmqhc73l7SA" graphEdge="_6-mZ4Ks-Ed2Nmqhc73l7SA"/>
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_4Q42cas-Ed2Nmqhc73l7SA" presentation="default">
+ <element href="conception.uml#_4RBZUKs-Ed2Nmqhc73l7SA"/>
+ </semanticModel>
+ <contained xsi:type="di:GraphNode" xmi:id="_4Q42cqs-Ed2Nmqhc73l7SA">
+ <property xmi:id="_4Q42c6s-Ed2Nmqhc73l7SA" key="eStructuralFeatureID" value="37"/>
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_4Q42dKs-Ed2Nmqhc73l7SA" presentation="default">
+ <element href="conception.uml#_4RBZUKs-Ed2Nmqhc73l7SA"/>
+ </semanticModel>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="_4Q42das-Ed2Nmqhc73l7SA">
+ <property xmi:id="_4Q42dqs-Ed2Nmqhc73l7SA" key="eStructuralFeatureID" value="47"/>
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_4Q42d6s-Ed2Nmqhc73l7SA" presentation="default">
+ <element href="conception.uml#_4RBZUKs-Ed2Nmqhc73l7SA"/>
+ </semanticModel>
+ </contained>
+ </contained>
+ <contained xsi:type="di:GraphEdge" xmi:id="_6-mZ4Ks-Ed2Nmqhc73l7SA" anchor="_6-kksKs-Ed2Nmqhc73l7SA _nMqbYHj0Ed2Lq_BH-5XVEg">
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_6-mZ4as-Ed2Nmqhc73l7SA" presentation="default">
+ <element href="conception.uml#_6-nA8Ks-Ed2Nmqhc73l7SA"/>
+ </semanticModel>
+ <contained xsi:type="di:EdgeObjectOffset" xmi:id="_6-mZ4qs-Ed2Nmqhc73l7SA" id="stereotypeEdgeObject"/>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="_EbHiMKtAEd2Nmqhc73l7SA" position="254,334" size="256,-1">
+ <anchorage xmi:id="_N1_hMKtAEd2Nmqhc73l7SA" graphEdge="_N2AIQKtAEd2Nmqhc73l7SA _OEX7cKtAEd2Nmqhc73l7SA _S6EfEKtAEd2Nmqhc73l7SA"/>
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_EbHiMatAEd2Nmqhc73l7SA" presentation="default">
+ <element href="conception.uml#_EbIwUKtAEd2Nmqhc73l7SA"/>
+ </semanticModel>
+ <contained xsi:type="di:GraphNode" xmi:id="_EbHiMqtAEd2Nmqhc73l7SA">
+ <property xmi:id="_EbHiM6tAEd2Nmqhc73l7SA" key="eStructuralFeatureID" value="37"/>
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_EbHiNKtAEd2Nmqhc73l7SA" presentation="default">
+ <element href="conception.uml#_EbIwUKtAEd2Nmqhc73l7SA"/>
+ </semanticModel>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="_EbHiNatAEd2Nmqhc73l7SA">
+ <property xmi:id="_EbHiNqtAEd2Nmqhc73l7SA" key="eStructuralFeatureID" value="47"/>
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_EbHiN6tAEd2Nmqhc73l7SA" presentation="default">
+ <element href="conception.uml#_EbIwUKtAEd2Nmqhc73l7SA"/>
+ </semanticModel>
+ </contained>
+ </contained>
+ <contained xsi:type="di:GraphEdge" xmi:id="_N2AIQKtAEd2Nmqhc73l7SA" anchor="_51DicKs_Ed2Nmqhc73l7SA _N1_hMKtAEd2Nmqhc73l7SA">
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_N2AvUKtAEd2Nmqhc73l7SA" presentation="default">
+ <element href="conception.uml#_N2AvUqtAEd2Nmqhc73l7SA"/>
+ </semanticModel>
+ <contained xsi:type="di:EdgeObjectOffset" xmi:id="_N2AvUatAEd2Nmqhc73l7SA" id="stereotypeEdgeObject"/>
+ </contained>
+ <contained xsi:type="di:GraphEdge" xmi:id="_OEX7cKtAEd2Nmqhc73l7SA" anchor="_6AMbcKs_Ed2Nmqhc73l7SA _N1_hMKtAEd2Nmqhc73l7SA">
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_OEX7catAEd2Nmqhc73l7SA" presentation="default">
+ <element href="conception.uml#_OEX7c6tAEd2Nmqhc73l7SA"/>
+ </semanticModel>
+ <contained xsi:type="di:EdgeObjectOffset" xmi:id="_OEX7cqtAEd2Nmqhc73l7SA" id="stereotypeEdgeObject"/>
+ </contained>
+ <contained xsi:type="di:GraphEdge" xmi:id="_S6EfEKtAEd2Nmqhc73l7SA" anchor="_N1_hMKtAEd2Nmqhc73l7SA _nMqbYHj0Ed2Lq_BH-5XVEg">
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_S6EfEatAEd2Nmqhc73l7SA" presentation="default">
+ <element href="conception.uml#_S6EfE6tAEd2Nmqhc73l7SA"/>
+ </semanticModel>
+ <contained xsi:type="di:EdgeObjectOffset" xmi:id="_S6EfEqtAEd2Nmqhc73l7SA" id="stereotypeEdgeObject"/>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="_vEdpIOMjEd2zc-bceOzXYQ" position="951,49" size="212,-1">
+ <anchorage xmi:id="_AU0WoOMkEd2zc-bceOzXYQ" graphEdge="_AU1kwOMkEd2zc-bceOzXYQ"/>
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_vEdpIeMjEd2zc-bceOzXYQ" presentation="default">
+ <element href="conception.uml#_vE68IOMjEd2zc-bceOzXYQ"/>
+ </semanticModel>
+ <contained xsi:type="di:GraphNode" xmi:id="_vEdpIuMjEd2zc-bceOzXYQ">
+ <property xmi:id="_vEdpI-MjEd2zc-bceOzXYQ" key="eStructuralFeatureID" value="37"/>
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_vEdpJOMjEd2zc-bceOzXYQ" presentation="default">
+ <element href="conception.uml#_vE68IOMjEd2zc-bceOzXYQ"/>
+ </semanticModel>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="_vEdpJeMjEd2zc-bceOzXYQ">
+ <property xmi:id="_vEdpJuMjEd2zc-bceOzXYQ" key="eStructuralFeatureID" value="47"/>
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_vEdpJ-MjEd2zc-bceOzXYQ" presentation="default">
+ <element href="conception.uml#_vE68IOMjEd2zc-bceOzXYQ"/>
+ </semanticModel>
+ </contained>
+ </contained>
+ <contained xsi:type="di:GraphEdge" xmi:id="_AU1kwOMkEd2zc-bceOzXYQ" anchor="_AU0WoOMkEd2zc-bceOzXYQ _nMqbYXj0Ed2Lq_BH-5XVEg">
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_AU1kweMkEd2zc-bceOzXYQ" presentation="default">
+ <element href="conception.uml#_AU1kyuMkEd2zc-bceOzXYQ"/>
+ </semanticModel>
+ <contained xsi:type="di:EdgeObjectUV" xmi:id="_AU1kwuMkEd2zc-bceOzXYQ" id="srcNameEdgeObject" uDistance="10" vDistance="10"/>
+ <contained xsi:type="di:EdgeObjectUV" xmi:id="_AU1kw-MkEd2zc-bceOzXYQ" id="srcPropertiesEdgeObject" uDistance="25" vDistance="10"/>
+ <contained xsi:type="di:EdgeObjectUV" xmi:id="_AU1kxOMkEd2zc-bceOzXYQ" id="srcCountEdgeObject" uDistance="10" vDistance="-10"/>
+ <contained xsi:type="di:EdgeObjectUV" xmi:id="_AU1kxeMkEd2zc-bceOzXYQ" id="targetNameEdgeObject" uDistance="10" vDistance="10"/>
+ <contained xsi:type="di:EdgeObjectUV" xmi:id="_AU1kxuMkEd2zc-bceOzXYQ" id="targetPropertiesEdgeObject" uDistance="25" vDistance="10"/>
+ <contained xsi:type="di:EdgeObjectUV" xmi:id="_AU1kx-MkEd2zc-bceOzXYQ" id="targetCountEdgeObject" uDistance="10" vDistance="-10"/>
+ <contained xsi:type="di:EdgeObjectOffset" xmi:id="_AU1kyOMkEd2zc-bceOzXYQ" visible="false" id="middleNameEdgeObject" offset="0,10"/>
+ <contained xsi:type="di:EdgeObjectOffset" xmi:id="_AU1kyeMkEd2zc-bceOzXYQ" id="stereotypeEdgeObject" offset="0,-10"/>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="_R_p54OYHEd2ikLHnwqSzSg" position="145,46" size="156,-1">
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_R_p54eYHEd2ikLHnwqSzSg" presentation="default">
+ <element href="conception.uml#_R_qg8OYHEd2ikLHnwqSzSg"/>
+ </semanticModel>
+ <contained xsi:type="di:GraphNode" xmi:id="_R_p54uYHEd2ikLHnwqSzSg">
+ <property xmi:id="_R_p54-YHEd2ikLHnwqSzSg" key="eStructuralFeatureID" value="37"/>
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_R_p55OYHEd2ikLHnwqSzSg" presentation="default">
+ <element href="conception.uml#_R_qg8OYHEd2ikLHnwqSzSg"/>
+ </semanticModel>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="_R_p55eYHEd2ikLHnwqSzSg">
+ <property xmi:id="_R_p55uYHEd2ikLHnwqSzSg" key="eStructuralFeatureID" value="47"/>
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_R_p55-YHEd2ikLHnwqSzSg" presentation="default">
+ <element href="conception.uml#_R_qg8OYHEd2ikLHnwqSzSg"/>
+ </semanticModel>
+ </contained>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="_JUFKoOlZEd2hcOPlZHSiFw" position="1162,210" size="235,-1">
+ <anchorage xmi:id="_NYCIQOlZEd2hcOPlZHSiFw" graphEdge="_NYCvUOlZEd2hcOPlZHSiFw"/>
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_JUFKoelZEd2hcOPlZHSiFw" presentation="default">
+ <element href="conception.uml#_JUeMMOlZEd2hcOPlZHSiFw"/>
+ </semanticModel>
+ <contained xsi:type="di:GraphNode" xmi:id="_JUFKoulZEd2hcOPlZHSiFw">
+ <property xmi:id="_JUFKo-lZEd2hcOPlZHSiFw" key="eStructuralFeatureID" value="37"/>
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_JUFKpOlZEd2hcOPlZHSiFw" presentation="default">
+ <element href="conception.uml#_JUeMMOlZEd2hcOPlZHSiFw"/>
+ </semanticModel>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="_JUFKpelZEd2hcOPlZHSiFw">
+ <property xmi:id="_JUFKpulZEd2hcOPlZHSiFw" key="eStructuralFeatureID" value="47"/>
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_JUFKp-lZEd2hcOPlZHSiFw" presentation="default">
+ <element href="conception.uml#_JUeMMOlZEd2hcOPlZHSiFw"/>
+ </semanticModel>
+ </contained>
+ </contained>
+ <contained xsi:type="di:GraphEdge" xmi:id="_NYCvUOlZEd2hcOPlZHSiFw" anchor="_NYCIQOlZEd2hcOPlZHSiFw _nMqbYXj0Ed2Lq_BH-5XVEg">
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_NYDWYOlZEd2hcOPlZHSiFw" presentation="default">
+ <element href="conception.uml#_NYDWYulZEd2hcOPlZHSiFw"/>
+ </semanticModel>
+ <contained xsi:type="di:EdgeObjectOffset" xmi:id="_NYDWYelZEd2hcOPlZHSiFw" id="stereotypeEdgeObject"/>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="_sPw6QD-kEd6_O_u-D-Y8sg" position="1162,301" size="325,-1">
+ <anchorage xmi:id="_wz7pAD-kEd6_O_u-D-Y8sg" graphEdge="_wz8QED-kEd6_O_u-D-Y8sg"/>
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_sPw6QT-kEd6_O_u-D-Y8sg" presentation="default">
+ <element href="conception.uml#_sPzWgD-kEd6_O_u-D-Y8sg"/>
+ </semanticModel>
+ <contained xsi:type="di:GraphNode" xmi:id="_sPxhUD-kEd6_O_u-D-Y8sg">
+ <property xmi:id="_sPxhUT-kEd6_O_u-D-Y8sg" key="eStructuralFeatureID" value="37"/>
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_sPxhUj-kEd6_O_u-D-Y8sg" presentation="default">
+ <element href="conception.uml#_sPzWgD-kEd6_O_u-D-Y8sg"/>
+ </semanticModel>
+ <contained xsi:type="di:GraphNode" xmi:id="_9xbQwECBEd6bJJyFu8UH4w" position="0,0" size="-1,-1">
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_9xbQwUCBEd6bJJyFu8UH4w" presentation="default">
+ <element href="conception.uml#_9xb30ECBEd6bJJyFu8UH4w"/>
+ </semanticModel>
+ </contained>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="_sPxhUz-kEd6_O_u-D-Y8sg">
+ <property xmi:id="_sPxhVD-kEd6_O_u-D-Y8sg" key="eStructuralFeatureID" value="47"/>
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_sPyIYD-kEd6_O_u-D-Y8sg" presentation="default">
+ <element href="conception.uml#_sPzWgD-kEd6_O_u-D-Y8sg"/>
+ </semanticModel>
+ </contained>
+ </contained>
+ <contained xsi:type="di:GraphEdge" xmi:id="_wz8QED-kEd6_O_u-D-Y8sg" anchor="_wz7pAD-kEd6_O_u-D-Y8sg _nYIrkHj0Ed2Lq_BH-5XVEg">
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_wz8QET-kEd6_O_u-D-Y8sg" presentation="default">
+ <element href="conception.uml#_wz83ID-kEd6_O_u-D-Y8sg"/>
+ </semanticModel>
+ <contained xsi:type="di:EdgeObjectOffset" xmi:id="_wz8QEj-kEd6_O_u-D-Y8sg" id="stereotypeEdgeObject"/>
+ </contained>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="__ky04HmZEd2HRLLd0I1WrA" position="20,738" size="550,147">
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="__ky04XmZEd2HRLLd0I1WrA" presentation="default">
+ <element href="conception.uml#__k0DAHmZEd2HRLLd0I1WrA"/>
+ </semanticModel>
+ <contained xsi:type="di:GraphNode" xmi:id="_CXGkcHmaEd2HRLLd0I1WrA" position="80,26" size="441,-1">
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_CXGkcXmaEd2HRLLd0I1WrA" presentation="default">
+ <element href="conception.uml#_CXHykHmaEd2HRLLd0I1WrA"/>
+ </semanticModel>
+ <contained xsi:type="di:GraphNode" xmi:id="_CXGkcnmaEd2HRLLd0I1WrA">
+ <property xmi:id="_CXGkc3maEd2HRLLd0I1WrA" key="eStructuralFeatureID" value="37"/>
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_CXGkdHmaEd2HRLLd0I1WrA" presentation="default">
+ <element href="conception.uml#_CXHykHmaEd2HRLLd0I1WrA"/>
+ </semanticModel>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="_CXGkdXmaEd2HRLLd0I1WrA">
+ <property xmi:id="_CXGkdnmaEd2HRLLd0I1WrA" key="eStructuralFeatureID" value="47"/>
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_CXGkd3maEd2HRLLd0I1WrA" presentation="default">
+ <element href="conception.uml#_CXHykHmaEd2HRLLd0I1WrA"/>
+ </semanticModel>
+ <contained xsi:type="di:GraphNode" xmi:id="_YWpvgHmbEd2HRLLd0I1WrA" position="0,0" size="-1,-1">
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_YWpvgXmbEd2HRLLd0I1WrA" presentation="default">
+ <element href="conception.uml#_YWpvgnmbEd2HRLLd0I1WrA"/>
+ </semanticModel>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="_yXF9IHmcEd2HRLLd0I1WrA" position="0,0" size="-1,-1">
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_yXF9IXmcEd2HRLLd0I1WrA" presentation="default">
+ <element href="conception.uml#_yXGkMHmcEd2HRLLd0I1WrA"/>
+ </semanticModel>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="_-9_pwH2uEd22ZfAQrfk_WQ" position="0,0" size="-1,-1">
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_-9_pwX2uEd22ZfAQrfk_WQ" presentation="default">
+ <element href="conception.uml#_--Be8H2uEd22ZfAQrfk_WQ"/>
+ </semanticModel>
+ </contained>
+ </contained>
+ </contained>
+ </contained>
+ </diagrams>
+ <subdiagrams xmi:id="_blzJsPWREdy_h6Mk-BiOHw">
+ <model href="conception.uml#_w8IxIM37EdqwVrslYOdUDA"/>
+ <diagrams xmi:id="_3z5UoKQ8Ed2AzttPnb4djA" position="0,0" size="100,100" name="unnamed" viewport="0,0">
+ <property xmi:id="_30mfQKQ8Ed2AzttPnb4djA" key="pageFormatName" value="A4"/>
+ <property xmi:id="_30mfQaQ8Ed2AzttPnb4djA" key="diagramWidth" value="840"/>
+ <property xmi:id="_30mfQqQ8Ed2AzttPnb4djA" key="diagramHeight" value="1188"/>
+ <property xmi:id="_30mfQ6Q8Ed2AzttPnb4djA" key="pageMarginName" value="Small Margin"/>
+ <property xmi:id="_30mfRKQ8Ed2AzttPnb4djA" key="diagramTopMargin" value="20"/>
+ <property xmi:id="_30mfRaQ8Ed2AzttPnb4djA" key="diagramBottomMargin" value="20"/>
+ <property xmi:id="_30mfRqQ8Ed2AzttPnb4djA" key="diagramLeftMargin" value="20"/>
+ <property xmi:id="_30mfR6Q8Ed2AzttPnb4djA" key="diagramRightMargin" value="20"/>
+ <property xmi:id="_30mfSKQ8Ed2AzttPnb4djA" key="orientation" value="portrait"/>
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_3z5UoaQ8Ed2AzttPnb4djA" presentation="org.topcased.modeler.uml.classdiagram">
+ <element href="conception.uml#_w8IxIM37EdqwVrslYOdUDA"/>
+ </semanticModel>
+ <contained xsi:type="di:GraphNode" xmi:id="_4I8XkKQ8Ed2AzttPnb4djA" position="57,35" size="658,436">
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_4I8XkaQ8Ed2AzttPnb4djA" presentation="default">
+ <element href="conception.uml#_4JKaAKQ8Ed2AzttPnb4djA"/>
+ </semanticModel>
+ <contained xsi:type="di:GraphNode" xmi:id="_ER5GYKQ9Ed2AzttPnb4djA" position="85,36" size="448,-1">
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_ER5GYaQ9Ed2AzttPnb4djA" presentation="default">
+ <element href="conception.uml#_6MN4EKHlEd2BIt21aAt4XQ"/>
+ </semanticModel>
+ <contained xsi:type="di:GraphNode" xmi:id="_ER5GYqQ9Ed2AzttPnb4djA">
+ <property xmi:id="_ER5GY6Q9Ed2AzttPnb4djA" key="eStructuralFeatureID" value="37"/>
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_ER5GZKQ9Ed2AzttPnb4djA" presentation="default">
+ <element href="conception.uml#_6MN4EKHlEd2BIt21aAt4XQ"/>
+ </semanticModel>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="_ER5GZaQ9Ed2AzttPnb4djA">
+ <property xmi:id="_ER5GZqQ9Ed2AzttPnb4djA" key="eStructuralFeatureID" value="47"/>
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_ER5GZ6Q9Ed2AzttPnb4djA" presentation="default">
+ <element href="conception.uml#_6MN4EKHlEd2BIt21aAt4XQ"/>
+ </semanticModel>
+ <contained xsi:type="di:GraphNode" xmi:id="_ER8JsKQ9Ed2AzttPnb4djA" position="0,0" size="-1,-1">
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_ER8JsaQ9Ed2AzttPnb4djA" presentation="default">
+ <element href="conception.uml#_gUeBgKHmEd2BIt21aAt4XQ"/>
+ </semanticModel>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="_ER9-4KQ9Ed2AzttPnb4djA" position="0,0" size="-1,-1">
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_ER9-4aQ9Ed2AzttPnb4djA" presentation="default">
+ <element href="conception.uml#_h-vyAKHmEd2BIt21aAt4XQ"/>
+ </semanticModel>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="_ER-l8KQ9Ed2AzttPnb4djA" position="0,0" size="-1,-1">
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_ER-l8aQ9Ed2AzttPnb4djA" presentation="default">
+ <element href="conception.uml#_x1foQKHmEd2T0aUWLQqzuQ"/>
+ </semanticModel>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="_ER_NAKQ9Ed2AzttPnb4djA" position="0,0" size="-1,-1">
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_ER_NAaQ9Ed2AzttPnb4djA" presentation="default">
+ <element href="conception.uml#_yucpgKHmEd2T0aUWLQqzuQ"/>
+ </semanticModel>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="_ER_0EKQ9Ed2AzttPnb4djA" position="0,0" size="-1,-1">
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_ER_0EaQ9Ed2AzttPnb4djA" presentation="default">
+ <element href="conception.uml#_zTIq8KHmEd2T0aUWLQqzuQ"/>
+ </semanticModel>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="_ER_0EqQ9Ed2AzttPnb4djA" position="0,0" size="-1,-1">
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_ER_0E6Q9Ed2AzttPnb4djA" presentation="default">
+ <element href="conception.uml#_-cp9EKHmEd2T0aUWLQqzuQ"/>
+ </semanticModel>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="_ESAbIKQ9Ed2AzttPnb4djA" position="0,0" size="-1,-1">
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_ESAbIaQ9Ed2AzttPnb4djA" presentation="default">
+ <element href="conception.uml#_aPi1MKHnEd2T0aUWLQqzuQ"/>
+ </semanticModel>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="_ESAbIqQ9Ed2AzttPnb4djA" position="0,0" size="-1,-1">
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_ESAbI6Q9Ed2AzttPnb4djA" presentation="default">
+ <element href="conception.uml#_oCavMKHnEd2T0aUWLQqzuQ"/>
+ </semanticModel>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="_ESBCMKQ9Ed2AzttPnb4djA" position="0,0" size="-1,-1">
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_ESBCMaQ9Ed2AzttPnb4djA" presentation="default">
+ <element href="conception.uml#_ytZrMKHnEd2T0aUWLQqzuQ"/>
+ </semanticModel>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="_ESBpQKQ9Ed2AzttPnb4djA" position="0,0" size="-1,-1">
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_ESBpQaQ9Ed2AzttPnb4djA" presentation="default">
+ <element href="conception.uml#_1j0esKHnEd2T0aUWLQqzuQ"/>
+ </semanticModel>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="_ESBpQqQ9Ed2AzttPnb4djA" position="0,0" size="-1,-1">
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_ESBpQ6Q9Ed2AzttPnb4djA" presentation="default">
+ <element href="conception.uml#_9IXOMKHnEd2T0aUWLQqzuQ"/>
+ </semanticModel>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="_ESCQUKQ9Ed2AzttPnb4djA" position="0,0" size="-1,-1">
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_ESCQUaQ9Ed2AzttPnb4djA" presentation="default">
+ <element href="conception.uml#_GpkesKHoEd2T0aUWLQqzuQ"/>
+ </semanticModel>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="_ESC3YKQ9Ed2AzttPnb4djA" position="0,0" size="-1,-1">
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_ESC3YaQ9Ed2AzttPnb4djA" presentation="default">
+ <element href="conception.uml#_OR2esaHoEd2T0aUWLQqzuQ"/>
+ </semanticModel>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="_ESC3YqQ9Ed2AzttPnb4djA" position="0,0" size="-1,-1">
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_ESC3Y6Q9Ed2AzttPnb4djA" presentation="default">
+ <element href="conception.uml#_k0lEwKHoEd2T0aUWLQqzuQ"/>
+ </semanticModel>
+ </contained>
+ <contained xsi:type="di:GraphNode" xmi:id="_ESEFgKQ9Ed2AzttPnb4djA" position="0,0" size="-1,-1">
+ <semanticModel xsi:type="di:EMFSemanticModelBridge" xmi:id="_ESEFgaQ9Ed2AzttPnb4djA" presentation="default">
+ <element href="conception.uml#_u1l2sKHoEd2T0aUWLQqzuQ"/>
+ </semanticModel>
+ </contained>
+ </contained>
+ </contained>
+ </contained>
+ </diagrams>
+ </subdiagrams>
+</diagrams:Diagrams>
Copied: trunk/ant-eugene-task/src/test/resources/xmi/2.1/vpod.uml (from rev 769, trunk/eugene/src/test/resources/xmi/2.1/vpod.uml)
===================================================================
--- trunk/ant-eugene-task/src/test/resources/xmi/2.1/vpod.uml (rev 0)
+++ trunk/ant-eugene-task/src/test/resources/xmi/2.1/vpod.uml 2009-12-20 12:58:28 UTC (rev 772)
@@ -0,0 +1,227 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="2.1" xmlns:xmi="http://schema.omg.org/spec/XMI/2.1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:AcceleoBusiness="http:///schemas/AcceleoBusiness/_my2ZAHXaEd2S2Y-Jnv-fiQ/2" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:uml="http://www.eclipse.org/uml2/2.1.0/UML" xsi:schemaLocation="http:///schemas/AcceleoBusiness/_my2ZAHXaEd2S2Y-Jnv-fiQ/2 pathmap://ACCELEO_PROFILES/Acceleo.Business.profile.uml#_81g14fWcEdyuYMHNZCqWBQ">
+ <uml:Model xmi:id="_qb8akM37EdqwVrslYOdUDA" name="org::sharengo::s4a::storage::http::vpod">
+ <packagedElement xmi:type="uml:Package" xmi:id="_w8IxIM37EdqwVrslYOdUDA" name="services">
+ <packagedElement xmi:type="uml:Class" xmi:id="_lfUrOPEWEd2YNfzDP2MSAQ" name="VpodHttpStorageSrv" clientDependency="_KgAvo_EXEd2YNfzDP2MSAQ _T9NPk_EnEd2YNfzDP2MSAQ _u2XgBPFLEd2IhJnrV0PXeg">
+ <interfaceRealization xmi:id="_KgAvo_EXEd2YNfzDP2MSAQ" name="InterfaceRealization1" client="_lfUrOPEWEd2YNfzDP2MSAQ">
+ <supplier xmi:type="uml:Interface" href="http-storage-api/src/main/uml/conception.uml#_hqBkGO7mEd2ObcIAlNg7-w"/>
+ <contract href="http-storage-api/src/main/uml/conception.uml#_hqBkGO7mEd2ObcIAlNg7-w"/>
+ </interfaceRealization>
+ <ownedOperation xmi:id="_2inkYvEnEd2YNfzDP2MSAQ" name="getDescription">
+ <ownedParameter xmi:id="_0l9YgPEpEd2YNfzDP2MSAQ" name="return" direction="return">
+ <type xmi:type="uml:Class" href="http-storage-api/src/main/uml/conception.uml#_nstfSO7mEd2ObcIAlNg7-w"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_30k7gvEnEd2YNfzDP2MSAQ" name="getContract">
+ <ownedParameter xmi:id="_2xusgPEpEd2YNfzDP2MSAQ" name="return" direction="return">
+ <type xmi:type="uml:Class" href="http-storage-api/src/main/uml/conception.uml#_8lDAGO7mEd2ObcIAlNg7-w"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_46dlgvEnEd2YNfzDP2MSAQ" name="createFileEntry">
+ <ownedParameter xmi:id="_VI7mYPEoEd2YNfzDP2MSAQ" name="fileEntry">
+ <type xmi:type="uml:Class" href="http-storage-api/src/main/uml/conception.uml#_e_H4iO7wEd2ObcIAlNg7-w"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_W6VSkPEoEd2YNfzDP2MSAQ" name="return" direction="return">
+ <type xmi:type="uml:Class" href="http-storage-api/src/main/uml/conception.uml#_e_H4iO7wEd2ObcIAlNg7-w"/>
+ </ownedParameter>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_YNI5EHmZEd2HRLLd0I1WrA"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_GfaEUHmfEd2HRLLd0I1WrA"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_4RBZUKs-Ed2Nmqhc73l7SA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_6Cb6MvEnEd2YNfzDP2MSAQ" name="deleteFileEntry">
+ <ownedParameter xmi:id="_a7rBEPEoEd2YNfzDP2MSAQ" name="id">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedParameter>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_YNI5EHmZEd2HRLLd0I1WrA"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_GfaEUHmfEd2HRLLd0I1WrA"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_KQqi-HjwEd2MH8DN-NMNrA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_7PeVEvEnEd2YNfzDP2MSAQ" name="retrieveFileEntry">
+ <ownedParameter xmi:id="_dLUvgPEoEd2YNfzDP2MSAQ" name="return" direction="return">
+ <type xmi:type="uml:Class" href="http-storage-api/src/main/uml/conception.uml#_e_H4iO7wEd2ObcIAlNg7-w"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_fpkTkPEoEd2YNfzDP2MSAQ" name="id">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedParameter>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_YNI5EHmZEd2HRLLd0I1WrA"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_GfaEUHmfEd2HRLLd0I1WrA"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_KQqi-HjwEd2MH8DN-NMNrA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_-l6FYvEnEd2YNfzDP2MSAQ" name="getUploadToken">
+ <ownedParameter xmi:id="_j5hF0PEoEd2YNfzDP2MSAQ" name="return" direction="return">
+ <type xmi:type="uml:Class" href="http-storage-api/src/main/uml/conception.uml#_VmNvyO7tEd2ObcIAlNg7-w"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_nescwPEoEd2YNfzDP2MSAQ" name="id">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedParameter>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_YNI5EHmZEd2HRLLd0I1WrA"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_GfaEUHmfEd2HRLLd0I1WrA"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_KQqi-HjwEd2MH8DN-NMNrA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__tR9IvEnEd2YNfzDP2MSAQ" name="getDownloadUrl">
+ <ownedParameter xmi:id="_lpICQPEoEd2YNfzDP2MSAQ" name="return" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_pT98UPEoEd2YNfzDP2MSAQ" name="id">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedParameter>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_YNI5EHmZEd2HRLLd0I1WrA"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_GfaEUHmfEd2HRLLd0I1WrA"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_KQqi-HjwEd2MH8DN-NMNrA"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_4RBZUKs-Ed2Nmqhc73l7SA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_JGiykvEoEd2YNfzDP2MSAQ" name="getThumbnailHtmlCode">
+ <ownedParameter xmi:id="_rwlIsPEoEd2YNfzDP2MSAQ" name="return" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_uhTj4PEoEd2YNfzDP2MSAQ" name="id">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedParameter>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_YNI5EHmZEd2HRLLd0I1WrA"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_GfaEUHmfEd2HRLLd0I1WrA"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_KQqi-HjwEd2MH8DN-NMNrA"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_4RBZUKs-Ed2Nmqhc73l7SA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_Ph0M4vEoEd2YNfzDP2MSAQ" name="getViewerHtmlCode">
+ <ownedParameter xmi:id="_v-vLMPEoEd2YNfzDP2MSAQ" name="return" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_ykcCIPEoEd2YNfzDP2MSAQ" name="id">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedParameter>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_YNI5EHmZEd2HRLLd0I1WrA"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_GfaEUHmfEd2HRLLd0I1WrA"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_KQqi-HjwEd2MH8DN-NMNrA"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_4RBZUKs-Ed2Nmqhc73l7SA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_Q41qMvEoEd2YNfzDP2MSAQ" name="getThumbnailJpegImageUrl">
+ <ownedParameter xmi:id="_xP87cPEoEd2YNfzDP2MSAQ" name="return" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_0Qn3IPEoEd2YNfzDP2MSAQ" name="id">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedParameter>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_YNI5EHmZEd2HRLLd0I1WrA"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_GfaEUHmfEd2HRLLd0I1WrA"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_KQqi-HjwEd2MH8DN-NMNrA"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_4RBZUKs-Ed2Nmqhc73l7SA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_xQ6YEvLFEd2tb4J5u_5Mmg" name="validateUpload">
+ <ownedParameter xmi:id="_m7XOoPLHEd2tb4J5u_5Mmg" name="return" type="__l5j0PLJEd2tb4J5u_5Mmg" direction="return"/>
+ <ownedParameter xmi:id="_sOqUQPLHEd2tb4J5u_5Mmg" name="id">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_sUnyUPLHEd2tb4J5u_5Mmg" name="postResponseCode">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Integer"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_salQYPLHEd2tb4J5u_5Mmg" name="postResponseContent">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedParameter>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_YNI5EHmZEd2HRLLd0I1WrA"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_GfaEUHmfEd2HRLLd0I1WrA"/>
+ <raisedException xmi:type="uml:Class" href="org.sharengo.utils.utils/src/main/uml/conception.uml#_KQqi-HjwEd2MH8DN-NMNrA"/>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_T9NPk_EnEd2YNfzDP2MSAQ" name="Dependency1" supplier="_O9ud2PEnEd2YNfzDP2MSAQ" client="_lfUrOPEWEd2YNfzDP2MSAQ"/>
+ <profileApplication xmi:id="_MIURkPWdEdyp25RO5nzQ4A">
+ <eAnnotations xmi:id="_MIURkfWdEdyp25RO5nzQ4A" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="pathmap://ACCELEO_PROFILES/Acceleo.Business.profile.uml#_81g14fWcEdyuYMHNZCqWBQ"/>
+ </eAnnotations>
+ <appliedProfile href="pathmap://ACCELEO_PROFILES/Acceleo.Business.profile.uml#_JX9fQPWcEdyuYMHNZCqWBQ"/>
+ </profileApplication>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_tBzGgPWREdy_h6Mk-BiOHw" name="daos">
+ <packagedElement xmi:type="uml:Class" xmi:id="_O9ud2PEnEd2YNfzDP2MSAQ" name="VpodMappingDao" clientDependency="_UfePI_EnEd2YNfzDP2MSAQ">
+ <ownedOperation xmi:id="_nMbbgPE9Ed2IhJnrV0PXeg" name="findByVpodId">
+ <ownedParameter xmi:id="_sN2G8PE9Ed2IhJnrV0PXeg" name="return" type="_rbNnmPEmEd2YNfzDP2MSAQ" direction="return"/>
+ <ownedParameter xmi:id="_uPVdkPE9Ed2IhJnrV0PXeg" name="vpodId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_Daw8YvKlEd2tb4J5u_5Mmg" name="findByStorageId">
+ <ownedParameter xmi:id="_LP5FkPKlEd2tb4J5u_5Mmg" name="return" type="_rbNnmPEmEd2YNfzDP2MSAQ" direction="return"/>
+ <ownedParameter xmi:id="_MrPCMPKlEd2tb4J5u_5Mmg" name="storageId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedParameter>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_UfePI_EnEd2YNfzDP2MSAQ" name="Dependency1" supplier="_rbNnmPEmEd2YNfzDP2MSAQ" client="_O9ud2PEnEd2YNfzDP2MSAQ"/>
+ <profileApplication xmi:id="_Mg9bEPWdEdyp25RO5nzQ4A">
+ <eAnnotations xmi:id="_Mg-CIPWdEdyp25RO5nzQ4A" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="pathmap://ACCELEO_PROFILES/Acceleo.Business.profile.uml#_81g14fWcEdyuYMHNZCqWBQ"/>
+ </eAnnotations>
+ <appliedProfile href="pathmap://ACCELEO_PROFILES/Acceleo.Business.profile.uml#_JX9fQPWcEdyuYMHNZCqWBQ"/>
+ </profileApplication>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="__PrMMPWREdy_h6Mk-BiOHw" name="dtos">
+ <packagedElement xmi:type="uml:Class" xmi:id="_PZiDWPEXEd2YNfzDP2MSAQ" name="VpodFileEntry">
+ <generalization xmi:id="_XS1h4_EXEd2YNfzDP2MSAQ">
+ <general xmi:type="uml:Class" href="http-storage-api/src/main/uml/conception.uml#_e_H4iO7wEd2ObcIAlNg7-w"/>
+ </generalization>
+ <ownedAttribute xmi:id="_s7YNQvE7Ed2YNfzDP2MSAQ" name="vpodId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_uuWXsPKkEd2tb4J5u_5Mmg" name="storageId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedAttribute>
+ </packagedElement>
+ <profileApplication xmi:id="_M2BsIPWdEdyp25RO5nzQ4A">
+ <eAnnotations xmi:id="_M2CTMPWdEdyp25RO5nzQ4A" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="pathmap://ACCELEO_PROFILES/Acceleo.Business.profile.uml#_81g14fWcEdyuYMHNZCqWBQ"/>
+ </eAnnotations>
+ <appliedProfile href="pathmap://ACCELEO_PROFILES/Acceleo.Business.profile.uml#_JX9fQPWcEdyuYMHNZCqWBQ"/>
+ </profileApplication>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_Cp0X0PWSEdy_h6Mk-BiOHw" name="entities">
+ <packagedElement xmi:type="uml:Class" xmi:id="_rbNnmPEmEd2YNfzDP2MSAQ" name="VpodMapping">
+ <ownedAttribute xmi:id="_w-wIovEmEd2YNfzDP2MSAQ" name="vpodId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="__5BIgvEmEd2YNfzDP2MSAQ" name="filename">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_F4uoMPEnEd2YNfzDP2MSAQ" name="state">
+ <type xmi:type="uml:Enumeration" href="http-storage-api/src/main/uml/conception.uml#_FboYJfEJEd2YNfzDP2MSAQ"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_Gm6j4vEnEd2YNfzDP2MSAQ" name="creationDate">
+ <type xmi:type="uml:DataType" href="pathmap://ACCELEO_PROFILES/Acceleo.Business.profile.uml#_unIxYASfEd2Qys9YSCxJaQ"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_7_3REvKkEd2tb4J5u_5Mmg" name="storageId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedAttribute>
+ </packagedElement>
+ <profileApplication xmi:id="_NQyVgPWdEdyp25RO5nzQ4A">
+ <eAnnotations xmi:id="_NQy8kPWdEdyp25RO5nzQ4A" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="pathmap://ACCELEO_PROFILES/Acceleo.Business.profile.uml#_81g14fWcEdyuYMHNZCqWBQ"/>
+ </eAnnotations>
+ <appliedProfile href="pathmap://ACCELEO_PROFILES/Acceleo.Business.profile.uml#_JX9fQPWcEdyuYMHNZCqWBQ"/>
+ </profileApplication>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_u2XgBPFLEd2IhJnrV0PXeg" name="Dependency1" client="_lfUrOPEWEd2YNfzDP2MSAQ">
+ <supplier xmi:type="uml:Class" href="../../../../vpod-api/src/main/uml/conception.uml#_-qf24LCvEd2UyNhL8QTcHA"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:DataType" xmi:id="__l5j0PLJEd2tb4J5u_5Mmg" name="Boolean"/>
+ <profileApplication xmi:id="_LmCD4PWdEdyp25RO5nzQ4A">
+ <eAnnotations xmi:id="_LmFHMPWdEdyp25RO5nzQ4A" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="pathmap://ACCELEO_PROFILES/Acceleo.Business.profile.uml#_81g14fWcEdyuYMHNZCqWBQ"/>
+ </eAnnotations>
+ <appliedProfile href="pathmap://ACCELEO_PROFILES/Acceleo.Business.profile.uml#_JX9fQPWcEdyuYMHNZCqWBQ"/>
+ </profileApplication>
+ </uml:Model>
+ <AcceleoBusiness:Service xmi:id="_oE4YMPEWEd2YNfzDP2MSAQ" base_Class="_lfUrOPEWEd2YNfzDP2MSAQ"/>
+ <AcceleoBusiness:Dto xmi:id="_Ries0PEXEd2YNfzDP2MSAQ" base_Class="_PZiDWPEXEd2YNfzDP2MSAQ"/>
+ <AcceleoBusiness:Entity xmi:id="_QuOLEPEnEd2YNfzDP2MSAQ" base_Class="_rbNnmPEmEd2YNfzDP2MSAQ"/>
+ <AcceleoBusiness:Dao xmi:id="_RwrtoPEnEd2YNfzDP2MSAQ" base_Class="_O9ud2PEnEd2YNfzDP2MSAQ"/>
+ <AcceleoBusiness:Remote xmi:id="_SRsEwPEuEd2YNfzDP2MSAQ" base_Operation="_2inkYvEnEd2YNfzDP2MSAQ"/>
+ <AcceleoBusiness:Remote xmi:id="_Sw-o0PEuEd2YNfzDP2MSAQ" base_Operation="_30k7gvEnEd2YNfzDP2MSAQ"/>
+ <AcceleoBusiness:Remote xmi:id="_TWOq8PEuEd2YNfzDP2MSAQ" base_Operation="_46dlgvEnEd2YNfzDP2MSAQ"/>
+ <AcceleoBusiness:Remote xmi:id="_T4zMgPEuEd2YNfzDP2MSAQ" base_Operation="_6Cb6MvEnEd2YNfzDP2MSAQ"/>
+ <AcceleoBusiness:Remote xmi:id="_UbOkIPEuEd2YNfzDP2MSAQ" base_Operation="_7PeVEvEnEd2YNfzDP2MSAQ"/>
+ <AcceleoBusiness:Remote xmi:id="_VFPxgPEuEd2YNfzDP2MSAQ" base_Operation="_-l6FYvEnEd2YNfzDP2MSAQ"/>
+ <AcceleoBusiness:Remote xmi:id="_VgqiMPEuEd2YNfzDP2MSAQ" base_Operation="__tR9IvEnEd2YNfzDP2MSAQ"/>
+ <AcceleoBusiness:Remote xmi:id="_V-UHgPEuEd2YNfzDP2MSAQ" base_Operation="_JGiykvEoEd2YNfzDP2MSAQ"/>
+ <AcceleoBusiness:Remote xmi:id="_WhLkAPEuEd2YNfzDP2MSAQ" base_Operation="_Ph0M4vEoEd2YNfzDP2MSAQ"/>
+ <AcceleoBusiness:Remote xmi:id="_XCtjwPEuEd2YNfzDP2MSAQ" base_Operation="_Q41qMvEoEd2YNfzDP2MSAQ"/>
+ <AcceleoBusiness:Remote xmi:id="_Bxjf4PLGEd2tb4J5u_5Mmg" base_Operation="_xQ6YEvLFEd2tb4J5u_5Mmg"/>
+ <AcceleoBusiness:Remote xmi:id="_CP8sEPLGEd2tb4J5u_5Mmg"/>
+</xmi:XMI>
Modified: trunk/eugene/pom.xml
===================================================================
--- trunk/eugene/pom.xml 2009-12-19 18:22:54 UTC (rev 771)
+++ trunk/eugene/pom.xml 2009-12-20 12:58:28 UTC (rev 772)
@@ -40,10 +40,10 @@
<artifactId>commons-lang</artifactId>
</dependency>
- <dependency>
+ <!--dependency>
<groupId>org.apache.ant</groupId>
<artifactId>ant</artifactId>
- </dependency>
+ </dependency-->
<dependency>
<groupId>dom4j</groupId>
Deleted: trunk/eugene/src/main/java/org/nuiton/eugene/GeneratorTask.java
===================================================================
--- trunk/eugene/src/main/java/org/nuiton/eugene/GeneratorTask.java 2009-12-19 18:22:54 UTC (rev 771)
+++ trunk/eugene/src/main/java/org/nuiton/eugene/GeneratorTask.java 2009-12-20 12:58:28 UTC (rev 772)
@@ -1,725 +0,0 @@
-/* *##%
- * EUGene :: EUGene
- * Copyright (C) 2004 - 2009 CodeLutin
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation, either version 3 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 Lesser Public License for more details.
- *
- * You should have received a copy of the GNU General Lesser Public
- * License along with this program. If not, see
- * <http://www.gnu.org/licenses/lgpl-3.0.html>.
- * ##%*/
-
-package org.nuiton.eugene;
-
-import java.io.File;
-import java.io.IOException;
-import java.lang.reflect.Constructor;
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.net.URLClassLoader;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Properties;
-import java.util.ServiceLoader;
-
-import javax.xml.parsers.ParserConfigurationException;
-import javax.xml.parsers.SAXParser;
-import javax.xml.parsers.SAXParserFactory;
-import javax.xml.transform.Transformer;
-import javax.xml.transform.TransformerException;
-import javax.xml.transform.TransformerFactory;
-import javax.xml.transform.URIResolver;
-import javax.xml.transform.stream.StreamResult;
-import javax.xml.transform.stream.StreamSource;
-
-import org.apache.tools.ant.BuildException;
-import org.apache.tools.ant.DirectoryScanner;
-import org.apache.tools.ant.Project;
-import org.apache.tools.ant.taskdefs.MatchingTask;
-import org.apache.tools.ant.types.Path;
-import org.nuiton.util.FileUtil;
-import org.nuiton.util.Resource;
-import org.nuiton.util.ZipUtil;
-import org.xml.sax.Attributes;
-import org.xml.sax.SAXException;
-import org.xml.sax.helpers.DefaultHandler;
-
-/**
- * Ant generator Task.
- *
- * Exemple d'utilisation dans ant :
- *
- * <pre>
- * <taskdef name="generator" classname="org.nuiton.eugene.GeneratorTask"
- * classpath="${compile.classpath}:${targetbuild}:${resources}" />
- *
- * <target name="generate" description="generate">
- * <generator srcdir="${modelDir}" destdir="${targetgen}"
- * resolver="org.nuiton.exemple.ResourceResolver"
- * templates="org.nuiton.example.JavaBeanGenerator"
- * properties="defaultPackage=org.nuiton,fullPackagePath=org.nuiton,extraPackages=org.nuiton"
- * classpath="${compile.classpath}:${targetbuild}:${resources}" />
- * </target>
- * </pre>
- *
- * Created: 14 janv. 2004
- *
- * @author Benjamin Poussin <poussin(a)codelutin.com> Copyright Code Lutin
- * @version $Revision$
- *
- * Mise a jour: $Date$ par :
- * $Author$
- */
-public class GeneratorTask extends MatchingTask { // GeneratorTask
-
- /** Ant classpath to use. */
- protected Path classpath;
-
- /** Template used in generation (comma separated). */
- protected String templates;
-
- /** Model directory. */
- protected File srcDir;
-
- /** Single model file. */
- protected File srcFile;
-
- /** Destination directory. */
- protected File destDir;
-
- /**
- * Transformation to do on model (comma separated).
- *
- * Values are : - object (transform into object model) - state (transform
- * into state model)
- */
- protected String transformations = "object";
-
- /** URI Resolver. */
- protected String resolver;
-
- /**
- * Additional generator properties.
- *
- * Values are : - fullPackagePath : full package path - extraPackages :
- * extra package path - defaultPackage (extra generated model files)
- */
- protected Properties properties = new Properties();
-
- /** Overwrite already existing generated files. */
- protected boolean overwrite;
-
- /** Encoding. Default to UTF-8. */
- protected String encoding = "UTF-8";
-
- /** Generation directory (default to 'build') */
- protected String buildDirectory = "build";
-
- /**
- * Set the optional classpath to the XSL processor
- *
- * @param classpath
- * the classpath to use when loading the XSL processor
- */
- public void setClasspath(Path classpath) {
- Path antDefaulClasspath = createClasspath();
- antDefaulClasspath.append(classpath);
- }
-
- /**
- * Set templates (fully-qualified-name) to use
- *
- * (comma-separated).
- *
- * @param templates
- * template to use.
- */
- public void setTemplates(String templates) {
- this.templates = templates;
- }
-
- /**
- * Transformation to do.
- *
- * Values are : - object (transform into object model) - state (transform
- * into state model)
- *
- * @param transformations
- * transformations
- */
- public void setTransformations(String transformations) {
- this.transformations = transformations;
- }
-
- /**
- * Set the optional classpath to the XSL processor
- *
- * @return a path instance to be configured by the Ant core.
- */
- protected Path createClasspath() {
- if (classpath == null) {
- classpath = new Path(getProject());
- }
- return classpath.createPath();
- }
-
- /**
- * Permet d'ajouter des properties. exemple: toto=1,package=org.nuiton
- *
- * @param properties
- * properties
- */
- public void setProperties(String properties) {
- String[] props = properties.split(",");
- for (String prop : props) {
- String[] pv = prop.split("=");
- this.properties.put(pv[0], pv[1]);
- }
- }
-
- /**
- * Set overwrite value.
- *
- * @param overwrite
- * overwrite value
- */
- public void setOverwrite(boolean overwrite) {
- this.overwrite = overwrite;
- }
-
- /**
- * Set encoding.
- *
- * @param encoding
- * encoding
- */
- public void setEncoding(String encoding) {
- this.encoding = encoding;
- }
-
- /**
- * Set source directory.
- *
- * @param srcDir
- * source directory
- */
- public void setSrcdir(File srcDir) {
- this.srcDir = srcDir;
- }
-
- /**
- * Set source file.
- *
- * @param srcFile
- * source file
- */
- public void setSrcfile(File srcFile) {
- this.srcFile = srcFile;
- }
-
- /**
- * Set destination directory
- *
- * @param destDir
- * destination directory
- */
- public void setDestdir(File destDir) {
- this.destDir = destDir;
- }
-
- /**
- * Set build directory.
- *
- * @param buildDirectory
- * build directory
- */
- public void setBuilddirectory(String buildDirectory) {
- this.buildDirectory = buildDirectory;
- }
-
- /**
- * Set URI resolver (FQN).
- *
- * @param resolver
- * uri resolver
- */
- public void setResolver(String resolver) {
- this.resolver = resolver;
- }
-
- @Override
- public void execute() throws BuildException {
-
- // check
- if (templates == null) {
- throw new BuildException("templates attribute must be set!",
- getLocation());
- }
-
- if (destDir == null) {
- throw new BuildException("destDir attribute must be set!",
- getLocation());
- }
-
- if (!destDir.isDirectory()) {
- throw new BuildException("destination directory \"" + destDir
- + "\" does not exist or is not a directory", getLocation());
- }
-
- if (srcFile == null && srcDir == null) {
- throw new BuildException(
- "srcFile or srcDir attribute must be set!", getLocation());
- }
-
- if (srcFile != null && !srcFile.isFile()) {
- throw new BuildException("src file \"" + srcFile
- + "\" does not exist or is not a file", getLocation());
- }
-
- String[] templateGenerators = templates.split(",");
- Template[] generators = new Template[templateGenerators.length];
- for (int i = 0; i < templateGenerators.length; i++) {
- String templateName = templateGenerators[i].trim();
- try {
- generators[i] = (Template) Class.forName(templateName)
- .newInstance();
- generators[i].setEncoding(encoding);
- generators[i].setProperties(properties);
- generators[i].setOverwrite(overwrite);
-
- } catch (ClassCastException e) {
- log("Generator don't herite Generator Class", e,
- Project.MSG_ERR);
- } catch (ClassNotFoundException e) {
- log("Unable to find generator" + templateName, e,
- Project.MSG_ERR);
- } catch (InstantiationException e) {
- log("Unable to instanciate template" + templateName, e,
- Project.MSG_ERR);
- } catch (IllegalAccessException e) {
- log("Unable to parse topia input file" + templateName, e,
- Project.MSG_ERR);
- }
- }
-
- if (srcFile != null) {
- // generate the source files
- doExecute(srcFile, destDir, generators);
- } else {
- DirectoryScanner scanner;
- scanner = getDirectoryScanner(srcDir);
-
- // Process all the files marked for styling
- String[] includedFilenames = scanner.getIncludedFiles();
- List<File> includedFiles = new ArrayList<File>(
- includedFilenames.length);
- for (int i = 0; i < includedFilenames.length; ++i) {
- includedFiles.add(new File(srcDir, includedFilenames[i]));
- }
- doExecute(includedFiles, destDir, generators);
- }
- }
-
- /**
- * Equivalent to
- * <tt>doExecute(new File[] { srcFile }, destDir, generators)</tt>.
- *
- * @param srcFile
- * file to apply generator to
- * @param destDir
- * destination directory
- * @param generators
- * generators to apply
- * @throws BuildException
- * if can't generate
- */
- protected void doExecute(File srcFile, File destDir, Template[] generators)
- throws BuildException {
- doExecute(Collections.singletonList(srcFile), destDir, generators);
- }
-
- /**
- * Execute generation on specified files.
- *
- * @param srcFiles
- * files to apply generator to
- * @param destDir
- * destination directory
- * @param generators
- * generators to apply
- * @throws BuildException
- * if can't generate
- */
- protected void doExecute(List<File> srcFiles, File destDir,
- Template[] generators) throws BuildException {
-
- // log classpath
- log("Using classpath : " + classpath);
-
- List<File> modelFiles = doConvertFiles(srcFiles, destDir);
-
- for (Template generator : generators) {
- if (generator != null) {
- File[] modelFilesArray = modelFiles.toArray(new File[0]);
- log("Applying " + generator.getClass().getSimpleName()
- + " on " + Arrays.toString(modelFilesArray),
- Project.MSG_INFO);
- generator.generate(modelFilesArray, destDir);
- }
- }
- }
-
- /**
- * Convert srcFiles and return only eugene models files.
- *
- * Do following convertions : - unzip archive (zipped files) - xslt
- * transformation (xmi files) - do nothing on model files
- *
- * @param srcFiles
- * @param destDir
- * @return model file list
- */
- protected List<File> doConvertFiles(List<File> srcFiles, File destDir) {
-
- List<File> result = new ArrayList<File>();
-
- // transform tranformations list
- String[] transformationsArray = transformations.split(",");
-
- for (File file : srcFiles) {
-
- File currentFile = file;
-
- // unzip if needed
- // after loop file is xmi
- if (isArchiveFile(currentFile)) {
-
- File unzipDirectory = new File(buildDirectory, "xmi");
- if (unzipDirectory.exists()) {
- unzipDirectory.mkdirs();
- }
- // log
- log("Unzip " + currentFile.getAbsolutePath() + " into "
- + unzipDirectory.getAbsolutePath(), Project.MSG_INFO);
- try {
- ZipUtil.uncompress(file, unzipDirectory);
- } catch (IOException e) {
- throw new BuildException("Error on unzip archive", e);
- }
-
- String xmiName = currentFile.getName().substring(0,
- currentFile.getName().lastIndexOf('.'))
- + ".xmi";
- currentFile = new File(unzipDirectory, xmiName);
- }
-
- // transform file if needed
- // after loop file is model (object, state, ui)
- if (isXmiFile(currentFile)) {
- String xmiVersion = getXmiVersion(currentFile);
-
- if (xmiVersion != null) {
-
- // model directory
- File outputDirectory = new File(buildDirectory, "models");
- outputDirectory.mkdirs();
- // single model name
- String modelName = currentFile.getName().substring(0,
- currentFile.getName().lastIndexOf('.'));
-
- // copy .properties file
- String propertyPath = currentFile.getParent();
- File propertyFile = new File(propertyPath, modelName
- + ".properties");
-
- if (propertyFile.exists()) {
- File propertyOutputFile = new File(outputDirectory,
- propertyFile.getName());
- try {
- FileUtil.copy(propertyFile, propertyOutputFile);
- } catch (IOException ioe) {
- log("Cannot copy .properties file", ioe,
- Project.MSG_ERR);
- }
- }
-
- for (String transformation : transformationsArray) {
-
- // object
- if (transformation.trim().equalsIgnoreCase("object")) {
- File outputFile = new File(outputDirectory,
- modelName + ".objectmodel");
- if (xmiVersion.equals("1.2")) {
- log("Apply XMI 1.2 to object model XSLT on "
- + currentFile.getAbsolutePath(),
- Project.MSG_INFO);
- executeXSLT(currentFile, outputFile,
- "xmi1.2ToObjectModel.xsl");
- } else if (xmiVersion.equals("2.1")) {
- log("Apply XMI 2.1 to object model XSLT on "
- + currentFile.getAbsolutePath(),
- Project.MSG_INFO);
- executeXSLT(currentFile, outputFile,
- "xmi2.1ToObjectModel.xsl");
- }
-
- // can have more than one model file
- // for one xmi
- result.add(outputFile);
- }
-
- // state
- else if (transformation.trim()
- .equalsIgnoreCase("state")) {
- File outputFile = new File(outputDirectory,
- modelName + ".statemodel");
- if (xmiVersion.equals("1.2")) {
- log("Apply XMI 1.2 to state model XSLT on "
- + currentFile.getAbsolutePath(),
- Project.MSG_INFO);
- executeXSLT(currentFile, outputFile,
- "xmi1.2ToStateModel.xsl");
- } else if (xmiVersion.equals("2.1")) {
- throw new BuildException(
- "State model transformation is not supported for xmi 2.1");
- }
-
- // can have more than one model file
- // for one xmi
- result.add(outputFile);
- }
- }
- } else {
- throw new BuildException(
- "Can't get xmi version from file : "
- + currentFile.getAbsolutePath());
- }
- }
-
- // others files
- // we can have model files or non model file
- else if (isModelFile(currentFile)) {
- result.add(currentFile);
- }
-
- }
-
- return result;
- }
-
- /**
- * Test if file is an archive.
- *
- * @param file
- * file to test
- * @return test result
- */
- protected boolean isArchiveFile(File file) {
- String fileName = file.getName();
-
- boolean result = fileName.endsWith(".zargo")
- || fileName.endsWith(".zuml");
- return result;
- }
-
- /**
- * Test if file is a xmi.
- *
- * @param file
- * file to test
- * @return test result
- */
- protected boolean isXmiFile(File file) {
- String fileName = file.getName();
-
- boolean result = fileName.endsWith(".uml") || fileName.endsWith(".xmi");
- return result;
- }
-
- /**
- * Test if file is a model
- *
- * @param file
- * file to test
- * @return test result
- */
- protected boolean isModelFile(File file) {
- String fileName = file.getName();
-
- boolean result = fileName.endsWith(".objectmodel")
- || fileName.endsWith(".statemodel");
- return result;
- }
-
- /**
- * Try to find xmi version on a file.
- *
- * @param xmiFile
- * file to inspect
- * @return version or null if version can't have been found
- */
- protected String getXmiVersion(File xmiFile) {
- String version = null;
-
- SAXParserFactory factory = SAXParserFactory.newInstance();
-
- try {
- SAXParser parser = factory.newSAXParser();
-
- XmiVersionHandler handler = new XmiVersionHandler();
- parser.parse(xmiFile, handler);
-
- version = handler.getVersion();
- } catch (ParserConfigurationException e) {
- log("Can't parse file as xmi", e, Project.MSG_DEBUG);
- } catch (SAXException e) {
- log("Can't parse file as xmi", e, Project.MSG_DEBUG);
- } catch (IOException e) {
- log("Can't parse file as xmi", e, Project.MSG_DEBUG);
- }
-
- return version;
- }
-
- /**
- * Sax handler to find xmi version into xmi document.
- */
- protected class XmiVersionHandler extends DefaultHandler {
-
- public String version = null;
-
- public XmiVersionHandler() {
- super();
- }
-
- public String getVersion() {
- return version;
- }
-
- @Override
- public void startElement(String uri, String localName, String qName,
- Attributes attributes) throws SAXException {
-
- if (qName.equals("XMI")) {
- version = attributes.getValue("xmi.version");
- log("XMI version found : " + version, Project.MSG_DEBUG);
- }
-
- if (version == null) {
- version = attributes.getValue("xmi:version");
- log("XMI version found : " + version, Project.MSG_DEBUG);
- }
-
- }
- }
-
- /**
- * Do XSLT transformation on given file using specific stylesheet.
- *
- * @param xmiFile
- * xmi file to transform
- * @param modelFile
- * result of transformation
- * @param stylesheet
- * stylesheet to use
- */
- protected void executeXSLT(File xmiFile, File modelFile, String stylesheet) {
-
- // Transformation XSL
- try {
-
- // transform ant classpath into
- // URLclassloader
- ClassLoader urlLoader = null;
- if (classpath != null) {
- String[] jars = classpath.list();
- URL[] jarsURL = new URL[jars.length];
- for (int i = 0; i < jars.length; i++) {
- jarsURL[i] = new File(jars[i]).toURI().toURL();
- }
- urlLoader = new URLClassLoader(jarsURL);
- } else {
- urlLoader = Thread.currentThread().getContextClassLoader();
- }
-
- // Load Transformer with service loader
- Iterator<TransformerFactory> itTransformerFactory = ServiceLoader
- .load(TransformerFactory.class, urlLoader).iterator();
- if (!itTransformerFactory.hasNext()) {
- throw new BuildException("No XSLT Transformer found");
- }
-
- TransformerFactory transformerFactory = itTransformerFactory.next();
- URL uxsl = Resource.getURL(stylesheet);
- StreamSource stylesource = new StreamSource(uxsl.openStream());
- Transformer transformer = transformerFactory
- .newTransformer(stylesource);
-
- if (properties.containsKey("fullPackagePath")) {
- transformer.setParameter("fullPackagePath", properties
- .getProperty("fullPackagePath"));
- }
-
- if (properties.containsKey("extraPackages")) {
- transformer.setParameter("extraPackages", properties
- .getProperty("extraPackages"));
- }
-
- if (resolver != null && !resolver.isEmpty()) {
- Class<?> clazz = (Class<?>) Class.forName(resolver, true,
- urlLoader);
- URIResolver tresolver = null;
-
- // Try to set the base using the constructor
- try {
- // Look for a constructor with a String parameter (base)
- Constructor<?> withBaseConstructor = clazz
- .getConstructor(String.class);
- // Set the xmi folder as the base
- String base = xmiFile.getParentFile().getAbsolutePath();
- // Instantiate
- tresolver = (URIResolver) withBaseConstructor
- .newInstance(base);
- } catch (Exception eee) {
- log("Unable to instantiate resolver with String parameter",
- eee, Project.MSG_WARN);
- }
-
- // If resolver is still not created, create it using the default
- // constructor
- if (tresolver == null) {
- tresolver = (URIResolver) clazz.newInstance();
- }
- transformer.setURIResolver(tresolver);
- }
-
- transformer.transform(new StreamSource(xmiFile.getAbsolutePath()),
- new StreamResult(modelFile.getAbsolutePath()));
- } catch (TransformerException e) {
- throw new BuildException("Transformation exception (xslt)", e);
- } catch (MalformedURLException e) {
- throw new BuildException("Invalid jar url", e);
- } catch (InstantiationException e) {
- throw new BuildException("Can't init resolver", e);
- } catch (IllegalAccessException e) {
- throw new BuildException("Can't access resolver", e);
- } catch (ClassNotFoundException e) {
- throw new BuildException("Can't find resolver", e);
- } catch (IOException e) {
- throw new BuildException("Error while trying to access stylesheet",
- e);
- }
- }
-
-} // GeneratorTask
Deleted: trunk/eugene/src/test/java/org/nuiton/eugene/GeneratorTaskTest.java
===================================================================
--- trunk/eugene/src/test/java/org/nuiton/eugene/GeneratorTaskTest.java 2009-12-19 18:22:54 UTC (rev 771)
+++ trunk/eugene/src/test/java/org/nuiton/eugene/GeneratorTaskTest.java 2009-12-20 12:58:28 UTC (rev 772)
@@ -1,213 +0,0 @@
-/* *##%
- * EUGene :: EUGene
- * Copyright (C) 2004 - 2009 CodeLutin
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation, either version 3 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 Lesser Public License for more details.
- *
- * You should have received a copy of the GNU General Lesser Public
- * License along with this program. If not, see
- * <http://www.gnu.org/licenses/lgpl-3.0.html>.
- * ##%*/
-
-package org.nuiton.eugene;
-
-import java.io.File;
-import java.io.IOException;
-
-import org.apache.tools.ant.BuildLogger;
-import org.apache.tools.ant.NoBannerLogger;
-import org.apache.tools.ant.Project;
-import org.junit.Assert;
-import org.junit.Test;
-import org.nuiton.util.FileUtil;
-import org.nuiton.util.ResourceResolver;
-
-/**
- * Test class for Generator Ant task.
- *
- * @author chatellier
- * @version $Revision$
- *
- * Last update : $Date$
- * By : $Author$
- */
-public class GeneratorTaskTest {
-
- /**
- * All test common task instanciation.
- *
- * @return task
- */
- protected GeneratorTask getGeneratorTask() {
- Project antProject = new Project();
-
- BuildLogger logger = new NoBannerLogger();
- logger.setMessageOutputLevel(Project.MSG_DEBUG);
- logger.setOutputPrintStream(System.out);
- logger.setErrorPrintStream(System.err);
- antProject.addBuildListener(logger);
-
- GeneratorTask generatorTask = new GeneratorTask();
- generatorTask.setProject(antProject);
- generatorTask.setTaskName("Eugene");
-
- return generatorTask;
- }
-
- /**
- * Test generation with ant task.
- *
- * @throws IOException
- */
- @Test
- public void testGenerateXMI12() throws IOException {
-
- GeneratorTask generatorTask = getGeneratorTask();
-
- /* Configuration */
- generatorTask.setOverwrite(true);
- generatorTask.setBuilddirectory("target/anttest");
- generatorTask.setTemplates(ObjectModelGenerator.class.getName());
- generatorTask.setSrcdir(new File("target/test-classes/xmi/1.2"));
- generatorTask.setEncoding("UTF-8");
-
- File destDirGen = FileUtil.createTempDirectory(
- "1.2-", "", new File("target", "ant"));
- destDirGen.mkdirs();
- generatorTask.setDestdir(destDirGen);
- generatorTask.setBuilddirectory(destDirGen.getAbsolutePath());
-
- generatorTask.setProperties("defaultPackage=org.nuiton");
-
- generatorTask.setIncludes("**/*.xmi");
-
- generatorTask.execute();
-
- // TODO Check result
-
- // remove created temp dir
- FileUtil.deleteRecursively(destDirGen);
- }
-
- /**
- * Test generation with ant task.
- *
- * @throws IOException
- */
- @Test
- public void testGenerateXMI21() throws IOException {
-
- GeneratorTask generatorTask = getGeneratorTask();
-
- /* Configuration */
- generatorTask.setOverwrite(true);
- generatorTask.setTemplates(ObjectModelGenerator.class.getName());
- generatorTask.setSrcdir(new File("target/test-classes/xmi/2.1"));
- generatorTask.setEncoding("UTF-8");
- generatorTask.setResolver(ResourceResolver.class.getName());
-
- File destDirGen = FileUtil.createTempDirectory(
- "2.1-", "", new File("target", "ant"));
- destDirGen.mkdirs();
- generatorTask.setDestdir(destDirGen);
- generatorTask.setBuilddirectory(destDirGen.getAbsolutePath());
-
- generatorTask.setProperties("defaultPackage=org.nuiton");
-
- generatorTask.setIncludes("**/*.uml");
-
- generatorTask.execute();
-
- // TODO Check result
-
- // remove created temp dir
- FileUtil.deleteRecursively(destDirGen);
- }
-
- /**
- * Test generation with ant task.
- *
- * @throws IOException
- */
- @Test
- public void testGenerateXMIObjectModel() throws IOException {
-
- GeneratorTask generatorTask = getGeneratorTask();
-
- /* Configuration */
- generatorTask.setOverwrite(true);
- generatorTask.setTemplates(ObjectModelGenerator.class.getName());
- generatorTask.setSrcdir(new File("target/test-classes/models/"));
- generatorTask.setEncoding("UTF-8");
-
- File destDirGen = FileUtil.createTempDirectory(
- "objectmodel-", "", new File("target", "ant"));
- destDirGen.mkdirs();
- generatorTask.setDestdir(destDirGen);
- generatorTask.setBuilddirectory(destDirGen.getAbsolutePath());
-
- generatorTask.setProperties("defaultPackage=org.nuiton");
-
- generatorTask.setIncludes("**/*.objectmodel");
-
- generatorTask.execute();
-
- // TODO Check result
-
- // remove created temp dir
- FileUtil.deleteRecursively(destDirGen);
- }
-
- /**
- * Test generation with ant task.
- *
- * @throws IOException
- */
- @Test
- public void testCopyPropertiesFile() throws IOException {
-
- GeneratorTask generatorTask = getGeneratorTask();
-
- /* Configuration */
- generatorTask.setOverwrite(true);
- generatorTask.setTemplates(ObjectModelGenerator.class.getName());
- generatorTask.setSrcdir(new File("target/test-classes/xmi/2.1"));
- generatorTask.setEncoding("UTF-8");
- generatorTask.setResolver(ResourceResolver.class.getName());
-
- File destDirGen = FileUtil.createTempDirectory(
- "objectmodel-", "", new File("target", "ant"));
- destDirGen.mkdirs();
- generatorTask.setDestdir(destDirGen);
- generatorTask.setBuilddirectory(destDirGen.getAbsolutePath());
-
- generatorTask.setProperties("defaultPackage=org.nuiton");
-
- generatorTask.setIncludes("**/TestXMI21.uml");
-
- generatorTask.execute();
-
- File modelFolder = new File(destDirGen, "models");
- String[] folderFiles = modelFolder.list();
- Assert.assertEquals(2, folderFiles.length);
- for (String filePath : folderFiles) {
- File file = new File(filePath);
- if (!"TestXMI21.objectmodel".equals(file.getName())
- && !"TestXMI21.properties".equals(file.getName())) {
- Assert.fail("Unexpected file: " + filePath +
- ". Should be TestXMI21.objectmodel or TestXMI21.properties");
- }
- }
-
- // remove created temp dir
- FileUtil.deleteRecursively(destDirGen);
- }
-}
Modified: trunk/maven-eugene-plugin/pom.xml
===================================================================
--- trunk/maven-eugene-plugin/pom.xml 2009-12-19 18:22:54 UTC (rev 771)
+++ trunk/maven-eugene-plugin/pom.xml 2009-12-20 12:58:28 UTC (rev 772)
@@ -24,12 +24,6 @@
<artifactId>eugene</artifactId>
<version>${project.version}</version>
<scope>compile</scope>
- <exclusions>
- <exclusion>
- <groupId>org.apache.ant</groupId>
- <artifactId>ant</artifactId>
- </exclusion>
- </exclusions>
</dependency>
<dependency>
Modified: trunk/pom.xml
===================================================================
--- trunk/pom.xml 2009-12-19 18:22:54 UTC (rev 771)
+++ trunk/pom.xml 2009-12-20 12:58:28 UTC (rev 772)
@@ -18,6 +18,7 @@
<modules>
<module>eugene</module>
+ <module>ant-eugene-task</module>
<module>maven-eugene-plugin</module>
</modules>
1
0
Author: tchemit
Date: 2009-12-19 19:22:54 +0100 (Sat, 19 Dec 2009)
New Revision: 771
Modified:
trunk/maven-eugene-plugin/src/site/site_en.xml
trunk/maven-eugene-plugin/src/site/site_fr.xml
Log:
update doc
Modified: trunk/maven-eugene-plugin/src/site/site_en.xml
===================================================================
--- trunk/maven-eugene-plugin/src/site/site_en.xml 2009-12-19 18:03:08 UTC (rev 770)
+++ trunk/maven-eugene-plugin/src/site/site_en.xml 2009-12-19 18:22:54 UTC (rev 771)
@@ -21,6 +21,8 @@
<menu name="User">
<item href="index.html" name="Index"/>
<item name="Goals" href="plugin-info.html">
+ <item name="smart-generate" href="smart-generate-mojo.html"/>
+ <item name="available-data" href="available-data-mojo.html"/>
<item name="zargo2xmi" href="zargo2xmi-mojo.html"/>
<item name="xmi2statemodel" href="xmi2statemodel-mojo.html"/>
<item name="xmi2objectmodel" href="xmi2objectmodel-mojo.html"/>
Modified: trunk/maven-eugene-plugin/src/site/site_fr.xml
===================================================================
--- trunk/maven-eugene-plugin/src/site/site_fr.xml 2009-12-19 18:03:08 UTC (rev 770)
+++ trunk/maven-eugene-plugin/src/site/site_fr.xml 2009-12-19 18:22:54 UTC (rev 771)
@@ -21,6 +21,8 @@
<menu name="Utilisateur">
<item href="index.html" name="Accueil"/>
<item name="Goals" href="plugin-info.html">
+ <item name="smart-generate" href="smart-generate-mojo.html"/>
+ <item name="available-data" href="available-data-mojo.html"/>
<item name="zargo2xmi" href="zargo2xmi-mojo.html"/>
<item name="xmi2statemodel" href="xmi2statemodel-mojo.html"/>
<item name="xmi2objectmodel" href="xmi2objectmodel-mojo.html"/>
1
0
Dec. 19, 2009
Author: tchemit
Date: 2009-12-19 19:03:08 +0100 (Sat, 19 Dec 2009)
New Revision: 770
Added:
trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/AvailableDataMojo.java
Modified:
trunk/eugene/src/main/java/org/nuiton/eugene/models/object/ObjectModel.java
trunk/eugene/src/main/java/org/nuiton/eugene/models/state/StateModel.java
trunk/maven-eugene-plugin/src/it/smart-generate/all/pom.xml
trunk/maven-eugene-plugin/src/it/smart-generate/generators/pom.xml
trunk/maven-eugene-plugin/src/it/smart-generate/only-zargo-xmi/pom.xml
trunk/maven-eugene-plugin/src/it/smart-generate/only-zargo/pom.xml
trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/SmartGenerateMojo.java
Log:
- add AvailableData goal to obtain usables datas (reader, writer, templates, model types,...)
- add a simplified inputs property configuration (ex : <inputs>zargo</inputs>) against no array notation (ex : <inputs><input>zargo</input></inputs>)
Modified: trunk/eugene/src/main/java/org/nuiton/eugene/models/object/ObjectModel.java
===================================================================
--- trunk/eugene/src/main/java/org/nuiton/eugene/models/object/ObjectModel.java 2009-12-19 14:46:11 UTC (rev 769)
+++ trunk/eugene/src/main/java/org/nuiton/eugene/models/object/ObjectModel.java 2009-12-19 18:03:08 UTC (rev 770)
@@ -39,8 +39,12 @@
* by : $Author$
*/
public interface ObjectModel extends Model {
-
/**
+ * Plexus role-hint
+ */
+ String NAME = "objectmodel";
+
+ /**
* Returns all classifiers defined in this model. (Except innerClasses)
* @see ObjectModelClassifier
*
Modified: trunk/eugene/src/main/java/org/nuiton/eugene/models/state/StateModel.java
===================================================================
--- trunk/eugene/src/main/java/org/nuiton/eugene/models/state/StateModel.java 2009-12-19 14:46:11 UTC (rev 769)
+++ trunk/eugene/src/main/java/org/nuiton/eugene/models/state/StateModel.java 2009-12-19 18:03:08 UTC (rev 770)
@@ -35,8 +35,11 @@
* By : $Author$
*/
public interface StateModel extends Model {
-
/**
+ * Plexus role-hint
+ */
+ String NAME = "statemodel";
+ /**
* Return the collection of charts
* @return collection of charts
*/
Modified: trunk/maven-eugene-plugin/src/it/smart-generate/all/pom.xml
===================================================================
--- trunk/maven-eugene-plugin/src/it/smart-generate/all/pom.xml 2009-12-19 14:46:11 UTC (rev 769)
+++ trunk/maven-eugene-plugin/src/it/smart-generate/all/pom.xml 2009-12-19 18:03:08 UTC (rev 770)
@@ -83,9 +83,7 @@
<id>Zargo to java</id>
<phase>generate-test-sources</phase>
<configuration>
- <inputs>
- <input>zargo:src/test/zargo:*.zargo</input>
- </inputs>
+ <inputs>zargo:src/test/zargo:*.zargo</inputs>
<outputDirectory>target/generated-sources-zargo2Java</outputDirectory>
</configuration>
<goals>
@@ -96,9 +94,7 @@
<id>Xmi to java</id>
<phase>generate-test-sources</phase>
<configuration>
- <inputs>
- <input>xmi</input>
- </inputs>
+ <inputs>xmi</inputs>
<outputDirectory>target/generated-sources-xmi2Java</outputDirectory>
</configuration>
<goals>
@@ -109,9 +105,7 @@
<id>Model to java</id>
<phase>generate-test-sources</phase>
<configuration>
- <inputs>
- <input>model:target/generated-sources-zargo2Java/test-models:topiatest.objectmodel</input>
- </inputs>
+ <inputs>model:target/generated-sources-zargo2Java/test-models:topiatest.objectmodel</inputs>
<outputDirectory>target/generated-sources-objectModel2Java</outputDirectory>
</configuration>
<goals>
Modified: trunk/maven-eugene-plugin/src/it/smart-generate/generators/pom.xml
===================================================================
--- trunk/maven-eugene-plugin/src/it/smart-generate/generators/pom.xml 2009-12-19 14:46:11 UTC (rev 769)
+++ trunk/maven-eugene-plugin/src/it/smart-generate/generators/pom.xml 2009-12-19 18:03:08 UTC (rev 770)
@@ -93,9 +93,7 @@
<id>Test Regression Generator</id>
<phase>generate-test-sources</phase>
<configuration>
- <inputs>
- <input>model:src/test/models:dtotest.objectmodel</input>
- </inputs>
+ <inputs>model:src/test/models:dtotest.objectmodel</inputs>
<templates>org.nuiton.eugene.test.generator.BeanGenerator</templates>
</configuration>
<goals>
@@ -106,9 +104,7 @@
<id>Test Bean Transformer</id>
<phase>generate-test-sources</phase>
<configuration>
- <inputs>
- <input>model:src/test/models:dtotest2.objectmodel</input>
- </inputs>
+ <inputs>model:src/test/models:dtotest2.objectmodel</inputs>
<templates>org.nuiton.eugene.test.generator.BeanTransformer</templates>
</configuration>
<goals>
@@ -119,9 +115,7 @@
<id>Test Java Generator</id>
<phase>generate-test-sources</phase>
<configuration>
- <inputs>
- <input>model</input>
- </inputs>
+ <inputs>model</inputs>
<properties>
<propertie>
<key>reader</key>
Modified: trunk/maven-eugene-plugin/src/it/smart-generate/only-zargo/pom.xml
===================================================================
--- trunk/maven-eugene-plugin/src/it/smart-generate/only-zargo/pom.xml 2009-12-19 14:46:11 UTC (rev 769)
+++ trunk/maven-eugene-plugin/src/it/smart-generate/only-zargo/pom.xml 2009-12-19 18:03:08 UTC (rev 770)
@@ -67,9 +67,7 @@
<id>Zargo to xmi</id>
<phase>generate-sources</phase>
<configuration>
- <inputs>
- <input>zargo</input>
- </inputs>
+ <inputs>zargo</inputs>
<outputDirectory>target/generated-sources-xmi</outputDirectory>
</configuration>
<goals>
@@ -80,9 +78,7 @@
<id>Zargo to xmi 2</id>
<phase>generate-sources</phase>
<configuration>
- <inputs>
- <input>src/main/zargo:**/*.zargo</input>
- </inputs>
+ <inputs>src/main/zargo:**/*.zargo</inputs>
<outputDirectory>target/generated-sources-xmi2</outputDirectory>
</configuration>
<goals>
Modified: trunk/maven-eugene-plugin/src/it/smart-generate/only-zargo-xmi/pom.xml
===================================================================
--- trunk/maven-eugene-plugin/src/it/smart-generate/only-zargo-xmi/pom.xml 2009-12-19 14:46:11 UTC (rev 769)
+++ trunk/maven-eugene-plugin/src/it/smart-generate/only-zargo-xmi/pom.xml 2009-12-19 18:03:08 UTC (rev 770)
@@ -69,9 +69,7 @@
<id>Zargo to object model</id>
<phase>generate-sources</phase>
<configuration>
- <inputs>
- <input>zargo:src/main/zargo:*.zargo</input>
- </inputs>
+ <inputs>zargo:src/main/zargo:*.zargo</inputs>
<outputDirectory>target/generated-sources-zargo2ObjectModel</outputDirectory>
</configuration>
<goals>
@@ -83,9 +81,7 @@
<phase>generate-sources</phase>
<configuration>
<modelType>statemodel</modelType>
- <inputs>
- <input>zargo:src/main/zargo:*.zargo</input>
- </inputs>
+ <inputs>zargo:src/main/zargo:*.zargo</inputs>
<outputDirectory>target/generated-sources-zargo2StateModel</outputDirectory>
</configuration>
<goals>
@@ -96,9 +92,7 @@
<id>Xmi to object model</id>
<phase>generate-sources</phase>
<configuration>
- <inputs>
- <input>xmi</input>
- </inputs>
+ <inputs>xmi</inputs>
<outputDirectory>target/generated-sources-xmi2ObjectModel</outputDirectory>
</configuration>
<goals>
@@ -110,9 +104,7 @@
<phase>generate-sources</phase>
<configuration>
<modelType>statemodel</modelType>
- <inputs>
- <input>xmi</input>
- </inputs>
+ <inputs>xmi</inputs>
<outputDirectory>target/generated-sources-xmi2StateModel</outputDirectory>
</configuration>
<goals>
Added: trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/AvailableDataMojo.java
===================================================================
--- trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/AvailableDataMojo.java (rev 0)
+++ trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/AvailableDataMojo.java 2009-12-19 18:03:08 UTC (rev 770)
@@ -0,0 +1,204 @@
+/*
+ * *##%
+ * EUGene :: Maven plugin
+ * Copyright (C) 2006 - 2009 CodeLutin
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation, either version 3 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 Lesser Public License for more details.
+ *
+ * You should have received a copy of the GNU General Lesser Public
+ * License along with this program. If not, see
+ * <http://www.gnu.org/licenses/lgpl-3.0.html>.
+ * ##%*
+ */
+package org.nuiton.eugene.plugin;
+
+import org.apache.commons.lang.StringUtils;
+import org.apache.maven.plugin.AbstractMojo;
+import org.apache.maven.plugin.MojoExecutionException;
+import org.apache.maven.plugin.MojoFailureException;
+import org.nuiton.eugene.ModelReader;
+import org.nuiton.eugene.Template;
+import org.nuiton.eugene.models.Model;
+import org.nuiton.eugene.models.object.ObjectModel;
+import org.nuiton.eugene.writer.ChainedFileWriter;
+
+import java.util.Arrays;
+import java.util.EnumSet;
+import java.util.Map;
+import java.util.Set;
+
+/**
+ * Obtain the list of some known data informations.
+ * <p/>
+ * Use the {@code dataTypes} property to specify a specific data type to use (otherwise
+ * will display all known data types).
+ * <p/>
+ * User: chemit
+ * Date: 24 nov. 2009
+ * Time: 00:22:37
+ *
+ * @goal available-data
+ * @requiresProject true
+ * @requiresDirectInvocation true
+ * @requiresDependencyResolution test
+ * @since 2.0.0
+ */
+public class AvailableDataMojo extends AbstractMojo {
+
+ /**
+ * Data type to display (let empty to see all datas).
+ * Can specify more than one separated by comma.
+ * <p/>
+ * Available types are :
+ * <pre>
+ * modeltype,
+ * modelreader,
+ * modeltemplate,
+ * writer
+ * </pre>
+ * <p/>
+ * <b>Note:</b> Let empty to display all data types.
+ *
+ * @parameter expression="${dataTypes}" default-value=""
+ * @since 2.0.0
+ */
+ protected String dataTypes;
+
+ /**
+ * All available models (obtain by plexus, keys are plexus roles, values are a
+ * instance of corresponding model).
+ *
+ * @component role="org.nuiton.eugene.models.Model"
+ */
+ protected Map<String, Model> modelTypes;
+ /**
+ * All available writers introspects via plexus
+ *
+ * @component role="org.nuiton.eugene.ModelReader"
+ */
+ protected Map<String, ModelReader<?>> modelReaders;
+ /**
+ * All available templates introspects via plexus
+ *
+ * @component role="org.nuiton.eugene.Template"
+ */
+ protected Map<String, Template<?>> modelTemplates;
+ /**
+ * All available writers introspects via plexus
+ *
+ * @component role="org.nuiton.eugene.writer.ChainedFileWriter"
+ */
+ protected Map<String, ChainedFileWriter> writers;
+
+ @Override
+ public void execute() throws MojoExecutionException, MojoFailureException {
+ StringBuilder buffer = new StringBuilder();
+ dataTypes = dataTypes == null ? "" : dataTypes.trim();
+
+ Set<AvailableData> safeDataTypes;
+
+ if (StringUtils.isEmpty(dataTypes)) {
+ // treate all data types
+ safeDataTypes = EnumSet.allOf(AvailableData.class);
+
+ if (getLog().isDebugEnabled()) {
+ getLog().debug("will use all data types : " + safeDataTypes);
+ }
+
+ } else {
+
+ safeDataTypes = EnumSet.noneOf(AvailableData.class);
+ for (String s : dataTypes.split(",")) {
+ s = s.trim().toLowerCase();
+ try {
+ AvailableData data = AvailableData.valueOf(s);
+ if (getLog().isDebugEnabled()) {
+ getLog().debug("will use data type " + data);
+ }
+ safeDataTypes.add(data);
+ } catch (IllegalArgumentException e) {
+ getLog().warn("does not know data type : " + s + " use one of " + Arrays.toString(AvailableData.values()));
+ }
+ }
+ }
+
+ for (AvailableData data : safeDataTypes) {
+ appendData(data, buffer);
+ }
+
+ getLog().info("Get datas for data types : " + safeDataTypes + buffer.toString());
+ }
+
+ protected void appendData(AvailableData data, StringBuilder buffer) {
+
+ Map<String, ?> map = data.getData(this);
+
+ int size = map.size();
+ String dataType = data.name();
+ if (size == 0) {
+ buffer.append("\nNo available ").append(dataType).append(".");
+ } else if (size == 1) {
+ buffer.append("\nFound one ").append(dataType).append(" : ");
+ } else {
+ buffer.append("\nFound ").append(size).append(" ").append(dataType).append("s : ");
+ }
+ for (Map.Entry<String, ?> e : map.entrySet()) {
+ String name = e.getKey();
+ Object value = e.getValue();
+ buffer.append("\n [").append(name).append("] with implementation '").append(data.toString(value)).append("'");
+ }
+ }
+
+ enum AvailableData {
+ modeltype {
+ @Override
+ public Map<String, ?> getData(AvailableDataMojo mojo) {
+ return mojo.modelTypes;
+ }
+ },
+ writer {
+ @Override
+ public Map<String, ?> getData(AvailableDataMojo mojo) {
+ return mojo.writers;
+ }
+ @Override
+ String toString(Object data) {
+ ChainedFileWriter w = (ChainedFileWriter) data;
+ StringBuilder b = new StringBuilder(super.toString(data));
+ b.append("\n").append(" inputProtocol : ").append(w.getInputProtocol());
+ b.append("\n").append(" outputProtocol : ").append(w.getOutputProtocol(ObjectModel.class));
+ b.append("\n").append(" defaultIncludes : ").append(w.getDefaultIncludes());
+ b.append("\n").append(" defaultInputDirectory : ").append(w.getDefaultInputDirectory());
+ b.append("\n").append(" defaultTestInputDirectory : ").append(w.getDefaultTestInputDirectory());
+ return b.toString();
+ }
+ },
+ modelreader {
+ @Override
+ public Map<String, ?> getData(AvailableDataMojo mojo) {
+ return mojo.modelReaders;
+ }
+ },
+ modeltemplate {
+ @Override
+ public Map<String, ?> getData(AvailableDataMojo mojo) {
+ return mojo.modelTemplates;
+ }
+ };
+
+ abstract Map<String, ?> getData(AvailableDataMojo mojo);
+
+ String toString(Object data) {
+ return data.getClass().getName();
+ }
+ }
+
+}
\ No newline at end of file
Property changes on: trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/AvailableDataMojo.java
___________________________________________________________________
Added: svn:keywords
+ "Author Date Id Revision HeadURL
Modified: trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/SmartGenerateMojo.java
===================================================================
--- trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/SmartGenerateMojo.java 2009-12-19 14:46:11 UTC (rev 769)
+++ trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/SmartGenerateMojo.java 2009-12-19 18:03:08 UTC (rev 770)
@@ -87,6 +87,11 @@
* </inputs>
* </pre>
*
+ * <b>Note:</b> If your using a single input, you can just write :
+ * <pre>
+ * <inputs>zargo</inputs>
+ * </pre>
+ *
* @parameter expression="${eugene.inputs}"
* @required
* @since 2.0.0
@@ -282,6 +287,9 @@
@Override
protected boolean init() throws Exception {
+
+ modelType = modelType.trim().toLowerCase();
+
// on recupere le fqn du model à traiter via le container plexus (plus pratique dans ce cas où on veut
// pouvoir associé un nom à un type de service).
Model model = _models.get(modelType.trim().toLowerCase());
@@ -416,6 +424,26 @@
}
}
+ /**
+ * Add a single input to the {@link #inputs} property.
+ *
+ * <b>Note:</b> This is a convinient way to allow in pom to write
+ * <pre>
+ * <inputs>zargo</inputs>
+ * </pre>
+ * in stead of array notation :
+ * <pre>
+ * <inputs>
+ * <input>zargo:</input>
+ * </inputs>
+ * </pre>
+ *
+ * @param inputs unique input to add
+ */
+ public void setInputs(String inputs) {
+ this.inputs = new String[]{inputs};
+ }
+
@Override
public File getOutputDirectory() {
return outputDirectory;
1
0
r769 - in trunk: eugene/src/main/java/org/nuiton/eugene/writer maven-eugene-plugin/src/it/smart-generate/all maven-eugene-plugin/src/it/smart-generate/generators maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/writer
by tchemit@users.nuiton.org Dec. 19, 2009
by tchemit@users.nuiton.org Dec. 19, 2009
Dec. 19, 2009
Author: tchemit
Date: 2009-12-19 15:46:11 +0100 (Sat, 19 Dec 2009)
New Revision: 769
Modified:
trunk/eugene/src/main/java/org/nuiton/eugene/writer/AbstractChainedFileWriter.java
trunk/eugene/src/main/java/org/nuiton/eugene/writer/ChainedFileWriterConfiguration.java
trunk/eugene/src/main/java/org/nuiton/eugene/writer/DefaultChainedWriterEngine.java
trunk/maven-eugene-plugin/src/it/smart-generate/all/pom.xml
trunk/maven-eugene-plugin/src/it/smart-generate/all/verify.groovy
trunk/maven-eugene-plugin/src/it/smart-generate/generators/pom.xml
trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/SmartGenerateMojo.java
trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/writer/BaseXmiToChainedFileWriter.java
trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/writer/ModelChainedFileWriter.java
Log:
commons properties for Chainedwriter are in configuration (modelType, classLoader) + fix states issues
Modified: trunk/eugene/src/main/java/org/nuiton/eugene/writer/AbstractChainedFileWriter.java
===================================================================
--- trunk/eugene/src/main/java/org/nuiton/eugene/writer/AbstractChainedFileWriter.java 2009-12-18 13:33:25 UTC (rev 768)
+++ trunk/eugene/src/main/java/org/nuiton/eugene/writer/AbstractChainedFileWriter.java 2009-12-19 14:46:11 UTC (rev 769)
@@ -99,6 +99,7 @@
public void clear() {
entries.clear();
properties.clear();
+ previousWriter = nextWriter = null;
}
@Override
Modified: trunk/eugene/src/main/java/org/nuiton/eugene/writer/ChainedFileWriterConfiguration.java
===================================================================
--- trunk/eugene/src/main/java/org/nuiton/eugene/writer/ChainedFileWriterConfiguration.java 2009-12-18 13:33:25 UTC (rev 768)
+++ trunk/eugene/src/main/java/org/nuiton/eugene/writer/ChainedFileWriterConfiguration.java 2009-12-19 14:46:11 UTC (rev 769)
@@ -39,6 +39,11 @@
/**
* @return the type of model used
*/
+ String getModelType();
+
+ /**
+ * @return the type of model used
+ */
Class<? extends Model> getModelClass();
/**
@@ -96,4 +101,10 @@
*/
Map<String, Object> getProperties();
+ /**
+ *
+ * @return the classloader to use to seek for resources
+ */
+ ClassLoader getClassLoader();
+
}
Modified: trunk/eugene/src/main/java/org/nuiton/eugene/writer/DefaultChainedWriterEngine.java
===================================================================
--- trunk/eugene/src/main/java/org/nuiton/eugene/writer/DefaultChainedWriterEngine.java 2009-12-18 13:33:25 UTC (rev 768)
+++ trunk/eugene/src/main/java/org/nuiton/eugene/writer/DefaultChainedWriterEngine.java 2009-12-19 14:46:11 UTC (rev 769)
@@ -184,6 +184,9 @@
selectedWriters = null;
}
if (availableWriters != null) {
+ for (ChainedFileWriter writer : availableWriters) {
+ writer.clear();
+ }
availableWriters.clear();
availableWriters = null;
}
Modified: trunk/maven-eugene-plugin/src/it/smart-generate/all/pom.xml
===================================================================
--- trunk/maven-eugene-plugin/src/it/smart-generate/all/pom.xml 2009-12-18 13:33:25 UTC (rev 768)
+++ trunk/maven-eugene-plugin/src/it/smart-generate/all/pom.xml 2009-12-19 14:46:11 UTC (rev 769)
@@ -105,6 +105,19 @@
<goal>smart-generate</goal>
</goals>
</execution>
+ <execution>
+ <id>Model to java</id>
+ <phase>generate-test-sources</phase>
+ <configuration>
+ <inputs>
+ <input>model:target/generated-sources-zargo2Java/test-models:topiatest.objectmodel</input>
+ </inputs>
+ <outputDirectory>target/generated-sources-objectModel2Java</outputDirectory>
+ </configuration>
+ <goals>
+ <goal>smart-generate</goal>
+ </goals>
+ </execution>
</executions>
<dependencies>
<dependency>
Modified: trunk/maven-eugene-plugin/src/it/smart-generate/all/verify.groovy
===================================================================
--- trunk/maven-eugene-plugin/src/it/smart-generate/all/verify.groovy 2009-12-18 13:33:25 UTC (rev 768)
+++ trunk/maven-eugene-plugin/src/it/smart-generate/all/verify.groovy 2009-12-19 14:46:11 UTC (rev 769)
@@ -33,5 +33,15 @@
assert new File(basedir, 'target/generated-sources-xmi2Java/test-java/org/nuiton/topiatest/beangen2/Roue.java').exists();
assert new File(basedir, 'target/generated-sources-xmi2Java/test-java/org/nuiton/topiatest/beangen2/Siege.java').exists();
+// ObjectModel to java
+
+assert new File(basedir, 'target/generated-sources-objectModel2Java').exists();
+
+assert new File(basedir, 'target/generated-sources-objectModel2Java/test-java').exists();
+assert new File(basedir, 'target/generated-sources-objectModel2Java/test-java/org/nuiton/topiatest/beangen').exists();
+assert new File(basedir, 'target/generated-sources-objectModel2Java/test-java/org/nuiton/topiatest/beangen/Voiture.java').exists();
+assert new File(basedir, 'target/generated-sources-objectModel2Java/test-java/org/nuiton/topiatest/beangen/Roue.java').exists();
+assert new File(basedir, 'target/generated-sources-objectModel2Java/test-java/org/nuiton/topiatest/beangen/Siege.java').exists();
+
return true;
Modified: trunk/maven-eugene-plugin/src/it/smart-generate/generators/pom.xml
===================================================================
--- trunk/maven-eugene-plugin/src/it/smart-generate/generators/pom.xml 2009-12-18 13:33:25 UTC (rev 768)
+++ trunk/maven-eugene-plugin/src/it/smart-generate/generators/pom.xml 2009-12-19 14:46:11 UTC (rev 769)
@@ -86,6 +86,7 @@
<configuration>
<testPhase>true</testPhase>
<defaultPackage>org.nuiton.eugene.test</defaultPackage>
+ <generatedPackages>org.nuiton</generatedPackages>
</configuration>
<executions>
<execution>
@@ -102,25 +103,6 @@
</goals>
</execution>
<execution>
- <id>Test Java Generator</id>
- <phase>generate-test-sources</phase>
- <configuration>
- <inputs>
- <input>model</input>
- </inputs>
- <properties>
- <propertie>
- <key>reader</key>
- <value>org.nuiton.eugene.test.generator.TestReader</value>
- </propertie>
- </properties>
- <templates>org.nuiton.eugene.java.JavaGenerator</templates>
- </configuration>
- <goals>
- <goal>smart-generate</goal>
- </goals>
- </execution>
- <execution>
<id>Test Bean Transformer</id>
<phase>generate-test-sources</phase>
<configuration>
@@ -133,45 +115,26 @@
<goal>smart-generate</goal>
</goals>
</execution>
- </executions>
- <!--executions>
- <execution>
- <id>Test Regression Generator</id>
+ <!--execution>
+ <id>Test Java Generator</id>
<phase>generate-test-sources</phase>
<configuration>
<inputs>
- <input>model:src/main/models/dtotest.objectmodel</input>
+ <input>model</input>
</inputs>
- <includes>dtotest.objectmodel</includes>
- <templates>org.nuiton.eugene.test.generator.BeanGenerator</templates>
+ <properties>
+ <propertie>
+ <key>reader</key>
+ <value>org.nuiton.eugene.test.generator.TestReader</value>
+ </propertie>
+ </properties>
+ <templates>org.nuiton.eugene.java.JavaGenerator</templates>
</configuration>
<goals>
<goal>smart-generate</goal>
</goals>
- </execution>
- <execution>
- <id>Test Java Generator</id>
- <phase>generate-test-sources</phase>
- <configuration>
- <reader>org.nuiton.eugene.test.generator.TestReader</reader>
- <templates>org.nuiton.eugene.java.JavaGenerator</templates>
- </configuration>
- <goals>
- <goal>generate-from-models</goal>
- </goals>
- </execution>
- <execution>
- <id>Test Bean Transformer</id>
- <phase>generate-test-sources</phase>
- <configuration>
- <includes>dtotest2.objectmodel</includes>
- <templates>org.nuiton.eugene.test.generator.BeanTransformer</templates>
- </configuration>
- <goals>
- <goal>generate-from-models</goal>
- </goals>
- </execution>
- </executions-->
+ </execution-->
+ </executions>
<dependencies>
<dependency>
<groupId>log4j</groupId>
Modified: trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/SmartGenerateMojo.java
===================================================================
--- trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/SmartGenerateMojo.java 2009-12-18 13:33:25 UTC (rev 768)
+++ trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/SmartGenerateMojo.java 2009-12-19 14:46:11 UTC (rev 769)
@@ -330,9 +330,6 @@
// add xmi writer support
- ClassLoader loader = getFixedClassLoader();
-
- properties.put(BaseXmiToChainedFileWriter.PROP_CLASS_LOADER, loader);
properties.put(BaseXmiToChainedFileWriter.PROP_FULL_PACKAGE_PATH, fullPackagePath);
//properties.put("extractedPackages", extractedPackages);
properties.put(BaseXmiToChainedFileWriter.PROP_RESOLVER, resolver);
@@ -342,10 +339,6 @@
// add model writer support
- ClassLoader loader = getFixedClassLoader();
-
- properties.put(ModelChainedFileWriter.PROP_CLASS_LOADER, loader);
- properties.put(ModelChainedFileWriter.PROP_MODEL_TYPE, modelType);
properties.put(ModelChainedFileWriter.PROP_DEFAULT_PACKAGE, defaultPackage);
properties.put(ModelChainedFileWriter.PROP_GENERATED_PACKAGES, generatedPackages);
properties.put(ModelChainedFileWriter.PROP_TEMPLATES, templates);
@@ -434,6 +427,15 @@
}
@Override
+ public ClassLoader getClassLoader() {
+ try {
+ return getFixedClassLoader();
+ } catch (MojoExecutionException e) {
+ throw new IllegalStateException("could not obtain classLoader",e);
+ }
+ }
+
+ @Override
public MavenProject getProject() {
return project;
}
@@ -474,6 +476,11 @@
}
@Override
+ public String getModelType() {
+ return modelType;
+ }
+
+ @Override
public Class<? extends Model> getModelClass() {
return modelClass;
}
Modified: trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/writer/BaseXmiToChainedFileWriter.java
===================================================================
--- trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/writer/BaseXmiToChainedFileWriter.java 2009-12-18 13:33:25 UTC (rev 768)
+++ trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/writer/BaseXmiToChainedFileWriter.java 2009-12-19 14:46:11 UTC (rev 769)
@@ -52,10 +52,10 @@
public static final String PROP_RESOLVER = "resolver";
// public static final String PROP_EXTRACTED_PACKAGES = "extractedPackages";
public static final String PROP_FULL_PACKAGE_PATH = "fullPackagePath";
- public static final String PROP_CLASS_LOADER = "classLoader";
public BaseXmiToChainedFileWriter() {
- super(PROP_CLASS_LOADER, "classLoader", PROP_RESOLVER, "resolver", PROP_FULL_PACKAGE_PATH, "fullPackagePath");
+ super(
+ PROP_RESOLVER, "resolver", PROP_FULL_PACKAGE_PATH, "fullPackagePath");
}
/**
@@ -136,11 +136,6 @@
}
- public ClassLoader getClassLoader() {
- return getProperty(PROP_CLASS_LOADER, ClassLoader.class);
- }
-
-
@Override
public void generate(ChainedFileWriterConfiguration configuration, File outputDir, File inputDirectory, String includePattern) throws IOException {
long t0 = System.nanoTime();
@@ -232,7 +227,7 @@
URIResolver result = null;
try {
- ClassLoader loader = getClassLoader();
+ ClassLoader loader = configuration.getClassLoader();
Class<?> clazz = Class.forName(getResolver(), true, loader);
// Try to set the base using the constructor
Modified: trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/writer/ModelChainedFileWriter.java
===================================================================
--- trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/writer/ModelChainedFileWriter.java 2009-12-18 13:33:25 UTC (rev 768)
+++ trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/writer/ModelChainedFileWriter.java 2009-12-19 14:46:11 UTC (rev 769)
@@ -50,9 +50,7 @@
public static final String PROP_TEMPLATES_LIST = "templatesList";
public static final String PROP_DEFAULT_PACKAGE = "defaultPackage";
public static final String PROP_MODEL_READER = "modelReader";
- public static final String PROP_MODEL_TYPE = "modelType";
public static final String PROP_READER = "reader";
- public static final String PROP_CLASS_LOADER = "classLoader";
public ModelChainedFileWriter() {
super(
@@ -60,11 +58,10 @@
PROP_TEMPLATES_LIST, "templatesList",
PROP_EXCLUDE_TEMPLATES, "excludetemplates",
PROP_READER, "reader",
- PROP_MODEL_TYPE, "modelType",
PROP_MODEL_READER, "modelReader",
PROP_GENERATED_PACKAGES, "generatedPackages",
- PROP_DEFAULT_PACKAGE, "defaultPackage",
- PROP_CLASS_LOADER, "classLoader");
+ PROP_DEFAULT_PACKAGE, "defaultPackage"
+ );
}
@Override
@@ -142,20 +139,12 @@
return getProperty(PROP_READER, String.class);
}
- protected String getModelType() {
- return getProperty(PROP_MODEL_TYPE, String.class);
- }
-
- public ClassLoader getClassLoader() {
- return getProperty(PROP_CLASS_LOADER, ClassLoader.class);
- }
-
@Override
protected void initWriter(ChainedFileWriterConfiguration configuration) {
super.initWriter(configuration);
// obtain a reader
- ClassLoader loader = getClassLoader();
+ ClassLoader loader = configuration.getClassLoader();
if (getModelReader() == null) {
if (getReader() != null) {
@@ -170,7 +159,7 @@
throw new IllegalStateException("could not obtain reader " + reader, eee);
}
} else {
- String modelType = getModelType();
+ String modelType = configuration.getModelType();
ModelReader<?> modelReader = configuration.getModelReaders().get(modelType);
if (modelReader == null) {
throw new IllegalStateException("could not find a model reader for modelType : " + modelType + ", availables readers : " + configuration.getModelReaders().values());
@@ -202,6 +191,7 @@
Template<Model> template;
template = (Template<Model>) configuration.getModelTemplates().get(templateName);
+
if (template == null) {
getLog().warn("template [" + templateName + "] is not registred via plexus, try to load it directly");
try {
@@ -209,13 +199,15 @@
} catch (Exception e) {
throw new IllegalStateException("Can't obtain template [" + templateName + "] for reason " + e.getMessage(), e);
}
+ } else {
+ getLog().info("will use the template [" + templateName + "]");
+ }
- // will use this template
- templatesList.add(template);
+ // will use this template
+ templatesList.add(template);
- // set the properties of the template
- template.setProperties(templateProperties);
- }
+ // set the properties of the template
+ template.setProperties(templateProperties);
}
properties.put(PROP_TEMPLATES_LIST, templatesList);
1
0
Author: tchemit
Date: 2009-12-18 14:33:25 +0100 (Fri, 18 Dec 2009)
New Revision: 768
Modified:
trunk/pom.xml
Log:
use mavenpom 1.1.3
Modified: trunk/pom.xml
===================================================================
--- trunk/pom.xml 2009-12-18 10:31:43 UTC (rev 767)
+++ trunk/pom.xml 2009-12-18 13:33:25 UTC (rev 768)
@@ -10,7 +10,7 @@
<parent>
<groupId>org.nuiton</groupId>
<artifactId>mavenpom</artifactId>
- <version>1.1.2</version>
+ <version>1.1.3</version>
</parent>
<artifactId>eugene</artifactId>
1
0
Author: tchemit
Date: 2009-12-18 11:31:43 +0100 (Fri, 18 Dec 2009)
New Revision: 767
Removed:
trunk/maven-eugene-plugin/src/it/generate/
Log:
remove old it
1
0
Dec. 18, 2009
Author: tchemit
Date: 2009-12-18 11:28:45 +0100 (Fri, 18 Dec 2009)
New Revision: 766
Added:
trunk/maven-eugene-plugin/src/it/smart-generate/
trunk/maven-eugene-plugin/src/it/smart-generate/all/
trunk/maven-eugene-plugin/src/it/smart-generate/all/LICENSE.txt
trunk/maven-eugene-plugin/src/it/smart-generate/all/README.txt
trunk/maven-eugene-plugin/src/it/smart-generate/all/changelog.txt
trunk/maven-eugene-plugin/src/it/smart-generate/all/invoker.properties
trunk/maven-eugene-plugin/src/it/smart-generate/all/pom.xml
trunk/maven-eugene-plugin/src/it/smart-generate/all/src/
trunk/maven-eugene-plugin/src/it/smart-generate/all/src/main/
trunk/maven-eugene-plugin/src/it/smart-generate/all/src/main/java/
trunk/maven-eugene-plugin/src/it/smart-generate/all/src/main/java/org/
trunk/maven-eugene-plugin/src/it/smart-generate/all/src/main/java/org/nuiton/
trunk/maven-eugene-plugin/src/it/smart-generate/all/src/main/java/org/nuiton/eugene/
trunk/maven-eugene-plugin/src/it/smart-generate/all/src/main/java/org/nuiton/eugene/test/
trunk/maven-eugene-plugin/src/it/smart-generate/all/src/main/java/org/nuiton/eugene/test/BeanTransformer.java
trunk/maven-eugene-plugin/src/it/smart-generate/all/src/main/resources/
trunk/maven-eugene-plugin/src/it/smart-generate/all/src/test/
trunk/maven-eugene-plugin/src/it/smart-generate/all/src/test/xmi/
trunk/maven-eugene-plugin/src/it/smart-generate/all/src/test/xmi/topiatest.properties
trunk/maven-eugene-plugin/src/it/smart-generate/all/src/test/xmi/topiatest.xmi
trunk/maven-eugene-plugin/src/it/smart-generate/all/src/test/zargo/
trunk/maven-eugene-plugin/src/it/smart-generate/all/src/test/zargo/topiatest.properties
trunk/maven-eugene-plugin/src/it/smart-generate/all/src/test/zargo/topiatest.zargo
trunk/maven-eugene-plugin/src/it/smart-generate/all/verify.groovy
trunk/maven-eugene-plugin/src/it/smart-generate/generators/
trunk/maven-eugene-plugin/src/it/smart-generate/generators/src/test/models/
trunk/maven-eugene-plugin/src/it/smart-generate/only-zargo-xmi/
trunk/maven-eugene-plugin/src/it/smart-generate/only-zargo-xmi/README.txt
trunk/maven-eugene-plugin/src/it/smart-generate/only-zargo-xmi/invoker.properties
trunk/maven-eugene-plugin/src/it/smart-generate/only-zargo-xmi/pom.xml
trunk/maven-eugene-plugin/src/it/smart-generate/only-zargo-xmi/src/
trunk/maven-eugene-plugin/src/it/smart-generate/only-zargo-xmi/src/main/
trunk/maven-eugene-plugin/src/it/smart-generate/only-zargo-xmi/src/main/xmi/
trunk/maven-eugene-plugin/src/it/smart-generate/only-zargo-xmi/src/main/xmi/topiatest.properties
trunk/maven-eugene-plugin/src/it/smart-generate/only-zargo-xmi/src/main/xmi/topiatest.xmi
trunk/maven-eugene-plugin/src/it/smart-generate/only-zargo-xmi/src/main/zargo/
trunk/maven-eugene-plugin/src/it/smart-generate/only-zargo-xmi/src/main/zargo/topiatest.properties
trunk/maven-eugene-plugin/src/it/smart-generate/only-zargo-xmi/src/main/zargo/topiatest.zargo
trunk/maven-eugene-plugin/src/it/smart-generate/only-zargo-xmi/verify.groovy
trunk/maven-eugene-plugin/src/it/smart-generate/only-zargo/
trunk/maven-eugene-plugin/src/it/smart-generate/only-zargo/README.txt
trunk/maven-eugene-plugin/src/it/smart-generate/only-zargo/invoker.properties
trunk/maven-eugene-plugin/src/it/smart-generate/only-zargo/pom.xml
trunk/maven-eugene-plugin/src/it/smart-generate/only-zargo/src/
trunk/maven-eugene-plugin/src/it/smart-generate/only-zargo/src/main/
trunk/maven-eugene-plugin/src/it/smart-generate/only-zargo/src/main/resources/
trunk/maven-eugene-plugin/src/it/smart-generate/only-zargo/src/main/xmi/
trunk/maven-eugene-plugin/src/it/smart-generate/only-zargo/src/main/xmi/topiatest.properties
trunk/maven-eugene-plugin/src/it/smart-generate/only-zargo/src/main/xmi/topiatest.zargo
trunk/maven-eugene-plugin/src/it/smart-generate/only-zargo/src/main/zargo/
trunk/maven-eugene-plugin/src/it/smart-generate/only-zargo/src/main/zargo/topiatest.properties
trunk/maven-eugene-plugin/src/it/smart-generate/only-zargo/src/main/zargo/topiatest.zargo
trunk/maven-eugene-plugin/src/it/smart-generate/only-zargo/verify.groovy
Removed:
trunk/maven-eugene-plugin/src/it/smart-generate/generators/src/main/models/
Modified:
trunk/maven-eugene-plugin/src/it/smart-generate/generators/pom.xml
Log:
add new it for new goal
Copied: trunk/maven-eugene-plugin/src/it/smart-generate/all/LICENSE.txt (from rev 763, trunk/maven-eugene-plugin/src/it/generate/generators/LICENSE.txt)
===================================================================
--- trunk/maven-eugene-plugin/src/it/smart-generate/all/LICENSE.txt (rev 0)
+++ trunk/maven-eugene-plugin/src/it/smart-generate/all/LICENSE.txt 2009-12-18 10:28:45 UTC (rev 766)
@@ -0,0 +1,166 @@
+ GNU LESSER GENERAL PUBLIC LICENSE
+ Version 3, 29 June 2007
+
+ Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+
+ This version of the GNU Lesser General Public License incorporates
+the terms and conditions of version 3 of the GNU General Public
+License, supplemented by the additional permissions listed below.
+
+ 0. Additional Definitions.
+
+ As used herein, "this License" refers to version 3 of the GNU Lesser
+General Public License, and the "GNU GPL" refers to version 3 of the GNU
+General Public License.
+
+ "The Library" refers to a covered work governed by this License,
+other than an Application or a Combined Work as defined below.
+
+ An "Application" is any work that makes use of an interface provided
+by the Library, but which is not otherwise based on the Library.
+Defining a subclass of a class defined by the Library is deemed a mode
+of using an interface provided by the Library.
+
+ A "Combined Work" is a work produced by combining or linking an
+Application with the Library. The particular version of the Library
+with which the Combined Work was made is also called the "Linked
+Version".
+
+ The "Minimal Corresponding Source" for a Combined Work means the
+Corresponding Source for the Combined Work, excluding any source code
+for portions of the Combined Work that, considered in isolation, are
+based on the Application, and not on the Linked Version.
+
+ The "Corresponding Application Code" for a Combined Work means the
+object code and/or source code for the Application, including any data
+and utility programs needed for reproducing the Combined Work from the
+Application, but excluding the System Libraries of the Combined Work.
+
+ 1. Exception to Section 3 of the GNU GPL.
+
+ You may convey a covered work under sections 3 and 4 of this License
+without being bound by section 3 of the GNU GPL.
+
+ 2. Conveying Modified Versions.
+
+ If you modify a copy of the Library, and, in your modifications, a
+facility refers to a function or data to be supplied by an Application
+that uses the facility (other than as an argument passed when the
+facility is invoked), then you may convey a copy of the modified
+version:
+
+ a) under this License, provided that you make a good faith effort to
+ ensure that, in the event an Application does not supply the
+ function or data, the facility still operates, and performs
+ whatever part of its purpose remains meaningful, or
+
+ b) under the GNU GPL, with none of the additional permissions of
+ this License applicable to that copy.
+
+ 3. Object Code Incorporating Material from Library Header Files.
+
+ The object code form of an Application may incorporate material from
+a header file that is part of the Library. You may convey such object
+code under terms of your choice, provided that, if the incorporated
+material is not limited to numerical parameters, data structure
+layouts and accessors, or small macros, inline functions and templates
+(ten or fewer lines in length), you do both of the following:
+
+ a) Give prominent notice with each copy of the object code that the
+ Library is used in it and that the Library and its use are
+ covered by this License.
+
+ b) Accompany the object code with a copy of the GNU GPL and this license
+ document.
+
+ 4. Combined Works.
+
+ You may convey a Combined Work under terms of your choice that,
+taken together, effectively do not restrict modification of the
+portions of the Library contained in the Combined Work and reverse
+engineering for debugging such modifications, if you also do each of
+the following:
+
+ a) Give prominent notice with each copy of the Combined Work that
+ the Library is used in it and that the Library and its use are
+ covered by this License.
+
+ b) Accompany the Combined Work with a copy of the GNU GPL and this license
+ document.
+
+ c) For a Combined Work that displays copyright notices during
+ execution, include the copyright notice for the Library among
+ these notices, as well as a reference directing the user to the
+ copies of the GNU GPL and this license document.
+
+ d) Do one of the following:
+
+ 0) Convey the Minimal Corresponding Source under the terms of this
+ License, and the Corresponding Application Code in a form
+ suitable for, and under terms that permit, the user to
+ recombine or relink the Application with a modified version of
+ the Linked Version to produce a modified Combined Work, in the
+ manner specified by section 6 of the GNU GPL for conveying
+ Corresponding Source.
+
+ 1) Use a suitable shared library mechanism for linking with the
+ Library. A suitable mechanism is one that (a) uses at run time
+ a copy of the Library already present on the user's computer
+ system, and (b) will operate properly with a modified version
+ of the Library that is interface-compatible with the Linked
+ Version.
+
+ e) Provide Installation Information, but only if you would otherwise
+ be required to provide such information under section 6 of the
+ GNU GPL, and only to the extent that such information is
+ necessary to install and execute a modified version of the
+ Combined Work produced by recombining or relinking the
+ Application with a modified version of the Linked Version. (If
+ you use option 4d0, the Installation Information must accompany
+ the Minimal Corresponding Source and Corresponding Application
+ Code. If you use option 4d1, you must provide the Installation
+ Information in the manner specified by section 6 of the GNU GPL
+ for conveying Corresponding Source.)
+
+ 5. Combined Libraries.
+
+ You may place library facilities that are a work based on the
+Library side by side in a single library together with other library
+facilities that are not Applications and are not covered by this
+License, and convey such a combined library under terms of your
+choice, if you do both of the following:
+
+ a) Accompany the combined library with a copy of the same work based
+ on the Library, uncombined with any other library facilities,
+ conveyed under the terms of this License.
+
+ b) Give prominent notice with the combined library that part of it
+ is a work based on the Library, and explaining where to find the
+ accompanying uncombined form of the same work.
+
+ 6. Revised Versions of the GNU Lesser General Public License.
+
+ The Free Software Foundation may publish revised and/or new versions
+of the GNU Lesser General Public License from time to time. Such new
+versions will be similar in spirit to the present version, but may
+differ in detail to address new problems or concerns.
+
+ Each version is given a distinguishing version number. If the
+Library as you received it specifies that a certain numbered version
+of the GNU Lesser General Public License "or any later version"
+applies to it, you have the option of following the terms and
+conditions either of that published version or of any later version
+published by the Free Software Foundation. If the Library as you
+received it does not specify a version number of the GNU Lesser
+General Public License, you may choose any version of the GNU Lesser
+General Public License ever published by the Free Software Foundation.
+
+ If the Library as you received it specifies that a proxy can decide
+whether future versions of the GNU Lesser General Public License shall
+apply, that proxy's public statement of acceptance of any version is
+permanent authorization for you to choose that version for the
+Library.
+
Copied: trunk/maven-eugene-plugin/src/it/smart-generate/all/README.txt (from rev 763, trunk/maven-eugene-plugin/src/it/generate/generators/README.txt)
===================================================================
--- trunk/maven-eugene-plugin/src/it/smart-generate/all/README.txt (rev 0)
+++ trunk/maven-eugene-plugin/src/it/smart-generate/all/README.txt 2009-12-18 10:28:45 UTC (rev 766)
@@ -0,0 +1,2 @@
+To deploy new version of pom: mvn deploy
+To install localy: mvn install
Copied: trunk/maven-eugene-plugin/src/it/smart-generate/all/changelog.txt (from rev 763, trunk/maven-eugene-plugin/src/it/generate/generators/changelog.txt)
===================================================================
--- trunk/maven-eugene-plugin/src/it/smart-generate/all/changelog.txt (rev 0)
+++ trunk/maven-eugene-plugin/src/it/smart-generate/all/changelog.txt 2009-12-18 10:28:45 UTC (rev 766)
@@ -0,0 +1,53 @@
+1.0.0 xxx xxx
+ * Add multiple models loading and restricted package generation
+ * Recode EugenePlugin without ant
+ * Move to org.nuiton groupid
+ * Rename project to Eugene
+
+0.64 chemit 20090218
+ * 20090211 [chatellier] add testPhase property in mojo to specify when using it in test phase
+ * 20090210 [chatellier] add info and debug maven log messages
+ * 20090210 [chatellier] add default value on all non required parameters
+ * 20090209 [chemit] fix bug when using sibling dependencies in a multi-module project
+ * 20090129 [chemit] use lutinproject 3.4 (suppress javadoc plugin invocation)
+
+0.63 chemit 20081215
+ * 20081215 [chemit] follow lutingenerator release
+
+0.62 chemit 20081210
+ * 20081210 [chemit] use lutinpluginproject 3.2
+ * 20081203 [chemit] add a encoding goal property to be dispatched in all generator to control file generation encoding
+ * 20081118 [chemit] use lutinproject 3.1
+ * 20081117 [chemit]
+ - add extraClassPathDirectory parameter to can specify an extra directory to add in classLoader
+ - bump lutingenerator version
+
+0.61 chatellier 20081114
+ * 20081107 [chatellier]
+ - add test compile dir and test resources in generation gaol
+ * 20081101 [chemit]
+ - add an excludeTemplates property on GeneratorPlugin to permit exclusion of generators for some composite generator
+ - bump lutingenerator to 0.61
+
+0.60 chemit 20081013
+ * 20081013 [chemit]
+ - remove addCompileDirectory option (always done) + add dynamic resources
+ - use lutingenerator 0.60
+ - clean pom
+
+0.51 thimel 20080925
+ * 20080925 [thimel] Refactor pom using the correct architecture
+ * 20080925 [thimel] Switched License to LGPL
+ * 20080723 [chemit]
+ - add generated sources in maven project's compilation directories via addCompilationDirectory plugin property
+
+ * 20070525 [chatellier]
+ - add Xmi2StateModel goal
+ - improve Xmi2Model Hierarchy
+ * 20070525 [chatellier] update ant dependency to 1.7.0
+ * 20070525 [chatellier] replacing lutinxml.XSLAntTask by Ant.XSLTProcess
+
+0.50 ??? ???
+
+ * 20070420 [chatellier] add goal to copy a set of generated files
+ * 20070420 [chatellier] update lutingenerator depencency to 0.50
\ No newline at end of file
Added: trunk/maven-eugene-plugin/src/it/smart-generate/all/invoker.properties
===================================================================
--- trunk/maven-eugene-plugin/src/it/smart-generate/all/invoker.properties (rev 0)
+++ trunk/maven-eugene-plugin/src/it/smart-generate/all/invoker.properties 2009-12-18 10:28:45 UTC (rev 766)
@@ -0,0 +1,21 @@
+# A comma or space separated list of goals/phases to execute, may
+# specify an empty list to execute the default goal of the IT project
+invoker.goals=clean generate-test-sources
+
+# Optionally, a list of goals to run during further invocations of Maven
+#invoker.goals.2=${project.groupId}:${project.artifactId}:${project.version}:run
+
+# A comma or space separated list of profiles to activate
+#invoker.profiles=run-all run-once
+
+# The value for the environment variable MAVEN_OPTS
+#invoker.mavenOpts=-Dfile.encoding=UTF-16 -Xms32m -Xmx256m
+
+# Possible values are "fail-fast" (default), "fail-at-end" and "fail-never"
+invoker.failureBehavior=fail-at-end
+
+# The expected result of the build, possible values are "success" (default) and "failure"
+#invoker.buildResult=success
+
+# A boolean value controlling the -N flag, defaults to "false"
+#invoker.nonRecursive=false
Added: trunk/maven-eugene-plugin/src/it/smart-generate/all/pom.xml
===================================================================
--- trunk/maven-eugene-plugin/src/it/smart-generate/all/pom.xml (rev 0)
+++ trunk/maven-eugene-plugin/src/it/smart-generate/all/pom.xml 2009-12-18 10:28:45 UTC (rev 766)
@@ -0,0 +1,122 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+
+ <modelVersion>4.0.0</modelVersion>
+
+ <!-- ************************************************************* -->
+ <!-- *** POM Relationships *************************************** -->
+ <!-- ************************************************************* -->
+
+ <parent>
+ <groupId>org.nuiton</groupId>
+ <artifactId>eugene</artifactId>
+ <version>@pom.version@</version>
+ </parent>
+
+ <groupId>org.nuiton.test</groupId>
+ <artifactId>eugene-test-smart-generate-all</artifactId>
+
+ <dependencies>
+ <dependency>
+ <groupId>org.nuiton.eugene</groupId>
+ <artifactId>eugene</artifactId>
+ <version>${project.version}</version>
+ <scope>compile</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>org.nuiton</groupId>
+ <artifactId>nuiton-utils</artifactId>
+ <version>1.1.1</version>
+ <scope>compile</scope>
+ </dependency>
+
+ </dependencies>
+
+
+ <!-- ************************************************************* -->
+ <!-- *** Project Information ************************************* -->
+ <!-- ************************************************************* -->
+
+ <name>EUGene Test :: testIncludeWithOnlyProtocol</name>
+
+ <!-- ************************************************************* -->
+ <!-- *** Build Settings ****************************************** -->
+ <!-- ************************************************************* -->
+
+ <packaging>jar</packaging>
+
+ <build>
+
+ <plugins>
+
+ <plugin>
+ <groupId>org.nuiton.processor</groupId>
+ <artifactId>maven-processor-plugin</artifactId>
+ <executions>
+ <execution>
+ <phase>generate-sources</phase>
+ <goals>
+ <goal>process</goal>
+ </goals>
+ </execution>
+ </executions>
+ <configuration>
+ <includes>**/*.java</includes>
+ <filters>org.nuiton.processor.filters.GeneratorTemplatesFilter</filters>
+ </configuration>
+ </plugin>
+
+ <plugin>
+ <groupId>org.nuiton.eugene</groupId>
+ <artifactId>maven-eugene-plugin</artifactId>
+ <version>${project.version}</version>
+ <configuration>
+ <testPhase>true</testPhase>
+ <resolver>org.nuiton.util.FasterCachedResourceResolver</resolver>
+ <fullPackagePath>org.nuiton</fullPackagePath>
+ <templates>org.nuiton.eugene.test.BeanTransformer</templates>
+ </configuration>
+ <executions>
+ <execution>
+ <id>Zargo to java</id>
+ <phase>generate-test-sources</phase>
+ <configuration>
+ <inputs>
+ <input>zargo:src/test/zargo:*.zargo</input>
+ </inputs>
+ <outputDirectory>target/generated-sources-zargo2Java</outputDirectory>
+ </configuration>
+ <goals>
+ <goal>smart-generate</goal>
+ </goals>
+ </execution>
+ <execution>
+ <id>Xmi to java</id>
+ <phase>generate-test-sources</phase>
+ <configuration>
+ <inputs>
+ <input>xmi</input>
+ </inputs>
+ <outputDirectory>target/generated-sources-xmi2Java</outputDirectory>
+ </configuration>
+ <goals>
+ <goal>smart-generate</goal>
+ </goals>
+ </execution>
+ </executions>
+ <dependencies>
+ <dependency>
+ <groupId>log4j</groupId>
+ <artifactId>log4j</artifactId>
+ <version>1.2.14</version>
+ </dependency>
+ </dependencies>
+ </plugin>
+ </plugins>
+ </build>
+
+</project>
+
+
Copied: trunk/maven-eugene-plugin/src/it/smart-generate/all/src/main/java/org/nuiton/eugene/test/BeanTransformer.java (from rev 763, trunk/maven-eugene-plugin/src/it/generate/generators/src/main/java/org/nuiton/eugene/test/generator/BeanTransformer.java)
===================================================================
--- trunk/maven-eugene-plugin/src/it/smart-generate/all/src/main/java/org/nuiton/eugene/test/BeanTransformer.java (rev 0)
+++ trunk/maven-eugene-plugin/src/it/smart-generate/all/src/main/java/org/nuiton/eugene/test/BeanTransformer.java 2009-12-18 10:28:45 UTC (rev 766)
@@ -0,0 +1,164 @@
+/*
+ * *##%
+ * EUGene Test
+ * Copyright (C) 2007 - 2009 CodeLutin
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation, either version 3 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 Lesser Public License for more details.
+ *
+ * You should have received a copy of the GNU General Lesser Public
+ * License along with this program. If not, see
+ * <http://www.gnu.org/licenses/lgpl-3.0.html>.
+ * ##%*
+ */
+package org.nuiton.eugene.test;
+
+import org.apache.commons.lang.StringUtils;
+import org.nuiton.eugene.GeneratorUtil;
+import org.nuiton.eugene.java.ObjectModelTransformerToJava;
+import org.nuiton.eugene.models.object.*;
+
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.List;
+
+/*{generator option: parentheses = false}*/
+
+/*{generator option: writeString = +}*/
+/**
+ * BeanTransformer
+ * <p/>
+ * Created: 28 oct. 2009
+ *
+ * @author fdesbois
+ * @version $Revision$
+ * <p/>
+ * Mise a jour: $Date$
+ * par : $Author: fdesbois $
+ * @plexus.component role="org.nuiton.eugene.Template" role-hint="org.nuiton.eugene.test.generator.BeanTransformer"
+ */
+public class BeanTransformer extends ObjectModelTransformerToJava {
+
+ @Override
+ public void transformFromClass(ObjectModelClass clazz) {
+ if (!clazz.hasStereotype("bean") || !!clazz.hasStereotype("dto")) {
+ return;
+ }
+
+ ObjectModelClass resultClass;
+ if (!clazz.getOperations().isEmpty()) {
+ resultClass = createAbstractClass(clazz.getName(), clazz.getPackageName());
+ } else {
+ resultClass = createClass(clazz.getName(), clazz.getPackageName());
+ }
+
+ // Set superclass
+ Iterator<ObjectModelClass> j = clazz.getSuperclasses().iterator();
+ if (j.hasNext()) {
+ ObjectModelClass p = j.next();
+ setSuperClass(resultClass, p.getQualifiedName());
+ }
+
+ // Add interfaces from inputModel
+ for (ObjectModelInterface parentInterface : clazz.getInterfaces()) {
+ addInterface(resultClass, parentInterface.getQualifiedName());
+ }
+
+ createListeners(resultClass, clazz);
+
+ boolean hasEntity = false;
+ boolean hasMultipleAttribute = false;
+
+ // Add operations
+ for (ObjectModelOperation op : clazz.getOperations()) {
+ String visibility = op.getVisibility();
+ ObjectModelOperation resultOperation = addOperation(resultClass, op.getName(), op.getReturnType(),
+ ObjectModelModifier.toValue(visibility), ObjectModelModifier.ABSTRACT);
+
+ for (ObjectModelParameter param : op.getParameters()) {
+ addParameter(resultOperation, param.getType(), param.getName());
+ }
+
+ for (String exception : op.getExceptions()) {
+ addException(resultOperation, exception);
+ }
+ }
+ }
+
+ protected void createListeners(ObjectModelClass resultClass, ObjectModelClass inputClass) {
+
+ addAttribute(resultClass, "pcs", "java.beans.PropertyChangeSupport", "",
+ ObjectModelModifier.PROTECTED, ObjectModelModifier.FINAL);
+
+ // Default constructor
+ ObjectModelOperation constructor = addConstructor(resultClass, ObjectModelModifier.PUBLIC);
+ setOperationBody(constructor, ""
+ /*{
+ pcs = new PropertyChangeSupport(this);
+ }*/
+ );
+
+ // Add PropertyListener
+ String propType = "java.beans.PropertyChangeListener";
+ String strType = String.class.getName();
+ String objectType = Object.class.getName();
+
+ ObjectModelOperation addPropertyChangeListener = addOperation(resultClass,
+ "addPropertyChangeListener", "void", ObjectModelModifier.PUBLIC);
+ addParameter(addPropertyChangeListener, propType, "listener");
+ setOperationBody(addPropertyChangeListener, ""
+ /*{
+ pcs.addPropertyChangeListener(listener);
+ }*/
+ );
+
+ ObjectModelOperation addPropertyChangeListenerPlus = addOperation(resultClass,
+ "addPropertyChangeListener", "void", ObjectModelModifier.PUBLIC);
+ addParameter(addPropertyChangeListenerPlus, strType, "propertyName");
+ addParameter(addPropertyChangeListenerPlus, propType, "listener");
+ setOperationBody(addPropertyChangeListenerPlus, ""
+ /*{
+ pcs.addPropertyChangeListener(propertyName, listener);
+ }*/
+ );
+
+ ObjectModelOperation removePropertyChangeListener = addOperation(resultClass,
+ "removePropertyChangeListener", "void", ObjectModelModifier.PUBLIC);
+ addParameter(removePropertyChangeListener, propType, "listener");
+ setOperationBody(removePropertyChangeListener, ""
+ /*{
+ pcs.removePropertyChangeListener(listener);
+ }*/
+ );
+
+ ObjectModelOperation removePropertyChangeListenerPlus = addOperation(resultClass,
+ "removePropertyChangeListener", "void", ObjectModelModifier.PUBLIC);
+ addParameter(removePropertyChangeListenerPlus, strType, "propertyName");
+ addParameter(removePropertyChangeListenerPlus, propType, "listener");
+ setOperationBody(removePropertyChangeListenerPlus, ""
+ /*{
+ pcs.removePropertyChangeListener(propertyName, listener);
+ }*/
+ );
+
+ ObjectModelOperation firePropertyChange = addOperation(resultClass,
+ "firePropertyChange", "void", ObjectModelModifier.PROTECTED);
+ addParameter(firePropertyChange, strType, "propertyName");
+ addParameter(firePropertyChange, objectType, "oldValue");
+ addParameter(firePropertyChange, objectType, "newValue");
+ setOperationBody(firePropertyChange, ""
+ /*{
+ pcs.firePropertyChange(propertyName, oldValue, newValue);
+ }*/
+ );
+ }
+
+
+}
Added: trunk/maven-eugene-plugin/src/it/smart-generate/all/src/test/xmi/topiatest.properties
===================================================================
--- trunk/maven-eugene-plugin/src/it/smart-generate/all/src/test/xmi/topiatest.properties (rev 0)
+++ trunk/maven-eugene-plugin/src/it/smart-generate/all/src/test/xmi/topiatest.properties 2009-12-18 10:28:45 UTC (rev 766)
@@ -0,0 +1 @@
+model.tagvalue.generateOperatorForDAOHelper=true
\ No newline at end of file
Added: trunk/maven-eugene-plugin/src/it/smart-generate/all/src/test/xmi/topiatest.xmi
===================================================================
--- trunk/maven-eugene-plugin/src/it/smart-generate/all/src/test/xmi/topiatest.xmi (rev 0)
+++ trunk/maven-eugene-plugin/src/it/smart-generate/all/src/test/xmi/topiatest.xmi 2009-12-18 10:28:45 UTC (rev 766)
@@ -0,0 +1,1334 @@
+<?xml version = '1.0' encoding = 'UTF-8' ?>
+<XMI xmi.version = '1.2' xmlns:UML = 'org.omg.xmi.namespace.UML' timestamp = 'Mon Oct 19 15:56:54 CEST 2009'>
+ <XMI.header> <XMI.documentation>
+ <XMI.exporter>ArgoUML (using Netbeans XMI Writer version 1.0)</XMI.exporter>
+ <XMI.exporterVersion>0.28.1(6) revised on $Date: 2007-05-12 08:08:08 +0200 (Sat, 12 May 2007) $ </XMI.exporterVersion>
+ </XMI.documentation>
+ <XMI.metamodel xmi.name="UML" xmi.version="1.4"/></XMI.header>
+ <XMI.content>
+ <UML:Model xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:000000000000077B'
+ name = 'xmiTopiaTest' isSpecification = 'false' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:00000000000008E3'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>1.2</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '127-0-0-1-3f03561c:11667f969c5:-8000:00000000000008E4'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:Namespace.ownedElement>
+ <UML:TagDefinition xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:00000000000008E4'
+ name = 'version' isSpecification = 'false' tagType = 'String'>
+ <UML:TagDefinition.multiplicity>
+ <UML:Multiplicity xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:00000000000008E6'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:00000000000008E5'
+ lower = '0' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:TagDefinition.multiplicity>
+ </UML:TagDefinition>
+ <UML:Stereotype xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:00000000000008E7'
+ name = 'entity' isSpecification = 'false' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:Stereotype.baseClass>Class</UML:Stereotype.baseClass>
+ </UML:Stereotype>
+ <UML:Package xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:000000000000090B'
+ name = 'org' isSpecification = 'false' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:Namespace.ownedElement>
+ <UML:Package xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:000000000000090C'
+ name = 'nuiton' isSpecification = 'false' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:Namespace.ownedElement>
+ <UML:Package xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:000000000000090D'
+ name = 'topiatest' isSpecification = 'false' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:Namespace.ownedElement>
+ <UML:Class xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:00000000000008DA'
+ name = 'Personne' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '127-0-0-1-3f03561c:11667f969c5:-8000:00000000000008E7'/>
+ </UML:ModelElement.stereotype>
+ <UML:GeneralizableElement.generalization>
+ <UML:Generalization xmi.idref = '-64--88-99-15-7b62aac4:121aaa56ef3:-8000:0000000000001020'/>
+ </UML:GeneralizableElement.generalization>
+ <UML:Classifier.feature>
+ <UML:Attribute xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000CF9'
+ name = 'name' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000CFD'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000CFC'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-64--88-99-15-67f6b63e:12187ee3a69:-8000:0000000000000EB0'
+ name = 'otherNames' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-64--88-99-15-67f6b63e:12187ee3a69:-8000:0000000000000EB8'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-64--88-99-15-67f6b63e:12187ee3a69:-8000:0000000000000EB7'
+ lower = '0' upper = '-1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Class xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:00000000000008DE'
+ name = 'Employe' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '127-0-0-1-3f03561c:11667f969c5:-8000:00000000000008E7'/>
+ </UML:ModelElement.stereotype>
+ <UML:GeneralizableElement.generalization>
+ <UML:Generalization xmi.idref = '127-0-0-1-3f03561c:11667f969c5:-8000:00000000000008E2'/>
+ </UML:GeneralizableElement.generalization>
+ <UML:Classifier.feature>
+ <UML:Attribute xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D54'
+ name = 'salary' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D5A'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D59'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Class xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:00000000000008E0'
+ name = 'Company' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '127-0-0-1-3f03561c:11667f969c5:-8000:00000000000008E7'/>
+ </UML:ModelElement.stereotype>
+ <UML:Classifier.feature>
+ <UML:Attribute xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:00000000000011BD'
+ name = 'name' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:00000000000011C5'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:00000000000011C4'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Class xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:00000000000008F9'
+ name = 'Address' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '127-0-0-1-3f03561c:11667f969c5:-8000:00000000000008E7'/>
+ </UML:ModelElement.stereotype>
+ <UML:Classifier.feature>
+ <UML:Attribute xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000903'
+ name = 'city' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000CF7'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000CF6'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000CE8'
+ name = 'adress' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000CF3'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000CF2'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Association xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:00000000000008FB'
+ name = '' isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'>
+ <UML:Association.connection>
+ <UML:AssociationEnd xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:00000000000008FC'
+ visibility = 'public' isSpecification = 'false' isNavigable = 'false' ordering = 'unordered'
+ aggregation = 'none' targetScope = 'instance' changeability = 'changeable'>
+ <UML:AssociationEnd.multiplicity>
+ <UML:Multiplicity xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:00000000000008FD'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:00000000000008FE'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:AssociationEnd.multiplicity>
+ <UML:AssociationEnd.participant>
+ <UML:Class xmi.idref = '127-0-0-1-3f03561c:11667f969c5:-8000:00000000000008DA'/>
+ </UML:AssociationEnd.participant>
+ </UML:AssociationEnd>
+ <UML:AssociationEnd xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:00000000000008FF'
+ visibility = 'public' isSpecification = 'false' isNavigable = 'true' ordering = 'unordered'
+ aggregation = 'none' targetScope = 'instance' changeability = 'changeable'>
+ <UML:AssociationEnd.multiplicity>
+ <UML:Multiplicity xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000900'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000901'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:AssociationEnd.multiplicity>
+ <UML:AssociationEnd.participant>
+ <UML:Class xmi.idref = '127-0-0-1-3f03561c:11667f969c5:-8000:00000000000008F9'/>
+ </UML:AssociationEnd.participant>
+ </UML:AssociationEnd>
+ </UML:Association.connection>
+ </UML:Association>
+ <UML:Generalization xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:00000000000008E2'
+ isSpecification = 'false'>
+ <UML:Generalization.child>
+ <UML:Class xmi.idref = '127-0-0-1-3f03561c:11667f969c5:-8000:00000000000008DE'/>
+ </UML:Generalization.child>
+ <UML:Generalization.parent>
+ <UML:Class xmi.idref = '127-0-0-1-3f03561c:11667f969c5:-8000:00000000000008DA'/>
+ </UML:Generalization.parent>
+ </UML:Generalization>
+ <UML:Association xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000CFE'
+ name = '' isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'>
+ <UML:Association.connection>
+ <UML:AssociationEnd xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000CFF'
+ visibility = 'public' isSpecification = 'false' isNavigable = 'false' ordering = 'unordered'
+ aggregation = 'none' targetScope = 'instance' changeability = 'changeable'>
+ <UML:AssociationEnd.multiplicity>
+ <UML:Multiplicity xmi.id = '-64--88-99-15--164a0c3b:121af97fc30:-8000:000000000000102C'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-64--88-99-15--164a0c3b:121af97fc30:-8000:000000000000102B'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:AssociationEnd.multiplicity>
+ <UML:AssociationEnd.participant>
+ <UML:Class xmi.idref = '127-0-0-1-3f03561c:11667f969c5:-8000:00000000000008E0'/>
+ </UML:AssociationEnd.participant>
+ </UML:AssociationEnd>
+ <UML:AssociationEnd xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D02'
+ visibility = 'public' isSpecification = 'false' isNavigable = 'true' ordering = 'unordered'
+ aggregation = 'none' targetScope = 'instance' changeability = 'changeable'>
+ <UML:AssociationEnd.multiplicity>
+ <UML:Multiplicity xmi.id = '-64--88-99-15--164a0c3b:121af97fc30:-8000:000000000000102A'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-64--88-99-15--164a0c3b:121af97fc30:-8000:0000000000001029'
+ lower = '0' upper = '-1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:AssociationEnd.multiplicity>
+ <UML:AssociationEnd.participant>
+ <UML:Class xmi.idref = '127-0-0-1-3f03561c:11667f969c5:-8000:00000000000008DE'/>
+ </UML:AssociationEnd.participant>
+ </UML:AssociationEnd>
+ </UML:Association.connection>
+ </UML:Association>
+ <UML:Class xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D0B'
+ name = 'Department' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '127-0-0-1-3f03561c:11667f969c5:-8000:00000000000008E7'/>
+ </UML:ModelElement.stereotype>
+ <UML:Classifier.feature>
+ <UML:Attribute xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D25'
+ name = 'name' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D29'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D28'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Class xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D2A'
+ name = 'Product' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '127-0-0-1-3f03561c:11667f969c5:-8000:00000000000008E7'/>
+ </UML:ModelElement.stereotype>
+ <UML:Classifier.feature>
+ <UML:Attribute xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D37'
+ name = 'name' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D3F'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D3E'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Class xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D5B'
+ name = 'Store' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '127-0-0-1-3f03561c:11667f969c5:-8000:00000000000008E7'/>
+ </UML:ModelElement.stereotype>
+ <UML:Classifier.feature>
+ <UML:Attribute xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D7D'
+ name = 'name' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D83'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D82'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Class xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D40'
+ name = 'Type' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '127-0-0-1-3f03561c:11667f969c5:-8000:00000000000008E7'/>
+ </UML:ModelElement.stereotype>
+ <UML:Classifier.feature>
+ <UML:Attribute xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D4D'
+ name = 'name' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D53'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D52'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:AssociationClass xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D65'
+ name = 'Bill' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '127-0-0-1-3f03561c:11667f969c5:-8000:00000000000008E7'/>
+ </UML:ModelElement.stereotype>
+ <UML:Association.connection>
+ <UML:AssociationEnd xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D66'
+ visibility = 'public' isSpecification = 'false' isNavigable = 'false' ordering = 'unordered'
+ aggregation = 'none' targetScope = 'instance' changeability = 'changeable'>
+ <UML:AssociationEnd.multiplicity>
+ <UML:Multiplicity xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D89'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D88'
+ lower = '0' upper = '-1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:AssociationEnd.multiplicity>
+ <UML:AssociationEnd.participant>
+ <UML:Class xmi.idref = '127-0-0-1-3f03561c:11667f969c5:-8000:00000000000008E0'/>
+ </UML:AssociationEnd.participant>
+ </UML:AssociationEnd>
+ <UML:AssociationEnd xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D69'
+ visibility = 'public' isSpecification = 'false' isNavigable = 'true' ordering = 'unordered'
+ aggregation = 'none' targetScope = 'instance' changeability = 'changeable'>
+ <UML:AssociationEnd.multiplicity>
+ <UML:Multiplicity xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D8D'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D8C'
+ lower = '0' upper = '-1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:AssociationEnd.multiplicity>
+ <UML:AssociationEnd.participant>
+ <UML:Class xmi.idref = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D5B'/>
+ </UML:AssociationEnd.participant>
+ </UML:AssociationEnd>
+ </UML:Association.connection>
+ <UML:Classifier.feature>
+ <UML:Attribute xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D6D'
+ name = 'cost' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D75'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D74'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D76'
+ name = 'date' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D7A'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D79'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000085F'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ </UML:AssociationClass>
+ <UML:Association xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D18'
+ name = '' isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'>
+ <UML:Association.connection>
+ <UML:AssociationEnd xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D19'
+ name = 'lead' visibility = 'public' isSpecification = 'false' isNavigable = 'false'
+ ordering = 'unordered' aggregation = 'none' targetScope = 'instance' changeability = 'changeable'>
+ <UML:AssociationEnd.multiplicity>
+ <UML:Multiplicity xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D24'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D23'
+ lower = '0' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:AssociationEnd.multiplicity>
+ <UML:AssociationEnd.participant>
+ <UML:Class xmi.idref = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D0B'/>
+ </UML:AssociationEnd.participant>
+ </UML:AssociationEnd>
+ <UML:AssociationEnd xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D1C'
+ name = 'leader' visibility = 'public' isSpecification = 'false' isNavigable = 'true'
+ ordering = 'unordered' aggregation = 'none' targetScope = 'instance' changeability = 'changeable'>
+ <UML:AssociationEnd.multiplicity>
+ <UML:Multiplicity xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D1D'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D1E'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:AssociationEnd.multiplicity>
+ <UML:AssociationEnd.participant>
+ <UML:Class xmi.idref = '127-0-0-1-3f03561c:11667f969c5:-8000:00000000000008DE'/>
+ </UML:AssociationEnd.participant>
+ </UML:AssociationEnd>
+ </UML:Association.connection>
+ </UML:Association>
+ <UML:Association xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D0D'
+ name = '' isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'>
+ <UML:Association.connection>
+ <UML:AssociationEnd xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D0E'
+ visibility = 'public' isSpecification = 'false' isNavigable = 'true' ordering = 'unordered'
+ aggregation = 'composite' targetScope = 'instance' changeability = 'changeable'>
+ <UML:AssociationEnd.multiplicity>
+ <UML:Multiplicity xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D0F'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D10'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:AssociationEnd.multiplicity>
+ <UML:AssociationEnd.participant>
+ <UML:Class xmi.idref = '127-0-0-1-3f03561c:11667f969c5:-8000:00000000000008E0'/>
+ </UML:AssociationEnd.participant>
+ </UML:AssociationEnd>
+ <UML:AssociationEnd xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D11'
+ visibility = 'public' isSpecification = 'false' isNavigable = 'true' ordering = 'unordered'
+ aggregation = 'none' targetScope = 'instance' changeability = 'changeable'>
+ <UML:AssociationEnd.multiplicity>
+ <UML:Multiplicity xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D17'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D16'
+ lower = '0' upper = '-1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:AssociationEnd.multiplicity>
+ <UML:AssociationEnd.participant>
+ <UML:Class xmi.idref = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D0B'/>
+ </UML:AssociationEnd.participant>
+ </UML:AssociationEnd>
+ </UML:Association.connection>
+ </UML:Association>
+ <UML:Association xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D2C'
+ name = '' isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'>
+ <UML:Association.connection>
+ <UML:AssociationEnd xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D2D'
+ visibility = 'public' isSpecification = 'false' isNavigable = 'false' ordering = 'unordered'
+ aggregation = 'none' targetScope = 'instance' changeability = 'changeable'>
+ <UML:AssociationEnd.multiplicity>
+ <UML:Multiplicity xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D2E'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D2F'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:AssociationEnd.multiplicity>
+ <UML:AssociationEnd.participant>
+ <UML:Class xmi.idref = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D0B'/>
+ </UML:AssociationEnd.participant>
+ </UML:AssociationEnd>
+ <UML:AssociationEnd xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D30'
+ visibility = 'public' isSpecification = 'false' isNavigable = 'true' ordering = 'unordered'
+ aggregation = 'none' targetScope = 'instance' changeability = 'changeable'>
+ <UML:AssociationEnd.multiplicity>
+ <UML:Multiplicity xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D36'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D35'
+ lower = '0' upper = '-1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:AssociationEnd.multiplicity>
+ <UML:AssociationEnd.participant>
+ <UML:Class xmi.idref = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D2A'/>
+ </UML:AssociationEnd.participant>
+ </UML:AssociationEnd>
+ </UML:Association.connection>
+ </UML:Association>
+ <UML:Association xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D42'
+ name = '' isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'>
+ <UML:Association.connection>
+ <UML:AssociationEnd xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D43'
+ visibility = 'public' isSpecification = 'false' isNavigable = 'false' ordering = 'unordered'
+ aggregation = 'none' targetScope = 'instance' changeability = 'changeable'>
+ <UML:AssociationEnd.multiplicity>
+ <UML:Multiplicity xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D4C'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D4B'
+ lower = '0' upper = '-1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:AssociationEnd.multiplicity>
+ <UML:AssociationEnd.participant>
+ <UML:Class xmi.idref = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D2A'/>
+ </UML:AssociationEnd.participant>
+ </UML:AssociationEnd>
+ <UML:AssociationEnd xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D46'
+ visibility = 'public' isSpecification = 'false' isNavigable = 'true' ordering = 'unordered'
+ aggregation = 'none' targetScope = 'instance' changeability = 'changeable'>
+ <UML:AssociationEnd.multiplicity>
+ <UML:Multiplicity xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D47'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D48'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:AssociationEnd.multiplicity>
+ <UML:AssociationEnd.participant>
+ <UML:Class xmi.idref = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D40'/>
+ </UML:AssociationEnd.participant>
+ </UML:AssociationEnd>
+ </UML:Association.connection>
+ </UML:Association>
+ <UML:Package xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000E71'
+ name = 'beangen2' isSpecification = 'false' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:Namespace.ownedElement>
+ <UML:Class xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000E72'
+ name = 'Voiture' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'true' isActive = 'false'>
+ <UML:ModelElement.clientDependency>
+ <UML:Abstraction xmi.idref = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000E77'/>
+ </UML:ModelElement.clientDependency>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000E73'/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000EA1'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>Doc for BeanA</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition href = 'http://argouml.org/profiles/uml14/default-uml14.xmi#.:000000000000087C'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:Classifier.feature>
+ <UML:Attribute xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000E7C'
+ name = 'immatriculation' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000E7D'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000E7E'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000EA2'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>attrA of BeanA</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition href = 'http://argouml.org/profiles/uml14/default-uml14.xmi#.:000000000000087C'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000E7F'
+ name = 'modele' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000E80'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000E81'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000EE6'
+ name = 'proprietaire' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000EE7'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000EE8'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = '127-0-0-1-3f03561c:11667f969c5:-8000:00000000000008DA'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Class xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000E75'
+ name = 'Roue' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000E73'/>
+ </UML:ModelElement.stereotype>
+ <UML:Classifier.feature>
+ <UML:Operation xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000E85'
+ name = 'mount' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000E86'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Operation xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000E87'
+ name = 'getModel' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000E88'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D2A'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000E89'
+ name = 'id' isSpecification = 'false'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Abstraction xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000E77'
+ isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000E78'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Class xmi.idref = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000E72'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Interface xmi.idref = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000E76'/>
+ </UML:Dependency.supplier>
+ </UML:Abstraction>
+ <UML:Interface xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000E76'
+ name = 'Vehicule' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:Classifier.feature>
+ <UML:Operation xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000E7A'
+ name = 'start' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000E7B'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ </UML:Classifier.feature>
+ </UML:Interface>
+ <UML:Association xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000E8A'
+ name = '' isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'>
+ <UML:Association.connection>
+ <UML:AssociationEnd xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000E8B'
+ visibility = 'public' isSpecification = 'false' isNavigable = 'true' ordering = 'unordered'
+ aggregation = 'composite' targetScope = 'instance' changeability = 'changeable'>
+ <UML:AssociationEnd.multiplicity>
+ <UML:Multiplicity xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000E8C'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000E8D'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:AssociationEnd.multiplicity>
+ <UML:AssociationEnd.participant>
+ <UML:Class xmi.idref = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000E72'/>
+ </UML:AssociationEnd.participant>
+ </UML:AssociationEnd>
+ <UML:AssociationEnd xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000E8E'
+ visibility = 'public' isSpecification = 'false' isNavigable = 'true' ordering = 'unordered'
+ aggregation = 'none' targetScope = 'instance' changeability = 'changeable'>
+ <UML:AssociationEnd.multiplicity>
+ <UML:Multiplicity xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000ED2'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000ED1'
+ lower = '4' upper = '4'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:AssociationEnd.multiplicity>
+ <UML:AssociationEnd.participant>
+ <UML:Class xmi.idref = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000E75'/>
+ </UML:AssociationEnd.participant>
+ </UML:AssociationEnd>
+ </UML:Association.connection>
+ </UML:Association>
+ <UML:Class xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000EAB'
+ name = 'RelationDTO' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000E74'/>
+ </UML:ModelElement.stereotype>
+ <UML:Classifier.feature>
+ <UML:Attribute xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000EAC'
+ name = 'idCompany' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000EAD'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000EAE'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000EAF'
+ name = 'idDepartement' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000EB0'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000EB1'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000EBB'
+ name = 'dateDebut' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000EBC'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000EBD'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000085F'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Class xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000EA9'
+ name = 'PersonneDTO' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.clientDependency>
+ <UML:Dependency xmi.idref = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000EAA'/>
+ </UML:ModelElement.clientDependency>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000E74'/>
+ </UML:ModelElement.stereotype>
+ <UML:Namespace.ownedElement>
+ <UML:Dependency xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000EAA'
+ isSpecification = 'false'>
+ <UML:Dependency.client>
+ <UML:Class xmi.idref = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000EA9'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '127-0-0-1-3f03561c:11667f969c5:-8000:00000000000008DA'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ </UML:Namespace.ownedElement>
+ </UML:Class>
+ <UML:Association xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000EB2'
+ name = '' isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'>
+ <UML:Association.connection>
+ <UML:AssociationEnd xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000EB3'
+ visibility = 'public' isSpecification = 'false' isNavigable = 'false' ordering = 'unordered'
+ aggregation = 'none' targetScope = 'instance' changeability = 'changeable'>
+ <UML:AssociationEnd.multiplicity>
+ <UML:Multiplicity xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000EBA'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000EB9'
+ lower = '0' upper = '-1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:AssociationEnd.multiplicity>
+ <UML:AssociationEnd.participant>
+ <UML:Class xmi.idref = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000EAB'/>
+ </UML:AssociationEnd.participant>
+ </UML:AssociationEnd>
+ <UML:AssociationEnd xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000EB6'
+ name = 'person' visibility = 'public' isSpecification = 'false' isNavigable = 'true'
+ ordering = 'unordered' aggregation = 'none' targetScope = 'instance' changeability = 'changeable'>
+ <UML:AssociationEnd.multiplicity>
+ <UML:Multiplicity xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000EB7'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000EB8'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:AssociationEnd.multiplicity>
+ <UML:AssociationEnd.participant>
+ <UML:Class xmi.idref = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000EA9'/>
+ </UML:AssociationEnd.participant>
+ </UML:AssociationEnd>
+ </UML:Association.connection>
+ </UML:Association>
+ <UML:Class xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000ED3'
+ name = 'Siege' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000E73'/>
+ </UML:ModelElement.stereotype>
+ <UML:Classifier.feature>
+ <UML:Attribute xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000EDB'
+ name = 'noSerie' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000EDC'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000EDD'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Association xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000ED4'
+ name = '' isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'>
+ <UML:Association.connection>
+ <UML:AssociationEnd xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000ED5'
+ visibility = 'public' isSpecification = 'false' isNavigable = 'true' ordering = 'unordered'
+ aggregation = 'none' targetScope = 'instance' changeability = 'changeable'>
+ <UML:AssociationEnd.multiplicity>
+ <UML:Multiplicity xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000EE5'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000EE4'
+ lower = '1' upper = '4'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:AssociationEnd.multiplicity>
+ <UML:AssociationEnd.participant>
+ <UML:Class xmi.idref = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000ED3'/>
+ </UML:AssociationEnd.participant>
+ </UML:AssociationEnd>
+ <UML:AssociationEnd xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000ED8'
+ visibility = 'public' isSpecification = 'false' isNavigable = 'true' ordering = 'unordered'
+ aggregation = 'composite' targetScope = 'instance' changeability = 'changeable'>
+ <UML:AssociationEnd.multiplicity>
+ <UML:Multiplicity xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000ED9'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000EDA'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:AssociationEnd.multiplicity>
+ <UML:AssociationEnd.participant>
+ <UML:Class xmi.idref = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000E72'/>
+ </UML:AssociationEnd.participant>
+ </UML:AssociationEnd>
+ </UML:Association.connection>
+ </UML:Association>
+ </UML:Namespace.ownedElement>
+ </UML:Package>
+ <UML:Package xmi.id = '-64--88-99-15-7b62aac4:121aaa56ef3:-8000:000000000000100A'
+ name = 'deletetest' isSpecification = 'false' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:Namespace.ownedElement>
+ <UML:Class xmi.id = '-64--88-99-15-7b62aac4:121aaa56ef3:-8000:000000000000100B'
+ name = 'Contact2' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '127-0-0-1-3f03561c:11667f969c5:-8000:00000000000008E7'/>
+ </UML:ModelElement.stereotype>
+ <UML:Classifier.feature>
+ <UML:Attribute xmi.id = '-64--88-99-15-7b62aac4:121aaa56ef3:-8000:0000000000001019'
+ name = 'contactValue' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-64--88-99-15-7b62aac4:121aaa56ef3:-8000:000000000000101A'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-64--88-99-15-7b62aac4:121aaa56ef3:-8000:000000000000101B'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-64--88-99-15-7b62aac4:121aaa56ef3:-8000:000000000000101C'
+ name = 'type' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-64--88-99-15-7b62aac4:121aaa56ef3:-8000:000000000000101D'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-64--88-99-15-7b62aac4:121aaa56ef3:-8000:000000000000101E'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Operation xmi.id = '-64--88-99-15--164a0c3b:121af97fc30:-8000:000000000000102F'
+ name = 'findAllByCompany' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-64--88-99-15--164a0c3b:121af97fc30:-8000:0000000000001034'/>
+ </UML:ModelElement.stereotype>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-64--88-99-15--164a0c3b:121af97fc30:-8000:0000000000001030'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-64--88-99-15--164a0c3b:121af97fc30:-8000:0000000000001032'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-64--88-99-15--164a0c3b:121af97fc30:-8000:0000000000001033'
+ name = 'company' isSpecification = 'false'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '127-0-0-1-3f03561c:11667f969c5:-8000:00000000000008E0'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Association xmi.id = '-64--88-99-15-7b62aac4:121aaa56ef3:-8000:000000000000100C'
+ name = '' isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'>
+ <UML:Association.connection>
+ <UML:AssociationEnd xmi.id = '-64--88-99-15-7b62aac4:121aaa56ef3:-8000:000000000000100D'
+ name = 'contacts' visibility = 'public' isSpecification = 'false' isNavigable = 'true'
+ ordering = 'unordered' aggregation = 'none' targetScope = 'instance' changeability = 'changeable'>
+ <UML:AssociationEnd.multiplicity>
+ <UML:Multiplicity xmi.id = '-64--88-99-15--164a0c3b:121af97fc30:-8000:0000000000001026'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-64--88-99-15--164a0c3b:121af97fc30:-8000:0000000000001025'
+ lower = '0' upper = '-1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:AssociationEnd.multiplicity>
+ <UML:AssociationEnd.participant>
+ <UML:Class xmi.idref = '-64--88-99-15-7b62aac4:121aaa56ef3:-8000:000000000000100B'/>
+ </UML:AssociationEnd.participant>
+ </UML:AssociationEnd>
+ <UML:AssociationEnd xmi.id = '-64--88-99-15-7b62aac4:121aaa56ef3:-8000:0000000000001010'
+ visibility = 'public' isSpecification = 'false' isNavigable = 'true' ordering = 'unordered'
+ aggregation = 'none' targetScope = 'instance' changeability = 'changeable'>
+ <UML:AssociationEnd.multiplicity>
+ <UML:Multiplicity xmi.id = '-64--88-99-15--164a0c3b:121af97fc30:-8000:0000000000001028'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-64--88-99-15--164a0c3b:121af97fc30:-8000:0000000000001027'
+ lower = '0' upper = '-1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:AssociationEnd.multiplicity>
+ <UML:AssociationEnd.participant>
+ <UML:Class xmi.idref = '-64--88-99-15-7b62aac4:121aaa56ef3:-8000:000000000000101F'/>
+ </UML:AssociationEnd.participant>
+ </UML:AssociationEnd>
+ </UML:Association.connection>
+ </UML:Association>
+ <UML:Class xmi.id = '-64--88-99-15-7b62aac4:121aaa56ef3:-8000:0000000000001017'
+ name = 'Telephone2' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '127-0-0-1-3f03561c:11667f969c5:-8000:00000000000008E7'/>
+ </UML:ModelElement.stereotype>
+ <UML:GeneralizableElement.generalization>
+ <UML:Generalization xmi.idref = '-64--88-99-15-7b62aac4:121aaa56ef3:-8000:0000000000001018'/>
+ </UML:GeneralizableElement.generalization>
+ <UML:Classifier.feature>
+ <UML:Attribute xmi.id = '-64--88-99-15-7b62aac4:121aaa56ef3:-8000:0000000000001021'
+ name = 'prefix' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-64--88-99-15-7b62aac4:121aaa56ef3:-8000:0000000000001022'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-64--88-99-15-7b62aac4:121aaa56ef3:-8000:0000000000001023'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-64--88-99-15-7b62aac4:121aaa56ef3:-8000:0000000000001024'
+ name = 'country' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-64--88-99-15-7b62aac4:121aaa56ef3:-8000:0000000000001025'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-64--88-99-15-7b62aac4:121aaa56ef3:-8000:0000000000001026'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Generalization xmi.id = '-64--88-99-15-7b62aac4:121aaa56ef3:-8000:0000000000001018'
+ isSpecification = 'false'>
+ <UML:Generalization.child>
+ <UML:Class xmi.idref = '-64--88-99-15-7b62aac4:121aaa56ef3:-8000:0000000000001017'/>
+ </UML:Generalization.child>
+ <UML:Generalization.parent>
+ <UML:Class xmi.idref = '-64--88-99-15-7b62aac4:121aaa56ef3:-8000:000000000000100B'/>
+ </UML:Generalization.parent>
+ </UML:Generalization>
+ <UML:Class xmi.id = '-64--88-99-15-7b62aac4:121aaa56ef3:-8000:000000000000101F'
+ name = 'Party2' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '127-0-0-1-3f03561c:11667f969c5:-8000:00000000000008E7'/>
+ </UML:ModelElement.stereotype>
+ </UML:Class>
+ </UML:Namespace.ownedElement>
+ </UML:Package>
+ <UML:Generalization xmi.id = '-64--88-99-15-7b62aac4:121aaa56ef3:-8000:0000000000001020'
+ isSpecification = 'false'>
+ <UML:Generalization.child>
+ <UML:Class xmi.idref = '127-0-0-1-3f03561c:11667f969c5:-8000:00000000000008DA'/>
+ </UML:Generalization.child>
+ <UML:Generalization.parent>
+ <UML:Class xmi.idref = '-64--88-99-15-7b62aac4:121aaa56ef3:-8000:000000000000101F'/>
+ </UML:Generalization.parent>
+ </UML:Generalization>
+ </UML:Namespace.ownedElement>
+ </UML:Package>
+ <UML:Package xmi.id = '127-0-0-1-13652238:1219c622604:-8000:000000000000121D'
+ name = 'topia' isSpecification = 'false' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:Namespace.ownedElement>
+ <UML:Package xmi.id = '127-0-0-1-13652238:1219c622604:-8000:000000000000121E'
+ name = 'test' isSpecification = 'false' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:Namespace.ownedElement>
+ <UML:Package xmi.id = '127-0-0-1-13652238:1219c622604:-8000:000000000000121F'
+ name = 'entities' isSpecification = 'false' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:Namespace.ownedElement>
+ <UML:Class xmi.id = '127-0-0-1-13652238:1219c622604:-8000:0000000000001220'
+ name = 'Person' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '127-0-0-1-3f03561c:11667f969c5:-8000:00000000000008E7'/>
+ </UML:ModelElement.stereotype>
+ <UML:Classifier.feature>
+ <UML:Attribute xmi.id = '127-0-0-1-13652238:1219c622604:-8000:0000000000001228'
+ name = 'name' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '127-0-0-1-13652238:1219c622604:-8000:0000000000001229'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '127-0-0-1-13652238:1219c622604:-8000:000000000000122A'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '127-0-0-1-13652238:1219c622604:-8000:000000000000122B'
+ name = 'firstname' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '127-0-0-1-13652238:1219c622604:-8000:000000000000122C'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '127-0-0-1-13652238:1219c622604:-8000:000000000000122D'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Class xmi.id = '127-0-0-1-13652238:1219c622604:-8000:0000000000001221'
+ name = 'Pet' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '127-0-0-1-3f03561c:11667f969c5:-8000:00000000000008E7'/>
+ </UML:ModelElement.stereotype>
+ <UML:Classifier.feature>
+ <UML:Attribute xmi.id = '127-0-0-1-13652238:1219c622604:-8000:0000000000001222'
+ name = 'name' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '127-0-0-1-13652238:1219c622604:-8000:0000000000001223'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '127-0-0-1-13652238:1219c622604:-8000:0000000000001224'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '127-0-0-1-13652238:1219c622604:-8000:0000000000001225'
+ name = 'type' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '127-0-0-1-13652238:1219c622604:-8000:0000000000001226'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '127-0-0-1-13652238:1219c622604:-8000:0000000000001227'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Association xmi.id = '127-0-0-1-13652238:1219c622604:-8000:0000000000001237'
+ name = '' isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'>
+ <UML:Association.connection>
+ <UML:AssociationEnd xmi.id = '127-0-0-1-13652238:1219c622604:-8000:0000000000001238'
+ visibility = 'public' isSpecification = 'false' isNavigable = 'true' ordering = 'unordered'
+ aggregation = 'none' targetScope = 'instance' changeability = 'changeable'>
+ <UML:AssociationEnd.multiplicity>
+ <UML:Multiplicity xmi.id = '127-0-0-1-13652238:1219c622604:-8000:0000000000001239'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '127-0-0-1-13652238:1219c622604:-8000:000000000000123A'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:AssociationEnd.multiplicity>
+ <UML:AssociationEnd.participant>
+ <UML:Class xmi.idref = '127-0-0-1-13652238:1219c622604:-8000:0000000000001220'/>
+ </UML:AssociationEnd.participant>
+ </UML:AssociationEnd>
+ <UML:AssociationEnd xmi.id = '127-0-0-1-13652238:1219c622604:-8000:000000000000123B'
+ visibility = 'public' isSpecification = 'false' isNavigable = 'true' ordering = 'unordered'
+ aggregation = 'none' targetScope = 'instance' changeability = 'changeable'>
+ <UML:AssociationEnd.multiplicity>
+ <UML:Multiplicity xmi.id = '127-0-0-1-13652238:1219c622604:-8000:000000000000123F'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '127-0-0-1-13652238:1219c622604:-8000:000000000000123E'
+ lower = '0' upper = '-1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:AssociationEnd.multiplicity>
+ <UML:AssociationEnd.participant>
+ <UML:Class xmi.idref = '127-0-0-1-13652238:1219c622604:-8000:0000000000001221'/>
+ </UML:AssociationEnd.participant>
+ </UML:AssociationEnd>
+ </UML:Association.connection>
+ </UML:Association>
+ <UML:Association xmi.id = '127-0-0-1--7876194c:121c66e8e17:-8000:000000000000102A'
+ name = '' isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'>
+ <UML:Association.connection>
+ <UML:AssociationEnd xmi.id = '127-0-0-1--7876194c:121c66e8e17:-8000:000000000000102B'
+ visibility = 'public' isSpecification = 'false' isNavigable = 'false' ordering = 'unordered'
+ aggregation = 'composite' targetScope = 'instance' changeability = 'changeable'>
+ <UML:AssociationEnd.multiplicity>
+ <UML:Multiplicity xmi.id = '127-0-0-1--7876194c:121c66e8e17:-8000:000000000000102C'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '127-0-0-1--7876194c:121c66e8e17:-8000:000000000000102D'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:AssociationEnd.multiplicity>
+ <UML:AssociationEnd.participant>
+ <UML:Class xmi.idref = '127-0-0-1-13652238:1219c622604:-8000:0000000000001221'/>
+ </UML:AssociationEnd.participant>
+ </UML:AssociationEnd>
+ <UML:AssociationEnd xmi.id = '127-0-0-1--7876194c:121c66e8e17:-8000:000000000000102E'
+ visibility = 'public' isSpecification = 'false' isNavigable = 'true' ordering = 'unordered'
+ aggregation = 'none' targetScope = 'instance' changeability = 'changeable'>
+ <UML:AssociationEnd.multiplicity>
+ <UML:Multiplicity xmi.id = '127-0-0-1--7876194c:121c66e8e17:-8000:000000000000102F'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '127-0-0-1--7876194c:121c66e8e17:-8000:0000000000001030'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:AssociationEnd.multiplicity>
+ <UML:AssociationEnd.participant>
+ <UML:Class xmi.idref = '127-0-0-1--7876194c:121c66e8e17:-8000:0000000000001029'/>
+ </UML:AssociationEnd.participant>
+ </UML:AssociationEnd>
+ </UML:Association.connection>
+ </UML:Association>
+ <UML:Class xmi.id = '127-0-0-1--7876194c:121c66e8e17:-8000:0000000000001029'
+ name = 'Race' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '127-0-0-1-3f03561c:11667f969c5:-8000:00000000000008E7'/>
+ </UML:ModelElement.stereotype>
+ <UML:Classifier.feature>
+ <UML:Attribute xmi.id = '127-0-0-1--7876194c:121c66e8e17:-8000:0000000000001031'
+ name = 'name' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '127-0-0-1--7876194c:121c66e8e17:-8000:0000000000001032'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '127-0-0-1--7876194c:121c66e8e17:-8000:0000000000001033'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ </UML:Class>
+ </UML:Namespace.ownedElement>
+ </UML:Package>
+ </UML:Namespace.ownedElement>
+ </UML:Package>
+ </UML:Namespace.ownedElement>
+ </UML:Package>
+ </UML:Namespace.ownedElement>
+ </UML:Package>
+ </UML:Namespace.ownedElement>
+ </UML:Package>
+ <UML:Stereotype xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000E73'
+ name = 'bean' isSpecification = 'false' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:Stereotype.baseClass>Class</UML:Stereotype.baseClass>
+ </UML:Stereotype>
+ <UML:Stereotype xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000E74'
+ name = 'dto' isSpecification = 'false' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:Stereotype.baseClass>Class</UML:Stereotype.baseClass>
+ </UML:Stereotype>
+ <UML:Stereotype xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000E78'
+ name = 'realize' isSpecification = 'false' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:Stereotype.baseClass>Abstraction</UML:Stereotype.baseClass>
+ </UML:Stereotype>
+ <UML:Package xmi.id = '-64--88-99-15--164a0c3b:121af97fc30:-8000:0000000000001031'
+ name = 'java.util' isSpecification = 'false' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:Namespace.ownedElement>
+ <UML:Class xmi.id = '-64--88-99-15--164a0c3b:121af97fc30:-8000:0000000000001032'
+ name = 'Set<Contact2>' visibility = 'public' isSpecification = 'false'
+ isRoot = 'false' isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ </UML:Namespace.ownedElement>
+ </UML:Package>
+ <UML:Stereotype xmi.id = '-64--88-99-15--164a0c3b:121af97fc30:-8000:0000000000001034'
+ name = 'dao' isSpecification = 'false' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:Stereotype.baseClass>Operation</UML:Stereotype.baseClass>
+ </UML:Stereotype>
+ </UML:Namespace.ownedElement>
+ </UML:Model>
+ <UML:Multiplicity xmi.id = '127-0-0-1-13652238:1219c622604:-8000:0000000000001233'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '127-0-0-1-13652238:1219c622604:-8000:0000000000001234'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '127-0-0-1-13652238:1219c622604:-8000:000000000000123C'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '127-0-0-1-13652238:1219c622604:-8000:000000000000123D'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </XMI.content>
+</XMI>
Added: trunk/maven-eugene-plugin/src/it/smart-generate/all/src/test/zargo/topiatest.properties
===================================================================
--- trunk/maven-eugene-plugin/src/it/smart-generate/all/src/test/zargo/topiatest.properties (rev 0)
+++ trunk/maven-eugene-plugin/src/it/smart-generate/all/src/test/zargo/topiatest.properties 2009-12-18 10:28:45 UTC (rev 766)
@@ -0,0 +1 @@
+model.tagvalue.generateOperatorForDAOHelper=true
\ No newline at end of file
Added: trunk/maven-eugene-plugin/src/it/smart-generate/all/src/test/zargo/topiatest.zargo
===================================================================
(Binary files differ)
Property changes on: trunk/maven-eugene-plugin/src/it/smart-generate/all/src/test/zargo/topiatest.zargo
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/maven-eugene-plugin/src/it/smart-generate/all/verify.groovy
===================================================================
--- trunk/maven-eugene-plugin/src/it/smart-generate/all/verify.groovy (rev 0)
+++ trunk/maven-eugene-plugin/src/it/smart-generate/all/verify.groovy 2009-12-18 10:28:45 UTC (rev 766)
@@ -0,0 +1,37 @@
+
+// Zargo to java
+
+assert new File(basedir, 'target/generated-sources-zargo2Java').exists();
+assert new File(basedir, 'target/generated-sources-zargo2Java/test-xmi').exists();
+assert new File(basedir, 'target/generated-sources-zargo2Java/test-xmi/topiatest.properties').exists();
+assert new File(basedir, 'target/generated-sources-zargo2Java/test-xmi/topiatest.xmi').exists();
+
+assert new File(basedir, 'target/generated-sources-zargo2Java/test-models').exists();
+assert new File(basedir, 'target/generated-sources-zargo2Java/test-models/topiatest.properties').exists();
+assert new File(basedir, 'target/generated-sources-zargo2Java/test-models/topiatest.objectmodel').exists();
+
+assert new File(basedir, 'target/generated-sources-zargo2Java/test-java').exists();
+assert new File(basedir, 'target/generated-sources-zargo2Java/test-java/org/nuiton/topiatest/beangen').exists();
+assert new File(basedir, 'target/generated-sources-zargo2Java/test-java/org/nuiton/topiatest/beangen/Voiture.java').exists();
+assert new File(basedir, 'target/generated-sources-zargo2Java/test-java/org/nuiton/topiatest/beangen/Roue.java').exists();
+assert new File(basedir, 'target/generated-sources-zargo2Java/test-java/org/nuiton/topiatest/beangen/Siege.java').exists();
+
+// Xmi to java
+
+assert new File(basedir, 'target/generated-sources-xmi2Java').exists();
+assert new File(basedir, 'target/generated-sources-xmi2Java/test-models').exists();
+assert new File(basedir, 'target/generated-sources-xmi2Java/test-models/topiatest.properties').exists();
+assert new File(basedir, 'target/generated-sources-xmi2Java/test-models/topiatest.objectmodel').exists();
+
+assert new File(basedir, 'target/generated-sources-xmi2Java/test-models').exists();
+assert new File(basedir, 'target/generated-sources-xmi2Java/test-models/topiatest.properties').exists();
+assert new File(basedir, 'target/generated-sources-xmi2Java/test-models/topiatest.objectmodel').exists();
+
+assert new File(basedir, 'target/generated-sources-xmi2Java/test-java').exists();
+assert new File(basedir, 'target/generated-sources-xmi2Java/test-java/org/nuiton/topiatest/beangen2').exists();
+assert new File(basedir, 'target/generated-sources-xmi2Java/test-java/org/nuiton/topiatest/beangen2/Voiture.java').exists();
+assert new File(basedir, 'target/generated-sources-xmi2Java/test-java/org/nuiton/topiatest/beangen2/Roue.java').exists();
+assert new File(basedir, 'target/generated-sources-xmi2Java/test-java/org/nuiton/topiatest/beangen2/Siege.java').exists();
+
+return true;
+
Modified: trunk/maven-eugene-plugin/src/it/smart-generate/generators/pom.xml
===================================================================
--- trunk/maven-eugene-plugin/src/it/generate/generators/pom.xml 2009-12-17 01:08:01 UTC (rev 763)
+++ trunk/maven-eugene-plugin/src/it/smart-generate/generators/pom.xml 2009-12-18 10:28:45 UTC (rev 766)
@@ -84,12 +84,7 @@
<artifactId>maven-eugene-plugin</artifactId>
<version>${project.version}</version>
<configuration>
- <extraClassPathDirectory>target/classes</extraClassPathDirectory>
- <!--<modelType>objectmodel</modelType>-->
<testPhase>true</testPhase>
- <generateResources>
- <input>src/main/models</input>
- </generateResources>
<defaultPackage>org.nuiton.eugene.test</defaultPackage>
</configuration>
<executions>
@@ -97,11 +92,61 @@
<id>Test Regression Generator</id>
<phase>generate-test-sources</phase>
<configuration>
+ <inputs>
+ <input>model:src/test/models:dtotest.objectmodel</input>
+ </inputs>
+ <templates>org.nuiton.eugene.test.generator.BeanGenerator</templates>
+ </configuration>
+ <goals>
+ <goal>smart-generate</goal>
+ </goals>
+ </execution>
+ <execution>
+ <id>Test Java Generator</id>
+ <phase>generate-test-sources</phase>
+ <configuration>
+ <inputs>
+ <input>model</input>
+ </inputs>
+ <properties>
+ <propertie>
+ <key>reader</key>
+ <value>org.nuiton.eugene.test.generator.TestReader</value>
+ </propertie>
+ </properties>
+ <templates>org.nuiton.eugene.java.JavaGenerator</templates>
+ </configuration>
+ <goals>
+ <goal>smart-generate</goal>
+ </goals>
+ </execution>
+ <execution>
+ <id>Test Bean Transformer</id>
+ <phase>generate-test-sources</phase>
+ <configuration>
+ <inputs>
+ <input>model:src/test/models:dtotest2.objectmodel</input>
+ </inputs>
+ <templates>org.nuiton.eugene.test.generator.BeanTransformer</templates>
+ </configuration>
+ <goals>
+ <goal>smart-generate</goal>
+ </goals>
+ </execution>
+ </executions>
+ <!--executions>
+ <execution>
+ <id>Test Regression Generator</id>
+ <phase>generate-test-sources</phase>
+ <configuration>
+ <inputs>
+ <input>model:src/main/models/dtotest.objectmodel</input>
+ </inputs>
<includes>dtotest.objectmodel</includes>
<templates>org.nuiton.eugene.test.generator.BeanGenerator</templates>
</configuration>
<goals>
- <goal>generate-from-models</goal>
+ <goal>smart-generate</goal>
</goals>
</execution>
<execution>
@@ -126,7 +171,7 @@
<goal>generate-from-models</goal>
</goals>
</execution>
- </executions>
+ </executions-->
<dependencies>
<dependency>
<groupId>log4j</groupId>
Copied: trunk/maven-eugene-plugin/src/it/smart-generate/only-zargo/README.txt (from rev 763, trunk/maven-eugene-plugin/src/it/generate-model-files/testIncludeWithNoProtocol/README.txt)
===================================================================
--- trunk/maven-eugene-plugin/src/it/smart-generate/only-zargo/README.txt (rev 0)
+++ trunk/maven-eugene-plugin/src/it/smart-generate/only-zargo/README.txt 2009-12-18 10:28:45 UTC (rev 766)
@@ -0,0 +1,16 @@
+On teste ici le goal generate-model-files avec en include que des includes sans protocol
+des writers connus :
+
+<execution>
+ <phase>generate-sources</phase>
+ <configuration>
+ <modelType>objectmodel</modelType>
+ <includes>
+ <include>src/main/zargo:**/*.zargo</include>
+ </includes>
+ <fullPackagePath>org.nuiton.topia.test.entities</fullPackagePath>
+ </configuration>
+ <goals>
+ <goal>generate-model</goal>
+ </goals>
+</execution>
\ No newline at end of file
Copied: trunk/maven-eugene-plugin/src/it/smart-generate/only-zargo/invoker.properties (from rev 763, trunk/maven-eugene-plugin/src/it/generate-model-files/testIncludeWithNoProtocol/invoker.properties)
===================================================================
--- trunk/maven-eugene-plugin/src/it/smart-generate/only-zargo/invoker.properties (rev 0)
+++ trunk/maven-eugene-plugin/src/it/smart-generate/only-zargo/invoker.properties 2009-12-18 10:28:45 UTC (rev 766)
@@ -0,0 +1,21 @@
+# A comma or space separated list of goals/phases to execute, may
+# specify an empty list to execute the default goal of the IT project
+invoker.goals=clean generate-sources
+
+# Optionally, a list of goals to run during further invocations of Maven
+#invoker.goals.2=${project.groupId}:${project.artifactId}:${project.version}:run
+
+# A comma or space separated list of profiles to activate
+#invoker.profiles=run-all run-once
+
+# The value for the environment variable MAVEN_OPTS
+#invoker.mavenOpts=-Dfile.encoding=UTF-16 -Xms32m -Xmx256m
+
+# Possible values are "fail-fast" (default), "fail-at-end" and "fail-never"
+invoker.failureBehavior=fail-at-end
+
+# The expected result of the build, possible values are "success" (default) and "failure"
+#invoker.buildResult=success
+
+# A boolean value controlling the -N flag, defaults to "false"
+#invoker.nonRecursive=false
Copied: trunk/maven-eugene-plugin/src/it/smart-generate/only-zargo/pom.xml (from rev 763, trunk/maven-eugene-plugin/src/it/generate-model-files/testIncludeWithNoProtocol/pom.xml)
===================================================================
--- trunk/maven-eugene-plugin/src/it/smart-generate/only-zargo/pom.xml (rev 0)
+++ trunk/maven-eugene-plugin/src/it/smart-generate/only-zargo/pom.xml 2009-12-18 10:28:45 UTC (rev 766)
@@ -0,0 +1,106 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+
+ <modelVersion>4.0.0</modelVersion>
+
+ <!-- ************************************************************* -->
+ <!-- *** POM Relationships *************************************** -->
+ <!-- ************************************************************* -->
+
+ <groupId>org.nuiton.eugene.test</groupId>
+ <artifactId>testIncludeWithOnlyProtocol</artifactId>
+ <version>2.0.0</version>
+
+ <dependencies>
+ <dependency>
+ <groupId>org.nuiton.eugene</groupId>
+ <artifactId>eugene</artifactId>
+ <version>${eugeneVersion}</version>
+ <scope>compile</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>org.nuiton</groupId>
+ <artifactId>nuiton-utils</artifactId>
+ <version>1.1.1</version>
+ <scope>compile</scope>
+ </dependency>
+
+ </dependencies>
+
+
+ <!-- ************************************************************* -->
+ <!-- *** Project Information ************************************* -->
+ <!-- ************************************************************* -->
+
+ <name>EUGene Test :: testIncludeWithOnlyProtocol</name>
+
+ <!-- ************************************************************* -->
+ <!-- *** Build Settings ****************************************** -->
+ <!-- ************************************************************* -->
+
+ <packaging>jar</packaging>
+
+ <properties>
+
+ <eugeneVersion>@pom.version@</eugeneVersion>
+
+ <!-- default encoding -->
+ <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+
+ </properties>
+
+ <build>
+
+ <plugins>
+
+ <plugin>
+ <groupId>org.nuiton.eugene</groupId>
+ <artifactId>maven-eugene-plugin</artifactId>
+ <version>${eugeneVersion}</version>
+ <configuration>
+ <skipInputs>xmi,model</skipInputs>
+ </configuration>
+ <executions>
+ <execution>
+ <id>Zargo to xmi</id>
+ <phase>generate-sources</phase>
+ <configuration>
+ <inputs>
+ <input>zargo</input>
+ </inputs>
+ <outputDirectory>target/generated-sources-xmi</outputDirectory>
+ </configuration>
+ <goals>
+ <goal>smart-generate</goal>
+ </goals>
+ </execution>
+ <execution>
+ <id>Zargo to xmi 2</id>
+ <phase>generate-sources</phase>
+ <configuration>
+ <inputs>
+ <input>src/main/zargo:**/*.zargo</input>
+ </inputs>
+ <outputDirectory>target/generated-sources-xmi2</outputDirectory>
+ </configuration>
+ <goals>
+ <goal>smart-generate</goal>
+ </goals>
+ </execution>
+ </executions>
+ <dependencies>
+ <dependency>
+ <groupId>log4j</groupId>
+ <artifactId>log4j</artifactId>
+ <version>1.2.14</version>
+ </dependency>
+ </dependencies>
+ </plugin>
+ </plugins>
+ </build>
+
+</project>
+
+
Added: trunk/maven-eugene-plugin/src/it/smart-generate/only-zargo/src/main/xmi/topiatest.properties
===================================================================
--- trunk/maven-eugene-plugin/src/it/smart-generate/only-zargo/src/main/xmi/topiatest.properties (rev 0)
+++ trunk/maven-eugene-plugin/src/it/smart-generate/only-zargo/src/main/xmi/topiatest.properties 2009-12-18 10:28:45 UTC (rev 766)
@@ -0,0 +1 @@
+model.tagvalue.generateOperatorForDAOHelper=true
\ No newline at end of file
Added: trunk/maven-eugene-plugin/src/it/smart-generate/only-zargo/src/main/xmi/topiatest.zargo
===================================================================
(Binary files differ)
Property changes on: trunk/maven-eugene-plugin/src/it/smart-generate/only-zargo/src/main/xmi/topiatest.zargo
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/maven-eugene-plugin/src/it/smart-generate/only-zargo/src/main/zargo/topiatest.properties
===================================================================
--- trunk/maven-eugene-plugin/src/it/smart-generate/only-zargo/src/main/zargo/topiatest.properties (rev 0)
+++ trunk/maven-eugene-plugin/src/it/smart-generate/only-zargo/src/main/zargo/topiatest.properties 2009-12-18 10:28:45 UTC (rev 766)
@@ -0,0 +1 @@
+model.tagvalue.generateOperatorForDAOHelper=true
\ No newline at end of file
Added: trunk/maven-eugene-plugin/src/it/smart-generate/only-zargo/src/main/zargo/topiatest.zargo
===================================================================
(Binary files differ)
Property changes on: trunk/maven-eugene-plugin/src/it/smart-generate/only-zargo/src/main/zargo/topiatest.zargo
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Copied: trunk/maven-eugene-plugin/src/it/smart-generate/only-zargo/verify.groovy (from rev 763, trunk/maven-eugene-plugin/src/it/generate-model-files/testIncludeWithNoProtocol/verify.groovy)
===================================================================
--- trunk/maven-eugene-plugin/src/it/smart-generate/only-zargo/verify.groovy (rev 0)
+++ trunk/maven-eugene-plugin/src/it/smart-generate/only-zargo/verify.groovy 2009-12-18 10:28:45 UTC (rev 766)
@@ -0,0 +1,25 @@
+
+
+// Zargo to xmi
+
+assert new File(basedir, 'target/generated-sources-xmi').exists();
+assert new File(basedir, 'target/generated-sources-xmi/xmi').exists();
+assert new File(basedir, 'target/generated-sources-xmi/xmi/topiatest.properties').exists();
+assert new File(basedir, 'target/generated-sources-xmi/xmi/topiatest.xmi').exists();
+
+assert !new File(basedir, 'target/generated-sources-xmi/models').exists();
+assert !new File(basedir, 'target/generated-sources-xmi/java').exists();
+
+// Zargo to xmi 2
+
+assert new File(basedir, 'target/generated-sources-xmi2').exists();
+
+assert new File(basedir, 'target/generated-sources-xmi2/xmi').exists();
+assert new File(basedir, 'target/generated-sources-xmi2/xmi/topiatest.properties').exists();
+assert new File(basedir, 'target/generated-sources-xmi2/xmi/topiatest.xmi').exists();
+
+assert !new File(basedir, 'target/generated-sources-xmi2/models').exists();
+assert !new File(basedir, 'target/generated-sources-xmi2/java').exists();
+
+return true;
+
Added: trunk/maven-eugene-plugin/src/it/smart-generate/only-zargo-xmi/README.txt
===================================================================
--- trunk/maven-eugene-plugin/src/it/smart-generate/only-zargo-xmi/README.txt (rev 0)
+++ trunk/maven-eugene-plugin/src/it/smart-generate/only-zargo-xmi/README.txt 2009-12-18 10:28:45 UTC (rev 766)
@@ -0,0 +1,16 @@
+On teste ici le goal generate-model-files avec en include que des includes sans protocol
+des writers connus :
+
+<execution>
+ <phase>generate-sources</phase>
+ <configuration>
+ <modelType>objectmodel</modelType>
+ <includes>
+ <include>src/main/zargo:**/*.zargo</include>
+ </includes>
+ <fullPackagePath>org.nuiton.topia.test.entities</fullPackagePath>
+ </configuration>
+ <goals>
+ <goal>generate-model</goal>
+ </goals>
+</execution>
\ No newline at end of file
Added: trunk/maven-eugene-plugin/src/it/smart-generate/only-zargo-xmi/invoker.properties
===================================================================
--- trunk/maven-eugene-plugin/src/it/smart-generate/only-zargo-xmi/invoker.properties (rev 0)
+++ trunk/maven-eugene-plugin/src/it/smart-generate/only-zargo-xmi/invoker.properties 2009-12-18 10:28:45 UTC (rev 766)
@@ -0,0 +1,21 @@
+# A comma or space separated list of goals/phases to execute, may
+# specify an empty list to execute the default goal of the IT project
+invoker.goals=clean generate-sources
+
+# Optionally, a list of goals to run during further invocations of Maven
+#invoker.goals.2=${project.groupId}:${project.artifactId}:${project.version}:run
+
+# A comma or space separated list of profiles to activate
+#invoker.profiles=run-all run-once
+
+# The value for the environment variable MAVEN_OPTS
+#invoker.mavenOpts=-Dfile.encoding=UTF-16 -Xms32m -Xmx256m
+
+# Possible values are "fail-fast" (default), "fail-at-end" and "fail-never"
+invoker.failureBehavior=fail-at-end
+
+# The expected result of the build, possible values are "success" (default) and "failure"
+#invoker.buildResult=success
+
+# A boolean value controlling the -N flag, defaults to "false"
+#invoker.nonRecursive=false
Added: trunk/maven-eugene-plugin/src/it/smart-generate/only-zargo-xmi/pom.xml
===================================================================
--- trunk/maven-eugene-plugin/src/it/smart-generate/only-zargo-xmi/pom.xml (rev 0)
+++ trunk/maven-eugene-plugin/src/it/smart-generate/only-zargo-xmi/pom.xml 2009-12-18 10:28:45 UTC (rev 766)
@@ -0,0 +1,136 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+
+ <modelVersion>4.0.0</modelVersion>
+
+ <!-- ************************************************************* -->
+ <!-- *** POM Relationships *************************************** -->
+ <!-- ************************************************************* -->
+
+ <groupId>org.nuiton.eugene.test</groupId>
+ <artifactId>testIncludeWithOnlyProtocol</artifactId>
+ <version>2.0.0</version>
+
+ <dependencies>
+ <dependency>
+ <groupId>org.nuiton.eugene</groupId>
+ <artifactId>eugene</artifactId>
+ <version>${eugeneVersion}</version>
+ <scope>compile</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>org.nuiton</groupId>
+ <artifactId>nuiton-utils</artifactId>
+ <version>1.1.1</version>
+ <scope>compile</scope>
+ </dependency>
+
+ </dependencies>
+
+
+ <!-- ************************************************************* -->
+ <!-- *** Project Information ************************************* -->
+ <!-- ************************************************************* -->
+
+ <name>EUGene Test :: testIncludeWithOnlyProtocol</name>
+
+ <!-- ************************************************************* -->
+ <!-- *** Build Settings ****************************************** -->
+ <!-- ************************************************************* -->
+
+ <packaging>jar</packaging>
+
+ <properties>
+
+ <eugeneVersion>@pom.version@</eugeneVersion>
+
+ <!-- default encoding -->
+ <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+
+ </properties>
+
+ <build>
+
+ <plugins>
+
+ <plugin>
+ <groupId>org.nuiton.eugene</groupId>
+ <artifactId>maven-eugene-plugin</artifactId>
+ <version>${eugeneVersion}</version>
+ <configuration>
+ <skipInputs>model</skipInputs>
+ <resolver>org.nuiton.util.FasterCachedResourceResolver</resolver>
+ <fullPackagePath>org.nuiton.topia.test.entities</fullPackagePath>
+ </configuration>
+ <executions>
+ <execution>
+ <id>Zargo to object model</id>
+ <phase>generate-sources</phase>
+ <configuration>
+ <inputs>
+ <input>zargo:src/main/zargo:*.zargo</input>
+ </inputs>
+ <outputDirectory>target/generated-sources-zargo2ObjectModel</outputDirectory>
+ </configuration>
+ <goals>
+ <goal>smart-generate</goal>
+ </goals>
+ </execution>
+ <execution>
+ <id>Zargo to state model</id>
+ <phase>generate-sources</phase>
+ <configuration>
+ <modelType>statemodel</modelType>
+ <inputs>
+ <input>zargo:src/main/zargo:*.zargo</input>
+ </inputs>
+ <outputDirectory>target/generated-sources-zargo2StateModel</outputDirectory>
+ </configuration>
+ <goals>
+ <goal>smart-generate</goal>
+ </goals>
+ </execution>
+ <execution>
+ <id>Xmi to object model</id>
+ <phase>generate-sources</phase>
+ <configuration>
+ <inputs>
+ <input>xmi</input>
+ </inputs>
+ <outputDirectory>target/generated-sources-xmi2ObjectModel</outputDirectory>
+ </configuration>
+ <goals>
+ <goal>smart-generate</goal>
+ </goals>
+ </execution>
+ <execution>
+ <id>Xmi to state model</id>
+ <phase>generate-sources</phase>
+ <configuration>
+ <modelType>statemodel</modelType>
+ <inputs>
+ <input>xmi</input>
+ </inputs>
+ <outputDirectory>target/generated-sources-xmi2StateModel</outputDirectory>
+ </configuration>
+ <goals>
+ <goal>smart-generate</goal>
+ </goals>
+ </execution>
+ </executions>
+ <dependencies>
+ <dependency>
+ <groupId>log4j</groupId>
+ <artifactId>log4j</artifactId>
+ <version>1.2.14</version>
+ </dependency>
+ </dependencies>
+ </plugin>
+ </plugins>
+ </build>
+
+</project>
+
+
Added: trunk/maven-eugene-plugin/src/it/smart-generate/only-zargo-xmi/src/main/xmi/topiatest.properties
===================================================================
--- trunk/maven-eugene-plugin/src/it/smart-generate/only-zargo-xmi/src/main/xmi/topiatest.properties (rev 0)
+++ trunk/maven-eugene-plugin/src/it/smart-generate/only-zargo-xmi/src/main/xmi/topiatest.properties 2009-12-18 10:28:45 UTC (rev 766)
@@ -0,0 +1 @@
+model.tagvalue.generateOperatorForDAOHelper=true
\ No newline at end of file
Added: trunk/maven-eugene-plugin/src/it/smart-generate/only-zargo-xmi/src/main/xmi/topiatest.xmi
===================================================================
--- trunk/maven-eugene-plugin/src/it/smart-generate/only-zargo-xmi/src/main/xmi/topiatest.xmi (rev 0)
+++ trunk/maven-eugene-plugin/src/it/smart-generate/only-zargo-xmi/src/main/xmi/topiatest.xmi 2009-12-18 10:28:45 UTC (rev 766)
@@ -0,0 +1,1334 @@
+<?xml version = '1.0' encoding = 'UTF-8' ?>
+<XMI xmi.version = '1.2' xmlns:UML = 'org.omg.xmi.namespace.UML' timestamp = 'Mon Oct 19 15:56:54 CEST 2009'>
+ <XMI.header> <XMI.documentation>
+ <XMI.exporter>ArgoUML (using Netbeans XMI Writer version 1.0)</XMI.exporter>
+ <XMI.exporterVersion>0.28.1(6) revised on $Date: 2007-05-12 08:08:08 +0200 (Sat, 12 May 2007) $ </XMI.exporterVersion>
+ </XMI.documentation>
+ <XMI.metamodel xmi.name="UML" xmi.version="1.4"/></XMI.header>
+ <XMI.content>
+ <UML:Model xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:000000000000077B'
+ name = 'xmiTopiaTest' isSpecification = 'false' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:00000000000008E3'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>1.2</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '127-0-0-1-3f03561c:11667f969c5:-8000:00000000000008E4'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:Namespace.ownedElement>
+ <UML:TagDefinition xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:00000000000008E4'
+ name = 'version' isSpecification = 'false' tagType = 'String'>
+ <UML:TagDefinition.multiplicity>
+ <UML:Multiplicity xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:00000000000008E6'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:00000000000008E5'
+ lower = '0' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:TagDefinition.multiplicity>
+ </UML:TagDefinition>
+ <UML:Stereotype xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:00000000000008E7'
+ name = 'entity' isSpecification = 'false' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:Stereotype.baseClass>Class</UML:Stereotype.baseClass>
+ </UML:Stereotype>
+ <UML:Package xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:000000000000090B'
+ name = 'org' isSpecification = 'false' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:Namespace.ownedElement>
+ <UML:Package xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:000000000000090C'
+ name = 'nuiton' isSpecification = 'false' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:Namespace.ownedElement>
+ <UML:Package xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:000000000000090D'
+ name = 'topiatest' isSpecification = 'false' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:Namespace.ownedElement>
+ <UML:Class xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:00000000000008DA'
+ name = 'Personne' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '127-0-0-1-3f03561c:11667f969c5:-8000:00000000000008E7'/>
+ </UML:ModelElement.stereotype>
+ <UML:GeneralizableElement.generalization>
+ <UML:Generalization xmi.idref = '-64--88-99-15-7b62aac4:121aaa56ef3:-8000:0000000000001020'/>
+ </UML:GeneralizableElement.generalization>
+ <UML:Classifier.feature>
+ <UML:Attribute xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000CF9'
+ name = 'name' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000CFD'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000CFC'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-64--88-99-15-67f6b63e:12187ee3a69:-8000:0000000000000EB0'
+ name = 'otherNames' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-64--88-99-15-67f6b63e:12187ee3a69:-8000:0000000000000EB8'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-64--88-99-15-67f6b63e:12187ee3a69:-8000:0000000000000EB7'
+ lower = '0' upper = '-1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Class xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:00000000000008DE'
+ name = 'Employe' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '127-0-0-1-3f03561c:11667f969c5:-8000:00000000000008E7'/>
+ </UML:ModelElement.stereotype>
+ <UML:GeneralizableElement.generalization>
+ <UML:Generalization xmi.idref = '127-0-0-1-3f03561c:11667f969c5:-8000:00000000000008E2'/>
+ </UML:GeneralizableElement.generalization>
+ <UML:Classifier.feature>
+ <UML:Attribute xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D54'
+ name = 'salary' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D5A'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D59'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Class xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:00000000000008E0'
+ name = 'Company' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '127-0-0-1-3f03561c:11667f969c5:-8000:00000000000008E7'/>
+ </UML:ModelElement.stereotype>
+ <UML:Classifier.feature>
+ <UML:Attribute xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:00000000000011BD'
+ name = 'name' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:00000000000011C5'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:00000000000011C4'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Class xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:00000000000008F9'
+ name = 'Address' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '127-0-0-1-3f03561c:11667f969c5:-8000:00000000000008E7'/>
+ </UML:ModelElement.stereotype>
+ <UML:Classifier.feature>
+ <UML:Attribute xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000903'
+ name = 'city' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000CF7'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000CF6'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000CE8'
+ name = 'adress' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000CF3'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000CF2'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Association xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:00000000000008FB'
+ name = '' isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'>
+ <UML:Association.connection>
+ <UML:AssociationEnd xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:00000000000008FC'
+ visibility = 'public' isSpecification = 'false' isNavigable = 'false' ordering = 'unordered'
+ aggregation = 'none' targetScope = 'instance' changeability = 'changeable'>
+ <UML:AssociationEnd.multiplicity>
+ <UML:Multiplicity xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:00000000000008FD'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:00000000000008FE'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:AssociationEnd.multiplicity>
+ <UML:AssociationEnd.participant>
+ <UML:Class xmi.idref = '127-0-0-1-3f03561c:11667f969c5:-8000:00000000000008DA'/>
+ </UML:AssociationEnd.participant>
+ </UML:AssociationEnd>
+ <UML:AssociationEnd xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:00000000000008FF'
+ visibility = 'public' isSpecification = 'false' isNavigable = 'true' ordering = 'unordered'
+ aggregation = 'none' targetScope = 'instance' changeability = 'changeable'>
+ <UML:AssociationEnd.multiplicity>
+ <UML:Multiplicity xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000900'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000901'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:AssociationEnd.multiplicity>
+ <UML:AssociationEnd.participant>
+ <UML:Class xmi.idref = '127-0-0-1-3f03561c:11667f969c5:-8000:00000000000008F9'/>
+ </UML:AssociationEnd.participant>
+ </UML:AssociationEnd>
+ </UML:Association.connection>
+ </UML:Association>
+ <UML:Generalization xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:00000000000008E2'
+ isSpecification = 'false'>
+ <UML:Generalization.child>
+ <UML:Class xmi.idref = '127-0-0-1-3f03561c:11667f969c5:-8000:00000000000008DE'/>
+ </UML:Generalization.child>
+ <UML:Generalization.parent>
+ <UML:Class xmi.idref = '127-0-0-1-3f03561c:11667f969c5:-8000:00000000000008DA'/>
+ </UML:Generalization.parent>
+ </UML:Generalization>
+ <UML:Association xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000CFE'
+ name = '' isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'>
+ <UML:Association.connection>
+ <UML:AssociationEnd xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000CFF'
+ visibility = 'public' isSpecification = 'false' isNavigable = 'false' ordering = 'unordered'
+ aggregation = 'none' targetScope = 'instance' changeability = 'changeable'>
+ <UML:AssociationEnd.multiplicity>
+ <UML:Multiplicity xmi.id = '-64--88-99-15--164a0c3b:121af97fc30:-8000:000000000000102C'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-64--88-99-15--164a0c3b:121af97fc30:-8000:000000000000102B'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:AssociationEnd.multiplicity>
+ <UML:AssociationEnd.participant>
+ <UML:Class xmi.idref = '127-0-0-1-3f03561c:11667f969c5:-8000:00000000000008E0'/>
+ </UML:AssociationEnd.participant>
+ </UML:AssociationEnd>
+ <UML:AssociationEnd xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D02'
+ visibility = 'public' isSpecification = 'false' isNavigable = 'true' ordering = 'unordered'
+ aggregation = 'none' targetScope = 'instance' changeability = 'changeable'>
+ <UML:AssociationEnd.multiplicity>
+ <UML:Multiplicity xmi.id = '-64--88-99-15--164a0c3b:121af97fc30:-8000:000000000000102A'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-64--88-99-15--164a0c3b:121af97fc30:-8000:0000000000001029'
+ lower = '0' upper = '-1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:AssociationEnd.multiplicity>
+ <UML:AssociationEnd.participant>
+ <UML:Class xmi.idref = '127-0-0-1-3f03561c:11667f969c5:-8000:00000000000008DE'/>
+ </UML:AssociationEnd.participant>
+ </UML:AssociationEnd>
+ </UML:Association.connection>
+ </UML:Association>
+ <UML:Class xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D0B'
+ name = 'Department' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '127-0-0-1-3f03561c:11667f969c5:-8000:00000000000008E7'/>
+ </UML:ModelElement.stereotype>
+ <UML:Classifier.feature>
+ <UML:Attribute xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D25'
+ name = 'name' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D29'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D28'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Class xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D2A'
+ name = 'Product' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '127-0-0-1-3f03561c:11667f969c5:-8000:00000000000008E7'/>
+ </UML:ModelElement.stereotype>
+ <UML:Classifier.feature>
+ <UML:Attribute xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D37'
+ name = 'name' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D3F'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D3E'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Class xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D5B'
+ name = 'Store' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '127-0-0-1-3f03561c:11667f969c5:-8000:00000000000008E7'/>
+ </UML:ModelElement.stereotype>
+ <UML:Classifier.feature>
+ <UML:Attribute xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D7D'
+ name = 'name' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D83'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D82'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Class xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D40'
+ name = 'Type' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '127-0-0-1-3f03561c:11667f969c5:-8000:00000000000008E7'/>
+ </UML:ModelElement.stereotype>
+ <UML:Classifier.feature>
+ <UML:Attribute xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D4D'
+ name = 'name' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D53'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D52'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:AssociationClass xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D65'
+ name = 'Bill' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '127-0-0-1-3f03561c:11667f969c5:-8000:00000000000008E7'/>
+ </UML:ModelElement.stereotype>
+ <UML:Association.connection>
+ <UML:AssociationEnd xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D66'
+ visibility = 'public' isSpecification = 'false' isNavigable = 'false' ordering = 'unordered'
+ aggregation = 'none' targetScope = 'instance' changeability = 'changeable'>
+ <UML:AssociationEnd.multiplicity>
+ <UML:Multiplicity xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D89'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D88'
+ lower = '0' upper = '-1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:AssociationEnd.multiplicity>
+ <UML:AssociationEnd.participant>
+ <UML:Class xmi.idref = '127-0-0-1-3f03561c:11667f969c5:-8000:00000000000008E0'/>
+ </UML:AssociationEnd.participant>
+ </UML:AssociationEnd>
+ <UML:AssociationEnd xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D69'
+ visibility = 'public' isSpecification = 'false' isNavigable = 'true' ordering = 'unordered'
+ aggregation = 'none' targetScope = 'instance' changeability = 'changeable'>
+ <UML:AssociationEnd.multiplicity>
+ <UML:Multiplicity xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D8D'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D8C'
+ lower = '0' upper = '-1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:AssociationEnd.multiplicity>
+ <UML:AssociationEnd.participant>
+ <UML:Class xmi.idref = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D5B'/>
+ </UML:AssociationEnd.participant>
+ </UML:AssociationEnd>
+ </UML:Association.connection>
+ <UML:Classifier.feature>
+ <UML:Attribute xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D6D'
+ name = 'cost' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D75'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D74'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D76'
+ name = 'date' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D7A'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D79'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000085F'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ </UML:AssociationClass>
+ <UML:Association xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D18'
+ name = '' isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'>
+ <UML:Association.connection>
+ <UML:AssociationEnd xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D19'
+ name = 'lead' visibility = 'public' isSpecification = 'false' isNavigable = 'false'
+ ordering = 'unordered' aggregation = 'none' targetScope = 'instance' changeability = 'changeable'>
+ <UML:AssociationEnd.multiplicity>
+ <UML:Multiplicity xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D24'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D23'
+ lower = '0' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:AssociationEnd.multiplicity>
+ <UML:AssociationEnd.participant>
+ <UML:Class xmi.idref = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D0B'/>
+ </UML:AssociationEnd.participant>
+ </UML:AssociationEnd>
+ <UML:AssociationEnd xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D1C'
+ name = 'leader' visibility = 'public' isSpecification = 'false' isNavigable = 'true'
+ ordering = 'unordered' aggregation = 'none' targetScope = 'instance' changeability = 'changeable'>
+ <UML:AssociationEnd.multiplicity>
+ <UML:Multiplicity xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D1D'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D1E'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:AssociationEnd.multiplicity>
+ <UML:AssociationEnd.participant>
+ <UML:Class xmi.idref = '127-0-0-1-3f03561c:11667f969c5:-8000:00000000000008DE'/>
+ </UML:AssociationEnd.participant>
+ </UML:AssociationEnd>
+ </UML:Association.connection>
+ </UML:Association>
+ <UML:Association xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D0D'
+ name = '' isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'>
+ <UML:Association.connection>
+ <UML:AssociationEnd xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D0E'
+ visibility = 'public' isSpecification = 'false' isNavigable = 'true' ordering = 'unordered'
+ aggregation = 'composite' targetScope = 'instance' changeability = 'changeable'>
+ <UML:AssociationEnd.multiplicity>
+ <UML:Multiplicity xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D0F'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D10'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:AssociationEnd.multiplicity>
+ <UML:AssociationEnd.participant>
+ <UML:Class xmi.idref = '127-0-0-1-3f03561c:11667f969c5:-8000:00000000000008E0'/>
+ </UML:AssociationEnd.participant>
+ </UML:AssociationEnd>
+ <UML:AssociationEnd xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D11'
+ visibility = 'public' isSpecification = 'false' isNavigable = 'true' ordering = 'unordered'
+ aggregation = 'none' targetScope = 'instance' changeability = 'changeable'>
+ <UML:AssociationEnd.multiplicity>
+ <UML:Multiplicity xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D17'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D16'
+ lower = '0' upper = '-1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:AssociationEnd.multiplicity>
+ <UML:AssociationEnd.participant>
+ <UML:Class xmi.idref = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D0B'/>
+ </UML:AssociationEnd.participant>
+ </UML:AssociationEnd>
+ </UML:Association.connection>
+ </UML:Association>
+ <UML:Association xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D2C'
+ name = '' isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'>
+ <UML:Association.connection>
+ <UML:AssociationEnd xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D2D'
+ visibility = 'public' isSpecification = 'false' isNavigable = 'false' ordering = 'unordered'
+ aggregation = 'none' targetScope = 'instance' changeability = 'changeable'>
+ <UML:AssociationEnd.multiplicity>
+ <UML:Multiplicity xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D2E'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D2F'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:AssociationEnd.multiplicity>
+ <UML:AssociationEnd.participant>
+ <UML:Class xmi.idref = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D0B'/>
+ </UML:AssociationEnd.participant>
+ </UML:AssociationEnd>
+ <UML:AssociationEnd xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D30'
+ visibility = 'public' isSpecification = 'false' isNavigable = 'true' ordering = 'unordered'
+ aggregation = 'none' targetScope = 'instance' changeability = 'changeable'>
+ <UML:AssociationEnd.multiplicity>
+ <UML:Multiplicity xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D36'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D35'
+ lower = '0' upper = '-1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:AssociationEnd.multiplicity>
+ <UML:AssociationEnd.participant>
+ <UML:Class xmi.idref = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D2A'/>
+ </UML:AssociationEnd.participant>
+ </UML:AssociationEnd>
+ </UML:Association.connection>
+ </UML:Association>
+ <UML:Association xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D42'
+ name = '' isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'>
+ <UML:Association.connection>
+ <UML:AssociationEnd xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D43'
+ visibility = 'public' isSpecification = 'false' isNavigable = 'false' ordering = 'unordered'
+ aggregation = 'none' targetScope = 'instance' changeability = 'changeable'>
+ <UML:AssociationEnd.multiplicity>
+ <UML:Multiplicity xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D4C'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D4B'
+ lower = '0' upper = '-1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:AssociationEnd.multiplicity>
+ <UML:AssociationEnd.participant>
+ <UML:Class xmi.idref = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D2A'/>
+ </UML:AssociationEnd.participant>
+ </UML:AssociationEnd>
+ <UML:AssociationEnd xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D46'
+ visibility = 'public' isSpecification = 'false' isNavigable = 'true' ordering = 'unordered'
+ aggregation = 'none' targetScope = 'instance' changeability = 'changeable'>
+ <UML:AssociationEnd.multiplicity>
+ <UML:Multiplicity xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D47'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D48'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:AssociationEnd.multiplicity>
+ <UML:AssociationEnd.participant>
+ <UML:Class xmi.idref = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D40'/>
+ </UML:AssociationEnd.participant>
+ </UML:AssociationEnd>
+ </UML:Association.connection>
+ </UML:Association>
+ <UML:Package xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000E71'
+ name = 'beangen' isSpecification = 'false' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:Namespace.ownedElement>
+ <UML:Class xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000E72'
+ name = 'Voiture' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'true' isActive = 'false'>
+ <UML:ModelElement.clientDependency>
+ <UML:Abstraction xmi.idref = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000E77'/>
+ </UML:ModelElement.clientDependency>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000E73'/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000EA1'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>Doc for BeanA</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition href = 'http://argouml.org/profiles/uml14/default-uml14.xmi#.:000000000000087C'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:Classifier.feature>
+ <UML:Attribute xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000E7C'
+ name = 'immatriculation' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000E7D'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000E7E'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000EA2'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>attrA of BeanA</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition href = 'http://argouml.org/profiles/uml14/default-uml14.xmi#.:000000000000087C'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000E7F'
+ name = 'modele' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000E80'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000E81'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000EE6'
+ name = 'proprietaire' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000EE7'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000EE8'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = '127-0-0-1-3f03561c:11667f969c5:-8000:00000000000008DA'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Class xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000E75'
+ name = 'Roue' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000E73'/>
+ </UML:ModelElement.stereotype>
+ <UML:Classifier.feature>
+ <UML:Operation xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000E85'
+ name = 'mount' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000E86'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Operation xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000E87'
+ name = 'getModel' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000E88'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D2A'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000E89'
+ name = 'id' isSpecification = 'false'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Abstraction xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000E77'
+ isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000E78'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Class xmi.idref = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000E72'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Interface xmi.idref = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000E76'/>
+ </UML:Dependency.supplier>
+ </UML:Abstraction>
+ <UML:Interface xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000E76'
+ name = 'Vehicule' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:Classifier.feature>
+ <UML:Operation xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000E7A'
+ name = 'start' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000E7B'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ </UML:Classifier.feature>
+ </UML:Interface>
+ <UML:Association xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000E8A'
+ name = '' isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'>
+ <UML:Association.connection>
+ <UML:AssociationEnd xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000E8B'
+ visibility = 'public' isSpecification = 'false' isNavigable = 'true' ordering = 'unordered'
+ aggregation = 'composite' targetScope = 'instance' changeability = 'changeable'>
+ <UML:AssociationEnd.multiplicity>
+ <UML:Multiplicity xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000E8C'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000E8D'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:AssociationEnd.multiplicity>
+ <UML:AssociationEnd.participant>
+ <UML:Class xmi.idref = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000E72'/>
+ </UML:AssociationEnd.participant>
+ </UML:AssociationEnd>
+ <UML:AssociationEnd xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000E8E'
+ visibility = 'public' isSpecification = 'false' isNavigable = 'true' ordering = 'unordered'
+ aggregation = 'none' targetScope = 'instance' changeability = 'changeable'>
+ <UML:AssociationEnd.multiplicity>
+ <UML:Multiplicity xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000ED2'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000ED1'
+ lower = '4' upper = '4'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:AssociationEnd.multiplicity>
+ <UML:AssociationEnd.participant>
+ <UML:Class xmi.idref = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000E75'/>
+ </UML:AssociationEnd.participant>
+ </UML:AssociationEnd>
+ </UML:Association.connection>
+ </UML:Association>
+ <UML:Class xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000EAB'
+ name = 'RelationDTO' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000E74'/>
+ </UML:ModelElement.stereotype>
+ <UML:Classifier.feature>
+ <UML:Attribute xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000EAC'
+ name = 'idCompany' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000EAD'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000EAE'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000EAF'
+ name = 'idDepartement' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000EB0'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000EB1'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000EBB'
+ name = 'dateDebut' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000EBC'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000EBD'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000085F'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Class xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000EA9'
+ name = 'PersonneDTO' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.clientDependency>
+ <UML:Dependency xmi.idref = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000EAA'/>
+ </UML:ModelElement.clientDependency>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000E74'/>
+ </UML:ModelElement.stereotype>
+ <UML:Namespace.ownedElement>
+ <UML:Dependency xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000EAA'
+ isSpecification = 'false'>
+ <UML:Dependency.client>
+ <UML:Class xmi.idref = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000EA9'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '127-0-0-1-3f03561c:11667f969c5:-8000:00000000000008DA'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ </UML:Namespace.ownedElement>
+ </UML:Class>
+ <UML:Association xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000EB2'
+ name = '' isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'>
+ <UML:Association.connection>
+ <UML:AssociationEnd xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000EB3'
+ visibility = 'public' isSpecification = 'false' isNavigable = 'false' ordering = 'unordered'
+ aggregation = 'none' targetScope = 'instance' changeability = 'changeable'>
+ <UML:AssociationEnd.multiplicity>
+ <UML:Multiplicity xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000EBA'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000EB9'
+ lower = '0' upper = '-1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:AssociationEnd.multiplicity>
+ <UML:AssociationEnd.participant>
+ <UML:Class xmi.idref = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000EAB'/>
+ </UML:AssociationEnd.participant>
+ </UML:AssociationEnd>
+ <UML:AssociationEnd xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000EB6'
+ name = 'person' visibility = 'public' isSpecification = 'false' isNavigable = 'true'
+ ordering = 'unordered' aggregation = 'none' targetScope = 'instance' changeability = 'changeable'>
+ <UML:AssociationEnd.multiplicity>
+ <UML:Multiplicity xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000EB7'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000EB8'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:AssociationEnd.multiplicity>
+ <UML:AssociationEnd.participant>
+ <UML:Class xmi.idref = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000EA9'/>
+ </UML:AssociationEnd.participant>
+ </UML:AssociationEnd>
+ </UML:Association.connection>
+ </UML:Association>
+ <UML:Class xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000ED3'
+ name = 'Siege' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000E73'/>
+ </UML:ModelElement.stereotype>
+ <UML:Classifier.feature>
+ <UML:Attribute xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000EDB'
+ name = 'noSerie' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000EDC'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000EDD'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Association xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000ED4'
+ name = '' isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'>
+ <UML:Association.connection>
+ <UML:AssociationEnd xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000ED5'
+ visibility = 'public' isSpecification = 'false' isNavigable = 'true' ordering = 'unordered'
+ aggregation = 'none' targetScope = 'instance' changeability = 'changeable'>
+ <UML:AssociationEnd.multiplicity>
+ <UML:Multiplicity xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000EE5'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000EE4'
+ lower = '1' upper = '4'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:AssociationEnd.multiplicity>
+ <UML:AssociationEnd.participant>
+ <UML:Class xmi.idref = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000ED3'/>
+ </UML:AssociationEnd.participant>
+ </UML:AssociationEnd>
+ <UML:AssociationEnd xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000ED8'
+ visibility = 'public' isSpecification = 'false' isNavigable = 'true' ordering = 'unordered'
+ aggregation = 'composite' targetScope = 'instance' changeability = 'changeable'>
+ <UML:AssociationEnd.multiplicity>
+ <UML:Multiplicity xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000ED9'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000EDA'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:AssociationEnd.multiplicity>
+ <UML:AssociationEnd.participant>
+ <UML:Class xmi.idref = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000E72'/>
+ </UML:AssociationEnd.participant>
+ </UML:AssociationEnd>
+ </UML:Association.connection>
+ </UML:Association>
+ </UML:Namespace.ownedElement>
+ </UML:Package>
+ <UML:Package xmi.id = '-64--88-99-15-7b62aac4:121aaa56ef3:-8000:000000000000100A'
+ name = 'deletetest' isSpecification = 'false' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:Namespace.ownedElement>
+ <UML:Class xmi.id = '-64--88-99-15-7b62aac4:121aaa56ef3:-8000:000000000000100B'
+ name = 'Contact2' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '127-0-0-1-3f03561c:11667f969c5:-8000:00000000000008E7'/>
+ </UML:ModelElement.stereotype>
+ <UML:Classifier.feature>
+ <UML:Attribute xmi.id = '-64--88-99-15-7b62aac4:121aaa56ef3:-8000:0000000000001019'
+ name = 'contactValue' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-64--88-99-15-7b62aac4:121aaa56ef3:-8000:000000000000101A'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-64--88-99-15-7b62aac4:121aaa56ef3:-8000:000000000000101B'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-64--88-99-15-7b62aac4:121aaa56ef3:-8000:000000000000101C'
+ name = 'type' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-64--88-99-15-7b62aac4:121aaa56ef3:-8000:000000000000101D'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-64--88-99-15-7b62aac4:121aaa56ef3:-8000:000000000000101E'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Operation xmi.id = '-64--88-99-15--164a0c3b:121af97fc30:-8000:000000000000102F'
+ name = 'findAllByCompany' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-64--88-99-15--164a0c3b:121af97fc30:-8000:0000000000001034'/>
+ </UML:ModelElement.stereotype>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-64--88-99-15--164a0c3b:121af97fc30:-8000:0000000000001030'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-64--88-99-15--164a0c3b:121af97fc30:-8000:0000000000001032'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-64--88-99-15--164a0c3b:121af97fc30:-8000:0000000000001033'
+ name = 'company' isSpecification = 'false'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '127-0-0-1-3f03561c:11667f969c5:-8000:00000000000008E0'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Association xmi.id = '-64--88-99-15-7b62aac4:121aaa56ef3:-8000:000000000000100C'
+ name = '' isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'>
+ <UML:Association.connection>
+ <UML:AssociationEnd xmi.id = '-64--88-99-15-7b62aac4:121aaa56ef3:-8000:000000000000100D'
+ name = 'contacts' visibility = 'public' isSpecification = 'false' isNavigable = 'true'
+ ordering = 'unordered' aggregation = 'none' targetScope = 'instance' changeability = 'changeable'>
+ <UML:AssociationEnd.multiplicity>
+ <UML:Multiplicity xmi.id = '-64--88-99-15--164a0c3b:121af97fc30:-8000:0000000000001026'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-64--88-99-15--164a0c3b:121af97fc30:-8000:0000000000001025'
+ lower = '0' upper = '-1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:AssociationEnd.multiplicity>
+ <UML:AssociationEnd.participant>
+ <UML:Class xmi.idref = '-64--88-99-15-7b62aac4:121aaa56ef3:-8000:000000000000100B'/>
+ </UML:AssociationEnd.participant>
+ </UML:AssociationEnd>
+ <UML:AssociationEnd xmi.id = '-64--88-99-15-7b62aac4:121aaa56ef3:-8000:0000000000001010'
+ visibility = 'public' isSpecification = 'false' isNavigable = 'true' ordering = 'unordered'
+ aggregation = 'none' targetScope = 'instance' changeability = 'changeable'>
+ <UML:AssociationEnd.multiplicity>
+ <UML:Multiplicity xmi.id = '-64--88-99-15--164a0c3b:121af97fc30:-8000:0000000000001028'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-64--88-99-15--164a0c3b:121af97fc30:-8000:0000000000001027'
+ lower = '0' upper = '-1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:AssociationEnd.multiplicity>
+ <UML:AssociationEnd.participant>
+ <UML:Class xmi.idref = '-64--88-99-15-7b62aac4:121aaa56ef3:-8000:000000000000101F'/>
+ </UML:AssociationEnd.participant>
+ </UML:AssociationEnd>
+ </UML:Association.connection>
+ </UML:Association>
+ <UML:Class xmi.id = '-64--88-99-15-7b62aac4:121aaa56ef3:-8000:0000000000001017'
+ name = 'Telephone2' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '127-0-0-1-3f03561c:11667f969c5:-8000:00000000000008E7'/>
+ </UML:ModelElement.stereotype>
+ <UML:GeneralizableElement.generalization>
+ <UML:Generalization xmi.idref = '-64--88-99-15-7b62aac4:121aaa56ef3:-8000:0000000000001018'/>
+ </UML:GeneralizableElement.generalization>
+ <UML:Classifier.feature>
+ <UML:Attribute xmi.id = '-64--88-99-15-7b62aac4:121aaa56ef3:-8000:0000000000001021'
+ name = 'prefix' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-64--88-99-15-7b62aac4:121aaa56ef3:-8000:0000000000001022'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-64--88-99-15-7b62aac4:121aaa56ef3:-8000:0000000000001023'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-64--88-99-15-7b62aac4:121aaa56ef3:-8000:0000000000001024'
+ name = 'country' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-64--88-99-15-7b62aac4:121aaa56ef3:-8000:0000000000001025'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-64--88-99-15-7b62aac4:121aaa56ef3:-8000:0000000000001026'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Generalization xmi.id = '-64--88-99-15-7b62aac4:121aaa56ef3:-8000:0000000000001018'
+ isSpecification = 'false'>
+ <UML:Generalization.child>
+ <UML:Class xmi.idref = '-64--88-99-15-7b62aac4:121aaa56ef3:-8000:0000000000001017'/>
+ </UML:Generalization.child>
+ <UML:Generalization.parent>
+ <UML:Class xmi.idref = '-64--88-99-15-7b62aac4:121aaa56ef3:-8000:000000000000100B'/>
+ </UML:Generalization.parent>
+ </UML:Generalization>
+ <UML:Class xmi.id = '-64--88-99-15-7b62aac4:121aaa56ef3:-8000:000000000000101F'
+ name = 'Party2' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '127-0-0-1-3f03561c:11667f969c5:-8000:00000000000008E7'/>
+ </UML:ModelElement.stereotype>
+ </UML:Class>
+ </UML:Namespace.ownedElement>
+ </UML:Package>
+ <UML:Generalization xmi.id = '-64--88-99-15-7b62aac4:121aaa56ef3:-8000:0000000000001020'
+ isSpecification = 'false'>
+ <UML:Generalization.child>
+ <UML:Class xmi.idref = '127-0-0-1-3f03561c:11667f969c5:-8000:00000000000008DA'/>
+ </UML:Generalization.child>
+ <UML:Generalization.parent>
+ <UML:Class xmi.idref = '-64--88-99-15-7b62aac4:121aaa56ef3:-8000:000000000000101F'/>
+ </UML:Generalization.parent>
+ </UML:Generalization>
+ </UML:Namespace.ownedElement>
+ </UML:Package>
+ <UML:Package xmi.id = '127-0-0-1-13652238:1219c622604:-8000:000000000000121D'
+ name = 'topia' isSpecification = 'false' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:Namespace.ownedElement>
+ <UML:Package xmi.id = '127-0-0-1-13652238:1219c622604:-8000:000000000000121E'
+ name = 'test' isSpecification = 'false' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:Namespace.ownedElement>
+ <UML:Package xmi.id = '127-0-0-1-13652238:1219c622604:-8000:000000000000121F'
+ name = 'entities' isSpecification = 'false' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:Namespace.ownedElement>
+ <UML:Class xmi.id = '127-0-0-1-13652238:1219c622604:-8000:0000000000001220'
+ name = 'Person' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '127-0-0-1-3f03561c:11667f969c5:-8000:00000000000008E7'/>
+ </UML:ModelElement.stereotype>
+ <UML:Classifier.feature>
+ <UML:Attribute xmi.id = '127-0-0-1-13652238:1219c622604:-8000:0000000000001228'
+ name = 'name' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '127-0-0-1-13652238:1219c622604:-8000:0000000000001229'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '127-0-0-1-13652238:1219c622604:-8000:000000000000122A'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '127-0-0-1-13652238:1219c622604:-8000:000000000000122B'
+ name = 'firstname' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '127-0-0-1-13652238:1219c622604:-8000:000000000000122C'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '127-0-0-1-13652238:1219c622604:-8000:000000000000122D'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Class xmi.id = '127-0-0-1-13652238:1219c622604:-8000:0000000000001221'
+ name = 'Pet' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '127-0-0-1-3f03561c:11667f969c5:-8000:00000000000008E7'/>
+ </UML:ModelElement.stereotype>
+ <UML:Classifier.feature>
+ <UML:Attribute xmi.id = '127-0-0-1-13652238:1219c622604:-8000:0000000000001222'
+ name = 'name' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '127-0-0-1-13652238:1219c622604:-8000:0000000000001223'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '127-0-0-1-13652238:1219c622604:-8000:0000000000001224'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '127-0-0-1-13652238:1219c622604:-8000:0000000000001225'
+ name = 'type' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '127-0-0-1-13652238:1219c622604:-8000:0000000000001226'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '127-0-0-1-13652238:1219c622604:-8000:0000000000001227'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Association xmi.id = '127-0-0-1-13652238:1219c622604:-8000:0000000000001237'
+ name = '' isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'>
+ <UML:Association.connection>
+ <UML:AssociationEnd xmi.id = '127-0-0-1-13652238:1219c622604:-8000:0000000000001238'
+ visibility = 'public' isSpecification = 'false' isNavigable = 'true' ordering = 'unordered'
+ aggregation = 'none' targetScope = 'instance' changeability = 'changeable'>
+ <UML:AssociationEnd.multiplicity>
+ <UML:Multiplicity xmi.id = '127-0-0-1-13652238:1219c622604:-8000:0000000000001239'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '127-0-0-1-13652238:1219c622604:-8000:000000000000123A'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:AssociationEnd.multiplicity>
+ <UML:AssociationEnd.participant>
+ <UML:Class xmi.idref = '127-0-0-1-13652238:1219c622604:-8000:0000000000001220'/>
+ </UML:AssociationEnd.participant>
+ </UML:AssociationEnd>
+ <UML:AssociationEnd xmi.id = '127-0-0-1-13652238:1219c622604:-8000:000000000000123B'
+ visibility = 'public' isSpecification = 'false' isNavigable = 'true' ordering = 'unordered'
+ aggregation = 'none' targetScope = 'instance' changeability = 'changeable'>
+ <UML:AssociationEnd.multiplicity>
+ <UML:Multiplicity xmi.id = '127-0-0-1-13652238:1219c622604:-8000:000000000000123F'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '127-0-0-1-13652238:1219c622604:-8000:000000000000123E'
+ lower = '0' upper = '-1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:AssociationEnd.multiplicity>
+ <UML:AssociationEnd.participant>
+ <UML:Class xmi.idref = '127-0-0-1-13652238:1219c622604:-8000:0000000000001221'/>
+ </UML:AssociationEnd.participant>
+ </UML:AssociationEnd>
+ </UML:Association.connection>
+ </UML:Association>
+ <UML:Association xmi.id = '127-0-0-1--7876194c:121c66e8e17:-8000:000000000000102A'
+ name = '' isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'>
+ <UML:Association.connection>
+ <UML:AssociationEnd xmi.id = '127-0-0-1--7876194c:121c66e8e17:-8000:000000000000102B'
+ visibility = 'public' isSpecification = 'false' isNavigable = 'false' ordering = 'unordered'
+ aggregation = 'composite' targetScope = 'instance' changeability = 'changeable'>
+ <UML:AssociationEnd.multiplicity>
+ <UML:Multiplicity xmi.id = '127-0-0-1--7876194c:121c66e8e17:-8000:000000000000102C'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '127-0-0-1--7876194c:121c66e8e17:-8000:000000000000102D'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:AssociationEnd.multiplicity>
+ <UML:AssociationEnd.participant>
+ <UML:Class xmi.idref = '127-0-0-1-13652238:1219c622604:-8000:0000000000001221'/>
+ </UML:AssociationEnd.participant>
+ </UML:AssociationEnd>
+ <UML:AssociationEnd xmi.id = '127-0-0-1--7876194c:121c66e8e17:-8000:000000000000102E'
+ visibility = 'public' isSpecification = 'false' isNavigable = 'true' ordering = 'unordered'
+ aggregation = 'none' targetScope = 'instance' changeability = 'changeable'>
+ <UML:AssociationEnd.multiplicity>
+ <UML:Multiplicity xmi.id = '127-0-0-1--7876194c:121c66e8e17:-8000:000000000000102F'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '127-0-0-1--7876194c:121c66e8e17:-8000:0000000000001030'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:AssociationEnd.multiplicity>
+ <UML:AssociationEnd.participant>
+ <UML:Class xmi.idref = '127-0-0-1--7876194c:121c66e8e17:-8000:0000000000001029'/>
+ </UML:AssociationEnd.participant>
+ </UML:AssociationEnd>
+ </UML:Association.connection>
+ </UML:Association>
+ <UML:Class xmi.id = '127-0-0-1--7876194c:121c66e8e17:-8000:0000000000001029'
+ name = 'Race' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '127-0-0-1-3f03561c:11667f969c5:-8000:00000000000008E7'/>
+ </UML:ModelElement.stereotype>
+ <UML:Classifier.feature>
+ <UML:Attribute xmi.id = '127-0-0-1--7876194c:121c66e8e17:-8000:0000000000001031'
+ name = 'name' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '127-0-0-1--7876194c:121c66e8e17:-8000:0000000000001032'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '127-0-0-1--7876194c:121c66e8e17:-8000:0000000000001033'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ </UML:Class>
+ </UML:Namespace.ownedElement>
+ </UML:Package>
+ </UML:Namespace.ownedElement>
+ </UML:Package>
+ </UML:Namespace.ownedElement>
+ </UML:Package>
+ </UML:Namespace.ownedElement>
+ </UML:Package>
+ </UML:Namespace.ownedElement>
+ </UML:Package>
+ <UML:Stereotype xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000E73'
+ name = 'bean' isSpecification = 'false' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:Stereotype.baseClass>Class</UML:Stereotype.baseClass>
+ </UML:Stereotype>
+ <UML:Stereotype xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000E74'
+ name = 'dto' isSpecification = 'false' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:Stereotype.baseClass>Class</UML:Stereotype.baseClass>
+ </UML:Stereotype>
+ <UML:Stereotype xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000E78'
+ name = 'realize' isSpecification = 'false' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:Stereotype.baseClass>Abstraction</UML:Stereotype.baseClass>
+ </UML:Stereotype>
+ <UML:Package xmi.id = '-64--88-99-15--164a0c3b:121af97fc30:-8000:0000000000001031'
+ name = 'java.util' isSpecification = 'false' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:Namespace.ownedElement>
+ <UML:Class xmi.id = '-64--88-99-15--164a0c3b:121af97fc30:-8000:0000000000001032'
+ name = 'Set<Contact2>' visibility = 'public' isSpecification = 'false'
+ isRoot = 'false' isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ </UML:Namespace.ownedElement>
+ </UML:Package>
+ <UML:Stereotype xmi.id = '-64--88-99-15--164a0c3b:121af97fc30:-8000:0000000000001034'
+ name = 'dao' isSpecification = 'false' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:Stereotype.baseClass>Operation</UML:Stereotype.baseClass>
+ </UML:Stereotype>
+ </UML:Namespace.ownedElement>
+ </UML:Model>
+ <UML:Multiplicity xmi.id = '127-0-0-1-13652238:1219c622604:-8000:0000000000001233'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '127-0-0-1-13652238:1219c622604:-8000:0000000000001234'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '127-0-0-1-13652238:1219c622604:-8000:000000000000123C'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '127-0-0-1-13652238:1219c622604:-8000:000000000000123D'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </XMI.content>
+</XMI>
Added: trunk/maven-eugene-plugin/src/it/smart-generate/only-zargo-xmi/src/main/zargo/topiatest.properties
===================================================================
--- trunk/maven-eugene-plugin/src/it/smart-generate/only-zargo-xmi/src/main/zargo/topiatest.properties (rev 0)
+++ trunk/maven-eugene-plugin/src/it/smart-generate/only-zargo-xmi/src/main/zargo/topiatest.properties 2009-12-18 10:28:45 UTC (rev 766)
@@ -0,0 +1 @@
+model.tagvalue.generateOperatorForDAOHelper=true
\ No newline at end of file
Added: trunk/maven-eugene-plugin/src/it/smart-generate/only-zargo-xmi/src/main/zargo/topiatest.zargo
===================================================================
(Binary files differ)
Property changes on: trunk/maven-eugene-plugin/src/it/smart-generate/only-zargo-xmi/src/main/zargo/topiatest.zargo
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/maven-eugene-plugin/src/it/smart-generate/only-zargo-xmi/verify.groovy
===================================================================
--- trunk/maven-eugene-plugin/src/it/smart-generate/only-zargo-xmi/verify.groovy (rev 0)
+++ trunk/maven-eugene-plugin/src/it/smart-generate/only-zargo-xmi/verify.groovy 2009-12-18 10:28:45 UTC (rev 766)
@@ -0,0 +1,49 @@
+
+// Zargo to object model
+
+assert new File(basedir, 'target/generated-sources-zargo2ObjectModel').exists();
+assert new File(basedir, 'target/generated-sources-zargo2ObjectModel/xmi').exists();
+assert new File(basedir, 'target/generated-sources-zargo2ObjectModel/xmi/topiatest.properties').exists();
+assert new File(basedir, 'target/generated-sources-zargo2ObjectModel/xmi/topiatest.xmi').exists();
+
+assert new File(basedir, 'target/generated-sources-zargo2ObjectModel/models').exists();
+assert new File(basedir, 'target/generated-sources-zargo2ObjectModel/models/topiatest.properties').exists();
+assert new File(basedir, 'target/generated-sources-zargo2ObjectModel/models/topiatest.objectmodel').exists();
+
+assert !new File(basedir, 'target/generated-sources-zargo2ObjectModel/java').exists();
+
+// Zargo to state model
+
+assert new File(basedir, 'target/generated-sources-zargo2StateModel').exists();
+
+assert new File(basedir, 'target/generated-sources-zargo2StateModel/xmi').exists();
+assert new File(basedir, 'target/generated-sources-zargo2StateModel/xmi/topiatest.properties').exists();
+assert new File(basedir, 'target/generated-sources-zargo2StateModel/xmi/topiatest.xmi').exists();
+
+assert new File(basedir, 'target/generated-sources-zargo2StateModel/models').exists();
+assert new File(basedir, 'target/generated-sources-zargo2StateModel/models/topiatest.properties').exists();
+assert new File(basedir, 'target/generated-sources-zargo2StateModel/models/topiatest.statemodel').exists();
+
+assert !new File(basedir, 'target/generated-sources-zargo2StateModel/java').exists();
+
+// Xmi to object model
+
+assert new File(basedir, 'target/generated-sources-xmi2ObjectModel').exists();
+assert new File(basedir, 'target/generated-sources-xmi2ObjectModel/models').exists();
+assert new File(basedir, 'target/generated-sources-xmi2ObjectModel/models/topiatest.properties').exists();
+assert new File(basedir, 'target/generated-sources-xmi2ObjectModel/models/topiatest.objectmodel').exists();
+
+assert !new File(basedir, 'target/generated-sources-xmi2ObjectModel/java').exists();
+
+
+// Xmi to state model
+
+assert new File(basedir, 'target/generated-sources-xmi2StateModel').exists();
+assert new File(basedir, 'target/generated-sources-xmi2StateModel/models').exists();
+assert new File(basedir, 'target/generated-sources-xmi2StateModel/models/topiatest.properties').exists();
+assert new File(basedir, 'target/generated-sources-xmi2StateModel/models/topiatest.statemodel').exists();
+
+assert !new File(basedir, 'target/generated-sources-xmi2StateModel/java').exists();
+
+return true;
+
1
0
r765 - in trunk/maven-eugene-plugin: . src/main/java/org/nuiton/eugene/plugin src/main/java/org/nuiton/eugene/plugin/writer src/main/resources
by tchemit@users.nuiton.org Dec. 18, 2009
by tchemit@users.nuiton.org Dec. 18, 2009
Dec. 18, 2009
Author: tchemit
Date: 2009-12-18 11:26:52 +0100 (Fri, 18 Dec 2009)
New Revision: 765
Added:
trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/SmartGenerateMojo.java
trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/writer/BaseChainedFileWriter.java
trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/writer/BaseXmiToChainedFileWriter.java
trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/writer/ModelChainedFileWriter.java
trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/writer/XmiToObjectModelChainedFileWriter.java
trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/writer/XmiToStateModelChainedFileWriter.java
trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/writer/ZargoChainedFileWriter.java
trunk/maven-eugene-plugin/src/main/resources/META-INF/
Removed:
trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/AbstractEugeneMojo.java
trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/GeneratateModelFilesMojo.java
trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/GenerateFromModelsMojo.java
trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/writer/BaseModelFileWriter.java
trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/writer/BaseXmiToModelFileWriter.java
trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/writer/XmiToObjectModelFileWriter.java
trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/writer/XmiToStateModelFileWriter.java
trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/writer/ZargoModelFileWriter.java
Modified:
trunk/maven-eugene-plugin/pom.xml
trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/EugenePlugin.java
Log:
- introduce SmartGenerateMojo to remplace all new goals : one goal for everything (even the coffee :))
- add it tests
Modified: trunk/maven-eugene-plugin/pom.xml
===================================================================
--- trunk/maven-eugene-plugin/pom.xml 2009-12-18 10:23:09 UTC (rev 764)
+++ trunk/maven-eugene-plugin/pom.xml 2009-12-18 10:26:52 UTC (rev 765)
@@ -71,6 +71,7 @@
<defaultGoal>install</defaultGoal>
<plugins>
+
<!-- plugin plugin -->
<plugin>
<artifactId>maven-plugin-plugin</artifactId>
@@ -91,7 +92,13 @@
<execution>
<goals>
<goal>generate-metadata</goal>
+ <!--<goal>merge-metadata</goal>-->
</goals>
+ <!--configuration>
+ <descriptors>
+ <descriptor>${maven.src.dir}/main/plexus/components.xml</descriptor>
+ </descriptors>
+ </configuration-->
</execution>
</executions>
</plugin>
@@ -116,6 +123,12 @@
<plugin>
<artifactId>maven-plugin-plugin</artifactId>
</plugin>
+
+ <plugin>
+ <groupId>org.codehaus.plexus</groupId>
+ <artifactId>plexus-maven-plugin</artifactId>
+ <version>1.3.8</version>
+ </plugin>
</plugins>
</reporting>
@@ -134,9 +147,10 @@
<artifactId>maven-invoker-plugin</artifactId>
<configuration>
<pomIncludes>
- <pomInclude>generate-model-files/testIncludeWithNoProtocol/pom.xml</pomInclude>
- <pomInclude>generate-model-files/testIncludeWithOnlyProtocol/pom.xml</pomInclude>
- <pomInclude>generate/generators/pom.xml</pomInclude>
+ <pomInclude>smart-generate/only-zargo/pom.xml</pomInclude>
+ <pomInclude>smart-generate/only-zargo-xmi/pom.xml</pomInclude>
+ <pomInclude>smart-generate/all/pom.xml</pomInclude>
+ <pomInclude>smart-generate/generators/pom.xml</pomInclude>
<!--<pomInclude>**/pom.xml</pomInclude>-->
</pomIncludes>
<postBuildHookScript>verify</postBuildHookScript>
Deleted: trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/AbstractEugeneMojo.java
===================================================================
--- trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/AbstractEugeneMojo.java 2009-12-18 10:23:09 UTC (rev 764)
+++ trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/AbstractEugeneMojo.java 2009-12-18 10:26:52 UTC (rev 765)
@@ -1,240 +0,0 @@
-/*
- * *##%
- * EUGene :: Maven plugin
- * Copyright (C) 2006 - 2009 CodeLutin
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation, either version 3 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 Lesser Public License for more details.
- *
- * You should have received a copy of the GNU General Lesser Public
- * License along with this program. If not, see
- * <http://www.gnu.org/licenses/lgpl-3.0.html>.
- * ##%*
- */
-package org.nuiton.eugene.plugin;
-
-import org.apache.maven.plugin.MojoExecutionException;
-import org.apache.maven.project.MavenProject;
-import org.apache.maven.settings.Settings;
-import org.nuiton.eugene.models.Model;
-import org.nuiton.plugin.AbstractPlugin;
-import org.nuiton.plugin.PluginIOContext;
-
-import java.io.File;
-import java.util.Arrays;
-import java.util.Map;
-
-/**
- * User: chemit
- * Date: 23 nov. 2009
- * Time: 20:19:35
- */
-public abstract class AbstractEugeneMojo extends AbstractPlugin {
-
- /**
- * Maven project.
- *
- * @parameter default-value="${project}"
- * @readonly
- * @since 2.0.0
- */
- protected MavenProject project;
- /**
- * Le settings (pour obtenir le mode offline).
- *
- * @parameter default-value="${settings}"
- * @readonly
- * @since 2.0.0
- */
- protected Settings settings;
- /**
- * Ecrase les fichiers générés.
- *
- * @parameter expression="${eugene.overwrite}" default-value="false"
- * @since 2.0.0
- */
- protected boolean overwrite;
- /**
- * Pour activer le mode verbeux.
- *
- * @parameter expression="${eugene.verbose}" default-value="${maven.verbose}"
- * @since 2.0.0
- */
- protected boolean verbose;
- /**
- * Encoding to be used for generation of files.
- *
- * @parameter expression="${eugene.encoding}" default-value="${project.build.sourceEncoding}"
- * @since 2.0.0
- */
- protected String encoding;
- /**
- * A flag to mark the mojo to be used in a test phase. This will permits to add generated sources in test compile roots.
- *
- * @parameter expression="${eugene.testPhase}" default-value="false"
- * @since 2.0.0
- */
- protected boolean testPhase;
- /**
- * The type of model to be used.
- * <p/>
- * By default, use an {@code objectmodel}.
- *
- * @parameter expression="${eugene.modelType}" default-value="objectmodel"
- * @required
- * @since 2.0.0
- */
- protected String modelType;
- /**
- * An extra directory to be added to the classpath.
- *
- * @parameter expression="${eugene.extraClassPathDirectory}"
- * @since 2.0.0
- */
- private File extraClassPathDirectory;
- /**
- * class instance of the given {@link #modelType}
- */
- protected Class<? extends Model> modelClass;
-
- /**
- * All available models (obtain by plexus, keys are plexus roles, values are a
- * instance of corresponding model).
- *
- * @component role="org.nuiton.eugene.models.Model"
- */
- protected Map<String, Model> _models;
-
- @Override
- protected boolean init() throws Exception {
-
- // on recupere le fqn du model à traiter via le container plexus (plus pratique dans ce cas où on veut
- // pouvoir associé un nom à un type de service).
- Model model = _models.get(modelType.trim().toLowerCase());
- if (model == null) {
- throw new MojoExecutionException("No modelType named '" + modelType + "', use one of " + _models.keySet());
- }
- modelClass = model.getClass();
- return true;
- }
-
- /**
- * Build the resources data to use for a goal.
- *
- * @param resources incoming resources data (form the goal
- * @param defaultIn the default input directory
- * @param defaultOut the default output directory
- * @param defaultTestIn the default test input directory
- * @param defaultTestOut the default test output directory
- * @return the new {@link org.nuiton.plugin.PluginIOContext} to use in the goal
- */
- protected PluginIOContext initResources(PluginIOContext resources, File defaultIn, File defaultOut, File defaultTestIn, File defaultTestOut) {
-
- if (resources == null) {
- resources = new PluginIOContext();
- }
-
- // adding default inputs only if not consumed
- if (resources.getInputs() == null) {
- if (testPhase) {
- resources.setInput(defaultTestIn);
- } else {
- resources.setInput(defaultIn);
- }
- getLog().info(" using default in : " + Arrays.asList(resources.getInputs()));
- } else {
- getLog().info(" in : " + Arrays.asList(resources.getInputs()));
- }
-
- if (resources.getOutput() == null) {
- if (testPhase) {
- resources.setOutput(defaultTestOut);
- } else {
- resources.setOutput(defaultOut);
- }
- getLog().info(" using default out : " + resources.getOutput());
- } else {
- getLog().info(" out : " + resources.getOutput());
- }
-
- return resources;
- }
-
-
- @Override
- public MavenProject getProject() {
- return project;
- }
-
- public void setProject(MavenProject project) {
- this.project = project;
- }
-
- @Override
- public boolean isVerbose() {
- return verbose;
- }
-
- public void setVerbose(boolean verbose) {
- this.verbose = verbose;
- }
-
- public String getEncoding() {
- return encoding;
- }
-
- public void setEncoding(String encoding) {
- this.encoding = encoding;
- }
-
- public boolean isOverwrite() {
- return overwrite;
- }
-
- public void setOverwrite(boolean overwrite) {
- this.overwrite = overwrite;
- }
-
- public Settings getSettings() {
- return settings;
- }
-
- public void setSettings(Settings settings) {
- this.settings = settings;
- }
-
- public boolean isOffline() {
- return settings.isOffline();
- }
-
- public boolean isTestPhase() {
- return testPhase;
- }
-
- public void setTestPhase(boolean testPhase) {
- this.testPhase = testPhase;
- }
-
- public Class<? extends Model> getModelClass() {
- return modelClass;
- }
-
- public void setModelClass(Class<? extends Model> modelClass) {
- this.modelClass = modelClass;
- }
-
- public File getExtraClassPathDirectory() {
- return extraClassPathDirectory;
- }
-
- public void setExtraClassPathDirectory(File extraClassPathDirectory) {
- this.extraClassPathDirectory = extraClassPathDirectory;
- }
-}
Modified: trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/EugenePlugin.java
===================================================================
--- trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/EugenePlugin.java 2009-12-18 10:23:09 UTC (rev 764)
+++ trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/EugenePlugin.java 2009-12-18 10:26:52 UTC (rev 765)
@@ -55,7 +55,7 @@
* by : $Author$
* @goal generate
* @requiresProject true
- * @deprecated since 2.0.0, use now the {@link GenerateFromModelsMojo}.
+ * @deprecated since 2.0.0, use now the {@link SmartGenerateMojo}.
*/
@Deprecated
public class EugenePlugin extends EugeneAbstractMojo {
Deleted: trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/GeneratateModelFilesMojo.java
===================================================================
--- trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/GeneratateModelFilesMojo.java 2009-12-18 10:23:09 UTC (rev 764)
+++ trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/GeneratateModelFilesMojo.java 2009-12-18 10:26:52 UTC (rev 765)
@@ -1,330 +0,0 @@
-/*
- * *##%
- * EUGene :: Maven plugin
- * Copyright (C) 2006 - 2009 CodeLutin
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation, either version 3 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 Lesser Public License for more details.
- *
- * You should have received a copy of the GNU General Lesser Public
- * License along with this program. If not, see
- * <http://www.gnu.org/licenses/lgpl-3.0.html>.
- * ##%*
- */
-package org.nuiton.eugene.plugin;
-
-import org.apache.maven.artifact.Artifact;
-import org.apache.maven.plugin.MojoExecutionException;
-import org.apache.maven.project.MavenProject;
-import org.nuiton.eugene.ModelFileWriter;
-import org.nuiton.eugene.ModelFileWriterConfiguration;
-import org.nuiton.eugene.ModelFileWriterUtil;
-import org.nuiton.eugene.plugin.writer.BaseModelFileWriter;
-import org.nuiton.eugene.plugin.writer.BaseXmiToModelFileWriter;
-
-import java.io.File;
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.net.URLClassLoader;
-import java.util.*;
-
-/**
- * User: chemit
- * Date: 24 nov. 2009
- * Time: 00:22:37
- *
- * @goal generate-model-files
- * @requiresProject true
- * @requiresDependencyResolution compile
- */
-public class GeneratateModelFilesMojo extends AbstractEugeneMojo implements ModelFileWriterConfiguration {
-
- /**
- * Inputs files to used to generate the required model files.
- * </p>
- * An include has the following pattern :
- * <pre>
- * writer:
- * </pre>
- * when you want to use a specific writer with his default io values.
- * <p/>
- * Can also write :
- * <pre>
- * [writer:]directory:includes
- * </pre>
- * where {@code includes} is the pattern to find files from the directory given and must be terminated by the extension
- * of files.
- * <p/>
- * Specifying the {@code writer} can be usefull when you want to use a writer for an unknown extension
- * by any writer.
- * <p/>
- * Example :
- * <pre>
- * <inputFiles>
- * <inputFile>zargo:<inputFile>
- * <inputFile>src/main/xmi2:**\/*.zargo<inputFile>
- * <inputFile>zargo:src/main/xmi:**\/*.zargo2<inputFile>
- * </inputFiles>
- * </pre>
- *
- * @parameter expression="${eugene.inputFiles}"
- * @required
- * @since 2.0.0
- */
- protected String[] inputFiles;
- /**
- * Where to generate files.
- *
- * @parameter expression="${eugene.outputDirectory}" default-value="target/generated-sources"
- * @required
- * @since 2.0.0
- */
- protected File outputDirectory;
- /**
- * Properties to pass to writer.
- *
- * @parameter
- * @since 2.0.0
- */
- protected Map<String, Object> properties;
- /**
- * Ne génère rien, analyse juste la configuration.
- *
- * @parameter expression="${eugene.dryRun}" default-value="false"
- * @since 2.0.0
- */
- protected boolean dryRun;
- /**
- * Nom du paquetage pour les fichiers générés
- *
- * @parameter expression="${generator.fullPackagePath}" default-value="${project.groupId}.${project.artifactId}"
- * @since 2.0.0
- */
- protected String fullPackagePath;
-// /**
-// * Nom du paquetage à générer
-// *
-// * @parameter expression="${generator.extractedPackages}" default-value="${project.groupId}.${project.artifactId}"
-// * @since 2.0.0
-// */
-// protected String extractedPackages;
- /**
- * Nom du resolver a utiliser
- *
- * @parameter expression="${generator.resolver}" default-value="org.nuiton.util.ResourceResolver"
- * @since 2.0.0
- */
- protected String resolver;
- /**
- * All available writers
- *
- * @component role="org.nuiton.eugene.ModelFileWriter"
- */
- protected Map<String, ModelFileWriter> writers;
- /**
- * All available writers for the given {@link #getModelClass()}
- */
- protected Set<ModelFileWriter> availableWriters;
- /**
- * Writers to process
- */
- protected List<ModelFileWriter> plan;
-
- @Override
- protected boolean init() throws Exception {
- boolean b = super.init();
- if (!b) {
- return false;
- }
- if (inputFiles.length == 0) {
- throw new MojoExecutionException("Must specify something to include using the includes property");
- }
-
- availableWriters = ModelFileWriterUtil.filterWriterForModelType(writers, getModelClass());
-
- if (availableWriters.isEmpty()) {
- throw new MojoExecutionException("Could not find any writer in class-path.");
- }
-
- for (ModelFileWriter writer : availableWriters) {
- if (writer instanceof BaseModelFileWriter) {
- // add log support
- ((BaseModelFileWriter) writer).setLog(getLog());
- }
- }
-
- plan = new ArrayList<ModelFileWriter>();
-
- // first pass to detect top level writers
- for (String include : inputFiles) {
-
- getLog().info("Register include : " + include);
- ModelFileWriterUtil.registerInclude(this, include, plan);
- }
-
- if (properties == null) {
- properties = new TreeMap<String, Object>();
- }
- return true;
- }
-
- @Override
- protected void doAction() throws Exception {
- if (dryRun) {
- getLog().warn("dryRun property is set, no file will be generated.");
- }
- try {
- // transfert to properties
-
- ClassLoader loader = fixClassLoader();
-
- properties.put(BaseModelFileWriter.PROP_CLASS_LOADER, loader);
- properties.put(BaseXmiToModelFileWriter.PROP_FULL_PACKAGE_PATH, fullPackagePath);
- //properties.put("extractedPackages", extractedPackages);
- properties.put(BaseXmiToModelFileWriter.PROP_RESOLVER, resolver);
-
- // launch writers in incoming order of dicovering of them
- for (ModelFileWriter writer : plan) {
- int size = writer.getEntries().size();
- if (size == 1) {
- getLog().info("Process phase [" + writer.getInputProtocol() + "] for one entry.");
- } else {
- getLog().info("Process phase [" + writer.getInputProtocol() + "] for " + size + " entries.");
- }
- if (dryRun || isVerbose()) {
- for (ModelFileWriterUtil.ModelFileWriterEntry entry : writer.getEntries()) {
- getLog().info(" entry : " + entry.getInputDirectory() + " - " + entry.getIncludePattern());
- }
- if (dryRun) {
- continue;
- }
- }
- if (getLog().isDebugEnabled()) {
- getLog().debug("Generating files and copying resources...");
- }
-
- writer.generate(this);
-
- }
- } finally {
- // always clear everything to avoid side-effects in goal is invoked more than once
- properties.clear();
- for (ModelFileWriter writer : plan) {
- writer.clear();
- }
- plan.clear();
- }
- }
-
- @Override
- public File getOutputDirectory() {
- return outputDirectory;
- }
-
- @Override
- public Map<String, Object> getProperties() {
- return properties;
- }
-
- @Override
- public Set<ModelFileWriter> getAvailableWriters() {
- return availableWriters;
- }
-
- @Override
- public File getBasedir() {
- return getProject().getBasedir();
- }
-
- /**
- * Prepare le classLoader a utiliser dans le generateur.
- * <p/>
- * Si un {@link #extraClassPathDirectory} a été renseigné, il est rajouté.
- * <p/>
- * Si des références à des sibling modules, ils seront rajoutés aussi.
- *
- * @return le class loader modifie
- * @throws MojoExecutionException if any pb
- */
- protected ClassLoader fixClassLoader() throws MojoExecutionException {
- Set<String> urlsAsString = new HashSet<String>();
- List<URL> urls = new ArrayList<URL>();
- try {
- ClassLoader loader;
- File extraClassPathDirectory = getExtraClassPathDirectory();
- if (extraClassPathDirectory != null) {
- if (verbose) {
- getLog().info("Add extra directory in generator's classLoader : " + extraClassPathDirectory);
- }
- addDirectoryToUrlsList(extraClassPathDirectory, urls, urlsAsString);
- }
- if (project.getProjectReferences() != null) {
- // this case is for multi-module when calling from a parent module
- for (Object o : project.getProjectReferences().entrySet()) {
- Map.Entry<?, ?> entry = (Map.Entry<?, ?>) o;
- MavenProject relatedProject = (MavenProject) entry.getValue();
- if (verbose) {
- getLog().info("Add project reference in generator's classLoader : '" + relatedProject.getArtifact() + "'");
- }
- //TODO il faudrait peut-etre aussi ajouter les dependances ?
- addDirectoryToUrlsList(relatedProject.getArtifact().getFile(), urls, urlsAsString);
- }
- }
- if (!project.getArtifacts().isEmpty()) {
- // this is a special case when artifacts were resolved (for example in site phase)
- if (verbose) {
- getLog().info("Use resolved artifacts to build class-path");
- }
- for (Object o : project.getArtifacts()) {
- Artifact a = (Artifact) o;
- if (!a.getScope().equals("provided")) {
- addDirectoryToUrlsList(a.getFile(), urls, urlsAsString);
- }
- }
- }
- // we ask to add the directory in classloader
- loader = getClass().getClassLoader();
- if (getLog().isDebugEnabled()) {
- getLog().info("original classloader " + loader);
- }
- if (loader instanceof URLClassLoader) {
- // on reinjecte les urls de loader de base
- // car sinon on risque de ne pas retrouver les resources...
- for (URL u : ((URLClassLoader) loader).getURLs()) {
- addUrlToUrlsList(u, urls, urlsAsString);
- if (getLog().isDebugEnabled()) {
- getLog().debug("original cp entry: " + u);
- }
- }
- // et on force l'utilisation du classloader parent
- // s'il existe
- if (loader.getParent() != null) {
- loader = loader.getParent();
- }
- }
- if (!urls.isEmpty()) {
- loader = new URLClassLoader(urls.toArray(new URL[urls.size()]),
- loader);
- }
- if (getLog().isDebugEnabled()) {
- for (URL u : urls) {
- getLog().debug("cp entry: " + u);
- }
- }
- return loader;
- } catch (MalformedURLException e) {
- throw new MojoExecutionException(e.getMessage());
- } finally {
- urls.clear();
- urlsAsString.clear();
- }
-
- }
-}
Deleted: trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/GenerateFromModelsMojo.java
===================================================================
--- trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/GenerateFromModelsMojo.java 2009-12-18 10:23:09 UTC (rev 764)
+++ trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/GenerateFromModelsMojo.java 2009-12-18 10:26:52 UTC (rev 765)
@@ -1,501 +0,0 @@
-package org.nuiton.eugene.plugin;
-
-import org.apache.commons.lang.StringUtils;
-import org.apache.maven.artifact.Artifact;
-import org.apache.maven.model.Resource;
-import org.apache.maven.plugin.MojoExecutionException;
-import org.apache.maven.plugin.MojoFailureException;
-import org.apache.maven.project.MavenProject;
-import org.nuiton.eugene.ModelReader;
-import org.nuiton.eugene.Template;
-import org.nuiton.eugene.models.Model;
-import org.nuiton.plugin.PluginHelper;
-import org.nuiton.plugin.PluginIOContext;
-
-import java.io.File;
-import java.io.IOException;
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.net.URLClassLoader;
-import java.util.*;
-
-/**
- * Created: 15 déc. 2009
- *
- * @author Tony Chemit <chemit(a)codelutin.com> Copyright Code Lutin
- * @version $Revision$
- * <p/>
- * Mise a jour: $Date$ par :
- * $Author: tchemit $
- * @goal generate-from-models
- * @requiresProject true
- * @since 2.0.0 (replace previous goal {@link EugenePlugin}).
- */
-public class GenerateFromModelsMojo extends AbstractEugeneMojo {
-
- /**
- * Les entrées sorties du plugin.
- * <p/>
- * <p/>
- * <p/>
- * En entrée on demande des répertoires où chercher les fichiers objectmodel a convertir.
- * <p/>
- * En sortie on demande le répertoire ou generer les classes java.
- * <p/>
- * Par défaut on a les valeurs suivantes :
- * </p>
- * <pre>
- * <generateResources>
- * </p>
- * <input>target/generated-sources/models</input>
- * </p>
- * <output>target/generated-sources/java</output>
- * </p>
- * </generateResources>
- * </pre>
- * </p>
- * <p/>
- * Note: si {@link #testPhase} est activée, les valeurs par défaut sont :
- * </p>
- * <pre>
- * <generateResources>
- * </p>
- * <input>target/generated-sources/test-models</input>
- * </p>
- * <output>target/generated-sources/test-java</output>
- * </p>
- * </generateResources>
- * </pre>
- *
- * @parameter
- * @since 1.0.0-rc-8
- */
- protected PluginIOContext generateResources;
- /**
- * Templates à utiliser, séparés par des virgules.
- *
- * @parameter expression="${eugene.templates}"
- * @required
- * @since 0.50
- */
- protected String templates;
- /**
- * Templates à ne pas utiliser.
- *
- * @parameter expression="${eugene.excludeTemplates}"
- * @since 0.63
- */
- protected String[] excludeTemplates;
- /**
- * Fichier à inclure.
- *
- * @parameter expression="${eugene.includes}" default-value="*.*model"
- * @since 0.50
- */
- protected String includes;
- /**
- * Nom par défaut du paquetage généré.
- *
- * @parameter expression="${eugene.defaultPackage}" default-value="${project.groupId}.${project.artifactId}"
- * @since 0.50
- */
- protected String defaultPackage;
- /**
- * List of packages to generate (comma separated).
- * <p/>
- * If the parameter is not filled, will generate all packages.
- *
- * @parameter expression="${eugene.generatedPackages}"
- * @since 1.0.0-rc-8
- */
- protected String generatedPackages;
- /**
- * To define a specific reader to use to transform input files in a Model to generate.
- * <p/>
- * If nothing is specified, will use the reader corresponding to the given {@link #modelType}.
- *
- * @parameter expression="${eugene.reader}"
- * @since 1.1.0
- */
- protected String reader;
- /**
- * All available writers
- *
- * @component role="org.nuiton.eugene.ModelReader"
- */
- protected Map<String, ModelReader<?>> availableReaders;
- /**
- * All available templates
- *
- * @component role="org.nuiton.eugene.Template"
- */
- protected Map<String, Template<?>> availableTemplates;
-
- /**
- * model reader instance
- */
- protected ModelReader<?> modelReader;
- /**
- * fixed classloader
- */
- protected ClassLoader fixedClassLoader;
- /**
- * list of templates to apply
- */
- protected List<Template<Model>> templatesList;
- /**
- * list of model files to load in the memory reader via the model reader
- */
- protected File[] modelFiles;
-
- @Override
- protected boolean init() throws Exception {
- boolean b = super.init();
- if (!b) {
- // something wrong from the super class, skip now
- return false;
- }
-
- // init goal io context
-
- generateResources = initResources();
-
- if (generateResources == null) {
- // could not be init...
- return false;
- }
-
- // init reader
-
- modelReader = getModelReader();
- if (modelReader == null) {
- // could not be init...
- return false;
- }
-
- // get templates to use
-
- templatesList = getTemplates(getFixedClassLoader());
-
- if (templatesList == null || templatesList.isEmpty()) {
- getLog().error("No template to apply.");
- return false;
- }
-
- //TODO Check excludeTemplates are sane :)
-
- // get models to treate
-
- modelFiles = getModelFiles(generateResources);
- if (modelFiles.length == 0) {
- // can skip
- getLog().warn("No model to treate.");
- return false;
- }
- return true;
- }
-
- @Override
- public void doAction() throws MojoExecutionException, MojoFailureException {
-
- getLog().info("Generating java sources from models");
- getLog().info(" reader : " + modelReader.getClass().getName());
- getLog().info(" includes : " + includes);
- getLog().info(" using template : " + templates);
- getLog().info(" using defaultPackage : " + defaultPackage);
-
- if (verbose) {
- for (File m : modelFiles) {
- getLog().info("will treate model file : " + m);
- }
- }
-
- // prepare template properties
-
- Properties templateProperties = new Properties();
- templateProperties.setProperty(Template.PROP_DEFAULT_PACKAGE, defaultPackage);
- templateProperties.setProperty(Template.PROP_OVERWRITE, String.valueOf(overwrite));
- templateProperties.setProperty(Template.PROP_ENCODING, encoding);
- templateProperties.setProperty(Template.PROP_LAST_MODIFIED_SOURCE, String.valueOf(modelReader.getLastModifiedSource()));
- if (StringUtils.isEmpty(generatedPackages)) {
- getLog().info(" generating all packages");
- } else {
- templateProperties.setProperty(Template.PROP_GENERATED_PACKAGES, generatedPackages);
- getLog().info(" generating only for packages " + generatedPackages);
- }
- templateProperties.setProperty(Template.PROP_EXCLUDE_TEMPLATES, getExcludeTemplatesAsString());
-
- // read the model
-
- Model model = modelReader.read(modelFiles);
-
- // apply all templates to the model
-
- for (Template<Model> template : templatesList) {
- getLog().info("Apply " + template.getClass().getSimpleName() + " generator");
-
- try {
-
- // init template
- template.setProperties(templateProperties);
-
- // apply template
- template.applyTemplate(model, generateResources.getOutput());
- } catch (IOException eee) {
- throw new MojoExecutionException("Generation problem", eee);
- }
- }
-
- // fix compile root sources
-
- fixCompileSourceRoots();
-
- }
-
- /**
- * Init the {@link #generateResources} io context and return it.
- * <p/>
- * <b>Note:</b> If something wrong appears, then return a {@code null} value.
- *
- * @return the io context to use for the goal, or {@code null} if something was wrong
- */
- protected PluginIOContext initResources() {
-
- File defaultIn = getFileFromBasedir("target", "generated-sources", "models");
- File defaultOut = getFileFromBasedir("target", "generated-sources", "java");
-
- File defaultTestIn = getFileFromBasedir("target", "generated-sources", "test-models");
- File defaultTestOut = getFileFromBasedir("target", "generated-sources", "test-java");
-
- PluginIOContext p = initResources(generateResources, defaultIn, defaultOut, defaultTestIn, defaultTestOut);
-
- // check context
-
- if ((p.getInputs() == null || p.getInputs().length == 0)) {
- getLog().error("no input defined");
- return null;
- }
- if (p.getOutput() == null) {
- getLog().error("no output defined");
- return null;
- }
-
- if (!p.getOutput().exists()) {
- boolean b2 = p.getOutput().mkdirs();
- if (!b2) {
- getLog().error("could not create directory " + p.getOutput());
- p = null;
- }
- }
-
- return p;
- }
-
- /**
- * Obtain the reader to use to read the model.
- * <p/>
- * <b>Note:</b> If something wrong appears, the return a {@code null} value.
- *
- * @return the model reader to use to obtain the model to treate, or {@code null} if something was wrong.
- */
- protected ModelReader<?> getModelReader() {
-
- ModelReader<?> modelReader;
-
- if (reader != null && !reader.trim().isEmpty()) {
- // try to load a specific reader
- try {
- ClassLoader fixedClassLoader = getFixedClassLoader();
- modelReader = (ModelReader<?>) Class.forName(reader, true, fixedClassLoader).newInstance();
- //TODO : should check that the reader is compatible with given modelType
- } catch (Exception eee) {
- getLog().error("could not obtain reader " + reader + " for reason : " + eee.getMessage());
- return null;
- }
- } else {
- modelReader = availableReaders.get(modelType);
- if (modelReader == null) {
- getLog().error("could not find a model reader for modelType : " + modelType + ", availables readers : " + availableReaders.values());
- return null;
- }
- }
- return modelReader;
- }
-
- /**
- * Recuperation de la liste des fichiers de modele a traite.
- *
- * @param ioContext io context
- * @return la liste des modeles a utiliser
- */
- protected File[] getModelFiles(PluginIOContext ioContext) {
-
- List<File> modelFiles = new ArrayList<File>();
- String[] includePatterns = includes.split(",");
-
- for (File srcDirGen : ioContext.getInputs()) {
-
- if (verbose) {
- getLog().info("Search for " + Arrays.toString(includePatterns) + " in " + srcDirGen.getAbsolutePath());
- }
- List<File> currentFiles = PluginHelper.getIncludedFiles(srcDirGen, includePatterns, null);
- modelFiles.addAll(currentFiles);
- }
- return modelFiles.toArray(new File[modelFiles.size()]);
- }
-
- /**
- * Obtain the list of templates to apply to model.
- * <p/>
- * <b>Note:</b> If something wrong appears, then return a {@code null} value.
- *
- * @param fixedClassLoader classloader to use to seek of templates
- * @return list of templates to apply, or {@code null} if something was wrong
- */
- protected List<Template<Model>> getTemplates(ClassLoader fixedClassLoader) {
-
- List<Template<Model>> templatesList = new ArrayList<Template<Model>>();
- String[] templatesNames = templates.split(",");
- for (String templateName : templatesNames) {
- // remove trailing spaces
- templateName = templateName.trim();
- Template<Model> template;
-
- template = (Template<Model>) availableTemplates.get(templateName);
- if (template == null) {
- getLog().warn("template [" + templateName + "] is not registred via plexus, try to load it directly");
- try {
- template = (Template<Model>) Class.forName(templateName, true, fixedClassLoader).newInstance();
- } catch (Exception e) {
- getLog().error("Can't obtain template [" + templateName + "] for reason " + e.getMessage(), e);
- return null;
- }
- // will use this template
- templatesList.add(template);
- }
- }
- return templatesList;
- }
-
- /**
- * @return the string representation of excludesTemplates (separated by comma)
- */
- protected String getExcludeTemplatesAsString() {
- String result = "";
- for (int i = 0; i < excludeTemplates.length; i++) {
- result += excludeTemplates[i];
- if (i != excludeTemplates.length - 1) {
- result += ",";
- }
- }
- return result;
- }
-
- /**
- * Prepare le classLoader a utiliser dans le generateur.
- * <p/>
- * Si un {@link #extraClassPathDirectory} a été renseigné, il est rajouté.
- * <p/>
- * Si des références à des sibling modules, ils seront rajoutés aussi.
- *
- * @return le class loader modifie
- * @throws MojoExecutionException if any pb
- */
-
- public ClassLoader getFixedClassLoader() throws MojoExecutionException {
-
- if (fixedClassLoader == null) {
-
- List<URL> urls = new ArrayList<URL>();
- Set<String> urlsAsString = new HashSet<String>();
- try {
- ClassLoader loader;
- File extraClassPathDirectory = getExtraClassPathDirectory();
- if (extraClassPathDirectory != null) {
- if (verbose) {
- getLog().info("Add extra directory in generator's classLoader : " + extraClassPathDirectory);
- }
- addDirectoryToUrlsList(extraClassPathDirectory, urls, urlsAsString);
- }
- if (project.getProjectReferences() != null) {
- // this case is for multi-module when calling from a parent module
- for (Object o : project.getProjectReferences().entrySet()) {
- Map.Entry<?, ?> entry = (Map.Entry<?, ?>) o;
- MavenProject relatedProject = (MavenProject) entry.getValue();
- if (verbose) {
- getLog().info("Add project reference in generator's classLoader : '" + relatedProject.getArtifact() + "'");
- }
- //TODO il faudrait peut-etre aussi ajouter les dependances ?
- addDirectoryToUrlsList(relatedProject.getArtifact().getFile(), urls, urlsAsString);
- }
- }
- if (!project.getArtifacts().isEmpty()) {
- // this is a special case when artifacts were resolved (for example in site phase)
- if (verbose) {
- getLog().info("Use resolved artifacts to build class-path");
- }
- for (Object o : project.getArtifacts()) {
- Artifact a = (Artifact) o;
- if (!a.getScope().equals("provided")) {
- addDirectoryToUrlsList(a.getFile(), urls, urlsAsString);
- }
- }
- }
- // we ask to add the directory in classloader
- loader = getClass().getClassLoader();
- if (!urls.isEmpty()) {
- loader = new URLClassLoader(urls.toArray(new URL[urls.size()]),
- loader);
- }
- fixedClassLoader = loader;
- } catch (MalformedURLException e) {
- throw new MojoExecutionException(e.getMessage());
- } finally {
- urls.clear();
- urlsAsString.clear();
- }
- }
- return fixedClassLoader;
- }
-
- /**
- * permet d'ajout le répertoire de génération des fichiers java dans les répertoires
- * de compilation du projet Maven.
- */
- protected void fixCompileSourceRoots() {
-
- //FIXME-TC20091215 : should never have a null project, this is not normal
- if (project == null) {
- // no project defined, can not fix anything
- // this case could appears if we wanted to do some tests of the plugin
- return;
- }
-
- File destDirGen = generateResources.getOutput();
-
- //TODO-TC20091016 should use AbstractPlugin api
- if (testPhase) {
- if (!project.getTestCompileSourceRoots().contains(destDirGen.getPath())) {
- getLog().info("Add test compile source root : " + destDirGen);
- project.addTestCompileSourceRoot(destDirGen.getPath());
- Resource resources = new Resource();
- resources.setDirectory(destDirGen.getAbsolutePath());
- resources.setExcludes(Arrays.asList("**/*.java"));
- getLog().info("Add test resource root :" + resources);
- project.addTestResource(resources);
- }
- } else {
- if (!project.getCompileSourceRoots().contains(destDirGen.getPath())) {
- getLog().info("Add compile source root : " + destDirGen);
- project.addCompileSourceRoot(destDirGen.getPath());
- Resource resources = new Resource();
- resources.setDirectory(destDirGen.getAbsolutePath());
- resources.setExcludes(Arrays.asList("**/*.java"));
- getLog().info("Add resource root :" + resources);
- project.addResource(resources);
- }
- }
- }
-
-
-}
Copied: trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/SmartGenerateMojo.java (from rev 763, trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/GeneratateModelFilesMojo.java)
===================================================================
--- trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/SmartGenerateMojo.java (rev 0)
+++ trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/SmartGenerateMojo.java 2009-12-18 10:26:52 UTC (rev 765)
@@ -0,0 +1,644 @@
+/*
+ * *##%
+ * EUGene :: Maven plugin
+ * Copyright (C) 2006 - 2009 CodeLutin
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation, either version 3 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 Lesser Public License for more details.
+ *
+ * You should have received a copy of the GNU General Lesser Public
+ * License along with this program. If not, see
+ * <http://www.gnu.org/licenses/lgpl-3.0.html>.
+ * ##%*
+ */
+package org.nuiton.eugene.plugin;
+
+import org.apache.commons.lang.StringUtils;
+import org.apache.maven.artifact.Artifact;
+import org.apache.maven.model.Resource;
+import org.apache.maven.plugin.MojoExecutionException;
+import org.apache.maven.project.MavenProject;
+import org.apache.maven.settings.Settings;
+import org.nuiton.eugene.ModelReader;
+import org.nuiton.eugene.Template;
+import org.nuiton.eugene.models.Model;
+import org.nuiton.eugene.plugin.writer.BaseChainedFileWriter;
+import org.nuiton.eugene.plugin.writer.BaseXmiToChainedFileWriter;
+import org.nuiton.eugene.plugin.writer.ModelChainedFileWriter;
+import org.nuiton.eugene.writer.ChainedFileWriter;
+import org.nuiton.eugene.writer.ChainedFileWriterConfiguration;
+import org.nuiton.eugene.writer.ChainedFileWriterEntry;
+import org.nuiton.eugene.writer.ChainedWriterEngine;
+import org.nuiton.plugin.AbstractPlugin;
+
+import java.io.File;
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.net.URLClassLoader;
+import java.util.*;
+
+/**
+ * Smart file generator.
+ * <p/>
+ * Fill inputs and mojo will chained needed writer.
+ * <p/>
+ * User: chemit
+ * Date: 24 nov. 2009
+ * Time: 00:22:37
+ *
+ * @goal smart-generate
+ * @requiresProject true
+ * @requiresDependencyResolution compile
+ */
+public class SmartGenerateMojo extends AbstractPlugin implements ChainedFileWriterConfiguration {
+
+ /**
+ * Inputs files to used to generate the required model files.
+ * </p>
+ * An include has the following pattern :
+ * <pre>
+ * writer:
+ * </pre>
+ * when you want to use a specific writer with his default io values.
+ * <p/>
+ * Can also write :
+ * <pre>
+ * [writer:]directory:includes
+ * </pre>
+ * where {@code includes} is the pattern to find files from the directory given and must be terminated by the extension
+ * of files.
+ * <p/>
+ * Specifying the {@code writer} can be usefull when you want to use a writer for an unknown extension
+ * by any writer.
+ * <p/>
+ * Example :
+ * <pre>
+ * <inputs>
+ * <input>zargo:</input>
+ * <input>src/main/xmi2:**\/*.zargo</input>
+ * <input>zargo:src/main/xmi:**\/*.zargo2</input>
+ * </inputs>
+ * </pre>
+ *
+ * @parameter expression="${eugene.inputs}"
+ * @required
+ * @since 2.0.0
+ */
+ protected String[] inputs;
+ /**
+ * List of input (protocol) not to treate separated by comma.
+ * <p/>
+ * Example :
+ * <pre>
+ * <skipInputs>xmi</skipInputs>
+ * <skipInputs>xmi,model</skipInputs>
+ * </pre>
+ *
+ * @parameter expression="${eugene.skipInputs}"
+ * @since 2.0.0
+ */
+ protected String skipInputs;
+ /**
+ * Where to generate files.
+ *
+ * @parameter expression="${eugene.outputDirectory}" default-value="target/generated-sources"
+ * @required
+ * @since 2.0.0
+ */
+ protected File outputDirectory;
+ /**
+ * Ecrase les fichiers générés.
+ *
+ * @parameter expression="${eugene.overwrite}" default-value="false"
+ * @since 2.0.0
+ */
+ protected boolean overwrite;
+ /**
+ * Pour activer le mode verbeux.
+ *
+ * @parameter expression="${eugene.verbose}" default-value="${maven.verbose}"
+ * @since 2.0.0
+ */
+ protected boolean verbose;
+ /**
+ * Encoding to be used for generation of files.
+ *
+ * @parameter expression="${eugene.encoding}" default-value="${project.build.sourceEncoding}"
+ * @since 2.0.0
+ */
+ protected String encoding;
+ /**
+ * A flag to mark the mojo to be used in a test phase. This will permits to add generated sources in test compile roots.
+ *
+ * @parameter expression="${eugene.testPhase}" default-value="false"
+ * @since 2.0.0
+ */
+ protected boolean testPhase;
+ /**
+ * The type of model to be used.
+ * <p/>
+ * By default, use an {@code objectmodel}.
+ *
+ * @parameter expression="${eugene.modelType}" default-value="objectmodel"
+ * @required
+ * @since 2.0.0
+ */
+ protected String modelType;
+// /**
+// * An extra directory to be added to the classpath.
+// *
+ // * @parameter expression="${eugene.extraClassPathDirectory}"
+// * @since 2.0.0
+// */
+// protected File extraClassPathDirectory;
+ /**
+ * Properties to pass to writer.
+ *
+ * @parameter
+ * @since 2.0.0
+ */
+ protected Map<String, Object> properties;
+ /**
+ * Ne génère rien, analyse juste la configuration.
+ *
+ * @parameter expression="${eugene.dryRun}" default-value="false"
+ * @since 2.0.0
+ */
+ protected boolean dryRun;
+ /**
+ * Nom du paquetage pour les fichiers générés (xmi input sepcific).
+ *
+ * @parameter expression="${generator.fullPackagePath}" default-value="${project.groupId}.${project.artifactId}"
+ * @since 2.0.0
+ */
+ protected String fullPackagePath;
+// /**
+// * Nom du paquetage à générer (xmi input sepcific).
+// *
+ // * @parameter expression="${generator.extractedPackages}" default-value="${project.groupId}.${project.artifactId}"
+// * @since 2.0.0
+// */
+// protected String extractedPackages;
+ /**
+ * Nom du resolver a utiliser pour les transformations xmi vers model (xmi input sepcific).
+ *
+ * @parameter expression="${generator.resolver}" default-value="org.nuiton.util.ResourceResolver"
+ * @since 2.0.0
+ */
+ protected String resolver;
+ /**
+ * Templates à utiliser, séparés par des virgules pour les transformations depuis les models (model input sepcific).
+ *
+ * @parameter expression="${eugene.templates}"
+ * @since 0.50
+ */
+ protected String templates;
+ /**
+ * Templates à ne pas utiliser lors de la transformations des models (model input sepcific).
+ *
+ * @parameter expression="${eugene.excludeTemplates}"
+ * @since 0.63
+ */
+ protected String[] excludeTemplates;
+ /**
+ * Nom par défaut du paquetage généré (model input sepcific).
+ *
+ * @parameter expression="${eugene.defaultPackage}" default-value="${project.groupId}.${project.artifactId}"
+ * @since 0.50
+ */
+ protected String defaultPackage;
+ /**
+ * List of packages to generate (comma separated). (model input sepcific).
+ * <p/>
+ * If the parameter is not filled, will generate all packages.
+ *
+ * @parameter expression="${eugene.generatedPackages}"
+ * @since 1.0.0-rc-8
+ */
+ protected String generatedPackages;
+ /**
+ * Maven project.
+ *
+ * @parameter default-value="${project}"
+ * @readonly
+ * @since 2.0.0
+ */
+ protected MavenProject project;
+ /**
+ * Le settings (pour obtenir le mode offline).
+ *
+ * @parameter default-value="${settings}"
+ * @readonly
+ * @since 2.0.0
+ */
+ protected Settings settings;
+
+ /**
+ * All available models (obtain by plexus, keys are plexus roles, values are a
+ * instance of corresponding model).
+ *
+ * @component role="org.nuiton.eugene.models.Model"
+ */
+ protected Map<String, Model> _models;
+ /**
+ * All available writers introspects via plexus
+ *
+ * @component role="org.nuiton.eugene.writer.ChainedFileWriter"
+ */
+ protected Map<String, ChainedFileWriter> writers;
+ /**
+ * All available writers introspects via plexus
+ *
+ * @component role="org.nuiton.eugene.ModelReader"
+ */
+ protected Map<String, ModelReader<?>> modelReaders;
+ /**
+ * All available templates introspects via plexus
+ *
+ * @component role="org.nuiton.eugene.Template"
+ */
+ protected Map<String, Template<?>> modelTemplates;
+ /**
+ * The engine to compute {@link org.nuiton.eugene.writer.ChainedFileWriter} from inputs entries.
+ *
+ * @component role="org.nuiton.eugene.writer.ChainedWriterEngine"
+ */
+ protected ChainedWriterEngine engine;
+ /**
+ * class instance of the given {@link #modelType}
+ */
+ protected Class<? extends Model> modelClass;
+ /**
+ * fixed classloader
+ */
+ protected ClassLoader fixedClassLoader;
+
+ @Override
+ protected boolean init() throws Exception {
+ // on recupere le fqn du model à traiter via le container plexus (plus pratique dans ce cas où on veut
+ // pouvoir associé un nom à un type de service).
+ Model model = _models.get(modelType.trim().toLowerCase());
+ if (model == null) {
+ throw new MojoExecutionException("No modelType named '" + modelType + "', use one of " + _models.keySet());
+ }
+ modelClass = model.getClass();
+
+ if (inputs.length == 0) {
+ throw new MojoExecutionException("Must specify something to include using the includes property");
+ }
+ //FIXME-TC20091217 use a configurator in plexus ?
+ // Actually we obtain a different instance of the mojo conflit with mojo and plexus :)
+ engine.setConfiguration(this);
+
+ Set<ChainedFileWriter> availableWriters = engine.getAvailableWriters();
+
+ if (availableWriters.isEmpty()) {
+ throw new MojoExecutionException("Could not find any writer in class-path.");
+ }
+
+ for (ChainedFileWriter writer : availableWriters) {
+ if (writer instanceof BaseChainedFileWriter) {
+ // add log support
+ ((BaseChainedFileWriter) writer).setLog(getLog());
+ }
+ }
+
+ // detect top level writers
+ for (String include : inputs) {
+
+ getLog().info("Register include : " + include);
+ engine.registerInclude(include);
+ }
+
+ if (engine.getSelectedWriters().isEmpty()) {
+ getLog().warn("No phase was detected, skip the goal.");
+ return false;
+ }
+
+ if (properties == null) {
+ properties = new LinkedHashMap<String, Object>();
+ }
+
+ if (engine.containsWriter("xmi")) {
+
+ // add xmi writer support
+
+ ClassLoader loader = getFixedClassLoader();
+
+ properties.put(BaseXmiToChainedFileWriter.PROP_CLASS_LOADER, loader);
+ properties.put(BaseXmiToChainedFileWriter.PROP_FULL_PACKAGE_PATH, fullPackagePath);
+ //properties.put("extractedPackages", extractedPackages);
+ properties.put(BaseXmiToChainedFileWriter.PROP_RESOLVER, resolver);
+ }
+
+ if (engine.containsWriter("model")) {
+
+ // add model writer support
+
+ ClassLoader loader = getFixedClassLoader();
+
+ properties.put(ModelChainedFileWriter.PROP_CLASS_LOADER, loader);
+ properties.put(ModelChainedFileWriter.PROP_MODEL_TYPE, modelType);
+ properties.put(ModelChainedFileWriter.PROP_DEFAULT_PACKAGE, defaultPackage);
+ properties.put(ModelChainedFileWriter.PROP_GENERATED_PACKAGES, generatedPackages);
+ properties.put(ModelChainedFileWriter.PROP_TEMPLATES, templates);
+ properties.put(ModelChainedFileWriter.PROP_EXCLUDE_TEMPLATES, getExcludeTemplatesAsString());
+ }
+
+ return true;
+ }
+
+ @Override
+ protected void doAction() throws Exception {
+ if (dryRun) {
+ getLog().warn("dryRun property is set, no file will be generated.");
+ }
+ if (isVerbose()) {
+ if (isTestPhase()) {
+ getLog().info(" using testPhase");
+ }
+ }
+ try {
+
+ List<String> skipInputList = new ArrayList<String>();
+
+ if (!StringUtils.isEmpty(skipInputs)) {
+
+ for (String s : skipInputs.split(",")) {
+ skipInputList.add(s.trim());
+ }
+ }
+
+ // launch writers in incoming order of dicovering of them
+
+ for (ChainedFileWriter writer : engine.getSelectedWriters()) {
+ if (skipInputList.contains(writer.getInputProtocol())) {
+ getLog().info("Skip phase [" + writer.getInputProtocol() + "] as required in skipInputs configuration.");
+ continue;
+ }
+ int size = writer.getEntries().size();
+ if (size == 1) {
+ getLog().info("Process phase [" + writer.getInputProtocol() + "] for one entry.");
+ } else {
+ getLog().info("Process phase [" + writer.getInputProtocol() + "] for " + size + " entries.");
+ }
+ if (dryRun || isVerbose()) {
+ for (ChainedFileWriterEntry entry : writer.getEntries()) {
+ getLog().info(" entry : " + entry.getInputDirectory() + " - " + entry.getIncludePattern());
+ }
+ if (dryRun) {
+ continue;
+ }
+ }
+ if (getLog().isDebugEnabled()) {
+ getLog().debug("Generating files and copying resources...");
+ }
+
+ try {
+ writer.generate(this);
+ } catch (Exception e) {
+ throw new MojoExecutionException("could not generate for writer " + writer.getInputProtocol(), e);
+ }
+
+ if ("model".equals(writer.getInputProtocol())) {
+
+ // must fix source compile roots
+ File outputDir = writer.getOutputDirectory(getOutputDirectory(), isTestPhase());
+
+ fixCompileSourceRoots(outputDir);
+ }
+ }
+
+ } finally {
+ // always clear everything to avoid side-effects in goal is invoked more than once
+ properties.clear();
+ engine.clear();
+ }
+ }
+
+ @Override
+ public File getOutputDirectory() {
+ return outputDirectory;
+ }
+
+ @Override
+ public Map<String, Object> getProperties() {
+ return properties;
+ }
+
+ @Override
+ public MavenProject getProject() {
+ return project;
+ }
+
+ @Override
+ public void setProject(MavenProject project) {
+ this.project = project;
+ }
+
+ @Override
+ public boolean isVerbose() {
+ return verbose;
+ }
+
+ @Override
+ public void setVerbose(boolean verbose) {
+ this.verbose = verbose;
+ }
+
+ @Override
+ public String getEncoding() {
+ return encoding;
+ }
+
+ @Override
+ public boolean isOverwrite() {
+ return overwrite;
+ }
+
+ @Override
+ public boolean isOffline() {
+ return settings.isOffline();
+ }
+
+ @Override
+ public boolean isTestPhase() {
+ return testPhase;
+ }
+
+ @Override
+ public Class<? extends Model> getModelClass() {
+ return modelClass;
+ }
+
+ @Override
+ public Map<String, ChainedFileWriter> getWriters() {
+ return writers;
+ }
+
+ @Override
+ public Map<String, ModelReader<?>> getModelReaders() {
+ return modelReaders;
+ }
+
+ @Override
+ public Map<String, Template<?>> getModelTemplates() {
+ return modelTemplates;
+ }
+
+ @Override
+ public File getBasedir() {
+ return getProject().getBasedir();
+ }
+
+ /**
+ * @return the string representation of excludesTemplates (separated by comma)
+ */
+ protected String getExcludeTemplatesAsString() {
+ String result = "";
+ for (int i = 0; i < excludeTemplates.length; i++) {
+ result += excludeTemplates[i];
+ if (i != excludeTemplates.length - 1) {
+ result += ",";
+ }
+ }
+ return result;
+ }
+
+ /**
+ * Prepare le classLoader a utiliser dans le generateur.
+ * <p/>
+ * Si le mojo est en phase de test {@link #testPhase} a été renseigné, target/classes est rajouté.
+ * <p/>
+ * Si des références à des sibling modules, ils seront rajoutés aussi.
+ *
+ * @return le class loader modifie
+ * @throws MojoExecutionException if any pb
+ */
+
+ public ClassLoader getFixedClassLoader() throws MojoExecutionException {
+ if (fixedClassLoader == null) {
+ Set<String> urlsAsString = new HashSet<String>();
+ List<URL> urls = new ArrayList<URL>();
+ try {
+ ClassLoader loader;
+
+ if (testPhase) {
+ File extraClassPathDirectory = new File(getProject().getBuild().getOutputDirectory());
+// if (verbose) {
+ getLog().info("Add in generator's classLoader : " + extraClassPathDirectory);
+// }
+ addDirectoryToUrlsList(extraClassPathDirectory, urls, urlsAsString);
+ }
+ if (project.getProjectReferences() != null) {
+ // this case is for multi-module when calling from a parent module
+ for (Object o : project.getProjectReferences().entrySet()) {
+ Map.Entry<?, ?> entry = (Map.Entry<?, ?>) o;
+ MavenProject relatedProject = (MavenProject) entry.getValue();
+ if (verbose) {
+ getLog().info("Add project reference in generator's classLoader : '" + relatedProject.getArtifact() + "'");
+ }
+ //TODO il faudrait peut-etre aussi ajouter les dependances ?
+ addDirectoryToUrlsList(relatedProject.getArtifact().getFile(), urls, urlsAsString);
+ }
+ }
+ if (!project.getArtifacts().isEmpty()) {
+ // this is a special case when artifacts were resolved (for example in site phase)
+ if (verbose) {
+ getLog().info("Use resolved artifacts to build class-path");
+ }
+ for (Object o : project.getArtifacts()) {
+ Artifact a = (Artifact) o;
+ if (!a.getScope().equals("provided")) {
+ addDirectoryToUrlsList(a.getFile(), urls, urlsAsString);
+ }
+ }
+ }
+ // we ask to add the directory in classloader
+ loader = getClass().getClassLoader();
+ if (getLog().isDebugEnabled()) {
+ getLog().info("original classloader " + loader);
+ }
+ if (loader instanceof URLClassLoader) {
+ // on reinjecte les urls de loader de base
+ // car sinon on risque de ne pas retrouver les resources...
+ for (URL u : ((URLClassLoader) loader).getURLs()) {
+ addUrlToUrlsList(u, urls, urlsAsString);
+ if (getLog().isDebugEnabled()) {
+ getLog().debug("original cp entry: " + u);
+ }
+ }
+ // et on force l'utilisation du classloader parent
+ // s'il existe
+ if (loader.getParent() != null) {
+ loader = loader.getParent();
+ }
+ }
+ if (!urls.isEmpty()) {
+ loader = new URLClassLoader(urls.toArray(new URL[urls.size()]),
+ loader);
+ }
+ if (getLog().isDebugEnabled()) {
+ for (URL u : urls) {
+ getLog().debug("cp entry: " + u);
+ }
+ }
+ fixedClassLoader = loader;
+ } catch (MalformedURLException e) {
+ throw new MojoExecutionException(e.getMessage());
+ } finally {
+ urls.clear();
+ urlsAsString.clear();
+ }
+ }
+ return fixedClassLoader;
+ }
+
+ /**
+ * permet d'ajout le répertoire de génération des fichiers java dans les répertoires
+ * de compilation du projet Maven.
+ *
+ * @param destDirGen le repertoire a traiter
+ */
+ protected void fixCompileSourceRoots(File destDirGen) {
+
+ //FIXME-TC20091215 : should never have a null project, this is not normal
+ if (project == null) {
+ // no project defined, can not fix anything
+ // this case could appears if we wanted to do some tests of the plugin
+ return;
+ }
+
+ //TODO-TC20091016 should use AbstractPlugin api
+ if (isTestPhase()) {
+ if (!project.getTestCompileSourceRoots().contains(destDirGen.getPath())) {
+ getLog().info("Add test compile source root : " + destDirGen);
+ project.addTestCompileSourceRoot(destDirGen.getPath());
+ Resource resources = new Resource();
+ resources.setDirectory(destDirGen.getAbsolutePath());
+ resources.setExcludes(Arrays.asList("**/*.java"));
+ getLog().info("Add test resource root :" + resources);
+ project.addTestResource(resources);
+ }
+ } else {
+ if (!project.getCompileSourceRoots().contains(destDirGen.getPath())) {
+ getLog().info("Add compile source root : " + destDirGen);
+ project.addCompileSourceRoot(destDirGen.getPath());
+ Resource resources = new Resource();
+ resources.setDirectory(destDirGen.getAbsolutePath());
+ resources.setExcludes(Arrays.asList("**/*.java"));
+ getLog().info("Add resource root :" + resources);
+ project.addResource(resources);
+ }
+ }
+ }
+
+
+}
\ No newline at end of file
Property changes on: trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/SmartGenerateMojo.java
___________________________________________________________________
Added: svn:keywords
+ "Author Date Id Revision HeadURL
Copied: trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/writer/BaseChainedFileWriter.java (from rev 760, trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/writer/BaseModelFileWriter.java)
===================================================================
--- trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/writer/BaseChainedFileWriter.java (rev 0)
+++ trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/writer/BaseChainedFileWriter.java 2009-12-18 10:26:52 UTC (rev 765)
@@ -0,0 +1,87 @@
+/*
+ * *##%
+ * EUGene :: Maven plugin
+ * Copyright (C) 2006 - 2009 CodeLutin
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation, either version 3 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 Lesser Public License for more details.
+ *
+ * You should have received a copy of the GNU General Lesser Public
+ * License along with this program. If not, see
+ * <http://www.gnu.org/licenses/lgpl-3.0.html>.
+ * ##%*
+ */
+package org.nuiton.eugene.plugin.writer;
+
+import org.apache.maven.plugin.logging.Log;
+import org.apache.maven.plugin.logging.SystemStreamLog;
+import org.nuiton.eugene.writer.AbstractChainedFileWriter;
+import org.nuiton.eugene.writer.ChainedFileWriterConfiguration;
+
+import java.util.Map;
+import java.util.Set;
+
+/**
+ * Surcharge de l'implentation abstraite pour avoir le logger de la console maven.
+ *
+ * @author tchemit
+ * @since 2.0.0
+ */
+public abstract class BaseChainedFileWriter extends AbstractChainedFileWriter {
+
+ /**
+ * Logger
+ */
+ private Log log;
+
+ protected BaseChainedFileWriter(String... propertyNameAndDescriptions) {
+ super(propertyNameAndDescriptions);
+ }
+
+ public void setLog(Log log) {
+ this.log = log;
+ }
+
+ public Log getLog() {
+ if (log == null) {
+ log = new SystemStreamLog();
+ }
+
+ return log;
+ }
+
+ @Override
+ protected void initWriter(ChainedFileWriterConfiguration configuration) {
+ super.initWriter(configuration);
+
+ // log writer config
+
+ StringBuilder buffer = new StringBuilder();
+ Set<Map.Entry<String, String>> set = getAuthorizedPropertyDescriptions().entrySet();
+ if (set.isEmpty()) {
+ buffer.append("Writer [").append(getInputProtocol()).append("]").append(" does not use any specific properties.");
+ } else {
+ buffer.append("Writer [").append(getInputProtocol()).append("]").append(" use ").append(properties.size()).append(" properties :");
+ if (getLog().isInfoEnabled()) {
+ for (Map.Entry<String, String> e : set) {
+
+ String key = e.getKey();
+ Object value = properties.get(key);
+ if (value != null) {
+ buffer.append("\n").append(" [").append(key).append("] (").append(e.getValue()).append(") : ").append(value);
+ }
+ }
+ }
+ }
+ getLog().info(buffer.toString());
+ }
+
+
+}
Property changes on: trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/writer/BaseChainedFileWriter.java
___________________________________________________________________
Added: svn:keywords
+ "Author Date Id Revision HeadURL
Deleted: trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/writer/BaseModelFileWriter.java
===================================================================
--- trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/writer/BaseModelFileWriter.java 2009-12-18 10:23:09 UTC (rev 764)
+++ trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/writer/BaseModelFileWriter.java 2009-12-18 10:26:52 UTC (rev 765)
@@ -1,58 +0,0 @@
-/*
- * *##%
- * EUGene :: Maven plugin
- * Copyright (C) 2006 - 2009 CodeLutin
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation, either version 3 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 Lesser Public License for more details.
- *
- * You should have received a copy of the GNU General Lesser Public
- * License along with this program. If not, see
- * <http://www.gnu.org/licenses/lgpl-3.0.html>.
- * ##%*
- */
-package org.nuiton.eugene.plugin.writer;
-
-import org.apache.maven.plugin.logging.Log;
-import org.apache.maven.plugin.logging.SystemStreamLog;
-import org.nuiton.eugene.AbstractModelFileWriter;
-
-/**
- * Surcharge de l'implentation abstraite pour avoir le logger de la console maven.
- *
- * @author tchemit
- * @since 2.0.0
- */
-public abstract class BaseModelFileWriter extends AbstractModelFileWriter {
-
- /**
- * Logger
- */
- private Log log;
- public static final String PROP_CLASS_LOADER = "classLoader";
-
- public void setLog(Log log) {
- this.log = log;
- }
-
- public Log getLog() {
- if (log == null) {
- log = new SystemStreamLog();
- }
-
- return log;
- }
-
- public ClassLoader getClassLoader() {
- return getProperty(PROP_CLASS_LOADER, ClassLoader.class);
- }
-
-
-}
Copied: trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/writer/BaseXmiToChainedFileWriter.java (from rev 761, trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/writer/BaseXmiToModelFileWriter.java)
===================================================================
--- trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/writer/BaseXmiToChainedFileWriter.java (rev 0)
+++ trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/writer/BaseXmiToChainedFileWriter.java 2009-12-18 10:26:52 UTC (rev 765)
@@ -0,0 +1,275 @@
+/*
+ * *##%
+ * EUGene :: Maven plugin
+ * Copyright (C) 2006 - 2009 CodeLutin
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation, either version 3 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 Lesser Public License for more details.
+ *
+ * You should have received a copy of the GNU General Lesser Public
+ * License along with this program. If not, see
+ * <http://www.gnu.org/licenses/lgpl-3.0.html>.
+ * ##%*
+ */
+package org.nuiton.eugene.plugin.writer;
+
+import org.nuiton.eugene.models.Model;
+import org.nuiton.eugene.writer.ChainedFileWriterConfiguration;
+import org.nuiton.plugin.PluginHelper;
+import org.nuiton.plugin.PluginIOContext;
+import org.nuiton.util.FasterCachedResourceResolver;
+import org.nuiton.util.FileUtil;
+import org.nuiton.util.Resource;
+import org.nuiton.util.ResourceResolver;
+
+import javax.xml.transform.Transformer;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.URIResolver;
+import javax.xml.transform.stream.StreamResult;
+import javax.xml.transform.stream.StreamSource;
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.lang.reflect.Constructor;
+import java.net.URL;
+import java.util.List;
+
+/**
+ * Implentation pour les writer to type xmi (qui transforme du xmi via xsl).
+ *
+ * @author tchemit
+ * @since 2.0.0
+ */
+public abstract class BaseXmiToChainedFileWriter extends BaseChainedFileWriter {
+
+ public static final String PROP_RESOLVER = "resolver";
+ // public static final String PROP_EXTRACTED_PACKAGES = "extractedPackages";
+ public static final String PROP_FULL_PACKAGE_PATH = "fullPackagePath";
+ public static final String PROP_CLASS_LOADER = "classLoader";
+
+ public BaseXmiToChainedFileWriter() {
+ super(PROP_CLASS_LOADER, "classLoader", PROP_RESOLVER, "resolver", PROP_FULL_PACKAGE_PATH, "fullPackagePath");
+ }
+
+ /**
+ * Get style sheet.
+ *
+ * @param model the model file used to determine the stylesheet to use
+ * @return the stylesheet name
+ */
+ protected abstract String getStyleSheet(File model);
+
+ /**
+ * Get extension.
+ *
+ * @return the extension
+ */
+ protected abstract String getExtension();
+
+ @Override
+ public String getInputProtocol() {
+ return "xmi";
+ }
+
+ @Override
+ public <M extends Model> String getOutputProtocol(Class<M> modelType) {
+ // next writer : write from model files
+ return "model";
+ }
+
+ @Override
+ public boolean acceptInclude(String include) {
+ return include.startsWith("xmi:") || include.endsWith(".xmi") || include.endsWith(".uml");
+ }
+
+ @Override
+ public String getDefaultIncludes() {
+ return "**/*.xmi";
+ }
+
+ @Override
+ public String getDefaultInputDirectory() {
+ return "src/main/xmi";
+ }
+
+ @Override
+ public String getDefaultOutputDirectory() {
+ return "models";
+ }
+
+ @Override
+ public String getDefaultTestInputDirectory() {
+ return "src/test/xmi";
+ }
+
+ @Override
+ public String getDefaultTestOutputDirectory() {
+ return "test-models";
+ }
+
+ protected TransformerFactory transformerFactory;
+
+ protected TransformerFactory getTransformerFactory() {
+ if (transformerFactory == null) {
+ transformerFactory = TransformerFactory.newInstance();
+ }
+ return transformerFactory;
+ }
+
+ public String getFullPackagePath() {
+ return getProperty(PROP_FULL_PACKAGE_PATH, String.class);
+ }
+
+// public String getExtractedPackages() {
+// return getProperty(PROP_EXTRACTED_PACKAGES, String.class);
+// }
+
+ public String getResolver() {
+ return getProperty(PROP_RESOLVER, String.class);
+ }
+
+
+ public ClassLoader getClassLoader() {
+ return getProperty(PROP_CLASS_LOADER, ClassLoader.class);
+ }
+
+
+ @Override
+ public void generate(ChainedFileWriterConfiguration configuration, File outputDir, File inputDirectory, String includePattern) throws IOException {
+ long t0 = System.nanoTime();
+
+ boolean overwrite = configuration.isOverwrite();
+ try {
+ getLog().info("Processing XSL tranformation on " + inputDirectory + " for " + includePattern);
+
+ getLog().info(" with fullPackagePath : " + getFullPackagePath());
+// getLog().info(" with extractedPackages : " + getExtractedPackages());
+// getLog().info(" with acceptedXmiTypes : " + getFullPackagePath());
+ getLog().info(" with resolver : " + getResolver());
+
+ // recuperation des fichiers a traiter
+ List<File> files = PluginHelper.getIncludedFiles(inputDirectory, new String[]{includePattern}, null);
+
+ // lancement des traitements xsl sur les fichiers trouvés
+ // dans le repertoire
+ actionXsl(configuration, outputDir, inputDirectory, files, overwrite);
+ } finally {
+ getLog().info("xsl done in " + PluginHelper.convertTime(System.nanoTime() - t0));
+ }
+
+ getLog().info("Copy resources files");
+
+ PluginIOContext ioContext = new PluginIOContext();
+ ioContext.setInput(inputDirectory);
+ ioContext.setOutput(outputDir);
+// String[] excludes = getSuffixPattern("**/*");
+ PluginHelper.copyFiles(ioContext, null, new String[]{includePattern}, overwrite);
+ }
+
+
+ protected void actionXsl(ChainedFileWriterConfiguration configuration, File outputDir, File dir, List<File> files, boolean overwrite) throws IOException {
+
+ for (File file : files) {
+ try {
+ if (getLog().isDebugEnabled()) {
+ getLog().debug("treate file : " + file);
+ }
+ // Prepare resolver, stylesheet
+ URIResolver fileResolver = getUriResolver(configuration, file);
+ String styleSheet = getStyleSheet(file);
+ URL xsl = Resource.getURL(styleSheet);
+
+ //TC-20090820 : using recursive for xmi
+// File result = new File(destDirModel, FileUtil.basename(file,
+// acceptedSuffixes).concat(".").concat(getExtension()));
+
+ String extension = "." + FileUtil.extension(file);
+ String filename = FileUtil.basename(file, extension).concat(".").concat(getExtension());
+ String relatifPath = file.getParentFile().getAbsolutePath().substring(dir.getAbsolutePath().length());
+ File dstDir = outputDir;
+ if (!relatifPath.isEmpty()) {
+ dstDir = new File(dstDir, relatifPath);
+ if (!dstDir.exists()) {
+ boolean b = dstDir.mkdirs();
+ if (!b) {
+ throw new IOException("could not create directory " + dstDir);
+ }
+ }
+ }
+ File result = new File(dstDir, filename);
+ if (!overwrite && file.lastModified() < result.lastModified()) {
+ getLog().info("file up-to-date : " + result);
+ continue;
+ }
+ if (getLog().isDebugEnabled()) {
+ getLog().debug("generate " + result);
+ }
+
+ // Create the xsl transformer and set parameters
+ Transformer transformer = getTransformerFactory().newTransformer(new StreamSource(xsl.openStream()));
+
+ transformer.setParameter(PROP_FULL_PACKAGE_PATH, getFullPackagePath());
+ //transformer.setParameter("extraPackages", getExtractedPackages());
+
+ transformer.setURIResolver(fileResolver);
+ transformer.transform(new StreamSource(file), new StreamResult(
+ new FileOutputStream(result)));
+
+ } catch (Exception e) {
+ throw new IOException(e.getMessage(), e);
+ }
+ }
+ }
+
+ protected URIResolver getUriResolver(ChainedFileWriterConfiguration configuration, File model) {
+ URIResolver result = null;
+
+ try {
+ ClassLoader loader = getClassLoader();
+ Class<?> clazz = Class.forName(getResolver(), true, loader);
+
+ // Try to set the base using the constructor
+ try {
+ // Look for a constructor with a String parameter (base)
+ Constructor<?> withBaseConstructor = clazz.getConstructor(String.class);
+ // Set the xmi folder as the base
+ String base = model.getParentFile().getAbsolutePath();
+ // Instantiate
+ result = (URIResolver) withBaseConstructor.newInstance(base);
+ } catch (Exception eee) {
+ getLog().warn("Unable to instantiate resolver with String parameter",
+ eee);
+ }
+
+ // If resolver is still not created, create it using the default
+ // constructor
+ if (result == null) {
+ result = (URIResolver) clazz.newInstance();
+ }
+
+ if (result instanceof ResourceResolver) {
+ ((ResourceResolver) result).setVerbose(configuration.isVerbose());
+ ((ResourceResolver) result).setCl(loader);
+ if (result instanceof FasterCachedResourceResolver) {
+ boolean offline = configuration.isOffline();
+ getLog().debug("using offline mode ? : " + offline);
+ ((FasterCachedResourceResolver) result).setOffline(offline);
+ }
+ }
+
+ } catch (Exception eee) {
+ getLog().warn("Unable to instantiate resolver using the default constructor", eee);
+ }
+
+ return result;
+ }
+
+
+}
Property changes on: trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/writer/BaseXmiToChainedFileWriter.java
___________________________________________________________________
Added: svn:keywords
+ "Author Date Id Revision HeadURL
Deleted: trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/writer/BaseXmiToModelFileWriter.java
===================================================================
--- trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/writer/BaseXmiToModelFileWriter.java 2009-12-18 10:23:09 UTC (rev 764)
+++ trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/writer/BaseXmiToModelFileWriter.java 2009-12-18 10:26:52 UTC (rev 765)
@@ -1,261 +0,0 @@
-/*
- * *##%
- * EUGene :: Maven plugin
- * Copyright (C) 2006 - 2009 CodeLutin
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation, either version 3 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 Lesser Public License for more details.
- *
- * You should have received a copy of the GNU General Lesser Public
- * License along with this program. If not, see
- * <http://www.gnu.org/licenses/lgpl-3.0.html>.
- * ##%*
- */
-package org.nuiton.eugene.plugin.writer;
-
-import org.nuiton.eugene.models.Model;
-import org.nuiton.plugin.PluginHelper;
-import org.nuiton.plugin.PluginIOContext;
-import org.nuiton.util.FasterCachedResourceResolver;
-import org.nuiton.util.FileUtil;
-import org.nuiton.util.Resource;
-import org.nuiton.util.ResourceResolver;
-
-import javax.xml.transform.Transformer;
-import javax.xml.transform.TransformerFactory;
-import javax.xml.transform.URIResolver;
-import javax.xml.transform.stream.StreamResult;
-import javax.xml.transform.stream.StreamSource;
-import java.io.File;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.lang.reflect.Constructor;
-import java.net.URL;
-import java.util.List;
-
-/**
- * Implentation pour les writer to type xmi (qui transforme du xmi via xsl).
- *
- * @author tchemit
- * @since 2.0.0
- */
-public abstract class BaseXmiToModelFileWriter extends BaseModelFileWriter {
- public static final String PROP_RESOLVER = "resolver";
-// public static final String PROP_EXTRACTED_PACKAGES = "extractedPackages";
- public static final String PROP_FULL_PACKAGE_PATH = "fullPackagePath";
-
- /**
- * Get style sheet.
- *
- * @param model the model file used to determine the stylesheet to use
- * @return the stylesheet name
- */
- protected abstract String getStyleSheet(File model);
-
- /**
- * Get extension.
- *
- * @return the extension
- */
- protected abstract String getExtension();
-
- @Override
- public String getInputProtocol() {
- return "xmi";
- }
-
- @Override
- public <M extends Model> String getOutputProtocol(Class<M> modelType) {
- // no next writer : write model files
- return null;
- }
-
- @Override
- public boolean acceptInclude(String include) {
- return include.startsWith("xmi:") || include.endsWith(".xmi") || include.endsWith(".uml");
- }
-
- @Override
- public String getDefaultIncludes() {
- return "**/*.xmi";
- }
-
- @Override
- public String getDefaultInputDirectory() {
- return "src/main/xmi";
- }
-
- @Override
- public String getDefaultOutputDirectory() {
- return "models";
- }
-
- @Override
- public String getDefaultTestInputDirectory() {
- return "src/test/xmi";
- }
-
- @Override
- public String getDefaultTestOutputDirectory() {
- return "test-models";
- }
-
- protected TransformerFactory transformerFactory;
-
- protected TransformerFactory getTransformerFactory() {
- if (transformerFactory == null) {
- transformerFactory = TransformerFactory.newInstance();
- }
- return transformerFactory;
- }
-
- public String getFullPackagePath() {
- return getProperty(PROP_FULL_PACKAGE_PATH, String.class);
- }
-
-// public String getExtractedPackages() {
-// return getProperty(PROP_EXTRACTED_PACKAGES, String.class);
-// }
-
- public String getResolver() {
- return getProperty(PROP_RESOLVER, String.class);
- }
-
-
- @Override
- public void generate(File outputDir, File inputDirectory, String includePattern, boolean overwrite) throws IOException {
- long t0 = System.nanoTime();
- try {
- getLog().info("Processing XSL tranformation on " + inputDirectory + " for " + includePattern);
-
- getLog().info(" with fullPackagePath : " + getFullPackagePath());
-// getLog().info(" with extractedPackages : " + getExtractedPackages());
-// getLog().info(" with acceptedXmiTypes : " + getFullPackagePath());
- getLog().info(" with resolver : " + getResolver());
-
- // recuperation des fichiers a traiter
- List<File> files = PluginHelper.getIncludedFiles(inputDirectory, new String[]{includePattern}, null);
-
- // lancement des traitements xsl sur les fichiers trouvés
- // dans le repertoire
- actionXsl(outputDir, inputDirectory, files, getClassLoader(), overwrite);
- } finally {
- getLog().info("xsl done in " + PluginHelper.convertTime(System.nanoTime() - t0));
- }
-
- getLog().info("Copy resources files");
-
- PluginIOContext ioContext = new PluginIOContext();
- ioContext.setInput(inputDirectory);
- ioContext.setOutput(outputDir);
-// String[] excludes = getSuffixPattern("**/*");
- PluginHelper.copyFiles(ioContext, null, new String[]{includePattern}, overwrite);
- }
-
-
- protected void actionXsl(File outputDir, File dir, List<File> files, ClassLoader fixedClassLoader, boolean overwrite) throws IOException {
-
- for (File file : files) {
- try {
- if (getLog().isDebugEnabled()) {
- getLog().debug("treate file : " + file);
- }
- // Prepare resolver, stylesheet
- URIResolver fileResolver = getUriResolver(file, fixedClassLoader);
- String styleSheet = getStyleSheet(file);
- URL xsl = Resource.getURL(styleSheet);
-
- //TC-20090820 : using recursive for xmi
-// File result = new File(destDirModel, FileUtil.basename(file,
-// acceptedSuffixes).concat(".").concat(getExtension()));
-
- String extension = "." + FileUtil.extension(file);
- String filename = FileUtil.basename(file, extension).concat(".").concat(getExtension());
- String relatifPath = file.getParentFile().getAbsolutePath().substring(dir.getAbsolutePath().length());
- File dstDir = outputDir;
- if (!relatifPath.isEmpty()) {
- dstDir = new File(dstDir, relatifPath);
- if (!dstDir.exists()) {
- boolean b = dstDir.mkdirs();
- if (!b) {
- throw new IOException("could not create directory "+dstDir);
- }
- }
- }
- File result = new File(dstDir, filename);
- if (!overwrite && file.lastModified() < result.lastModified()) {
- getLog().info("file up-to-date : " + result);
- continue;
- }
- if (getLog().isDebugEnabled()) {
- getLog().debug("generate " + result);
- }
-
- // Create the xsl transformer and set parameters
- Transformer transformer = getTransformerFactory().newTransformer(new StreamSource(xsl.openStream()));
-
- transformer.setParameter(PROP_FULL_PACKAGE_PATH, getFullPackagePath());
- //transformer.setParameter("extraPackages", getExtractedPackages());
-
- transformer.setURIResolver(fileResolver);
- transformer.transform(new StreamSource(file), new StreamResult(
- new FileOutputStream(result)));
-
- } catch (Exception e) {
- throw new IOException(e.getMessage(), e);
- }
- }
- }
-
-
- protected URIResolver getUriResolver(File model, ClassLoader cl) {
- URIResolver result = null;
-
- try {
- Class<?> clazz = Class.forName(getResolver(), true, cl);
-
- // Try to set the base using the constructor
- try {
- // Look for a constructor with a String parameter (base)
- Constructor<?> withBaseConstructor = clazz.getConstructor(String.class);
- // Set the xmi folder as the base
- String base = model.getParentFile().getAbsolutePath();
- // Instantiate
- result = (URIResolver) withBaseConstructor.newInstance(base);
- } catch (Exception eee) {
- getLog().warn("Unable to instantiate resolver with String parameter",
- eee);
- }
-
- // If resolver is still not created, create it using the default
- // constructor
- if (result == null) {
- result = (URIResolver) clazz.newInstance();
- }
-
- if (result instanceof ResourceResolver) {
- ((ResourceResolver) result).setVerbose(getConfiguration().isVerbose());
- ((ResourceResolver) result).setCl(cl);
- if (result instanceof FasterCachedResourceResolver) {
- boolean offline = getConfiguration().isOffline();
- getLog().debug("using offline mode ? : " + offline);
- ((FasterCachedResourceResolver) result).setOffline(offline);
- }
- }
-
- } catch (Exception eee) {
- getLog().warn("Unable to instantiate resolver using the default constructor", eee);
- }
-
- return result;
- }
-
-
-}
Added: trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/writer/ModelChainedFileWriter.java
===================================================================
--- trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/writer/ModelChainedFileWriter.java (rev 0)
+++ trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/writer/ModelChainedFileWriter.java 2009-12-18 10:26:52 UTC (rev 765)
@@ -0,0 +1,265 @@
+/*
+ * *##%
+ * EUGene :: Maven plugin
+ * Copyright (C) 2006 - 2009 CodeLutin
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation, either version 3 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 Lesser Public License for more details.
+ *
+ * You should have received a copy of the GNU General Lesser Public
+ * License along with this program. If not, see
+ * <http://www.gnu.org/licenses/lgpl-3.0.html>.
+ * ##%*
+ */
+package org.nuiton.eugene.plugin.writer;
+
+import org.apache.commons.lang.StringUtils;
+import org.nuiton.eugene.ModelReader;
+import org.nuiton.eugene.Template;
+import org.nuiton.eugene.models.Model;
+import org.nuiton.eugene.writer.ChainedFileWriterConfiguration;
+import org.nuiton.plugin.PluginHelper;
+import org.nuiton.plugin.PluginIOContext;
+
+import java.io.File;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+import java.util.Properties;
+
+/**
+ * To write model files from zargo files.
+ *
+ * @author tchemit
+ * @plexus.component role="org.nuiton.eugene.writer.ChainedFileWriter" role-hint="model2Java"
+ * @since 2.0.0
+ */
+public class ModelChainedFileWriter extends BaseChainedFileWriter {
+
+ public static final String PROP_GENERATED_PACKAGES = "generatedPackages";
+ public static final String PROP_EXCLUDE_TEMPLATES = "excludetemplates";
+ public static final String PROP_TEMPLATES = "templates";
+ public static final String PROP_TEMPLATES_LIST = "templatesList";
+ public static final String PROP_DEFAULT_PACKAGE = "defaultPackage";
+ public static final String PROP_MODEL_READER = "modelReader";
+ public static final String PROP_MODEL_TYPE = "modelType";
+ public static final String PROP_READER = "reader";
+ public static final String PROP_CLASS_LOADER = "classLoader";
+
+ public ModelChainedFileWriter() {
+ super(
+ PROP_TEMPLATES, "templates",
+ PROP_TEMPLATES_LIST, "templatesList",
+ PROP_EXCLUDE_TEMPLATES, "excludetemplates",
+ PROP_READER, "reader",
+ PROP_MODEL_TYPE, "modelType",
+ PROP_MODEL_READER, "modelReader",
+ PROP_GENERATED_PACKAGES, "generatedPackages",
+ PROP_DEFAULT_PACKAGE, "defaultPackage",
+ PROP_CLASS_LOADER, "classLoader");
+ }
+
+ @Override
+ public String getInputProtocol() {
+ return "model";
+ }
+
+ @Override
+ public <M extends Model> String getOutputProtocol(Class<M> modelType) {
+ // nothing after java files
+ return null;
+ }
+
+ @Override
+ public <M extends Model> boolean acceptModel(Class<M> modelType) {
+ // accept all models
+ return true;
+ }
+
+ @Override
+ public boolean acceptInclude(String include) {
+ return include.startsWith("model:") || include.endsWith(".objectmodel") || include.endsWith(".statemodel");
+ }
+
+ @Override
+ public String getDefaultIncludes() {
+ return "**/*.*model";
+ }
+
+ @Override
+ public String getDefaultInputDirectory() {
+ return "src/main/models";
+ }
+
+ @Override
+ public String getDefaultOutputDirectory() {
+ return "java";
+ }
+
+ @Override
+ public String getDefaultTestInputDirectory() {
+ return "src/test/models";
+ }
+
+ @Override
+ public String getDefaultTestOutputDirectory() {
+ return "test-java";
+ }
+
+ public String getDefaultPackage() {
+ return getProperty(PROP_DEFAULT_PACKAGE, String.class);
+ }
+
+ public String[] getExcludeTemplates() {
+ return getProperty(PROP_EXCLUDE_TEMPLATES, String[].class);
+ }
+
+ public String getGeneratedPackages() {
+ return getProperty(PROP_GENERATED_PACKAGES, String.class);
+ }
+
+ public List<Template<Model>> getTemplatesList() {
+ return getProperty(PROP_TEMPLATES_LIST, List.class);
+ }
+
+ public String getTemplates() {
+ return getProperty(PROP_TEMPLATES, String.class);
+ }
+
+ protected ModelReader<?> getModelReader() {
+ return getProperty(PROP_MODEL_READER, ModelReader.class);
+ }
+
+ protected String getReader() {
+ return getProperty(PROP_READER, String.class);
+ }
+
+ protected String getModelType() {
+ return getProperty(PROP_MODEL_TYPE, String.class);
+ }
+
+ public ClassLoader getClassLoader() {
+ return getProperty(PROP_CLASS_LOADER, ClassLoader.class);
+ }
+
+ @Override
+ protected void initWriter(ChainedFileWriterConfiguration configuration) {
+ super.initWriter(configuration);
+
+ // obtain a reader
+ ClassLoader loader = getClassLoader();
+ if (getModelReader() == null) {
+
+ if (getReader() != null) {
+ // use a specific reader
+ String reader = getReader();
+ try {
+ ClassLoader fixedClassLoader = loader;
+ ModelReader<?> modelReader = (ModelReader<?>) Class.forName(reader, true, fixedClassLoader).newInstance();
+ //TODO : should check that the reader is compatible with given modelType
+ properties.put(PROP_MODEL_READER, modelReader);
+ } catch (Exception eee) {
+ throw new IllegalStateException("could not obtain reader " + reader, eee);
+ }
+ } else {
+ String modelType = getModelType();
+ ModelReader<?> modelReader = configuration.getModelReaders().get(modelType);
+ if (modelReader == null) {
+ throw new IllegalStateException("could not find a model reader for modelType : " + modelType + ", availables readers : " + configuration.getModelReaders().values());
+ }
+ properties.put(PROP_MODEL_READER, modelReader);
+ }
+ }
+
+ Properties templateProperties = new Properties();
+ templateProperties.setProperty(Template.PROP_DEFAULT_PACKAGE, getDefaultPackage());
+ templateProperties.setProperty(Template.PROP_OVERWRITE, String.valueOf(configuration.isOverwrite()));
+ templateProperties.setProperty(Template.PROP_ENCODING, configuration.getEncoding());
+ templateProperties.setProperty(Template.PROP_LAST_MODIFIED_SOURCE, String.valueOf(getModelReader().getLastModifiedSource()));
+ String generatedPackages = getGeneratedPackages();
+ if (StringUtils.isEmpty(generatedPackages)) {
+ getLog().info(" generating all packages");
+ } else {
+ templateProperties.put(Template.PROP_GENERATED_PACKAGES, generatedPackages);
+ getLog().info(" generating only for packages " + generatedPackages);
+ }
+
+ // init templates
+
+ List<Template<Model>> templatesList = new ArrayList<Template<Model>>();
+ String[] templatesNames = getTemplates().split(",");
+ for (String templateName : templatesNames) {
+ // remove trailing spaces
+ templateName = templateName.trim();
+ Template<Model> template;
+
+ template = (Template<Model>) configuration.getModelTemplates().get(templateName);
+ if (template == null) {
+ getLog().warn("template [" + templateName + "] is not registred via plexus, try to load it directly");
+ try {
+ template = (Template<Model>) Class.forName(templateName, true, loader).newInstance();
+ } catch (Exception e) {
+ throw new IllegalStateException("Can't obtain template [" + templateName + "] for reason " + e.getMessage(), e);
+ }
+
+ // will use this template
+ templatesList.add(template);
+
+ // set the properties of the template
+ template.setProperties(templateProperties);
+ }
+ }
+
+ properties.put(PROP_TEMPLATES_LIST, templatesList);
+ }
+
+
+ @Override
+ public void generate(ChainedFileWriterConfiguration configuration, File outputDir, File inputDirectory, String includePattern) throws IOException {
+
+ PluginIOContext ioContext = new PluginIOContext();
+ ioContext.setInput(inputDirectory);
+ ioContext.setOutput(outputDir);
+
+ // obtain files
+
+ List<File> modelFiles = new ArrayList<File>();
+ String[] includePatterns = includePattern.split(",");
+
+ getLog().info("Generating from " + inputDirectory + " : " + includePattern);
+
+ for (File srcDirGen : ioContext.getInputs()) {
+
+ if (configuration.isVerbose()) {
+ getLog().info("Search for " + Arrays.toString(includePatterns) + " in " + srcDirGen.getAbsolutePath());
+ }
+ List<File> currentFiles = PluginHelper.getIncludedFiles(srcDirGen, includePatterns, null);
+ modelFiles.addAll(currentFiles);
+ }
+
+ // read the model
+
+ Model model = getModelReader().read(modelFiles.toArray(new File[modelFiles.size()]));
+
+ // apply all templates to the model
+
+ for (Template<Model> template : getTemplatesList()) {
+ getLog().info("Apply " + template.getClass().getSimpleName() + " generator");
+
+ // apply template
+ template.applyTemplate(model, ioContext.getOutput());
+
+ }
+
+
+ }
+
+}
\ No newline at end of file
Property changes on: trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/writer/ModelChainedFileWriter.java
___________________________________________________________________
Added: svn:keywords
+ "Author Date Id Revision HeadURL
Copied: trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/writer/XmiToObjectModelChainedFileWriter.java (from rev 761, trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/writer/XmiToObjectModelFileWriter.java)
===================================================================
--- trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/writer/XmiToObjectModelChainedFileWriter.java (rev 0)
+++ trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/writer/XmiToObjectModelChainedFileWriter.java 2009-12-18 10:26:52 UTC (rev 765)
@@ -0,0 +1,135 @@
+/*
+ * *##%
+ * EUGene :: Maven plugin
+ * Copyright (C) 2006 - 2009 CodeLutin
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation, either version 3 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 Lesser Public License for more details.
+ *
+ * You should have received a copy of the GNU General Lesser Public
+ * License along with this program. If not, see
+ * <http://www.gnu.org/licenses/lgpl-3.0.html>.
+ * ##%*
+ */
+package org.nuiton.eugene.plugin.writer;
+
+import org.nuiton.eugene.models.Model;
+import org.nuiton.eugene.models.object.ObjectModel;
+import org.xml.sax.Attributes;
+import org.xml.sax.SAXException;
+import org.xml.sax.helpers.DefaultHandler;
+
+import javax.xml.parsers.ParserConfigurationException;
+import javax.xml.parsers.SAXParser;
+import javax.xml.parsers.SAXParserFactory;
+import java.io.File;
+import java.io.IOException;
+
+/**
+ * To write a object model files from xmi files.
+ * <p/>
+ * This {@link org.nuiton.eugene.writer.ChainedFileWriter} transform xmi files to object model file.
+ *
+ * @author tchemit
+ * @plexus.component role="org.nuiton.eugene.writer.ChainedFileWriter" role-hint="xmi2objectmodel"
+ * @since 2.0.0
+ */
+public class XmiToObjectModelChainedFileWriter extends BaseXmiToChainedFileWriter {
+
+ @Override
+ public <M extends Model> boolean acceptModel(Class<M> modelType) {
+ // accept only state models
+ return ObjectModel.class.isAssignableFrom(modelType);
+ }
+
+ @Override
+ public String getExtension() {
+ return "objectmodel";
+ }
+
+ @Override
+ protected String getStyleSheet(File model) {
+ String styleSheet = null;
+
+ String version = getXmiVersion(model);
+ if (version.startsWith("1.")) {
+ styleSheet = "xmi1.2ToObjectModel.xsl";
+ } else if (version.startsWith("2.")) {
+ styleSheet = "xmi2.1ToObjectModel.xsl";
+ } else {
+ getLog().error("Unsupported xmi version [" + version + "]");
+ }
+
+ return styleSheet;
+ }
+
+ /**
+ * Try to find xmi version on a file.
+ *
+ * @param xmiFile file to inspect
+ * @return version or null if version can't have been found
+ */
+ protected String getXmiVersion(File xmiFile) {
+ String version = null;
+
+ SAXParserFactory factory = SAXParserFactory.newInstance();
+
+ try {
+ SAXParser parser = factory.newSAXParser();
+
+ XmiVersionHandler handler = new XmiVersionHandler();
+ parser.parse(xmiFile, handler);
+
+ version = handler.getVersion();
+ } catch (ParserConfigurationException e) {
+ getLog().debug("Can't parse file as xmi", e);
+ } catch (SAXException e) {
+ getLog().debug("Can't parse file as xmi", e);
+ } catch (IOException e) {
+ getLog().debug("Can't parse file as xmi", e);
+ }
+
+ return version;
+ }
+
+ /**
+ * Sax handler to find xmi version into xmi document.
+ */
+ protected class XmiVersionHandler extends DefaultHandler {
+
+ protected String version = null;
+
+ public XmiVersionHandler() {
+ super();
+ }
+
+ public String getVersion() {
+ return version;
+ }
+
+ @Override
+ public void startElement(String uri, String localName, String qName,
+ Attributes attributes) throws SAXException {
+
+ if (qName.equals("XMI")) {
+ version = attributes.getValue("xmi.version");
+ getLog().debug("XMI version found : " + version);
+ }
+
+ if (version == null) {
+ version = attributes.getValue("xmi:version");
+ getLog().debug("XMI version found : " + version);
+ }
+
+ }
+ }
+
+
+}
Property changes on: trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/writer/XmiToObjectModelChainedFileWriter.java
___________________________________________________________________
Added: svn:keywords
+ "Author Date Id Revision HeadURL
Deleted: trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/writer/XmiToObjectModelFileWriter.java
===================================================================
--- trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/writer/XmiToObjectModelFileWriter.java 2009-12-18 10:23:09 UTC (rev 764)
+++ trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/writer/XmiToObjectModelFileWriter.java 2009-12-18 10:26:52 UTC (rev 765)
@@ -1,136 +0,0 @@
-/*
- * *##%
- * EUGene :: Maven plugin
- * Copyright (C) 2006 - 2009 CodeLutin
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation, either version 3 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 Lesser Public License for more details.
- *
- * You should have received a copy of the GNU General Lesser Public
- * License along with this program. If not, see
- * <http://www.gnu.org/licenses/lgpl-3.0.html>.
- * ##%*
- */
-package org.nuiton.eugene.plugin.writer;
-
-import org.nuiton.eugene.models.Model;
-import org.nuiton.eugene.models.object.ObjectModel;
-import org.xml.sax.Attributes;
-import org.xml.sax.SAXException;
-import org.xml.sax.helpers.DefaultHandler;
-
-import javax.xml.parsers.ParserConfigurationException;
-import javax.xml.parsers.SAXParser;
-import javax.xml.parsers.SAXParserFactory;
-import java.io.File;
-import java.io.IOException;
-
-/**
- * To write a object model files from xmi files.
- * <p/>
- * This {@link org.nuiton.eugene.ModelFileWriter} transform xmi files to object model file.
- *
- * @author tchemit
- * @plexus.component role="org.nuiton.eugene.ModelFileWriter" role-hint="xmi2objectmodel"
- * @since 2.0.0
- */
-public class XmiToObjectModelFileWriter extends BaseXmiToModelFileWriter {
-
-
- @Override
- public <M extends Model> boolean acceptModel(Class<M> modelType) {
- // accept only state models
- return ObjectModel.class.isAssignableFrom(modelType);
- }
-
- @Override
- public String getExtension() {
- return "objectmodel";
- }
-
- @Override
- protected String getStyleSheet(File model) {
- String styleSheet = null;
-
- String version = getXmiVersion(model);
- if (version.startsWith("1.")) {
- styleSheet = "xmi1.2ToObjectModel.xsl";
- } else if (version.startsWith("2.")) {
- styleSheet = "xmi2.1ToObjectModel.xsl";
- } else {
- getLog().error("Unsupported xmi version [" + version + "]");
- }
-
- return styleSheet;
- }
-
- /**
- * Try to find xmi version on a file.
- *
- * @param xmiFile file to inspect
- * @return version or null if version can't have been found
- */
- protected String getXmiVersion(File xmiFile) {
- String version = null;
-
- SAXParserFactory factory = SAXParserFactory.newInstance();
-
- try {
- SAXParser parser = factory.newSAXParser();
-
- XmiVersionHandler handler = new XmiVersionHandler();
- parser.parse(xmiFile, handler);
-
- version = handler.getVersion();
- } catch (ParserConfigurationException e) {
- getLog().debug("Can't parse file as xmi", e);
- } catch (SAXException e) {
- getLog().debug("Can't parse file as xmi", e);
- } catch (IOException e) {
- getLog().debug("Can't parse file as xmi", e);
- }
-
- return version;
- }
-
- /**
- * Sax handler to find xmi version into xmi document.
- */
- protected class XmiVersionHandler extends DefaultHandler {
-
- public String version = null;
-
- public XmiVersionHandler() {
- super();
- }
-
- public String getVersion() {
- return version;
- }
-
- @Override
- public void startElement(String uri, String localName, String qName,
- Attributes attributes) throws SAXException {
-
- if (qName.equals("XMI")) {
- version = attributes.getValue("xmi.version");
- getLog().debug("XMI version found : " + version);
- }
-
- if (version == null) {
- version = attributes.getValue("xmi:version");
- getLog().debug("XMI version found : " + version);
- }
-
- }
- }
-
-
-}
Copied: trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/writer/XmiToStateModelChainedFileWriter.java (from rev 760, trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/writer/XmiToStateModelFileWriter.java)
===================================================================
--- trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/writer/XmiToStateModelChainedFileWriter.java (rev 0)
+++ trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/writer/XmiToStateModelChainedFileWriter.java 2009-12-18 10:26:52 UTC (rev 765)
@@ -0,0 +1,53 @@
+/*
+ * *##%
+ * EUGene :: Maven plugin
+ * Copyright (C) 2006 - 2009 CodeLutin
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation, either version 3 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 Lesser Public License for more details.
+ *
+ * You should have received a copy of the GNU General Lesser Public
+ * License along with this program. If not, see
+ * <http://www.gnu.org/licenses/lgpl-3.0.html>.
+ * ##%*
+ */
+package org.nuiton.eugene.plugin.writer;
+
+import org.nuiton.eugene.models.Model;
+import org.nuiton.eugene.models.state.StateModel;
+
+import java.io.File;
+
+/**
+ * To write state model files from xmi files.
+ *
+ * @author tchemit
+ * @plexus.component role="org.nuiton.eugene.writer.ChainedFileWriter" role-hint="xmi2statemodel"
+ * @since 2.0.0
+ */
+public class XmiToStateModelChainedFileWriter extends BaseXmiToChainedFileWriter {
+
+ @Override
+ public <M extends Model> boolean acceptModel(Class<M> modelType) {
+ // accept only state models
+ return StateModel.class.isAssignableFrom(modelType);
+ }
+
+ @Override
+ protected String getExtension() {
+ return "statemodel";
+ }
+
+ @Override
+ protected String getStyleSheet(File model) {
+ //TODO when StateModel will be supported in 2.1, compute the version to resolve the correct stylesheet
+ return "xmi1.2ToStateModel.xsl";
+ }
+}
Property changes on: trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/writer/XmiToStateModelChainedFileWriter.java
___________________________________________________________________
Added: svn:keywords
+ "Author Date Id Revision HeadURL
Deleted: trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/writer/XmiToStateModelFileWriter.java
===================================================================
--- trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/writer/XmiToStateModelFileWriter.java 2009-12-18 10:23:09 UTC (rev 764)
+++ trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/writer/XmiToStateModelFileWriter.java 2009-12-18 10:26:52 UTC (rev 765)
@@ -1,53 +0,0 @@
-/*
- * *##%
- * EUGene :: Maven plugin
- * Copyright (C) 2006 - 2009 CodeLutin
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation, either version 3 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 Lesser Public License for more details.
- *
- * You should have received a copy of the GNU General Lesser Public
- * License along with this program. If not, see
- * <http://www.gnu.org/licenses/lgpl-3.0.html>.
- * ##%*
- */
-package org.nuiton.eugene.plugin.writer;
-
-import org.nuiton.eugene.models.Model;
-import org.nuiton.eugene.models.state.StateModel;
-
-import java.io.File;
-
-/**
- * To write state model files from xmi files.
- *
- * @author tchemit
- * @plexus.component role="org.nuiton.eugene.ModelFileWriter" role-hint="xmi2statemodel"
- * @since 2.0.0
- */
-public class XmiToStateModelFileWriter extends BaseXmiToModelFileWriter {
-
- @Override
- public <M extends Model> boolean acceptModel(Class<M> modelType) {
- // accept only state models
- return StateModel.class.isAssignableFrom(modelType);
- }
-
- @Override
- protected String getExtension() {
- return "statemodel";
- }
-
- @Override
- protected String getStyleSheet(File model) {
- //TODO when StateModel will be supported in 2.1, compute the version to resolve the correct stylesheet
- return "xmi1.2ToStateModel.xsl";
- }
-}
Copied: trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/writer/ZargoChainedFileWriter.java (from rev 761, trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/writer/ZargoModelFileWriter.java)
===================================================================
--- trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/writer/ZargoChainedFileWriter.java (rev 0)
+++ trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/writer/ZargoChainedFileWriter.java 2009-12-18 10:26:52 UTC (rev 765)
@@ -0,0 +1,104 @@
+/*
+ * *##%
+ * EUGene :: Maven plugin
+ * Copyright (C) 2006 - 2009 CodeLutin
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation, either version 3 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 Lesser Public License for more details.
+ *
+ * You should have received a copy of the GNU General Lesser Public
+ * License along with this program. If not, see
+ * <http://www.gnu.org/licenses/lgpl-3.0.html>.
+ * ##%*
+ */
+package org.nuiton.eugene.plugin.writer;
+
+import org.nuiton.eugene.models.Model;
+import org.nuiton.eugene.writer.ChainedFileWriterConfiguration;
+import org.nuiton.plugin.PluginHelper;
+import org.nuiton.plugin.PluginIOContext;
+
+import java.io.File;
+import java.io.IOException;
+
+/**
+ * To write model files from zargo files.
+ *
+ * @author tchemit
+ * @plexus.component role="org.nuiton.eugene.writer.ChainedFileWriter" role-hint="zargo2xmi"
+ * @since 2.0.0
+ */
+public class ZargoChainedFileWriter extends BaseChainedFileWriter {
+
+ public static final String[] XMI_FILE_FILTER = new String[]{"*.xmi", "**/*.xmi"};
+
+ @Override
+ public String getInputProtocol() {
+ return "zargo";
+ }
+
+ @Override
+ public <M extends Model> String getOutputProtocol(Class<M> modelType) {
+ // next writer to use is a xmi to model one
+ return "xmi";
+ }
+
+ @Override
+ public <M extends Model> boolean acceptModel(Class<M> modelType) {
+ // accept all models
+ return true;
+ }
+
+ @Override
+ public boolean acceptInclude(String include) {
+ return include.startsWith("zargo:") || include.endsWith(".zargo") || include.endsWith(".zuml");
+ }
+
+ @Override
+ public String getDefaultIncludes() {
+ return "**/*.zargo";
+ }
+
+ @Override
+ public String getDefaultInputDirectory() {
+ return "src/main/xmi";
+ }
+
+ @Override
+ public String getDefaultOutputDirectory() {
+ return "xmi";
+ }
+
+ @Override
+ public String getDefaultTestInputDirectory() {
+ return "src/test/xmi";
+ }
+
+ @Override
+ public String getDefaultTestOutputDirectory() {
+ return "test-xmi";
+ }
+
+ @Override
+ public void generate(ChainedFileWriterConfiguration configuration, File outputDir, File inputDirectory, String includePattern) throws IOException {
+
+ boolean overwrite = configuration.isOverwrite();
+
+ PluginIOContext ioContext = new PluginIOContext();
+ ioContext.setInput(inputDirectory);
+ ioContext.setOutput(outputDir);
+
+ getLog().info("Expanding xmi from " + inputDirectory + " : " + includePattern);
+ PluginHelper.expandFiles(ioContext, new String[]{includePattern}, null, XMI_FILE_FILTER, overwrite);
+
+ getLog().info("Copying resources from " + inputDirectory + " : " + includePattern);
+ PluginHelper.copyFiles(ioContext, null, new String[]{includePattern}, overwrite);
+ }
+}
Property changes on: trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/writer/ZargoChainedFileWriter.java
___________________________________________________________________
Added: svn:keywords
+ "Author Date Id Revision HeadURL
Deleted: trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/writer/ZargoModelFileWriter.java
===================================================================
--- trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/writer/ZargoModelFileWriter.java 2009-12-18 10:23:09 UTC (rev 764)
+++ trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/writer/ZargoModelFileWriter.java 2009-12-18 10:26:52 UTC (rev 765)
@@ -1,101 +0,0 @@
-/*
- * *##%
- * EUGene :: Maven plugin
- * Copyright (C) 2006 - 2009 CodeLutin
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation, either version 3 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 Lesser Public License for more details.
- *
- * You should have received a copy of the GNU General Lesser Public
- * License along with this program. If not, see
- * <http://www.gnu.org/licenses/lgpl-3.0.html>.
- * ##%*
- */
-package org.nuiton.eugene.plugin.writer;
-
-import org.nuiton.eugene.models.Model;
-import org.nuiton.plugin.PluginHelper;
-import org.nuiton.plugin.PluginIOContext;
-
-import java.io.File;
-import java.io.IOException;
-
-/**
- * To write model files from zargo files.
- *
- * @author tchemit
- * @plexus.component role="org.nuiton.eugene.ModelFileWriter" role-hint="zargo2xmi"
- * @since 2.0.0
- */
-public class ZargoModelFileWriter extends BaseModelFileWriter {
-
- public static final String[] XMI_FILE_FILTER = new String[]{"*.xmi", "**/*.xmi"};
-
- @Override
- public String getInputProtocol() {
- return "zargo";
- }
-
- @Override
- public <M extends Model> String getOutputProtocol(Class<M> modelType) {
- // next writer to use is a xmi to model one
- return "xmi";
- }
-
- @Override
- public <M extends Model> boolean acceptModel(Class<M> modelType) {
- // accept all models
- return true;
- }
-
- @Override
- public boolean acceptInclude(String include) {
- return include.startsWith("zargo:") || include.endsWith(".zargo") || include.endsWith(".zuml");
- }
-
- @Override
- public String getDefaultIncludes() {
- return "**/*.zargo";
- }
-
- @Override
- public String getDefaultInputDirectory() {
- return "src/main/xmi";
- }
-
- @Override
- public String getDefaultOutputDirectory() {
- return "xmi";
- }
-
- @Override
- public String getDefaultTestInputDirectory() {
- return "src/test/xmi";
- }
-
- @Override
- public String getDefaultTestOutputDirectory() {
- return "test-xmi";
- }
-
- @Override
- public void generate(File outputDir, File inputDirectory, String includePattern, boolean overwrite) throws IOException {
-
- PluginIOContext ioContext = new PluginIOContext();
- ioContext.setInput(inputDirectory);
- ioContext.setOutput(outputDir);
-
- getLog().info("Expanding xmi from " + inputDirectory + " : " + includePattern);
- PluginHelper.expandFiles(ioContext, new String[]{includePattern}, null, XMI_FILE_FILTER, overwrite);
-
- getLog().info("Copying resources from " + inputDirectory + " : " + includePattern);
- PluginHelper.copyFiles(ioContext, null, new String[]{includePattern}, overwrite);
- }
-}
1
0
Dec. 18, 2009
Author: tchemit
Date: 2009-12-18 11:23:09 +0100 (Fri, 18 Dec 2009)
New Revision: 764
Added:
trunk/eugene/src/main/java/org/nuiton/eugene/writer/
trunk/eugene/src/main/java/org/nuiton/eugene/writer/AbstractChainedFileWriter.java
trunk/eugene/src/main/java/org/nuiton/eugene/writer/ChainedFileWriter.java
trunk/eugene/src/main/java/org/nuiton/eugene/writer/ChainedFileWriterConfiguration.java
trunk/eugene/src/main/java/org/nuiton/eugene/writer/ChainedFileWriterEntry.java
trunk/eugene/src/main/java/org/nuiton/eugene/writer/ChainedWriterEngine.java
trunk/eugene/src/main/java/org/nuiton/eugene/writer/DefaultChainedWriterEngine.java
trunk/eugene/src/main/java/org/nuiton/eugene/writer/package-info.java
trunk/eugene/src/main/resolver-cache/
trunk/eugene/src/main/resolver-cache/META-INF/
trunk/eugene/src/main/resolver-cache/META-INF/cache/
trunk/eugene/src/main/resolver-cache/META-INF/cache/argouml.org/
trunk/eugene/src/main/resolver-cache/META-INF/cache/argouml.org/profiles/
trunk/eugene/src/main/resolver-cache/META-INF/cache/argouml.org/profiles/um…
trunk/eugene/src/main/resolver-cache/META-INF/cache/argouml.org/profiles/um…
trunk/eugene/src/main/resolver-cache/META-INF/cache/argouml.org/profiles/um…
Removed:
trunk/eugene/src/main/java/org/nuiton/eugene/AbstractModelFileWriter.java
trunk/eugene/src/main/java/org/nuiton/eugene/ModelFileWriter.java
trunk/eugene/src/main/java/org/nuiton/eugene/ModelFileWriterConfiguration.java
trunk/eugene/src/main/java/org/nuiton/eugene/ModelFileWriterUtil.java
Modified:
trunk/eugene/pom.xml
trunk/eugene/src/main/java/org/nuiton/eugene/java/JavaBuilder.java
trunk/eugene/src/main/java/org/nuiton/eugene/java/JavaGenerator.java
trunk/eugene/src/main/java/org/nuiton/eugene/java/ObjectModelTransformerToJava.java
trunk/eugene/src/main/java/org/nuiton/eugene/models/object/xml/ObjectModelBuilder.java
trunk/eugene/src/main/java/org/nuiton/eugene/models/object/xml/ObjectModelClassifierImpl.java
trunk/eugene/src/main/java/org/nuiton/eugene/models/object/xml/ObjectModelImpl.java
trunk/eugene/src/main/java/org/nuiton/eugene/models/object/xml/ObjectModelInterfaceImpl.java
Log:
- introduce writer package for the ChainedFileWriter api
- add a resolver-cache (for xmi resolver)
- add addBlock in JavaBuilder
Modified: trunk/eugene/pom.xml
===================================================================
--- trunk/eugene/pom.xml 2009-12-17 01:08:01 UTC (rev 763)
+++ trunk/eugene/pom.xml 2009-12-18 10:23:09 UTC (rev 764)
@@ -89,7 +89,7 @@
<artifactId>junit</artifactId>
<scope>test</scope>
</dependency>
-
+
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
@@ -209,6 +209,12 @@
<include>**/*.xsl</include>
</includes>
</resource>
+ <resource>
+ <directory>src/main/resolver-cache</directory>
+ <includes>
+ <include>**/*</include>
+ </includes>
+ </resource>
</resources>
<plugins>
@@ -246,6 +252,15 @@
</build>
+ <reporting>
+ <plugins>
+ <plugin>
+ <groupId>org.codehaus.plexus</groupId>
+ <artifactId>plexus-maven-plugin</artifactId>
+ <version>1.3.8</version>
+ </plugin>
+ </plugins>
+ </reporting>
<!-- ************************************************************* -->
<!-- *** Build Environment ************************************** -->
<!-- ************************************************************* -->
Deleted: trunk/eugene/src/main/java/org/nuiton/eugene/AbstractModelFileWriter.java
===================================================================
--- trunk/eugene/src/main/java/org/nuiton/eugene/AbstractModelFileWriter.java 2009-12-17 01:08:01 UTC (rev 763)
+++ trunk/eugene/src/main/java/org/nuiton/eugene/AbstractModelFileWriter.java 2009-12-18 10:23:09 UTC (rev 764)
@@ -1,154 +0,0 @@
-/*
- * *##%
- * EUGene :: EUGene
- * Copyright (C) 2004 - 2009 CodeLutin
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation, either version 3 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 Lesser Public License for more details.
- *
- * You should have received a copy of the GNU General Lesser Public
- * License along with this program. If not, see
- * <http://www.gnu.org/licenses/lgpl-3.0.html>.
- * ##%*
- */
-package org.nuiton.eugene;
-
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import static org.nuiton.eugene.ModelFileWriterUtil.ModelFileWriterEntry;
-import org.nuiton.eugene.models.Model;
-
-import java.io.File;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * Abstract implementation of the {@link org.nuiton.eugene.ModelFileWriter}.
- *
- * @author tchemit
- * @since 2.0.0
- */
-public abstract class AbstractModelFileWriter implements ModelFileWriter {
-
- private static final Log log = LogFactory.getLog(AbstractModelFileWriter.class);
- /**
- * entries to treate
- */
- protected List<ModelFileWriterEntry> entries;
- /**
- * previous writer (can be null)
- */
- protected ModelFileWriter previousWriter;
- /**
- * next writer (can be null)
- */
- protected ModelFileWriter nextWriter;
-
- /**
- * common configuration of all writers available in generate method scope
- */
- protected ModelFileWriterConfiguration configuration;
-
- protected AbstractModelFileWriter() {
- entries = new ArrayList<ModelFileWriterEntry>();
- }
-
- /**
- * Generates some files for a given input, output and include pattern.
- *
- * @param outputDir where to generate files
- * @param inputDirectory where to pick up files
- * @param includePattern pattern of files to include
- * @param overwrite {@code true} if should regenerate even if files are up to date
- * @throws IOException for any IO pb.
- */
- protected abstract void generate(File outputDir, File inputDirectory, String includePattern, boolean overwrite) throws IOException;
-
- @Override
- public void clear() {
- entries.clear();
- }
-
- @Override
- public void addEntry(ModelFileWriterEntry entry) {
- entries.add(entry);
- }
-
- @Override
- public <T> T getProperty(String key, Class<T> type) {
- return (T) getConfiguration().getProperties().get(key);
- }
-
- @Override
- public void generate(ModelFileWriterConfiguration configuration) throws IOException {
- if (log.isDebugEnabled()) {
- log.debug("[" + getInputProtocol() + "] Start generate with writer " + this);
- }
- this.configuration = configuration;
- try {
- File outputDir = getOutputDirectory(configuration.getOutputDirectory(), configuration.isTestPhase());
-
- if (!outputDir.exists()) {
- if (log.isDebugEnabled()) {
- log.debug("[" + getInputProtocol() + "] Create output directory " + outputDir);
- }
- boolean b = outputDir.mkdirs();
- if (!b) {
- throw new IOException("Could not creat directory " + outputDir);
- }
- }
-
- for (ModelFileWriterEntry e : entries) {
- if (log.isDebugEnabled()) {
- log.debug("[" + getInputProtocol() + "] Will generate entry " + e.getInputDirectory() + " : " + e.getIncludePattern());
- }
- generate(outputDir, e.getInputDirectory(), e.getIncludePattern(), configuration.isOverwrite());
- }
- } finally {
- this.configuration = null;
- }
- }
-
- @Override
- public <M extends Model> String getInputProtocol(Class<M> modelType) {
- // input protocol is the same for all model
- return acceptModel(modelType) ? getInputProtocol() : null;
- }
-
- @Override
- public File getOutputDirectory(File outputBasedir, boolean testPhase) {
- return new File(outputBasedir, testPhase ? getDefaultTestOutputDirectory() : getDefaultOutputDirectory());
- }
-
- @Override
- public List<ModelFileWriterEntry> getEntries() {
- return entries;
- }
-
- /**
- * @return the shared configuration used by the writer
- */
- protected ModelFileWriterConfiguration getConfiguration() {
- return configuration;
- }
-
- protected ModelFileWriter getNextWriter() {
- return nextWriter;
- }
-
- protected ModelFileWriter getPreviousWriter() {
- return previousWriter;
- }
-
- protected void setNextWriter(ModelFileWriter nextWriter) {
- this.nextWriter = nextWriter;
- }
-}
\ No newline at end of file
Deleted: trunk/eugene/src/main/java/org/nuiton/eugene/ModelFileWriter.java
===================================================================
--- trunk/eugene/src/main/java/org/nuiton/eugene/ModelFileWriter.java 2009-12-17 01:08:01 UTC (rev 763)
+++ trunk/eugene/src/main/java/org/nuiton/eugene/ModelFileWriter.java 2009-12-18 10:23:09 UTC (rev 764)
@@ -1,151 +0,0 @@
-/*
- * *##%
- * EUGene :: EUGene
- * Copyright (C) 2004 - 2009 CodeLutin
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation, either version 3 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 Lesser Public License for more details.
- *
- * You should have received a copy of the GNU General Lesser Public
- * License along with this program. If not, see
- * <http://www.gnu.org/licenses/lgpl-3.0.html>.
- * ##%*
- */
-package org.nuiton.eugene;
-
-import org.nuiton.eugene.models.Model;
-
-import java.io.File;
-import java.io.IOException;
-import java.util.List;
-
-/**
- * Contract to generate model files from any incoming sources (zargo, xmi, ...).
- *
- * User: chemit
- * Date: 27 nov. 2009
- * Time: 11:20:39
- * @since 2.0.0
- */
-public interface ModelFileWriter {
-
- /**
- * @return the accepted incoming protocol
- */
- String getInputProtocol();
-
- /**
- * Obtain the input protocol of this writer given the passed {@code modelType}.
- *
- * @param modelType the type of model used
- * @param <M> the type of model used
- * @return the input protocol or {@code null} if this writer does not accept the type of model
- */
- <M extends Model> String getInputProtocol(Class<M> modelType);
-
- /**
- * Obtain the output protocol of this writer given the passed {@code modelType}.
- *
- * @param modelType the type of model used
- * @param <M> the type of model used
- * @return the output protocol or {@code null} if should not be chained
- */
- <M extends Model> String getOutputProtocol(Class<M> modelType);
-
- /**
- * Test if a type of model can be treated by this writer.
- *
- * @param modelType model type to test
- * @param <M> model type to test
- * @return {@code true} if this writer accept the given type of model, {@code false} otherwise.
- */
- <M extends Model> boolean acceptModel(Class<M> modelType);
-
- /**
- * Test in a entry can be treated by this writer.
- *
- * @param include the include to test
- * @return {@code true} if the writer accept the entry, {@code false} otherwise.
- */
- boolean acceptInclude(String include);
-
- /**
- * @return the default includes files to be treated by the writer (can be an ant-like expression)
- */
- String getDefaultIncludes();
-
- /**
- * @return the defalt relative path where to pick files to treate.
- */
- String getDefaultInputDirectory();
-
- /**
- * @return the defalt relative path where to pick files to treate on a test phase.
- */
- String getDefaultTestInputDirectory();
-
- /**
- * @return the default relative path to add to output basedir
- */
- String getDefaultOutputDirectory();
-
- /**
- * @return the default relative path to add to output basedir on a test phase.
- */
- String getDefaultTestOutputDirectory();
-
- /**
- * Obtain the real directory where to write files.
- * <p/>
- * //FIXME-TC20091126 make this configurable (via the properties)
- *
- * @param outputBasedir the output base directory
- * @param testPhase {@code true} if writer is used in a test phase
- * @return the real output directory where to generate for this particular writer
- */
- File getOutputDirectory(File outputBasedir, boolean testPhase);
-
- /**
- * Generates.
- *
- * @param configuration the share configuration of all writers.
- * @throws IOException if any io pb.
- */
- void generate(ModelFileWriterConfiguration configuration) throws IOException;
-
- /**
- * Clear all internal states
- */
- void clear();
-
- /**
- * Add an entry to treate.
- *
- * @param entry the entry to add to writer
- */
- void addEntry(ModelFileWriterUtil.ModelFileWriterEntry entry);
-
- /**
- * Obtain a writer extra property.
- *
- * @param key the key of required property
- * @param type the type of property
- * @param <T> the type of property
- * @return the property found or {@code null} if not found.
- */
- <T> T getProperty(String key, Class<T> type);
-
-// ModelFileWriterConfiguration getConfiguration();
-
- /**
- * @return the list of all entries registered
- */
- List<ModelFileWriterUtil.ModelFileWriterEntry> getEntries();
-}
Deleted: trunk/eugene/src/main/java/org/nuiton/eugene/ModelFileWriterConfiguration.java
===================================================================
--- trunk/eugene/src/main/java/org/nuiton/eugene/ModelFileWriterConfiguration.java 2009-12-17 01:08:01 UTC (rev 763)
+++ trunk/eugene/src/main/java/org/nuiton/eugene/ModelFileWriterConfiguration.java 2009-12-18 10:23:09 UTC (rev 764)
@@ -1,87 +0,0 @@
-/*
- * *##%
- * EUGene :: EUGene
- * Copyright (C) 2004 - 2009 CodeLutin
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation, either version 3 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 Lesser Public License for more details.
- *
- * You should have received a copy of the GNU General Lesser Public
- * License along with this program. If not, see
- * <http://www.gnu.org/licenses/lgpl-3.0.html>.
- * ##%*
- */
-package org.nuiton.eugene;
-
-import org.nuiton.eugene.models.Model;
-
-import java.io.File;
-import java.util.Map;
-import java.util.Set;
-
-/**
- * Shared configuration of a {@link ModelFileWriter}, should be the same for all writers
- * to use at a time.
- *
- * @author tchemit
- * @since 2.0.0
- */
-public interface ModelFileWriterConfiguration {
-
- /**
- * @return the type of model used
- */
- Class<? extends Model> getModelClass();
-
- /**
- * @return project base directory
- */
- File getBasedir();
-
- /**
- * @return base directory where to generate
- */
- File getOutputDirectory();
-
- /**
- * @return {@code true} if must regenerate files even if they are up to date
- */
- boolean isOverwrite();
-
- /**
- * @return {@code true} if build is off-line and should not be able to access outside resources.
- */
- boolean isOffline();
-
- /**
- * @return {@code true} if build is verbose.
- */
- boolean isVerbose();
-
- /**
- * @return {@code true} if build is done on a test phase.
- */
- boolean isTestPhase();
- /**
- * @return encoding to use to read and write files
- */
- String getEncoding();
-
- /**
- * @return Set of all availables writers
- */
- Set<ModelFileWriter> getAvailableWriters();
-
- /**
- * @return properties to pass to writers
- */
- Map<String, Object> getProperties();
-
-}
Deleted: trunk/eugene/src/main/java/org/nuiton/eugene/ModelFileWriterUtil.java
===================================================================
--- trunk/eugene/src/main/java/org/nuiton/eugene/ModelFileWriterUtil.java 2009-12-17 01:08:01 UTC (rev 763)
+++ trunk/eugene/src/main/java/org/nuiton/eugene/ModelFileWriterUtil.java 2009-12-18 10:23:09 UTC (rev 764)
@@ -1,331 +0,0 @@
-/*
- * *##%
- * EUGene :: EUGene
- * Copyright (C) 2004 - 2009 CodeLutin
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation, either version 3 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 Lesser Public License for more details.
- *
- * You should have received a copy of the GNU General Lesser Public
- * License along with this program. If not, see
- * <http://www.gnu.org/licenses/lgpl-3.0.html>.
- * ##%*
- */
-package org.nuiton.eugene;
-
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.nuiton.eugene.models.Model;
-
-import java.io.File;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-
-/**
- * User: chemit
- * Date: 26 nov. 2009
- * Time: 00:18:29
- */
-public class ModelFileWriterUtil {
-
- private static final Log log = LogFactory.getLog(ModelFileWriterUtil.class);
-
- public static void registerInclude(ModelFileWriterConfiguration configuration, String include, List<ModelFileWriter> selectedWriters) {
- if (log.isDebugEnabled()) {
- log.debug(">>>>>>>>>>>>>>>>> [" + include + "]");
- log.debug("Will register include " + "[" + include + "]");
- log.debug("actual selected writers : " + selectedWriters);
- }
- ModelFileWriterEntryType selectedType = null;
- Matcher matcher = null;
-
- // obtain the good type of entry and the corresponding matcher
-
- for (ModelFileWriterEntryType type : ModelFileWriterEntryType.values()) {
- matcher = type.getMatcher(include);
- if (matcher != null) {
- // get a matcher
- selectedType = type;
- break;
- }
- }
-
- if (selectedType == null) {
- // no writer
- throw new IllegalArgumentException("could not find a writer for include pattern : " + include);
- }
-
- // obtain the writer
- ModelFileWriter writer = selectedType.getWriter(configuration, include, matcher);
-
- // create the new entry
-
- ModelFileWriterEntry writerEntry = selectedType.newEntry(configuration, include, matcher, writer);
-
- // register the new entry
-
- writer.addEntry(writerEntry);
- if (!selectedWriters.contains(writer)) {
- // register the writer as to be used
- if (log.isDebugEnabled()) {
- log.debug("[" + include + "] Associated with writer " + writer);
- }
- selectedWriters.add(writer);
- }
-
- Class<? extends Model> modelType = configuration.getModelClass();
-
- String outpoutProtocol = writer.getOutputProtocol(modelType);
-
- if (outpoutProtocol == null) {
- // nothing more to do
- if (log.isDebugEnabled()) {
- log.debug("<<<<<<<<<<<<<<<<< [" + include + "]");
- }
- return;
- }
-
- // the writer need the includes of another writer
-
- if (log.isDebugEnabled()) {
- log.debug("[" + include + "]" + " writer " + writer.getClass().getSimpleName() + " require a next writer of protocol " + outpoutProtocol);
- }
-
- ModelFileWriter nextWriter = ((AbstractModelFileWriter)writer).getNextWriter();
- if (nextWriter == null) {
- // the next writer was not initialize, just have to add new entry
-
- nextWriter = getWriterForInputProtocole(configuration.getAvailableWriters(), outpoutProtocol, modelType);
-
- if (nextWriter == null) {
- throw new IllegalArgumentException("could not find a writer for protocole " + outpoutProtocol + " on model " + modelType);
- }
- // chain writer
- ((AbstractModelFileWriter)writer).setNextWriter(nextWriter);
- }
-
- // build the next include to do
-
- String basedirpath = configuration.getBasedir().getAbsolutePath();
-
- String outputpath = writer.getOutputDirectory(configuration.getOutputDirectory(), configuration.isTestPhase()).getAbsolutePath();
-
- String path = outputpath.substring(basedirpath.length() + 1);
-
- String newInclude = outpoutProtocol + ":" + path + ":" + nextWriter.getDefaultIncludes();
-
- registerInclude(configuration, newInclude, selectedWriters);
-
- if (log.isDebugEnabled()) {
- log.debug("<<<<<<<<<<<<<<<<< [" + include + "]");
- }
- }
-
- public static Set<ModelFileWriter> filterWriterForModelType(Map<String, ModelFileWriter> universe, Class<? extends Model> modelType) {
- Set<ModelFileWriter> result = new HashSet<ModelFileWriter>();
- for (ModelFileWriter w : universe.values()) {
- if (w.acceptModel(modelType)) {
- if (log.isDebugEnabled()) {
- log.debug("writer [" + w + "] accept model " + modelType);
- }
- result.add(w);
- }
- }
- return result;
- }
-
- public static ModelFileWriter getWriterForInputProtocole(Set<ModelFileWriter> universe, String inputProtocol, Class<? extends Model> modelType) {
- for (ModelFileWriter writer : universe) {
- if (inputProtocol.equals(writer.getInputProtocol(modelType))) {
- return writer;
- }
- }
- return null;
- }
-
- public static ModelFileWriter getWriterForInclude(Set<ModelFileWriter> universe, String include, Class<? extends Model> modelType) {
- for (ModelFileWriter w : universe) {
- if (w.acceptInclude(include)) {
- return w;
- }
- }
- return null;
- }
-
- /**
- *
- */
- public static class ModelFileWriterEntry {
-
- /**
- *
- */
- protected File inputDirectory;
- /**
- *
- */
- protected String includePattern;
-
- public ModelFileWriterEntry(File inputDirectory, String includePattern) {
- this.inputDirectory = inputDirectory;
- this.includePattern = includePattern;
- }
-
- public String getIncludePattern() {
- return includePattern;
- }
-
- public File getInputDirectory() {
- return inputDirectory;
- }
-
- }
-
- /**
- *
- */
- public enum ModelFileWriterEntryType {
-
- ONLY_PROTOCOL_PATTERN(Pattern.compile("^([a-zA-Z]+)$")) {
-
- @Override
- public ModelFileWriter getWriter(ModelFileWriterConfiguration configuration, String include, Matcher matcher) {
- Set<ModelFileWriter> universe = configuration.getAvailableWriters();
-
- String protocol = matcher.group(1).toLowerCase();
- ModelFileWriter writer = getWriterForInputProtocole(universe, protocol, configuration.getModelClass());
- if (writer == null) {
- throw new IllegalArgumentException("could not find the writer named '" + protocol + "', use one of " + universe);
- }
- if (log.isDebugEnabled()) {
- log.debug("[" + include + "] " + "writer = (" + writer + ")");
- }
- return writer;
- }
-
- @Override
- public ModelFileWriterEntry newEntry(ModelFileWriterConfiguration configuration, String include, Matcher matcher, ModelFileWriter writer) {
-
- if (log.isDebugEnabled()) {
- log.debug("[" + include + "] " + "detected pattern (" + name() + ")");
- }
-
- ModelFileWriterEntry writerEntry = new ModelFileWriterEntry(
- new File(configuration.getBasedir(), configuration.isTestPhase()?writer.getDefaultTestInputDirectory():writer.getDefaultInputDirectory()),
- writer.getDefaultIncludes()
- );
- return writerEntry;
- }
- },
-
- NO_PROTOCOL_PATTERN(Pattern.compile("^([^:]+):([^:]+)$")) {
- @Override
- public ModelFileWriter getWriter(ModelFileWriterConfiguration configuration, String include, Matcher matcher) {
- Set<ModelFileWriter> universe = configuration.getAvailableWriters();
-
- Class<? extends Model> modelType = configuration.getModelClass();
- // with no protocol pattern
- // pattern is discover from the includes
-
- // discover the writer from the given pattern
- ModelFileWriter writer = getWriterForInclude(universe, include, modelType);
- if (writer == null) {
- throw new IllegalArgumentException("could not find a writer for include " + include);
- }
- if (log.isDebugEnabled()) {
- log.debug("[" + include + "] " + "writer = (" + writer + ")");
- }
- return writer;
- }
-
- @Override
- public ModelFileWriterEntry newEntry(ModelFileWriterConfiguration configuration, String include, Matcher matcher, ModelFileWriter writer) {
- // with no protocol pattern
- // pattern is discover from the includes
- if (log.isDebugEnabled()) {
- log.debug("[" + include + "] " + "detected pattern (" + name() + ")");
- }
-
- String inputPath = matcher.group(1);
- String includes = matcher.group(2);
-
- ModelFileWriterEntry writerEntry = new ModelFileWriterEntry(
- new File(configuration.getBasedir(), inputPath),
- includes
- );
- return writerEntry;
- }
- },
-
- FULL_PATTERN(Pattern.compile("^(\\w+):([^:]+):([^:]+)$")) {
- @Override
- public ModelFileWriter getWriter(ModelFileWriterConfiguration configuration, String include, Matcher matcher) {
- // with full pattern (protocol + directory + includes)
- // pattern is discover from the includes
-
- Set<ModelFileWriter> universe = configuration.getAvailableWriters();
-
- String protocol = matcher.group(1).toLowerCase();
- ModelFileWriter writer = getWriterForInputProtocole(universe, protocol, configuration.getModelClass());
-
- if (writer == null) {
- throw new IllegalArgumentException("could not find the writer named '" + protocol + "', use one of " + universe);
- }
- if (log.isDebugEnabled()) {
- log.debug("[" + include + "] " + "writer = (" + writer + ")");
- }
- return writer;
- }
-
- @Override
- public ModelFileWriterEntry newEntry(ModelFileWriterConfiguration configuration, String include, Matcher matcher, ModelFileWriter writer) {
-
- // with full pattern (protocol + directory + includes)
- // pattern is discover from the includes
- if (log.isDebugEnabled()) {
- log.debug("[" + include + "] " + "detected pattern (" + name() + ")");
- }
-
- String inputPath = matcher.group(2);
- String includes = matcher.group(3);
- ModelFileWriterEntry writerEntry = new ModelFileWriterEntry(
- new File(configuration.getBasedir(), inputPath),
- includes
- );
- return writerEntry;
- }
- };
-
- private final Pattern pattern;
-
- ModelFileWriterEntryType(Pattern pattern) {
- this.pattern = pattern;
- }
-
- public Pattern getPattern() {
- return pattern;
- }
-
- public Matcher getMatcher(String include) {
- Matcher matcher = getPattern().matcher(include);
- return matcher.matches() ? matcher : null;
- }
-
- public abstract ModelFileWriterEntry newEntry(ModelFileWriterConfiguration configuration, String include, Matcher matcher, ModelFileWriter writer);
-
- public abstract ModelFileWriter getWriter(ModelFileWriterConfiguration configuration, String include, Matcher matcher);
- }
-
-
-}
Modified: trunk/eugene/src/main/java/org/nuiton/eugene/java/JavaBuilder.java
===================================================================
--- trunk/eugene/src/main/java/org/nuiton/eugene/java/JavaBuilder.java 2009-12-17 01:08:01 UTC (rev 763)
+++ trunk/eugene/src/main/java/org/nuiton/eugene/java/JavaBuilder.java 2009-12-18 10:23:09 UTC (rev 764)
@@ -20,6 +20,7 @@
*/
package org.nuiton.eugene.java;
+import java.util.Arrays;
import java.util.HashSet;
import java.util.Set;
@@ -322,6 +323,23 @@
}
/**
+ * Add a new block to a classifier.
+ *
+ * @param classifier
+ * @param modifiers
+ * @return a new ObjectModelOperation
+ * @see org.nuiton.eugene.models.object.xml.ObjectModelBuilder#addOperation(org.nuiton.eugene.models.object.ObjectModelClassifier, java.lang.String,java.lang.String, org.nuiton.eugene.models.object.ObjectModelModifier...)
+ */
+ public ObjectModelOperation addBlock(ObjectModelClassifier classifier,
+ ObjectModelModifier... modifiers) {
+ ObjectModelOperationImpl operation = (ObjectModelOperationImpl) modelBuilder.addOperation(classifier, null, null, modifiers);
+ if (Arrays.asList(modifiers).contains(ObjectModelModifier.STATIC)) {
+ operation.setStatic(true);
+ }
+ return operation;
+ }
+
+ /**
* Add a constructor to a class.
*
* @param clazz
Modified: trunk/eugene/src/main/java/org/nuiton/eugene/java/JavaGenerator.java
===================================================================
--- trunk/eugene/src/main/java/org/nuiton/eugene/java/JavaGenerator.java 2009-12-17 01:08:01 UTC (rev 763)
+++ trunk/eugene/src/main/java/org/nuiton/eugene/java/JavaGenerator.java 2009-12-18 10:23:09 UTC (rev 764)
@@ -95,7 +95,7 @@
public void generateFromClass(Writer output, ObjectModelClass clazz) throws IOException {
if (log.isInfoEnabled()) {
- log.info("generate class : " + clazz.getName());
+ log.info(clazz.getQualifiedName());
}
preparePrefix(clazz);
@@ -121,8 +121,8 @@
implement += ", ";
}
}
- if (log.isInfoEnabled()) {
- log.info(className+" : super : "+extend+", interfaces : "+implement);
+ if (log.isDebugEnabled()) {
+ log.debug(className+" : super : "+extend+", interfaces : "+implement);
}
generateAnnotations(output, clazz, clazz);
@@ -158,7 +158,7 @@
@Override
public void generateFromInterface(Writer output, ObjectModelInterface interfacez) throws IOException {
if (log.isInfoEnabled()) {
- log.info("generate interface : " + interfacez.getName());
+ log.info(interfacez.getQualifiedName());
}
preparePrefix(interfacez);
@@ -202,18 +202,26 @@
AnnotationsManagerExtension.class);
String[] annotations = managers.getAnnotations(clazz,element);
for (String annotation : annotations) {
- if (!annotation.startsWith("@")) {
- annotation = "@" + annotation;
+ if (!annotation.trim().startsWith("@")) {
+ // add @ prefix
+ annotation = "@" + annotation.trim();
}
-/*{<%=annotation%>
+ if (element instanceof ObjectModelOperation) {
+ annotation = " "+annotation;
+ }
+/*{
+<%=annotation%>}*/
+ }
+ if (element instanceof ObjectModelClassifier) {
+/*{
}*/
- }
+ }
}
@Override
public void generateFromEnum(Writer output, ObjectModelEnumeration enumz) throws IOException {
if (log.isInfoEnabled()) {
- log.info("generate enumeration : " + enumz.getName());
+ log.info(enumz.getQualifiedName());
}
preparePrefix(enumz);
generateHeader(output, enumz); // Imports, package et documentation
@@ -372,6 +380,10 @@
protected void generateOperations(Writer output,ObjectModelClassifier clazz, Collection<ObjectModelOperation> operations) throws IOException {
for (ObjectModelOperation op : operations) {
String opName = op.getName();
+ if (opName == null) {
+ generateBlock(output, clazz, op);
+ continue;
+ }
/*{<%=prefix%> /**
<%=prefix%> * <%=opName%> :
<%=prefix%>}*/
@@ -415,6 +427,9 @@
}
/*{ *)
+}*/
+ generateAnnotations(output, clazz, op);
+/*{
<%=prefix%> <%=opVisibility%> <%=opStatic%><%=opAbstract%><%=opReturn%><%=opName%>(}*/
String comma = "";
for (ObjectModelParameter param : params) {
@@ -433,7 +448,7 @@
}
if (!op.getBodyCode().isEmpty()) {
-/*{<%=prefix%> {<%=op.getBodyCode()%>}
+/*{<%=prefix%> {<%=op.getBodyCode()%><%=prefix%>}
}*/
} else {
@@ -444,4 +459,13 @@
}
}
+ protected void generateBlock(Writer output,ObjectModelClassifier clazz, ObjectModelOperation op) throws IOException {
+ String opStatic = op.isStatic() ? "static " : " ";
+
+/*{<%=prefix%><%=opStatic%>{
+ <%=prefix%><%=op.getBodyCode()%>
+ <%=prefix%>}
+}*/
+ }
+
}
Modified: trunk/eugene/src/main/java/org/nuiton/eugene/java/ObjectModelTransformerToJava.java
===================================================================
--- trunk/eugene/src/main/java/org/nuiton/eugene/java/ObjectModelTransformerToJava.java 2009-12-17 01:08:01 UTC (rev 763)
+++ trunk/eugene/src/main/java/org/nuiton/eugene/java/ObjectModelTransformerToJava.java 2009-12-18 10:23:09 UTC (rev 764)
@@ -207,4 +207,8 @@
public void addAnnotation(ObjectModelClassifier classifier, ObjectModelElement element, String annotation) {
builder.addAnnotation(classifier, element, annotation);
}
+
+ public ObjectModelOperation addBlock(ObjectModelClassifier classifier, ObjectModelModifier... modifiers) {
+ return builder.addBlock(classifier, modifiers);
+ }
}
Modified: trunk/eugene/src/main/java/org/nuiton/eugene/models/object/xml/ObjectModelBuilder.java
===================================================================
--- trunk/eugene/src/main/java/org/nuiton/eugene/models/object/xml/ObjectModelBuilder.java 2009-12-17 01:08:01 UTC (rev 763)
+++ trunk/eugene/src/main/java/org/nuiton/eugene/models/object/xml/ObjectModelBuilder.java 2009-12-18 10:23:09 UTC (rev 764)
@@ -475,6 +475,8 @@
throw new IllegalArgumentException("can not add a none classifier type " + type);
}
inner.setName(name);
+ inner.setPackage(clazz.getPackageName() + "." + clazz.getName());
+ inner.postInit();
impl.addInnerClassifier(inner);
inner.setObjectModelImpl(impl.getModel());
return inner;
Modified: trunk/eugene/src/main/java/org/nuiton/eugene/models/object/xml/ObjectModelClassifierImpl.java
===================================================================
--- trunk/eugene/src/main/java/org/nuiton/eugene/models/object/xml/ObjectModelClassifierImpl.java 2009-12-17 01:08:01 UTC (rev 763)
+++ trunk/eugene/src/main/java/org/nuiton/eugene/models/object/xml/ObjectModelClassifierImpl.java 2009-12-18 10:23:09 UTC (rev 764)
@@ -173,7 +173,7 @@
@Override
public Collection<ObjectModelOperation> getAllInterfaceOperations(
boolean distinct) {
- Collection<ObjectModelOperation> result = null;
+ Collection<ObjectModelOperation> result;
if (distinct) {
result = new HashSet<ObjectModelOperation>();
} else {
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 2009-12-17 01:08:01 UTC (rev 763)
+++ trunk/eugene/src/main/java/org/nuiton/eugene/models/object/xml/ObjectModelImpl.java 2009-12-18 10:23:09 UTC (rev 764)
@@ -207,8 +207,8 @@
return null;
}
if (!hasClass(qualifiedClassName)) {
- if (log.isWarnEnabled()) {
- log.warn("Class " + qualifiedClassName + " not found in model");
+ if (log.isDebugEnabled()) {
+ log.debug("Class " + qualifiedClassName + " not found in model");
}
return null;
}
@@ -259,8 +259,8 @@
@Override
public ObjectModelInterface getInterface(String qualifiedInterfaceName) {
ObjectModelInterface result = interfaces.get(qualifiedInterfaceName);
- if (result == null && log.isWarnEnabled()) {
- log.warn("Interface " + qualifiedInterfaceName + " not found in model");
+ if (result == null && log.isDebugEnabled()) {
+ log.debug("Interface " + qualifiedInterfaceName + " not found in model");
}
return result;
}
@@ -292,8 +292,8 @@
@Override
public ObjectModelEnumeration getEnumeration(String qualifiedEnumerationName) {
ObjectModelEnumeration result = enumerations.get(qualifiedEnumerationName);
- if (result == null && log.isWarnEnabled()) {
- log.warn("Enumeration " + qualifiedEnumerationName + " not found in model");
+ if (result == null && log.isDebugEnabled()) {
+ log.debug("Enumeration " + qualifiedEnumerationName + " not found in model");
}
return result;
}
@@ -498,6 +498,12 @@
@Override
@SuppressWarnings("unchecked")
public <O> O getExtension(String reference, Class<O> extensionClass) throws RuntimeException {
+ if (reference == null) {
+ throw new NullPointerException("reference parameter can not be null in method ObjectModelImpl#getExtension");
+ }
+ if (extensionClass == null) {
+ throw new NullPointerException("extensionClass parameter can not be null in method ObjectModelImpl#getExtension.");
+ }
Object object = extensions.get(reference);
O result;
if (object != null && !extensionClass.isAssignableFrom(object.getClass())) {
Modified: trunk/eugene/src/main/java/org/nuiton/eugene/models/object/xml/ObjectModelInterfaceImpl.java
===================================================================
--- trunk/eugene/src/main/java/org/nuiton/eugene/models/object/xml/ObjectModelInterfaceImpl.java 2009-12-17 01:08:01 UTC (rev 763)
+++ trunk/eugene/src/main/java/org/nuiton/eugene/models/object/xml/ObjectModelInterfaceImpl.java 2009-12-18 10:23:09 UTC (rev 764)
@@ -21,7 +21,6 @@
import java.util.Iterator;
-import org.nuiton.eugene.models.object.ObjectModelClass;
import org.nuiton.eugene.models.object.ObjectModelClassifier;
import org.nuiton.eugene.models.object.ObjectModelInterface;
Copied: trunk/eugene/src/main/java/org/nuiton/eugene/writer/AbstractChainedFileWriter.java (from rev 761, trunk/eugene/src/main/java/org/nuiton/eugene/AbstractModelFileWriter.java)
===================================================================
--- trunk/eugene/src/main/java/org/nuiton/eugene/writer/AbstractChainedFileWriter.java (rev 0)
+++ trunk/eugene/src/main/java/org/nuiton/eugene/writer/AbstractChainedFileWriter.java 2009-12-18 10:23:09 UTC (rev 764)
@@ -0,0 +1,189 @@
+/*
+ * *##%
+ * EUGene :: EUGene
+ * Copyright (C) 2004 - 2009 CodeLutin
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation, either version 3 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 Lesser Public License for more details.
+ *
+ * You should have received a copy of the GNU General Lesser Public
+ * License along with this program. If not, see
+ * <http://www.gnu.org/licenses/lgpl-3.0.html>.
+ * ##%*
+ */
+package org.nuiton.eugene.writer;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.nuiton.eugene.models.Model;
+
+import java.io.File;
+import java.io.IOException;
+import java.util.*;
+
+/**
+ * Abstract implementation of the {@link ChainedFileWriter}.
+ *
+ * @author tchemit
+ * @since 2.0.0
+ */
+public abstract class AbstractChainedFileWriter implements ChainedFileWriter {
+ /**
+ * Logger
+ */
+ private static final Log log = LogFactory.getLog(AbstractChainedFileWriter.class);
+ /**
+ * entries to treate with this writer
+ */
+ protected List<ChainedFileWriterEntry> entries;
+ /**
+ * previous writer (can be null)
+ */
+ protected ChainedFileWriter previousWriter;
+ /**
+ * next writer (can be null)
+ */
+ protected ChainedFileWriter nextWriter;
+ /**
+ * universe of authorized properties (keys are property names, values are property descriptions).
+ */
+ protected final Map<String, String> authorizedPropertyDescriptions;
+ /**
+ * real properties obtained fro a configuration in {@link #initWriter(ChainedFileWriterConfiguration)} method
+ */
+ protected Map<String, Object> properties;
+
+ protected AbstractChainedFileWriter(String... propertyNameAndDescriptions) {
+ if (propertyNameAndDescriptions.length % 2 != 0) {
+ throw new IllegalArgumentException("propertyNameAndDescriptions must be couple of (property key, property description), but was " + Arrays.toString(propertyNameAndDescriptions));
+ }
+ entries = new ArrayList<ChainedFileWriterEntry>();
+ properties = new TreeMap<String, Object>();
+ Map<String, String> authorizedPropertyDescriptions = new TreeMap<String, String>();
+ for (int i = 0, max = propertyNameAndDescriptions.length / 2; i < max; i++) {
+ authorizedPropertyDescriptions.put(propertyNameAndDescriptions[2 * i], propertyNameAndDescriptions[2 * i + 1]);
+ }
+ this.authorizedPropertyDescriptions = Collections.unmodifiableMap(authorizedPropertyDescriptions);
+ }
+
+ /**
+ * Generates some files for a given input, output and include pattern.
+ *
+ * @param configuration the shared configuration for all writers
+ * @param outputDir where to generate files
+ * @param inputDirectory where to pick up files
+ * @param includePattern pattern of files to include
+ * @throws IOException for any IO pb.
+ */
+ protected abstract void generate(ChainedFileWriterConfiguration configuration, File outputDir, File inputDirectory, String includePattern) throws IOException;
+
+ @Override
+ public Map<String, String> getAuthorizedPropertyDescriptions() {
+ return authorizedPropertyDescriptions;
+ }
+
+ @Override
+ public String[] getAuthorizedPropertyNames() {
+ Set<String> keys = authorizedPropertyDescriptions.keySet();
+ return keys.toArray(new String[keys.size()]);
+ }
+
+ @Override
+ public void clear() {
+ entries.clear();
+ properties.clear();
+ }
+
+ @Override
+ public void addEntry(ChainedFileWriterEntry entry) {
+ entries.add(entry);
+ }
+
+ @Override
+ public <T> T getProperty(String key, Class<T> type) {
+ return (T) properties.get(key);
+ }
+
+ @Override
+ public void generate(ChainedFileWriterConfiguration configuration) throws IOException {
+ if (log.isDebugEnabled()) {
+ log.debug("[" + getInputProtocol() + "] Start generate with writer " + this);
+ }
+ initWriter(configuration);
+
+ try {
+ File outputDir = getOutputDirectory(configuration.getOutputDirectory(), configuration.isTestPhase());
+
+ if (!outputDir.exists()) {
+ if (log.isDebugEnabled()) {
+ log.debug("[" + getInputProtocol() + "] Create output directory " + outputDir);
+ }
+ boolean b = outputDir.mkdirs();
+ if (!b) {
+ throw new IOException("Could not creat directory " + outputDir);
+ }
+ }
+
+ for (ChainedFileWriterEntry e : entries) {
+ if (log.isDebugEnabled()) {
+ log.debug("[" + getInputProtocol() + "] Will generate entry " + e.getInputDirectory() + " : " + e.getIncludePattern());
+ }
+ generate(configuration, outputDir, e.getInputDirectory(), e.getIncludePattern());
+ }
+ } finally {
+ clear();
+ }
+ }
+
+ @Override
+ public <M extends Model> String getInputProtocol(Class<M> modelType) {
+ // input protocol is the same for all model
+ return acceptModel(modelType) ? getInputProtocol() : null;
+ }
+
+ @Override
+ public File getOutputDirectory(File outputBasedir, boolean testPhase) {
+ return new File(outputBasedir, testPhase ? getDefaultTestOutputDirectory() : getDefaultOutputDirectory());
+ }
+
+ @Override
+ public List<ChainedFileWriterEntry> getEntries() {
+ return entries;
+ }
+
+ protected ChainedFileWriter getNextWriter() {
+ return nextWriter;
+ }
+
+ protected ChainedFileWriter getPreviousWriter() {
+ return previousWriter;
+ }
+
+ protected void setNextWriter(ChainedFileWriter nextWriter) {
+ this.nextWriter = nextWriter;
+ }
+
+ /**
+ * Initialize the writer before the generation.
+ *
+ * @param configuration the configuration to use for int
+ */
+ protected void initWriter(ChainedFileWriterConfiguration configuration) {
+ Map<String, Object> map = configuration.getProperties();
+
+ for (String key : getAuthorizedPropertyNames()) {
+ //TODO-TC-20091217, should prefix keys by the inputProtocol to avoid collisions ?
+ if (map.containsKey(key)) {
+ // keep this property
+ properties.put(key, map.get(key));
+ }
+ }
+ }
+}
\ No newline at end of file
Property changes on: trunk/eugene/src/main/java/org/nuiton/eugene/writer/AbstractChainedFileWriter.java
___________________________________________________________________
Added: svn:keywords
+ "Author Date Id Revision HeadURL
Copied: trunk/eugene/src/main/java/org/nuiton/eugene/writer/ChainedFileWriter.java (from rev 761, trunk/eugene/src/main/java/org/nuiton/eugene/ModelFileWriter.java)
===================================================================
--- trunk/eugene/src/main/java/org/nuiton/eugene/writer/ChainedFileWriter.java (rev 0)
+++ trunk/eugene/src/main/java/org/nuiton/eugene/writer/ChainedFileWriter.java 2009-12-18 10:23:09 UTC (rev 764)
@@ -0,0 +1,162 @@
+/*
+ * *##%
+ * EUGene :: EUGene
+ * Copyright (C) 2004 - 2009 CodeLutin
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation, either version 3 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 Lesser Public License for more details.
+ *
+ * You should have received a copy of the GNU General Lesser Public
+ * License along with this program. If not, see
+ * <http://www.gnu.org/licenses/lgpl-3.0.html>.
+ * ##%*
+ */
+package org.nuiton.eugene.writer;
+
+import org.nuiton.eugene.models.Model;
+
+import java.io.File;
+import java.io.IOException;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * Contract to generate files from any incoming sources (zargo, xmi, ...) to any other ones.
+ * <p/>
+ * User: chemit
+ * Date: 27 nov. 2009
+ * Time: 11:20:39
+ *
+ * @since 2.0.0
+ */
+public interface ChainedFileWriter {
+
+ /**
+ * @return the accepted incoming protocol
+ */
+ String getInputProtocol();
+
+ /**
+ * Obtain the input protocol of this writer given the passed {@code modelType}.
+ *
+ * @param modelType the type of model used
+ * @param <M> the type of model used
+ * @return the input protocol or {@code null} if this writer does not accept the type of model
+ */
+ <M extends Model> String getInputProtocol(Class<M> modelType);
+
+ /**
+ * Obtain the output protocol of this writer given the passed {@code modelType}.
+ *
+ * @param modelType the type of model used
+ * @param <M> the type of model used
+ * @return the output protocol or {@code null} if should not be chained
+ */
+ <M extends Model> String getOutputProtocol(Class<M> modelType);
+
+ /**
+ * Test if a type of model can be treated by this writer.
+ *
+ * @param modelType model type to test
+ * @param <M> model type to test
+ * @return {@code true} if this writer accept the given type of model, {@code false} otherwise.
+ */
+ <M extends Model> boolean acceptModel(Class<M> modelType);
+
+ /**
+ * Test in a entry can be treated by this writer.
+ *
+ * @param include the include to test
+ * @return {@code true} if the writer accept the entry, {@code false} otherwise.
+ */
+ boolean acceptInclude(String include);
+
+ /**
+ * @return the default includes files to be treated by the writer (can be an ant-like expression)
+ */
+ String getDefaultIncludes();
+
+ /**
+ * @return the defalt relative path where to pick files to treate.
+ */
+ String getDefaultInputDirectory();
+
+ /**
+ * @return the defalt relative path where to pick files to treate on a test phase.
+ */
+ String getDefaultTestInputDirectory();
+
+ /**
+ * @return the default relative path to add to output basedir
+ */
+ String getDefaultOutputDirectory();
+
+ /**
+ * @return the default relative path to add to output basedir on a test phase.
+ */
+ String getDefaultTestOutputDirectory();
+
+ /**
+ * Obtain the real directory where to write files.
+ * <p/>
+ * //FIXME-TC20091126 make this configurable (via the properties)
+ *
+ * @param outputBasedir the output base directory
+ * @param testPhase {@code true} if writer is used in a test phase
+ * @return the real output directory where to generate for this particular writer
+ */
+ File getOutputDirectory(File outputBasedir, boolean testPhase);
+
+ /**
+ * Generates.
+ *
+ * @param configuration the share configuration of all writers.
+ * @throws IOException if any io pb.
+ */
+ void generate(ChainedFileWriterConfiguration configuration) throws IOException;
+
+ /**
+ * Clear all internal states
+ */
+ void clear();
+
+ /**
+ * Add an entry to treate.
+ *
+ * @param entry the entry to add to writer
+ */
+ void addEntry(ChainedFileWriterEntry entry);
+
+ /**
+ * @return the array of properties names authorized for the chanied writer.
+ */
+ String[] getAuthorizedPropertyNames();
+
+ /**
+ * @return the dictionnary of authorized property descriptions (keys are property names and
+ * values are descriptions).
+ */
+ Map<String, String> getAuthorizedPropertyDescriptions();
+
+ /**
+ * Obtain a writer extra property.
+ *
+ * @param key the key of required property
+ * @param type the type of property
+ * @param <T> the type of property
+ * @return the property found or {@code null} if not found.
+ */
+ <T> T getProperty(String key, Class<T> type);
+
+ /**
+ * @return the list of all entries registered
+ */
+ List<ChainedFileWriterEntry> getEntries();
+}
Property changes on: trunk/eugene/src/main/java/org/nuiton/eugene/writer/ChainedFileWriter.java
___________________________________________________________________
Added: svn:keywords
+ "Author Date Id Revision HeadURL
Copied: trunk/eugene/src/main/java/org/nuiton/eugene/writer/ChainedFileWriterConfiguration.java (from rev 761, trunk/eugene/src/main/java/org/nuiton/eugene/ModelFileWriterConfiguration.java)
===================================================================
--- trunk/eugene/src/main/java/org/nuiton/eugene/writer/ChainedFileWriterConfiguration.java (rev 0)
+++ trunk/eugene/src/main/java/org/nuiton/eugene/writer/ChainedFileWriterConfiguration.java 2009-12-18 10:23:09 UTC (rev 764)
@@ -0,0 +1,99 @@
+/*
+ * *##%
+ * EUGene :: EUGene
+ * Copyright (C) 2004 - 2009 CodeLutin
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation, either version 3 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 Lesser Public License for more details.
+ *
+ * You should have received a copy of the GNU General Lesser Public
+ * License along with this program. If not, see
+ * <http://www.gnu.org/licenses/lgpl-3.0.html>.
+ * ##%*
+ */
+package org.nuiton.eugene.writer;
+
+import org.nuiton.eugene.ModelReader;
+import org.nuiton.eugene.Template;
+import org.nuiton.eugene.models.Model;
+
+import java.io.File;
+import java.util.Map;
+
+/**
+ * Shared configuration of a {@link ChainedFileWriter}, should be the same for all writers
+ * to use at a time.
+ *
+ * @author tchemit
+ * @since 2.0.0
+ */
+public interface ChainedFileWriterConfiguration {
+
+ /**
+ * @return the type of model used
+ */
+ Class<? extends Model> getModelClass();
+
+ /**
+ * @return project base directory
+ */
+ File getBasedir();
+
+ /**
+ * @return base directory where to generate
+ */
+ File getOutputDirectory();
+
+ /**
+ * @return {@code true} if must regenerate files even if they are up to date
+ */
+ boolean isOverwrite();
+
+ /**
+ * @return {@code true} if build is off-line and should not be able to access outside resources.
+ */
+ boolean isOffline();
+
+ /**
+ * @return {@code true} if build is verbose.
+ */
+ boolean isVerbose();
+
+ /**
+ * @return {@code true} if build is done on a test phase.
+ */
+ boolean isTestPhase();
+
+ /**
+ * @return encoding to use to read and write files
+ */
+ String getEncoding();
+
+ /**
+ * @return the universe of availables writers
+ */
+ Map<String, ChainedFileWriter> getWriters();
+
+ /**
+ * @return the universe of available model readers
+ */
+ Map<String, ModelReader<?>> getModelReaders();
+
+ /**
+ * @return the universe of available model templates
+ */
+ Map<String, Template<?>> getModelTemplates();
+
+ /**
+ * @return properties to pass to writers
+ */
+ Map<String, Object> getProperties();
+
+}
Property changes on: trunk/eugene/src/main/java/org/nuiton/eugene/writer/ChainedFileWriterConfiguration.java
___________________________________________________________________
Added: svn:keywords
+ "Author Date Id Revision HeadURL
Added: trunk/eugene/src/main/java/org/nuiton/eugene/writer/ChainedFileWriterEntry.java
===================================================================
--- trunk/eugene/src/main/java/org/nuiton/eugene/writer/ChainedFileWriterEntry.java (rev 0)
+++ trunk/eugene/src/main/java/org/nuiton/eugene/writer/ChainedFileWriterEntry.java 2009-12-18 10:23:09 UTC (rev 764)
@@ -0,0 +1,32 @@
+package org.nuiton.eugene.writer;
+
+import java.io.File;
+
+/**
+ *
+ */
+public class ChainedFileWriterEntry {
+
+ /**
+ *
+ */
+ protected File inputDirectory;
+ /**
+ *
+ */
+ protected String includePattern;
+
+ public ChainedFileWriterEntry(File inputDirectory, String includePattern) {
+ this.inputDirectory = inputDirectory;
+ this.includePattern = includePattern;
+ }
+
+ public String getIncludePattern() {
+ return includePattern;
+ }
+
+ public File getInputDirectory() {
+ return inputDirectory;
+ }
+
+}
Property changes on: trunk/eugene/src/main/java/org/nuiton/eugene/writer/ChainedFileWriterEntry.java
___________________________________________________________________
Added: svn:keywords
+ "Author Date Id Revision HeadURL
Added: trunk/eugene/src/main/java/org/nuiton/eugene/writer/ChainedWriterEngine.java
===================================================================
--- trunk/eugene/src/main/java/org/nuiton/eugene/writer/ChainedWriterEngine.java (rev 0)
+++ trunk/eugene/src/main/java/org/nuiton/eugene/writer/ChainedWriterEngine.java 2009-12-18 10:23:09 UTC (rev 764)
@@ -0,0 +1,46 @@
+package org.nuiton.eugene.writer;
+
+import org.nuiton.eugene.models.Model;
+
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+/**
+ * Contract of the chained writer engine.
+ * <p/>
+ * You can register inputs via the method {@link #registerInclude(String)}.
+ * <p/>
+ * And later obtain of the selected writers for your inputs via the method {@link #getSelectedWriters()}.
+ * <p/>
+ * Created: 17 déc. 2009
+ *
+ * @author Tony Chemit <chemit(a)codelutin.com> Copyright Code Lutin
+ * @version $Revision$
+ * <p/>
+ * Mise a jour: $Date$ par :
+ * $Author: tchemit $
+ * @since 2.0.0
+ */
+public interface ChainedWriterEngine {
+
+ ChainedFileWriterConfiguration getConfiguration();
+
+ void setConfiguration(ChainedFileWriterConfiguration configuration);
+
+ Set<ChainedFileWriter> getAvailableWriters();
+
+ List<ChainedFileWriter> getSelectedWriters();
+
+ boolean containsWriter(String inputProtocol);
+
+ Set<ChainedFileWriter> filterWriterForModelType(Map<String, ChainedFileWriter> universe, Class<? extends Model> modelType);
+
+ ChainedFileWriter getWriterForInputProtocol(Set<ChainedFileWriter> universe, String inputProtocol, Class<? extends Model> modelType);
+
+ ChainedFileWriter getWriterForInclude(Set<ChainedFileWriter> universe, String include, Class<? extends Model> modelType);
+
+ void registerInclude(String include);
+
+ void clear();
+}
Property changes on: trunk/eugene/src/main/java/org/nuiton/eugene/writer/ChainedWriterEngine.java
___________________________________________________________________
Added: svn:keywords
+ "Author Date Id Revision HeadURL
Added: trunk/eugene/src/main/java/org/nuiton/eugene/writer/DefaultChainedWriterEngine.java
===================================================================
--- trunk/eugene/src/main/java/org/nuiton/eugene/writer/DefaultChainedWriterEngine.java (rev 0)
+++ trunk/eugene/src/main/java/org/nuiton/eugene/writer/DefaultChainedWriterEngine.java 2009-12-18 10:23:09 UTC (rev 764)
@@ -0,0 +1,371 @@
+package org.nuiton.eugene.writer;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.nuiton.eugene.models.Model;
+
+import java.io.File;
+import java.util.*;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+/**
+ * Default implementation of the {@link org.nuiton.eugene.writer.ChainedWriterEngine}.
+ * <p/>
+ * Created: 17 déc. 2009
+ *
+ * @author Tony Chemit <chemit(a)codelutin.com> Copyright Code Lutin
+ * @version $Revision$
+ * <p/>
+ * Mise a jour: $Date$ par :
+ * $Author: tchemit $
+ * @plexus.component role="org.nuiton.eugene.writer.ChainedWriterEngine" role-hint="default"
+ * @since 2.0.0
+ */
+public class DefaultChainedWriterEngine implements ChainedWriterEngine {
+
+ /**
+ * Logger
+ */
+ private static final Log log = LogFactory.getLog(DefaultChainedWriterEngine.class);
+ /**
+ * shared configuration
+ */
+ protected ChainedFileWriterConfiguration configuration;
+ /**
+ * available writers corresponding to the given configuration
+ */
+ protected Set<ChainedFileWriter> availableWriters;
+ /**
+ * selected writers obtain while the register phase.
+ */
+ protected List<ChainedFileWriter> selectedWriters;
+
+ @Override
+ public ChainedFileWriterConfiguration getConfiguration() {
+ return configuration;
+ }
+
+ @Override
+ public void setConfiguration(ChainedFileWriterConfiguration configuration) {
+ this.configuration = configuration;
+ }
+
+ @Override
+ public List<ChainedFileWriter> getSelectedWriters() {
+ if (selectedWriters == null) {
+ checkConfiguration("getSelectedWriters");
+ selectedWriters = new ArrayList<ChainedFileWriter>();
+ }
+ return selectedWriters;
+ }
+
+ @Override
+ public boolean containsWriter(String inputProtocol) {
+ for (ChainedFileWriter w : getSelectedWriters()) {
+ if (inputProtocol.equals(w.getInputProtocol())) {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ @Override
+ public Set<ChainedFileWriter> getAvailableWriters() {
+ if (availableWriters == null) {
+ checkConfiguration("getAvailableWriters");
+ availableWriters = filterWriterForModelType(getConfiguration().getWriters(), getConfiguration().getModelClass());
+ }
+ return availableWriters;
+ }
+
+ @Override
+ public void registerInclude(String include) {
+ checkConfiguration("registerInclude");
+
+ List<ChainedFileWriter> selectedWriters = getSelectedWriters();
+
+ if (log.isDebugEnabled()) {
+ log.debug(">>>>>>>>>>>>>>>>> [" + include + "]");
+ log.debug("Will register include " + "[" + include + "]");
+ log.debug("actual selected writers : " + selectedWriters);
+ }
+ ModelFileWriterEntryType selectedType = null;
+ Matcher matcher = null;
+
+ // obtain the good type of entry and the corresponding matcher
+
+ for (ModelFileWriterEntryType type : ModelFileWriterEntryType.values()) {
+ matcher = type.getMatcher(include);
+ if (matcher != null) {
+ // get a matcher
+ selectedType = type;
+ break;
+ }
+ }
+
+ if (selectedType == null) {
+ // no writer
+ throw new IllegalArgumentException("could not find a writer for include pattern : " + include);
+ }
+
+ // obtain the writer
+ ChainedFileWriter writer = selectedType.getWriter(this, include, matcher);
+
+ // create the new entry
+
+ ChainedFileWriterEntry writerEntry = selectedType.newEntry(this, include, matcher, writer);
+
+ // register the new entry
+
+ writer.addEntry(writerEntry);
+ if (!selectedWriters.contains(writer)) {
+ // register the writer as to be used
+ if (log.isDebugEnabled()) {
+ log.debug("[" + include + "] Associated with writer " + writer);
+ }
+ selectedWriters.add(writer);
+ }
+
+ ChainedFileWriterConfiguration configuration = getConfiguration();
+
+ Class<? extends Model> modelType = configuration.getModelClass();
+
+ String outpoutProtocol = writer.getOutputProtocol(modelType);
+
+ if (outpoutProtocol == null) {
+ // nothing more to do
+ if (log.isDebugEnabled()) {
+ log.debug("<<<<<<<<<<<<<<<<< [" + include + "]");
+ }
+ return;
+ }
+
+ // the writer need the includes of another writer
+
+ if (log.isDebugEnabled()) {
+ log.debug("[" + include + "]" + " writer " + writer.getClass().getSimpleName() + " require a next writer of protocol " + outpoutProtocol);
+ }
+
+ ChainedFileWriter nextWriter = ((AbstractChainedFileWriter) writer).getNextWriter();
+ if (nextWriter == null) {
+ // the next writer was not initialize, just have to add new entry
+
+ nextWriter = getWriterForInputProtocol(getAvailableWriters(), outpoutProtocol, modelType);
+
+ if (nextWriter == null) {
+ throw new IllegalArgumentException("could not find a writer for protocole " + outpoutProtocol + " on model " + modelType);
+ }
+ // chain writer
+ ((AbstractChainedFileWriter) writer).setNextWriter(nextWriter);
+ }
+
+ // build the next include to do
+
+ String basedirpath = configuration.getBasedir().getAbsolutePath();
+
+ String outputpath = writer.getOutputDirectory(configuration.getOutputDirectory(), configuration.isTestPhase()).getAbsolutePath();
+
+ String path = outputpath.substring(basedirpath.length() + 1);
+
+ String newInclude = outpoutProtocol + ":" + path + ":" + nextWriter.getDefaultIncludes();
+
+ registerInclude(newInclude);
+
+ if (log.isDebugEnabled()) {
+ log.debug("<<<<<<<<<<<<<<<<< [" + include + "]");
+ }
+ }
+
+ @Override
+ public void clear() {
+ if (selectedWriters != null) {
+ selectedWriters.clear();
+ selectedWriters = null;
+ }
+ if (availableWriters != null) {
+ availableWriters.clear();
+ availableWriters = null;
+ }
+ setConfiguration(null);
+ }
+
+ @Override
+ public Set<ChainedFileWriter> filterWriterForModelType(Map<String, ChainedFileWriter> universe, Class<? extends Model> modelType) {
+ Set<ChainedFileWriter> result = new HashSet<ChainedFileWriter>();
+ for (ChainedFileWriter w : universe.values()) {
+ if (w.acceptModel(modelType)) {
+ if (log.isDebugEnabled()) {
+ log.debug("writer [" + w + "] accept model " + modelType);
+ }
+ result.add(w);
+ }
+ }
+ return result;
+ }
+
+ @Override
+ public ChainedFileWriter getWriterForInputProtocol(Set<ChainedFileWriter> universe, String inputProtocol, Class<? extends Model> modelType) {
+ for (ChainedFileWriter writer : universe) {
+ if (inputProtocol.equals(writer.getInputProtocol(modelType))) {
+ return writer;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public ChainedFileWriter getWriterForInclude(Set<ChainedFileWriter> universe, String include, Class<? extends Model> modelType) {
+ for (ChainedFileWriter w : universe) {
+ if (w.acceptInclude(include)) {
+ return w;
+ }
+ }
+ return null;
+ }
+
+ protected void checkConfiguration(String method) throws IllegalStateException {
+ if (getConfiguration() == null) {
+ throw new IllegalStateException("can not acces to " + method + "before configuration is set!");
+ }
+ }
+
+ /**
+ *
+ */
+ public enum ModelFileWriterEntryType {
+
+ ONLY_PROTOCOL_PATTERN(Pattern.compile("^([a-zA-Z]+)$")) {
+
+ @Override
+ public ChainedFileWriter getWriter(ChainedWriterEngine engine, String include, Matcher matcher) {
+ ChainedFileWriterConfiguration configuration = engine.getConfiguration();
+ Set<ChainedFileWriter> universe = engine.getAvailableWriters();
+
+ String protocol = matcher.group(1).toLowerCase();
+ ChainedFileWriter writer = engine.getWriterForInputProtocol(universe, protocol, configuration.getModelClass());
+ if (writer == null) {
+ throw new IllegalArgumentException("could not find the writer named '" + protocol + "', use one of " + universe);
+ }
+ if (log.isDebugEnabled()) {
+ log.debug("[" + include + "] " + "writer = (" + writer + ")");
+ }
+ return writer;
+ }
+
+ @Override
+ public ChainedFileWriterEntry newEntry(ChainedWriterEngine engine, String include, Matcher matcher, ChainedFileWriter writer) {
+ ChainedFileWriterConfiguration configuration = engine.getConfiguration();
+ if (log.isDebugEnabled()) {
+ log.debug("[" + include + "] " + "detected pattern (" + name() + ")");
+ }
+
+ ChainedFileWriterEntry writerEntry = new ChainedFileWriterEntry(
+ new File(configuration.getBasedir(), configuration.isTestPhase() ? writer.getDefaultTestInputDirectory() : writer.getDefaultInputDirectory()),
+ writer.getDefaultIncludes()
+ );
+ return writerEntry;
+ }
+ },
+
+ NO_PROTOCOL_PATTERN(Pattern.compile("^([^:]+):([^:]+)$")) {
+ @Override
+ public ChainedFileWriter getWriter(ChainedWriterEngine engine, String include, Matcher matcher) {
+ ChainedFileWriterConfiguration configuration = engine.getConfiguration();
+ Set<ChainedFileWriter> universe = engine.getAvailableWriters();
+
+ Class<? extends Model> modelType = configuration.getModelClass();
+ // with no protocol pattern
+ // pattern is discover from the includes
+
+ // discover the writer from the given pattern
+ ChainedFileWriter writer = engine.getWriterForInclude(universe, include, modelType);
+ if (writer == null) {
+ throw new IllegalArgumentException("could not find a writer for include " + include);
+ }
+ if (log.isDebugEnabled()) {
+ log.debug("[" + include + "] " + "writer = (" + writer + ")");
+ }
+ return writer;
+ }
+
+ @Override
+ public ChainedFileWriterEntry newEntry(ChainedWriterEngine engine, String include, Matcher matcher, ChainedFileWriter writer) {
+ ChainedFileWriterConfiguration configuration = engine.getConfiguration();
+ // with no protocol pattern
+ // pattern is discover from the includes
+ if (log.isDebugEnabled()) {
+ log.debug("[" + include + "] " + "detected pattern (" + name() + ")");
+ }
+
+ String inputPath = matcher.group(1);
+ String includes = matcher.group(2);
+
+ ChainedFileWriterEntry writerEntry = new ChainedFileWriterEntry(
+ new File(configuration.getBasedir(), inputPath),
+ includes
+ );
+ return writerEntry;
+ }
+ },
+
+ FULL_PATTERN(Pattern.compile("^(\\w+):([^:]+):([^:]+)$")) {
+ @Override
+ public ChainedFileWriter getWriter(ChainedWriterEngine engine, String include, Matcher matcher) {
+ // with full pattern (protocol + directory + includes)
+ // pattern is discover from the includes
+ ChainedFileWriterConfiguration configuration = engine.getConfiguration();
+ Set<ChainedFileWriter> universe = engine.getAvailableWriters();
+
+ String protocol = matcher.group(1).toLowerCase();
+ ChainedFileWriter writer = engine.getWriterForInputProtocol(universe, protocol, configuration.getModelClass());
+
+ if (writer == null) {
+ throw new IllegalArgumentException("could not find the writer named '" + protocol + "', use one of " + universe);
+ }
+ if (log.isDebugEnabled()) {
+ log.debug("[" + include + "] " + "writer = (" + writer + ")");
+ }
+ return writer;
+ }
+
+ @Override
+ public ChainedFileWriterEntry newEntry(ChainedWriterEngine engine, String include, Matcher matcher, ChainedFileWriter writer) {
+ ChainedFileWriterConfiguration configuration = engine.getConfiguration();
+ // with full pattern (protocol + directory + includes)
+ // pattern is discover from the includes
+ if (log.isDebugEnabled()) {
+ log.debug("[" + include + "] " + "detected pattern (" + name() + ")");
+ }
+
+ String inputPath = matcher.group(2);
+ String includes = matcher.group(3);
+ ChainedFileWriterEntry writerEntry = new ChainedFileWriterEntry(
+ new File(configuration.getBasedir(), inputPath),
+ includes
+ );
+ return writerEntry;
+ }
+ };
+
+ private final Pattern pattern;
+
+ ModelFileWriterEntryType(Pattern pattern) {
+ this.pattern = pattern;
+ }
+
+ public Pattern getPattern() {
+ return pattern;
+ }
+
+ public Matcher getMatcher(String include) {
+ Matcher matcher = getPattern().matcher(include);
+ return matcher.matches() ? matcher : null;
+ }
+
+ public abstract ChainedFileWriterEntry newEntry(ChainedWriterEngine engine, String include, Matcher matcher, ChainedFileWriter writer);
+
+ public abstract ChainedFileWriter getWriter(ChainedWriterEngine engine, String include, Matcher matcher);
+ }
+
+}
Property changes on: trunk/eugene/src/main/java/org/nuiton/eugene/writer/DefaultChainedWriterEngine.java
___________________________________________________________________
Added: svn:keywords
+ "Author Date Id Revision HeadURL
Copied: trunk/eugene/src/main/java/org/nuiton/eugene/writer/package-info.java (from rev 760, trunk/eugene/src/main/java/org/nuiton/eugene/package-info.java)
===================================================================
--- trunk/eugene/src/main/java/org/nuiton/eugene/writer/package-info.java (rev 0)
+++ trunk/eugene/src/main/java/org/nuiton/eugene/writer/package-info.java 2009-12-18 10:23:09 UTC (rev 764)
@@ -0,0 +1,25 @@
+/*
+ * *##%
+ * EUGene :: EUGene
+ * Copyright (C) 2004 - 2009 CodeLutin
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation, either version 3 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 Lesser Public License for more details.
+ *
+ * You should have received a copy of the GNU General Lesser Public
+ * License along with this program. If not, see
+ * <http://www.gnu.org/licenses/lgpl-3.0.html>.
+ * ##%*
+ */
+/**
+ * Eugene writer package : a small framework to chain writers.
+ */
+package org.nuiton.eugene.writer;
+
Added: trunk/eugene/src/main/resolver-cache/META-INF/cache/argouml.org/profiles/um…
===================================================================
--- trunk/eugene/src/main/resolver-cache/META-INF/cache/argouml.org/profiles/um… (rev 0)
+++ trunk/eugene/src/main/resolver-cache/META-INF/cache/argouml.org/profiles/um… 2009-12-18 10:23:09 UTC (rev 764)
@@ -0,0 +1,78 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<XMI xmi.version="1.2" xmlns:UML="org.omg.xmi.namespace.UML" timestamp="Fri May 02 13:16:12 EDT 2008">
+ <XMI.header> <XMI.documentation>
+ <XMI.exporter>ArgoUML (using Netbeans XMI Writer version 1.0)</XMI.exporter>
+ <XMI.exporterVersion>PRE-0.25.5(5) revised on $Date: 2007-05-12 02:08:08 -0400 (Sat, 12 May 2007) $ </XMI.exporterVersion>
+ </XMI.documentation>
+ <XMI.metamodel xmi.name="UML" xmi.version="1.4"/></XMI.header>
+ <XMI.content>
+ <UML:Model xmi.id=".:000000000000087A" name="UML Profile for Java" isSpecification="false" isRoot="false" isLeaf="false" isAbstract="false">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="-64--88-1-3--3c483fe3:119aa9cff00:-8000:00000000000007A3"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id="-64--88-1-3--3c483fe3:119aa9cff00:-8000:00000000000007A4" isSpecification="false">
+ <UML:TaggedValue.dataValue>This profile contains common Java classes and datatypes which are not contained in the UML Standard Elements profile. It only includes the basics, but may be easily extended to include anything else which is useful.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition href="http://argouml.org/profiles/uml14/default-uml14.xmi#.:000000000000087C"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:Namespace.ownedElement>
+ <UML:Package xmi.id=".:0000000000000869" name="java" isSpecification="false" isRoot="false" isLeaf="false" isAbstract="false">
+ <UML:Namespace.ownedElement>
+ <UML:Package xmi.id=".:000000000000085A" name="lang" isSpecification="false" isRoot="false" isLeaf="false" isAbstract="false">
+ <UML:Namespace.ownedElement>
+ <UML:Class xmi.id=".:0000000000000850" name="Object" isSpecification="false" isRoot="false" isLeaf="false" isAbstract="false" isActive="false"/>
+ <UML:Class xmi.id=".:0000000000000851" name="Char" isSpecification="false" isRoot="false" isLeaf="false" isAbstract="false" isActive="false"/>
+ <UML:Class xmi.id=".:0000000000000852" name="Byte" isSpecification="false" isRoot="false" isLeaf="false" isAbstract="false" isActive="false"/>
+ <UML:Class xmi.id=".:0000000000000853" name="Boolean" isSpecification="false" isRoot="false" isLeaf="false" isAbstract="false" isActive="false"/>
+ <UML:Class xmi.id=".:0000000000000854" name="Short" isSpecification="false" isRoot="false" isLeaf="false" isAbstract="false" isActive="false"/>
+ <UML:Class xmi.id=".:0000000000000855" name="Integer" isSpecification="false" isRoot="false" isLeaf="false" isAbstract="false" isActive="false"/>
+ <UML:Class xmi.id=".:0000000000000856" name="Long" isSpecification="false" isRoot="false" isLeaf="false" isAbstract="false" isActive="false"/>
+ <UML:Class xmi.id=".:0000000000000857" name="Float" isSpecification="false" isRoot="false" isLeaf="false" isAbstract="false" isActive="false"/>
+ <UML:Class xmi.id=".:0000000000000858" name="Double" isSpecification="false" isRoot="false" isLeaf="false" isAbstract="false" isActive="false"/>
+ <UML:Class xmi.id=".:0000000000000859" name="String" isSpecification="false" isRoot="false" isLeaf="false" isAbstract="false" isActive="false"/>
+ </UML:Namespace.ownedElement>
+ </UML:Package>
+ <UML:Package xmi.id=".:0000000000000863" name="util" isSpecification="false" isRoot="false" isLeaf="false" isAbstract="false">
+ <UML:Namespace.ownedElement>
+ <UML:Class xmi.id=".:000000000000085B" name="Vector" isSpecification="false" isRoot="false" isLeaf="false" isAbstract="false" isActive="false"/>
+ <UML:Interface xmi.id=".:000000000000085C" name="Collection" isSpecification="false" isRoot="false" isLeaf="false" isAbstract="false"/>
+ <UML:Interface xmi.id=".:000000000000085D" name="Iterator" isSpecification="false" isRoot="false" isLeaf="false" isAbstract="false"/>
+ <UML:Interface xmi.id=".:000000000000085E" name="List" isSpecification="false" isRoot="false" isLeaf="false" isAbstract="false"/>
+ <UML:Class xmi.id=".:000000000000085F" name="Date" isSpecification="false" isRoot="false" isLeaf="false" isAbstract="false" isActive="false"/>
+ <UML:Class xmi.id=".:0000000000000860" name="Time" isSpecification="false" isRoot="false" isLeaf="false" isAbstract="false" isActive="false"/>
+ <UML:Interface xmi.id=".:0000000000000861" name="Set" isSpecification="false" isRoot="false" isLeaf="false" isAbstract="false"/>
+ <UML:Interface xmi.id=".:0000000000000862" name="SortedSet" isSpecification="false" isRoot="false" isLeaf="false" isAbstract="false"/>
+ </UML:Namespace.ownedElement>
+ </UML:Package>
+ <UML:Package xmi.id=".:0000000000000866" name="math" isSpecification="false" isRoot="false" isLeaf="false" isAbstract="false">
+ <UML:Namespace.ownedElement>
+ <UML:Class xmi.id=".:0000000000000864" name="BigDecimal" isSpecification="false" isRoot="false" isLeaf="false" isAbstract="false" isActive="false"/>
+ <UML:Class xmi.id=".:0000000000000865" name="BigInteger" isSpecification="false" isRoot="false" isLeaf="false" isAbstract="false" isActive="false"/>
+ </UML:Namespace.ownedElement>
+ </UML:Package>
+ <UML:Package xmi.id=".:0000000000000868" name="net" isSpecification="false" isRoot="false" isLeaf="false" isAbstract="false">
+ <UML:Namespace.ownedElement>
+ <UML:Class xmi.id=".:0000000000000867" name="URL" isSpecification="false" isRoot="false" isLeaf="false" isAbstract="false" isActive="false"/>
+ </UML:Namespace.ownedElement>
+ </UML:Package>
+ </UML:Namespace.ownedElement>
+ </UML:Package>
+ <UML:DataType xmi.id=".:000000000000086B" name="void" isSpecification="false" isRoot="false" isLeaf="false" isAbstract="false"/>
+ <UML:DataType xmi.id=".:000000000000086C" name="int" isSpecification="false" isRoot="false" isLeaf="false" isAbstract="false"/>
+ <UML:DataType xmi.id=".:000000000000086D" name="short" isSpecification="false" isRoot="false" isLeaf="false" isAbstract="false"/>
+ <UML:DataType xmi.id=".:000000000000086E" name="long" isSpecification="false" isRoot="false" isLeaf="false" isAbstract="false"/>
+ <UML:DataType xmi.id=".:000000000000086F" name="double" isSpecification="false" isRoot="false" isLeaf="false" isAbstract="false"/>
+ <UML:DataType xmi.id=".:0000000000000870" name="float" isSpecification="false" isRoot="false" isLeaf="false" isAbstract="false"/>
+ <UML:DataType xmi.id=".:0000000000000871" name="char" isSpecification="false" isRoot="false" isLeaf="false" isAbstract="false"/>
+ <UML:DataType xmi.id=".:0000000000000872" name="byte" isSpecification="false" isRoot="false" isLeaf="false" isAbstract="false"/>
+ <UML:DataType xmi.id=".:0000000000000873" name="boolean" isSpecification="false" isRoot="false" isLeaf="false" isAbstract="false"/>
+ <UML:Stereotype xmi.id="-64--88-1-3--3c483fe3:119aa9cff00:-8000:00000000000007A3" name="profile" isSpecification="false" isRoot="false" isLeaf="false" isAbstract="false">
+ <UML:Stereotype.baseClass>Model</UML:Stereotype.baseClass>
+ </UML:Stereotype>
+ </UML:Namespace.ownedElement>
+ </UML:Model>
+ </XMI.content>
+</XMI>
\ No newline at end of file
Added: trunk/eugene/src/main/resolver-cache/META-INF/cache/argouml.org/profiles/um…
===================================================================
--- trunk/eugene/src/main/resolver-cache/META-INF/cache/argouml.org/profiles/um… (rev 0)
+++ trunk/eugene/src/main/resolver-cache/META-INF/cache/argouml.org/profiles/um… 2009-12-18 10:23:09 UTC (rev 764)
@@ -0,0 +1,196 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<XMI xmi.version="1.2" xmlns:UML="org.omg.xmi.namespace.UML" timestamp="Tue Aug 14 18:51:04 BRT 2007">
+ <XMI.header> <XMI.documentation>
+ <XMI.exporter>ArgoUML (using Netbeans XMI Writer version 1.0)</XMI.exporter>
+ <XMI.exporterVersion>PRE-0.25.4(5) revised on $Date: 2007-05-12 03:08:08 -0300 $ </XMI.exporterVersion>
+ </XMI.documentation>
+ <XMI.metamodel xmi.name="UML" xmi.version="1.4"/></XMI.header>
+ <XMI.content>
+ <UML:Model xmi.id=".:000000000000087A" name="UML 1.4 Standard Elements" isSpecification="false" isRoot="false" isLeaf="false" isAbstract="false">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id=".:000000000000087B" isSpecification="false">
+ <UML:TaggedValue.dataValue>This model contains the UML Standard Elements from Appendix A of the UML 1.4 specification.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref=".:000000000000087C"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:Namespace.ownedElement>
+ <UML:Stereotype xmi.id=".:0000000000000821" name="access" isSpecification="false" isRoot="false" isLeaf="false" isAbstract="false">
+ <UML:Stereotype.baseClass>Permission</UML:Stereotype.baseClass>
+ </UML:Stereotype>
+ <UML:Stereotype xmi.id=".:0000000000000822" name="friend" isSpecification="false" isRoot="false" isLeaf="false" isAbstract="false">
+ <UML:Stereotype.baseClass>Permission</UML:Stereotype.baseClass>
+ </UML:Stereotype>
+ <UML:Stereotype xmi.id=".:0000000000000823" name="import" isSpecification="false" isRoot="false" isLeaf="false" isAbstract="false">
+ <UML:Stereotype.baseClass>Permission</UML:Stereotype.baseClass>
+ </UML:Stereotype>
+ <UML:Stereotype xmi.id=".:0000000000000824" name="association" isSpecification="false" isRoot="false" isLeaf="false" isAbstract="false">
+ <UML:Stereotype.baseClass>AssociationEnd</UML:Stereotype.baseClass>
+ </UML:Stereotype>
+ <UML:Stereotype xmi.id=".:0000000000000825" name="global" isSpecification="false" isRoot="false" isLeaf="false" isAbstract="false">
+ <UML:Stereotype.baseClass>AssociationEnd</UML:Stereotype.baseClass>
+ </UML:Stereotype>
+ <UML:Stereotype xmi.id=".:0000000000000826" name="local" isSpecification="false" isRoot="false" isLeaf="false" isAbstract="false">
+ <UML:Stereotype.baseClass>AssociationEnd</UML:Stereotype.baseClass>
+ </UML:Stereotype>
+ <UML:Stereotype xmi.id=".:0000000000000827" name="parameter" isSpecification="false" isRoot="false" isLeaf="false" isAbstract="false">
+ <UML:Stereotype.baseClass>AssociationEnd</UML:Stereotype.baseClass>
+ </UML:Stereotype>
+ <UML:Stereotype xmi.id=".:0000000000000828" name="self" isSpecification="false" isRoot="false" isLeaf="false" isAbstract="false">
+ <UML:Stereotype.baseClass>AssociationEnd</UML:Stereotype.baseClass>
+ </UML:Stereotype>
+ <UML:Stereotype xmi.id=".:0000000000000829" name="become" isSpecification="false" isRoot="false" isLeaf="false" isAbstract="false">
+ <UML:Stereotype.baseClass>Flow</UML:Stereotype.baseClass>
+ </UML:Stereotype>
+ <UML:Stereotype xmi.id=".:000000000000082A" name="copy" isSpecification="false" isRoot="false" isLeaf="false" isAbstract="false">
+ <UML:Stereotype.baseClass>Flow</UML:Stereotype.baseClass>
+ </UML:Stereotype>
+ <UML:Stereotype xmi.id=".:000000000000082B" name="create" isSpecification="false" isRoot="false" isLeaf="false" isAbstract="false">
+ <UML:Stereotype.baseClass>Usage</UML:Stereotype.baseClass>
+ <UML:Stereotype.baseClass>BehavioralFeature</UML:Stereotype.baseClass>
+ <UML:Stereotype.baseClass>CallEvent</UML:Stereotype.baseClass>
+ </UML:Stereotype>
+ <UML:Stereotype xmi.id=".:000000000000082C" name="call" isSpecification="false" isRoot="false" isLeaf="false" isAbstract="false">
+ <UML:Stereotype.baseClass>Usage</UML:Stereotype.baseClass>
+ </UML:Stereotype>
+ <UML:Stereotype xmi.id=".:000000000000082D" name="instantiate" isSpecification="false" isRoot="false" isLeaf="false" isAbstract="false">
+ <UML:Stereotype.baseClass>Usage</UML:Stereotype.baseClass>
+ </UML:Stereotype>
+ <UML:Stereotype xmi.id=".:000000000000082E" name="send" isSpecification="false" isRoot="false" isLeaf="false" isAbstract="false">
+ <UML:Stereotype.baseClass>Usage</UML:Stereotype.baseClass>
+ </UML:Stereotype>
+ <UML:Stereotype xmi.id=".:0000000000000830" name="destroy" isSpecification="false" isRoot="false" isLeaf="false" isAbstract="false">
+ <UML:Stereotype.baseClass>BehavioralFeature</UML:Stereotype.baseClass>
+ <UML:Stereotype.baseClass>CallEvent</UML:Stereotype.baseClass>
+ </UML:Stereotype>
+ <UML:Stereotype xmi.id=".:0000000000000833" name="derive" isSpecification="false" isRoot="false" isLeaf="false" isAbstract="false">
+ <UML:Stereotype.baseClass>Abstraction</UML:Stereotype.baseClass>
+ </UML:Stereotype>
+ <UML:Stereotype xmi.id=".:0000000000000834" name="realize" isSpecification="false" isRoot="false" isLeaf="false" isAbstract="false">
+ <UML:Stereotype.baseClass>Abstraction</UML:Stereotype.baseClass>
+ </UML:Stereotype>
+ <UML:Stereotype xmi.id=".:0000000000000835" name="refine" isSpecification="false" isRoot="false" isLeaf="false" isAbstract="false">
+ <UML:Stereotype.baseClass>Abstraction</UML:Stereotype.baseClass>
+ </UML:Stereotype>
+ <UML:Stereotype xmi.id=".:0000000000000836" name="trace" isSpecification="false" isRoot="false" isLeaf="false" isAbstract="false">
+ <UML:Stereotype.baseClass>Abstraction</UML:Stereotype.baseClass>
+ </UML:Stereotype>
+ <UML:Stereotype xmi.id=".:0000000000000837" name="document" isSpecification="false" isRoot="false" isLeaf="false" isAbstract="false">
+ <UML:Stereotype.baseClass>Abstraction</UML:Stereotype.baseClass>
+ </UML:Stereotype>
+ <UML:Stereotype xmi.id=".:0000000000000838" name="executable" isSpecification="false" isRoot="false" isLeaf="false" isAbstract="false">
+ <UML:Stereotype.baseClass>Abstraction</UML:Stereotype.baseClass>
+ </UML:Stereotype>
+ <UML:Stereotype xmi.id=".:0000000000000839" name="file" isSpecification="false" isRoot="false" isLeaf="false" isAbstract="false">
+ <UML:Stereotype.baseClass>Abstraction</UML:Stereotype.baseClass>
+ </UML:Stereotype>
+ <UML:Stereotype xmi.id=".:000000000000083A" name="library" isSpecification="false" isRoot="false" isLeaf="false" isAbstract="false">
+ <UML:Stereotype.baseClass>Abstraction</UML:Stereotype.baseClass>
+ </UML:Stereotype>
+ <UML:Stereotype xmi.id=".:000000000000083B" name="table" isSpecification="false" isRoot="false" isLeaf="false" isAbstract="false">
+ <UML:Stereotype.baseClass>Abstraction</UML:Stereotype.baseClass>
+ </UML:Stereotype>
+ <UML:Stereotype xmi.id=".:000000000000083C" name="facade" isSpecification="false" isRoot="false" isLeaf="false" isAbstract="false">
+ <UML:Stereotype.baseClass>Package</UML:Stereotype.baseClass>
+ </UML:Stereotype>
+ <UML:Stereotype xmi.id=".:000000000000083D" name="framework" isSpecification="false" isRoot="false" isLeaf="false" isAbstract="false">
+ <UML:Stereotype.baseClass>Package</UML:Stereotype.baseClass>
+ </UML:Stereotype>
+ <UML:Stereotype xmi.id=".:000000000000083E" name="metamodel" isSpecification="false" isRoot="false" isLeaf="false" isAbstract="false">
+ <UML:Stereotype.baseClass>Package</UML:Stereotype.baseClass>
+ </UML:Stereotype>
+ <UML:Stereotype xmi.id=".:000000000000083F" name="stub" isSpecification="false" isRoot="false" isLeaf="false" isAbstract="false">
+ <UML:Stereotype.baseClass>Package</UML:Stereotype.baseClass>
+ </UML:Stereotype>
+ <UML:Stereotype xmi.id=".:0000000000000840" name="implementation" isSpecification="false" isRoot="false" isLeaf="false" isAbstract="false">
+ <UML:Stereotype.baseClass>Generalization</UML:Stereotype.baseClass>
+ <UML:Stereotype.baseClass>Class</UML:Stereotype.baseClass>
+ </UML:Stereotype>
+ <UML:Stereotype xmi.id=".:0000000000000842" name="type" isSpecification="false" isRoot="false" isLeaf="false" isAbstract="false">
+ <UML:Stereotype.baseClass>Class</UML:Stereotype.baseClass>
+ </UML:Stereotype>
+ <UML:Stereotype xmi.id=".:0000000000000843" name="implicit" isSpecification="false" isRoot="false" isLeaf="false" isAbstract="false">
+ <UML:Stereotype.baseClass>Association</UML:Stereotype.baseClass>
+ </UML:Stereotype>
+ <UML:Stereotype xmi.id=".:0000000000000844" name="invariant" isSpecification="false" isRoot="false" isLeaf="false" isAbstract="false">
+ <UML:Stereotype.baseClass>Constraint</UML:Stereotype.baseClass>
+ </UML:Stereotype>
+ <UML:Stereotype xmi.id=".:0000000000000845" name="postcondition" isSpecification="false" isRoot="false" isLeaf="false" isAbstract="false">
+ <UML:Stereotype.baseClass>Constraint</UML:Stereotype.baseClass>
+ </UML:Stereotype>
+ <UML:Stereotype xmi.id=".:0000000000000846" name="precondition" isSpecification="false" isRoot="false" isLeaf="false" isAbstract="false">
+ <UML:Stereotype.baseClass>Constraint</UML:Stereotype.baseClass>
+ </UML:Stereotype>
+ <UML:Stereotype xmi.id=".:0000000000000847" name="metaclass" isSpecification="false" isRoot="false" isLeaf="false" isAbstract="false">
+ <UML:Stereotype.baseClass>Class</UML:Stereotype.baseClass>
+ </UML:Stereotype>
+ <UML:Stereotype xmi.id=".:0000000000000848" name="powertype" isSpecification="false" isRoot="false" isLeaf="false" isAbstract="false">
+ <UML:Stereotype.baseClass>Class</UML:Stereotype.baseClass>
+ </UML:Stereotype>
+ <UML:Stereotype xmi.id=".:0000000000000849" name="process" isSpecification="false" isRoot="false" isLeaf="false" isAbstract="false">
+ <UML:Stereotype.baseClass>Classifier</UML:Stereotype.baseClass>
+ </UML:Stereotype>
+ <UML:Stereotype xmi.id=".:000000000000084A" name="thread" isSpecification="false" isRoot="false" isLeaf="false" isAbstract="false">
+ <UML:Stereotype.baseClass>Classifier</UML:Stereotype.baseClass>
+ </UML:Stereotype>
+ <UML:Stereotype xmi.id=".:000000000000084B" name="utility" isSpecification="false" isRoot="false" isLeaf="false" isAbstract="false">
+ <UML:Stereotype.baseClass>Classifier</UML:Stereotype.baseClass>
+ </UML:Stereotype>
+ <UML:Stereotype xmi.id=".:000000000000084C" name="requirement" isSpecification="false" isRoot="false" isLeaf="false" isAbstract="false">
+ <UML:Stereotype.baseClass>Comment</UML:Stereotype.baseClass>
+ </UML:Stereotype>
+ <UML:Stereotype xmi.id=".:000000000000084D" name="responsibility" isSpecification="false" isRoot="false" isLeaf="false" isAbstract="false">
+ <UML:Stereotype.baseClass>Comment</UML:Stereotype.baseClass>
+ </UML:Stereotype>
+ <UML:Stereotype xmi.id=".:000000000000084E" name="topLevel" isSpecification="false" isRoot="false" isLeaf="false" isAbstract="false">
+ <UML:Stereotype.baseClass>Package</UML:Stereotype.baseClass>
+ </UML:Stereotype>
+ <UML:Stereotype xmi.id=".:000000000000084F" name="systemModel" isSpecification="false" isRoot="false" isLeaf="false" isAbstract="false">
+ <UML:Stereotype.baseClass>Package</UML:Stereotype.baseClass>
+ </UML:Stereotype>
+ <UML:Stereotype xmi.id=".:000000000000086A" name="signalflow" isSpecification="false" isRoot="false" isLeaf="false" isAbstract="false">
+ <UML:Stereotype.baseClass>ObjectFlowState</UML:Stereotype.baseClass>
+ </UML:Stereotype>
+ <UML:Stereotype xmi.id=".:0000000000000874" name="appliedProfile" isSpecification="false" isRoot="false" isLeaf="false" isAbstract="false">
+ <UML:Stereotype.baseClass>Package</UML:Stereotype.baseClass>
+ <UML:Stereotype.baseClass>Dependency</UML:Stereotype.baseClass>
+ </UML:Stereotype>
+ <UML:Stereotype xmi.id=".:0000000000000875" name="auxiliary" isSpecification="false" isRoot="false" isLeaf="false" isAbstract="false">
+ <UML:Stereotype.baseClass>Class</UML:Stereotype.baseClass>
+ </UML:Stereotype>
+ <UML:Stereotype xmi.id=".:0000000000000876" name="modelLibrary" isSpecification="false" isRoot="false" isLeaf="false" isAbstract="false">
+ <UML:Stereotype.baseClass>Package</UML:Stereotype.baseClass>
+ <UML:Stereotype.baseClass>Dependency</UML:Stereotype.baseClass>
+ </UML:Stereotype>
+ <UML:Stereotype xmi.id=".:0000000000000877" name="profile" isSpecification="false" isRoot="false" isLeaf="false" isAbstract="false">
+ <UML:Stereotype.baseClass>Package</UML:Stereotype.baseClass>
+ </UML:Stereotype>
+ <UML:Stereotype xmi.id=".:0000000000000878" name="source" isSpecification="false" isRoot="false" isLeaf="false" isAbstract="false">
+ <UML:Stereotype.baseClass>Abstraction</UML:Stereotype.baseClass>
+ </UML:Stereotype>
+ <UML:Stereotype xmi.id=".:0000000000000879" name="stateInvariant" isSpecification="false" isRoot="false" isLeaf="false" isAbstract="false">
+ <UML:Stereotype.baseClass>Constraint</UML:Stereotype.baseClass>
+ </UML:Stereotype>
+ <UML:TagDefinition xmi.id=".:000000000000087C" name="documentation" isSpecification="false" tagType="String">
+ <UML:TagDefinition.multiplicity>
+ <UML:Multiplicity xmi.id=".:000000000000087D">
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id=".:000000000000087E" lower="0" upper="1"/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:TagDefinition.multiplicity>
+ </UML:TagDefinition>
+ <UML:DataType xmi.id="-84-17--56-5-43645a83:11466542d86:-8000:000000000000087C" name="Integer" isSpecification="false" isRoot="false" isLeaf="false" isAbstract="false"/>
+ <UML:DataType xmi.id="-84-17--56-5-43645a83:11466542d86:-8000:000000000000087D" name="UnlimitedInteger" isSpecification="false" isRoot="false" isLeaf="false" isAbstract="false"/>
+ <UML:DataType xmi.id="-84-17--56-5-43645a83:11466542d86:-8000:000000000000087E" name="String" isSpecification="false" isRoot="false" isLeaf="false" isAbstract="false"/>
+ <UML:Enumeration xmi.id="-84-17--56-5-43645a83:11466542d86:-8000:0000000000000880" name="Boolean" isSpecification="false" isRoot="false" isLeaf="false" isAbstract="false">
+ <UML:Enumeration.literal>
+ <UML:EnumerationLiteral xmi.id="-84-17--56-5-43645a83:11466542d86:-8000:0000000000000881" name="TRUE" isSpecification="false"/>
+ <UML:EnumerationLiteral xmi.id="-84-17--56-5-43645a83:11466542d86:-8000:0000000000000882" name="FALSE" isSpecification="false"/>
+ </UML:Enumeration.literal>
+ </UML:Enumeration>
+ </UML:Namespace.ownedElement>
+ </UML:Model>
+ </XMI.content>
+</XMI>
\ No newline at end of file
1
0
r763 - in trunk/eugene/src/main/java/org/nuiton/eugene: . java models/object models/object/xml
by tchemit@users.nuiton.org Dec. 17, 2009
by tchemit@users.nuiton.org Dec. 17, 2009
Dec. 17, 2009
Author: tchemit
Date: 2009-12-17 02:08:01 +0100 (Thu, 17 Dec 2009)
New Revision: 763
Added:
trunk/eugene/src/main/java/org/nuiton/eugene/java/AnnotationsManager.java
trunk/eugene/src/main/java/org/nuiton/eugene/java/AnnotationsManagerExtension.java
Modified:
trunk/eugene/src/main/java/org/nuiton/eugene/GeneratorUtil.java
trunk/eugene/src/main/java/org/nuiton/eugene/ImportsManager.java
trunk/eugene/src/main/java/org/nuiton/eugene/java/ImportsManagerExtension.java
trunk/eugene/src/main/java/org/nuiton/eugene/java/JavaBuilder.java
trunk/eugene/src/main/java/org/nuiton/eugene/java/JavaGenerator.java
trunk/eugene/src/main/java/org/nuiton/eugene/java/ObjectModelTransformerToJava.java
trunk/eugene/src/main/java/org/nuiton/eugene/models/object/ObjectModel.java
trunk/eugene/src/main/java/org/nuiton/eugene/models/object/xml/ObjectModelElementImpl.java
trunk/eugene/src/main/java/org/nuiton/eugene/models/object/xml/ObjectModelImpl.java
Log:
- no more javadoc warning :) (but still a lot to do on it...)
- introduce annotations extension and use it in JavaBuilder and the java generators api
- little improvement codes in importsManagerExtension
- comment unused assigments
Modified: trunk/eugene/src/main/java/org/nuiton/eugene/GeneratorUtil.java
===================================================================
--- trunk/eugene/src/main/java/org/nuiton/eugene/GeneratorUtil.java 2009-12-17 00:03:00 UTC (rev 762)
+++ trunk/eugene/src/main/java/org/nuiton/eugene/GeneratorUtil.java 2009-12-17 01:08:01 UTC (rev 763)
@@ -60,7 +60,8 @@
}
/**
- * return class name fr given fully qualified name (return given name if it is not fully qualified)
+ * @param qualifiedName the fully qualified name to test
+ * @return class name fr given fully qualified name (return given name if it is not fully qualified)
* eg : org.nuiton.eugene.models.ObjectClass -> ObjectClass
* eg : ObjectClass-> ObjectClass
*/
@@ -75,8 +76,8 @@
/**
*
- * @param qualifiedName
- * @return
+ * @param qualifiedName the fully qualified name to test
+ * @return the filename for the given qualified name.
*/
public static String getFilenameFromQualifiedName(String qualifiedName) {
return qualifiedName.replace('.', File.separatorChar);
@@ -84,8 +85,9 @@
/**
* return all classifiers belonging to the given package recursively. The Collection may be empty.
- * @param model
- * @param packageName
+ *
+ * @param model the model where to look at
+ * @param packageName the package name to set for classifiers
* @see ObjectModelClassifier
*
* @return a Collection containing all classifiers belonging to the given package recursively.
@@ -102,8 +104,8 @@
}
/**
- * @param attribute
- * @return
+ * @param attribute the attribute to test
+ * @return the type of the given attribute
* @see #getAttributeType(ObjectModelParameter, boolean)
*/
public static String getAttributeType(ObjectModelParameter attribute) {
@@ -114,8 +116,8 @@
* Retourne le type de l'attribut, c-a-d une List ou une collection
* ou le type defini si la cardinalité n'est pas multiple
*
- * @param attribute
- * @param useGenerics
+ * @param attribute the attribute to test
+ * @param useGenerics {@code true} if the attribute use a generic type
* @return attribute type
*/
public static String getAttributeType(ObjectModelParameter attribute,
@@ -123,7 +125,7 @@
String result;
if (attribute instanceof ObjectModelAttribute
&& isNMultiplicity((ObjectModelAttribute) attribute)) {
- if (((ObjectModelAttribute) attribute).isOrdered()) {
+ if (attribute.isOrdered()) {
result = "java.util.List";
} else {
result = "java.util.Collection";
@@ -139,7 +141,7 @@
/**
* Indicates if the specified attribute has a primitive type (byte, boolean, ...)
- * @param attribute
+ * @param attribute the attribute to test
* @return true if the attribute has a primitive type
*/
public static boolean isPrimitiveAttributeType(
@@ -156,7 +158,7 @@
/**
* return an init value for the specified attribute
- * @param attribute
+ * @param attribute the attribute to test
* @return a String with the corresponding attribute init value
*/
public static String getInitValue(ObjectModelAttribute attribute) {
@@ -261,7 +263,7 @@
}
/**
- * @param params
+ * @param params the paramters to treate
* @return la chaine de caractere dont on a besoin pour la declaration
* des parametres d'une methode.
*/
@@ -270,8 +272,7 @@
StringBuffer result = new StringBuffer();
for (Iterator<ObjectModelParameter> j = params.iterator(); j.hasNext();) {
ObjectModelParameter parameter = j.next();
- result.append(getAttributeType(parameter) + " "
- + parameter.getName());
+ result.append(getAttributeType(parameter)).append(" ").append(parameter.getName());
if (j.hasNext()) {
result.append(", ");
}
@@ -280,7 +281,7 @@
}
/**
- * @param params
+ * @param params the paramters to treate
* @return la chaine de caractere qui represente chaque nom de parametre
* separer par des ','.
*/
@@ -298,7 +299,7 @@
}
/**
- * @param attribute
+ * @param attribute the attribute to test
* @return vrai si la cardinalite de l'attribut est superieur a 1, c-a-d
* si MaxMultiplicity == -1 ou > 1
*/
@@ -311,22 +312,19 @@
}
/**
- * @param attribute
+ * @param attribute the attribute to test
* @return true is the multiplicity of the given attribute is exactly 1
*/
public static boolean isOneMultiplicity(ObjectModelAttribute attribute) {
- if (attribute == null) {
- return false;
- }
- return ((attribute.getMinMultiplicity() == 1) && (attribute
- .getMaxMultiplicity() == 1));
+ return attribute != null && attribute.getMinMultiplicity() == 1 &&
+ attribute.getMaxMultiplicity() == 1;
}
/**
*
* @deprecated use StringUtils.capitalize instead
- * @param word
- * @return
+ * @param word the word to capitalize
+ * @return the capitalized word
*/
@Deprecated
public static String toUpperCaseFirstLetter(String word) {
@@ -347,15 +345,15 @@
/**
*
- * @param word
- * @return
+ * @param word the word to decapitalize
+ * @return the decapitalized word
*/
public static String toLowerCaseFirstLetter(String word) {
return word.substring(0, 1).toLowerCase() + word.substring(1);
}
/**
- * @param attribute
+ * @param attribute the attribute to test
* @return true if the given attribute is a composition (composant of the reverse attribute)
*/
public static boolean isComposition(ObjectModelAttribute attribute) {
@@ -438,7 +436,7 @@
}
/**
- * @param operation
+ * @param operation the operation to look at
* @return la chaine de caractere dont on a besoin pour la declaration
* des parametres d'une methode.
*/
@@ -449,8 +447,7 @@
Collection<ObjectModelParameter> params = operation.getParameters();
for (Iterator<ObjectModelParameter> j = params.iterator(); j.hasNext();) {
ObjectModelParameter parameter = j.next();
- result.append(getAttributeType(parameter) + " "
- + parameter.getName());
+ result.append(getAttributeType(parameter)).append(" ").append(parameter.getName());
if (j.hasNext()) {
result.append(", ");
}
@@ -459,7 +456,7 @@
}
/**
- * @param operation
+ * @param operation the operation to look at
* @return la chaine de caractere qui represente chaque nom de parametre
* separer par des ','.
*/
@@ -478,7 +475,7 @@
}
/**
- * @param clazz
+ * @param clazz the class where to look at
* @return sous forme de String la liste des déclarations des attributes d'une classe donnée
*/
public static String getClassAttributesListDeclaration(
@@ -488,7 +485,7 @@
Collection<ObjectModelAttribute> params = clazz.getAttributes();
for (Iterator<ObjectModelAttribute> j = params.iterator(); j.hasNext();) {
ObjectModelAttribute attr = j.next();
- result.append(getAttributeType(attr, true) + " " + attr.getName());
+ result.append(getAttributeType(attr, true)).append(" ").append(attr.getName());
if (j.hasNext()) {
result.append(", ");
}
@@ -567,7 +564,7 @@
* serialVersionUID. Exemple, returns "123456789L".
* This id will change only if the type or the order of an attribute
* changes.
- * @param clazz
+ * @param clazz the class to use
* @return the generated serialVersionUID
*/
public static String computeSerialVersionUID(ObjectModelClass clazz) {
Modified: trunk/eugene/src/main/java/org/nuiton/eugene/ImportsManager.java
===================================================================
--- trunk/eugene/src/main/java/org/nuiton/eugene/ImportsManager.java 2009-12-17 00:03:00 UTC (rev 762)
+++ trunk/eugene/src/main/java/org/nuiton/eugene/ImportsManager.java 2009-12-17 01:08:01 UTC (rev 763)
@@ -34,6 +34,7 @@
* generated code.
*
* @author thimel, chemit
+ * TODO-TC20091217 Move this to java package, this is specific to java generation
*/
public class ImportsManager {
Added: trunk/eugene/src/main/java/org/nuiton/eugene/java/AnnotationsManager.java
===================================================================
--- trunk/eugene/src/main/java/org/nuiton/eugene/java/AnnotationsManager.java (rev 0)
+++ trunk/eugene/src/main/java/org/nuiton/eugene/java/AnnotationsManager.java 2009-12-17 01:08:01 UTC (rev 763)
@@ -0,0 +1,61 @@
+package org.nuiton.eugene.java;
+
+import org.nuiton.eugene.models.object.ObjectModelElement;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * To manage annotations for any {@link org.nuiton.eugene.models.object.ObjectModelElement} of a classifier.
+ * <p/>
+ * Created: 17 déc. 2009
+ *
+ * @author Tony Chemit <chemit(a)codelutin.com> Copyright Code Lutin
+ * @version $Revision$
+ * <p/>
+ * Mise a jour: $Date$ par :
+ * $Author: tchemit $
+ * @since 2.0.0
+ */
+public class AnnotationsManager {
+
+ protected Map<ObjectModelElement, List<String>> annotations;
+
+ /**
+ * Add the {@code annotation} for the given {@code element} of the classifier.
+ *
+ * @param element the element where to register the annotation
+ * @param annotation the annotation to register
+ */
+ public void addAnnotation(ObjectModelElement element, String annotation) {
+ Map<ObjectModelElement, List<String>> map = getAnnotations();
+ List<String> list = map.get(element);
+ if (list == null) {
+ list = new ArrayList<String>();
+ map.put(element, list);
+ }
+ list.add(annotation);
+ }
+
+ /**
+ * Obtain the array of annotations registred for a given element of the classifier.
+ *
+ * @param element the element where to search for annotations
+ * @return the annotations for the element (empty arry if none found
+ */
+ public String[] getAnnotations(ObjectModelElement element) {
+ Map<ObjectModelElement, List<String>> map = getAnnotations();
+ List<String> list = map.get(element);
+ return list == null ? new String[0] : list.toArray(new String[list.size()]);
+ }
+
+ protected Map<ObjectModelElement, List<String>> getAnnotations() {
+ if (annotations == null) {
+ annotations = new HashMap<ObjectModelElement, List<String>>();
+ }
+ return annotations;
+ }
+
+}
Property changes on: trunk/eugene/src/main/java/org/nuiton/eugene/java/AnnotationsManager.java
___________________________________________________________________
Added: svn:keywords
+ "Author Date Id Revision HeadURL
Added: trunk/eugene/src/main/java/org/nuiton/eugene/java/AnnotationsManagerExtension.java
===================================================================
--- trunk/eugene/src/main/java/org/nuiton/eugene/java/AnnotationsManagerExtension.java (rev 0)
+++ trunk/eugene/src/main/java/org/nuiton/eugene/java/AnnotationsManagerExtension.java 2009-12-17 01:08:01 UTC (rev 763)
@@ -0,0 +1,80 @@
+package org.nuiton.eugene.java;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.nuiton.eugene.models.object.ObjectModelClassifier;
+import org.nuiton.eugene.models.object.ObjectModelElement;
+
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * Created: 17 déc. 2009
+ *
+ * @author Tony Chemit <chemit(a)codelutin.com> Copyright Code Lutin
+ * @version $Revision$
+ * <p/>
+ * Mise a jour: $Date$ par :
+ * $Author: tchemit $
+ */
+public class AnnotationsManagerExtension {
+
+ private static final Log log = LogFactory.getLog(AnnotationsManagerExtension.class);
+
+ /**
+ * Extension static used to identify ImportsManagerExtension in ObjectModel
+ */
+ public static final String OBJECTMODEL_EXTENSION = "annotations";
+
+ /**
+ * Map of ImportsManager with key equals to the classifier qualified name associated to
+ * the ImportsManager
+ */
+ protected Map<String, AnnotationsManager> managers;
+
+ /**
+ * Get the registred annotations for the given {@code element} in the given {@code classifier}.
+ *
+ * <b>Note:</b> The method always returns a {@code none null} value, but
+ * an empty array when no annotation when no annotation found for the element.
+ *
+ * @param classifier the classifier where is the element
+ * @param element the element on which searching annotations
+ * @return the array of annotation registred or an empty array if none.
+ */
+ public String[] getAnnotations(ObjectModelClassifier classifier, ObjectModelElement element) {
+ AnnotationsManager annotationsManager = getManager(classifier);
+ String[] result = null;
+ if (annotationsManager != null) {
+ result = annotationsManager.getAnnotations(element);
+ }
+ return result == null ? new String[]{} : result;
+ }
+
+ /**
+ * Get the ImportsManager associated to the classifier. If not exist, it will be created.
+ *
+ * @param classifier reference for the ImportsManager
+ * @return the importsManager associated to the classifier (never null)
+ */
+ public AnnotationsManager getManager(ObjectModelClassifier classifier) {
+ Map<String, AnnotationsManager> managers = getManagers();
+ String fqn = classifier.getQualifiedName();
+ AnnotationsManager manager = managers.get(fqn);
+ if (manager == null) {
+ manager = new AnnotationsManager();
+ managers.put(fqn, manager);
+ if (log.isDebugEnabled()) {
+ log.debug("Add new annotationsManager for : " + fqn);
+ }
+ }
+ return manager;
+ }
+
+ protected Map<String, AnnotationsManager> getManagers() {
+ if (managers == null) {
+ managers = new HashMap<String, AnnotationsManager>();
+ }
+ return managers;
+ }
+}
Property changes on: trunk/eugene/src/main/java/org/nuiton/eugene/java/AnnotationsManagerExtension.java
___________________________________________________________________
Added: svn:keywords
+ "Author Date Id Revision HeadURL
Modified: trunk/eugene/src/main/java/org/nuiton/eugene/java/ImportsManagerExtension.java
===================================================================
--- trunk/eugene/src/main/java/org/nuiton/eugene/java/ImportsManagerExtension.java 2009-12-17 00:03:00 UTC (rev 762)
+++ trunk/eugene/src/main/java/org/nuiton/eugene/java/ImportsManagerExtension.java 2009-12-17 01:08:01 UTC (rev 763)
@@ -21,14 +21,15 @@
package org.nuiton.eugene.java;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.nuiton.eugene.ImportsManager;
import org.nuiton.eugene.models.object.ObjectModelClassifier;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
/**
* ImportsManagerExtension
*
@@ -58,24 +59,19 @@
protected Map<String, ImportsManager> managers;
/**
- * Public constructor for ImportsManagerExtension
- */
- public ImportsManagerExtension() {
- this.managers = new HashMap<String, ImportsManager>();
- }
-
- /**
* Get the ImportsManager associated to the classifier. If not exist, it will be created.
* @param classifier reference for the ImportsManager
* @return the importsManager associated to the classifier (never null)
*/
public ImportsManager getManager(ObjectModelClassifier classifier) {
- ImportsManager manager = this.managers.get(classifier.getQualifiedName());
+ Map<String, ImportsManager> managers = getManagers();
+ String fqn = classifier.getQualifiedName();
+ ImportsManager manager = managers.get(fqn);
if (manager == null) {
manager = new ImportsManager();
- this.managers.put(classifier.getQualifiedName(), manager);
+ managers.put(fqn, manager);
if (log.isDebugEnabled()) {
- log.debug("Add new importsManager for : " + classifier.getQualifiedName());
+ log.debug("Add new importsManager for : " + fqn);
}
}
return manager;
@@ -86,8 +82,15 @@
* @param classifier reference for the imports
* @return a List of String which contains all imports for the classifier
*/
- public List<String> getImports(ObjectModelClassifier classifier) throws IllegalArgumentException {
+ public List<String> getImports(ObjectModelClassifier classifier) {
ImportsManager manager = getManager(classifier);
return manager.getImports(classifier.getPackageName());
}
+
+ protected Map<String, ImportsManager> getManagers() {
+ if (managers == null) {
+ managers = new HashMap<String, ImportsManager>();
+ }
+ return managers;
+ }
}
Modified: trunk/eugene/src/main/java/org/nuiton/eugene/java/JavaBuilder.java
===================================================================
--- trunk/eugene/src/main/java/org/nuiton/eugene/java/JavaBuilder.java 2009-12-17 00:03:00 UTC (rev 762)
+++ trunk/eugene/src/main/java/org/nuiton/eugene/java/JavaBuilder.java 2009-12-17 01:08:01 UTC (rev 763)
@@ -59,14 +59,20 @@
/**
* ObjectModel extension to manage imports : one ImportsManager by classifier
*/
- protected ImportsManagerExtension managers;
+ protected ImportsManagerExtension importsManagerExtension;
+ /**
+ * ObjectModel extension to manage imports : one ImportsManager by classifier
+ */
+ protected AnnotationsManagerExtension annotationsManagerExtension;
@SuppressWarnings("unchecked")
public JavaBuilder(String modelName) {
this.modelBuilder = new ObjectModelBuilder(modelName);
- this.managers = getModel().getExtension(
+ this.importsManagerExtension = getModel().getExtension(
ImportsManagerExtension.OBJECTMODEL_EXTENSION, ImportsManagerExtension.class);
+ this.annotationsManagerExtension = getModel().getExtension(
+ AnnotationsManagerExtension.OBJECTMODEL_EXTENSION, AnnotationsManagerExtension.class);
}
/**
@@ -101,7 +107,7 @@
if (imports == null) {
return;
}
- ImportsManager manager = managers.getManager(classifier);
+ ImportsManager manager = importsManagerExtension.getManager(classifier);
imports = imports.trim();
// remove ... operator
if (imports.endsWith("...")) {
@@ -116,10 +122,30 @@
}
/**
+ * Add an annotation on an element of a classifier.
+ *
+ * @param classifier where the annotation will be added.
+ * @param element element on which add annotation
+ * @param annotation annotation to add
+ */
+ public void addAnnotation(ObjectModelClassifier classifier, ObjectModelElement element, String annotation) {
+ if (annotation == null) {
+ return;
+ }
+ AnnotationsManager manager = annotationsManagerExtension.getManager(classifier);
+ annotation = annotation.trim();
+
+ manager.addAnnotation(element, annotation);
+ if (log.isDebugEnabled()) {
+ log.debug("Add annotation for <" + classifier.getQualifiedName() + ":" + element.getName() + "> : " + annotation);
+ }
+ }
+
+ /**
* Create a new class in the model.
*
* @param name
- * @param packageName
+ * @param packageName package's name of the class to create
* @return a new ObjectModelClass
* @see org.nuiton.eugene.models.object.xml.ObjectModelBuilder#createClass(java.lang.String, java.lang.String,org.nuiton.eugene.models.object.ObjectModelModifier...)
*/
@@ -131,7 +157,7 @@
* Create a new abstract class in the model.
*
* @param name
- * @param packageName
+ * @param packageName package's name of the class to create
* @return a new ObjectModelClass
* @see org.nuiton.eugene.models.object.xml.ObjectModelBuilder#createClass(java.lang.String,java.lang.String, org.nuiton.eugene.models.object.ObjectModelModifier...)
*/
@@ -143,7 +169,7 @@
* Create a new interface in the model
*
* @param name
- * @param packageName
+ * @param packageName package's name of the interface to create
* @return a new ObjectModelInterface
* @see org.nuiton.eugene.models.object.xml.ObjectModelBuilder#createInterface(java.lang.String, java.lang.String)
*/
@@ -155,7 +181,7 @@
* Create a new enumration in the model
*
* @param name
- * @param packageName
+ * @param packageName package's name of the enumeration to create
* @return a new ObjectModelEnumeration
*/
public ObjectModelEnumeration createEnumeration(String name, String packageName) {
@@ -373,6 +399,6 @@
}
public void addLiteral(ObjectModelEnumeration classifier, String name) {
- modelBuilder.addLiteral(classifier,name);
+ modelBuilder.addLiteral(classifier, name);
}
}
Modified: trunk/eugene/src/main/java/org/nuiton/eugene/java/JavaGenerator.java
===================================================================
--- trunk/eugene/src/main/java/org/nuiton/eugene/java/JavaGenerator.java 2009-12-17 00:03:00 UTC (rev 762)
+++ trunk/eugene/src/main/java/org/nuiton/eugene/java/JavaGenerator.java 2009-12-17 01:08:01 UTC (rev 763)
@@ -86,9 +86,10 @@
/**
* Generate from all classes.
+ *
* @param output Writer for generating the java file
* @param clazz Class to manage for creating an output file
- * @throws IOException
+ * @throws IOException if any pb while writing file
*/
@Override
public void generateFromClass(Writer output, ObjectModelClass clazz) throws IOException {
@@ -100,10 +101,10 @@
// Imports, package et documentation
this.generateHeader(output, clazz);
-
+
String abstractStr = clazz.isAbstract() ? " abstract " : " ";
String className = clazz.getName();
-
+
String extend = "";
Iterator<ObjectModelClass> j = clazz.getSuperclasses().iterator();
if (j.hasNext()) {
@@ -123,6 +124,7 @@
if (log.isInfoEnabled()) {
log.info(className+" : super : "+extend+", interfaces : "+implement);
}
+ generateAnnotations(output, clazz, clazz);
/*{
<%=prefix%>public<%=abstractStr%>class <%=className%>}*/
@@ -145,8 +147,8 @@
}
generateInnerClassifiers(output, clazz.getInnerClassifiers());
- generateAttributes(output, clazz.getAttributes());
- generateOperations(output, clazz.getOperations());
+ generateAttributes(output, clazz,clazz.getAttributes());
+ generateOperations(output, clazz,clazz.getOperations());
/*{
<%=prefix%>} //<%=className%>
@@ -174,6 +176,7 @@
extend += ", ";
}
}
+ generateAnnotations(output, interfacez, interfacez);
/*{
<%=prefix%>public interface <%=interfaceName%>}*/
@@ -187,13 +190,25 @@
}*/
}
- generateAttributes(output, interfacez.getAttributes());
- generateOperations(output, interfacez.getOperations());
+ generateAttributes(output, interfacez, interfacez.getAttributes());
+ generateOperations(output, interfacez, interfacez.getOperations());
/*{
<%=prefix%>} //<%=interfaceName%>
}*/
}
+ public void generateAnnotations(Writer output,ObjectModelClassifier clazz, ObjectModelElement element) throws IOException {
+ AnnotationsManagerExtension managers = getModel().getExtension(AnnotationsManagerExtension.OBJECTMODEL_EXTENSION,
+ AnnotationsManagerExtension.class);
+ String[] annotations = managers.getAnnotations(clazz,element);
+ for (String annotation : annotations) {
+ if (!annotation.startsWith("@")) {
+ annotation = "@" + annotation;
+ }
+/*{<%=annotation%>
+}*/
+ }
+ }
@Override
public void generateFromEnum(Writer output, ObjectModelEnumeration enumz) throws IOException {
@@ -211,6 +226,7 @@
ObjectModelClassifier p = j.next();
extend += GeneratorUtil.getSimpleName(p.getQualifiedName());
}
+ generateAnnotations(output, enumz, enumz);
/*{
<%=prefix%>public enum <%=enumzName%>}*/
@@ -235,8 +251,8 @@
}*/
}
}
- this.generateAttributes(output, enumz.getAttributes());
- this.generateOperations(output, enumz.getOperations());
+ this.generateAttributes(output, enumz, enumz.getAttributes());
+ this.generateOperations(output, enumz, enumz.getOperations());
/*{
<%=prefix%>} //<%=enumzName%>
}*/
@@ -280,12 +296,13 @@
}
}
-
+
/**
* Generate Header for a classifier : Package, Documentation, Imports and Classifier signature.
+ *
* @param output Writer for generating the java file
* @param classifier Classifier for generate header
- * @throws IOException
+ * @throws IOException if any pb while writing file
*/
protected void generateHeader(Writer output, ObjectModelClassifier classifier) throws IOException {
if (classifier.isInner()) {
@@ -308,11 +325,13 @@
/**
* Generate attributes from a collection of ObjectModelAttribute.
+ *
* @param output Writer for generating the java file
+ * @param clazz classifier in generation
* @param attributes Collection of ObjectModelAttribute to generate
- * @throws IOException
+ * @throws IOException if any pb while writing file
*/
- protected void generateAttributes(Writer output, Collection<ObjectModelAttribute> attributes) throws IOException {
+ protected void generateAttributes(Writer output,ObjectModelClassifier clazz, Collection<ObjectModelAttribute> attributes) throws IOException {
for (ObjectModelAttribute attr : attributes) {
@@ -344,11 +363,13 @@
/**
* Generate operations from a collection of ObjectModelOperation
+ *
* @param output Writer for generating the java file
+ * @param clazz classifier in generation
* @param operations Collection of ObjectModelOperation to generate
- * @throws IOException
+ * @throws IOException if any pb while writing file
*/
- protected void generateOperations(Writer output, Collection<ObjectModelOperation> operations) throws IOException {
+ protected void generateOperations(Writer output,ObjectModelClassifier clazz, Collection<ObjectModelOperation> operations) throws IOException {
for (ObjectModelOperation op : operations) {
String opName = op.getName();
/*{<%=prefix%> /**
@@ -372,7 +393,7 @@
String opVisibility = op.getVisibility();
String opStatic = op.isStatic() ? "static " : "";
String opAbstract = op.isAbstract() ? "abstract " : "";
-
+
ObjectModelParameter returnParam = op.getReturnParameter();
String opReturn = "";
if (returnParam != null) {
@@ -403,7 +424,7 @@
comma = ", ";
}
/*{)}*/
-
+
comma = " throws ";
for (String exception : exceptions) {
String exceptionName = GeneratorUtil.getSimpleName(exception);
@@ -422,5 +443,5 @@
}
}
}
-
+
}
Modified: trunk/eugene/src/main/java/org/nuiton/eugene/java/ObjectModelTransformerToJava.java
===================================================================
--- trunk/eugene/src/main/java/org/nuiton/eugene/java/ObjectModelTransformerToJava.java 2009-12-17 00:03:00 UTC (rev 762)
+++ trunk/eugene/src/main/java/org/nuiton/eugene/java/ObjectModelTransformerToJava.java 2009-12-17 01:08:01 UTC (rev 763)
@@ -203,4 +203,8 @@
public void setDocumentation(ObjectModelElement element, String documentation) {
builder.setDocumentation(element, documentation);
}
+
+ public void addAnnotation(ObjectModelClassifier classifier, ObjectModelElement element, String annotation) {
+ builder.addAnnotation(classifier, element, annotation);
+ }
}
Modified: trunk/eugene/src/main/java/org/nuiton/eugene/models/object/ObjectModel.java
===================================================================
--- trunk/eugene/src/main/java/org/nuiton/eugene/models/object/ObjectModel.java 2009-12-17 00:03:00 UTC (rev 762)
+++ trunk/eugene/src/main/java/org/nuiton/eugene/models/object/ObjectModel.java 2009-12-17 01:08:01 UTC (rev 763)
@@ -22,7 +22,6 @@
import java.util.Collection;
import java.util.List;
-import org.nuiton.eugene.ImportsManager;
import org.nuiton.eugene.models.Model;
/**
@@ -92,7 +91,7 @@
/**
* Returns the interface corresponding to the given qualified name, or null if the model contains no interface for this qualified name.
- * @param qualifiedInterfaceName - the qualified name of the interface to retrieve.
+ * @param qualifiedInterfaceName the qualified name of the interface to retrieve.
*
* @return the ObjectModelInterface of the found interface, or null if the model contains no interface for this qualified name.
*/
@@ -109,7 +108,7 @@
/**
* Return the enumeration corresponding to the given qualified name
- * @param qualifiedEnumerationName
+ * @param qualifiedEnumerationName the fully qualified name of the enumeration to retrieve.
* @return the ObjectModelEnumeration of the found enumeration or null if the model contains no enumeration for this qualified name.
*/
ObjectModelEnumeration getEnumeration(String qualifiedEnumerationName);
Modified: trunk/eugene/src/main/java/org/nuiton/eugene/models/object/xml/ObjectModelElementImpl.java
===================================================================
--- trunk/eugene/src/main/java/org/nuiton/eugene/models/object/xml/ObjectModelElementImpl.java 2009-12-17 00:03:00 UTC (rev 762)
+++ trunk/eugene/src/main/java/org/nuiton/eugene/models/object/xml/ObjectModelElementImpl.java 2009-12-17 01:08:01 UTC (rev 763)
@@ -71,7 +71,7 @@
/**
* TODO a tester
- * @return
+ * @return the objectModel
*/
protected ObjectModelImpl getModel() {
if (objectModelImpl != null) {
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 2009-12-17 00:03:00 UTC (rev 762)
+++ trunk/eugene/src/main/java/org/nuiton/eugene/models/object/xml/ObjectModelImpl.java 2009-12-17 01:08:01 UTC (rev 763)
@@ -53,7 +53,10 @@
* @plexus.component role="org.nuiton.eugene.models.Model" role-hint="objectmodel"
*/
public class ObjectModelImpl implements ObjectModel {
-
+ /**
+ * logger
+ */
+ private static final Log log = LogFactory.getLog(ObjectModelImpl.class);
protected String name = null;
protected String version = null;
protected Map<String, ObjectModelClass> classes = new HashMap<String, ObjectModelClass>();
@@ -67,7 +70,6 @@
* The key defined must be unique to get the significative extension associated to
*/
private Map<String, Object> extensions = new HashMap<String, Object>();
- private static Log log = LogFactory.getLog(ObjectModelImpl.class);
public void setName(String name) {
this.name = name;
@@ -79,7 +81,7 @@
@Override
public String getVersion() {
- return this.version;
+ return version;
}
public void addClass(ObjectModelClassImpl clazz) {
@@ -104,7 +106,7 @@
// nouvelle classe et l'ajouter à la précédente si nécessaire.
mergeClasses(initialClazz, clazz);
- clazz = initialClazz;
+// clazz = initialClazz;
}
}
//return clazz;
@@ -129,14 +131,14 @@
ObjectModelAssociationClassImpl initialClazz = (ObjectModelAssociationClassImpl) initialElement;
mergeAssociationClasses(initialClazz, clazz);
- clazz = initialClazz;
+// clazz = initialClazz;
}
}
//return clazz;
}
public void addComment(String comment) {
- this.comments.add(comment);
+ comments.add(comment);
}
/**
@@ -238,7 +240,7 @@
ObjectModelInterfaceImpl initialInterfacez = (ObjectModelInterfaceImpl) initialElement;
mergeClassifiers(initialInterfacez, interfacez);
- interfacez = initialInterfacez;
+// interfacez = initialInterfacez;
}
}
//return interfacez;
1
0
Dec. 17, 2009
Author: tchemit
Date: 2009-12-17 01:03:00 +0100 (Thu, 17 Dec 2009)
New Revision: 762
Modified:
trunk/eugene/src/main/java/org/nuiton/eugene/ObjectModelGenerator.java
Log:
javadoc + my bad move a usefull constructor...
Modified: trunk/eugene/src/main/java/org/nuiton/eugene/ObjectModelGenerator.java
===================================================================
--- trunk/eugene/src/main/java/org/nuiton/eugene/ObjectModelGenerator.java 2009-12-16 23:12:41 UTC (rev 761)
+++ trunk/eugene/src/main/java/org/nuiton/eugene/ObjectModelGenerator.java 2009-12-17 00:03:00 UTC (rev 762)
@@ -74,6 +74,9 @@
/** Logger for this class. */
private static Log log = LogFactory.getLog(ObjectModelGenerator.class);
+ public ObjectModelGenerator() {
+ super();
+ }
public ObjectModelGenerator(AbstractGenerator<ObjectModel> parent) {
super(parent);
@@ -268,7 +271,7 @@
* utiliser la methode generateFromModel il vaut mieux surcharger cette
* methode
* @param model le modele utilise
- * @return
+ * @return le nom du fichier a generer
*/
public String getFilenameForModel(ObjectModel model) {
// TODO throw exception when model.getName() == null or empty
@@ -279,8 +282,8 @@
* Par defaut cette methode retourne le QualifiedName convertie en chemin
* par exemple pour org.codelutin.Toto on aurait org/codelutin/Toto
* @param model le modele utilise
- * @param packageName
- * @return le nom du fichier a generer
+ * @param packageName le nom du paquetage
+ * @return le repertoire correspondant au paquetage
*/
public String getFilenameForPackage(ObjectModel model, String packageName) {
return packageName.replace('.', File.separatorChar);
@@ -290,7 +293,7 @@
* Par defaut cette methode retourne le QualifiedName convertie en chemin
* par exemple pour org.codelutin.Toto on aurait org/codelutin/Toto
* @param interfacez l'interface utilisee
- * @return le nom du fichier a generer
+ * @return le nom du l'interface a generer
*/
public String getFilenameForInterface(ObjectModelInterface interfacez) {
return getFilenameForClassifier(interfacez);
@@ -301,7 +304,7 @@
* Par defaut cette methode retourne le QualifiedName convertie en chemin
* par exemple pour org.codelutin.Toto on aurait org/codelutin/Toto
* @param clazz la classe utilisee
- * @return le nom du fichier a generer
+ * @return le nom de la classe a generer
*/
public String getFilenameForClass(ObjectModelClass clazz) {
return getFilenameForClassifier(clazz);
@@ -312,7 +315,7 @@
* Par defaut cette methode retourne le QualifiedName convertie en chemin
* par exemple pour org.codelutin.Toto on aurait org/codelutin/Toto
* @param classifier le classifier utilisee
- * @return le nom du fichier a generer
+ * @return le nom du classifier a generer
*/
public String getFilenameForClassifier(ObjectModelClassifier classifier) {
return classifier.getQualifiedName().replace('.', File.separatorChar);
1
0
Dec. 16, 2009
Author: tchemit
Date: 2009-12-17 00:12:41 +0100 (Thu, 17 Dec 2009)
New Revision: 761
Added:
trunk/maven-eugene-plugin/src/it/generate-model-files/testIncludeWithOnlyProtocol/src/test/
trunk/maven-eugene-plugin/src/it/generate-model-files/testIncludeWithOnlyProtocol/src/test/xmi/
trunk/maven-eugene-plugin/src/it/generate-model-files/testIncludeWithOnlyProtocol/src/test/xmi/topiatest.properties
trunk/maven-eugene-plugin/src/it/generate-model-files/testIncludeWithOnlyProtocol/src/test/xmi/topiatest.xmi
trunk/maven-eugene-plugin/src/it/generate-model-files/testIncludeWithOnlyProtocol/src/test/xmi/topiatest.zargo
Modified:
trunk/eugene/src/main/java/org/nuiton/eugene/AbstractModelFileWriter.java
trunk/eugene/src/main/java/org/nuiton/eugene/ModelFileWriter.java
trunk/eugene/src/main/java/org/nuiton/eugene/ModelFileWriterConfiguration.java
trunk/eugene/src/main/java/org/nuiton/eugene/ModelFileWriterUtil.java
trunk/eugene/src/main/java/org/nuiton/eugene/ObjectModelGenerator.java
trunk/maven-eugene-plugin/src/it/generate-model-files/testIncludeWithNoProtocol/pom.xml
trunk/maven-eugene-plugin/src/it/generate-model-files/testIncludeWithOnlyProtocol/invoker.properties
trunk/maven-eugene-plugin/src/it/generate-model-files/testIncludeWithOnlyProtocol/pom.xml
trunk/maven-eugene-plugin/src/it/generate-model-files/testIncludeWithOnlyProtocol/verify.groovy
trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/GeneratateModelFilesMojo.java
trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/writer/BaseXmiToModelFileWriter.java
trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/writer/XmiToObjectModelFileWriter.java
trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/writer/ZargoModelFileWriter.java
Log:
- add testPhase in ModelFileWriterConfiguration
- add test input dir and output dir in ModelFileWriter api (zeroconf in mojo configs for test phase)
Modified: trunk/eugene/src/main/java/org/nuiton/eugene/AbstractModelFileWriter.java
===================================================================
--- trunk/eugene/src/main/java/org/nuiton/eugene/AbstractModelFileWriter.java 2009-12-16 20:22:40 UTC (rev 760)
+++ trunk/eugene/src/main/java/org/nuiton/eugene/AbstractModelFileWriter.java 2009-12-16 23:12:41 UTC (rev 761)
@@ -94,7 +94,7 @@
}
this.configuration = configuration;
try {
- File outputDir = getOutputDirectory(configuration.getOutputDirectory());
+ File outputDir = getOutputDirectory(configuration.getOutputDirectory(), configuration.isTestPhase());
if (!outputDir.exists()) {
if (log.isDebugEnabled()) {
@@ -124,8 +124,8 @@
}
@Override
- public File getOutputDirectory(File outputBasedir) {
- return new File(outputBasedir, getDefaultOutputDirectory());
+ public File getOutputDirectory(File outputBasedir, boolean testPhase) {
+ return new File(outputBasedir, testPhase ? getDefaultTestOutputDirectory() : getDefaultOutputDirectory());
}
@Override
@@ -139,22 +139,6 @@
protected ModelFileWriterConfiguration getConfiguration() {
return configuration;
}
-//
-// protected File createOutputDirectory(File outputDir) throws IOException {
-//
-// outputDir = getOutputDirectory(outputDir);
-//
-// if (!outputDir.exists()) {
-// if (log.isDebugEnabled()) {
-// log.debug("[" + getInputProtocol() + "] Create output directory " + outputDir);
-// }
-// boolean b = outputDir.mkdirs();
-// if (!b) {
-// throw new IOException("Could not creat directory " + outputDir);
-// }
-// }
-// return outputDir;
-// }
protected ModelFileWriter getNextWriter() {
return nextWriter;
Modified: trunk/eugene/src/main/java/org/nuiton/eugene/ModelFileWriter.java
===================================================================
--- trunk/eugene/src/main/java/org/nuiton/eugene/ModelFileWriter.java 2009-12-16 20:22:40 UTC (rev 760)
+++ trunk/eugene/src/main/java/org/nuiton/eugene/ModelFileWriter.java 2009-12-16 23:12:41 UTC (rev 761)
@@ -87,19 +87,30 @@
String getDefaultInputDirectory();
/**
+ * @return the defalt relative path where to pick files to treate on a test phase.
+ */
+ String getDefaultTestInputDirectory();
+
+ /**
* @return the default relative path to add to output basedir
*/
String getDefaultOutputDirectory();
/**
+ * @return the default relative path to add to output basedir on a test phase.
+ */
+ String getDefaultTestOutputDirectory();
+
+ /**
* Obtain the real directory where to write files.
* <p/>
* //FIXME-TC20091126 make this configurable (via the properties)
*
* @param outputBasedir the output base directory
+ * @param testPhase {@code true} if writer is used in a test phase
* @return the real output directory where to generate for this particular writer
*/
- File getOutputDirectory(File outputBasedir);
+ File getOutputDirectory(File outputBasedir, boolean testPhase);
/**
* Generates.
Modified: trunk/eugene/src/main/java/org/nuiton/eugene/ModelFileWriterConfiguration.java
===================================================================
--- trunk/eugene/src/main/java/org/nuiton/eugene/ModelFileWriterConfiguration.java 2009-12-16 20:22:40 UTC (rev 760)
+++ trunk/eugene/src/main/java/org/nuiton/eugene/ModelFileWriterConfiguration.java 2009-12-16 23:12:41 UTC (rev 761)
@@ -66,6 +66,10 @@
boolean isVerbose();
/**
+ * @return {@code true} if build is done on a test phase.
+ */
+ boolean isTestPhase();
+ /**
* @return encoding to use to read and write files
*/
String getEncoding();
Modified: trunk/eugene/src/main/java/org/nuiton/eugene/ModelFileWriterUtil.java
===================================================================
--- trunk/eugene/src/main/java/org/nuiton/eugene/ModelFileWriterUtil.java 2009-12-16 20:22:40 UTC (rev 760)
+++ trunk/eugene/src/main/java/org/nuiton/eugene/ModelFileWriterUtil.java 2009-12-16 23:12:41 UTC (rev 761)
@@ -119,7 +119,7 @@
String basedirpath = configuration.getBasedir().getAbsolutePath();
- String outputpath = writer.getOutputDirectory(configuration.getOutputDirectory()).getAbsolutePath();
+ String outputpath = writer.getOutputDirectory(configuration.getOutputDirectory(), configuration.isTestPhase()).getAbsolutePath();
String path = outputpath.substring(basedirpath.length() + 1);
@@ -222,7 +222,7 @@
}
ModelFileWriterEntry writerEntry = new ModelFileWriterEntry(
- new File(configuration.getBasedir(), writer.getDefaultInputDirectory()),
+ new File(configuration.getBasedir(), configuration.isTestPhase()?writer.getDefaultTestInputDirectory():writer.getDefaultInputDirectory()),
writer.getDefaultIncludes()
);
return writerEntry;
Modified: trunk/eugene/src/main/java/org/nuiton/eugene/ObjectModelGenerator.java
===================================================================
--- trunk/eugene/src/main/java/org/nuiton/eugene/ObjectModelGenerator.java 2009-12-16 20:22:40 UTC (rev 760)
+++ trunk/eugene/src/main/java/org/nuiton/eugene/ObjectModelGenerator.java 2009-12-16 23:12:41 UTC (rev 761)
@@ -75,10 +75,6 @@
private static Log log = LogFactory.getLog(ObjectModelGenerator.class);
- public ObjectModelGenerator() {
- super();
- }
-
public ObjectModelGenerator(AbstractGenerator<ObjectModel> parent) {
super(parent);
}
@@ -111,9 +107,9 @@
* 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é.
- * @param model
- * @param destDir
- * @throws IOException
+ * @param model le modele memoire a utiliser
+ * @param destDir le repertoire ou generer
+ * @throws IOException pour tout pb
*/
@Override
public void applyTemplate(ObjectModel model, File destDir) throws IOException {
@@ -271,7 +267,7 @@
* Par defaut cette methode retourne le getName du model. Si l'on souhaite
* utiliser la methode generateFromModel il vaut mieux surcharger cette
* methode
- * @param model
+ * @param model le modele utilise
* @return
*/
public String getFilenameForModel(ObjectModel model) {
@@ -282,9 +278,9 @@
/**
* Par defaut cette methode retourne le QualifiedName convertie en chemin
* par exemple pour org.codelutin.Toto on aurait org/codelutin/Toto
- * @param model
+ * @param model le modele utilise
* @param packageName
- * @return
+ * @return le nom du fichier a generer
*/
public String getFilenameForPackage(ObjectModel model, String packageName) {
return packageName.replace('.', File.separatorChar);
@@ -293,8 +289,8 @@
/**
* Par defaut cette methode retourne le QualifiedName convertie en chemin
* par exemple pour org.codelutin.Toto on aurait org/codelutin/Toto
- * @param interfacez
- * @return
+ * @param interfacez l'interface utilisee
+ * @return le nom du fichier a generer
*/
public String getFilenameForInterface(ObjectModelInterface interfacez) {
return getFilenameForClassifier(interfacez);
@@ -304,8 +300,8 @@
/**
* Par defaut cette methode retourne le QualifiedName convertie en chemin
* par exemple pour org.codelutin.Toto on aurait org/codelutin/Toto
- * @param clazz
- * @return
+ * @param clazz la classe utilisee
+ * @return le nom du fichier a generer
*/
public String getFilenameForClass(ObjectModelClass clazz) {
return getFilenameForClassifier(clazz);
@@ -315,11 +311,11 @@
/**
* Par defaut cette methode retourne le QualifiedName convertie en chemin
* par exemple pour org.codelutin.Toto on aurait org/codelutin/Toto
- * @param clazz
- * @return
+ * @param classifier le classifier utilisee
+ * @return le nom du fichier a generer
*/
- public String getFilenameForClassifier(ObjectModelClassifier clazz) {
- return clazz.getQualifiedName().replace('.', File.separatorChar);
+ public String getFilenameForClassifier(ObjectModelClassifier classifier) {
+ return classifier.getQualifiedName().replace('.', File.separatorChar);
}
public String getFilenameForEnumeration(ObjectModelEnumeration enumeration) {
Modified: trunk/maven-eugene-plugin/src/it/generate-model-files/testIncludeWithNoProtocol/pom.xml
===================================================================
--- trunk/maven-eugene-plugin/src/it/generate-model-files/testIncludeWithNoProtocol/pom.xml 2009-12-16 20:22:40 UTC (rev 760)
+++ trunk/maven-eugene-plugin/src/it/generate-model-files/testIncludeWithNoProtocol/pom.xml 2009-12-16 23:12:41 UTC (rev 761)
@@ -64,7 +64,7 @@
<id>Zargo to object model</id>
<phase>generate-sources</phase>
<configuration>
- <modelType>objectmodel</modelType>
+ <!--<modelType>objectmodel</modelType>-->
<inputFiles>
<inputFile>src/main/zargo:**/*.zargo</inputFile>
</inputFiles>
@@ -94,7 +94,7 @@
<id>Xmi to object model</id>
<phase>generate-sources</phase>
<configuration>
- <modelType>objectmodel</modelType>
+ <!--<modelType>objectmodel</modelType>-->
<inputFiles>
<inputFile>src/main/xmi:**/*.xmi</inputFile>
</inputFiles>
Modified: trunk/maven-eugene-plugin/src/it/generate-model-files/testIncludeWithOnlyProtocol/invoker.properties
===================================================================
--- trunk/maven-eugene-plugin/src/it/generate-model-files/testIncludeWithOnlyProtocol/invoker.properties 2009-12-16 20:22:40 UTC (rev 760)
+++ trunk/maven-eugene-plugin/src/it/generate-model-files/testIncludeWithOnlyProtocol/invoker.properties 2009-12-16 23:12:41 UTC (rev 761)
@@ -1,6 +1,6 @@
# A comma or space separated list of goals/phases to execute, may
# specify an empty list to execute the default goal of the IT project
-invoker.goals=clean generate-sources
+invoker.goals=clean generate-test-sources
# Optionally, a list of goals to run during further invocations of Maven
#invoker.goals.2=${project.groupId}:${project.artifactId}:${project.version}:run
Modified: trunk/maven-eugene-plugin/src/it/generate-model-files/testIncludeWithOnlyProtocol/pom.xml
===================================================================
--- trunk/maven-eugene-plugin/src/it/generate-model-files/testIncludeWithOnlyProtocol/pom.xml 2009-12-16 20:22:40 UTC (rev 760)
+++ trunk/maven-eugene-plugin/src/it/generate-model-files/testIncludeWithOnlyProtocol/pom.xml 2009-12-16 23:12:41 UTC (rev 761)
@@ -64,7 +64,7 @@
<id>Zargo to object model</id>
<phase>generate-sources</phase>
<configuration>
- <modelType>objectmodel</modelType>
+ <!--<modelType>objectmodel</modelType>-->
<inputFiles>
<inputFile>zargo</inputFile>
</inputFiles>
@@ -94,7 +94,7 @@
<id>Xmi to object model</id>
<phase>generate-sources</phase>
<configuration>
- <modelType>objectmodel</modelType>
+ <!--<modelType>objectmodel</modelType>-->
<inputFiles>
<inputFile>xmi</inputFile>
</inputFiles>
@@ -120,6 +120,70 @@
<goal>generate-model-files</goal>
</goals>
</execution>
+ <execution>
+ <id>Zargo to object model (test phase)</id>
+ <phase>generate-test-sources</phase>
+ <configuration>
+ <testPhase>true</testPhase>
+ <!--<modelType>objectmodel</modelType>-->
+ <inputFiles>
+ <inputFile>zargo</inputFile>
+ </inputFiles>
+ <fullPackagePath>org.nuiton.topia.test.entities</fullPackagePath>
+ <outputDirectory>target/generated-sources-zargo2ObjectModel</outputDirectory>
+ </configuration>
+ <goals>
+ <goal>generate-model-files</goal>
+ </goals>
+ </execution>
+ <execution>
+ <id>Zargo to state model (test phase)</id>
+ <phase>generate-test-sources</phase>
+ <configuration>
+ <testPhase>true</testPhase>
+ <modelType>statemodel</modelType>
+ <inputFiles>
+ <inputFile>zargo</inputFile>
+ </inputFiles>
+ <fullPackagePath>org.nuiton.topia.test.entities</fullPackagePath>
+ <outputDirectory>target/generated-sources-zargo2StateModel</outputDirectory>
+ </configuration>
+ <goals>
+ <goal>generate-model-files</goal>
+ </goals>
+ </execution>
+ <execution>
+ <id>Xmi to object model (test phase)</id>
+ <phase>generate-test-sources</phase>
+ <configuration>
+ <testPhase>true</testPhase>
+ <!--<modelType>objectmodel</modelType>-->
+ <inputFiles>
+ <inputFile>xmi</inputFile>
+ </inputFiles>
+ <fullPackagePath>org.nuiton.topia</fullPackagePath>
+ <outputDirectory>target/generated-sources-xmi2ObjectModel</outputDirectory>
+ </configuration>
+ <goals>
+ <goal>generate-model-files</goal>
+ </goals>
+ </execution>
+ <execution>
+ <id>Xmi to state model (test phase)</id>
+ <phase>generate-test-sources</phase>
+ <configuration>
+ <testPhase>true</testPhase>
+ <modelType>statemodel</modelType>
+ <inputFiles>
+ <inputFile>xmi</inputFile>
+ </inputFiles>
+ <fullPackagePath>org.nuiton.topia</fullPackagePath>
+ <outputDirectory>target/generated-sources-xmi2StateModel</outputDirectory>
+ </configuration>
+ <goals>
+ <goal>generate-model-files</goal>
+ </goals>
+ </execution>
</executions>
<dependencies>
<dependency>
Added: trunk/maven-eugene-plugin/src/it/generate-model-files/testIncludeWithOnlyProtocol/src/test/xmi/topiatest.properties
===================================================================
--- trunk/maven-eugene-plugin/src/it/generate-model-files/testIncludeWithOnlyProtocol/src/test/xmi/topiatest.properties (rev 0)
+++ trunk/maven-eugene-plugin/src/it/generate-model-files/testIncludeWithOnlyProtocol/src/test/xmi/topiatest.properties 2009-12-16 23:12:41 UTC (rev 761)
@@ -0,0 +1 @@
+model.tagvalue.generateOperatorForDAOHelper=true
\ No newline at end of file
Added: trunk/maven-eugene-plugin/src/it/generate-model-files/testIncludeWithOnlyProtocol/src/test/xmi/topiatest.xmi
===================================================================
--- trunk/maven-eugene-plugin/src/it/generate-model-files/testIncludeWithOnlyProtocol/src/test/xmi/topiatest.xmi (rev 0)
+++ trunk/maven-eugene-plugin/src/it/generate-model-files/testIncludeWithOnlyProtocol/src/test/xmi/topiatest.xmi 2009-12-16 23:12:41 UTC (rev 761)
@@ -0,0 +1,1334 @@
+<?xml version = '1.0' encoding = 'UTF-8' ?>
+<XMI xmi.version = '1.2' xmlns:UML = 'org.omg.xmi.namespace.UML' timestamp = 'Mon Oct 19 15:56:54 CEST 2009'>
+ <XMI.header> <XMI.documentation>
+ <XMI.exporter>ArgoUML (using Netbeans XMI Writer version 1.0)</XMI.exporter>
+ <XMI.exporterVersion>0.28.1(6) revised on $Date: 2007-05-12 08:08:08 +0200 (Sat, 12 May 2007) $ </XMI.exporterVersion>
+ </XMI.documentation>
+ <XMI.metamodel xmi.name="UML" xmi.version="1.4"/></XMI.header>
+ <XMI.content>
+ <UML:Model xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:000000000000077B'
+ name = 'xmiTopiaTest' isSpecification = 'false' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:00000000000008E3'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>1.2</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = '127-0-0-1-3f03561c:11667f969c5:-8000:00000000000008E4'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:Namespace.ownedElement>
+ <UML:TagDefinition xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:00000000000008E4'
+ name = 'version' isSpecification = 'false' tagType = 'String'>
+ <UML:TagDefinition.multiplicity>
+ <UML:Multiplicity xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:00000000000008E6'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:00000000000008E5'
+ lower = '0' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:TagDefinition.multiplicity>
+ </UML:TagDefinition>
+ <UML:Stereotype xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:00000000000008E7'
+ name = 'entity' isSpecification = 'false' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:Stereotype.baseClass>Class</UML:Stereotype.baseClass>
+ </UML:Stereotype>
+ <UML:Package xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:000000000000090B'
+ name = 'org' isSpecification = 'false' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:Namespace.ownedElement>
+ <UML:Package xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:000000000000090C'
+ name = 'nuiton' isSpecification = 'false' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:Namespace.ownedElement>
+ <UML:Package xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:000000000000090D'
+ name = 'topiatest' isSpecification = 'false' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:Namespace.ownedElement>
+ <UML:Class xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:00000000000008DA'
+ name = 'Personne' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '127-0-0-1-3f03561c:11667f969c5:-8000:00000000000008E7'/>
+ </UML:ModelElement.stereotype>
+ <UML:GeneralizableElement.generalization>
+ <UML:Generalization xmi.idref = '-64--88-99-15-7b62aac4:121aaa56ef3:-8000:0000000000001020'/>
+ </UML:GeneralizableElement.generalization>
+ <UML:Classifier.feature>
+ <UML:Attribute xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000CF9'
+ name = 'name' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000CFD'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000CFC'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-64--88-99-15-67f6b63e:12187ee3a69:-8000:0000000000000EB0'
+ name = 'otherNames' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-64--88-99-15-67f6b63e:12187ee3a69:-8000:0000000000000EB8'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-64--88-99-15-67f6b63e:12187ee3a69:-8000:0000000000000EB7'
+ lower = '0' upper = '-1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Class xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:00000000000008DE'
+ name = 'Employe' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '127-0-0-1-3f03561c:11667f969c5:-8000:00000000000008E7'/>
+ </UML:ModelElement.stereotype>
+ <UML:GeneralizableElement.generalization>
+ <UML:Generalization xmi.idref = '127-0-0-1-3f03561c:11667f969c5:-8000:00000000000008E2'/>
+ </UML:GeneralizableElement.generalization>
+ <UML:Classifier.feature>
+ <UML:Attribute xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D54'
+ name = 'salary' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D5A'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D59'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Class xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:00000000000008E0'
+ name = 'Company' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '127-0-0-1-3f03561c:11667f969c5:-8000:00000000000008E7'/>
+ </UML:ModelElement.stereotype>
+ <UML:Classifier.feature>
+ <UML:Attribute xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:00000000000011BD'
+ name = 'name' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:00000000000011C5'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:00000000000011C4'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Class xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:00000000000008F9'
+ name = 'Address' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '127-0-0-1-3f03561c:11667f969c5:-8000:00000000000008E7'/>
+ </UML:ModelElement.stereotype>
+ <UML:Classifier.feature>
+ <UML:Attribute xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000903'
+ name = 'city' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000CF7'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000CF6'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000CE8'
+ name = 'adress' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000CF3'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000CF2'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Association xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:00000000000008FB'
+ name = '' isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'>
+ <UML:Association.connection>
+ <UML:AssociationEnd xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:00000000000008FC'
+ visibility = 'public' isSpecification = 'false' isNavigable = 'false' ordering = 'unordered'
+ aggregation = 'none' targetScope = 'instance' changeability = 'changeable'>
+ <UML:AssociationEnd.multiplicity>
+ <UML:Multiplicity xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:00000000000008FD'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:00000000000008FE'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:AssociationEnd.multiplicity>
+ <UML:AssociationEnd.participant>
+ <UML:Class xmi.idref = '127-0-0-1-3f03561c:11667f969c5:-8000:00000000000008DA'/>
+ </UML:AssociationEnd.participant>
+ </UML:AssociationEnd>
+ <UML:AssociationEnd xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:00000000000008FF'
+ visibility = 'public' isSpecification = 'false' isNavigable = 'true' ordering = 'unordered'
+ aggregation = 'none' targetScope = 'instance' changeability = 'changeable'>
+ <UML:AssociationEnd.multiplicity>
+ <UML:Multiplicity xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000900'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000901'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:AssociationEnd.multiplicity>
+ <UML:AssociationEnd.participant>
+ <UML:Class xmi.idref = '127-0-0-1-3f03561c:11667f969c5:-8000:00000000000008F9'/>
+ </UML:AssociationEnd.participant>
+ </UML:AssociationEnd>
+ </UML:Association.connection>
+ </UML:Association>
+ <UML:Generalization xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:00000000000008E2'
+ isSpecification = 'false'>
+ <UML:Generalization.child>
+ <UML:Class xmi.idref = '127-0-0-1-3f03561c:11667f969c5:-8000:00000000000008DE'/>
+ </UML:Generalization.child>
+ <UML:Generalization.parent>
+ <UML:Class xmi.idref = '127-0-0-1-3f03561c:11667f969c5:-8000:00000000000008DA'/>
+ </UML:Generalization.parent>
+ </UML:Generalization>
+ <UML:Association xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000CFE'
+ name = '' isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'>
+ <UML:Association.connection>
+ <UML:AssociationEnd xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000CFF'
+ visibility = 'public' isSpecification = 'false' isNavigable = 'false' ordering = 'unordered'
+ aggregation = 'none' targetScope = 'instance' changeability = 'changeable'>
+ <UML:AssociationEnd.multiplicity>
+ <UML:Multiplicity xmi.id = '-64--88-99-15--164a0c3b:121af97fc30:-8000:000000000000102C'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-64--88-99-15--164a0c3b:121af97fc30:-8000:000000000000102B'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:AssociationEnd.multiplicity>
+ <UML:AssociationEnd.participant>
+ <UML:Class xmi.idref = '127-0-0-1-3f03561c:11667f969c5:-8000:00000000000008E0'/>
+ </UML:AssociationEnd.participant>
+ </UML:AssociationEnd>
+ <UML:AssociationEnd xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D02'
+ visibility = 'public' isSpecification = 'false' isNavigable = 'true' ordering = 'unordered'
+ aggregation = 'none' targetScope = 'instance' changeability = 'changeable'>
+ <UML:AssociationEnd.multiplicity>
+ <UML:Multiplicity xmi.id = '-64--88-99-15--164a0c3b:121af97fc30:-8000:000000000000102A'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-64--88-99-15--164a0c3b:121af97fc30:-8000:0000000000001029'
+ lower = '0' upper = '-1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:AssociationEnd.multiplicity>
+ <UML:AssociationEnd.participant>
+ <UML:Class xmi.idref = '127-0-0-1-3f03561c:11667f969c5:-8000:00000000000008DE'/>
+ </UML:AssociationEnd.participant>
+ </UML:AssociationEnd>
+ </UML:Association.connection>
+ </UML:Association>
+ <UML:Class xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D0B'
+ name = 'Department' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '127-0-0-1-3f03561c:11667f969c5:-8000:00000000000008E7'/>
+ </UML:ModelElement.stereotype>
+ <UML:Classifier.feature>
+ <UML:Attribute xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D25'
+ name = 'name' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D29'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D28'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Class xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D2A'
+ name = 'Product' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '127-0-0-1-3f03561c:11667f969c5:-8000:00000000000008E7'/>
+ </UML:ModelElement.stereotype>
+ <UML:Classifier.feature>
+ <UML:Attribute xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D37'
+ name = 'name' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D3F'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D3E'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Class xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D5B'
+ name = 'Store' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '127-0-0-1-3f03561c:11667f969c5:-8000:00000000000008E7'/>
+ </UML:ModelElement.stereotype>
+ <UML:Classifier.feature>
+ <UML:Attribute xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D7D'
+ name = 'name' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D83'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D82'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Class xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D40'
+ name = 'Type' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '127-0-0-1-3f03561c:11667f969c5:-8000:00000000000008E7'/>
+ </UML:ModelElement.stereotype>
+ <UML:Classifier.feature>
+ <UML:Attribute xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D4D'
+ name = 'name' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D53'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D52'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:AssociationClass xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D65'
+ name = 'Bill' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '127-0-0-1-3f03561c:11667f969c5:-8000:00000000000008E7'/>
+ </UML:ModelElement.stereotype>
+ <UML:Association.connection>
+ <UML:AssociationEnd xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D66'
+ visibility = 'public' isSpecification = 'false' isNavigable = 'false' ordering = 'unordered'
+ aggregation = 'none' targetScope = 'instance' changeability = 'changeable'>
+ <UML:AssociationEnd.multiplicity>
+ <UML:Multiplicity xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D89'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D88'
+ lower = '0' upper = '-1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:AssociationEnd.multiplicity>
+ <UML:AssociationEnd.participant>
+ <UML:Class xmi.idref = '127-0-0-1-3f03561c:11667f969c5:-8000:00000000000008E0'/>
+ </UML:AssociationEnd.participant>
+ </UML:AssociationEnd>
+ <UML:AssociationEnd xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D69'
+ visibility = 'public' isSpecification = 'false' isNavigable = 'true' ordering = 'unordered'
+ aggregation = 'none' targetScope = 'instance' changeability = 'changeable'>
+ <UML:AssociationEnd.multiplicity>
+ <UML:Multiplicity xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D8D'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D8C'
+ lower = '0' upper = '-1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:AssociationEnd.multiplicity>
+ <UML:AssociationEnd.participant>
+ <UML:Class xmi.idref = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D5B'/>
+ </UML:AssociationEnd.participant>
+ </UML:AssociationEnd>
+ </UML:Association.connection>
+ <UML:Classifier.feature>
+ <UML:Attribute xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D6D'
+ name = 'cost' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D75'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D74'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D76'
+ name = 'date' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D7A'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D79'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000085F'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ </UML:AssociationClass>
+ <UML:Association xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D18'
+ name = '' isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'>
+ <UML:Association.connection>
+ <UML:AssociationEnd xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D19'
+ name = 'lead' visibility = 'public' isSpecification = 'false' isNavigable = 'false'
+ ordering = 'unordered' aggregation = 'none' targetScope = 'instance' changeability = 'changeable'>
+ <UML:AssociationEnd.multiplicity>
+ <UML:Multiplicity xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D24'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D23'
+ lower = '0' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:AssociationEnd.multiplicity>
+ <UML:AssociationEnd.participant>
+ <UML:Class xmi.idref = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D0B'/>
+ </UML:AssociationEnd.participant>
+ </UML:AssociationEnd>
+ <UML:AssociationEnd xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D1C'
+ name = 'leader' visibility = 'public' isSpecification = 'false' isNavigable = 'true'
+ ordering = 'unordered' aggregation = 'none' targetScope = 'instance' changeability = 'changeable'>
+ <UML:AssociationEnd.multiplicity>
+ <UML:Multiplicity xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D1D'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D1E'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:AssociationEnd.multiplicity>
+ <UML:AssociationEnd.participant>
+ <UML:Class xmi.idref = '127-0-0-1-3f03561c:11667f969c5:-8000:00000000000008DE'/>
+ </UML:AssociationEnd.participant>
+ </UML:AssociationEnd>
+ </UML:Association.connection>
+ </UML:Association>
+ <UML:Association xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D0D'
+ name = '' isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'>
+ <UML:Association.connection>
+ <UML:AssociationEnd xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D0E'
+ visibility = 'public' isSpecification = 'false' isNavigable = 'true' ordering = 'unordered'
+ aggregation = 'composite' targetScope = 'instance' changeability = 'changeable'>
+ <UML:AssociationEnd.multiplicity>
+ <UML:Multiplicity xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D0F'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D10'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:AssociationEnd.multiplicity>
+ <UML:AssociationEnd.participant>
+ <UML:Class xmi.idref = '127-0-0-1-3f03561c:11667f969c5:-8000:00000000000008E0'/>
+ </UML:AssociationEnd.participant>
+ </UML:AssociationEnd>
+ <UML:AssociationEnd xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D11'
+ visibility = 'public' isSpecification = 'false' isNavigable = 'true' ordering = 'unordered'
+ aggregation = 'none' targetScope = 'instance' changeability = 'changeable'>
+ <UML:AssociationEnd.multiplicity>
+ <UML:Multiplicity xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D17'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D16'
+ lower = '0' upper = '-1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:AssociationEnd.multiplicity>
+ <UML:AssociationEnd.participant>
+ <UML:Class xmi.idref = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D0B'/>
+ </UML:AssociationEnd.participant>
+ </UML:AssociationEnd>
+ </UML:Association.connection>
+ </UML:Association>
+ <UML:Association xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D2C'
+ name = '' isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'>
+ <UML:Association.connection>
+ <UML:AssociationEnd xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D2D'
+ visibility = 'public' isSpecification = 'false' isNavigable = 'false' ordering = 'unordered'
+ aggregation = 'none' targetScope = 'instance' changeability = 'changeable'>
+ <UML:AssociationEnd.multiplicity>
+ <UML:Multiplicity xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D2E'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D2F'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:AssociationEnd.multiplicity>
+ <UML:AssociationEnd.participant>
+ <UML:Class xmi.idref = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D0B'/>
+ </UML:AssociationEnd.participant>
+ </UML:AssociationEnd>
+ <UML:AssociationEnd xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D30'
+ visibility = 'public' isSpecification = 'false' isNavigable = 'true' ordering = 'unordered'
+ aggregation = 'none' targetScope = 'instance' changeability = 'changeable'>
+ <UML:AssociationEnd.multiplicity>
+ <UML:Multiplicity xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D36'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D35'
+ lower = '0' upper = '-1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:AssociationEnd.multiplicity>
+ <UML:AssociationEnd.participant>
+ <UML:Class xmi.idref = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D2A'/>
+ </UML:AssociationEnd.participant>
+ </UML:AssociationEnd>
+ </UML:Association.connection>
+ </UML:Association>
+ <UML:Association xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D42'
+ name = '' isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'>
+ <UML:Association.connection>
+ <UML:AssociationEnd xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D43'
+ visibility = 'public' isSpecification = 'false' isNavigable = 'false' ordering = 'unordered'
+ aggregation = 'none' targetScope = 'instance' changeability = 'changeable'>
+ <UML:AssociationEnd.multiplicity>
+ <UML:Multiplicity xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D4C'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D4B'
+ lower = '0' upper = '-1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:AssociationEnd.multiplicity>
+ <UML:AssociationEnd.participant>
+ <UML:Class xmi.idref = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D2A'/>
+ </UML:AssociationEnd.participant>
+ </UML:AssociationEnd>
+ <UML:AssociationEnd xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D46'
+ visibility = 'public' isSpecification = 'false' isNavigable = 'true' ordering = 'unordered'
+ aggregation = 'none' targetScope = 'instance' changeability = 'changeable'>
+ <UML:AssociationEnd.multiplicity>
+ <UML:Multiplicity xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D47'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D48'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:AssociationEnd.multiplicity>
+ <UML:AssociationEnd.participant>
+ <UML:Class xmi.idref = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D40'/>
+ </UML:AssociationEnd.participant>
+ </UML:AssociationEnd>
+ </UML:Association.connection>
+ </UML:Association>
+ <UML:Package xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000E71'
+ name = 'beangen' isSpecification = 'false' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:Namespace.ownedElement>
+ <UML:Class xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000E72'
+ name = 'Voiture' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'true' isActive = 'false'>
+ <UML:ModelElement.clientDependency>
+ <UML:Abstraction xmi.idref = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000E77'/>
+ </UML:ModelElement.clientDependency>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000E73'/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000EA1'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>Doc for BeanA</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition href = 'http://argouml.org/profiles/uml14/default-uml14.xmi#.:000000000000087C'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:Classifier.feature>
+ <UML:Attribute xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000E7C'
+ name = 'immatriculation' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000E7D'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000E7E'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000EA2'
+ isSpecification = 'false'>
+ <UML:TaggedValue.dataValue>attrA of BeanA</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition href = 'http://argouml.org/profiles/uml14/default-uml14.xmi#.:000000000000087C'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000E7F'
+ name = 'modele' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000E80'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000E81'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000EE6'
+ name = 'proprietaire' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000EE7'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000EE8'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:Class xmi.idref = '127-0-0-1-3f03561c:11667f969c5:-8000:00000000000008DA'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Class xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000E75'
+ name = 'Roue' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000E73'/>
+ </UML:ModelElement.stereotype>
+ <UML:Classifier.feature>
+ <UML:Operation xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000E85'
+ name = 'mount' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000E86'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Operation xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000E87'
+ name = 'getModel' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000E88'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D2A'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000E89'
+ name = 'id' isSpecification = 'false'>
+ <UML:Parameter.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Abstraction xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000E77'
+ isSpecification = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000E78'/>
+ </UML:ModelElement.stereotype>
+ <UML:Dependency.client>
+ <UML:Class xmi.idref = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000E72'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Interface xmi.idref = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000E76'/>
+ </UML:Dependency.supplier>
+ </UML:Abstraction>
+ <UML:Interface xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000E76'
+ name = 'Vehicule' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:Classifier.feature>
+ <UML:Operation xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000E7A'
+ name = 'start' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ isQuery = 'false' concurrency = 'sequential' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000E7B'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086B'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ </UML:Classifier.feature>
+ </UML:Interface>
+ <UML:Association xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000E8A'
+ name = '' isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'>
+ <UML:Association.connection>
+ <UML:AssociationEnd xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000E8B'
+ visibility = 'public' isSpecification = 'false' isNavigable = 'true' ordering = 'unordered'
+ aggregation = 'composite' targetScope = 'instance' changeability = 'changeable'>
+ <UML:AssociationEnd.multiplicity>
+ <UML:Multiplicity xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000E8C'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000E8D'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:AssociationEnd.multiplicity>
+ <UML:AssociationEnd.participant>
+ <UML:Class xmi.idref = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000E72'/>
+ </UML:AssociationEnd.participant>
+ </UML:AssociationEnd>
+ <UML:AssociationEnd xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000E8E'
+ visibility = 'public' isSpecification = 'false' isNavigable = 'true' ordering = 'unordered'
+ aggregation = 'none' targetScope = 'instance' changeability = 'changeable'>
+ <UML:AssociationEnd.multiplicity>
+ <UML:Multiplicity xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000ED2'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000ED1'
+ lower = '4' upper = '4'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:AssociationEnd.multiplicity>
+ <UML:AssociationEnd.participant>
+ <UML:Class xmi.idref = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000E75'/>
+ </UML:AssociationEnd.participant>
+ </UML:AssociationEnd>
+ </UML:Association.connection>
+ </UML:Association>
+ <UML:Class xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000EAB'
+ name = 'RelationDTO' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000E74'/>
+ </UML:ModelElement.stereotype>
+ <UML:Classifier.feature>
+ <UML:Attribute xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000EAC'
+ name = 'idCompany' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000EAD'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000EAE'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000EAF'
+ name = 'idDepartement' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000EB0'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000EB1'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000EBB'
+ name = 'dateDebut' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000EBC'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000EBD'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000085F'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Class xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000EA9'
+ name = 'PersonneDTO' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.clientDependency>
+ <UML:Dependency xmi.idref = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000EAA'/>
+ </UML:ModelElement.clientDependency>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000E74'/>
+ </UML:ModelElement.stereotype>
+ <UML:Namespace.ownedElement>
+ <UML:Dependency xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000EAA'
+ isSpecification = 'false'>
+ <UML:Dependency.client>
+ <UML:Class xmi.idref = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000EA9'/>
+ </UML:Dependency.client>
+ <UML:Dependency.supplier>
+ <UML:Class xmi.idref = '127-0-0-1-3f03561c:11667f969c5:-8000:00000000000008DA'/>
+ </UML:Dependency.supplier>
+ </UML:Dependency>
+ </UML:Namespace.ownedElement>
+ </UML:Class>
+ <UML:Association xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000EB2'
+ name = '' isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'>
+ <UML:Association.connection>
+ <UML:AssociationEnd xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000EB3'
+ visibility = 'public' isSpecification = 'false' isNavigable = 'false' ordering = 'unordered'
+ aggregation = 'none' targetScope = 'instance' changeability = 'changeable'>
+ <UML:AssociationEnd.multiplicity>
+ <UML:Multiplicity xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000EBA'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000EB9'
+ lower = '0' upper = '-1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:AssociationEnd.multiplicity>
+ <UML:AssociationEnd.participant>
+ <UML:Class xmi.idref = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000EAB'/>
+ </UML:AssociationEnd.participant>
+ </UML:AssociationEnd>
+ <UML:AssociationEnd xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000EB6'
+ name = 'person' visibility = 'public' isSpecification = 'false' isNavigable = 'true'
+ ordering = 'unordered' aggregation = 'none' targetScope = 'instance' changeability = 'changeable'>
+ <UML:AssociationEnd.multiplicity>
+ <UML:Multiplicity xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000EB7'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000EB8'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:AssociationEnd.multiplicity>
+ <UML:AssociationEnd.participant>
+ <UML:Class xmi.idref = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000EA9'/>
+ </UML:AssociationEnd.participant>
+ </UML:AssociationEnd>
+ </UML:Association.connection>
+ </UML:Association>
+ <UML:Class xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000ED3'
+ name = 'Siege' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000E73'/>
+ </UML:ModelElement.stereotype>
+ <UML:Classifier.feature>
+ <UML:Attribute xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000EDB'
+ name = 'noSerie' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000EDC'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000EDD'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:DataType href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:000000000000086C'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Association xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000ED4'
+ name = '' isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'>
+ <UML:Association.connection>
+ <UML:AssociationEnd xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000ED5'
+ visibility = 'public' isSpecification = 'false' isNavigable = 'true' ordering = 'unordered'
+ aggregation = 'none' targetScope = 'instance' changeability = 'changeable'>
+ <UML:AssociationEnd.multiplicity>
+ <UML:Multiplicity xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000EE5'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000EE4'
+ lower = '1' upper = '4'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:AssociationEnd.multiplicity>
+ <UML:AssociationEnd.participant>
+ <UML:Class xmi.idref = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000ED3'/>
+ </UML:AssociationEnd.participant>
+ </UML:AssociationEnd>
+ <UML:AssociationEnd xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000ED8'
+ visibility = 'public' isSpecification = 'false' isNavigable = 'true' ordering = 'unordered'
+ aggregation = 'composite' targetScope = 'instance' changeability = 'changeable'>
+ <UML:AssociationEnd.multiplicity>
+ <UML:Multiplicity xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000ED9'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000EDA'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:AssociationEnd.multiplicity>
+ <UML:AssociationEnd.participant>
+ <UML:Class xmi.idref = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000E72'/>
+ </UML:AssociationEnd.participant>
+ </UML:AssociationEnd>
+ </UML:Association.connection>
+ </UML:Association>
+ </UML:Namespace.ownedElement>
+ </UML:Package>
+ <UML:Package xmi.id = '-64--88-99-15-7b62aac4:121aaa56ef3:-8000:000000000000100A'
+ name = 'deletetest' isSpecification = 'false' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:Namespace.ownedElement>
+ <UML:Class xmi.id = '-64--88-99-15-7b62aac4:121aaa56ef3:-8000:000000000000100B'
+ name = 'Contact2' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '127-0-0-1-3f03561c:11667f969c5:-8000:00000000000008E7'/>
+ </UML:ModelElement.stereotype>
+ <UML:Classifier.feature>
+ <UML:Attribute xmi.id = '-64--88-99-15-7b62aac4:121aaa56ef3:-8000:0000000000001019'
+ name = 'contactValue' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-64--88-99-15-7b62aac4:121aaa56ef3:-8000:000000000000101A'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-64--88-99-15-7b62aac4:121aaa56ef3:-8000:000000000000101B'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-64--88-99-15-7b62aac4:121aaa56ef3:-8000:000000000000101C'
+ name = 'type' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-64--88-99-15-7b62aac4:121aaa56ef3:-8000:000000000000101D'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-64--88-99-15-7b62aac4:121aaa56ef3:-8000:000000000000101E'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Operation xmi.id = '-64--88-99-15--164a0c3b:121af97fc30:-8000:000000000000102F'
+ name = 'findAllByCompany' visibility = 'public' isSpecification = 'false'
+ ownerScope = 'instance' isQuery = 'false' concurrency = 'sequential' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '-64--88-99-15--164a0c3b:121af97fc30:-8000:0000000000001034'/>
+ </UML:ModelElement.stereotype>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter xmi.id = '-64--88-99-15--164a0c3b:121af97fc30:-8000:0000000000001030'
+ name = 'return' isSpecification = 'false' kind = 'return'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '-64--88-99-15--164a0c3b:121af97fc30:-8000:0000000000001032'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ <UML:Parameter xmi.id = '-64--88-99-15--164a0c3b:121af97fc30:-8000:0000000000001033'
+ name = 'company' isSpecification = 'false'>
+ <UML:Parameter.type>
+ <UML:Class xmi.idref = '127-0-0-1-3f03561c:11667f969c5:-8000:00000000000008E0'/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Association xmi.id = '-64--88-99-15-7b62aac4:121aaa56ef3:-8000:000000000000100C'
+ name = '' isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'>
+ <UML:Association.connection>
+ <UML:AssociationEnd xmi.id = '-64--88-99-15-7b62aac4:121aaa56ef3:-8000:000000000000100D'
+ name = 'contacts' visibility = 'public' isSpecification = 'false' isNavigable = 'true'
+ ordering = 'unordered' aggregation = 'none' targetScope = 'instance' changeability = 'changeable'>
+ <UML:AssociationEnd.multiplicity>
+ <UML:Multiplicity xmi.id = '-64--88-99-15--164a0c3b:121af97fc30:-8000:0000000000001026'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-64--88-99-15--164a0c3b:121af97fc30:-8000:0000000000001025'
+ lower = '0' upper = '-1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:AssociationEnd.multiplicity>
+ <UML:AssociationEnd.participant>
+ <UML:Class xmi.idref = '-64--88-99-15-7b62aac4:121aaa56ef3:-8000:000000000000100B'/>
+ </UML:AssociationEnd.participant>
+ </UML:AssociationEnd>
+ <UML:AssociationEnd xmi.id = '-64--88-99-15-7b62aac4:121aaa56ef3:-8000:0000000000001010'
+ visibility = 'public' isSpecification = 'false' isNavigable = 'true' ordering = 'unordered'
+ aggregation = 'none' targetScope = 'instance' changeability = 'changeable'>
+ <UML:AssociationEnd.multiplicity>
+ <UML:Multiplicity xmi.id = '-64--88-99-15--164a0c3b:121af97fc30:-8000:0000000000001028'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-64--88-99-15--164a0c3b:121af97fc30:-8000:0000000000001027'
+ lower = '0' upper = '-1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:AssociationEnd.multiplicity>
+ <UML:AssociationEnd.participant>
+ <UML:Class xmi.idref = '-64--88-99-15-7b62aac4:121aaa56ef3:-8000:000000000000101F'/>
+ </UML:AssociationEnd.participant>
+ </UML:AssociationEnd>
+ </UML:Association.connection>
+ </UML:Association>
+ <UML:Class xmi.id = '-64--88-99-15-7b62aac4:121aaa56ef3:-8000:0000000000001017'
+ name = 'Telephone2' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '127-0-0-1-3f03561c:11667f969c5:-8000:00000000000008E7'/>
+ </UML:ModelElement.stereotype>
+ <UML:GeneralizableElement.generalization>
+ <UML:Generalization xmi.idref = '-64--88-99-15-7b62aac4:121aaa56ef3:-8000:0000000000001018'/>
+ </UML:GeneralizableElement.generalization>
+ <UML:Classifier.feature>
+ <UML:Attribute xmi.id = '-64--88-99-15-7b62aac4:121aaa56ef3:-8000:0000000000001021'
+ name = 'prefix' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-64--88-99-15-7b62aac4:121aaa56ef3:-8000:0000000000001022'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-64--88-99-15-7b62aac4:121aaa56ef3:-8000:0000000000001023'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '-64--88-99-15-7b62aac4:121aaa56ef3:-8000:0000000000001024'
+ name = 'country' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '-64--88-99-15-7b62aac4:121aaa56ef3:-8000:0000000000001025'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '-64--88-99-15-7b62aac4:121aaa56ef3:-8000:0000000000001026'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Generalization xmi.id = '-64--88-99-15-7b62aac4:121aaa56ef3:-8000:0000000000001018'
+ isSpecification = 'false'>
+ <UML:Generalization.child>
+ <UML:Class xmi.idref = '-64--88-99-15-7b62aac4:121aaa56ef3:-8000:0000000000001017'/>
+ </UML:Generalization.child>
+ <UML:Generalization.parent>
+ <UML:Class xmi.idref = '-64--88-99-15-7b62aac4:121aaa56ef3:-8000:000000000000100B'/>
+ </UML:Generalization.parent>
+ </UML:Generalization>
+ <UML:Class xmi.id = '-64--88-99-15-7b62aac4:121aaa56ef3:-8000:000000000000101F'
+ name = 'Party2' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '127-0-0-1-3f03561c:11667f969c5:-8000:00000000000008E7'/>
+ </UML:ModelElement.stereotype>
+ </UML:Class>
+ </UML:Namespace.ownedElement>
+ </UML:Package>
+ <UML:Generalization xmi.id = '-64--88-99-15-7b62aac4:121aaa56ef3:-8000:0000000000001020'
+ isSpecification = 'false'>
+ <UML:Generalization.child>
+ <UML:Class xmi.idref = '127-0-0-1-3f03561c:11667f969c5:-8000:00000000000008DA'/>
+ </UML:Generalization.child>
+ <UML:Generalization.parent>
+ <UML:Class xmi.idref = '-64--88-99-15-7b62aac4:121aaa56ef3:-8000:000000000000101F'/>
+ </UML:Generalization.parent>
+ </UML:Generalization>
+ </UML:Namespace.ownedElement>
+ </UML:Package>
+ <UML:Package xmi.id = '127-0-0-1-13652238:1219c622604:-8000:000000000000121D'
+ name = 'topia' isSpecification = 'false' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:Namespace.ownedElement>
+ <UML:Package xmi.id = '127-0-0-1-13652238:1219c622604:-8000:000000000000121E'
+ name = 'test' isSpecification = 'false' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:Namespace.ownedElement>
+ <UML:Package xmi.id = '127-0-0-1-13652238:1219c622604:-8000:000000000000121F'
+ name = 'entities' isSpecification = 'false' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:Namespace.ownedElement>
+ <UML:Class xmi.id = '127-0-0-1-13652238:1219c622604:-8000:0000000000001220'
+ name = 'Person' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '127-0-0-1-3f03561c:11667f969c5:-8000:00000000000008E7'/>
+ </UML:ModelElement.stereotype>
+ <UML:Classifier.feature>
+ <UML:Attribute xmi.id = '127-0-0-1-13652238:1219c622604:-8000:0000000000001228'
+ name = 'name' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '127-0-0-1-13652238:1219c622604:-8000:0000000000001229'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '127-0-0-1-13652238:1219c622604:-8000:000000000000122A'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '127-0-0-1-13652238:1219c622604:-8000:000000000000122B'
+ name = 'firstname' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '127-0-0-1-13652238:1219c622604:-8000:000000000000122C'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '127-0-0-1-13652238:1219c622604:-8000:000000000000122D'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Class xmi.id = '127-0-0-1-13652238:1219c622604:-8000:0000000000001221'
+ name = 'Pet' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '127-0-0-1-3f03561c:11667f969c5:-8000:00000000000008E7'/>
+ </UML:ModelElement.stereotype>
+ <UML:Classifier.feature>
+ <UML:Attribute xmi.id = '127-0-0-1-13652238:1219c622604:-8000:0000000000001222'
+ name = 'name' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '127-0-0-1-13652238:1219c622604:-8000:0000000000001223'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '127-0-0-1-13652238:1219c622604:-8000:0000000000001224'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ <UML:Attribute xmi.id = '127-0-0-1-13652238:1219c622604:-8000:0000000000001225'
+ name = 'type' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '127-0-0-1-13652238:1219c622604:-8000:0000000000001226'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '127-0-0-1-13652238:1219c622604:-8000:0000000000001227'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Association xmi.id = '127-0-0-1-13652238:1219c622604:-8000:0000000000001237'
+ name = '' isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'>
+ <UML:Association.connection>
+ <UML:AssociationEnd xmi.id = '127-0-0-1-13652238:1219c622604:-8000:0000000000001238'
+ visibility = 'public' isSpecification = 'false' isNavigable = 'true' ordering = 'unordered'
+ aggregation = 'none' targetScope = 'instance' changeability = 'changeable'>
+ <UML:AssociationEnd.multiplicity>
+ <UML:Multiplicity xmi.id = '127-0-0-1-13652238:1219c622604:-8000:0000000000001239'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '127-0-0-1-13652238:1219c622604:-8000:000000000000123A'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:AssociationEnd.multiplicity>
+ <UML:AssociationEnd.participant>
+ <UML:Class xmi.idref = '127-0-0-1-13652238:1219c622604:-8000:0000000000001220'/>
+ </UML:AssociationEnd.participant>
+ </UML:AssociationEnd>
+ <UML:AssociationEnd xmi.id = '127-0-0-1-13652238:1219c622604:-8000:000000000000123B'
+ visibility = 'public' isSpecification = 'false' isNavigable = 'true' ordering = 'unordered'
+ aggregation = 'none' targetScope = 'instance' changeability = 'changeable'>
+ <UML:AssociationEnd.multiplicity>
+ <UML:Multiplicity xmi.id = '127-0-0-1-13652238:1219c622604:-8000:000000000000123F'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '127-0-0-1-13652238:1219c622604:-8000:000000000000123E'
+ lower = '0' upper = '-1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:AssociationEnd.multiplicity>
+ <UML:AssociationEnd.participant>
+ <UML:Class xmi.idref = '127-0-0-1-13652238:1219c622604:-8000:0000000000001221'/>
+ </UML:AssociationEnd.participant>
+ </UML:AssociationEnd>
+ </UML:Association.connection>
+ </UML:Association>
+ <UML:Association xmi.id = '127-0-0-1--7876194c:121c66e8e17:-8000:000000000000102A'
+ name = '' isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false'>
+ <UML:Association.connection>
+ <UML:AssociationEnd xmi.id = '127-0-0-1--7876194c:121c66e8e17:-8000:000000000000102B'
+ visibility = 'public' isSpecification = 'false' isNavigable = 'false' ordering = 'unordered'
+ aggregation = 'composite' targetScope = 'instance' changeability = 'changeable'>
+ <UML:AssociationEnd.multiplicity>
+ <UML:Multiplicity xmi.id = '127-0-0-1--7876194c:121c66e8e17:-8000:000000000000102C'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '127-0-0-1--7876194c:121c66e8e17:-8000:000000000000102D'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:AssociationEnd.multiplicity>
+ <UML:AssociationEnd.participant>
+ <UML:Class xmi.idref = '127-0-0-1-13652238:1219c622604:-8000:0000000000001221'/>
+ </UML:AssociationEnd.participant>
+ </UML:AssociationEnd>
+ <UML:AssociationEnd xmi.id = '127-0-0-1--7876194c:121c66e8e17:-8000:000000000000102E'
+ visibility = 'public' isSpecification = 'false' isNavigable = 'true' ordering = 'unordered'
+ aggregation = 'none' targetScope = 'instance' changeability = 'changeable'>
+ <UML:AssociationEnd.multiplicity>
+ <UML:Multiplicity xmi.id = '127-0-0-1--7876194c:121c66e8e17:-8000:000000000000102F'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '127-0-0-1--7876194c:121c66e8e17:-8000:0000000000001030'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:AssociationEnd.multiplicity>
+ <UML:AssociationEnd.participant>
+ <UML:Class xmi.idref = '127-0-0-1--7876194c:121c66e8e17:-8000:0000000000001029'/>
+ </UML:AssociationEnd.participant>
+ </UML:AssociationEnd>
+ </UML:Association.connection>
+ </UML:Association>
+ <UML:Class xmi.id = '127-0-0-1--7876194c:121c66e8e17:-8000:0000000000001029'
+ name = 'Race' visibility = 'public' isSpecification = 'false' isRoot = 'false'
+ isLeaf = 'false' isAbstract = 'false' isActive = 'false'>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref = '127-0-0-1-3f03561c:11667f969c5:-8000:00000000000008E7'/>
+ </UML:ModelElement.stereotype>
+ <UML:Classifier.feature>
+ <UML:Attribute xmi.id = '127-0-0-1--7876194c:121c66e8e17:-8000:0000000000001031'
+ name = 'name' visibility = 'public' isSpecification = 'false' ownerScope = 'instance'
+ changeability = 'changeable' targetScope = 'instance'>
+ <UML:StructuralFeature.multiplicity>
+ <UML:Multiplicity xmi.id = '127-0-0-1--7876194c:121c66e8e17:-8000:0000000000001032'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '127-0-0-1--7876194c:121c66e8e17:-8000:0000000000001033'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </UML:StructuralFeature.multiplicity>
+ <UML:StructuralFeature.type>
+ <UML:Class href = 'http://argouml.org/profiles/uml14/default-java.xmi#.:0000000000000859'/>
+ </UML:StructuralFeature.type>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ </UML:Class>
+ </UML:Namespace.ownedElement>
+ </UML:Package>
+ </UML:Namespace.ownedElement>
+ </UML:Package>
+ </UML:Namespace.ownedElement>
+ </UML:Package>
+ </UML:Namespace.ownedElement>
+ </UML:Package>
+ </UML:Namespace.ownedElement>
+ </UML:Package>
+ <UML:Stereotype xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000E73'
+ name = 'bean' isSpecification = 'false' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:Stereotype.baseClass>Class</UML:Stereotype.baseClass>
+ </UML:Stereotype>
+ <UML:Stereotype xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000E74'
+ name = 'dto' isSpecification = 'false' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:Stereotype.baseClass>Class</UML:Stereotype.baseClass>
+ </UML:Stereotype>
+ <UML:Stereotype xmi.id = '-64--88-99-15-6093e433:1215d2d04f2:-8000:0000000000000E78'
+ name = 'realize' isSpecification = 'false' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:Stereotype.baseClass>Abstraction</UML:Stereotype.baseClass>
+ </UML:Stereotype>
+ <UML:Package xmi.id = '-64--88-99-15--164a0c3b:121af97fc30:-8000:0000000000001031'
+ name = 'java.util' isSpecification = 'false' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:Namespace.ownedElement>
+ <UML:Class xmi.id = '-64--88-99-15--164a0c3b:121af97fc30:-8000:0000000000001032'
+ name = 'Set<Contact2>' visibility = 'public' isSpecification = 'false'
+ isRoot = 'false' isLeaf = 'false' isAbstract = 'false' isActive = 'false'/>
+ </UML:Namespace.ownedElement>
+ </UML:Package>
+ <UML:Stereotype xmi.id = '-64--88-99-15--164a0c3b:121af97fc30:-8000:0000000000001034'
+ name = 'dao' isSpecification = 'false' isRoot = 'false' isLeaf = 'false'
+ isAbstract = 'false'>
+ <UML:Stereotype.baseClass>Operation</UML:Stereotype.baseClass>
+ </UML:Stereotype>
+ </UML:Namespace.ownedElement>
+ </UML:Model>
+ <UML:Multiplicity xmi.id = '127-0-0-1-13652238:1219c622604:-8000:0000000000001233'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '127-0-0-1-13652238:1219c622604:-8000:0000000000001234'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ <UML:Multiplicity xmi.id = '127-0-0-1-13652238:1219c622604:-8000:000000000000123C'>
+ <UML:Multiplicity.range>
+ <UML:MultiplicityRange xmi.id = '127-0-0-1-13652238:1219c622604:-8000:000000000000123D'
+ lower = '1' upper = '1'/>
+ </UML:Multiplicity.range>
+ </UML:Multiplicity>
+ </XMI.content>
+</XMI>
Added: trunk/maven-eugene-plugin/src/it/generate-model-files/testIncludeWithOnlyProtocol/src/test/xmi/topiatest.zargo
===================================================================
(Binary files differ)
Property changes on: trunk/maven-eugene-plugin/src/it/generate-model-files/testIncludeWithOnlyProtocol/src/test/xmi/topiatest.zargo
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Modified: trunk/maven-eugene-plugin/src/it/generate-model-files/testIncludeWithOnlyProtocol/verify.groovy
===================================================================
--- trunk/maven-eugene-plugin/src/it/generate-model-files/testIncludeWithOnlyProtocol/verify.groovy 2009-12-16 20:22:40 UTC (rev 760)
+++ trunk/maven-eugene-plugin/src/it/generate-model-files/testIncludeWithOnlyProtocol/verify.groovy 2009-12-16 23:12:41 UTC (rev 761)
@@ -38,5 +38,47 @@
assert new File(basedir, 'target/generated-sources-xmi2StateModel/models/topiatest.properties').exists();
assert new File(basedir, 'target/generated-sources-xmi2StateModel/models/topiatest.statemodel').exists();
+//
+// Test phase
+//
+
+// Zargo to object model
+
+assert new File(basedir, 'target/generated-sources-zargo2ObjectModel').exists();
+assert new File(basedir, 'target/generated-sources-zargo2ObjectModel/test-xmi').exists();
+assert new File(basedir, 'target/generated-sources-zargo2ObjectModel/test-xmi/topiatest.properties').exists();
+assert new File(basedir, 'target/generated-sources-zargo2ObjectModel/test-xmi/topiatest.xmi').exists();
+
+assert new File(basedir, 'target/generated-sources-zargo2ObjectModel/test-models').exists();
+assert new File(basedir, 'target/generated-sources-zargo2ObjectModel/test-models/topiatest.properties').exists();
+assert new File(basedir, 'target/generated-sources-zargo2ObjectModel/test-models/topiatest.objectmodel').exists();
+
+// Zargo to state model
+
+assert new File(basedir, 'target/generated-sources-zargo2StateModel').exists();
+
+assert new File(basedir, 'target/generated-sources-zargo2StateModel/test-xmi').exists();
+assert new File(basedir, 'target/generated-sources-zargo2StateModel/test-xmi/topiatest.properties').exists();
+assert new File(basedir, 'target/generated-sources-zargo2StateModel/xmi/topiatest.xmi').exists();
+
+assert new File(basedir, 'target/generated-sources-zargo2StateModel/test-models').exists();
+assert new File(basedir, 'target/generated-sources-zargo2StateModel/test-models/topiatest.properties').exists();
+assert new File(basedir, 'target/generated-sources-zargo2StateModel/test-models/topiatest.statemodel').exists();
+
+// Xmi to object model
+
+assert new File(basedir, 'target/generated-sources-xmi2ObjectModel').exists();
+assert new File(basedir, 'target/generated-sources-xmi2ObjectModel/test-models').exists();
+assert new File(basedir, 'target/generated-sources-xmi2ObjectModel/test-models/topiatest.properties').exists();
+assert new File(basedir, 'target/generated-sources-xmi2ObjectModel/test-models/topiatest.objectmodel').exists();
+
+
+// Xmi to state model
+
+assert new File(basedir, 'target/generated-sources-xmi2StateModel').exists();
+assert new File(basedir, 'target/generated-sources-xmi2StateModel/test-models').exists();
+assert new File(basedir, 'target/generated-sources-xmi2StateModel/test-models/topiatest.properties').exists();
+assert new File(basedir, 'target/generated-sources-xmi2StateModel/test-models/topiatest.statemodel').exists();
+
return true;
Modified: trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/GeneratateModelFilesMojo.java
===================================================================
--- trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/GeneratateModelFilesMojo.java 2009-12-16 20:22:40 UTC (rev 760)
+++ trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/GeneratateModelFilesMojo.java 2009-12-16 23:12:41 UTC (rev 761)
@@ -26,7 +26,6 @@
import org.nuiton.eugene.ModelFileWriter;
import org.nuiton.eugene.ModelFileWriterConfiguration;
import org.nuiton.eugene.ModelFileWriterUtil;
-import org.nuiton.eugene.models.Model;
import org.nuiton.eugene.plugin.writer.BaseModelFileWriter;
import org.nuiton.eugene.plugin.writer.BaseXmiToModelFileWriter;
@@ -240,11 +239,6 @@
}
@Override
- public Class<? extends Model> getModelClass() {
- return modelClass;
- }
-
- @Override
public File getBasedir() {
return getProject().getBasedir();
}
Modified: trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/writer/BaseXmiToModelFileWriter.java
===================================================================
--- trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/writer/BaseXmiToModelFileWriter.java 2009-12-16 20:22:40 UTC (rev 760)
+++ trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/writer/BaseXmiToModelFileWriter.java 2009-12-16 23:12:41 UTC (rev 761)
@@ -48,7 +48,7 @@
*/
public abstract class BaseXmiToModelFileWriter extends BaseModelFileWriter {
public static final String PROP_RESOLVER = "resolver";
- public static final String PROP_EXTRACTED_PACKAGES = "extractedPackages";
+// public static final String PROP_EXTRACTED_PACKAGES = "extractedPackages";
public static final String PROP_FULL_PACKAGE_PATH = "fullPackagePath";
/**
@@ -97,6 +97,16 @@
return "models";
}
+ @Override
+ public String getDefaultTestInputDirectory() {
+ return "src/test/xmi";
+ }
+
+ @Override
+ public String getDefaultTestOutputDirectory() {
+ return "test-models";
+ }
+
protected TransformerFactory transformerFactory;
protected TransformerFactory getTransformerFactory() {
@@ -110,9 +120,9 @@
return getProperty(PROP_FULL_PACKAGE_PATH, String.class);
}
- public String getExtractedPackages() {
- return getProperty(PROP_EXTRACTED_PACKAGES, String.class);
- }
+// public String getExtractedPackages() {
+// return getProperty(PROP_EXTRACTED_PACKAGES, String.class);
+// }
public String getResolver() {
return getProperty(PROP_RESOLVER, String.class);
@@ -126,7 +136,7 @@
getLog().info("Processing XSL tranformation on " + inputDirectory + " for " + includePattern);
getLog().info(" with fullPackagePath : " + getFullPackagePath());
- getLog().info(" with extractedPackages : " + getExtractedPackages());
+// getLog().info(" with extractedPackages : " + getExtractedPackages());
// getLog().info(" with acceptedXmiTypes : " + getFullPackagePath());
getLog().info(" with resolver : " + getResolver());
Modified: trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/writer/XmiToObjectModelFileWriter.java
===================================================================
--- trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/writer/XmiToObjectModelFileWriter.java 2009-12-16 20:22:40 UTC (rev 760)
+++ trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/writer/XmiToObjectModelFileWriter.java 2009-12-16 23:12:41 UTC (rev 761)
@@ -44,8 +44,6 @@
public class XmiToObjectModelFileWriter extends BaseXmiToModelFileWriter {
- public static final String[] XMI_FILE_FILTER = new String[]{"*.xmi", "**/*.xmi"};
-
@Override
public <M extends Model> boolean acceptModel(Class<M> modelType) {
// accept only state models
Modified: trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/writer/ZargoModelFileWriter.java
===================================================================
--- trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/writer/ZargoModelFileWriter.java 2009-12-16 20:22:40 UTC (rev 760)
+++ trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/writer/ZargoModelFileWriter.java 2009-12-16 23:12:41 UTC (rev 761)
@@ -76,6 +76,16 @@
}
@Override
+ public String getDefaultTestInputDirectory() {
+ return "src/test/xmi";
+ }
+
+ @Override
+ public String getDefaultTestOutputDirectory() {
+ return "test-xmi";
+ }
+
+ @Override
public void generate(File outputDir, File inputDirectory, String includePattern, boolean overwrite) throws IOException {
PluginIOContext ioContext = new PluginIOContext();
1
0
r760 - trunk/maven-eugene-plugin/src/it/generate/generators
by tchemit@users.nuiton.org Dec. 16, 2009
by tchemit@users.nuiton.org Dec. 16, 2009
Dec. 16, 2009
Author: tchemit
Date: 2009-12-16 21:22:40 +0100 (Wed, 16 Dec 2009)
New Revision: 760
Modified:
trunk/maven-eugene-plugin/src/it/generate/generators/pom.xml
Log:
by default, modelType is objectmodel
Modified: trunk/maven-eugene-plugin/src/it/generate/generators/pom.xml
===================================================================
--- trunk/maven-eugene-plugin/src/it/generate/generators/pom.xml 2009-12-16 20:18:32 UTC (rev 759)
+++ trunk/maven-eugene-plugin/src/it/generate/generators/pom.xml 2009-12-16 20:22:40 UTC (rev 760)
@@ -85,7 +85,7 @@
<version>${project.version}</version>
<configuration>
<extraClassPathDirectory>target/classes</extraClassPathDirectory>
- <modelType>objectmodel</modelType>
+ <!--<modelType>objectmodel</modelType>-->
<testPhase>true</testPhase>
<generateResources>
<input>src/main/models</input>
1
0
r759 - in trunk: eugene/src/main/java/org/nuiton/eugene/java eugene/src/test/resources maven-eugene-plugin maven-eugene-plugin/src/it/generate/generators maven-eugene-plugin/src/it/generate/generators/src/main/java/org/nuiton/eugene/test/generator maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin
by tchemit@users.nuiton.org Dec. 16, 2009
by tchemit@users.nuiton.org Dec. 16, 2009
Dec. 16, 2009
Author: tchemit
Date: 2009-12-16 21:18:32 +0100 (Wed, 16 Dec 2009)
New Revision: 759
Added:
trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/GenerateFromModelsMojo.java
Modified:
trunk/eugene/src/main/java/org/nuiton/eugene/java/JavaGenerator.java
trunk/eugene/src/test/resources/log4j.properties
trunk/maven-eugene-plugin/pom.xml
trunk/maven-eugene-plugin/src/it/generate/generators/pom.xml
trunk/maven-eugene-plugin/src/it/generate/generators/src/main/java/org/nuiton/eugene/test/generator/BeanGenerator.java
trunk/maven-eugene-plugin/src/it/generate/generators/src/main/java/org/nuiton/eugene/test/generator/BeanTransformer.java
trunk/maven-eugene-plugin/src/it/generate/generators/src/main/java/org/nuiton/eugene/test/generator/Megatron.java
trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/AbstractEugeneMojo.java
trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/EugenePlugin.java
trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/GeneratateModelFilesMojo.java
Log:
register concrete templates as plexus components, pass log to info in tests, introduce GenerateFromModels mojo
Modified: trunk/eugene/src/main/java/org/nuiton/eugene/java/JavaGenerator.java
===================================================================
--- trunk/eugene/src/main/java/org/nuiton/eugene/java/JavaGenerator.java 2009-12-16 18:01:51 UTC (rev 758)
+++ trunk/eugene/src/main/java/org/nuiton/eugene/java/JavaGenerator.java 2009-12-16 20:18:32 UTC (rev 759)
@@ -50,6 +50,7 @@
*
* Mise a jour: $Date$
* par : $Author$
+ * @plexus.component role="org.nuiton.eugene.Template" role-hint="org.nuiton.eugene.java.JavaGenerator"
*/
public class JavaGenerator extends ObjectModelGenerator {
Modified: trunk/eugene/src/test/resources/log4j.properties
===================================================================
--- trunk/eugene/src/test/resources/log4j.properties 2009-12-16 18:01:51 UTC (rev 758)
+++ trunk/eugene/src/test/resources/log4j.properties 2009-12-16 20:18:32 UTC (rev 759)
@@ -7,5 +7,5 @@
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] (%F:%L) %M - %m%n
# package level
-log4j.logger.org.nuiton.eugene=DEBUG
+log4j.logger.org.nuiton.eugene=INFO
log4j.logger.org.apache.commons.digester=INFO
\ No newline at end of file
Modified: trunk/maven-eugene-plugin/pom.xml
===================================================================
--- trunk/maven-eugene-plugin/pom.xml 2009-12-16 18:01:51 UTC (rev 758)
+++ trunk/maven-eugene-plugin/pom.xml 2009-12-16 20:18:32 UTC (rev 759)
@@ -100,200 +100,10 @@
<pluginManagement>
<plugins>
- <!--plugin>
- <artifactId>maven-javadoc-plugin</artifactId>
- <version>${javadoc.version}</version>
- <configuration>
- <docencoding>${project.reporting.outputEncoding}</docencoding>
- <encoding>${project.reporting.outputEncoding}</encoding>
- <charset>${project.reporting.outputEncoding}</charset>
- <quiet>true</quiet>
- <skip>${maven.javadoc.skip}</skip>
- <taglets>
- <taglet>
- <tagletClass>org.apache.maven.tools.plugin.javadoc.MojoAggregatorTypeTaglet
- </tagletClass>
- <tagletArtifact>
- <groupId>org.apache.maven.plugin-tools</groupId>
- <artifactId>maven-plugin-tools-javadoc</artifactId>
- <version>2.4.2</version>
- </tagletArtifact>
- </taglet>
- <taglet>
- <tagletClass>org.apache.maven.tools.plugin.javadoc.MojoComponentFieldTaglet
- </tagletClass>
- <tagletArtifact>
- <groupId>org.apache.maven.plugin-tools</groupId>
- <artifactId>maven-plugin-tools-javadoc</artifactId>
- <version>2.4.2</version>
- </tagletArtifact>
- </taglet>
- <taglet>
- <tagletClass>org.apache.maven.tools.plugin.javadoc.MojoConfiguratorTypeTaglet
- </tagletClass>
- <tagletArtifact>
- <groupId>org.apache.maven.plugin-tools</groupId>
- <artifactId>maven-plugin-tools-javadoc</artifactId>
- <version>2.4.2</version>
- </tagletArtifact>
- </taglet>
- <taglet>
- <tagletClass>org.apache.maven.tools.plugin.javadoc.MojoExecuteTypeTaglet</tagletClass>
- <tagletArtifact>
- <groupId>org.apache.maven.plugin-tools</groupId>
- <artifactId>maven-plugin-tools-javadoc</artifactId>
- <version>2.4.2</version>
- </tagletArtifact>
- </taglet>
- <taglet>
- <tagletClass>org.apache.maven.tools.plugin.javadoc.MojoExecutionStrategyTypeTaglet
- </tagletClass>
- <tagletArtifact>
- <groupId>org.apache.maven.plugin-tools</groupId>
- <artifactId>maven-plugin-tools-javadoc</artifactId>
- <version>2.4.2</version>
- </tagletArtifact>
- </taglet>
- <taglet>
- <tagletClass>org.apache.maven.tools.plugin.javadoc.MojoGoalTypeTaglet</tagletClass>
- <tagletArtifact>
- <groupId>org.apache.maven.plugin-tools</groupId>
- <artifactId>maven-plugin-tools-javadoc</artifactId>
- <version>2.4.2</version>
- </tagletArtifact>
- </taglet>
- <taglet>
- <tagletClass>org.apache.maven.tools.plugin.javadoc.MojoInheritByDefaultTypeTaglet
- </tagletClass>
- <tagletArtifact>
- <groupId>org.apache.maven.plugin-tools</groupId>
- <artifactId>maven-plugin-tools-javadoc</artifactId>
- <version>2.4.2</version>
- </tagletArtifact>
- </taglet>
- <taglet>
- <tagletClass>org.apache.maven.tools.plugin.javadoc.MojoInstantiationStrategyTypeTaglet
- </tagletClass>
- <tagletArtifact>
- <groupId>org.apache.maven.plugin-tools</groupId>
- <artifactId>maven-plugin-tools-javadoc</artifactId>
- <version>2.4.2</version>
- </tagletArtifact>
- </taglet>
- <taglet>
- <tagletClass>org.apache.maven.tools.plugin.javadoc.MojoParameterFieldTaglet
- </tagletClass>
- <tagletArtifact>
- <groupId>org.apache.maven.plugin-tools</groupId>
- <artifactId>maven-plugin-tools-javadoc</artifactId>
- <version>2.4.2</version>
- </tagletArtifact>
- </taglet>
- <taglet>
- <tagletClass>org.apache.maven.tools.plugin.javadoc.MojoPhaseTypeTaglet</tagletClass>
- <tagletArtifact>
- <groupId>org.apache.maven.plugin-tools</groupId>
- <artifactId>maven-plugin-tools-javadoc</artifactId>
- <version>2.4.2</version>
- </tagletArtifact>
- </taglet>
- <taglet>
- <tagletClass>org.apache.maven.tools.plugin.javadoc.MojoReadOnlyFieldTaglet</tagletClass>
- <tagletArtifact>
- <groupId>org.apache.maven.plugin-tools</groupId>
- <artifactId>maven-plugin-tools-javadoc</artifactId>
- <version>2.4.2</version>
- </tagletArtifact>
- </taglet>
- <taglet>
- <tagletClass>org.apache.maven.tools.plugin.javadoc.MojoRequiredFieldTaglet</tagletClass>
- <tagletArtifact>
- <groupId>org.apache.maven.plugin-tools</groupId>
- <artifactId>maven-plugin-tools-javadoc</artifactId>
- <version>2.4.2</version>
- </tagletArtifact>
- </taglet>
- <taglet>
- <tagletClass>
- org.apache.maven.tools.plugin.javadoc.MojoRequiresDependencyResolutionTypeTaglet
- </tagletClass>
- <tagletArtifact>
- <groupId>org.apache.maven.plugin-tools</groupId>
- <artifactId>maven-plugin-tools-javadoc</artifactId>
- <version>2.4.2</version>
- </tagletArtifact>
- </taglet>
- <taglet>
- <tagletClass>
- org.apache.maven.tools.plugin.javadoc.MojoRequiresDirectInvocationTypeTaglet
- </tagletClass>
- <tagletArtifact>
- <groupId>org.apache.maven.plugin-tools</groupId>
- <artifactId>maven-plugin-tools-javadoc</artifactId>
- <version>2.4.2</version>
- </tagletArtifact>
- </taglet>
- <taglet>
- <tagletClass>org.apache.maven.tools.plugin.javadoc.MojoRequiresOnLineTypeTaglet
- </tagletClass>
- <tagletArtifact>
- <groupId>org.apache.maven.plugin-tools</groupId>
- <artifactId>maven-plugin-tools-javadoc</artifactId>
- <version>2.4.2</version>
- </tagletArtifact>
- </taglet>
- <taglet>
- <tagletClass>org.apache.maven.tools.plugin.javadoc.MojoRequiresProjectTypeTaglet
- </tagletClass>
- <tagletArtifact>
- <groupId>org.apache.maven.plugin-tools</groupId>
- <artifactId>maven-plugin-tools-javadoc</artifactId>
- <version>2.4.2</version>
- </tagletArtifact>
- </taglet>
- <taglet>
- <tagletClass>org.apache.maven.tools.plugin.javadoc.MojoRequiresReportsTypeTaglet
- </tagletClass>
- <tagletArtifact>
- <groupId>org.apache.maven.plugin-tools</groupId>
- <artifactId>maven-plugin-tools-javadoc</artifactId>
- <version>2.4.2</version>
- </tagletArtifact>
- </taglet>
-
- <taglet>
- <tagletClass>org.codehaus.plexus.javadoc.PlexusComponentTaglet</tagletClass>
- <tagletArtifact>
- <groupId>org.codehaus.plexus</groupId>
- <artifactId>plexus-javadoc</artifactId>
- <version>1.0</version>
- </tagletArtifact>
- </taglet>
- <taglet>
- <tagletClass>org.codehaus.plexus.javadoc.PlexusConfigurationTaglet</tagletClass>
- <tagletArtifact>
- <groupId>org.codehaus.plexus</groupId>
- <artifactId>plexus-javadoc</artifactId>
- <version>1.0</version>
- </tagletArtifact>
- </taglet>
- <taglet>
- <tagletClass>org.codehaus.plexus.javadoc.PlexusRequirementTaglet</tagletClass>
- <tagletArtifact>
- <groupId>org.codehaus.plexus</groupId>
- <artifactId>plexus-javadoc</artifactId>
- <version>1.0</version>
- </tagletArtifact>
- </taglet>
- </taglets>
- </configuration>
- </plugin-->
-
<plugin>
<artifactId>maven-invoker-plugin</artifactId>
<version>1.4</version>
</plugin>
-
</plugins>
</pluginManagement>
@@ -306,200 +116,6 @@
<plugin>
<artifactId>maven-plugin-plugin</artifactId>
</plugin>
-
-
- <!--plugin>
- <artifactId>maven-javadoc-plugin</artifactId>
- <version>${javadoc.version}</version>
- <configuration>
- <quiet>true</quiet>
- <skip>${maven.javadoc.skip}</skip>
- <docencoding>${project.build.sourceEncoding}</docencoding>
- <encoding>${project.build.sourceEncoding}</encoding>
- <charset>${project.reporting.outputEncoding}</charset>
- <excludePackageNames>${maven.javadoc.excludePackageNames}</excludePackageNames>
- <taglets>
- <taglet>
- <tagletClass>org.apache.maven.tools.plugin.javadoc.MojoAggregatorTypeTaglet</tagletClass>
- <tagletArtifact>
- <groupId>org.apache.maven.plugin-tools</groupId>
- <artifactId>maven-plugin-tools-javadoc</artifactId>
- <version>2.4.2</version>
- </tagletArtifact>
- </taglet>
- <taglet>
- <tagletClass>org.apache.maven.tools.plugin.javadoc.MojoComponentFieldTaglet</tagletClass>
- <tagletArtifact>
- <groupId>org.apache.maven.plugin-tools</groupId>
- <artifactId>maven-plugin-tools-javadoc</artifactId>
- <version>2.4.2</version>
- </tagletArtifact>
- </taglet>
- <taglet>
- <tagletClass>org.apache.maven.tools.plugin.javadoc.MojoConfiguratorTypeTaglet</tagletClass>
- <tagletArtifact>
- <groupId>org.apache.maven.plugin-tools</groupId>
- <artifactId>maven-plugin-tools-javadoc</artifactId>
- <version>2.4.2</version>
- </tagletArtifact>
- </taglet>
- <taglet>
- <tagletClass>org.apache.maven.tools.plugin.javadoc.MojoExecuteTypeTaglet</tagletClass>
- <tagletArtifact>
- <groupId>org.apache.maven.plugin-tools</groupId>
- <artifactId>maven-plugin-tools-javadoc</artifactId>
- <version>2.4.2</version>
- </tagletArtifact>
- </taglet>
- <taglet>
- <tagletClass>org.apache.maven.tools.plugin.javadoc.MojoExecutionStrategyTypeTaglet
- </tagletClass>
- <tagletArtifact>
- <groupId>org.apache.maven.plugin-tools</groupId>
- <artifactId>maven-plugin-tools-javadoc</artifactId>
- <version>2.4.2</version>
- </tagletArtifact>
- </taglet>
- <taglet>
- <tagletClass>org.apache.maven.tools.plugin.javadoc.MojoGoalTypeTaglet</tagletClass>
- <tagletArtifact>
- <groupId>org.apache.maven.plugin-tools</groupId>
- <artifactId>maven-plugin-tools-javadoc</artifactId>
- <version>2.4.2</version>
- </tagletArtifact>
- </taglet>
- <taglet>
- <tagletClass>org.apache.maven.tools.plugin.javadoc.MojoInheritByDefaultTypeTaglet
- </tagletClass>
- <tagletArtifact>
- <groupId>org.apache.maven.plugin-tools</groupId>
- <artifactId>maven-plugin-tools-javadoc</artifactId>
- <version>2.4.2</version>
- </tagletArtifact>
- </taglet>
- <taglet>
- <tagletClass>org.apache.maven.tools.plugin.javadoc.MojoInstantiationStrategyTypeTaglet
- </tagletClass>
- <tagletArtifact>
- <groupId>org.apache.maven.plugin-tools</groupId>
- <artifactId>maven-plugin-tools-javadoc</artifactId>
- <version>2.4.2</version>
- </tagletArtifact>
- </taglet>
- <taglet>
- <tagletClass>org.apache.maven.tools.plugin.javadoc.MojoParameterFieldTaglet</tagletClass>
- <tagletArtifact>
- <groupId>org.apache.maven.plugin-tools</groupId>
- <artifactId>maven-plugin-tools-javadoc</artifactId>
- <version>2.4.2</version>
- </tagletArtifact>
- </taglet>
- <taglet>
- <tagletClass>org.apache.maven.tools.plugin.javadoc.MojoPhaseTypeTaglet</tagletClass>
- <tagletArtifact>
- <groupId>org.apache.maven.plugin-tools</groupId>
- <artifactId>maven-plugin-tools-javadoc</artifactId>
- <version>2.4.2</version>
- </tagletArtifact>
- </taglet>
- <taglet>
- <tagletClass>org.apache.maven.tools.plugin.javadoc.MojoReadOnlyFieldTaglet</tagletClass>
- <tagletArtifact>
- <groupId>org.apache.maven.plugin-tools</groupId>
- <artifactId>maven-plugin-tools-javadoc</artifactId>
- <version>2.4.2</version>
- </tagletArtifact>
- </taglet>
- <taglet>
- <tagletClass>org.apache.maven.tools.plugin.javadoc.MojoRequiredFieldTaglet</tagletClass>
- <tagletArtifact>
- <groupId>org.apache.maven.plugin-tools</groupId>
- <artifactId>maven-plugin-tools-javadoc</artifactId>
- <version>2.4.2</version>
- </tagletArtifact>
- </taglet>
- <taglet>
- <tagletClass>
- org.apache.maven.tools.plugin.javadoc.MojoRequiresDependencyResolutionTypeTaglet
- </tagletClass>
- <tagletArtifact>
- <groupId>org.apache.maven.plugin-tools</groupId>
- <artifactId>maven-plugin-tools-javadoc</artifactId>
- <version>2.4.2</version>
- </tagletArtifact>
- </taglet>
- <taglet>
- <tagletClass>org.apache.maven.tools.plugin.javadoc.MojoRequiresDirectInvocationTypeTaglet
- </tagletClass>
- <tagletArtifact>
- <groupId>org.apache.maven.plugin-tools</groupId>
- <artifactId>maven-plugin-tools-javadoc</artifactId>
- <version>2.4.2</version>
- </tagletArtifact>
- </taglet>
- <taglet>
- <tagletClass>org.apache.maven.tools.plugin.javadoc.MojoRequiresOnLineTypeTaglet
- </tagletClass>
- <tagletArtifact>
- <groupId>org.apache.maven.plugin-tools</groupId>
- <artifactId>maven-plugin-tools-javadoc</artifactId>
- <version>2.4.2</version>
- </tagletArtifact>
- </taglet>
- <taglet>
- <tagletClass>org.apache.maven.tools.plugin.javadoc.MojoRequiresProjectTypeTaglet
- </tagletClass>
- <tagletArtifact>
- <groupId>org.apache.maven.plugin-tools</groupId>
- <artifactId>maven-plugin-tools-javadoc</artifactId>
- <version>2.4.2</version>
- </tagletArtifact>
- </taglet>
- <taglet>
- <tagletClass>org.apache.maven.tools.plugin.javadoc.MojoRequiresReportsTypeTaglet
- </tagletClass>
- <tagletArtifact>
- <groupId>org.apache.maven.plugin-tools</groupId>
- <artifactId>maven-plugin-tools-javadoc</artifactId>
- <version>2.4.2</version>
- </tagletArtifact>
- </taglet>
-
- <taglet>
- <tagletClass>org.codehaus.plexus.javadoc.PlexusComponentTaglet</tagletClass>
- <tagletArtifact>
- <groupId>org.codehaus.plexus</groupId>
- <artifactId>plexus-javadoc</artifactId>
- <version>1.0</version>
- </tagletArtifact>
- </taglet>
- <taglet>
- <tagletClass>org.codehaus.plexus.javadoc.PlexusConfigurationTaglet</tagletClass>
- <tagletArtifact>
- <groupId>org.codehaus.plexus</groupId>
- <artifactId>plexus-javadoc</artifactId>
- <version>1.0</version>
- </tagletArtifact>
- </taglet>
- <taglet>
- <tagletClass>org.codehaus.plexus.javadoc.PlexusRequirementTaglet</tagletClass>
- <tagletArtifact>
- <groupId>org.codehaus.plexus</groupId>
- <artifactId>plexus-javadoc</artifactId>
- <version>1.0</version>
- </tagletArtifact>
- </taglet>
- </taglets>
- </configuration>
- <reportSets>
- <reportSet>
- <reports>
- <report>javadoc</report>
- <report>test-javadoc</report>
- </reports>
- </reportSet>
- </reportSets>
- </plugin-->
</plugins>
</reporting>
Modified: trunk/maven-eugene-plugin/src/it/generate/generators/pom.xml
===================================================================
--- trunk/maven-eugene-plugin/src/it/generate/generators/pom.xml 2009-12-16 18:01:51 UTC (rev 758)
+++ trunk/maven-eugene-plugin/src/it/generate/generators/pom.xml 2009-12-16 20:18:32 UTC (rev 759)
@@ -75,9 +75,7 @@
</executions>
<configuration>
<includes>**/*.java</includes>
- <filters>
- org.nuiton.processor.filters.GeneratorTemplatesFilter
- </filters>
+ <filters>org.nuiton.processor.filters.GeneratorTemplatesFilter</filters>
</configuration>
</plugin>
@@ -99,12 +97,11 @@
<id>Test Regression Generator</id>
<phase>generate-test-sources</phase>
<configuration>
- <!--<reader>org.nuiton.eugene.ObjectModelReader</reader>-->
<includes>dtotest.objectmodel</includes>
<templates>org.nuiton.eugene.test.generator.BeanGenerator</templates>
</configuration>
<goals>
- <goal>generate</goal>
+ <goal>generate-from-models</goal>
</goals>
</execution>
<execution>
@@ -115,19 +112,18 @@
<templates>org.nuiton.eugene.java.JavaGenerator</templates>
</configuration>
<goals>
- <goal>generate</goal>
+ <goal>generate-from-models</goal>
</goals>
</execution>
<execution>
<id>Test Bean Transformer</id>
<phase>generate-test-sources</phase>
<configuration>
- <!--<reader>org.nuiton.eugene.ObjectModelReader</reader>-->
<includes>dtotest2.objectmodel</includes>
<templates>org.nuiton.eugene.test.generator.BeanTransformer</templates>
</configuration>
<goals>
- <goal>generate</goal>
+ <goal>generate-from-models</goal>
</goals>
</execution>
</executions>
Modified: trunk/maven-eugene-plugin/src/it/generate/generators/src/main/java/org/nuiton/eugene/test/generator/BeanGenerator.java
===================================================================
--- trunk/maven-eugene-plugin/src/it/generate/generators/src/main/java/org/nuiton/eugene/test/generator/BeanGenerator.java 2009-12-16 18:01:51 UTC (rev 758)
+++ trunk/maven-eugene-plugin/src/it/generate/generators/src/main/java/org/nuiton/eugene/test/generator/BeanGenerator.java 2009-12-16 20:18:32 UTC (rev 759)
@@ -27,6 +27,7 @@
*
* Mise a jour: $Date$
* par : $Author: chemit $
+* @plexus.component role="org.nuiton.eugene.Template" role-hint="org.nuiton.topia.generator.BeanGenerator"
*/
package org.nuiton.eugene.test.generator;
@@ -63,6 +64,7 @@
/**
* DTO generator
+ * @plexus.component role="org.nuiton.eugene.Template" role-hint="org.nuiton.eugene.test.generator.BeanGenerator"
*/
public class BeanGenerator extends ObjectModelGenerator {
Modified: trunk/maven-eugene-plugin/src/it/generate/generators/src/main/java/org/nuiton/eugene/test/generator/BeanTransformer.java
===================================================================
--- trunk/maven-eugene-plugin/src/it/generate/generators/src/main/java/org/nuiton/eugene/test/generator/BeanTransformer.java 2009-12-16 18:01:51 UTC (rev 758)
+++ trunk/maven-eugene-plugin/src/it/generate/generators/src/main/java/org/nuiton/eugene/test/generator/BeanTransformer.java 2009-12-16 20:18:32 UTC (rev 759)
@@ -42,6 +42,7 @@
* <p/>
* Mise a jour: $Date$
* par : $Author: fdesbois $
+ * @plexus.component role="org.nuiton.eugene.Template" role-hint="org.nuiton.eugene.test.generator.BeanTransformer"
*/
public class BeanTransformer extends ObjectModelTransformerToJava {
Modified: trunk/maven-eugene-plugin/src/it/generate/generators/src/main/java/org/nuiton/eugene/test/generator/Megatron.java
===================================================================
--- trunk/maven-eugene-plugin/src/it/generate/generators/src/main/java/org/nuiton/eugene/test/generator/Megatron.java 2009-12-16 18:01:51 UTC (rev 758)
+++ trunk/maven-eugene-plugin/src/it/generate/generators/src/main/java/org/nuiton/eugene/test/generator/Megatron.java 2009-12-16 20:18:32 UTC (rev 759)
@@ -15,6 +15,7 @@
*
* Mise a jour: $Date$
* par : $Author$
+ * @plexus.component role="org.nuiton.eugene.Template" role-hint="org.nuiton.eugene.test.generator.Megatron"
*/
public class Megatron extends ObjectModelTransformerToJava {
Modified: trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/AbstractEugeneMojo.java
===================================================================
--- trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/AbstractEugeneMojo.java 2009-12-16 18:01:51 UTC (rev 758)
+++ trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/AbstractEugeneMojo.java 2009-12-16 20:18:32 UTC (rev 759)
@@ -84,8 +84,10 @@
protected boolean testPhase;
/**
* The type of model to be used.
+ * <p/>
+ * By default, use an {@code objectmodel}.
*
- * @parameter expression="${eugene.modelType}"
+ * @parameter expression="${eugene.modelType}" default-value="objectmodel"
* @required
* @since 2.0.0
*/
Modified: trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/EugenePlugin.java
===================================================================
--- trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/EugenePlugin.java 2009-12-16 18:01:51 UTC (rev 758)
+++ trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/EugenePlugin.java 2009-12-16 20:18:32 UTC (rev 759)
@@ -53,9 +53,9 @@
* <p/>
* Last update: $Date$
* by : $Author$
- * @goal generate-old
+ * @goal generate
* @requiresProject true
- * @deprecated since 2.0.0, use now the {@link GenerateMojo}.
+ * @deprecated since 2.0.0, use now the {@link GenerateFromModelsMojo}.
*/
@Deprecated
public class EugenePlugin extends EugeneAbstractMojo {
Modified: trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/GeneratateModelFilesMojo.java
===================================================================
--- trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/GeneratateModelFilesMojo.java 2009-12-16 18:01:51 UTC (rev 758)
+++ trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/GeneratateModelFilesMojo.java 2009-12-16 20:18:32 UTC (rev 759)
@@ -42,7 +42,7 @@
* Time: 00:22:37
*
* @goal generate-model-files
- * @projectRequired true
+ * @requiresProject true
* @requiresDependencyResolution compile
*/
public class GeneratateModelFilesMojo extends AbstractEugeneMojo implements ModelFileWriterConfiguration {
@@ -68,18 +68,18 @@
* <p/>
* Example :
* <pre>
- * <includes>
- * <include>zargo:<include>
- * <include>src/main/xmi2:**\/*.zargo<include>
- * <include>zargo:src/main/xmi:**\/*.zargo2<include>
- * </includes>
+ * <inputFiles>
+ * <inputFile>zargo:<inputFile>
+ * <inputFile>src/main/xmi2:**\/*.zargo<inputFile>
+ * <inputFile>zargo:src/main/xmi:**\/*.zargo2<inputFile>
+ * </inputFiles>
* </pre>
*
- * @parameter expression="${eugene.includes}"
+ * @parameter expression="${eugene.inputFiles}"
* @required
* @since 2.0.0
*/
- protected String[] includes;
+ protected String[] inputFiles;
/**
* Where to generate files.
*
@@ -109,14 +109,14 @@
* @since 2.0.0
*/
protected String fullPackagePath;
+// /**
+// * Nom du paquetage à générer
+// *
+// * @parameter expression="${generator.extractedPackages}" default-value="${project.groupId}.${project.artifactId}"
+// * @since 2.0.0
+// */
+// protected String extractedPackages;
/**
- * Nom du paquetage à générer
- *
- * @parameter expression="${generator.extractedPackages}" default-value="${project.groupId}.${project.artifactId}"
- * @since 2.0.0
- */
- protected String extractedPackages;
- /**
* Nom du resolver a utiliser
*
* @parameter expression="${generator.resolver}" default-value="org.nuiton.util.ResourceResolver"
@@ -124,25 +124,15 @@
*/
protected String resolver;
/**
- * An extra directory to be added to the classpath.
- *
- * @parameter expression="${eugene.extraClassPathDirectory}"
- * @since 2.0.0
- */
- protected File extraClassPathDirectory;
-
- /**
* All available writers
*
* @component role="org.nuiton.eugene.ModelFileWriter"
*/
protected Map<String, ModelFileWriter> writers;
-
/**
* All available writers for the given {@link #getModelClass()}
*/
protected Set<ModelFileWriter> availableWriters;
-
/**
* Writers to process
*/
@@ -151,37 +141,39 @@
@Override
protected boolean init() throws Exception {
boolean b = super.init();
- if (b) {
- if (includes.length == 0) {
- throw new MojoExecutionException("Must specify something to include using the includes property");
- }
+ if (!b) {
+ return false;
+ }
+ if (inputFiles.length == 0) {
+ throw new MojoExecutionException("Must specify something to include using the includes property");
+ }
- availableWriters = ModelFileWriterUtil.filterWriterForModelType(writers, getModelClass());
+ availableWriters = ModelFileWriterUtil.filterWriterForModelType(writers, getModelClass());
- if (availableWriters.isEmpty()) {
- throw new MojoExecutionException("Could not find any writer in class-path.");
- }
+ if (availableWriters.isEmpty()) {
+ throw new MojoExecutionException("Could not find any writer in class-path.");
+ }
- for (ModelFileWriter writer : availableWriters) {
- if (writer instanceof BaseModelFileWriter) {
- ((BaseModelFileWriter) writer).setLog(getLog());
- }
+ for (ModelFileWriter writer : availableWriters) {
+ if (writer instanceof BaseModelFileWriter) {
+ // add log support
+ ((BaseModelFileWriter) writer).setLog(getLog());
}
+ }
- plan = new ArrayList<ModelFileWriter>();
+ plan = new ArrayList<ModelFileWriter>();
- // first pass to detect top level writers
- for (String include : includes) {
+ // first pass to detect top level writers
+ for (String include : inputFiles) {
- getLog().info("Register include : " + include);
- ModelFileWriterUtil.registerInclude(this, include, plan);
- }
+ getLog().info("Register include : " + include);
+ ModelFileWriterUtil.registerInclude(this, include, plan);
+ }
- if (properties == null) {
- properties = new TreeMap<String, Object>();
- }
+ if (properties == null) {
+ properties = new TreeMap<String, Object>();
}
- return b;
+ return true;
}
@Override
@@ -272,6 +264,7 @@
List<URL> urls = new ArrayList<URL>();
try {
ClassLoader loader;
+ File extraClassPathDirectory = getExtraClassPathDirectory();
if (extraClassPathDirectory != null) {
if (verbose) {
getLog().info("Add extra directory in generator's classLoader : " + extraClassPathDirectory);
Added: trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/GenerateFromModelsMojo.java
===================================================================
--- trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/GenerateFromModelsMojo.java (rev 0)
+++ trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/GenerateFromModelsMojo.java 2009-12-16 20:18:32 UTC (rev 759)
@@ -0,0 +1,501 @@
+package org.nuiton.eugene.plugin;
+
+import org.apache.commons.lang.StringUtils;
+import org.apache.maven.artifact.Artifact;
+import org.apache.maven.model.Resource;
+import org.apache.maven.plugin.MojoExecutionException;
+import org.apache.maven.plugin.MojoFailureException;
+import org.apache.maven.project.MavenProject;
+import org.nuiton.eugene.ModelReader;
+import org.nuiton.eugene.Template;
+import org.nuiton.eugene.models.Model;
+import org.nuiton.plugin.PluginHelper;
+import org.nuiton.plugin.PluginIOContext;
+
+import java.io.File;
+import java.io.IOException;
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.net.URLClassLoader;
+import java.util.*;
+
+/**
+ * Created: 15 déc. 2009
+ *
+ * @author Tony Chemit <chemit(a)codelutin.com> Copyright Code Lutin
+ * @version $Revision$
+ * <p/>
+ * Mise a jour: $Date$ par :
+ * $Author: tchemit $
+ * @goal generate-from-models
+ * @requiresProject true
+ * @since 2.0.0 (replace previous goal {@link EugenePlugin}).
+ */
+public class GenerateFromModelsMojo extends AbstractEugeneMojo {
+
+ /**
+ * Les entrées sorties du plugin.
+ * <p/>
+ * <p/>
+ * <p/>
+ * En entrée on demande des répertoires où chercher les fichiers objectmodel a convertir.
+ * <p/>
+ * En sortie on demande le répertoire ou generer les classes java.
+ * <p/>
+ * Par défaut on a les valeurs suivantes :
+ * </p>
+ * <pre>
+ * <generateResources>
+ * </p>
+ * <input>target/generated-sources/models</input>
+ * </p>
+ * <output>target/generated-sources/java</output>
+ * </p>
+ * </generateResources>
+ * </pre>
+ * </p>
+ * <p/>
+ * Note: si {@link #testPhase} est activée, les valeurs par défaut sont :
+ * </p>
+ * <pre>
+ * <generateResources>
+ * </p>
+ * <input>target/generated-sources/test-models</input>
+ * </p>
+ * <output>target/generated-sources/test-java</output>
+ * </p>
+ * </generateResources>
+ * </pre>
+ *
+ * @parameter
+ * @since 1.0.0-rc-8
+ */
+ protected PluginIOContext generateResources;
+ /**
+ * Templates à utiliser, séparés par des virgules.
+ *
+ * @parameter expression="${eugene.templates}"
+ * @required
+ * @since 0.50
+ */
+ protected String templates;
+ /**
+ * Templates à ne pas utiliser.
+ *
+ * @parameter expression="${eugene.excludeTemplates}"
+ * @since 0.63
+ */
+ protected String[] excludeTemplates;
+ /**
+ * Fichier à inclure.
+ *
+ * @parameter expression="${eugene.includes}" default-value="*.*model"
+ * @since 0.50
+ */
+ protected String includes;
+ /**
+ * Nom par défaut du paquetage généré.
+ *
+ * @parameter expression="${eugene.defaultPackage}" default-value="${project.groupId}.${project.artifactId}"
+ * @since 0.50
+ */
+ protected String defaultPackage;
+ /**
+ * List of packages to generate (comma separated).
+ * <p/>
+ * If the parameter is not filled, will generate all packages.
+ *
+ * @parameter expression="${eugene.generatedPackages}"
+ * @since 1.0.0-rc-8
+ */
+ protected String generatedPackages;
+ /**
+ * To define a specific reader to use to transform input files in a Model to generate.
+ * <p/>
+ * If nothing is specified, will use the reader corresponding to the given {@link #modelType}.
+ *
+ * @parameter expression="${eugene.reader}"
+ * @since 1.1.0
+ */
+ protected String reader;
+ /**
+ * All available writers
+ *
+ * @component role="org.nuiton.eugene.ModelReader"
+ */
+ protected Map<String, ModelReader<?>> availableReaders;
+ /**
+ * All available templates
+ *
+ * @component role="org.nuiton.eugene.Template"
+ */
+ protected Map<String, Template<?>> availableTemplates;
+
+ /**
+ * model reader instance
+ */
+ protected ModelReader<?> modelReader;
+ /**
+ * fixed classloader
+ */
+ protected ClassLoader fixedClassLoader;
+ /**
+ * list of templates to apply
+ */
+ protected List<Template<Model>> templatesList;
+ /**
+ * list of model files to load in the memory reader via the model reader
+ */
+ protected File[] modelFiles;
+
+ @Override
+ protected boolean init() throws Exception {
+ boolean b = super.init();
+ if (!b) {
+ // something wrong from the super class, skip now
+ return false;
+ }
+
+ // init goal io context
+
+ generateResources = initResources();
+
+ if (generateResources == null) {
+ // could not be init...
+ return false;
+ }
+
+ // init reader
+
+ modelReader = getModelReader();
+ if (modelReader == null) {
+ // could not be init...
+ return false;
+ }
+
+ // get templates to use
+
+ templatesList = getTemplates(getFixedClassLoader());
+
+ if (templatesList == null || templatesList.isEmpty()) {
+ getLog().error("No template to apply.");
+ return false;
+ }
+
+ //TODO Check excludeTemplates are sane :)
+
+ // get models to treate
+
+ modelFiles = getModelFiles(generateResources);
+ if (modelFiles.length == 0) {
+ // can skip
+ getLog().warn("No model to treate.");
+ return false;
+ }
+ return true;
+ }
+
+ @Override
+ public void doAction() throws MojoExecutionException, MojoFailureException {
+
+ getLog().info("Generating java sources from models");
+ getLog().info(" reader : " + modelReader.getClass().getName());
+ getLog().info(" includes : " + includes);
+ getLog().info(" using template : " + templates);
+ getLog().info(" using defaultPackage : " + defaultPackage);
+
+ if (verbose) {
+ for (File m : modelFiles) {
+ getLog().info("will treate model file : " + m);
+ }
+ }
+
+ // prepare template properties
+
+ Properties templateProperties = new Properties();
+ templateProperties.setProperty(Template.PROP_DEFAULT_PACKAGE, defaultPackage);
+ templateProperties.setProperty(Template.PROP_OVERWRITE, String.valueOf(overwrite));
+ templateProperties.setProperty(Template.PROP_ENCODING, encoding);
+ templateProperties.setProperty(Template.PROP_LAST_MODIFIED_SOURCE, String.valueOf(modelReader.getLastModifiedSource()));
+ if (StringUtils.isEmpty(generatedPackages)) {
+ getLog().info(" generating all packages");
+ } else {
+ templateProperties.setProperty(Template.PROP_GENERATED_PACKAGES, generatedPackages);
+ getLog().info(" generating only for packages " + generatedPackages);
+ }
+ templateProperties.setProperty(Template.PROP_EXCLUDE_TEMPLATES, getExcludeTemplatesAsString());
+
+ // read the model
+
+ Model model = modelReader.read(modelFiles);
+
+ // apply all templates to the model
+
+ for (Template<Model> template : templatesList) {
+ getLog().info("Apply " + template.getClass().getSimpleName() + " generator");
+
+ try {
+
+ // init template
+ template.setProperties(templateProperties);
+
+ // apply template
+ template.applyTemplate(model, generateResources.getOutput());
+ } catch (IOException eee) {
+ throw new MojoExecutionException("Generation problem", eee);
+ }
+ }
+
+ // fix compile root sources
+
+ fixCompileSourceRoots();
+
+ }
+
+ /**
+ * Init the {@link #generateResources} io context and return it.
+ * <p/>
+ * <b>Note:</b> If something wrong appears, then return a {@code null} value.
+ *
+ * @return the io context to use for the goal, or {@code null} if something was wrong
+ */
+ protected PluginIOContext initResources() {
+
+ File defaultIn = getFileFromBasedir("target", "generated-sources", "models");
+ File defaultOut = getFileFromBasedir("target", "generated-sources", "java");
+
+ File defaultTestIn = getFileFromBasedir("target", "generated-sources", "test-models");
+ File defaultTestOut = getFileFromBasedir("target", "generated-sources", "test-java");
+
+ PluginIOContext p = initResources(generateResources, defaultIn, defaultOut, defaultTestIn, defaultTestOut);
+
+ // check context
+
+ if ((p.getInputs() == null || p.getInputs().length == 0)) {
+ getLog().error("no input defined");
+ return null;
+ }
+ if (p.getOutput() == null) {
+ getLog().error("no output defined");
+ return null;
+ }
+
+ if (!p.getOutput().exists()) {
+ boolean b2 = p.getOutput().mkdirs();
+ if (!b2) {
+ getLog().error("could not create directory " + p.getOutput());
+ p = null;
+ }
+ }
+
+ return p;
+ }
+
+ /**
+ * Obtain the reader to use to read the model.
+ * <p/>
+ * <b>Note:</b> If something wrong appears, the return a {@code null} value.
+ *
+ * @return the model reader to use to obtain the model to treate, or {@code null} if something was wrong.
+ */
+ protected ModelReader<?> getModelReader() {
+
+ ModelReader<?> modelReader;
+
+ if (reader != null && !reader.trim().isEmpty()) {
+ // try to load a specific reader
+ try {
+ ClassLoader fixedClassLoader = getFixedClassLoader();
+ modelReader = (ModelReader<?>) Class.forName(reader, true, fixedClassLoader).newInstance();
+ //TODO : should check that the reader is compatible with given modelType
+ } catch (Exception eee) {
+ getLog().error("could not obtain reader " + reader + " for reason : " + eee.getMessage());
+ return null;
+ }
+ } else {
+ modelReader = availableReaders.get(modelType);
+ if (modelReader == null) {
+ getLog().error("could not find a model reader for modelType : " + modelType + ", availables readers : " + availableReaders.values());
+ return null;
+ }
+ }
+ return modelReader;
+ }
+
+ /**
+ * Recuperation de la liste des fichiers de modele a traite.
+ *
+ * @param ioContext io context
+ * @return la liste des modeles a utiliser
+ */
+ protected File[] getModelFiles(PluginIOContext ioContext) {
+
+ List<File> modelFiles = new ArrayList<File>();
+ String[] includePatterns = includes.split(",");
+
+ for (File srcDirGen : ioContext.getInputs()) {
+
+ if (verbose) {
+ getLog().info("Search for " + Arrays.toString(includePatterns) + " in " + srcDirGen.getAbsolutePath());
+ }
+ List<File> currentFiles = PluginHelper.getIncludedFiles(srcDirGen, includePatterns, null);
+ modelFiles.addAll(currentFiles);
+ }
+ return modelFiles.toArray(new File[modelFiles.size()]);
+ }
+
+ /**
+ * Obtain the list of templates to apply to model.
+ * <p/>
+ * <b>Note:</b> If something wrong appears, then return a {@code null} value.
+ *
+ * @param fixedClassLoader classloader to use to seek of templates
+ * @return list of templates to apply, or {@code null} if something was wrong
+ */
+ protected List<Template<Model>> getTemplates(ClassLoader fixedClassLoader) {
+
+ List<Template<Model>> templatesList = new ArrayList<Template<Model>>();
+ String[] templatesNames = templates.split(",");
+ for (String templateName : templatesNames) {
+ // remove trailing spaces
+ templateName = templateName.trim();
+ Template<Model> template;
+
+ template = (Template<Model>) availableTemplates.get(templateName);
+ if (template == null) {
+ getLog().warn("template [" + templateName + "] is not registred via plexus, try to load it directly");
+ try {
+ template = (Template<Model>) Class.forName(templateName, true, fixedClassLoader).newInstance();
+ } catch (Exception e) {
+ getLog().error("Can't obtain template [" + templateName + "] for reason " + e.getMessage(), e);
+ return null;
+ }
+ // will use this template
+ templatesList.add(template);
+ }
+ }
+ return templatesList;
+ }
+
+ /**
+ * @return the string representation of excludesTemplates (separated by comma)
+ */
+ protected String getExcludeTemplatesAsString() {
+ String result = "";
+ for (int i = 0; i < excludeTemplates.length; i++) {
+ result += excludeTemplates[i];
+ if (i != excludeTemplates.length - 1) {
+ result += ",";
+ }
+ }
+ return result;
+ }
+
+ /**
+ * Prepare le classLoader a utiliser dans le generateur.
+ * <p/>
+ * Si un {@link #extraClassPathDirectory} a été renseigné, il est rajouté.
+ * <p/>
+ * Si des références à des sibling modules, ils seront rajoutés aussi.
+ *
+ * @return le class loader modifie
+ * @throws MojoExecutionException if any pb
+ */
+
+ public ClassLoader getFixedClassLoader() throws MojoExecutionException {
+
+ if (fixedClassLoader == null) {
+
+ List<URL> urls = new ArrayList<URL>();
+ Set<String> urlsAsString = new HashSet<String>();
+ try {
+ ClassLoader loader;
+ File extraClassPathDirectory = getExtraClassPathDirectory();
+ if (extraClassPathDirectory != null) {
+ if (verbose) {
+ getLog().info("Add extra directory in generator's classLoader : " + extraClassPathDirectory);
+ }
+ addDirectoryToUrlsList(extraClassPathDirectory, urls, urlsAsString);
+ }
+ if (project.getProjectReferences() != null) {
+ // this case is for multi-module when calling from a parent module
+ for (Object o : project.getProjectReferences().entrySet()) {
+ Map.Entry<?, ?> entry = (Map.Entry<?, ?>) o;
+ MavenProject relatedProject = (MavenProject) entry.getValue();
+ if (verbose) {
+ getLog().info("Add project reference in generator's classLoader : '" + relatedProject.getArtifact() + "'");
+ }
+ //TODO il faudrait peut-etre aussi ajouter les dependances ?
+ addDirectoryToUrlsList(relatedProject.getArtifact().getFile(), urls, urlsAsString);
+ }
+ }
+ if (!project.getArtifacts().isEmpty()) {
+ // this is a special case when artifacts were resolved (for example in site phase)
+ if (verbose) {
+ getLog().info("Use resolved artifacts to build class-path");
+ }
+ for (Object o : project.getArtifacts()) {
+ Artifact a = (Artifact) o;
+ if (!a.getScope().equals("provided")) {
+ addDirectoryToUrlsList(a.getFile(), urls, urlsAsString);
+ }
+ }
+ }
+ // we ask to add the directory in classloader
+ loader = getClass().getClassLoader();
+ if (!urls.isEmpty()) {
+ loader = new URLClassLoader(urls.toArray(new URL[urls.size()]),
+ loader);
+ }
+ fixedClassLoader = loader;
+ } catch (MalformedURLException e) {
+ throw new MojoExecutionException(e.getMessage());
+ } finally {
+ urls.clear();
+ urlsAsString.clear();
+ }
+ }
+ return fixedClassLoader;
+ }
+
+ /**
+ * permet d'ajout le répertoire de génération des fichiers java dans les répertoires
+ * de compilation du projet Maven.
+ */
+ protected void fixCompileSourceRoots() {
+
+ //FIXME-TC20091215 : should never have a null project, this is not normal
+ if (project == null) {
+ // no project defined, can not fix anything
+ // this case could appears if we wanted to do some tests of the plugin
+ return;
+ }
+
+ File destDirGen = generateResources.getOutput();
+
+ //TODO-TC20091016 should use AbstractPlugin api
+ if (testPhase) {
+ if (!project.getTestCompileSourceRoots().contains(destDirGen.getPath())) {
+ getLog().info("Add test compile source root : " + destDirGen);
+ project.addTestCompileSourceRoot(destDirGen.getPath());
+ Resource resources = new Resource();
+ resources.setDirectory(destDirGen.getAbsolutePath());
+ resources.setExcludes(Arrays.asList("**/*.java"));
+ getLog().info("Add test resource root :" + resources);
+ project.addTestResource(resources);
+ }
+ } else {
+ if (!project.getCompileSourceRoots().contains(destDirGen.getPath())) {
+ getLog().info("Add compile source root : " + destDirGen);
+ project.addCompileSourceRoot(destDirGen.getPath());
+ Resource resources = new Resource();
+ resources.setDirectory(destDirGen.getAbsolutePath());
+ resources.setExcludes(Arrays.asList("**/*.java"));
+ getLog().info("Add resource root :" + resources);
+ project.addResource(resources);
+ }
+ }
+ }
+
+
+}
Property changes on: trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/GenerateFromModelsMojo.java
___________________________________________________________________
Added: svn:keywords
+ "Author Date Id Revision HeadURL
1
0
Dec. 16, 2009
Author: tchemit
Date: 2009-12-16 19:01:51 +0100 (Wed, 16 Dec 2009)
New Revision: 758
Modified:
trunk/eugene/src/main/java/org/nuiton/eugene/ObjectModelReader.java
trunk/eugene/src/main/java/org/nuiton/eugene/StateModelReader.java
trunk/eugene/src/main/java/org/nuiton/eugene/models/object/xml/ObjectModelImpl.java
trunk/eugene/src/main/java/org/nuiton/eugene/models/state/xml/StateModelImpl.java
trunk/maven-eugene-plugin/pom.xml
trunk/maven-eugene-plugin/src/it/generate-model-files/testIncludeWithNoProtocol/pom.xml
trunk/maven-eugene-plugin/src/it/generate-model-files/testIncludeWithOnlyProtocol/pom.xml
trunk/maven-eugene-plugin/src/it/generate/generators/pom.xml
trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/AbstractEugeneMojo.java
trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/EugeneAbstractMojo.java
trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/EugenePlugin.java
trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/writer/XmiToObjectModelFileWriter.java
trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/writer/XmiToStateModelFileWriter.java
trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/writer/ZargoModelFileWriter.java
trunk/pom.xml
Log:
- there is no description tagglet for plexus components, just use the javadoc of the parameter :) (idem for mojo parameters)
- use one javadoc config for all project
Modified: trunk/eugene/src/main/java/org/nuiton/eugene/ObjectModelReader.java
===================================================================
--- trunk/eugene/src/main/java/org/nuiton/eugene/ObjectModelReader.java 2009-12-16 11:21:30 UTC (rev 757)
+++ trunk/eugene/src/main/java/org/nuiton/eugene/ObjectModelReader.java 2009-12-16 18:01:51 UTC (rev 758)
@@ -48,7 +48,7 @@
import org.xml.sax.SAXException;
/**
- * ObjectModelReader
+ * To read object model files into an memory object model.
*
* Created: 26 oct. 2009
*
@@ -58,7 +58,7 @@
* Mise a jour: $Date$
* par : $Author$
*
- * @plexus.component role="org.nuiton.eugene.ModelReader" role-hint="objectmodel" description="Object model reader"
+ * @plexus.component role="org.nuiton.eugene.ModelReader" role-hint="objectmodel"
*/
public class ObjectModelReader extends ModelReader<ObjectModel> {
Modified: trunk/eugene/src/main/java/org/nuiton/eugene/StateModelReader.java
===================================================================
--- trunk/eugene/src/main/java/org/nuiton/eugene/StateModelReader.java 2009-12-16 11:21:30 UTC (rev 757)
+++ trunk/eugene/src/main/java/org/nuiton/eugene/StateModelReader.java 2009-12-16 18:01:51 UTC (rev 758)
@@ -36,7 +36,7 @@
import org.xml.sax.SAXException;
/**
- * StateModelReader
+ * To read state model files into a memory state model.
*
* Created: 26 oct. 2009
*
@@ -46,7 +46,7 @@
* Mise a jour: $Date$
* par : $Author$
*
- * @plexus.component role="org.nuiton.eugene.ModelReader" role-hint="statemodel" description="State model reader"
+ * @plexus.component role="org.nuiton.eugene.ModelReader" role-hint="statemodel"
*/
public class StateModelReader extends ModelReader<StateModel> {
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 2009-12-16 11:21:30 UTC (rev 757)
+++ trunk/eugene/src/main/java/org/nuiton/eugene/models/object/xml/ObjectModelImpl.java 2009-12-16 18:01:51 UTC (rev 758)
@@ -50,7 +50,7 @@
* Last update : $Date$
* by : $Author$
*
- * @plexus.component role="org.nuiton.eugene.models.Model" role-hint="objectmodel" description="Object model implementation"
+ * @plexus.component role="org.nuiton.eugene.models.Model" role-hint="objectmodel"
*/
public class ObjectModelImpl implements ObjectModel {
Modified: trunk/eugene/src/main/java/org/nuiton/eugene/models/state/xml/StateModelImpl.java
===================================================================
--- trunk/eugene/src/main/java/org/nuiton/eugene/models/state/xml/StateModelImpl.java 2009-12-16 11:21:30 UTC (rev 757)
+++ trunk/eugene/src/main/java/org/nuiton/eugene/models/state/xml/StateModelImpl.java 2009-12-16 18:01:51 UTC (rev 758)
@@ -29,7 +29,7 @@
import org.nuiton.eugene.models.state.StateModelStateChart;
/**
- * StateModelImpl.java
+ * Implementation of the {@link StateModel}.
*
* @author chatellier
* @version $Revision$
@@ -37,7 +37,7 @@
* Last update : $Date$
* By : $Author$
*
- * @plexus.component role="org.nuiton.eugene.models.Model" role-hint="statemodel" description="State model implementation"
+ * @plexus.component role="org.nuiton.eugene.models.Model" role-hint="statemodel"
*/
public class StateModelImpl implements StateModel {
Modified: trunk/maven-eugene-plugin/pom.xml
===================================================================
--- trunk/maven-eugene-plugin/pom.xml 2009-12-16 11:21:30 UTC (rev 757)
+++ trunk/maven-eugene-plugin/pom.xml 2009-12-16 18:01:51 UTC (rev 758)
@@ -100,7 +100,7 @@
<pluginManagement>
<plugins>
- <plugin>
+ <!--plugin>
<artifactId>maven-javadoc-plugin</artifactId>
<version>${javadoc.version}</version>
<configuration>
@@ -287,7 +287,7 @@
</taglet>
</taglets>
</configuration>
- </plugin>
+ </plugin-->
<plugin>
<artifactId>maven-invoker-plugin</artifactId>
@@ -308,7 +308,7 @@
</plugin>
- <plugin>
+ <!--plugin>
<artifactId>maven-javadoc-plugin</artifactId>
<version>${javadoc.version}</version>
<configuration>
@@ -499,7 +499,7 @@
</reports>
</reportSet>
</reportSets>
- </plugin>
+ </plugin-->
</plugins>
</reporting>
@@ -518,8 +518,10 @@
<artifactId>maven-invoker-plugin</artifactId>
<configuration>
<pomIncludes>
- <!--<pomInclude>generate/generators/pom.xml</pomInclude>-->
- <pomInclude>**/pom.xml</pomInclude>
+ <pomInclude>generate-model-files/testIncludeWithNoProtocol/pom.xml</pomInclude>
+ <pomInclude>generate-model-files/testIncludeWithOnlyProtocol/pom.xml</pomInclude>
+ <pomInclude>generate/generators/pom.xml</pomInclude>
+ <!--<pomInclude>**/pom.xml</pomInclude>-->
</pomIncludes>
<postBuildHookScript>verify</postBuildHookScript>
<localRepositoryPath>${basedir}/target/local-repo</localRepositoryPath>
Modified: trunk/maven-eugene-plugin/src/it/generate/generators/pom.xml
===================================================================
--- trunk/maven-eugene-plugin/src/it/generate/generators/pom.xml 2009-12-16 11:21:30 UTC (rev 757)
+++ trunk/maven-eugene-plugin/src/it/generate/generators/pom.xml 2009-12-16 18:01:51 UTC (rev 758)
@@ -85,19 +85,23 @@
<groupId>org.nuiton.eugene</groupId>
<artifactId>maven-eugene-plugin</artifactId>
<version>${project.version}</version>
+ <configuration>
+ <extraClassPathDirectory>target/classes</extraClassPathDirectory>
+ <modelType>objectmodel</modelType>
+ <testPhase>true</testPhase>
+ <generateResources>
+ <input>src/main/models</input>
+ </generateResources>
+ <defaultPackage>org.nuiton.eugene.test</defaultPackage>
+ </configuration>
<executions>
<execution>
<id>Test Regression Generator</id>
<phase>generate-test-sources</phase>
<configuration>
- <reader>org.nuiton.eugene.ObjectModelReader</reader>
+ <!--<reader>org.nuiton.eugene.ObjectModelReader</reader>-->
<includes>dtotest.objectmodel</includes>
<templates>org.nuiton.eugene.test.generator.BeanGenerator</templates>
- <defaultPackage>org.nuiton.eugene.test</defaultPackage>
- <extraClassPathDirectory>target/classes</extraClassPathDirectory>
- <generateResources>
- <input>src/main/models</input>
- </generateResources>
</configuration>
<goals>
<goal>generate</goal>
@@ -109,11 +113,6 @@
<configuration>
<reader>org.nuiton.eugene.test.generator.TestReader</reader>
<templates>org.nuiton.eugene.java.JavaGenerator</templates>
- <defaultPackage>org.nuiton.eugene.test</defaultPackage>
- <extraClassPathDirectory>target/classes</extraClassPathDirectory>
- <generateResources>
- <input>src/main/models</input>
- </generateResources>
</configuration>
<goals>
<goal>generate</goal>
@@ -123,14 +122,9 @@
<id>Test Bean Transformer</id>
<phase>generate-test-sources</phase>
<configuration>
- <reader>org.nuiton.eugene.ObjectModelReader</reader>
+ <!--<reader>org.nuiton.eugene.ObjectModelReader</reader>-->
<includes>dtotest2.objectmodel</includes>
<templates>org.nuiton.eugene.test.generator.BeanTransformer</templates>
- <defaultPackage>org.nuiton.eugene.test</defaultPackage>
- <extraClassPathDirectory>target/classes</extraClassPathDirectory>
- <generateResources>
- <input>src/main/models</input>
- </generateResources>
</configuration>
<goals>
<goal>generate</goal>
Modified: trunk/maven-eugene-plugin/src/it/generate-model-files/testIncludeWithNoProtocol/pom.xml
===================================================================
--- trunk/maven-eugene-plugin/src/it/generate-model-files/testIncludeWithNoProtocol/pom.xml 2009-12-16 11:21:30 UTC (rev 757)
+++ trunk/maven-eugene-plugin/src/it/generate-model-files/testIncludeWithNoProtocol/pom.xml 2009-12-16 18:01:51 UTC (rev 758)
@@ -65,9 +65,9 @@
<phase>generate-sources</phase>
<configuration>
<modelType>objectmodel</modelType>
- <includes>
- <include>src/main/zargo:**/*.zargo</include>
- </includes>
+ <inputFiles>
+ <inputFile>src/main/zargo:**/*.zargo</inputFile>
+ </inputFiles>
<fullPackagePath>org.nuiton.topia.test.entities</fullPackagePath>
<outputDirectory>target/generated-sources-zargo2ObjectModel</outputDirectory>
</configuration>
@@ -80,9 +80,9 @@
<phase>generate-sources</phase>
<configuration>
<modelType>statemodel</modelType>
- <includes>
- <include>src/main/zargo:**/*.zargo</include>
- </includes>
+ <inputFiles>
+ <inputFile>src/main/zargo:**/*.zargo</inputFile>
+ </inputFiles>
<fullPackagePath>org.nuiton.topia.test.entities</fullPackagePath>
<outputDirectory>target/generated-sources-zargo2StateModel</outputDirectory>
</configuration>
@@ -95,9 +95,9 @@
<phase>generate-sources</phase>
<configuration>
<modelType>objectmodel</modelType>
- <includes>
- <include>src/main/xmi:**/*.xmi</include>
- </includes>
+ <inputFiles>
+ <inputFile>src/main/xmi:**/*.xmi</inputFile>
+ </inputFiles>
<fullPackagePath>org.nuiton.topia</fullPackagePath>
<outputDirectory>target/generated-sources-xmi2ObjectModel</outputDirectory>
</configuration>
@@ -110,9 +110,9 @@
<phase>generate-sources</phase>
<configuration>
<modelType>statemodel</modelType>
- <includes>
- <include>src/main/xmi:**/*.xmi</include>
- </includes>
+ <inputFiles>
+ <inputFile>src/main/xmi:**/*.xmi</inputFile>
+ </inputFiles>
<fullPackagePath>org.nuiton.topia</fullPackagePath>
<outputDirectory>target/generated-sources-xmi2StateModel</outputDirectory>
</configuration>
Modified: trunk/maven-eugene-plugin/src/it/generate-model-files/testIncludeWithOnlyProtocol/pom.xml
===================================================================
--- trunk/maven-eugene-plugin/src/it/generate-model-files/testIncludeWithOnlyProtocol/pom.xml 2009-12-16 11:21:30 UTC (rev 757)
+++ trunk/maven-eugene-plugin/src/it/generate-model-files/testIncludeWithOnlyProtocol/pom.xml 2009-12-16 18:01:51 UTC (rev 758)
@@ -65,9 +65,9 @@
<phase>generate-sources</phase>
<configuration>
<modelType>objectmodel</modelType>
- <includes>
- <include>zargo</include>
- </includes>
+ <inputFiles>
+ <inputFile>zargo</inputFile>
+ </inputFiles>
<fullPackagePath>org.nuiton.topia.test.entities</fullPackagePath>
<outputDirectory>target/generated-sources-zargo2ObjectModel</outputDirectory>
</configuration>
@@ -80,9 +80,9 @@
<phase>generate-sources</phase>
<configuration>
<modelType>statemodel</modelType>
- <includes>
- <include>zargo</include>
- </includes>
+ <inputFiles>
+ <inputFile>zargo</inputFile>
+ </inputFiles>
<fullPackagePath>org.nuiton.topia.test.entities</fullPackagePath>
<outputDirectory>target/generated-sources-zargo2StateModel</outputDirectory>
</configuration>
@@ -95,9 +95,9 @@
<phase>generate-sources</phase>
<configuration>
<modelType>objectmodel</modelType>
- <includes>
- <include>xmi</include>
- </includes>
+ <inputFiles>
+ <inputFile>xmi</inputFile>
+ </inputFiles>
<fullPackagePath>org.nuiton.topia</fullPackagePath>
<outputDirectory>target/generated-sources-xmi2ObjectModel</outputDirectory>
</configuration>
@@ -110,9 +110,9 @@
<phase>generate-sources</phase>
<configuration>
<modelType>statemodel</modelType>
- <includes>
- <include>xmi</include>
- </includes>
+ <inputFiles>
+ <inputFile>xmi</inputFile>
+ </inputFiles>
<fullPackagePath>org.nuiton.topia</fullPackagePath>
<outputDirectory>target/generated-sources-xmi2StateModel</outputDirectory>
</configuration>
Modified: trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/AbstractEugeneMojo.java
===================================================================
--- trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/AbstractEugeneMojo.java 2009-12-16 11:21:30 UTC (rev 757)
+++ trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/AbstractEugeneMojo.java 2009-12-16 18:01:51 UTC (rev 758)
@@ -25,7 +25,10 @@
import org.apache.maven.settings.Settings;
import org.nuiton.eugene.models.Model;
import org.nuiton.plugin.AbstractPlugin;
+import org.nuiton.plugin.PluginIOContext;
+import java.io.File;
+import java.util.Arrays;
import java.util.Map;
/**
@@ -38,14 +41,14 @@
/**
* Maven project.
*
- * @description Dépendance du projet.
* @parameter default-value="${project}"
* @readonly
* @since 2.0.0
*/
protected MavenProject project;
/**
- * @description le settings (pour obtenir le mode offline)
+ * Le settings (pour obtenir le mode offline).
+ *
* @parameter default-value="${settings}"
* @readonly
* @since 2.0.0
@@ -87,12 +90,21 @@
* @since 2.0.0
*/
protected String modelType;
-
-
+ /**
+ * An extra directory to be added to the classpath.
+ *
+ * @parameter expression="${eugene.extraClassPathDirectory}"
+ * @since 2.0.0
+ */
+ private File extraClassPathDirectory;
+ /**
+ * class instance of the given {@link #modelType}
+ */
protected Class<? extends Model> modelClass;
/**
- * All available models
+ * All available models (obtain by plexus, keys are plexus roles, values are a
+ * instance of corresponding model).
*
* @component role="org.nuiton.eugene.models.Model"
*/
@@ -111,7 +123,49 @@
return true;
}
+ /**
+ * Build the resources data to use for a goal.
+ *
+ * @param resources incoming resources data (form the goal
+ * @param defaultIn the default input directory
+ * @param defaultOut the default output directory
+ * @param defaultTestIn the default test input directory
+ * @param defaultTestOut the default test output directory
+ * @return the new {@link org.nuiton.plugin.PluginIOContext} to use in the goal
+ */
+ protected PluginIOContext initResources(PluginIOContext resources, File defaultIn, File defaultOut, File defaultTestIn, File defaultTestOut) {
+ if (resources == null) {
+ resources = new PluginIOContext();
+ }
+
+ // adding default inputs only if not consumed
+ if (resources.getInputs() == null) {
+ if (testPhase) {
+ resources.setInput(defaultTestIn);
+ } else {
+ resources.setInput(defaultIn);
+ }
+ getLog().info(" using default in : " + Arrays.asList(resources.getInputs()));
+ } else {
+ getLog().info(" in : " + Arrays.asList(resources.getInputs()));
+ }
+
+ if (resources.getOutput() == null) {
+ if (testPhase) {
+ resources.setOutput(defaultTestOut);
+ } else {
+ resources.setOutput(defaultOut);
+ }
+ getLog().info(" using default out : " + resources.getOutput());
+ } else {
+ getLog().info(" out : " + resources.getOutput());
+ }
+
+ return resources;
+ }
+
+
@Override
public MavenProject getProject() {
return project;
@@ -158,4 +212,27 @@
return settings.isOffline();
}
+ public boolean isTestPhase() {
+ return testPhase;
+ }
+
+ public void setTestPhase(boolean testPhase) {
+ this.testPhase = testPhase;
+ }
+
+ public Class<? extends Model> getModelClass() {
+ return modelClass;
+ }
+
+ public void setModelClass(Class<? extends Model> modelClass) {
+ this.modelClass = modelClass;
+ }
+
+ public File getExtraClassPathDirectory() {
+ return extraClassPathDirectory;
+ }
+
+ public void setExtraClassPathDirectory(File extraClassPathDirectory) {
+ this.extraClassPathDirectory = extraClassPathDirectory;
+ }
}
Modified: trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/EugeneAbstractMojo.java
===================================================================
--- trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/EugeneAbstractMojo.java 2009-12-16 11:21:30 UTC (rev 757)
+++ trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/EugeneAbstractMojo.java 2009-12-16 18:01:51 UTC (rev 758)
@@ -21,8 +21,11 @@
package org.nuiton.eugene.plugin;
import org.nuiton.plugin.PluginIOContext;
+
import java.io.File;
+import java.io.IOException;
import java.util.Arrays;
+
import org.apache.maven.plugin.MojoExecutionException;
import org.apache.maven.project.MavenProject;
import org.apache.maven.settings.Settings;
@@ -30,7 +33,7 @@
/**
* La classe de base pour definir des mojos dans eugene.
- *
+ *
* @author chemit
* @since 1.0.0-rc-8
*/
@@ -39,14 +42,14 @@
/**
* Maven project.
*
- * @description Dépendance du projet.
* @parameter default-value="${project}"
* @readonly
* @since 1.0.0-rc-8
*/
protected MavenProject project;
/**
- * @description le settings (pour obtenir le mode offline)
+ * Le settings (pour obtenir le mode offline).
+ *
* @parameter default-value="${settings}"
* @readonly
* @since 1.0.0-rc-4
@@ -82,16 +85,13 @@
protected boolean testPhase;
/**
- *
* Note : l'objet peut etre {@code null} si la configuration ne definit
* pas la propriété associées dans l'implentation.
* <p/>
- *
* Dans tous les cas, une fois la methode {@link #initResources()} appele,
* l'objet devrait ne plus être null!
- *
+ *
* @return l'io du plugin ou {@code null} si non initialisé
- *
*/
protected abstract PluginIOContext getResources();
@@ -99,16 +99,16 @@
* Initialiser les io du plugins.
*
* @return l'io intialisé (avec les valeurs par défaut, là où rien n'a
- * été renseigné).
+ * été renseigné).
*/
protected abstract PluginIOContext initResources();
/**
* Build the {@link #getResources()} data.
*
- * @param defaultIn the default input directory
- * @param defaultOut the default output directory
- * @param defaultTestIn the default test input directory
+ * @param defaultIn the default input directory
+ * @param defaultOut the default output directory
+ * @param defaultTestIn the default test input directory
* @param defaultTestOut the default test output directory
* @return the new {@link PluginIOContext} to use in the goal
*/
@@ -158,7 +158,12 @@
throw new MojoExecutionException("no output defined");
}
- p.getOutput().mkdirs();
+ if (!p.getOutput().exists()) {
+ boolean b = p.getOutput().mkdirs();
+ if (!b) {
+ throw new IOException("could not create directory " + p.getOutput());
+ }
+ }
return true;
}
Modified: trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/EugenePlugin.java
===================================================================
--- trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/EugenePlugin.java 2009-12-16 11:21:30 UTC (rev 757)
+++ trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/EugenePlugin.java 2009-12-16 18:01:51 UTC (rev 758)
@@ -53,9 +53,11 @@
* <p/>
* Last update: $Date$
* by : $Author$
- * @goal generate
- * @projectRequired true
+ * @goal generate-old
+ * @requiresProject true
+ * @deprecated since 2.0.0, use now the {@link GenerateMojo}.
*/
+@Deprecated
public class EugenePlugin extends EugeneAbstractMojo {
/**
@@ -199,19 +201,11 @@
for (Template<M> template : templatesList) {
getLog().info("Apply " + template.getClass().getSimpleName() + " generator");
- //TC-20090829 fix when loading more than one model together...
-
try {
template.applyTemplate(model, generateResources.getOutput());
} catch (IOException eee) {
throw new MojoExecutionException("Generation problem", eee);
}
-// for (File modelFile : modelFiles) {
-// getLog().debug(" on " + modelFile.getAbsolutePath());
-//
-// // generation
-// generator.generate(modelFile, destDirGen);
-// }
}
}
@@ -254,37 +248,8 @@
return modelFiles.toArray(new File[modelFiles.size()]);
}
-// protected File[] getModelFiles() {
-// // get file to generate
-// // TODO improve this loop
-// // TODO too strange code
-// //TODO TC-20090820 use a DirectoryScanner which understand ant-like regex patterns :)
-// List<File> modelFiles = new ArrayList<File>();
-// String[] includePatterns = includes.split(",");
-// for (File srcDirGen : generateResources.getInputs()) {
-// for (String includePattern : includePatterns) {
-// includePattern = includePattern.trim();
-// boolean recursive = false;
-// if (includePattern.startsWith("**/")) {
-// recursive = true;
-// includePattern = includePattern.substring(3);
-// }
-// // transform pattern in java regex
-// includePattern = includePattern.replaceAll("\\.", "\\\\.");
-// includePattern = includePattern.replaceAll("\\*", ".*");
-// // log java regex
-// if (verbose) {
-// getLog().info("Search for " + includePattern + " in " + srcDirGen.getAbsolutePath());
-// }
-// List<File> currentFiles = FileUtil.find(srcDirGen, includePattern, recursive);
-// modelFiles.addAll(currentFiles);
-// }
-// }
-// return modelFiles.toArray(new File[modelFiles.size()]);
-// }
-
protected ModelReader<?> getReader() throws MojoFailureException, MojoExecutionException {
- ModelReader<?> modelReader = null;
+ ModelReader<?> modelReader;
try {
ClassLoader fixedClassLoader = fixClassLoader();
modelReader = (ModelReader<?>) Class.forName(reader, true, fixedClassLoader).newInstance();
Modified: trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/writer/XmiToObjectModelFileWriter.java
===================================================================
--- trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/writer/XmiToObjectModelFileWriter.java 2009-12-16 11:21:30 UTC (rev 757)
+++ trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/writer/XmiToObjectModelFileWriter.java 2009-12-16 18:01:51 UTC (rev 758)
@@ -33,10 +33,12 @@
import java.io.IOException;
/**
+ * To write a object model files from xmi files.
+ * <p/>
* This {@link org.nuiton.eugene.ModelFileWriter} transform xmi files to object model file.
*
* @author tchemit
- * @plexus.component role="org.nuiton.eugene.ModelFileWriter" role-hint="xmi2objectmodel" description="xmi to object model"
+ * @plexus.component role="org.nuiton.eugene.ModelFileWriter" role-hint="xmi2objectmodel"
* @since 2.0.0
*/
public class XmiToObjectModelFileWriter extends BaseXmiToModelFileWriter {
Modified: trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/writer/XmiToStateModelFileWriter.java
===================================================================
--- trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/writer/XmiToStateModelFileWriter.java 2009-12-16 11:21:30 UTC (rev 757)
+++ trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/writer/XmiToStateModelFileWriter.java 2009-12-16 18:01:51 UTC (rev 758)
@@ -26,8 +26,10 @@
import java.io.File;
/**
+ * To write state model files from xmi files.
+ *
* @author tchemit
- * @plexus.component role="org.nuiton.eugene.ModelFileWriter" role-hint="xmi2statemodel" description="xmi to state model"
+ * @plexus.component role="org.nuiton.eugene.ModelFileWriter" role-hint="xmi2statemodel"
* @since 2.0.0
*/
public class XmiToStateModelFileWriter extends BaseXmiToModelFileWriter {
Modified: trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/writer/ZargoModelFileWriter.java
===================================================================
--- trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/writer/ZargoModelFileWriter.java 2009-12-16 11:21:30 UTC (rev 757)
+++ trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/writer/ZargoModelFileWriter.java 2009-12-16 18:01:51 UTC (rev 758)
@@ -28,8 +28,10 @@
import java.io.IOException;
/**
+ * To write model files from zargo files.
+ *
* @author tchemit
- * @plexus.component role="org.nuiton.eugene.ModelFileWriter" role-hint="zargo2xmi" description="zargo to xmi model"
+ * @plexus.component role="org.nuiton.eugene.ModelFileWriter" role-hint="zargo2xmi"
* @since 2.0.0
*/
public class ZargoModelFileWriter extends BaseModelFileWriter {
Modified: trunk/pom.xml
===================================================================
--- trunk/pom.xml 2009-12-16 11:21:30 UTC (rev 757)
+++ trunk/pom.xml 2009-12-16 18:01:51 UTC (rev 758)
@@ -287,11 +287,398 @@
<version>1.4.0</version>
</plugin>
+ <plugin>
+ <artifactId>maven-javadoc-plugin</artifactId>
+ <version>${javadoc.version}</version>
+ <configuration>
+ <docencoding>${project.reporting.outputEncoding}</docencoding>
+ <encoding>${project.reporting.outputEncoding}</encoding>
+ <charset>${project.reporting.outputEncoding}</charset>
+ <quiet>true</quiet>
+ <skip>${maven.javadoc.skip}</skip>
+ <taglets>
+ <taglet>
+ <tagletClass>org.apache.maven.tools.plugin.javadoc.MojoAggregatorTypeTaglet
+ </tagletClass>
+ <tagletArtifact>
+ <groupId>org.apache.maven.plugin-tools</groupId>
+ <artifactId>maven-plugin-tools-javadoc</artifactId>
+ <version>2.5.1</version>
+ </tagletArtifact>
+ </taglet>
+ <taglet>
+ <tagletClass>org.apache.maven.tools.plugin.javadoc.MojoComponentFieldTaglet
+ </tagletClass>
+ <tagletArtifact>
+ <groupId>org.apache.maven.plugin-tools</groupId>
+ <artifactId>maven-plugin-tools-javadoc</artifactId>
+ <version>2.5.1</version>
+ </tagletArtifact>
+ </taglet>
+ <taglet>
+ <tagletClass>org.apache.maven.tools.plugin.javadoc.MojoConfiguratorTypeTaglet
+ </tagletClass>
+ <tagletArtifact>
+ <groupId>org.apache.maven.plugin-tools</groupId>
+ <artifactId>maven-plugin-tools-javadoc</artifactId>
+ <version>2.5.1</version>
+ </tagletArtifact>
+ </taglet>
+ <taglet>
+ <tagletClass>org.apache.maven.tools.plugin.javadoc.MojoExecuteTypeTaglet</tagletClass>
+ <tagletArtifact>
+ <groupId>org.apache.maven.plugin-tools</groupId>
+ <artifactId>maven-plugin-tools-javadoc</artifactId>
+ <version>2.5.1</version>
+ </tagletArtifact>
+ </taglet>
+ <taglet>
+ <tagletClass>org.apache.maven.tools.plugin.javadoc.MojoExecutionStrategyTypeTaglet
+ </tagletClass>
+ <tagletArtifact>
+ <groupId>org.apache.maven.plugin-tools</groupId>
+ <artifactId>maven-plugin-tools-javadoc</artifactId>
+ <version>2.5.1</version>
+ </tagletArtifact>
+ </taglet>
+ <taglet>
+ <tagletClass>org.apache.maven.tools.plugin.javadoc.MojoGoalTypeTaglet</tagletClass>
+ <tagletArtifact>
+ <groupId>org.apache.maven.plugin-tools</groupId>
+ <artifactId>maven-plugin-tools-javadoc</artifactId>
+ <version>2.5.1</version>
+ </tagletArtifact>
+ </taglet>
+ <taglet>
+ <tagletClass>org.apache.maven.tools.plugin.javadoc.MojoInheritByDefaultTypeTaglet
+ </tagletClass>
+ <tagletArtifact>
+ <groupId>org.apache.maven.plugin-tools</groupId>
+ <artifactId>maven-plugin-tools-javadoc</artifactId>
+ <version>2.5.1</version>
+ </tagletArtifact>
+ </taglet>
+ <taglet>
+ <tagletClass>org.apache.maven.tools.plugin.javadoc.MojoInstantiationStrategyTypeTaglet
+ </tagletClass>
+ <tagletArtifact>
+ <groupId>org.apache.maven.plugin-tools</groupId>
+ <artifactId>maven-plugin-tools-javadoc</artifactId>
+ <version>2.5.1</version>
+ </tagletArtifact>
+ </taglet>
+ <taglet>
+ <tagletClass>org.apache.maven.tools.plugin.javadoc.MojoParameterFieldTaglet
+ </tagletClass>
+ <tagletArtifact>
+ <groupId>org.apache.maven.plugin-tools</groupId>
+ <artifactId>maven-plugin-tools-javadoc</artifactId>
+ <version>2.5.1</version>
+ </tagletArtifact>
+ </taglet>
+ <taglet>
+ <tagletClass>org.apache.maven.tools.plugin.javadoc.MojoPhaseTypeTaglet</tagletClass>
+ <tagletArtifact>
+ <groupId>org.apache.maven.plugin-tools</groupId>
+ <artifactId>maven-plugin-tools-javadoc</artifactId>
+ <version>2.5.1</version>
+ </tagletArtifact>
+ </taglet>
+ <taglet>
+ <tagletClass>org.apache.maven.tools.plugin.javadoc.MojoReadOnlyFieldTaglet</tagletClass>
+ <tagletArtifact>
+ <groupId>org.apache.maven.plugin-tools</groupId>
+ <artifactId>maven-plugin-tools-javadoc</artifactId>
+ <version>2.5.1</version>
+ </tagletArtifact>
+ </taglet>
+ <taglet>
+ <tagletClass>org.apache.maven.tools.plugin.javadoc.MojoRequiredFieldTaglet</tagletClass>
+ <tagletArtifact>
+ <groupId>org.apache.maven.plugin-tools</groupId>
+ <artifactId>maven-plugin-tools-javadoc</artifactId>
+ <version>2.5.1</version>
+ </tagletArtifact>
+ </taglet>
+ <taglet>
+ <tagletClass>
+ org.apache.maven.tools.plugin.javadoc.MojoRequiresDependencyResolutionTypeTaglet
+ </tagletClass>
+ <tagletArtifact>
+ <groupId>org.apache.maven.plugin-tools</groupId>
+ <artifactId>maven-plugin-tools-javadoc</artifactId>
+ <version>2.5.1</version>
+ </tagletArtifact>
+ </taglet>
+ <taglet>
+ <tagletClass>
+ org.apache.maven.tools.plugin.javadoc.MojoRequiresDirectInvocationTypeTaglet
+ </tagletClass>
+ <tagletArtifact>
+ <groupId>org.apache.maven.plugin-tools</groupId>
+ <artifactId>maven-plugin-tools-javadoc</artifactId>
+ <version>2.5.1</version>
+ </tagletArtifact>
+ </taglet>
+ <taglet>
+ <tagletClass>org.apache.maven.tools.plugin.javadoc.MojoRequiresOnLineTypeTaglet
+ </tagletClass>
+ <tagletArtifact>
+ <groupId>org.apache.maven.plugin-tools</groupId>
+ <artifactId>maven-plugin-tools-javadoc</artifactId>
+ <version>2.5.1</version>
+ </tagletArtifact>
+ </taglet>
+ <taglet>
+ <tagletClass>org.apache.maven.tools.plugin.javadoc.MojoRequiresProjectTypeTaglet
+ </tagletClass>
+ <tagletArtifact>
+ <groupId>org.apache.maven.plugin-tools</groupId>
+ <artifactId>maven-plugin-tools-javadoc</artifactId>
+ <version>2.5.1</version>
+ </tagletArtifact>
+ </taglet>
+ <taglet>
+ <tagletClass>org.apache.maven.tools.plugin.javadoc.MojoRequiresReportsTypeTaglet
+ </tagletClass>
+ <tagletArtifact>
+ <groupId>org.apache.maven.plugin-tools</groupId>
+ <artifactId>maven-plugin-tools-javadoc</artifactId>
+ <version>2.5.1</version>
+ </tagletArtifact>
+ </taglet>
+
+ <taglet>
+ <tagletClass>org.codehaus.plexus.javadoc.PlexusComponentTaglet</tagletClass>
+ <tagletArtifact>
+ <groupId>org.codehaus.plexus</groupId>
+ <artifactId>plexus-component-javadoc</artifactId>
+ <version>1.3.0</version>
+ </tagletArtifact>
+ </taglet>
+ <taglet>
+ <tagletClass>org.codehaus.plexus.javadoc.PlexusConfigurationTaglet</tagletClass>
+ <tagletArtifact>
+ <groupId>org.codehaus.plexus</groupId>
+ <artifactId>plexus-component-javadoc</artifactId>
+ <version>1.3.0</version>
+ </tagletArtifact>
+ </taglet>
+ <taglet>
+ <tagletClass>org.codehaus.plexus.javadoc.PlexusRequirementTaglet</tagletClass>
+ <tagletArtifact>
+ <groupId>org.codehaus.plexus</groupId>
+ <artifactId>plexus-component-javadoc</artifactId>
+ <version>1.3.0</version>
+ </tagletArtifact>
+ </taglet>
+ </taglets>
+ </configuration>
+ </plugin>
+
</plugins>
</pluginManagement>
</build>
+ <reporting>
+ <plugins>
+
+ <plugin>
+ <artifactId>maven-javadoc-plugin</artifactId>
+ <version>${javadoc.version}</version>
+ <configuration>
+ <quiet>true</quiet>
+ <skip>${maven.javadoc.skip}</skip>
+ <docencoding>${project.build.sourceEncoding}</docencoding>
+ <encoding>${project.build.sourceEncoding}</encoding>
+ <charset>${project.reporting.outputEncoding}</charset>
+ <excludePackageNames>${maven.javadoc.excludePackageNames}</excludePackageNames>
+ <taglets>
+ <taglet>
+ <tagletClass>org.apache.maven.tools.plugin.javadoc.MojoAggregatorTypeTaglet</tagletClass>
+ <tagletArtifact>
+ <groupId>org.apache.maven.plugin-tools</groupId>
+ <artifactId>maven-plugin-tools-javadoc</artifactId>
+ <version>2.5.1</version>
+ </tagletArtifact>
+ </taglet>
+ <taglet>
+ <tagletClass>org.apache.maven.tools.plugin.javadoc.MojoComponentFieldTaglet</tagletClass>
+ <tagletArtifact>
+ <groupId>org.apache.maven.plugin-tools</groupId>
+ <artifactId>maven-plugin-tools-javadoc</artifactId>
+ <version>2.5.1</version>
+ </tagletArtifact>
+ </taglet>
+ <taglet>
+ <tagletClass>org.apache.maven.tools.plugin.javadoc.MojoConfiguratorTypeTaglet</tagletClass>
+ <tagletArtifact>
+ <groupId>org.apache.maven.plugin-tools</groupId>
+ <artifactId>maven-plugin-tools-javadoc</artifactId>
+ <version>2.5.1</version>
+ </tagletArtifact>
+ </taglet>
+ <taglet>
+ <tagletClass>org.apache.maven.tools.plugin.javadoc.MojoExecuteTypeTaglet</tagletClass>
+ <tagletArtifact>
+ <groupId>org.apache.maven.plugin-tools</groupId>
+ <artifactId>maven-plugin-tools-javadoc</artifactId>
+ <version>2.5.1</version>
+ </tagletArtifact>
+ </taglet>
+ <taglet>
+ <tagletClass>org.apache.maven.tools.plugin.javadoc.MojoExecutionStrategyTypeTaglet
+ </tagletClass>
+ <tagletArtifact>
+ <groupId>org.apache.maven.plugin-tools</groupId>
+ <artifactId>maven-plugin-tools-javadoc</artifactId>
+ <version>2.5.1</version>
+ </tagletArtifact>
+ </taglet>
+ <taglet>
+ <tagletClass>org.apache.maven.tools.plugin.javadoc.MojoGoalTypeTaglet</tagletClass>
+ <tagletArtifact>
+ <groupId>org.apache.maven.plugin-tools</groupId>
+ <artifactId>maven-plugin-tools-javadoc</artifactId>
+ <version>2.5.1</version>
+ </tagletArtifact>
+ </taglet>
+ <taglet>
+ <tagletClass>org.apache.maven.tools.plugin.javadoc.MojoInheritByDefaultTypeTaglet
+ </tagletClass>
+ <tagletArtifact>
+ <groupId>org.apache.maven.plugin-tools</groupId>
+ <artifactId>maven-plugin-tools-javadoc</artifactId>
+ <version>2.5.1</version>
+ </tagletArtifact>
+ </taglet>
+ <taglet>
+ <tagletClass>org.apache.maven.tools.plugin.javadoc.MojoInstantiationStrategyTypeTaglet
+ </tagletClass>
+ <tagletArtifact>
+ <groupId>org.apache.maven.plugin-tools</groupId>
+ <artifactId>maven-plugin-tools-javadoc</artifactId>
+ <version>2.5.1</version>
+ </tagletArtifact>
+ </taglet>
+ <taglet>
+ <tagletClass>org.apache.maven.tools.plugin.javadoc.MojoParameterFieldTaglet</tagletClass>
+ <tagletArtifact>
+ <groupId>org.apache.maven.plugin-tools</groupId>
+ <artifactId>maven-plugin-tools-javadoc</artifactId>
+ <version>2.5.1</version>
+ </tagletArtifact>
+ </taglet>
+ <taglet>
+ <tagletClass>org.apache.maven.tools.plugin.javadoc.MojoPhaseTypeTaglet</tagletClass>
+ <tagletArtifact>
+ <groupId>org.apache.maven.plugin-tools</groupId>
+ <artifactId>maven-plugin-tools-javadoc</artifactId>
+ <version>2.5.1</version>
+ </tagletArtifact>
+ </taglet>
+ <taglet>
+ <tagletClass>org.apache.maven.tools.plugin.javadoc.MojoReadOnlyFieldTaglet</tagletClass>
+ <tagletArtifact>
+ <groupId>org.apache.maven.plugin-tools</groupId>
+ <artifactId>maven-plugin-tools-javadoc</artifactId>
+ <version>2.5.1</version>
+ </tagletArtifact>
+ </taglet>
+ <taglet>
+ <tagletClass>org.apache.maven.tools.plugin.javadoc.MojoRequiredFieldTaglet</tagletClass>
+ <tagletArtifact>
+ <groupId>org.apache.maven.plugin-tools</groupId>
+ <artifactId>maven-plugin-tools-javadoc</artifactId>
+ <version>2.5.1</version>
+ </tagletArtifact>
+ </taglet>
+ <taglet>
+ <tagletClass>
+ org.apache.maven.tools.plugin.javadoc.MojoRequiresDependencyResolutionTypeTaglet
+ </tagletClass>
+ <tagletArtifact>
+ <groupId>org.apache.maven.plugin-tools</groupId>
+ <artifactId>maven-plugin-tools-javadoc</artifactId>
+ <version>2.5.1</version>
+ </tagletArtifact>
+ </taglet>
+ <taglet>
+ <tagletClass>org.apache.maven.tools.plugin.javadoc.MojoRequiresDirectInvocationTypeTaglet
+ </tagletClass>
+ <tagletArtifact>
+ <groupId>org.apache.maven.plugin-tools</groupId>
+ <artifactId>maven-plugin-tools-javadoc</artifactId>
+ <version>2.5.1</version>
+ </tagletArtifact>
+ </taglet>
+ <taglet>
+ <tagletClass>org.apache.maven.tools.plugin.javadoc.MojoRequiresOnLineTypeTaglet
+ </tagletClass>
+ <tagletArtifact>
+ <groupId>org.apache.maven.plugin-tools</groupId>
+ <artifactId>maven-plugin-tools-javadoc</artifactId>
+ <version>2.5.1</version>
+ </tagletArtifact>
+ </taglet>
+ <taglet>
+ <tagletClass>org.apache.maven.tools.plugin.javadoc.MojoRequiresProjectTypeTaglet
+ </tagletClass>
+ <tagletArtifact>
+ <groupId>org.apache.maven.plugin-tools</groupId>
+ <artifactId>maven-plugin-tools-javadoc</artifactId>
+ <version>2.5.1</version>
+ </tagletArtifact>
+ </taglet>
+ <taglet>
+ <tagletClass>org.apache.maven.tools.plugin.javadoc.MojoRequiresReportsTypeTaglet
+ </tagletClass>
+ <tagletArtifact>
+ <groupId>org.apache.maven.plugin-tools</groupId>
+ <artifactId>maven-plugin-tools-javadoc</artifactId>
+ <version>2.5.1</version>
+ </tagletArtifact>
+ </taglet>
+
+ <taglet>
+ <tagletClass>org.codehaus.plexus.javadoc.PlexusComponentTaglet</tagletClass>
+ <tagletArtifact>
+ <groupId>org.codehaus.plexus</groupId>
+ <artifactId>plexus-component-javadoc</artifactId>
+ <version>1.3.0</version>
+ </tagletArtifact>
+ </taglet>
+ <taglet>
+ <tagletClass>org.codehaus.plexus.javadoc.PlexusConfigurationTaglet</tagletClass>
+ <tagletArtifact>
+ <groupId>org.codehaus.plexus</groupId>
+ <artifactId>plexus-component-javadoc</artifactId>
+ <version>1.3.0</version>
+ </tagletArtifact>
+ </taglet>
+ <taglet>
+ <tagletClass>org.codehaus.plexus.javadoc.PlexusRequirementTaglet</tagletClass>
+ <tagletArtifact>
+ <groupId>org.codehaus.plexus</groupId>
+ <artifactId>plexus-component-javadoc</artifactId>
+ <version>1.3.0</version>
+ </tagletArtifact>
+ </taglet>
+ </taglets>
+ </configuration>
+ <reportSets>
+ <reportSet>
+ <reports>
+ <report>javadoc</report>
+ <report>test-javadoc</report>
+ </reports>
+ </reportSet>
+ </reportSets>
+ </plugin>
+ </plugins>
+ </reporting>
+
<!-- ************************************************************* -->
<!-- *** Build Environment ************************************** -->
<!-- ************************************************************* -->
1
0
r757 - trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/writer
by tchemit@users.nuiton.org Dec. 16, 2009
by tchemit@users.nuiton.org Dec. 16, 2009
Dec. 16, 2009
Author: tchemit
Date: 2009-12-16 12:21:30 +0100 (Wed, 16 Dec 2009)
New Revision: 757
Modified:
trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/writer/BaseXmiToModelFileWriter.java
trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/writer/XmiToStateModelFileWriter.java
Log:
improve directory creation code + optimize imports
Modified: trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/writer/BaseXmiToModelFileWriter.java
===================================================================
--- trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/writer/BaseXmiToModelFileWriter.java 2009-12-16 11:20:18 UTC (rev 756)
+++ trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/writer/BaseXmiToModelFileWriter.java 2009-12-16 11:21:30 UTC (rev 757)
@@ -172,7 +172,12 @@
File dstDir = outputDir;
if (!relatifPath.isEmpty()) {
dstDir = new File(dstDir, relatifPath);
- dstDir.mkdirs();
+ if (!dstDir.exists()) {
+ boolean b = dstDir.mkdirs();
+ if (!b) {
+ throw new IOException("could not create directory "+dstDir);
+ }
+ }
}
File result = new File(dstDir, filename);
if (!overwrite && file.lastModified() < result.lastModified()) {
Modified: trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/writer/XmiToStateModelFileWriter.java
===================================================================
--- trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/writer/XmiToStateModelFileWriter.java 2009-12-16 11:20:18 UTC (rev 756)
+++ trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/writer/XmiToStateModelFileWriter.java 2009-12-16 11:21:30 UTC (rev 757)
@@ -22,11 +22,8 @@
import org.nuiton.eugene.models.Model;
import org.nuiton.eugene.models.state.StateModel;
-import org.nuiton.plugin.PluginIOContext;
import java.io.File;
-import java.io.IOException;
-import java.util.Map;
/**
* @author tchemit
1
0
Dec. 16, 2009
Author: tchemit
Date: 2009-12-16 12:20:18 +0100 (Wed, 16 Dec 2009)
New Revision: 756
Modified:
trunk/eugene/src/main/java/org/nuiton/eugene/ObjectModelReader.java
trunk/eugene/src/main/java/org/nuiton/eugene/StateModelReader.java
Log:
ModelReader are plexus components
Modified: trunk/eugene/src/main/java/org/nuiton/eugene/ObjectModelReader.java
===================================================================
--- trunk/eugene/src/main/java/org/nuiton/eugene/ObjectModelReader.java 2009-12-14 23:50:27 UTC (rev 755)
+++ trunk/eugene/src/main/java/org/nuiton/eugene/ObjectModelReader.java 2009-12-16 11:20:18 UTC (rev 756)
@@ -57,6 +57,8 @@
*
* Mise a jour: $Date$
* par : $Author$
+ *
+ * @plexus.component role="org.nuiton.eugene.ModelReader" role-hint="objectmodel" description="Object model reader"
*/
public class ObjectModelReader extends ModelReader<ObjectModel> {
Modified: trunk/eugene/src/main/java/org/nuiton/eugene/StateModelReader.java
===================================================================
--- trunk/eugene/src/main/java/org/nuiton/eugene/StateModelReader.java 2009-12-14 23:50:27 UTC (rev 755)
+++ trunk/eugene/src/main/java/org/nuiton/eugene/StateModelReader.java 2009-12-16 11:20:18 UTC (rev 756)
@@ -45,6 +45,8 @@
*
* Mise a jour: $Date$
* par : $Author$
+ *
+ * @plexus.component role="org.nuiton.eugene.ModelReader" role-hint="statemodel" description="State model reader"
*/
public class StateModelReader extends ModelReader<StateModel> {
1
0