r965 - in trunk: . eugene/src/main/java/org/nuiton/eugene/writer maven-eugene-plugin maven-eugene-plugin/src/it maven-eugene-plugin/src/it/evol-879 maven-eugene-plugin/src/it/evol-879/model maven-eugene-plugin/src/it/evol-879/model/model-api maven-eugene-plugin/src/it/evol-879/model/model-api/src maven-eugene-plugin/src/it/evol-879/model/model-api/src/main maven-eugene-plugin/src/it/evol-879/model/model-api/src/main/resources maven-eugene-plugin/src/it/evol-879/model/model-api/src/main/reso
Author: tchemit Date: 2010-09-25 02:00:09 +0200 (Sat, 25 Sep 2010) New Revision: 965 Url: http://nuiton.org/repositories/revision/eugene/965 Log: Anomalie #888: Can not merge two models which does not come from same input Anomalie #889: Too much resources to copy for each writer Anomalie #890: Relative paths are not respected in zargo writer Evolution #879: Search for input resources into classpath Added: trunk/eugene/src/main/java/org/nuiton/eugene/writer/ChainedFileWriterData.java trunk/maven-eugene-plugin/src/it/evol-879/ trunk/maven-eugene-plugin/src/it/evol-879/model/ trunk/maven-eugene-plugin/src/it/evol-879/model/README.txt trunk/maven-eugene-plugin/src/it/evol-879/model/invoker.properties trunk/maven-eugene-plugin/src/it/evol-879/model/model-api/ trunk/maven-eugene-plugin/src/it/evol-879/model/model-api/pom.xml trunk/maven-eugene-plugin/src/it/evol-879/model/model-api/src/ trunk/maven-eugene-plugin/src/it/evol-879/model/model-api/src/main/ trunk/maven-eugene-plugin/src/it/evol-879/model/model-api/src/main/resources/ trunk/maven-eugene-plugin/src/it/evol-879/model/model-api/src/main/resources/models/ trunk/maven-eugene-plugin/src/it/evol-879/model/model-api/src/main/resources/models/topiatest.objectmodel trunk/maven-eugene-plugin/src/it/evol-879/model/model-api/src/main/resources/models/topiatest.properties trunk/maven-eugene-plugin/src/it/evol-879/model/model-api/src/main/resources/models2/ trunk/maven-eugene-plugin/src/it/evol-879/model/model-api/src/main/resources/models2/topiatest2.objectmodel trunk/maven-eugene-plugin/src/it/evol-879/model/model-api/src/main/resources/topiatest3.objectmodel trunk/maven-eugene-plugin/src/it/evol-879/model/model-impl/ trunk/maven-eugene-plugin/src/it/evol-879/model/model-impl/pom.xml trunk/maven-eugene-plugin/src/it/evol-879/model/model-impl/src/ trunk/maven-eugene-plugin/src/it/evol-879/model/model-impl/src/main/ trunk/maven-eugene-plugin/src/it/evol-879/model/model-impl/src/main/models/ trunk/maven-eugene-plugin/src/it/evol-879/model/model-impl/src/main/models/topiatest.properties trunk/maven-eugene-plugin/src/it/evol-879/model/model-impl/src/main/models/topiatest4.objectmodel trunk/maven-eugene-plugin/src/it/evol-879/model/model-impl/src/test/ trunk/maven-eugene-plugin/src/it/evol-879/model/model-impl/src/test/java/ trunk/maven-eugene-plugin/src/it/evol-879/model/model-impl/src/test/java/org/ trunk/maven-eugene-plugin/src/it/evol-879/model/model-impl/src/test/java/org/nuiton/ trunk/maven-eugene-plugin/src/it/evol-879/model/model-impl/src/test/java/org/nuiton/eugne/ trunk/maven-eugene-plugin/src/it/evol-879/model/model-impl/src/test/java/org/nuiton/eugne/plugin/ trunk/maven-eugene-plugin/src/it/evol-879/model/model-impl/src/test/java/org/nuiton/eugne/plugin/GenerationTest.java trunk/maven-eugene-plugin/src/it/evol-879/model/pom.xml trunk/maven-eugene-plugin/src/it/evol-879/model/verify.groovy trunk/maven-eugene-plugin/src/it/evol-879/xmi/ trunk/maven-eugene-plugin/src/it/evol-879/xmi/README.txt trunk/maven-eugene-plugin/src/it/evol-879/xmi/invoker.properties trunk/maven-eugene-plugin/src/it/evol-879/xmi/pom.xml trunk/maven-eugene-plugin/src/it/evol-879/xmi/verify.groovy trunk/maven-eugene-plugin/src/it/evol-879/xmi/xmi-api/ trunk/maven-eugene-plugin/src/it/evol-879/xmi/xmi-api/pom.xml trunk/maven-eugene-plugin/src/it/evol-879/xmi/xmi-api/src/ trunk/maven-eugene-plugin/src/it/evol-879/xmi/xmi-api/src/main/ trunk/maven-eugene-plugin/src/it/evol-879/xmi/xmi-api/src/main/resources/ trunk/maven-eugene-plugin/src/it/evol-879/xmi/xmi-api/src/main/resources/topiatest3.xmi trunk/maven-eugene-plugin/src/it/evol-879/xmi/xmi-api/src/main/resources/xmi/ trunk/maven-eugene-plugin/src/it/evol-879/xmi/xmi-api/src/main/resources/xmi/topiatest.properties trunk/maven-eugene-plugin/src/it/evol-879/xmi/xmi-api/src/main/resources/xmi/topiatest.xmi trunk/maven-eugene-plugin/src/it/evol-879/xmi/xmi-api/src/main/resources/xmi2/ trunk/maven-eugene-plugin/src/it/evol-879/xmi/xmi-api/src/main/resources/xmi2/topiatest2.xmi trunk/maven-eugene-plugin/src/it/evol-879/xmi/xmi-impl/ trunk/maven-eugene-plugin/src/it/evol-879/xmi/xmi-impl/pom.xml trunk/maven-eugene-plugin/src/it/evol-879/xmi/xmi-impl/src/ trunk/maven-eugene-plugin/src/it/evol-879/xmi/xmi-impl/src/main/ trunk/maven-eugene-plugin/src/it/evol-879/xmi/xmi-impl/src/main/xmi/ trunk/maven-eugene-plugin/src/it/evol-879/xmi/xmi-impl/src/main/xmi/topiatest4.properties trunk/maven-eugene-plugin/src/it/evol-879/xmi/xmi-impl/src/main/xmi/topiatest4.xmi trunk/maven-eugene-plugin/src/it/evol-879/xmi/xmi-impl/src/test/ trunk/maven-eugene-plugin/src/it/evol-879/xmi/xmi-impl/src/test/java/ trunk/maven-eugene-plugin/src/it/evol-879/xmi/xmi-impl/src/test/java/org/ trunk/maven-eugene-plugin/src/it/evol-879/xmi/xmi-impl/src/test/java/org/nuiton/ trunk/maven-eugene-plugin/src/it/evol-879/xmi/xmi-impl/src/test/java/org/nuiton/eugne/ trunk/maven-eugene-plugin/src/it/evol-879/xmi/xmi-impl/src/test/java/org/nuiton/eugne/plugin/ trunk/maven-eugene-plugin/src/it/evol-879/xmi/xmi-impl/src/test/java/org/nuiton/eugne/plugin/GenerationTest.java trunk/maven-eugene-plugin/src/it/evol-879/zargo/ trunk/maven-eugene-plugin/src/it/evol-879/zargo/README.txt trunk/maven-eugene-plugin/src/it/evol-879/zargo/invoker.properties trunk/maven-eugene-plugin/src/it/evol-879/zargo/pom.xml trunk/maven-eugene-plugin/src/it/evol-879/zargo/verify.groovy trunk/maven-eugene-plugin/src/it/evol-879/zargo/zargo-api/ trunk/maven-eugene-plugin/src/it/evol-879/zargo/zargo-api/pom.xml trunk/maven-eugene-plugin/src/it/evol-879/zargo/zargo-api/src/ trunk/maven-eugene-plugin/src/it/evol-879/zargo/zargo-api/src/main/ trunk/maven-eugene-plugin/src/it/evol-879/zargo/zargo-api/src/main/resources/ trunk/maven-eugene-plugin/src/it/evol-879/zargo/zargo-api/src/main/resources/topiatest3.zargo trunk/maven-eugene-plugin/src/it/evol-879/zargo/zargo-api/src/main/resources/xmi/ trunk/maven-eugene-plugin/src/it/evol-879/zargo/zargo-api/src/main/resources/xmi/topiatest.properties trunk/maven-eugene-plugin/src/it/evol-879/zargo/zargo-api/src/main/resources/xmi/topiatest.zargo trunk/maven-eugene-plugin/src/it/evol-879/zargo/zargo-api/src/main/resources/xmi2/ trunk/maven-eugene-plugin/src/it/evol-879/zargo/zargo-api/src/main/resources/xmi2/topiatest2.zargo trunk/maven-eugene-plugin/src/it/evol-879/zargo/zargo-impl/ trunk/maven-eugene-plugin/src/it/evol-879/zargo/zargo-impl/pom.xml trunk/maven-eugene-plugin/src/it/evol-879/zargo/zargo-impl/src/ trunk/maven-eugene-plugin/src/it/evol-879/zargo/zargo-impl/src/main/ trunk/maven-eugene-plugin/src/it/evol-879/zargo/zargo-impl/src/main/xmi/ trunk/maven-eugene-plugin/src/it/evol-879/zargo/zargo-impl/src/main/xmi/topiatest4.properties trunk/maven-eugene-plugin/src/it/evol-879/zargo/zargo-impl/src/main/xmi/topiatest4.zargo trunk/maven-eugene-plugin/src/it/evol-879/zargo/zargo-impl/src/test/ trunk/maven-eugene-plugin/src/it/evol-879/zargo/zargo-impl/src/test/java/ trunk/maven-eugene-plugin/src/it/evol-879/zargo/zargo-impl/src/test/java/org/ trunk/maven-eugene-plugin/src/it/evol-879/zargo/zargo-impl/src/test/java/org/nuiton/ trunk/maven-eugene-plugin/src/it/evol-879/zargo/zargo-impl/src/test/java/org/nuiton/eugne/ trunk/maven-eugene-plugin/src/it/evol-879/zargo/zargo-impl/src/test/java/org/nuiton/eugne/plugin/ trunk/maven-eugene-plugin/src/it/evol-879/zargo/zargo-impl/src/test/java/org/nuiton/eugne/plugin/GenerationTest.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/pom.xml trunk/maven-eugene-plugin/src/it/generate-model-files/testIncludeWithNoProtocol/invoker.properties trunk/maven-eugene-plugin/src/it/generate-model-files/testIncludeWithOnlyProtocol/invoker.properties trunk/maven-eugene-plugin/src/it/smart-generate/all/invoker.properties trunk/maven-eugene-plugin/src/it/smart-generate/generators/invoker.properties trunk/maven-eugene-plugin/src/it/smart-generate/only-zargo-xmi/invoker.properties 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/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/XmiChainedFileWriter.java trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/writer/ZargoChainedFileWriter.java trunk/pom.xml Modified: trunk/eugene/src/main/java/org/nuiton/eugene/writer/AbstractChainedFileWriter.java =================================================================== --- trunk/eugene/src/main/java/org/nuiton/eugene/writer/AbstractChainedFileWriter.java 2010-09-24 17:55:00 UTC (rev 964) +++ trunk/eugene/src/main/java/org/nuiton/eugene/writer/AbstractChainedFileWriter.java 2010-09-25 00:00:09 UTC (rev 965) @@ -72,9 +72,27 @@ * #initWriter(ChainedFileWriterConfiguration)} method */ protected Map<String, Object> properties; - + private WriterReport writerReport; + /** + * Generates for all given files ({@code filesByRoot} and then copy + * resources given for his file reacted in the {@code resourcesByFile} + * dictionnary. + * + * @param configuration the shared configuration for all writers + * @param outputDir where to generate files + * @param filesByRoot all files to treate + * @param resourcesByFile resources associated to files to treate + * @throws IOException for any IO pb. + * @since 2.1.3 + */ + protected abstract void generate( + ChainedFileWriterConfiguration configuration, + File outputDir, + Map<File, List<File>> filesByRoot, + Map<File, List<File>> resourcesByFile) throws IOException; + protected AbstractChainedFileWriter(String... propertyNameAndDescriptions) { if (propertyNameAndDescriptions.length % 2 != 0) { throw new IllegalArgumentException( @@ -97,14 +115,16 @@ } /** - * Generates some files for a given input, output and include pattern. + * 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. + * @deprecated since 2.1.3, prefer use {@link #generate(ChainedFileWriterConfiguration, ChainedFileWriterData} */ + @Deprecated protected abstract void generate( ChainedFileWriterConfiguration configuration, File outputDir, @@ -134,15 +154,38 @@ entries.add(entry); } + @SuppressWarnings({"unchecked"}) @Override public <T> T getProperty(String key, Class<T> type) { return (T) properties.get(key); } @Override + public void generate(ChainedFileWriterConfiguration configuration, + ChainedFileWriterData data) + throws IOException { + + initWriter(configuration); + + try { + File outputDir = data.getOutputDirectory(); + Map<File, List<File>> filesByRoot = data.getFilesByRoot(); + + Map<File, List<File>> resourcesByFile = data.getResourcesByFile(); + + // launch generation + generate(configuration, outputDir, filesByRoot, resourcesByFile); + + } finally { + clear(); + } + } + + @Deprecated + @Override public void generate(ChainedFileWriterConfiguration configuration) throws IOException { - + long t0 = System.nanoTime(); initWriter(configuration); @@ -173,6 +216,14 @@ clear(); } } + + /** + * + * @param entries + * @return + * @deprecated since 2.1.3, will not be replaced. + */ + @Deprecated protected Map<File, List<String>> mergeEntries(List<ChainedFileWriterEntry> entries) { // merge entries if required Map<File, List<String>> merge = new HashMap<File, List<String>>(); @@ -189,6 +240,16 @@ return merge; } + + /** + * + * @param configuration + * @param outputDir + * @param entries + * @throws IOException + * @deprecated since 2.1.3, will not be replaced. + */ + @Deprecated protected void generateEntries(ChainedFileWriterConfiguration configuration, File outputDir, Map<File, List<String>> entries) throws IOException { @@ -211,7 +272,6 @@ } } - @Override public String getInputProtocol(String modelType) { // input protocol is the same for all model @@ -227,10 +287,28 @@ } @Override + public File getExtractDirectory(File outputBasedir, boolean testPhase) { + return new File(outputBasedir, testPhase ? + "test-" + getInputProtocol() : + getInputProtocol() + ); + } + + @Override public List<ChainedFileWriterEntry> getEntries() { return entries; } + @Override + public WriterReport getWriterReport() { + return writerReport; + } + + @Override + public void setWriterReport(WriterReport writerReport) { + this.writerReport = writerReport; + } + protected ChainedFileWriter getNextWriter() { return nextWriter; } @@ -261,13 +339,4 @@ } } - @Override - public void setWriterReport(WriterReport writerReport) { - this.writerReport = writerReport; - } - - @Override - public WriterReport getWriterReport() { - return writerReport; - } } Modified: trunk/eugene/src/main/java/org/nuiton/eugene/writer/ChainedFileWriter.java =================================================================== --- trunk/eugene/src/main/java/org/nuiton/eugene/writer/ChainedFileWriter.java 2010-09-24 17:55:00 UTC (rev 964) +++ trunk/eugene/src/main/java/org/nuiton/eugene/writer/ChainedFileWriter.java 2010-09-25 00:00:09 UTC (rev 965) @@ -27,6 +27,7 @@ import java.io.File; import java.io.IOException; +import java.net.URL; import java.util.List; import java.util.Map; @@ -117,14 +118,69 @@ File getOutputDirectory(File outputBasedir, boolean testPhase); /** - * Generates. + * Obtain the real directory where to extract files (when using resources + * from class-path). * + * @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 extract for this particular + * writer + * @since 2.1.3 + */ + File getExtractDirectory(File outputBasedir, boolean testPhase); + + /** + * Launch the generation for this writer. + * * @param configuration the share configuration of all writers. * @throws IOException if any io pb. + * @deprecated since 2.1.3, use now the class-path capable + * {@link #generate(ChainedFileWriterConfiguration, ChainedFileWriterData)} */ + @Deprecated void generate(ChainedFileWriterConfiguration configuration) throws IOException; + /** + * Launch the generation for this writer with all pre-computed data to + * treate and resources to copy. + * + * @param configuration the share configuration of all writers. + * @param data data to treate (files to react + resources to copy) + * @throws IOException if any io pb. + * @since 2.1.3 + */ + void generate(ChainedFileWriterConfiguration configuration, + ChainedFileWriterData data) + throws IOException; + + /** + * Obtain for a given {@code inputDirectory}, all files to treate. + * + * @param configuration the shared configuration + * @param inputDirectory the input directory + * @param includePattern the include pattern separated by comma + * @param inClassPath a flag to say if we should search in classp-ath + * @return the list of resources detected + * @throws IOException if any IO pb while searching resources + * @throws IllegalArgumentException if no include pattern given + * @since 2.1.3 + */ + List<URL> getFiles(ChainedFileWriterConfiguration configuration, + File inputDirectory, + List<String> includePattern, + boolean inClassPath) throws IOException, IllegalArgumentException; + + /** + * Obtain the optional resource files associated to the given file to react. + * + * @param file the file to react + * @return the array of resources associated to the file + * @throws IOException if could not get resources + * @since 2.1.3 + */ + List<URL> getResources(URL file) throws IOException; + /** Clear all internal states */ void clear(); @@ -165,5 +221,5 @@ WriterReport getWriterReport(); void setWriterReport(WriterReport writerReport); - + } Modified: trunk/eugene/src/main/java/org/nuiton/eugene/writer/ChainedFileWriterConfiguration.java =================================================================== --- trunk/eugene/src/main/java/org/nuiton/eugene/writer/ChainedFileWriterConfiguration.java 2010-09-24 17:55:00 UTC (rev 964) +++ trunk/eugene/src/main/java/org/nuiton/eugene/writer/ChainedFileWriterConfiguration.java 2010-09-25 00:00:09 UTC (rev 965) @@ -50,6 +50,12 @@ File getOutputDirectory(); /** + * @return base directory where to extract files obtain from class-path + * @since 2.1.3 + */ + File getExtractDirectory(); + + /** * @return {@code true} if must regenerate files even if they are up to * date */ Added: trunk/eugene/src/main/java/org/nuiton/eugene/writer/ChainedFileWriterData.java =================================================================== --- trunk/eugene/src/main/java/org/nuiton/eugene/writer/ChainedFileWriterData.java (rev 0) +++ trunk/eugene/src/main/java/org/nuiton/eugene/writer/ChainedFileWriterData.java 2010-09-25 00:00:09 UTC (rev 965) @@ -0,0 +1,45 @@ +package org.nuiton.eugene.writer; + +import java.io.File; +import java.util.List; +import java.util.Map; + +/** + * Contains data to be reacted by a {@link ChainedFileWriter}. + * + * @author tchemit <chemit@codelutin.com> + * @since 2.1.3 + */ +public class ChainedFileWriterData { + + File outputDirectory; + + Map<File, List<File>> filesByRoot; + + Map<File, List<File>> resourcesByFile; + + + public File getOutputDirectory() { + return outputDirectory; + } + + public Map<File, List<File>> getFilesByRoot() { + return filesByRoot; + } + + public Map<File, List<File>> getResourcesByFile() { + return resourcesByFile; + } + + public void setResourcesByFile(Map<File, List<File>> resourcesByFile) { + this.resourcesByFile = resourcesByFile; + } + + public void setOutputDirectory(File outputDirectory) { + this.outputDirectory = outputDirectory; + } + + public void setFilesByRoot(Map<File, List<File>> filesByRoot) { + this.filesByRoot = filesByRoot; + } +} Modified: trunk/eugene/src/main/java/org/nuiton/eugene/writer/ChainedWriterEngine.java =================================================================== --- trunk/eugene/src/main/java/org/nuiton/eugene/writer/ChainedWriterEngine.java 2010-09-24 17:55:00 UTC (rev 964) +++ trunk/eugene/src/main/java/org/nuiton/eugene/writer/ChainedWriterEngine.java 2010-09-25 00:00:09 UTC (rev 965) @@ -25,6 +25,7 @@ package org.nuiton.eugene.writer; +import java.io.IOException; import java.util.List; import java.util.Map; import java.util.Set; @@ -41,9 +42,7 @@ * * @author Tony Chemit <chemit@codelutin.com> Copyright Code Lutin * @version $Revision$ - * <p/> - * Mise a jour: $Date$ - * par : * @since 2.0.0 + * @since 2.0.0 */ public interface ChainedWriterEngine { /** @@ -132,6 +131,21 @@ String include, String modelType); - /** clean internal states */ + /** + * Obtain the universe of files to react by the given {@code writer} + * associated with each (distinct). + * <p/> + * <b>Note:</b> If some files are in class-path (using the classpath: + * prefix) then they will be extracted to the + * {@link ChainedFileWriterConfiguration#getExtractDirectory()}. + * + * @param writer the writer to inspect + * @return the universe of files to react for the given writer + * @throws IOException for any IO pb + * @since 2.1.3 + */ + ChainedFileWriterData getData(ChainedFileWriter writer) throws IOException; + + /** clean all internal states */ void clear(); } Modified: trunk/eugene/src/main/java/org/nuiton/eugene/writer/DefaultChainedWriterEngine.java =================================================================== --- trunk/eugene/src/main/java/org/nuiton/eugene/writer/DefaultChainedWriterEngine.java 2010-09-24 17:55:00 UTC (rev 964) +++ trunk/eugene/src/main/java/org/nuiton/eugene/writer/DefaultChainedWriterEngine.java 2010-09-25 00:00:09 UTC (rev 965) @@ -25,11 +25,21 @@ package org.nuiton.eugene.writer; +import org.apache.commons.collections.CollectionUtils; +import org.apache.commons.io.IOUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import java.io.File; -import java.util.*; +import java.io.FileOutputStream; +import java.io.IOException; +import java.net.URL; +import java.util.ArrayList; +import java.util.HashMap; +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; @@ -40,28 +50,22 @@ * * @author Tony Chemit <chemit@codelutin.com> Copyright Code Lutin * @version $Id$ - * * @plexus.component role="org.nuiton.eugene.writer.ChainedWriterEngine" role-hint="default" * @since 2.0.0 */ public class DefaultChainedWriterEngine implements ChainedWriterEngine { - /** - * Logger - */ + /** Logger */ private static final Log log = LogFactory.getLog(DefaultChainedWriterEngine.class); - /** - * shared configuration - */ + + /** shared configuration */ protected ChainedFileWriterConfiguration configuration; - /** - * available writers corresponding to the given configuration - */ + + /** available writers corresponding to the given configuration */ protected Set<ChainedFileWriter> availableWriters; - /** - * selected writers obtain while the register phase. - */ + + /** selected writers obtain while the register phase. */ protected List<ChainedFileWriter> selectedWriters; @Override @@ -276,6 +280,199 @@ return null; } + @Override + public ChainedFileWriterData getData(ChainedFileWriter writer) throws IOException { + + checkConfiguration("getData"); + File outputDir = writer.getOutputDirectory( + configuration.getOutputDirectory(), + configuration.isTestPhase() + ); + + if (!outputDir.exists()) { + if (log.isDebugEnabled()) { + log.debug("[" + writer.getInputProtocol() + + "] Create output directory " + outputDir); + } + boolean b = outputDir.mkdirs(); + if (!b) { + throw new IOException("Could not create directory " + + outputDir); + } + } + + // first thing is to merge entries (normal ones and classpath ones) + Map<File, List<String>> normalEntries = new HashMap<File, List<String>>(); + Map<File, List<String>> classpathEntries = new HashMap<File, List<String>>(); + + for (ChainedFileWriterEntry e : writer.getEntries()) { + Map<File, List<String>> currentMap; + + if (e.isUseClassPath()) { + + currentMap = classpathEntries; + } else { + currentMap = normalEntries; + } + + File input = e.getInputDirectory(); + List<String> includes = currentMap.get(input); + if (includes == null) { + includes = new ArrayList<String>(); + currentMap.put(input, includes); + } + includes.add(e.getIncludePattern()); + } + + ChainedFileWriterData result = new ChainedFileWriterData(); + result.setFilesByRoot(new HashMap<File, List<File>>()); + result.setResourcesByFile(new HashMap<File, List<File>>()); + result.setOutputDirectory(outputDir); + + // search normal files + addFilesToTreate(writer, normalEntries, result, false); + + // search class-path files + addFilesToTreate(writer, classpathEntries, result, true); + + return result; + } + + protected void addFilesToTreate(ChainedFileWriter writer, + Map<File, List<String>> entries, + ChainedFileWriterData result, + boolean useClassPath) throws IOException { + + File extractDirectory = writer.getExtractDirectory( + configuration.getExtractDirectory(), + configuration.isTestPhase() + ); + + Map<File, List<File>> filesByRoot = result.getFilesByRoot(); + Map<File, List<File>> resourcesByFile = result.getResourcesByFile(); + + for (Map.Entry<File, List<String>> entry : entries.entrySet()) { + File inputDirectory = entry.getKey(); + + // final input directory to use (for class-path entries, we will + // replace the class-path path by the extracted path + + File realInputDirectory = inputDirectory; + + if (useClassPath) { + + // use the extracted path as input directory, otherwise there + // will have a problem : the incoming inputDirectory will not be + // an ancestor of his resources, so prefer to use the extracted + // path which fix this problem. + String inputPath = inputDirectory.getAbsolutePath(); + if (inputPath.equals("/")) { + realInputDirectory = extractDirectory; + } else { + realInputDirectory = + new File(extractDirectory, inputPath.substring(1)); + } + } + + List<String> includePatterns = entry.getValue(); + + List<URL> newUrls = writer.getFiles(configuration, + inputDirectory, + includePatterns, + useClassPath + ); + + List<File> files = filesByRoot.get(realInputDirectory); + if (files == null) { + files = new ArrayList<File>(); + filesByRoot.put(realInputDirectory, files); + } + + for (URL url : newUrls) { + + // get the file + File file = extractFile(extractDirectory, + url, + useClassPath + ); + + // add the file in reactor + files.add(file); + + // get resources associated with the file + List<URL> newResources = writer.getResources(url); + + if (CollectionUtils.isEmpty(newResources)) { + + // no resource associated with the file + if (log.isDebugEnabled()) { + log.debug("[" + file + "] No resource associated."); + } + continue; + } + + // get resources for this file + List<File> resources = new ArrayList<File>(newResources.size()); + for (URL resource : newResources) { + + // get the resource file + File r = extractFile( + extractDirectory, + resource, + useClassPath + ); + if (log.isDebugEnabled()) { + log.debug("[" + file + "] Detected resource " + r); + } + resources.add(r); + } + + resourcesByFile.put(file, resources); + } + + if (useClassPath && CollectionUtils.isNotEmpty(files)) { + + // check that extracted direcotry exists + // create extractDirectory + boolean b = extractDirectory.exists() || + extractDirectory.mkdirs(); + if (!b) { + throw new IOException( + "Could not create directory " + extractDirectory); + } + } + } + } + + protected File extractFile(File extractDirectory, + URL url, + boolean useClassPath) throws IOException { + + if (!useClassPath) { + return new File(url.getFile()); + } + + String path = url.getPath(); + int index = path.indexOf("!"); + String relativePath = path.substring(index + 1); + File f = new File(extractDirectory, relativePath); + if (log.isDebugEnabled()) { + log.debug("extract " + url + " to " + f); + } + File parentFile = f.getParentFile(); + boolean b = parentFile.exists() || parentFile.mkdirs(); + if (!b) { + throw new IOException("Could not create directory " + f); + } + FileOutputStream out = new FileOutputStream(f); + try { + IOUtils.copy(url.openStream(), out); + } finally { + out.close(); + } + return f; + } + protected void checkConfiguration(String method) throws IllegalStateException { if (getConfiguration() == null) { @@ -342,6 +539,59 @@ } }, + NO_PROTOCOL_PATTERN_WITH_CLASSPATH(Pattern.compile("^classpath:([^:]+):([^:]+)$")) { + @Override + public ChainedFileWriter getWriter(ChainedWriterEngine engine, + String include, + Matcher matcher) { + ChainedFileWriterConfiguration configuration = + engine.getConfiguration(); + Set<ChainedFileWriter> universe = engine.getAvailableWriters(); + + String modelType = configuration.getModelType(); + // 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) { + + // 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(inputPath), + includes, + true + ); + return writerEntry; + } + }, + NO_PROTOCOL_PATTERN(Pattern.compile("^([^:]+):([^:]+)$")) { @Override public ChainedFileWriter getWriter(ChainedWriterEngine engine, @@ -395,6 +645,57 @@ } }, + FULL_PATTERN_WITH_CLASSPATH(Pattern.compile("^classpath:(\\w+):([^:]+):([^:]+)$")) { + @Override + public ChainedFileWriter getWriter(ChainedWriterEngine engine, + String include, + Matcher matcher) { + // with full pattern to search in class path (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.getModelType()); + + 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) { + // 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); + + //TODO tchemit 2010-09-22 Should be able to do a pattern research + ChainedFileWriterEntry writerEntry = new ChainedFileWriterEntry( + new File(inputPath), + includes, + true + ); + return writerEntry; + } + }, FULL_PATTERN(Pattern.compile("^(\\w+):([^:]+):([^:]+)$")) { @Override public ChainedFileWriter getWriter(ChainedWriterEngine engine, Modified: trunk/maven-eugene-plugin/pom.xml =================================================================== --- trunk/maven-eugene-plugin/pom.xml 2010-09-24 17:55:00 UTC (rev 964) +++ trunk/maven-eugene-plugin/pom.xml 2010-09-25 00:00:09 UTC (rev 965) @@ -143,7 +143,7 @@ </build> </profile> - + <!-- perform only on a release stage when using the maven-release-plugin --> <profile> <id>reporting</id> @@ -186,18 +186,20 @@ <artifactId>maven-invoker-plugin</artifactId> <configuration> <pomIncludes> + <pomInclude>evol-879/zargo/pom.xml</pomInclude> + <pomInclude>evol-879/xmi/pom.xml</pomInclude> + <pomInclude>evol-879/model/pom.xml</pomInclude> <pomInclude>copyVersionFiles/anomalie163/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> <localRepositoryPath>${basedir}/target/local-repo</localRepositoryPath> <settingsFile>src/it/settings.xml</settingsFile> <cloneProjectsTo>${project.build.directory}/its</cloneProjectsTo> - <!--<debug>true</debug>--> + <debug>${maven.verbose}</debug> </configuration> <executions> <execution> Added: trunk/maven-eugene-plugin/src/it/evol-879/model/README.txt =================================================================== --- trunk/maven-eugene-plugin/src/it/evol-879/model/README.txt (rev 0) +++ trunk/maven-eugene-plugin/src/it/evol-879/model/README.txt 2010-09-25 00:00:09 UTC (rev 965) @@ -0,0 +1,45 @@ +On teste ici le goal smart-generate avec un fichier model dans le class-path : + +Le résultat désiré est : + +maven-eugene-plugin/target/its/evol-879/model/model-impl/target/ +|-- extracted-sources1 +| `-- model +| `-- models +| |-- topiatest.objectmodel +| `-- topiatest.properties +|-- extracted-sources2 +| `-- model +| `-- models2 +| `-- topiatest2.objectmodel +|-- extracted-sources3 +| `-- model +| `-- topiatest3.objectmodel +|-- generated-sources1 +| `-- java +| `-- org +| `-- nuiton +| `-- topia +| `-- test +| `-- entities +|-- generated-sources2 +| `-- java +| `-- org +| `-- nuiton +| `-- topia +| `-- test +| `-- entities +|-- generated-sources3 +| `-- java +| `-- org +| `-- nuiton +| `-- topia +| `-- test +| `-- entities +`-- generated-sources4 + `-- java + `-- org + `-- nuiton + `-- topia + `-- test + `-- entities Added: trunk/maven-eugene-plugin/src/it/evol-879/model/invoker.properties =================================================================== --- trunk/maven-eugene-plugin/src/it/evol-879/model/invoker.properties (rev 0) +++ trunk/maven-eugene-plugin/src/it/evol-879/model/invoker.properties 2010-09-25 00:00:09 UTC (rev 965) @@ -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 install + +# 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-fast + +# 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/evol-879/model/model-api/pom.xml =================================================================== --- trunk/maven-eugene-plugin/src/it/evol-879/model/model-api/pom.xml (rev 0) +++ trunk/maven-eugene-plugin/src/it/evol-879/model/model-api/pom.xml 2010-09-25 00:00:09 UTC (rev 965) @@ -0,0 +1,46 @@ +<?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.eugene.test</groupId> + <artifactId>testEvol879-model</artifactId> + <version>2.0.0</version> + </parent> + + <artifactId>testEvol879-model-api</artifactId> + + <name>EUGene Test :: testEvol879-model-api</name> + + <properties> + + <eugeneVersion>@pom.version@</eugeneVersion> + + <!-- default encoding --> + <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> + + </properties> + + <build> + + <resources> + <resource> + <directory>src/main/resources</directory> + <includes> + <include>**/*</include> + </includes> + </resource> + </resources> + + </build> + +</project> + + Added: trunk/maven-eugene-plugin/src/it/evol-879/model/model-api/src/main/resources/models/topiatest.objectmodel =================================================================== --- trunk/maven-eugene-plugin/src/it/evol-879/model/model-api/src/main/resources/models/topiatest.objectmodel (rev 0) +++ trunk/maven-eugene-plugin/src/it/evol-879/model/model-api/src/main/resources/models/topiatest.objectmodel 2010-09-25 00:00:09 UTC (rev 965) @@ -0,0 +1,21 @@ +<?xml version="1.0" encoding="UTF-8"?> +<objectModel xmlns="http://www.codelutin.org/eugene/objectModel" name="xmiTopiaTest" version="1.2"> + <class name="Person" package="org.nuiton.topia.test.entities"> + <stereotype name="entity"/> + <attribute name="name" associationType="composite" visibility="public" type="java.lang.String" minMultiplicity="1" maxMultiplicity="1"/> + <attribute name="firstname" associationType="composite" visibility="public" type="java.lang.String" minMultiplicity="1" maxMultiplicity="1"/> + <attribute visibility="public" type="org.nuiton.topia.test.entities.Pet" reverseAttributeName="" reverseMaxMultiplicity="1" minMultiplicity="0" maxMultiplicity="-1" navigable="true" ordering="unordered"/> + </class> + <class name="Pet" package="org.nuiton.topia.test.entities"> + <stereotype name="entity"/> + <attribute name="name" associationType="composite" visibility="public" type="java.lang.String" minMultiplicity="1" maxMultiplicity="1"/> + <attribute name="type" associationType="composite" visibility="public" type="java.lang.String" minMultiplicity="1" maxMultiplicity="1"/> + <attribute visibility="public" type="org.nuiton.topia.test.entities.Person" reverseAttributeName="" reverseMaxMultiplicity="-1" minMultiplicity="1" maxMultiplicity="1" navigable="true" ordering="unordered"/> + <attribute visibility="public" type="org.nuiton.topia.test.entities.Race" reverseAttributeName="" associationType="composite" reverseMaxMultiplicity="1" minMultiplicity="1" maxMultiplicity="1" navigable="true" ordering="unordered"/> + </class> + <class name="Race" package="org.nuiton.topia.test.entities"> + <stereotype name="entity"/> + <attribute name="name" associationType="composite" visibility="public" type="java.lang.String" minMultiplicity="1" maxMultiplicity="1"/> + <attribute visibility="public" type="org.nuiton.topia.test.entities.Pet" reverseAttributeName="" reverseMaxMultiplicity="1" minMultiplicity="1" maxMultiplicity="1" navigable="false" ordering="unordered"/> + </class> +</objectModel> Added: trunk/maven-eugene-plugin/src/it/evol-879/model/model-api/src/main/resources/models/topiatest.properties =================================================================== --- trunk/maven-eugene-plugin/src/it/evol-879/model/model-api/src/main/resources/models/topiatest.properties (rev 0) +++ trunk/maven-eugene-plugin/src/it/evol-879/model/model-api/src/main/resources/models/topiatest.properties 2010-09-25 00:00:09 UTC (rev 965) @@ -0,0 +1 @@ +model.tagvalue.generateOperatorForDAOHelper=true \ No newline at end of file Added: trunk/maven-eugene-plugin/src/it/evol-879/model/model-api/src/main/resources/models2/topiatest2.objectmodel =================================================================== --- trunk/maven-eugene-plugin/src/it/evol-879/model/model-api/src/main/resources/models2/topiatest2.objectmodel (rev 0) +++ trunk/maven-eugene-plugin/src/it/evol-879/model/model-api/src/main/resources/models2/topiatest2.objectmodel 2010-09-25 00:00:09 UTC (rev 965) @@ -0,0 +1,21 @@ +<?xml version="1.0" encoding="UTF-8"?> +<objectModel xmlns="http://www.codelutin.org/eugene/objectModel" name="xmiTopiaTest2" version="1.2"> + <class name="Person" package="org.nuiton.topia.test.entities2"> + <stereotype name="entity"/> + <attribute name="name" associationType="composite" visibility="public" type="java.lang.String" minMultiplicity="1" maxMultiplicity="1"/> + <attribute name="firstname" associationType="composite" visibility="public" type="java.lang.String" minMultiplicity="1" maxMultiplicity="1"/> + <attribute visibility="public" type="org.nuiton.topia.test.entities2.Pet" reverseAttributeName="" reverseMaxMultiplicity="1" minMultiplicity="0" maxMultiplicity="-1" navigable="true" ordering="unordered"/> + </class> + <class name="Pet" package="org.nuiton.topia.test.entities2"> + <stereotype name="entity"/> + <attribute name="name" associationType="composite" visibility="public" type="java.lang.String" minMultiplicity="1" maxMultiplicity="1"/> + <attribute name="type" associationType="composite" visibility="public" type="java.lang.String" minMultiplicity="1" maxMultiplicity="1"/> + <attribute visibility="public" type="org.nuiton.topia.test.entities2.Person" reverseAttributeName="" reverseMaxMultiplicity="-1" minMultiplicity="1" maxMultiplicity="1" navigable="true" ordering="unordered"/> + <attribute visibility="public" type="org.nuiton.topia.test.entities2.Race" reverseAttributeName="" associationType="composite" reverseMaxMultiplicity="1" minMultiplicity="1" maxMultiplicity="1" navigable="true" ordering="unordered"/> + </class> + <class name="Race" package="org.nuiton.topia.test.entities2"> + <stereotype name="entity"/> + <attribute name="name" associationType="composite" visibility="public" type="java.lang.String" minMultiplicity="1" maxMultiplicity="1"/> + <attribute visibility="public" type="org.nuiton.topia.test.entities2.Pet" reverseAttributeName="" reverseMaxMultiplicity="1" minMultiplicity="1" maxMultiplicity="1" navigable="false" ordering="unordered"/> + </class> +</objectModel> Added: trunk/maven-eugene-plugin/src/it/evol-879/model/model-api/src/main/resources/topiatest3.objectmodel =================================================================== --- trunk/maven-eugene-plugin/src/it/evol-879/model/model-api/src/main/resources/topiatest3.objectmodel (rev 0) +++ trunk/maven-eugene-plugin/src/it/evol-879/model/model-api/src/main/resources/topiatest3.objectmodel 2010-09-25 00:00:09 UTC (rev 965) @@ -0,0 +1,21 @@ +<?xml version="1.0" encoding="UTF-8"?> +<objectModel xmlns="http://www.codelutin.org/eugene/objectModel" name="xmiTopiaTest3" version="1.2"> + <class name="Person" package="org.nuiton.topia.test.entities3"> + <stereotype name="entity"/> + <attribute name="name" associationType="composite" visibility="public" type="java.lang.String" minMultiplicity="1" maxMultiplicity="1"/> + <attribute name="firstname" associationType="composite" visibility="public" type="java.lang.String" minMultiplicity="1" maxMultiplicity="1"/> + <attribute visibility="public" type="org.nuiton.topia.test.entities3.Pet" reverseAttributeName="" reverseMaxMultiplicity="1" minMultiplicity="0" maxMultiplicity="-1" navigable="true" ordering="unordered"/> + </class> + <class name="Pet" package="org.nuiton.topia.test.entities3"> + <stereotype name="entity"/> + <attribute name="name" associationType="composite" visibility="public" type="java.lang.String" minMultiplicity="1" maxMultiplicity="1"/> + <attribute name="type" associationType="composite" visibility="public" type="java.lang.String" minMultiplicity="1" maxMultiplicity="1"/> + <attribute visibility="public" type="org.nuiton.topia.test.entities3.Person" reverseAttributeName="" reverseMaxMultiplicity="-1" minMultiplicity="1" maxMultiplicity="1" navigable="true" ordering="unordered"/> + <attribute visibility="public" type="org.nuiton.topia.test.entities3.Race" reverseAttributeName="" associationType="composite" reverseMaxMultiplicity="1" minMultiplicity="1" maxMultiplicity="1" navigable="true" ordering="unordered"/> + </class> + <class name="Race" package="org.nuiton.topia.test.entities3"> + <stereotype name="entity"/> + <attribute name="name" associationType="composite" visibility="public" type="java.lang.String" minMultiplicity="1" maxMultiplicity="1"/> + <attribute visibility="public" type="org.nuiton.topia.test.entities3.Pet" reverseAttributeName="" reverseMaxMultiplicity="1" minMultiplicity="1" maxMultiplicity="1" navigable="false" ordering="unordered"/> + </class> +</objectModel> Added: trunk/maven-eugene-plugin/src/it/evol-879/model/model-impl/pom.xml =================================================================== --- trunk/maven-eugene-plugin/src/it/evol-879/model/model-impl/pom.xml (rev 0) +++ trunk/maven-eugene-plugin/src/it/evol-879/model/model-impl/pom.xml 2010-09-25 00:00:09 UTC (rev 965) @@ -0,0 +1,142 @@ +<?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.eugene.test</groupId> + <artifactId>testEvol879-model</artifactId> + <version>2.0.0</version> + </parent> + + <artifactId>testEvol879-model-impl</artifactId> + + <dependencies> + <dependency> + <groupId>org.nuiton</groupId> + <artifactId>nuiton-utils</artifactId> + <version>1.4.1</version> + </dependency> + <dependency> + <groupId>org.nuiton.topia</groupId> + <artifactId>topia-persistence</artifactId> + <version>2.4.3</version> + </dependency> + <dependency> + <groupId>commons-lang</groupId> + <artifactId>commons-lang</artifactId> + <version>2.5</version> + </dependency> + <dependency> + <groupId>junit</groupId> + <artifactId>junit</artifactId> + <scope>test</scope> + <version>4.8.1</version> + </dependency> + </dependencies> + + <name>EUGene Test :: testEvol879-model-impl</name> + + <build> + + <plugins> + + <plugin> + <groupId>org.nuiton.eugene</groupId> + <artifactId>maven-eugene-plugin</artifactId> + <version>${eugeneVersion}</version> + <configuration> + <fullPackagePath>org.nuiton.topia</fullPackagePath> + <defaultPackage>org.nuiton.topia</defaultPackage> + <templates> + org.nuiton.topia.generator.TopiaMetaTransformer, + org.nuiton.eugene.java.JavaInterfaceTransformer, + org.nuiton.eugene.java.JavaBeanTransformer, + org.nuiton.topia.generator.BinderHelperTransformer + </templates> + </configuration> + <executions> + <execution> + <id>Test 1 : from classpath:/models with resources</id> + <phase>generate-sources</phase> + <configuration> + <inputs>classpath:model:/models:topiatest.objectmodel + </inputs> + <outputDirectory>target/generated-sources1</outputDirectory> + <extractDirectory>target/extracted-sources1</extractDirectory> + </configuration> + <goals> + <goal>smart-generate</goal> + </goals> + </execution> + <execution> + <id>Test 2 : from classpath:/models2 without resources</id> + <phase>generate-sources</phase> + <configuration> + <!--<skipInputs>model</skipInputs>--> + <inputs>classpath:model:/models2:topiatest2.objectmodel + </inputs> + <outputDirectory>target/generated-sources2</outputDirectory> + <extractDirectory>target/extracted-sources2</extractDirectory> + </configuration> + <goals> + <goal>smart-generate</goal> + </goals> + </execution> + <execution> + <id>Test 3 : from classpath:/ without resources</id> + <phase>generate-sources</phase> + <configuration> + <!--<skipInputs>model</skipInputs>--> + <inputs>classpath:model:/:topiatest3.objectmodel</inputs> + <outputDirectory>target/generated-sources3</outputDirectory> + <extractDirectory>target/extracted-sources3</extractDirectory> + </configuration> + <goals> + <goal>smart-generate</goal> + </goals> + </execution> + <execution> + <id>Test 4 : from src/main/models with resources</id> + <phase>generate-sources</phase> + <configuration> + <!--<skipInputs>model</skipInputs>--> + <inputs>src/main/models:topiatest4.objectmodel</inputs> + <outputDirectory>target/generated-sources4</outputDirectory> + <extractDirectory>target/extracted-sources4</extractDirectory> + </configuration> + <goals> + <goal>smart-generate</goal> + </goals> + </execution> + </executions> + <dependencies> + <dependency> + <groupId>log4j</groupId> + <artifactId>log4j</artifactId> + <version>1.2.14</version> + </dependency> + <dependency> + <groupId>${project.groupId}</groupId> + <artifactId>testEvol879-model-api</artifactId> + <version>${project.version}</version> + </dependency> + <dependency> + <groupId>org.nuiton.topia</groupId> + <artifactId>topia-persistence</artifactId> + <version>2.4.3</version> + </dependency> + </dependencies> + </plugin> + </plugins> + </build> + +</project> + + Added: trunk/maven-eugene-plugin/src/it/evol-879/model/model-impl/src/main/models/topiatest.properties =================================================================== --- trunk/maven-eugene-plugin/src/it/evol-879/model/model-impl/src/main/models/topiatest.properties (rev 0) +++ trunk/maven-eugene-plugin/src/it/evol-879/model/model-impl/src/main/models/topiatest.properties 2010-09-25 00:00:09 UTC (rev 965) @@ -0,0 +1 @@ +model.tagvalue.generateOperatorForDAOHelper=true \ No newline at end of file Added: trunk/maven-eugene-plugin/src/it/evol-879/model/model-impl/src/main/models/topiatest4.objectmodel =================================================================== --- trunk/maven-eugene-plugin/src/it/evol-879/model/model-impl/src/main/models/topiatest4.objectmodel (rev 0) +++ trunk/maven-eugene-plugin/src/it/evol-879/model/model-impl/src/main/models/topiatest4.objectmodel 2010-09-25 00:00:09 UTC (rev 965) @@ -0,0 +1,21 @@ +<?xml version="1.0" encoding="UTF-8"?> +<objectModel xmlns="http://www.codelutin.org/eugene/objectModel" name="xmiTopiaTest4" version="1.2"> + <class name="Person" package="org.nuiton.topia.test.entities4"> + <stereotype name="entity"/> + <attribute name="name" associationType="composite" visibility="public" type="java.lang.String" minMultiplicity="1" maxMultiplicity="1"/> + <attribute name="firstname" associationType="composite" visibility="public" type="java.lang.String" minMultiplicity="1" maxMultiplicity="1"/> + <attribute visibility="public" type="org.nuiton.topia.test.entities4.Pet" reverseAttributeName="" reverseMaxMultiplicity="1" minMultiplicity="0" maxMultiplicity="-1" navigable="true" ordering="unordered"/> + </class> + <class name="Pet" package="org.nuiton.topia.test.entities4"> + <stereotype name="entity"/> + <attribute name="name" associationType="composite" visibility="public" type="java.lang.String" minMultiplicity="1" maxMultiplicity="1"/> + <attribute name="type" associationType="composite" visibility="public" type="java.lang.String" minMultiplicity="1" maxMultiplicity="1"/> + <attribute visibility="public" type="org.nuiton.topia.test.entities4.Person" reverseAttributeName="" reverseMaxMultiplicity="-1" minMultiplicity="1" maxMultiplicity="1" navigable="true" ordering="unordered"/> + <attribute visibility="public" type="org.nuiton.topia.test.entities4.Race" reverseAttributeName="" associationType="composite" reverseMaxMultiplicity="1" minMultiplicity="1" maxMultiplicity="1" navigable="true" ordering="unordered"/> + </class> + <class name="Race" package="org.nuiton.topia.test.entities4"> + <stereotype name="entity"/> + <attribute name="name" associationType="composite" visibility="public" type="java.lang.String" minMultiplicity="1" maxMultiplicity="1"/> + <attribute visibility="public" type="org.nuiton.topia.test.entities4.Pet" reverseAttributeName="" reverseMaxMultiplicity="1" minMultiplicity="1" maxMultiplicity="1" navigable="false" ordering="unordered"/> + </class> +</objectModel> Added: trunk/maven-eugene-plugin/src/it/evol-879/model/model-impl/src/test/java/org/nuiton/eugne/plugin/GenerationTest.java =================================================================== --- trunk/maven-eugene-plugin/src/it/evol-879/model/model-impl/src/test/java/org/nuiton/eugne/plugin/GenerationTest.java (rev 0) +++ trunk/maven-eugene-plugin/src/it/evol-879/model/model-impl/src/test/java/org/nuiton/eugne/plugin/GenerationTest.java 2010-09-25 00:00:09 UTC (rev 965) @@ -0,0 +1,160 @@ +package org.nuiton.eugene.plugin; + +import org.junit.Assert; +import org.junit.BeforeClass; +import org.junit.Test; + +import java.io.File; + +public class GenerationTest { + + static File target; + + File tmp; + + String extractdDir, generateDir; + + public static File getBaseDir() { + // Search basedir from maven environment + String basedirPath = System.getenv("basedir"); + if (basedirPath == null) { + basedirPath = new File("").getAbsolutePath(); + } + + File result = new File(basedirPath); + return result; + } + + @BeforeClass + public static void init() { + File basedir = getBaseDir(); + target = new File(basedir, "target"); + } + + public void setTestNumber(int i) { + extractdDir = "extracted-sources" + i; + generateDir = "generated-sources" + i; + + } + + protected void checkExist(File dir, String... files) { + for (String file : files) { + File f = new File(dir, file); + Assert.assertTrue("File " + file + " should exists.", f.exists()); + } + } + +// <id>Test 1 : from classpath:/models with resources</id> +// <phase>generate-sources</phase> +// <configuration> +// <inputs>classpath:model:/models:topiatest.objectmodel +// </inputs> +// <outputDirectory>target/generated-sources1</outputDirectory> +// <extractDirectory>target/extracted-sources1</extractDirectory> +// </configuration> + + // maven-eugene-plugin/target/its/evol-879/model/model-impl/target/ +// |-- extracted-sources1 +// | `-- model +// | `-- models +// | |-- topiatest.objectmodel +// | `-- topiatest.properties +// `-- generated-sources1 +// `-- java +// `-- org + @Test + public void test1() { + setTestNumber(1); + checkExist(target, extractdDir, generateDir); + + checkExist(tmp = new File(target, extractdDir), "model"); + checkExist(tmp = new File(tmp, "model"), "models"); + checkExist(new File(tmp, "models"), "topiatest.objectmodel", "topiatest.properties"); + + checkExist(tmp = new File(target, generateDir), "java"); + checkExist(tmp = new File(tmp, "java"), "org"); + } + +// <id>Test 2 : from classpath:/models2 without resources</id> +// <phase>generate-sources</phase> +// <configuration> +// <!--<skipInputs>model</skipInputs>--> +// <inputs>classpath:model:/models2:topiatest.objectmodel +// </inputs> +// <outputDirectory>target/generated-sources2</outputDirectory> +// <extractDirectory>target/extracted-sources2</extractDirectory> +// </configuration> + + // maven-eugene-plugin/target/its/evol-879/model/model-impl/target/ +// |-- extracted-sources2 +// | `-- model +// | `-- models2 +// | `-- topiatest2.objectmodel +// `-- generated-sources2 +// `-- java +// `-- org + @Test + public void test2() { + setTestNumber(2); + checkExist(target, extractdDir, generateDir); + + checkExist(tmp = new File(target, extractdDir), "model"); + checkExist(tmp = new File(tmp, "model"), "models2"); + checkExist(new File(tmp, "models2"), "topiatest2.objectmodel"); + + checkExist(tmp = new File(target, generateDir), "java"); + checkExist(tmp = new File(tmp, "java"), "org"); + } + + +// <id>Test 3 : from classpath:/ without resources</id> +// <phase>generate-sources</phase> +// <configuration> +// <!--<skipInputs>model</skipInputs>--> +// <inputs>classpath:model:/:topiatest.objectmodel</inputs> +// <outputDirectory>target/generated-sources3</outputDirectory> +// <extractDirectory>target/extracted-sources3</extractDirectory> +// </configuration> + + // maven-eugene-plugin/target/its/evol-879/model/model-impl/target/ +// |-- extracted-sources3 +// | `-- model +// | `-- topiatest3.objectmodel +// `-- generated-sources3 +// `-- java +// `-- org + @Test + public void test3() { + setTestNumber(3); + checkExist(target, extractdDir, generateDir); + + checkExist(tmp = new File(target, extractdDir), "model"); + checkExist(new File(tmp, "model"), "topiatest3.objectmodel"); + + checkExist(tmp = new File(target, generateDir), "java"); + checkExist(tmp = new File(tmp, "java"), "org"); + } + +// <id>Test 4 : from src/main/models with resources</id> +// <phase>generate-sources</phase> +// <configuration> +// <!--<skipInputs>model</skipInputs>--> +// <inputs>src/main/models:topiatest.objectmodel</inputs> +// <outputDirectory>target/generated-sources4</outputDirectory> +// <extractDirectory>target/extracted-sources4</extractDirectory> +// </configuration> +// maven-eugene-plugin/target/its/evol-879/model/model-impl/target/ +// |-- extracted-sources4 +// `-- generated-sources4 +// `-- java +// `-- org + @Test + public void test4() { + setTestNumber(4); + checkExist(target, generateDir); + + checkExist(tmp = new File(target, generateDir), "java"); + checkExist(tmp = new File(tmp, "java"), "org"); + } + +} \ No newline at end of file Added: trunk/maven-eugene-plugin/src/it/evol-879/model/pom.xml =================================================================== --- trunk/maven-eugene-plugin/src/it/evol-879/model/pom.xml (rev 0) +++ trunk/maven-eugene-plugin/src/it/evol-879/model/pom.xml 2010-09-25 00:00:09 UTC (rev 965) @@ -0,0 +1,32 @@ +<?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> + + <groupId>org.nuiton.eugene.test</groupId> + <artifactId>testEvol879-model</artifactId> + <version>2.0.0</version> + + <modules> + <module>model-api</module> + <module>model-impl</module> + </modules> + + <name>EUGene Test :: testEvol879-model</name> + + <packaging>pom</packaging> + + <properties> + + <eugeneVersion>@pom.version@</eugeneVersion> + + <!-- default encoding --> + <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> + + </properties> + +</project> + + Added: trunk/maven-eugene-plugin/src/it/evol-879/model/verify.groovy =================================================================== --- trunk/maven-eugene-plugin/src/it/evol-879/model/verify.groovy (rev 0) +++ trunk/maven-eugene-plugin/src/it/evol-879/model/verify.groovy 2010-09-25 00:00:09 UTC (rev 965) @@ -0,0 +1,48 @@ +/* +outputDir = new File(basedir, 'model-impl/target/generated-sources'); +outputEDir = new File(basedir, 'model-impl/target/extracted-sources/model'); + +assert outputDir.exists(); +assert outputEDir.exists(); + +assert new File(outputEDir, 'models').exists(); +assert new File(outputEDir, 'models/topiatest.objectmodel').exists(); +assert new File(outputEDir, 'models/topiatest.properties').exists(); + +assert new File(outputDir, 'java').exists(); + +outputDir = new File(basedir, 'model-impl/target/generated-sources2'); +outputEDir = new File(basedir, 'model-impl/target/extracted-sources2/model'); + +assert outputDir.exists(); +assert outputEDir.exists(); + +assert new File(outputEDir, 'models2').exists(); +assert new File(outputEDir, 'models2/topiatest.objectmodel').exists(); +assert !new File(outputEDir, 'models2/topiatest.properties').exists(); + +assert new File(outputDir, 'java').exists(); + +outputDir = new File(basedir, 'model-impl/target/generated-sources3'); +outputEDir = new File(basedir, 'model-impl/target/extracted-sources3/model'); + +assert outputDir.exists(); +assert outputEDir.exists(); + +assert new File(outputEDir, 'topiatest.objectmodel').exists(); +assert !new File(outputEDir, 'topiatest.properties').exists(); + +assert new File(outputDir, 'java').exists(); + +outputDir = new File(basedir, 'model-impl/target/generated-sources4'); +outputEDir = new File(basedir, 'model-impl/target/extracted-sources4/model'); + +assert outputDir.exists(); +assert !outputEDir.exists(); + +assert !new File(outputDir, 'models').exists(); +assert new File(outputDir, 'java').exists(); +*/ + +return true; + Added: trunk/maven-eugene-plugin/src/it/evol-879/xmi/README.txt =================================================================== --- trunk/maven-eugene-plugin/src/it/evol-879/xmi/README.txt (rev 0) +++ trunk/maven-eugene-plugin/src/it/evol-879/xmi/README.txt 2010-09-25 00:00:09 UTC (rev 965) @@ -0,0 +1,85 @@ +On teste ici le goal smart-generate avec un fichier xmi dans le class-path : + +Le result désiré est : + +maven-eugene-plugin/target/its/evol-879/xmi/xmi-impl/target/ +|-- extracted-sources1 +| `-- xmi +| `-- xmi +| |-- topiatest.properties +| `-- topiatest.xmi +|-- extracted-sources2 +| `-- xmi +| `-- xmi +| |-- topiatest.properties +| `-- topiatest.xmi +|-- extracted-sources3 +| `-- xmi +| `-- xmi2 +| `-- topiatest2.xmi +|-- extracted-sources4 +| `-- xmi +| `-- xmi2 +| `-- topiatest2.xmi +|-- extracted-sources5 +| `-- xmi +| `-- topiatest3.xmi +|-- extracted-sources6 +| `-- xmi +| `-- topiatest3.xmi +|-- extracted-sources8 +| `-- xmi +| |-- topiatest3.xmi +| |-- xmi +| | |-- topiatest.properties +| | `-- topiatest.xmi +| `-- xmi2 +| `-- topiatest2.xmi +|-- extracted-sources9 +| `-- xmi +| |-- topiatest3.xmi +| |-- xmi +| | |-- topiatest.properties +| | `-- topiatest.xmi +| `-- xmi2 +| `-- topiatest2.xmi +|-- generated-sources1 +| `-- models +| |-- topiatest.objectmodel +| `-- topiatest.properties +|-- generated-sources2 +| `-- models +| |-- topiatest.objectmodel +| `-- topiatest.properties +|-- generated-sources3 +| `-- models +| `-- topiatest2.objectmodel +|-- generated-sources4 +| `-- models +| `-- topiatest2.objectmodel +|-- generated-sources5 +| `-- models +| `-- topiatest3.objectmodel +|-- generated-sources6 +| `-- models +| `-- topiatest3.objectmodel +|-- generated-sources7 +| `-- models +| |-- topiatest4.objectmodel +| `-- topiatest4.properties +|-- generated-sources8 +| `-- models +| |-- topiatest3.objectmodel +| |-- xmi +| | |-- topiatest.objectmodel +| | `-- topiatest.properties +| `-- xmi2 +| `-- topiatest2.objectmodel +|-- generated-sources9 +| `-- models +| |-- topiatest3.objectmodel +| |-- xmi +| | |-- topiatest.objectmodel +| | `-- topiatest.properties +| `-- xmi2 +| `-- topiatest2.objectmodel Added: trunk/maven-eugene-plugin/src/it/evol-879/xmi/invoker.properties =================================================================== --- trunk/maven-eugene-plugin/src/it/evol-879/xmi/invoker.properties (rev 0) +++ trunk/maven-eugene-plugin/src/it/evol-879/xmi/invoker.properties 2010-09-25 00:00:09 UTC (rev 965) @@ -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 install + +# 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-fast + +# 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/evol-879/xmi/pom.xml =================================================================== --- trunk/maven-eugene-plugin/src/it/evol-879/xmi/pom.xml (rev 0) +++ trunk/maven-eugene-plugin/src/it/evol-879/xmi/pom.xml 2010-09-25 00:00:09 UTC (rev 965) @@ -0,0 +1,32 @@ +<?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> + + <groupId>org.nuiton.eugene.test</groupId> + <artifactId>testEvol879-xmi</artifactId> + <version>2.0.0</version> + + <modules> + <module>xmi-api</module> + <module>xmi-impl</module> + </modules> + + <name>EUGene Test :: testEvol879-xmi</name> + + <packaging>pom</packaging> + + <properties> + + <eugeneVersion>@pom.version@</eugeneVersion> + + <!-- default encoding --> + <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> + + </properties> + +</project> + + Added: trunk/maven-eugene-plugin/src/it/evol-879/xmi/verify.groovy =================================================================== --- trunk/maven-eugene-plugin/src/it/evol-879/xmi/verify.groovy (rev 0) +++ trunk/maven-eugene-plugin/src/it/evol-879/xmi/verify.groovy 2010-09-25 00:00:09 UTC (rev 965) @@ -0,0 +1,151 @@ +/* +outputDir = new File(basedir, 'xmi-impl/target/generated-sources'); +outputEDir = new File(basedir, 'xmi-impl/target/extracted-sources/xmi'); + +assert outputDir.exists(); +assert outputEDir.exists(); + +assert new File(outputEDir, 'xmi').exists(); +assert new File(outputEDir, 'xmi/topiatest.xmi').exists(); +assert new File(outputEDir, 'xmi/topiatest.properties').exists(); + +assert new File(outputDir, 'models').exists(); +assert new File(outputDir, 'models/topiatest.objectmodel').exists(); +assert new File(outputDir, 'models/topiatest.properties').exists(); + +outputDir = new File(basedir, 'xmi-impl/target/generated-sources_2'); +outputEDir = new File(basedir, 'xmi-impl/target/extracted-sources_2/xmi'); + +assert outputDir.exists(); +assert outputEDir.exists(); + +assert new File(outputEDir, 'xmi').exists(); +assert new File(outputEDir, 'xmi/topiatest.xmi').exists(); +assert new File(outputEDir, 'xmi/topiatest.properties').exists(); + +assert new File(outputDir, 'models').exists(); +assert new File(outputDir, 'models/topiatest.objectmodel').exists(); +assert new File(outputDir, 'models/topiatest.properties').exists(); + +outputDir = new File(basedir, 'xmi-impl/target/generated-sources2'); +outputEDir = new File(basedir, 'xmi-impl/target/extracted-sources2/xmi'); + +assert outputDir.exists(); +assert outputEDir.exists(); + +assert new File(outputEDir, 'xmi2').exists(); +assert new File(outputEDir, 'xmi2/topiatest2.xmi').exists(); +assert !new File(outputEDir, 'xmi2/topiatest2.properties').exists(); + +assert new File(outputDir, 'models').exists(); +assert new File(outputDir, 'models/topiatest2.objectmodel').exists(); +assert !new File(outputDir, 'models/topiatest2.properties').exists(); + +outputDir = new File(basedir, 'xmi-impl/target/generated-sources2_2'); +outputEDir = new File(basedir, 'xmi-impl/target/extracted-sources2_2/xmi'); + +assert outputDir.exists(); +assert outputEDir.exists(); + +assert new File(outputEDir, 'xmi2').exists(); +assert new File(outputEDir, 'xmi2/topiatest2.xmi').exists(); +assert !new File(outputEDir, 'xmi2/topiatest2.properties').exists(); + +assert new File(outputDir, 'models').exists(); +assert new File(outputDir, 'models/topiatest2.objectmodel').exists(); +assert !new File(outputDir, 'models/topiatest2.properties').exists(); + +outputDir = new File(basedir, 'xmi-impl/target/generated-sources3'); +outputEDir = new File(basedir, 'xmi-impl/target/extracted-sources3/xmi'); + +assert outputDir.exists(); +assert outputEDir.exists(); + +assert new File(outputEDir, 'topiatest3.xmi').exists(); +assert !new File(outputEDir, 'topiatest3.properties').exists(); + +assert new File(outputDir, 'models').exists(); +assert new File(outputDir, 'models/topiatest3.objectmodel').exists(); +assert !new File(outputDir, 'models/topiatest3.properties').exists(); + +outputDir = new File(basedir, 'xmi-impl/target/generated-sources3_2'); +outputEDir = new File(basedir, 'xmi-impl/target/extracted-sources3_2/xmi'); + +assert outputDir.exists(); +assert outputEDir.exists(); + +assert new File(outputEDir, 'topiatest3.xmi').exists(); +assert !new File(outputEDir, 'topiatest3.properties').exists(); + +assert new File(outputDir, 'models').exists(); +assert new File(outputDir, 'models/topiatest3.objectmodel').exists(); +assert !new File(outputDir, 'models/topiatest3.properties').exists(); + +outputDir = new File(basedir, 'xmi-impl/target/generated-sources4'); +outputEDir = new File(basedir, 'xmi-impl/target/extracted-sources4/xmi'); + +assert outputDir.exists(); +assert !outputEDir.exists(); + +assert !new File(outputDir, 'xmi').exists(); + +assert new File(outputDir, 'models').exists(); +assert new File(outputDir, 'models/topiatest4.objectmodel').exists(); +assert new File(outputDir, 'models/topiatest4.properties').exists(); + +outputDir = new File(basedir, 'xmi-impl/target/generated-sources5'); +outputEDir = new File(basedir, 'xmi-impl/target/extracted-sources5/xmi'); + +assert outputDir.exists(); +assert outputEDir.exists(); + +assert new File(outputEDir, 'xmi').exists(); +assert new File(outputEDir, 'xmi/topiatest.xmi').exists(); +assert new File(outputEDir, 'xmi/topiatest.properties').exists(); + +assert new File(outputEDir, 'xmi2').exists(); +assert new File(outputEDir, 'xmi2/topiatest2.xmi').exists(); +assert !new File(outputEDir, 'xmi2/topiatest2.properties').exists(); + +assert new File(outputEDir, 'topiatest3.xmi').exists(); +assert !new File(outputEDir, 'topiatest3.properties').exists(); + +assert new File(outputDir, 'models').exists(); +assert new File(outputDir, 'models/topiatest.objectmodel').exists(); +assert new File(outputDir, 'models/topiatest.properties').exists(); + +assert new File(outputDir, 'models/topiatest2.objectmodel').exists(); +assert !new File(outputDir, 'models/topiatest2.properties').exists(); + +assert new File(outputDir, 'models/topiatest3.objectmodel').exists(); +assert !new File(outputDir, 'models/topiatest3.properties').exists(); + +outputDir = new File(basedir, 'xmi-impl/target/generated-sources5_2'); +outputEDir = new File(basedir, 'xmi-impl/target/extracted-sources5_2/xmi'); + +assert outputDir.exists(); +assert outputEDir.exists(); + +assert new File(outputEDir, 'xmi').exists(); +assert new File(outputEDir, 'xmi/topiatest.xmi').exists(); +assert new File(outputEDir, 'xmi/topiatest.properties').exists(); + +assert new File(outputEDir, 'xmi2').exists(); +assert new File(outputEDir, 'xmi2/topiatest2.xmi').exists(); +assert !new File(outputEDir, 'xmi2/topiatest2.properties').exists(); + +assert new File(outputEDir, 'topiatest3.xmi').exists(); +assert !new File(outputEDir, 'topiatest3.properties').exists(); + +assert new File(outputDir, 'models').exists(); +assert new File(outputDir, 'models/topiatest.objectmodel').exists(); +assert new File(outputDir, 'models/topiatest.properties').exists(); + +assert new File(outputDir, 'models/topiatest2.objectmodel').exists(); +assert !new File(outputDir, 'models/topiatest2.properties').exists(); + +assert new File(outputDir, 'models/topiatest3.objectmodel').exists(); +assert !new File(outputDir, 'models/topiatest3.properties').exists(); +*/ +return true; + Added: trunk/maven-eugene-plugin/src/it/evol-879/xmi/xmi-api/pom.xml =================================================================== --- trunk/maven-eugene-plugin/src/it/evol-879/xmi/xmi-api/pom.xml (rev 0) +++ trunk/maven-eugene-plugin/src/it/evol-879/xmi/xmi-api/pom.xml 2010-09-25 00:00:09 UTC (rev 965) @@ -0,0 +1,46 @@ +<?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.eugene.test</groupId> + <artifactId>testEvol879-xmi</artifactId> + <version>2.0.0</version> + </parent> + + <artifactId>testEvol879-xmi-api</artifactId> + + <name>EUGene Test :: testEvol879-xmi-api</name> + + <properties> + + <eugeneVersion>@pom.version@</eugeneVersion> + + <!-- default encoding --> + <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> + + </properties> + + <build> + + <resources> + <resource> + <directory>src/main/resources</directory> + <includes> + <include>**/*</include> + </includes> + </resource> + </resources> + + </build> + +</project> + + Added: trunk/maven-eugene-plugin/src/it/evol-879/xmi/xmi-api/src/main/resources/topiatest3.xmi =================================================================== --- trunk/maven-eugene-plugin/src/it/evol-879/xmi/xmi-api/src/main/resources/topiatest3.xmi (rev 0) +++ trunk/maven-eugene-plugin/src/it/evol-879/xmi/xmi-api/src/main/resources/topiatest3.xmi 2010-09-25 00:00:09 UTC (rev 965) @@ -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: 2010-04-10 00:56:51 +0200 (sam., 10 avr. 2010) $ </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/evol-879/xmi/xmi-api/src/main/resources/xmi/topiatest.properties =================================================================== --- trunk/maven-eugene-plugin/src/it/evol-879/xmi/xmi-api/src/main/resources/xmi/topiatest.properties (rev 0) +++ trunk/maven-eugene-plugin/src/it/evol-879/xmi/xmi-api/src/main/resources/xmi/topiatest.properties 2010-09-25 00:00:09 UTC (rev 965) @@ -0,0 +1 @@ +model.tagvalue.generateOperatorForDAOHelper=true \ No newline at end of file Added: trunk/maven-eugene-plugin/src/it/evol-879/xmi/xmi-api/src/main/resources/xmi/topiatest.xmi =================================================================== --- trunk/maven-eugene-plugin/src/it/evol-879/xmi/xmi-api/src/main/resources/xmi/topiatest.xmi (rev 0) +++ trunk/maven-eugene-plugin/src/it/evol-879/xmi/xmi-api/src/main/resources/xmi/topiatest.xmi 2010-09-25 00:00:09 UTC (rev 965) @@ -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: 2010-04-10 00:56:51 +0200 (sam., 10 avr. 2010) $ </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/evol-879/xmi/xmi-api/src/main/resources/xmi2/topiatest2.xmi =================================================================== --- trunk/maven-eugene-plugin/src/it/evol-879/xmi/xmi-api/src/main/resources/xmi2/topiatest2.xmi (rev 0) +++ trunk/maven-eugene-plugin/src/it/evol-879/xmi/xmi-api/src/main/resources/xmi2/topiatest2.xmi 2010-09-25 00:00:09 UTC (rev 965) @@ -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: 2010-04-10 00:56:51 +0200 (sam., 10 avr. 2010) $ </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/evol-879/xmi/xmi-impl/pom.xml =================================================================== --- trunk/maven-eugene-plugin/src/it/evol-879/xmi/xmi-impl/pom.xml (rev 0) +++ trunk/maven-eugene-plugin/src/it/evol-879/xmi/xmi-impl/pom.xml 2010-09-25 00:00:09 UTC (rev 965) @@ -0,0 +1,176 @@ +<?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.eugene.test</groupId> + <artifactId>testEvol879-xmi</artifactId> + <version>2.0.0</version> + </parent> + + <artifactId>testEvol879-xmi-impl</artifactId> + + <dependencies> + <dependency> + <groupId>junit</groupId> + <artifactId>junit</artifactId> + <scope>test</scope> + <version>4.8.1</version> + </dependency> + </dependencies> + + <name>EUGene Test :: testEvol879-xmi-impl</name> + + <build> + + <plugins> + + <plugin> + <groupId>org.nuiton.eugene</groupId> + <artifactId>maven-eugene-plugin</artifactId> + <version>${eugeneVersion}</version> + <configuration> + <fullPackagePath>org.nuiton.topia.test.entities</fullPackagePath> + <skipInputs>model</skipInputs> + </configuration> + <executions> + <execution> + <id>Test 1 : from classpath:/xmi with resources</id> + <phase>generate-sources</phase> + <configuration> + <inputs>classpath:xmi:/xmi:topiatest.xmi</inputs> + <outputDirectory>target/generated-sources1</outputDirectory> + <extractDirectory>target/extracted-sources1</extractDirectory> + </configuration> + <goals> + <goal>smart-generate</goal> + </goals> + </execution> + <execution> + <id>Test 2 : from classpath:/xmi with resources (with no protocol) + </id> + <phase>generate-sources</phase> + <configuration> + <inputs>classpath:/xmi:topiatest.xmi</inputs> + <outputDirectory>target/generated-sources2</outputDirectory> + <extractDirectory>target/extracted-sources2</extractDirectory> + </configuration> + <goals> + <goal>smart-generate</goal> + </goals> + </execution> + <execution> + <id>Test 3 : from classpath:/xmi2 without resources</id> + <phase>generate-sources</phase> + <configuration> + <inputs>classpath:xmi:/xmi2:topiatest2.xmi</inputs> + <outputDirectory>target/generated-sources3</outputDirectory> + <extractDirectory>target/extracted-sources3</extractDirectory> + </configuration> + <goals> + <goal>smart-generate</goal> + </goals> + </execution> + <execution> + <id>Test 4 : from classpath:/xmi2 without resources (with no + protocol) + </id> + <phase>generate-sources</phase> + <configuration> + <inputs>classpath:/xmi2:topiatest2.xmi</inputs> + <outputDirectory>target/generated-sources4</outputDirectory> + <extractDirectory>target/extracted-sources4</extractDirectory> + </configuration> + <goals> + <goal>smart-generate</goal> + </goals> + </execution> + <execution> + <id>Test 5 : from classpath:/ without resources</id> + <phase>generate-sources</phase> + <configuration> + <inputs>classpath:xmi:/:topiatest3.xmi</inputs> + <outputDirectory>target/generated-sources5</outputDirectory> + <extractDirectory>target/extracted-sources5</extractDirectory> + </configuration> + <goals> + <goal>smart-generate</goal> + </goals> + </execution> + <execution> + <id>Test 6 : from classpath:/ without resources (with no protocol) + </id> + <phase>generate-sources</phase> + <configuration> + <inputs>classpath:/:topiatest3.xmi</inputs> + <outputDirectory>target/generated-sources6</outputDirectory> + <extractDirectory>target/extracted-sources6</extractDirectory> + </configuration> + <goals> + <goal>smart-generate</goal> + </goals> + </execution> + <execution> + <id>Test 7 : from src/main/xmi with resources</id> + <phase>generate-sources</phase> + <configuration> + <inputs>src/main/xmi:topiatest4.xmi</inputs> + <outputDirectory>target/generated-sources7</outputDirectory> + <extractDirectory>target/extracted-sources7</extractDirectory> + </configuration> + <goals> + <goal>smart-generate</goal> + </goals> + </execution> + <execution> + <id>Test 8 : from classpath:/*.xmi</id> + <phase>generate-sources</phase> + <configuration> + <inputs>classpath:xmi:/:.*topiatest.*\.xmi</inputs> + <outputDirectory>target/generated-sources8</outputDirectory> + <extractDirectory>target/extracted-sources8</extractDirectory> + </configuration> + <goals> + <goal>smart-generate</goal> + </goals> + </execution> + <execution> + <id>Test 9 : from classpath:/*.xmi (with no protocol)</id> + <phase>generate-sources</phase> + <configuration> + <inputs>classpath:/:.*topiatest.*\.xmi</inputs> + <outputDirectory>target/generated-sources9</outputDirectory> + <extractDirectory>target/extracted-sources9</extractDirectory> + </configuration> + <goals> + <goal>smart-generate</goal> + </goals> + </execution> + </executions> + <dependencies> + <dependency> + <groupId>log4j</groupId> + <artifactId>log4j</artifactId> + <version>1.2.14</version> + </dependency> + <dependency> + <groupId>${project.groupId}</groupId> + <artifactId>testEvol879-xmi-api</artifactId> + <version>${project.version}</version> + </dependency> + + </dependencies> + </plugin> + </plugins> + </build> + +</project> + + Added: trunk/maven-eugene-plugin/src/it/evol-879/xmi/xmi-impl/src/main/xmi/topiatest4.properties =================================================================== --- trunk/maven-eugene-plugin/src/it/evol-879/xmi/xmi-impl/src/main/xmi/topiatest4.properties (rev 0) +++ trunk/maven-eugene-plugin/src/it/evol-879/xmi/xmi-impl/src/main/xmi/topiatest4.properties 2010-09-25 00:00:09 UTC (rev 965) @@ -0,0 +1 @@ +model.tagvalue.generateOperatorForDAOHelper=true \ No newline at end of file Added: trunk/maven-eugene-plugin/src/it/evol-879/xmi/xmi-impl/src/main/xmi/topiatest4.xmi =================================================================== --- trunk/maven-eugene-plugin/src/it/evol-879/xmi/xmi-impl/src/main/xmi/topiatest4.xmi (rev 0) +++ trunk/maven-eugene-plugin/src/it/evol-879/xmi/xmi-impl/src/main/xmi/topiatest4.xmi 2010-09-25 00:00:09 UTC (rev 965) @@ -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: 2010-04-10 00:56:51 +0200 (sam., 10 avr. 2010) $ </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/evol-879/xmi/xmi-impl/src/test/java/org/nuiton/eugne/plugin/GenerationTest.java =================================================================== --- trunk/maven-eugene-plugin/src/it/evol-879/xmi/xmi-impl/src/test/java/org/nuiton/eugne/plugin/GenerationTest.java (rev 0) +++ trunk/maven-eugene-plugin/src/it/evol-879/xmi/xmi-impl/src/test/java/org/nuiton/eugne/plugin/GenerationTest.java 2010-09-25 00:00:09 UTC (rev 965) @@ -0,0 +1,336 @@ +package org.nuiton.eugene.plugin; + +import org.junit.Assert; +import org.junit.BeforeClass; +import org.junit.Test; + +import java.io.File; + +public class GenerationTest { + + static File target; + + File tmp; + + String extractdDir, generateDir; + + public static File getBaseDir() { + // Search basedir from maven environment + String basedirPath = System.getenv("basedir"); + if (basedirPath == null) { + basedirPath = new File("").getAbsolutePath(); + } + + File result = new File(basedirPath); + return result; + } + + @BeforeClass + public static void init() { + File basedir = getBaseDir(); + target = new File(basedir, "target"); + } + + public void setTestNumber(int i) { + extractdDir = "extracted-sources" + i; + generateDir = "generated-sources" + i; + + } + + protected void checkExist(File dir, String... files) { + for (String file : files) { + File f = new File(dir, file); + Assert.assertTrue("File " + file + " should exists.", f.exists()); + } + } + +// <id>Test 1 : from classpath:/xmi with resources</id> +// <phase>generate-sources</phase> +// <configuration> +// <inputs>classpath:xmi:/xmi:topiatest.xmi</inputs> +// <outputDirectory>target/generated-sources1</outputDirectory> +// <extractDirectory>target/extracted-sources1</extractDirectory> +// </configuration> + +// maven-eugene-plugin/target/its/evol-879/xmi/xmi-impl/target/ +// |-- extracted-sources1 +// | `-- xmi +// | `-- xmi +// | |-- topiatest.properties +// | `-- topiatest.xmi +// `-- generated-sources1 +// `-- models +// |-- topiatest.objectmodel +// `-- topiatest.properties + + @Test + public void test1() { + setTestNumber(1); + checkExist(target, extractdDir, generateDir); + + checkExist(tmp = new File(target, extractdDir), "xmi"); + checkExist(tmp = new File(tmp, "xmi"), "xmi"); + checkExist(new File(tmp, "xmi"), "topiatest.properties", "topiatest.properties"); + + checkExist(tmp = new File(target, generateDir), "models"); + checkExist(new File(tmp, "models"), "topiatest.properties", "topiatest.objectmodel"); + } + +// <id>Test 2 : from classpath:/xmi with resources (with no protocol)</id> +// <phase>generate-sources</phase> +// <configuration> +// <inputs>classpath:/xmi:topiatest.xmi</inputs> +// <outputDirectory>target/generated-sources2</outputDirectory> +// <extractDirectory>target/extracted-sources2</extractDirectory> +// </configuration> + +// maven-eugene-plugin/target/its/evol-879/xmi/xmi-impl/target/ +// |-- extracted-sources2 +// | `-- xmi +// | `-- xmi +// | |-- topiatest.properties +// | `-- topiatest.xmi +// `-- generated-sources2 +// `-- models +// |-- topiatest.objectmodel +// `-- topiatest.properties + + @Test + public void test2() { + setTestNumber(2); + checkExist(target, extractdDir, generateDir); + + checkExist(tmp = new File(target, extractdDir), "xmi"); + checkExist(tmp = new File(tmp, "xmi"), "xmi"); + checkExist(new File(tmp, "xmi"), "topiatest.properties", "topiatest.properties"); + + checkExist(tmp = new File(target, generateDir), "models"); + checkExist(new File(tmp, "models"), "topiatest.properties", "topiatest.objectmodel"); + } + + +// <id>Test 3 : from classpath:/xmi2 without resources</id> +// <phase>generate-sources</phase> +// <configuration> +// <inputs>classpath:xmi:/xmi2:topiatest2.xmi</inputs> +// <outputDirectory>target/generated-sources3</outputDirectory> +// <extractDirectory>target/extracted-sources3</extractDirectory> +// </configuration> + +// maven-eugene-plugin/target/its/evol-879/xmi/xmi-impl/target/ +// |-- extracted-sources3 +// | `-- xmi +// | `-- xmi2 +// | `-- topiatest2.xmi +// `-- generated-sources3 +// `-- models +// `-- topiatest2.objectmodel + + @Test + public void test3() { + setTestNumber(3); + checkExist(target, extractdDir, generateDir); + + checkExist(tmp = new File(target, extractdDir), "xmi"); + checkExist(tmp = new File(tmp, "xmi"), "xmi2"); + checkExist(new File(tmp, "xmi2"), "topiatest2.xmi"); + + checkExist(tmp = new File(target, generateDir), "models"); + checkExist(new File(tmp, "models"), "topiatest2.objectmodel"); + } + + +// <id>Test 4 : from classpath:/xmi2 without resources (with no protocol)</id> +// <phase>generate-sources</phase> +// <configuration> +// <inputs>classpath:/xmi2:topiatest2.xmi</inputs> +// <outputDirectory>target/generated-sources4</outputDirectory> +// <extractDirectory>target/extracted-sources4</extractDirectory> +// </configuration> + +// maven-eugene-plugin/target/its/evol-879/xmi/xmi-impl/target/ +// |-- extracted-sources4 +// | `-- xmi +// | `-- xmi2 +// | `-- topiatest2.xmi +// `-- generated-sources4 +// `-- models +// `-- topiatest2.objectmodel + + @Test + public void test4() { + setTestNumber(4); + checkExist(target, extractdDir, generateDir); + + checkExist(tmp = new File(target, extractdDir), "xmi"); + checkExist(tmp = new File(tmp, "xmi"), "xmi2"); + checkExist(new File(tmp, "xmi2"), "topiatest2.xmi"); + + checkExist(tmp = new File(target, generateDir), "models"); + checkExist(new File(tmp, "models"), "topiatest2.objectmodel"); + } + +// <id>Test 5 : from classpath:/ without resources</id> +// <phase>generate-sources</phase> +// <configuration> +// <inputs>classpath:xmi:/:topiatest3.xmi</inputs> +// <outputDirectory>target/generated-sources5</outputDirectory> +// <extractDirectory>target/extracted-sources5</extractDirectory> +// </configuration> + + // maven-eugene-plugin/target/its/evol-879/xmi/xmi-impl/target/ +// |-- extracted-sources5 +// | `-- xmi +// | `-- topiatest3.xmi +// `-- generated-sources5 +// `-- models +// `-- topiatest3.objectmodel + @Test + public void test5() { + setTestNumber(5); + checkExist(target, extractdDir, generateDir); + + checkExist(tmp = new File(target, extractdDir), "xmi"); + checkExist(new File(tmp, "xmi"), "topiatest3.xmi"); + + checkExist(tmp = new File(target, generateDir), "models"); + checkExist(new File(tmp, "models"), "topiatest3.objectmodel"); + } + + +// <id>Test 6 : from classpath:/ without resources (with no protocol)</id> +// <phase>generate-sources</phase> +// <configuration> +// <inputs>classpath:/:topiatest3.xmi</inputs> +// <outputDirectory>target/generated-sources6</outputDirectory> +// <extractDirectory>target/extracted-sources6</extractDirectory> +// </configuration> + + // maven-eugene-plugin/target/its/evol-879/xmi/xmi-impl/target/ +// |-- extracted-sources6 +// | `-- xmi +// | `-- topiatest3.xmi +// `-- generated-sources6 +// `-- models +// `-- topiatest3.objectmodel + @Test + public void test6() { + setTestNumber(6); + checkExist(target, extractdDir, generateDir); + + checkExist(tmp = new File(target, extractdDir), "xmi"); + checkExist(new File(tmp, "xmi"), "topiatest3.xmi"); + + checkExist(tmp = new File(target, generateDir), "models"); + checkExist(new File(tmp, "models"), "topiatest3.objectmodel"); + } + +// <id>Test 7 : from src/main/xmi with resources</id> +// <phase>generate-sources</phase> +// <configuration> +// <inputs>src/main/xmi:topiatest4.xmi</inputs> +// <outputDirectory>target/generated-sources7</outputDirectory> +// <extractDirectory>target/extracted-sources7</extractDirectory> +// </configuration> + + // maven-eugene-plugin/target/its/evol-879/xmi/xmi-impl/target/ +// `-- generated-sources7 +// `-- models +// |-- topiatest4.objectmodel +// `-- topiatest4.properties + @Test + public void test7() { + setTestNumber(7); + checkExist(target, generateDir); + + checkExist(tmp = new File(target, generateDir), "models"); + checkExist(new File(tmp, "models"), "topiatest4.objectmodel", "topiatest4.properties"); + } + +// <id>Test 8 : from classpath:/*.xmi</id> +// <phase>generate-sources</phase> +// <configuration> +// <inputs>classpath:xmi:/:.*topiatest.*\.xmi</inputs> +// <outputDirectory>target/generated-sources8</outputDirectory> +// <extractDirectory>target/extracted-sources8</extractDirectory> +// </configuration> + +// maven-eugene-plugin/target/its/evol-879/xmi/xmi-impl/target/ +// |-- extracted-sources8 +// | `-- xmi +// | |-- topiatest3.xmi +// | |-- xmi +// | | |-- topiatest.properties +// | | `-- topiatest.xmi +// | `-- xmi2 +// | `-- topiatest2.xmi +// `-- generated-sources8 +// `-- models +// |-- topiatest3.objectmodel +// |-- xmi +// | |-- topiatest.objectmodel +// | `-- topiatest.properties +// `-- xmi2 +// `-- topiatest2.objectmodel + + @Test + public void test8() { + setTestNumber(8); + checkExist(target, extractdDir, generateDir); + + checkExist(tmp = new File(target, extractdDir), "xmi"); + checkExist(tmp = new File(tmp, "xmi"), "xmi", "xmi2", "topiatest3.xmi"); + checkExist(new File(tmp, "xmi"), "topiatest.xmi", "topiatest.properties"); + checkExist(new File(tmp, "xmi2"), "topiatest2.xmi"); + + checkExist(tmp = new File(target, generateDir), "models"); + + checkExist(tmp = new File(tmp, "models"), "topiatest3.objectmodel", "xmi", "xmi2"); + checkExist(new File(tmp, "xmi"), "topiatest.objectmodel", "topiatest.properties"); + checkExist(new File(tmp, "xmi2"), "topiatest2.objectmodel"); + } + +// <id>Test 9 : from classpath:/*.xmi (with no protocol)</id> +// <phase>generate-sources</phase> +// <configuration> +// <inputs>classpath:/:.*topiatest.*\.xmi</inputs> +// <outputDirectory>target/generated-sources9</outputDirectory> +// <extractDirectory>target/extracted-sources9</extractDirectory> +// </configuration> + +// maven-eugene-plugin/target/its/evol-879/xmi/xmi-impl/target/ +// |-- extracted-sources9 +// | `-- zargo +// | |-- topiatest3.zargo +// | |-- xmi +// | | |-- topiatest.properties +// | | `-- topiatest.zargo +// | `-- xmi2 +// | `-- topiatest2.zargo +// `-- generated-sources9 +// `-- models +// |-- topiatest3.objectmodel +// |-- xmi +// | |-- topiatest.objectmodel +// | `-- topiatest.properties +// `-- xmi2 +// `-- topiatest2.objectmodel + + @Test + public void test9() { + setTestNumber(9); + checkExist(target, extractdDir, generateDir); + + checkExist(tmp = new File(target, extractdDir), "xmi"); + checkExist(tmp = new File(tmp, "xmi"), "xmi", "xmi2", "topiatest3.xmi"); + checkExist(new File(tmp, "xmi"), "topiatest.xmi", "topiatest.properties"); + checkExist(new File(tmp, "xmi2"), "topiatest2.xmi"); + + checkExist(tmp = new File(target, generateDir), "models"); + + checkExist(tmp = new File(tmp, "models"), "topiatest3.objectmodel", "xmi", "xmi2"); + checkExist(new File(tmp, "xmi"), "topiatest.objectmodel", "topiatest.properties"); + checkExist(new File(tmp, "xmi2"), "topiatest2.objectmodel"); + } + +} \ No newline at end of file Added: trunk/maven-eugene-plugin/src/it/evol-879/zargo/README.txt =================================================================== --- trunk/maven-eugene-plugin/src/it/evol-879/zargo/README.txt (rev 0) +++ trunk/maven-eugene-plugin/src/it/evol-879/zargo/README.txt 2010-09-25 00:00:09 UTC (rev 965) @@ -0,0 +1,116 @@ +On teste ici le goal smart-generate avec un fichier zargo dans le class-path : + +Le result doit être + +maven-eugene-plugin/target/its/evol-879/zargo/zargo-impl/target/ +|-- extracted-sources +| `-- zargo +| `-- xmi +| |-- topiatest.properties +| `-- topiatest.zargo +|-- extracted-sources1 +| `-- zargo +| `-- xmi +| |-- topiatest.properties +| `-- topiatest.zargo +|-- extracted-sources3 +| `-- zargo +| `-- xmi2 +| `-- topiatest2.zargo +|-- extracted-sources4 +| `-- zargo +| `-- xmi2 +| `-- topiatest2.zargo +|-- extracted-sources5 +| `-- zargo +| `-- topiatest3.zargo +|-- extracted-sources6 +| `-- zargo +| `-- topiatest3.zargo +|-- extracted-sources8 +| `-- zargo +| |-- topiatest3.zargo +| |-- xmi +| | |-- topiatest.properties +| | `-- topiatest.zargo +| `-- xmi2 +| `-- topiatest2.zargo +|-- extracted-sources9 +| `-- zargo +| |-- topiatest3.zargo +| |-- xmi +| | |-- topiatest.properties +| | `-- topiatest.zargo +| `-- xmi2 +| `-- topiatest2.zargo +|-- generated-sources1 +| |-- models +| | |-- topiatest.objectmodel +| | `-- topiatest.properties +| `-- xmi +| |-- topiatest.properties +| `-- topiatest.xmi +|-- generated-sources2 +| |-- models +| | |-- topiatest.objectmodel +| | `-- topiatest.properties +| `-- xmi +| |-- topiatest.properties +| `-- topiatest.xmi +|-- generated-sources3 +| |-- models +| | `-- topiatest2.objectmodel +| `-- xmi +| `-- topiatest2.xmi +|-- generated-sources4 +| |-- models +| | `-- topiatest2.objectmodel +| `-- xmi +| `-- topiatest2.xmi +|-- generated-sources5 +| |-- models +| | `-- topiatest3.objectmodel +| `-- xmi +| `-- topiatest3.xmi +|-- generated-sources6 +| |-- models +| | `-- topiatest3.objectmodel +| `-- xmi +| `-- topiatest3.xmi +|-- generated-sources7 +| |-- models +| | |-- topiatest4.objectmodel +| | `-- topiatest4.properties +| `-- xmi +| |-- topiatest4.properties +| `-- topiatest4.xmi +|-- generated-sources8 +| |-- models +| | |-- topiatest3.objectmodel +| | |-- xmi +| | | |-- topiatest.objectmodel +| | | `-- topiatest.properties +| | `-- xmi2 +| | `-- topiatest2.objectmodel +| `-- xmi +| |-- topiatest3.xmi +| |-- xmi +| | |-- topiatest.properties +| | `-- topiatest.xmi +| `-- xmi2 +| `-- topiatest2.xmi +|-- generated-sources9 +| |-- models +| | |-- topiatest3.objectmodel +| | |-- xmi +| | | |-- topiatest.objectmodel +| | | `-- topiatest.properties +| | `-- xmi2 +| | `-- topiatest2.objectmodel +| `-- xmi +| |-- topiatest3.xmi +| |-- xmi +| | |-- topiatest.properties +| | `-- topiatest.xmi +| `-- xmi2 +| `-- topiatest2.xmi Added: trunk/maven-eugene-plugin/src/it/evol-879/zargo/invoker.properties =================================================================== --- trunk/maven-eugene-plugin/src/it/evol-879/zargo/invoker.properties (rev 0) +++ trunk/maven-eugene-plugin/src/it/evol-879/zargo/invoker.properties 2010-09-25 00:00:09 UTC (rev 965) @@ -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 install + +# 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-fast + +# 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/evol-879/zargo/pom.xml =================================================================== --- trunk/maven-eugene-plugin/src/it/evol-879/zargo/pom.xml (rev 0) +++ trunk/maven-eugene-plugin/src/it/evol-879/zargo/pom.xml 2010-09-25 00:00:09 UTC (rev 965) @@ -0,0 +1,32 @@ +<?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> + + <groupId>org.nuiton.eugene.test</groupId> + <artifactId>testEvol879-zargo</artifactId> + <version>2.0.0</version> + + <modules> + <module>zargo-api</module> + <module>zargo-impl</module> + </modules> + + <name>EUGene Test :: testEvol879-zargo</name> + + <packaging>pom</packaging> + + <properties> + + <eugeneVersion>@pom.version@</eugeneVersion> + + <!-- default encoding --> + <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> + + </properties> + +</project> + + Added: trunk/maven-eugene-plugin/src/it/evol-879/zargo/verify.groovy =================================================================== --- trunk/maven-eugene-plugin/src/it/evol-879/zargo/verify.groovy (rev 0) +++ trunk/maven-eugene-plugin/src/it/evol-879/zargo/verify.groovy 2010-09-25 00:00:09 UTC (rev 965) @@ -0,0 +1,197 @@ +/* +outputDir = new File(basedir, 'zargo-impl/target/generated-sources'); +outputEDir = new File(basedir, 'zargo-impl/target/extracted-sources/zargo'); + +assert outputDir.exists(); +assert outputEDir.exists(); + +assert new File(outputEDir, 'xmi').exists(); +assert new File(outputEDir, 'xmi/topiatest.zargo').exists(); +assert new File(outputEDir, 'xmi/topiatest.properties').exists(); + +assert new File(outputDir, 'xmi').exists(); +assert new File(outputDir, 'xmi/topiatest.xmi').exists(); +assert new File(outputDir, 'xmi/topiatest.properties').exists(); + +assert new File(outputDir, 'models').exists(); +assert new File(outputDir, 'models/topiatest.objectmodel').exists(); +assert new File(outputDir, 'models/topiatest.properties').exists(); + +outputDir = new File(basedir, 'zargo-impl/target/generated-sources_2'); +outputEDir = new File(basedir, 'zargo-impl/target/extracted-sources_2/zargo'); + +assert outputDir.exists(); +assert outputEDir.exists(); + +assert new File(outputEDir, 'xmi').exists(); +assert new File(outputEDir, 'xmi/topiatest.zargo').exists(); +assert new File(outputEDir, 'xmi/topiatest.properties').exists(); + +assert new File(outputDir, 'xmi').exists(); +assert new File(outputDir, 'xmi/topiatest.xmi').exists(); +assert new File(outputDir, 'xmi/topiatest.properties').exists(); + +assert new File(outputDir, 'models').exists(); +assert new File(outputDir, 'models/topiatest.objectmodel').exists(); +assert new File(outputDir, 'models/topiatest.properties').exists(); + +outputDir = new File(basedir, 'zargo-impl/target/generated-sources2'); +outputEDir = new File(basedir, 'zargo-impl/target/extracted-sources2/zargo'); + +assert outputDir.exists(); +assert outputEDir.exists(); + +assert new File(outputEDir, 'xmi2').exists(); +assert new File(outputEDir, 'xmi2/topiatest2.zargo').exists(); +assert !new File(outputEDir, 'xmi2/topiatest2.properties').exists(); + +assert new File(outputDir, 'xmi').exists(); +assert new File(outputDir, 'xmi/topiatest2.xmi').exists(); +assert !new File(outputDir, 'xmi/topiatest2.properties').exists(); + +assert new File(outputDir, 'models').exists(); +assert new File(outputDir, 'models/topiatest2.objectmodel').exists(); +assert !new File(outputDir, 'models/topiatest2.properties').exists(); + +outputDir = new File(basedir, 'zargo-impl/target/generated-sources2_2'); +outputEDir = new File(basedir, 'zargo-impl/target/extracted-sources2_2/zargo'); + +assert outputDir.exists(); +assert outputEDir.exists(); + +assert new File(outputEDir, 'xmi2').exists(); +assert new File(outputEDir, 'xmi2/topiatest2.zargo').exists(); +assert !new File(outputEDir, 'xmi2/topiatest2.properties').exists(); + +assert new File(outputDir, 'xmi').exists(); +assert new File(outputDir, 'xmi/topiatest2.xmi').exists(); +assert !new File(outputDir, 'xmi/topiatest2.properties').exists(); + +assert new File(outputDir, 'models').exists(); +assert new File(outputDir, 'models/topiatest2.objectmodel').exists(); +assert !new File(outputDir, 'models/topiatest2.properties').exists(); + +outputDir = new File(basedir, 'zargo-impl/target/generated-sources3'); +outputEDir = new File(basedir, 'zargo-impl/target/extracted-sources3/zargo'); + +assert outputDir.exists(); +assert outputEDir.exists(); + +assert new File(outputEDir, 'topiatest3.zargo').exists(); +assert !new File(outputEDir, 'topiatest3.properties').exists(); + +assert new File(outputDir, 'xmi').exists(); +assert new File(outputDir, 'xmi/topiatest3.xmi').exists(); +assert !new File(outputDir, 'xmi/topiatest3.properties').exists(); + +assert new File(outputDir, 'models').exists(); +assert new File(outputDir, 'models/topiatest3.objectmodel').exists(); +assert !new File(outputDir, 'models/topiatest3.properties').exists(); + +outputDir = new File(basedir, 'zargo-impl/target/generated-sources3_2'); +outputEDir = new File(basedir, 'zargo-impl/target/extracted-sources3_2/zargo'); + +assert outputDir.exists(); +assert outputEDir.exists(); + +assert new File(outputEDir, 'topiatest3.zargo').exists(); +assert !new File(outputEDir, 'topiatest3.properties').exists(); + +assert new File(outputDir, 'xmi').exists(); +assert new File(outputDir, 'xmi/topiatest3.xmi').exists(); +assert !new File(outputDir, 'xmi/topiatest3.properties').exists(); + +assert new File(outputDir, 'models').exists(); +assert new File(outputDir, 'models/topiatest3.objectmodel').exists(); +assert !new File(outputDir, 'models/topiatest3.properties').exists(); + +outputDir = new File(basedir, 'zargo-impl/target/generated-sources4'); +outputEDir = new File(basedir, 'zargo-impl/target/extracted-sources4/zargo'); + +assert outputDir.exists(); +assert !outputEDir.exists(); + +assert new File(outputDir, 'xmi').exists(); +assert new File(outputDir, 'xmi/topiatest4.xmi').exists(); +assert new File(outputDir, 'xmi/topiatest4.properties').exists(); + +assert new File(outputDir, 'models').exists(); +assert new File(outputDir, 'models/topiatest4.objectmodel').exists(); +assert new File(outputDir, 'models/topiatest4.properties').exists(); + +outputDir = new File(basedir, 'zargo-impl/target/generated-sources5'); +outputEDir = new File(basedir, 'zargo-impl/target/extracted-sources5/zargo'); + +assert outputDir.exists(); +assert outputEDir.exists(); + +assert new File(outputEDir, 'xmi').exists(); +assert new File(outputEDir, 'xmi/topiatest.zargo').exists(); +assert new File(outputEDir, 'xmi/topiatest.properties').exists(); + +assert new File(outputEDir, 'xmi2').exists(); +assert new File(outputEDir, 'xmi2/topiatest2.zargo').exists(); +assert !new File(outputEDir, 'xmi2/topiatest2.properties').exists(); + +assert new File(outputEDir, 'topiatest3.zargo').exists(); +assert !new File(outputEDir, 'topiatest3.properties').exists(); + +assert new File(outputDir, 'xmi').exists(); +assert new File(outputDir, 'xmi/topiatest.xmi').exists(); +assert new File(outputDir, 'xmi/topiatest.properties').exists(); + +assert new File(outputDir, 'xmi/topiatest2.xmi').exists(); +assert !new File(outputDir, 'xmi/topiatest2.properties').exists(); + +assert new File(outputDir, 'xmi/topiatest3.xmi').exists(); +assert !new File(outputDir, 'xmi/topiatest3.properties').exists(); + +assert new File(outputDir, 'models').exists(); +assert new File(outputDir, 'models/topiatest.objectmodel').exists(); +assert new File(outputDir, 'models/topiatest.properties').exists(); + +assert new File(outputDir, 'models/topiatest2.objectmodel').exists(); +assert !new File(outputDir, 'models/topiatest2.properties').exists(); + +assert new File(outputDir, 'models/topiatest3.objectmodel').exists(); +assert !new File(outputDir, 'models/topiatest3.properties').exists(); + + +outputDir = new File(basedir, 'zargo-impl/target/generated-sources5_2'); +outputEDir = new File(basedir, 'zargo-impl/target/extracted-sources5_2/zargo'); + +assert outputDir.exists(); +assert outputEDir.exists(); + +assert new File(outputEDir, 'xmi').exists(); +assert new File(outputEDir, 'xmi/topiatest.zargo').exists(); +assert new File(outputEDir, 'xmi/topiatest.properties').exists(); + +assert new File(outputEDir, 'xmi2').exists(); +assert new File(outputEDir, 'xmi2/topiatest2.zargo').exists(); +assert !new File(outputEDir, 'xmi2/topiatest2.properties').exists(); + +assert new File(outputEDir, 'topiatest3.zargo').exists(); +assert !new File(outputEDir, 'topiatest3.properties').exists(); + +assert new File(outputDir, 'xmi').exists(); +assert new File(outputDir, 'xmi/topiatest.xmi').exists(); +assert new File(outputDir, 'xmi/topiatest.properties').exists(); + +assert new File(outputDir, 'xmi/topiatest2.xmi').exists(); +assert !new File(outputDir, 'xmi/topiatest2.properties').exists(); + +assert new File(outputDir, 'xmi/topiatest3.xmi').exists(); +assert !new File(outputDir, 'xmi/topiatest3.properties').exists(); + +assert new File(outputDir, 'models').exists(); +assert new File(outputDir, 'models/topiatest.objectmodel').exists(); +assert new File(outputDir, 'models/topiatest.properties').exists(); + +assert new File(outputDir, 'models/topiatest2.objectmodel').exists(); +assert !new File(outputDir, 'models/topiatest2.properties').exists(); + +assert new File(outputDir, 'models/topiatest3.objectmodel').exists(); +assert !new File(outputDir, 'models/topiatest3.properties').exists(); +*/ +return true; Added: trunk/maven-eugene-plugin/src/it/evol-879/zargo/zargo-api/pom.xml =================================================================== --- trunk/maven-eugene-plugin/src/it/evol-879/zargo/zargo-api/pom.xml (rev 0) +++ trunk/maven-eugene-plugin/src/it/evol-879/zargo/zargo-api/pom.xml 2010-09-25 00:00:09 UTC (rev 965) @@ -0,0 +1,46 @@ +<?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.eugene.test</groupId> + <artifactId>testEvol879-zargo</artifactId> + <version>2.0.0</version> + </parent> + + <artifactId>testEvol879-zargo-api</artifactId> + + <name>EUGene Test :: testEvol879-zargo-api</name> + + <properties> + + <eugeneVersion>@pom.version@</eugeneVersion> + + <!-- default encoding --> + <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> + + </properties> + + <build> + + <resources> + <resource> + <directory>src/main/resources</directory> + <includes> + <include>**/*</include> + </includes> + </resource> + </resources> + + </build> + +</project> + + Added: trunk/maven-eugene-plugin/src/it/evol-879/zargo/zargo-api/src/main/resources/topiatest3.zargo =================================================================== (Binary files differ) Property changes on: trunk/maven-eugene-plugin/src/it/evol-879/zargo/zargo-api/src/main/resources/topiatest3.zargo ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/maven-eugene-plugin/src/it/evol-879/zargo/zargo-api/src/main/resources/xmi/topiatest.properties =================================================================== --- trunk/maven-eugene-plugin/src/it/evol-879/zargo/zargo-api/src/main/resources/xmi/topiatest.properties (rev 0) +++ trunk/maven-eugene-plugin/src/it/evol-879/zargo/zargo-api/src/main/resources/xmi/topiatest.properties 2010-09-25 00:00:09 UTC (rev 965) @@ -0,0 +1 @@ +model.tagvalue.generateOperatorForDAOHelper=true \ No newline at end of file Added: trunk/maven-eugene-plugin/src/it/evol-879/zargo/zargo-api/src/main/resources/xmi/topiatest.zargo =================================================================== (Binary files differ) Property changes on: trunk/maven-eugene-plugin/src/it/evol-879/zargo/zargo-api/src/main/resources/xmi/topiatest.zargo ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/maven-eugene-plugin/src/it/evol-879/zargo/zargo-api/src/main/resources/xmi2/topiatest2.zargo =================================================================== (Binary files differ) Property changes on: trunk/maven-eugene-plugin/src/it/evol-879/zargo/zargo-api/src/main/resources/xmi2/topiatest2.zargo ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/maven-eugene-plugin/src/it/evol-879/zargo/zargo-impl/pom.xml =================================================================== --- trunk/maven-eugene-plugin/src/it/evol-879/zargo/zargo-impl/pom.xml (rev 0) +++ trunk/maven-eugene-plugin/src/it/evol-879/zargo/zargo-impl/pom.xml 2010-09-25 00:00:09 UTC (rev 965) @@ -0,0 +1,176 @@ +<?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.eugene.test</groupId> + <artifactId>testEvol879-zargo</artifactId> + <version>2.0.0</version> + </parent> + + <artifactId>testEvol879-zargo-impl</artifactId> + + <dependencies> + <dependency> + <groupId>junit</groupId> + <artifactId>junit</artifactId> + <scope>test</scope> + <version>4.8.1</version> + </dependency> + </dependencies> + + <name>EUGene Test :: testEvol879-zargo-impl</name> + + <build> + + <plugins> + + <plugin> + <groupId>org.nuiton.eugene</groupId> + <artifactId>maven-eugene-plugin</artifactId> + <version>${eugeneVersion}</version> + <configuration> + <fullPackagePath>org.nuiton.topia.test.entities</fullPackagePath> + <skipInputs>model</skipInputs> + </configuration> + <executions> + <execution> + <id>Test 1 : from classpath:/xmi with resources</id> + <phase>generate-sources</phase> + <configuration> + <inputs>classpath:zargo:/xmi:topiatest.zargo</inputs> + <outputDirectory>target/generated-sources1</outputDirectory> + <extractDirectory>target/extracted-sources1</extractDirectory> + </configuration> + <goals> + <goal>smart-generate</goal> + </goals> + </execution> + <execution> + <id>Test 2 : from classpath:/xmi with resources (with no protocol) + </id> + <phase>generate-sources</phase> + <configuration> + <inputs>classpath:/xmi:topiatest.zargo</inputs> + <outputDirectory>target/generated-sources2</outputDirectory> + <extractDirectory>target/extracted-sources2</extractDirectory> + </configuration> + <goals> + <goal>smart-generate</goal> + </goals> + </execution> + <execution> + <id>Test 3 : from classpath:/xmi2 without resources</id> + <phase>generate-sources</phase> + <configuration> + <inputs>classpath:zargo:/xmi2:topiatest2.zargo</inputs> + <outputDirectory>target/generated-sources3</outputDirectory> + <extractDirectory>target/extracted-sources3</extractDirectory> + </configuration> + <goals> + <goal>smart-generate</goal> + </goals> + </execution> + <execution> + <id>Test 4 : from classpath:/xmi2 without resources (with no + protocol) + </id> + <phase>generate-sources</phase> + <configuration> + <inputs>classpath:/xmi2:topiatest2.zargo</inputs> + <outputDirectory>target/generated-sources4</outputDirectory> + <extractDirectory>target/extracted-sources4</extractDirectory> + </configuration> + <goals> + <goal>smart-generate</goal> + </goals> + </execution> + <execution> + <id>Test 5 : from classpath:/ without resources</id> + <phase>generate-sources</phase> + <configuration> + <inputs>classpath:zargo:/:topiatest3.zargo</inputs> + <outputDirectory>target/generated-sources5</outputDirectory> + <extractDirectory>target/extracted-sources5</extractDirectory> + </configuration> + <goals> + <goal>smart-generate</goal> + </goals> + </execution> + <execution> + <id>Test 6 : from classpath:/ without resources (with no protocol) + </id> + <phase>generate-sources</phase> + <configuration> + <inputs>classpath:/:topiatest3.zargo</inputs> + <outputDirectory>target/generated-sources6</outputDirectory> + <extractDirectory>target/extracted-sources6</extractDirectory> + </configuration> + <goals> + <goal>smart-generate</goal> + </goals> + </execution> + <execution> + <id>Test 7 : from src/main/xmi with resources</id> + <phase>generate-sources</phase> + <configuration> + <inputs>src/main/xmi:topiatest4.zargo</inputs> + <outputDirectory>target/generated-sources7</outputDirectory> + <extractDirectory>target/extracted-sources7</extractDirectory> + </configuration> + <goals> + <goal>smart-generate</goal> + </goals> + </execution> + <execution> + <id>Test 8 : from classpath:/*.zargo</id> + <phase>generate-sources</phase> + <configuration> + <inputs>classpath:zargo:/:.*\.zargo</inputs> + <outputDirectory>target/generated-sources8</outputDirectory> + <extractDirectory>target/extracted-sources8</extractDirectory> + </configuration> + <goals> + <goal>smart-generate</goal> + </goals> + </execution> + <execution> + <id>Test 9 : from classpath:/*.zargo (with no protocol)</id> + <phase>generate-sources</phase> + <configuration> + <inputs>classpath:/:.*\.zargo</inputs> + <outputDirectory>target/generated-sources9</outputDirectory> + <extractDirectory>target/extracted-sources9</extractDirectory> + </configuration> + <goals> + <goal>smart-generate</goal> + </goals> + </execution> + </executions> + <dependencies> + <dependency> + <groupId>log4j</groupId> + <artifactId>log4j</artifactId> + <version>1.2.14</version> + </dependency> + <dependency> + <groupId>${project.groupId}</groupId> + <artifactId>testEvol879-zargo-api</artifactId> + <version>${project.version}</version> + </dependency> + + </dependencies> + </plugin> + </plugins> + </build> + +</project> + + Added: trunk/maven-eugene-plugin/src/it/evol-879/zargo/zargo-impl/src/main/xmi/topiatest4.properties =================================================================== --- trunk/maven-eugene-plugin/src/it/evol-879/zargo/zargo-impl/src/main/xmi/topiatest4.properties (rev 0) +++ trunk/maven-eugene-plugin/src/it/evol-879/zargo/zargo-impl/src/main/xmi/topiatest4.properties 2010-09-25 00:00:09 UTC (rev 965) @@ -0,0 +1 @@ +model.tagvalue.generateOperatorForDAOHelper=true \ No newline at end of file Added: trunk/maven-eugene-plugin/src/it/evol-879/zargo/zargo-impl/src/main/xmi/topiatest4.zargo =================================================================== (Binary files differ) Property changes on: trunk/maven-eugene-plugin/src/it/evol-879/zargo/zargo-impl/src/main/xmi/topiatest4.zargo ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/maven-eugene-plugin/src/it/evol-879/zargo/zargo-impl/src/test/java/org/nuiton/eugne/plugin/GenerationTest.java =================================================================== --- trunk/maven-eugene-plugin/src/it/evol-879/zargo/zargo-impl/src/test/java/org/nuiton/eugne/plugin/GenerationTest.java (rev 0) +++ trunk/maven-eugene-plugin/src/it/evol-879/zargo/zargo-impl/src/test/java/org/nuiton/eugne/plugin/GenerationTest.java 2010-09-25 00:00:09 UTC (rev 965) @@ -0,0 +1,399 @@ +package org.nuiton.eugene.plugin; + +import org.junit.Assert; +import org.junit.BeforeClass; +import org.junit.Test; + +import java.io.File; + +public class GenerationTest { + + static File target; + + File tmp; + + String extractdDir, generateDir; + + public static File getBaseDir() { + // Search basedir from maven environment + String basedirPath = System.getenv("basedir"); + if (basedirPath == null) { + basedirPath = new File("").getAbsolutePath(); + } + + File result = new File(basedirPath); + return result; + } + + @BeforeClass + public static void init() { + File basedir = getBaseDir(); + target = new File(basedir, "target"); + } + + public void setTestNumber(int i) { + extractdDir = "extracted-sources" + i; + generateDir = "generated-sources" + i; + + } + + protected void checkExist(File dir, String... files) { + for (String file : files) { + File f = new File(dir, file); + Assert.assertTrue("File " + file + " should exists.", f.exists()); + } + } + +// <id>Test 1 : from classpath:/xmi with resources</id> +// <phase>generate-sources</phase> +// <configuration> +// <inputs>classpath:zargo:/xmi:topiatest.zargo</inputs> +// <outputDirectory>target/generated-sources1</outputDirectory> +// <extractDirectory>target/extracted-sources1</extractDirectory> +// </configuration> + +// maven-eugene-plugin/target/its/evol-879/zargo/zargo-impl/target/ +// |-- extracted-sources1 +// | `-- zargo +// | `-- xmi +// | |-- topiatest.properties +// | `-- topiatest.zargo +// `-- generated-sources1 +// |-- models +// | |-- topiatest.objectmodel +// | `-- topiatest.properties +// `-- xmi +// |-- topiatest.properties +// `-- topiatest.xmi + + + @Test + public void test1() { + setTestNumber(1); + checkExist(target, extractdDir, generateDir); + + checkExist(tmp = new File(target, extractdDir), "zargo"); + checkExist(tmp = new File(tmp, "zargo"), "xmi"); + checkExist(new File(tmp, "xmi"), "topiatest.properties", "topiatest.zargo"); + + checkExist(tmp = new File(target, generateDir), "models", "xmi"); + checkExist(new File(tmp, "models"), "topiatest.properties", "topiatest.objectmodel"); + checkExist(new File(tmp, "xmi"), "topiatest.properties", "topiatest.xmi"); + + } + +// <id>Test 2 : from classpath:/xmi with resources (with no protocol)</id> +// <phase>generate-sources</phase> +// <configuration> +// <inputs>classpath:/xmi:topiatest.zargo</inputs> +// <outputDirectory>target/generated-sources2</outputDirectory> +// <extractDirectory>target/extracted-sources</extractDirectory> +// </configuration> + +// maven-eugene-plugin/target/its/evol-879/zargo/zargo-impl/target/ +// |-- extracted-sources2 +// | `-- zargo +// | `-- xmi +// | |-- topiatest.properties +// | `-- topiatest.zargo +// `-- generated-sources2 +// |-- models +// | |-- topiatest.objectmodel +// | `-- topiatest.properties +// `-- xmi +// |-- topiatest.properties +// `-- topiatest.xmi + + + @Test + public void test2() { + setTestNumber(2); + checkExist(target, extractdDir, generateDir); + + checkExist(tmp = new File(target, extractdDir), "zargo"); + checkExist(tmp = new File(tmp, "zargo"), "xmi"); + checkExist(new File(tmp, "xmi"), "topiatest.properties", "topiatest.zargo"); + + checkExist(tmp = new File(target, generateDir), "models", "xmi"); + checkExist(new File(tmp, "models"), "topiatest.properties", "topiatest.objectmodel"); + checkExist(new File(tmp, "xmi"), "topiatest.properties", "topiatest.xmi"); + } + +// <id>Test 3 : from classpath:/xmi2 without resources</id> +// <phase>generate-sources</phase> +// <configuration> +// <inputs>classpath:zargo:/xmi2:topiatest2.zargo</inputs> +// <outputDirectory>target/generated-sources2</outputDirectory> +// <extractDirectory>target/extracted-sources2</extractDirectory> +// </configuration> + + +// maven-eugene-plugin/target/its/evol-879/zargo/zargo-impl/target/ +// |-- extracted-sources3 +// | `-- zargo +// | `-- xmi2 +// | `-- topiatest2.zargo +// `-- generated-sources3 +// |-- models +// | `-- topiatest2.objectmodel +// `-- xmi +// `-- topiatest2.xmi + + + @Test + public void test3() { + setTestNumber(3); + checkExist(target, extractdDir, generateDir); + + checkExist(tmp = new File(target, extractdDir), "zargo"); + checkExist(tmp = new File(tmp, "zargo"), "xmi2"); + checkExist(new File(tmp, "xmi2"), "topiatest2.zargo"); + + checkExist(tmp = new File(target, generateDir), "models", "xmi"); + + checkExist(new File(tmp, "models"), "topiatest2.objectmodel"); + checkExist(new File(tmp, "xmi"), "topiatest2.xmi"); + } + +// <id>Test 4 : from classpath:/xmi2 without resources (with no protocol)</id> +// <phase>generate-sources</phase> +// <configuration> +// <inputs>classpath:/xmi2:topiatest2.zargo</inputs> +// <outputDirectory>target/generated-sources4</outputDirectory> +// <extractDirectory>target/extracted-sources4</extractDirectory> +// </configuration> + + +// maven-eugene-plugin/target/its/evol-879/zargo/zargo-impl/target/ +// |-- extracted-sources4 +// | `-- zargo +// | `-- xmi2 +// | `-- topiatest2.zargo +// `-- generated-sources4 +// |-- models +// | `-- topiatest2.objectmodel +// `-- xmi +// `-- topiatest2.xmi + + + @Test + public void test4() { + setTestNumber(4); + checkExist(target, extractdDir, generateDir); + + checkExist(tmp = new File(target, extractdDir), "zargo"); + checkExist(tmp = new File(tmp, "zargo"), "xmi2"); + checkExist(new File(tmp, "xmi2"), "topiatest2.zargo"); + + checkExist(tmp = new File(target, generateDir), "models", "xmi"); + checkExist(new File(tmp, "models"), "topiatest2.objectmodel"); + checkExist(new File(tmp, "xmi"), "topiatest2.xmi"); + } + +// <id>Test 5 : from classpath:/ without resources</id> +// <phase>generate-sources</phase> +// <configuration> +// <inputs>classpath:zargo:/:topiatest3.zargo</inputs> +// <outputDirectory>target/generated-sources5</outputDirectory> +// <extractDirectory>target/extracted-sources5</extractDirectory> +// </configuration> + + +// maven-eugene-plugin/target/its/evol-879/zargo/zargo-impl/target/ +// |-- extracted-sources5 +// | `-- zargo +// | `-- topiatest3.zargo +// `-- generated-sources5 +// |-- models +// | `-- topiatest3.objectmodel +// `-- xmi +// `-- topiatest3.xmi + + @Test + public void test5() { + setTestNumber(5); + checkExist(target, extractdDir, generateDir); + + checkExist(tmp = new File(target, extractdDir), "zargo"); + checkExist(new File(tmp, "zargo"), "topiatest3.zargo"); + + checkExist(tmp = new File(target, generateDir), "models", "xmi"); + checkExist(new File(tmp, "models"), "topiatest3.objectmodel"); + checkExist(new File(tmp, "xmi"), "topiatest3.xmi"); + } +// <id>Test 6 : from classpath:/ without resources (with no protocol)</id> +// <phase>generate-sources</phase> +// <configuration> +// <inputs>classpath:/:topiatest3.zargo</inputs> +// <outputDirectory>target/generated-sources6</outputDirectory> +// <extractDirectory>target/extracted-sources6</extractDirectory> +// </configuration> + + +// maven-eugene-plugin/target/its/evol-879/zargo/zargo-impl/target/ +// |-- extracted-sources6 +// | `-- zargo +// | `-- topiatest3.zargo +// `-- generated-sources6 +// |-- models +// | `-- topiatest3.objectmodel +// `-- xmi +// `-- topiatest3.xmi + + @Test + public void test6() { + setTestNumber(6); + checkExist(target, extractdDir, generateDir); + + checkExist(tmp = new File(target, extractdDir), "zargo"); + checkExist(new File(tmp, "zargo"), "topiatest3.zargo"); + + checkExist(tmp = new File(target, generateDir), "models", "xmi"); + checkExist(new File(tmp, "models"), "topiatest3.objectmodel"); + checkExist(new File(tmp, "xmi"), "topiatest3.xmi"); + } + +// <id>Test 7 : from src/main/xmi with resources</id> +// <phase>generate-sources</phase> +// <configuration> +// <inputs>src/main/xmi:topiatest4.zargo</inputs> +// <outputDirectory>target/generated-sources7</outputDirectory> +// <extractDirectory>target/extracted-sources7</extractDirectory> +// </configuration> + + +// maven-eugene-plugin/target/its/evol-879/zargo/zargo-impl/target/ +// `-- generated-sources7 +// |-- models +// | |-- topiatest4.objectmodel +// | `-- topiatest4.properties +// `-- xmi +// |-- topiatest4.properties +// `-- topiatest4.xmi + + @Test + public void test7() { + setTestNumber(7); + checkExist(target, generateDir); + + checkExist(tmp = new File(target, generateDir), "models", "xmi"); + checkExist(new File(tmp, "models"), "topiatest4.objectmodel", "topiatest4.properties"); + checkExist(new File(tmp, "xmi"), "topiatest4.xmi", "topiatest4.properties"); + } + +// <id>Test 8 : from classpath:/*.zargo</id> +// <phase>generate-sources</phase> +// <configuration> +// <inputs>classpath:zargo:/:.*\.zargo</inputs> +// <outputDirectory>target/generated-sources8</outputDirectory> +// <extractDirectory>target/extracted-sources8</extractDirectory> +// </configuration> + + +// maven-eugene-plugin/target/its/evol-879/zargo/zargo-impl/target/ +// |-- extracted-sources8 +// | `-- zargo +// | |-- topiatest3.zargo +// | |-- xmi +// | | |-- topiatest.properties +// | | `-- topiatest.zargo +// | `-- xmi2 +// | `-- topiatest2.zargo +// `-- generated-sources8 +// |-- models +// | |-- topiatest3.objectmodel +// | |-- xmi +// | | |-- topiatest.objectmodel +// | | `-- topiatest.properties +// | `-- xmi2 +// | `-- topiatest2.objectmodel +// `-- xmi +// |-- topiatest3.xmi +// |-- xmi +// | |-- topiatest.properties +// | `-- topiatest.xmi +// `-- xmi2 +// `-- topiatest2.xmi + + @Test + public void test8() { + setTestNumber(8); + checkExist(target, extractdDir, generateDir); + + checkExist(tmp = new File(target, extractdDir), "zargo"); + checkExist(tmp = new File(tmp, "zargo"), "xmi", "xmi2", "topiatest3.zargo"); + checkExist(new File(tmp, "xmi"), "topiatest.zargo", "topiatest.properties"); + checkExist(new File(tmp, "xmi2"), "topiatest2.zargo"); + + checkExist(tmp = new File(target, generateDir), "models", "xmi"); + File tmp2; + + checkExist(tmp2 = new File(tmp, "models"), "topiatest3.objectmodel", "xmi", "xmi2"); + checkExist(new File(tmp2, "xmi"), "topiatest.objectmodel", "topiatest.properties"); + checkExist(new File(tmp2, "xmi2"), "topiatest2.objectmodel"); + + checkExist(tmp2 = new File(tmp, "xmi"), "topiatest3.xmi", "xmi", "xmi2"); + checkExist(new File(tmp2, "xmi"), "topiatest.xmi", "topiatest.properties"); + checkExist(new File(tmp2, "xmi2"), "topiatest2.xmi"); + } + +// <id>Test 9 : from classpath:/*.zargo (with no protocol)</id> +// <phase>generate-sources</phase> +// <configuration> +// <inputs>classpath:/:.*\.zargo</inputs> +// <outputDirectory>target/generated-sources9</outputDirectory> +// <extractDirectory>target/extracted-sources9</extractDirectory> +// </configuration> + + +// maven-eugene-plugin/target/its/evol-879/zargo/zargo-impl/target/ +// |-- extracted-sources9 +// | `-- zargo +// | |-- topiatest3.zargo +// | |-- xmi +// | | |-- topiatest.properties +// | | `-- topiatest.zargo +// | `-- xmi2 +// | `-- topiatest2.zargo +// `-- generated-sources9 +// |-- models +// | |-- topiatest3.objectmodel +// | |-- xmi +// | | |-- topiatest.objectmodel +// | | `-- topiatest.properties +// | `-- xmi2 +// | `-- topiatest2.objectmodel +// `-- xmi +// |-- topiatest3.xmi +// |-- xmi +// | |-- topiatest.properties +// | `-- topiatest.xmi +// `-- xmi2 +// `-- topiatest2.xmi + + @Test + public void test9() { + setTestNumber(9); + checkExist(target, extractdDir, generateDir); + + + checkExist(tmp = new File(target, extractdDir), "zargo"); + + checkExist(tmp = new File(tmp, "zargo"), "xmi", "xmi2", "topiatest3.zargo"); + + checkExist(new File(tmp, "xmi"), "topiatest.zargo", "topiatest.properties"); + checkExist(new File(tmp, "xmi2"), "topiatest2.zargo"); + + checkExist(tmp = new File(target, generateDir), "models", "xmi"); + + File tmp2; + checkExist(tmp2 = new File(tmp, "models"), "topiatest3.objectmodel", "xmi", "xmi2"); + checkExist(new File(tmp2, "xmi"), "topiatest.objectmodel", "topiatest.properties"); + checkExist(new File(tmp2, "xmi2"), "topiatest2.objectmodel"); + + checkExist(tmp2 = new File(tmp, "xmi"), "topiatest3.xmi", "xmi", "xmi2"); + checkExist(new File(tmp2, "xmi"), "topiatest.xmi", "topiatest.properties"); + checkExist(new File(tmp2, "xmi2"), "topiatest2.xmi"); + } + +} \ No newline at end of file Modified: trunk/maven-eugene-plugin/src/it/generate-model-files/testIncludeWithNoProtocol/invoker.properties =================================================================== --- trunk/maven-eugene-plugin/src/it/generate-model-files/testIncludeWithNoProtocol/invoker.properties 2010-09-24 17:55:00 UTC (rev 964) +++ trunk/maven-eugene-plugin/src/it/generate-model-files/testIncludeWithNoProtocol/invoker.properties 2010-09-25 00:00:09 UTC (rev 965) @@ -12,7 +12,7 @@ #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 +invoker.failureBehavior=fail-fast # The expected result of the build, possible values are "success" (default) and "failure" #invoker.buildResult=success 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 2010-09-24 17:55:00 UTC (rev 964) +++ trunk/maven-eugene-plugin/src/it/generate-model-files/testIncludeWithOnlyProtocol/invoker.properties 2010-09-25 00:00:09 UTC (rev 965) @@ -12,7 +12,7 @@ #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 +invoker.failureBehavior=fail-fast # The expected result of the build, possible values are "success" (default) and "failure" #invoker.buildResult=success Modified: trunk/maven-eugene-plugin/src/it/smart-generate/all/invoker.properties =================================================================== --- trunk/maven-eugene-plugin/src/it/smart-generate/all/invoker.properties 2010-09-24 17:55:00 UTC (rev 964) +++ trunk/maven-eugene-plugin/src/it/smart-generate/all/invoker.properties 2010-09-25 00:00:09 UTC (rev 965) @@ -12,7 +12,7 @@ #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 +invoker.failureBehavior=fail-fast # The expected result of the build, possible values are "success" (default) and "failure" #invoker.buildResult=success Modified: trunk/maven-eugene-plugin/src/it/smart-generate/generators/invoker.properties =================================================================== --- trunk/maven-eugene-plugin/src/it/smart-generate/generators/invoker.properties 2010-09-24 17:55:00 UTC (rev 964) +++ trunk/maven-eugene-plugin/src/it/smart-generate/generators/invoker.properties 2010-09-25 00:00:09 UTC (rev 965) @@ -12,7 +12,7 @@ #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 +invoker.failureBehavior=fail-fast # The expected result of the build, possible values are "success" (default) and "failure" #invoker.buildResult=success Modified: trunk/maven-eugene-plugin/src/it/smart-generate/only-zargo/invoker.properties =================================================================== --- trunk/maven-eugene-plugin/src/it/smart-generate/only-zargo/invoker.properties 2010-09-24 17:55:00 UTC (rev 964) +++ trunk/maven-eugene-plugin/src/it/smart-generate/only-zargo/invoker.properties 2010-09-25 00:00:09 UTC (rev 965) @@ -12,7 +12,7 @@ #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 +invoker.failureBehavior=fail-fast # The expected result of the build, possible values are "success" (default) and "failure" #invoker.buildResult=success 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 2010-09-24 17:55:00 UTC (rev 964) +++ trunk/maven-eugene-plugin/src/it/smart-generate/only-zargo/pom.xml 2010-09-25 00:00:09 UTC (rev 965) @@ -1,101 +1,102 @@ <?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" +<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> + <modelVersion>4.0.0</modelVersion> - <!-- ************************************************************* --> - <!-- *** POM Relationships *************************************** --> - <!-- ************************************************************* --> + <!-- ************************************************************* --> + <!-- *** POM Relationships *************************************** --> + <!-- ************************************************************* --> - <groupId>org.nuiton.eugene.test</groupId> - <artifactId>testIncludeWithOnlyProtocol</artifactId> - <version>2.0.0</version> + <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> + <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> + <dependency> + <groupId>org.nuiton</groupId> + <artifactId>nuiton-utils</artifactId> + <version>1.1.1</version> + <scope>compile</scope> + </dependency> - </dependencies> + </dependencies> - <!-- ************************************************************* --> - <!-- *** Project Information ************************************* --> - <!-- ************************************************************* --> + <!-- ************************************************************* --> + <!-- *** Project Information ************************************* --> + <!-- ************************************************************* --> - <name>EUGene Test :: testIncludeWithOnlyProtocol</name> + <name>EUGene Test :: testIncludeWithOnlyProtocol</name> - <!-- ************************************************************* --> - <!-- *** Build Settings ****************************************** --> - <!-- ************************************************************* --> + <!-- ************************************************************* --> + <!-- *** Build Settings ****************************************** --> + <!-- ************************************************************* --> - <packaging>jar</packaging> + <packaging>jar</packaging> - <properties> + <properties> - <eugeneVersion>@pom.version@</eugeneVersion> + <eugeneVersion>@pom.version@</eugeneVersion> - <!-- default encoding --> - <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> + <!-- default encoding --> + <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> - </properties> + </properties> - <build> + <build> - <plugins> + <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>zargo</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>src/main/zargo:**/*.zargo</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> + <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>zargo</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>src/main/zargo:**/*.zargo</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> Modified: 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 2010-09-24 17:55:00 UTC (rev 964) +++ trunk/maven-eugene-plugin/src/it/smart-generate/only-zargo-xmi/invoker.properties 2010-09-25 00:00:09 UTC (rev 965) @@ -12,7 +12,7 @@ #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 +invoker.failureBehavior=fail-fast # The expected result of the build, possible values are "success" (default) and "failure" #invoker.buildResult=success 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 2010-09-24 17:55:00 UTC (rev 964) +++ trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/SmartGenerateMojo.java 2010-09-25 00:00:09 UTC (rev 965) @@ -40,6 +40,7 @@ import org.nuiton.eugene.plugin.writer.XmiChainedFileWriter; import org.nuiton.eugene.writer.ChainedFileWriter; import org.nuiton.eugene.writer.ChainedFileWriterConfiguration; +import org.nuiton.eugene.writer.ChainedFileWriterData; import org.nuiton.eugene.writer.ChainedFileWriterEntry; import org.nuiton.eugene.writer.ChainedWriterEngine; import org.nuiton.eugene.writer.WriterReport; @@ -137,6 +138,15 @@ protected File outputDirectory; /** + * Where to copy extracted files (when using class-path data). + * + * @parameter expression="${eugene.extractDirectory}" default-value="target/extracted-sources" + * @required + * @since 2.1.3 + */ + protected File extractDirectory; + + /** * Ecrase les fichiers générés. * * @parameter expression="${eugene.overwrite}" default-value="false" @@ -485,7 +495,12 @@ getLog().debug("Generating files and copying resources..."); } - writer.generate(this); + // obtains data to react for this writer + ChainedFileWriterData data = engine.getData(writer); + + // launch generation + writer.generate(this, data); + String message = reportGeneratedFiles(writer, t0); getLog().info(message); @@ -549,6 +564,11 @@ } @Override + public File getExtractDirectory() { + return extractDirectory; + } + + @Override public Map<String, Object> getProperties() { return properties; } 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 2010-09-24 17:55:00 UTC (rev 964) +++ trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/writer/BaseChainedFileWriter.java 2010-09-25 00:00:09 UTC (rev 965) @@ -25,13 +25,28 @@ package org.nuiton.eugene.plugin.writer; +import org.apache.commons.collections.CollectionUtils; import org.apache.maven.plugin.logging.Log; import org.apache.maven.plugin.logging.SystemStreamLog; +import org.codehaus.plexus.util.DirectoryScanner; +import org.codehaus.plexus.util.FileUtils; 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; +import org.nuiton.util.FileUtil; +import org.nuiton.util.Resource; +import java.io.File; +import java.io.IOException; +import java.io.InputStream; +import java.net.MalformedURLException; +import java.net.URI; +import java.net.URL; +import java.net.URLClassLoader; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; import java.util.Map; import java.util.Set; @@ -64,12 +79,142 @@ } @Override + public final List<URL> getFiles(ChainedFileWriterConfiguration configuration, + File inputDirectory, + List<String> includePattern, + boolean inClassPath) throws MalformedURLException, IllegalArgumentException { + + if (CollectionUtils.isEmpty(includePattern)) { + throw new IllegalArgumentException("Must have at least one include pattern"); + } + + List<URL> result = new ArrayList<URL>(); + + if (!inClassPath) { + DirectoryScanner ds = new DirectoryScanner(); + + ds.setBasedir(inputDirectory); + ds.setIncludes(includePattern.toArray(new String[includePattern.size()])); + ds.setExcludes(null); + ds.addDefaultExcludes(); + ds.scan(); + for (String file : ds.getIncludedFiles()) { + File in = new File(inputDirectory, file); + result.add(in.toURI().toURL()); + } + return result; + } + + // search in class-path + + ClassLoader loader = configuration.getClassLoader(); + + for (String pattern : includePattern) { + + String path = inputDirectory.getAbsolutePath(); + + //FIXME must change the file.separator to / + if (!path.endsWith("/")) { + path += "/"; + } + path += pattern; + + if (path.startsWith("/")) { + path = path.substring(1); + } + + if (getLog().isDebugEnabled()) { + getLog().debug("Try to seek class-path file " + path); + } + + if (pattern.contains("*")) { + + // this is a multi-files to search + List<URL> urlList = Resource.getURLs(path, (URLClassLoader) loader); + if (CollectionUtils.isEmpty(urlList)) { + + getLog().warn("Could not find in class-path files " + path); + } else { + for (URL url : urlList) { + + if (configuration.isVerbose()) { + getLog().info("Detected class-path file " + url); + } + result.add(url); + } + } + } else { + + // this is a simple unique search, improve performance + // by searching directly in classloader the resource + URL url = loader.getResource(path); + if (url == null) { + + getLog().warn("Could not find in class-path the file " + path); + } else { + + if (configuration.isVerbose()) { + getLog().info("Detected class-path file " + url); + } + result.add(url); + } + } + } + return result; + } + + @Override + public final List<URL> getResources(URL file) throws IOException { + + // obtain the properties files associated with the file + String path = file.toString(); + + String extension = "." + FileUtil.extension(path); + + String filename = FileUtil.basename(path, extension).concat(".properties"); + + if (getLog().isDebugEnabled()) { + getLog().info("path of file : " + path); + getLog().info("path of resource : " + filename); + } + + URL propertiesFile = URI.create(filename).toURL(); + + if (path.startsWith("file:")) { + + // local file (not from class-path) + // can test directly on resource if it exists + if (!new File(propertiesFile.getFile()).exists()) { + return null; + } + // resource exist, keep it + return Arrays.asList(propertiesFile); + } + InputStream in = null; + try { + in = propertiesFile.openStream(); + + // resource exist, keep it + return Arrays.asList(propertiesFile); + } catch (IOException eee) { + + // resource does not exists + getLog().warn("Could not find resource " + propertiesFile); + return null; + } finally { + if (in != null) { + in.close(); + } + } + } + + @Override protected void initWriter(ChainedFileWriterConfiguration configuration) { super.initWriter(configuration); if (!configuration.isVerbose()) { - // nothing else to do + // nothing else to do return; } @@ -115,5 +260,46 @@ StateModel.NAME.equals(modelType); } + protected void copyResources(ChainedFileWriterConfiguration configuration, + File outputDirectory, + File inputDirectory, + File file, + Map<File, List<File>> resourcesByFile) throws IOException { + List<File> resources = resourcesByFile.get(file); + + if (CollectionUtils.isEmpty(resources)) { + + // no resource associated to the xmi file + if (configuration.isVerbose()) { + getLog().info("No resources to copy for file " + file); + } + return; + } + + if (configuration.isVerbose()) { + getLog().info("Copy " + resources.size() + " resource file(s)."); + } + + boolean overwrite = configuration.isOverwrite(); + +// String parentPath = inputDirectory.getAbsolutePath(); + for (File in : resources) { + +// String relativePath = in.getAbsolutePath().substring(parentPath.length()); + + File out = FileUtil.getRelativeFile(inputDirectory, outputDirectory, in); +// File out = new File(outputDirectory, relativePath); +// File out = new File(outputDirectory, in.getName()); + + getLog().info("Copy file " + in + " to " + out); + + if (overwrite) { + FileUtils.copyFile(in, out); + } else { + FileUtils.copyFileIfModified(in, out); + } + } + } + } 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 2010-09-24 17:55:00 UTC (rev 964) +++ trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/writer/ModelChainedFileWriter.java 2010-09-25 00:00:09 UTC (rev 965) @@ -39,8 +39,11 @@ import java.io.IOException; import java.util.ArrayList; import java.util.Arrays; +import java.util.HashSet; import java.util.List; +import java.util.Map; import java.util.Properties; +import java.util.Set; /** * To write model files from zargo files. @@ -141,6 +144,7 @@ return getProperty(PROP_GENERATED_PACKAGES, String.class); } + @SuppressWarnings({"unchecked"}) public List<Template<Model>> getTemplatesList() { return getProperty(PROP_TEMPLATES_LIST, List.class); } @@ -225,6 +229,9 @@ // init templates List<Template<?>> templatesList = new ArrayList<Template<?>>(); + if (StringUtils.isEmpty(getTemplates())) { + throw new IllegalArgumentException("No template specified, use the templates parameter"); + } String[] templatesNames = getTemplates().split(","); for (String templateName : templatesNames) { // remove trailing spaces @@ -263,6 +270,52 @@ @Override public void generate(ChainedFileWriterConfiguration configuration, File outputDir, + Map<File, List<File>> filesByRoot, + Map<File, List<File>> resourcesByFile) throws IOException { + + Set<File> modelFiles = new HashSet<File>(); + for (List<File> files : filesByRoot.values()) { + modelFiles.addAll(files); + } + File[] filesToRead = modelFiles.toArray(new File[modelFiles.size()]); + + if (configuration.isVerbose()) { + getLog().info("Will read " + filesToRead.length + " model(s)."); + } + + // read memory model from all files models + Model model = getModelReader().read(filesToRead); + + // get the last modified source timestamp from reader + long lastModifiedSource = getModelReader().getLastModifiedSource(); + + // apply all templates to the model + + for (Template<Model> template : getTemplatesList()) { + getLog().info("Apply generator " + template.getClass().getSimpleName()); + + // set the lastModified source property + template.setProperty(Template.PROP_LAST_MODIFIED_SOURCE, lastModifiedSource); + + template.setProperty(Template.PROP_WRITER_REPORT, getWriterReport()); + + if (configuration.isVerbose()) { + getLog().info(" overwrite = " + template.isOverwrite()); + getLog().info(" encoding = " + template.getEncoding()); + getLog().info(" lastModifiedSource = " + template.getLastModifiedSource()); + getLog().info(" exclude = " + template.getExcludeTemplates()); + getLog().info(" output directory = " + outputDir); + } + + // apply template + template.applyTemplate(model, outputDir); + } + } + + @Override + @Deprecated + public void generate(ChainedFileWriterConfiguration configuration, + File outputDir, File inputDirectory, String includePattern) throws IOException { @@ -297,7 +350,7 @@ getLog().info("No model to use."); return; } - + if (currentFiles.size() == 1) { getLog().info("Using one model :"); } else { Modified: trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/writer/XmiChainedFileWriter.java =================================================================== --- trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/writer/XmiChainedFileWriter.java 2010-09-24 17:55:00 UTC (rev 964) +++ trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/writer/XmiChainedFileWriter.java 2010-09-25 00:00:09 UTC (rev 965) @@ -53,6 +53,7 @@ import java.lang.reflect.Constructor; import java.net.URL; import java.util.List; +import java.util.Map; /** * Implentation pour les writer to type xmi (qui transforme du xmi via xsl @@ -139,7 +140,7 @@ public String getFullPackagePath() { return getProperty(PROP_FULL_PACKAGE_PATH, String.class); } - + public String getExtractedPackages() { return getProperty(PROP_EXTRACTED_PACKAGES, String.class); } @@ -150,6 +151,141 @@ @Override public void generate(ChainedFileWriterConfiguration configuration, + File outputDirectory, + Map<File, List<File>> filesByRoot, + Map<File, List<File>> resourcesByFile) throws IOException { + + if (configuration.isVerbose()) { + getLog().info(" with fullPackagePath : " + getFullPackagePath()); + getLog().info(" with resolver : " + getResolver()); + } + + for (Map.Entry<File, List<File>> entry : filesByRoot.entrySet()) { + File inputDirectory = entry.getKey(); + List<File> files = entry.getValue(); + + getLog().info("Processing XSL tranformation on " + + inputDirectory + " for " + files.size() + " file(s)."); + + for (File file : files) { + + // lancement des traitements xsl sur les fichiers trouvés + // dans le repertoire + boolean reacted = actionXsl(configuration, + outputDirectory, + inputDirectory, + file + ); + + if (!reacted) { + + // file was not treated, nothing else to do + continue; + } + + // copy resources associated with the file + copyResources(configuration, + outputDirectory, + inputDirectory, + file, + resourcesByFile + ); + + } + } + } + + protected boolean actionXsl(ChainedFileWriterConfiguration configuration, + File outputDirectory, + File inputDirectory, + File file) throws IOException { + + 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 newExtension = configuration.getModelType(); + + // get the mirror file in the ouput root directory + File mirrorFile = FileUtil.getRelativeFile(inputDirectory, + outputDirectory, + file + ); + + // change the extension name to the modeltype + File result = FileUtil.changeExtension(mirrorFile, newExtension); + +// String filename = FileUtil.basename(file, extension). +// concat(".").concat(configuration.getModelType()); +// String relatifPath = file.getParentFile().getAbsolutePath(). +// substring(inputDirectory.getAbsolutePath().length()); +// File dstDir = outputDir; +// if (!relatifPath.isEmpty()) { +// dstDir = new File(dstDir, relatifPath); +// PluginHelper.createDirectoryIfNecessary(dstDir); +// } +// File result = new File(dstDir, filename); + if (!configuration.isOverwrite() && + file.lastModified() < result.lastModified()) { + + if (configuration.isVerbose()) { + getLog().info("Will not generate " + result + + " (up-to-date)."); + } + return false; + } + + PluginHelper.createDirectoryIfNecessary(result.getParentFile()); + WriterReport writerReport = getWriterReport(); + if (writerReport != null) { + + writerReport.addFile( + getClass().getName(), + result, + true + ); + } + + // Create the xsl transformer and set parameters + Transformer transformer = getTransformerFactory(). + newTransformer(new StreamSource(xsl.openStream())); + + transformer.setParameter(PROP_FULL_PACKAGE_PATH, + getFullPackagePath() + ); + transformer.setParameter(PROP_EXTRACTED_PACKAGES, + getExtractedPackages() + ); + + transformer.setURIResolver(fileResolver); + FileOutputStream output = new FileOutputStream(result); + try { + transformer.transform(new StreamSource(file), + new StreamResult(output)); + } finally { + output.close(); + } + return true; + } catch (IOException e) { + throw e; + } catch (Exception e) { + throw new IOException(e.getMessage(), e); + } + } + + @Override + @Deprecated + public void generate(ChainedFileWriterConfiguration configuration, File outputDir, File inputDirectory, String includePattern) throws IOException { @@ -187,10 +323,11 @@ ); } + @Deprecated protected void actionXsl(ChainedFileWriterConfiguration configuration, - File outputDir, - File dir, - List<File> files) throws IOException { + File outputDir, + File dir, + List<File> files) throws IOException { for (File file : files) { try { 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 2010-09-24 17:55:00 UTC (rev 964) +++ trunk/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/writer/ZargoChainedFileWriter.java 2010-09-25 00:00:09 UTC (rev 965) @@ -31,12 +31,15 @@ import org.nuiton.eugene.writer.WriterReport; import org.nuiton.plugin.PluginHelper; import org.nuiton.plugin.PluginIOContext; +import org.nuiton.util.FileUtil; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.util.Enumeration; +import java.util.List; +import java.util.Map; import java.util.zip.ZipEntry; import java.util.zip.ZipFile; @@ -102,6 +105,41 @@ @Override public void generate(ChainedFileWriterConfiguration configuration, + File outputDirectory, + Map<File, List<File>> filesByRoot, + Map<File, List<File>> resourcesByFile) throws IOException { + + for (Map.Entry<File, List<File>> entry : filesByRoot.entrySet()) { + File inputDirectory = entry.getKey(); + List<File> files = entry.getValue(); + + getLog().info("Expanding " + files.size() + " xmi file(s) from " + inputDirectory); + + for (File file : files) { + + File mirrorDirectory = FileUtil.getRelativeFile( + inputDirectory, + outputDirectory, + file.getParentFile() + ); + + expandFile(file, mirrorDirectory, XMI_FILE_FILTER, configuration); +// expandFile(file, outputDirectory, XMI_FILE_FILTER, configuration); + + // copy resources associated with the file + copyResources(configuration, + outputDirectory, + inputDirectory, + file, + resourcesByFile + ); + } + } + } + + @Override + @Deprecated + public void generate(ChainedFileWriterConfiguration configuration, File outputDir, File inputDirectory, String includePattern) throws IOException { @@ -132,6 +170,7 @@ ); } + @Deprecated public void expandFiles(PluginIOContext p, String[] includes, String[] excludes, @@ -170,10 +209,10 @@ String name = nextElement.getName(); for (String include : includes) { if (DirectoryScanner.match(include, name)) { - if (configuration.isVerbose()) { +// if (configuration.isVerbose()) { getLog().info("matching name : " + name + " with pattern " + include); - } +// } File dstFile = new File(dst, name); if (configuration.isOverwrite() || !dstFile.exists() || @@ -188,6 +227,7 @@ writerReport.addFile(getClass().getName(), dstFile, true); } + PluginHelper.createDirectoryIfNecessary(dst); InputStream inputStream = zipFile.getInputStream(nextElement); FileOutputStream outStream = Modified: trunk/pom.xml =================================================================== --- trunk/pom.xml 2010-09-24 17:55:00 UTC (rev 964) +++ trunk/pom.xml 2010-09-25 00:00:09 UTC (rev 965) @@ -269,7 +269,7 @@ <ant.version>1.7.1</ant.version> <processor.version>1.0.3</processor.version> - <nuiton-utils.version>1.4.1</nuiton-utils.version> + <nuiton-utils.version>1.4.2-SNAPSHOT</nuiton-utils.version> <!--Multilanguage maven-site --> <locales>en,fr</locales>
participants (1)
-
tchemit@users.nuiton.org