Author: echatellier Date: 2009-10-28 14:22:16 +0100 (Wed, 28 Oct 2009) New Revision: 286 Added: eugenehelloworld/trunk/build.xml eugenehelloworld/trunk/src/ eugenehelloworld/trunk/src/main/ eugenehelloworld/trunk/src/main/java/ eugenehelloworld/trunk/src/main/java/org/ eugenehelloworld/trunk/src/main/java/org/nuiton/ eugenehelloworld/trunk/src/main/java/org/nuiton/helloworld/ eugenehelloworld/trunk/src/main/java/org/nuiton/helloworld/ClassInfoGenerator.java eugenehelloworld/trunk/src/main/java/org/nuiton/helloworld/JavaBeanGenerator.java eugenehelloworld/trunk/src/main/java/org/nuiton/util/ eugenehelloworld/trunk/src/main/java/org/nuiton/util/ResourceResolver.java eugenehelloworld/trunk/src/main/resources/ eugenehelloworld/trunk/src/main/resources/log4j.properties eugenehelloworld/trunk/src/main/xmi/ eugenehelloworld/trunk/src/main/xmi/TestXMI21.objectmodel eugenehelloworld/trunk/src/main/xmi/TestXMI21.uml eugenehelloworld/trunk/src/main/xmi/helloworldmodel.objectmodel eugenehelloworld/trunk/src/main/xmi/pollen.objectmodel eugenehelloworld/trunk/src/main/xmi/pollen.zargo eugenehelloworld/trunk/src/main/xmi/topiatest.objectmodel eugenehelloworld/trunk/src/main/xmi/topiatest.xmi Modified: eugenehelloworld/trunk/ Log: Sample eugene hello world based on ant. Property changes on: eugenehelloworld/trunk ___________________________________________________________________ Added: svn:ignore + build target .classpath .project Added: eugenehelloworld/trunk/build.xml =================================================================== --- eugenehelloworld/trunk/build.xml (rev 0) +++ eugenehelloworld/trunk/build.xml 2009-10-28 13:22:16 UTC (rev 286) @@ -0,0 +1,64 @@ +<project name="EugeneHelloWorld" default="compile" basedir="."> + <description> + simple example build file + </description> + + <!-- set global properties for this build --> + <property name="src" location="src/main/java" /> + <property name="resources" location="src/main/resources" /> + <property name="modelDir" location="src/main/xmi" /> + <property name="lib" location="lib" /> + <property name="target" location="target" /> + <property name="targetgen" location="${target}/gen/java" /> + <property name="targetbuild" location="${target}/classes" /> + + <path id="project.classpath"> + <fileset dir="${lib}"> + <include name="*.jar" /> + </fileset> + </path> + + <pathconvert pathsep=":" property="compile.classpath" refid="project.classpath"> + <map from="${basedir}" to="." /> + </pathconvert> + + <taskdef name="eugene" classname="org.nuiton.eugene.GeneratorTask" + classpath="${compile.classpath}:${targetbuild}:${resources}" /> + + <target name="warning"> + <echo>********************************************************</echo> + <echo> WARNING : There is a classpath problem in this example </echo> + <echo> To work, please run "ant compile" twice</echo> + <echo>********************************************************</echo> + </target> + + <target name="init" depends="warning"> + <!-- Create the build directory structure used by compile --> + <mkdir dir="${target}" /> + <mkdir dir="${targetgen}" /> + <mkdir dir="${targetbuild}" /> + </target> + + <target name="pre-compile" depends="init"> + <echo>Using classpath ${compile.classpath}</echo> + <javac srcdir="${src}" destdir="${targetbuild}" classpath="${compile.classpath}" /> + </target> + + <target name="generate" depends="pre-compile" description="generate"> + <eugene srcdir="${modelDir}" destdir="${targetgen}" + resolver="org.nuiton.util.ResourceResolver" + templates="org.nuiton.helloworld.ClassInfoGenerator,org.nuiton.helloworld.JavaBeanGenerator" + properties="defaultPackage=org.nuiton,fullPackagePath=org.nuiton,extraPackages=org.nuiton" + classpath="${compile.classpath}:${targetbuild}:${resources}" /> + </target> + + <target name="compile" depends="generate" description="compile the source "> + <!-- Compile the java code from ${src} into ${build} --> + <javac srcdir="${targetgen}" destdir="${targetbuild}" /> + </target> + + <target name="clean" description="clean up"> + <!-- Delete the ${build} and ${dist} directory trees --> + <delete dir="${target}" /> + </target> +</project> Added: eugenehelloworld/trunk/src/main/java/org/nuiton/helloworld/ClassInfoGenerator.java =================================================================== --- eugenehelloworld/trunk/src/main/java/org/nuiton/helloworld/ClassInfoGenerator.java (rev 0) +++ eugenehelloworld/trunk/src/main/java/org/nuiton/helloworld/ClassInfoGenerator.java 2009-10-28 13:22:16 UTC (rev 286) @@ -0,0 +1,78 @@ +package org.nuiton.helloworld; +/* *##% + * Copyright (C) 2009 Code Lutin + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + *##%*/ + +import java.io.File; +import java.io.IOException; +import java.io.Writer; + +import org.nuiton.eugene.ObjectModelGenerator; +import org.nuiton.eugene.models.object.ObjectModel; +import org.nuiton.eugene.models.object.ObjectModelClass; + +/** + * HelloWorld. + * + * @author chatellier + * @version $Revision$ + * + * Last update : $Date$ + * By : $Author: chatellier $ + */ +public class ClassInfoGenerator extends ObjectModelGenerator { + + /* + * @see org.codelutin.generator.ObjectModelGenerator#getFilenameForClass(org.codelutin.generator.models.object.ObjectModelClass) + */ + @Override + public String getFilenameForClass(ObjectModelClass clazz) { + String filename = clazz.getQualifiedName().replace('.', File.separatorChar) + ".txt"; + return filename; + } + + /* + * @see org.codelutin.generator.ObjectModelGenerator#getFilenameForModel(org.codelutin.generator.models.object.ObjectModel) + */ + @Override + public String getFilenameForModel(ObjectModel model) { + String filename = (getProperty("defaultPackage") + ".").replace('.', File.separatorChar) + model.getName() + "_recap.txt"; + return filename; + } + + /* + * @see org.codelutin.generator.ObjectModelGenerator#generateFromClass(java.io.Writer, org.codelutin.generator.models.object.ObjectModelClass) + */ + @Override + public void generateFromClass(Writer output, ObjectModelClass clazz) + throws IOException { + output.write("Classname = " + clazz.getName() + "\n"); + output.write("Attribute number = " + clazz.getAttributes().size() + "\n"); + output.write("Operation number = " + clazz.getOperations().size() + "\n"); + } + + /* + * @see org.codelutin.generator.ObjectModelGenerator#generateFromModel(java.io.Writer, org.codelutin.generator.models.object.ObjectModel) + */ + @Override + public void generateFromModel(Writer output, ObjectModel model) + throws IOException { + output.write("Total classes = " + model.getClasses().size() + "\n"); + output.write("Total interfaces = " + model.getInterfaces().size() + "\n"); + output.write("Total classifiers = " + model.getClassifiers().size() + "\n"); + } +} Property changes on: eugenehelloworld/trunk/src/main/java/org/nuiton/helloworld/ClassInfoGenerator.java ___________________________________________________________________ Added: svn:keywords + "Author Date Id Revision HeadURL" Added: eugenehelloworld/trunk/src/main/java/org/nuiton/helloworld/JavaBeanGenerator.java =================================================================== --- eugenehelloworld/trunk/src/main/java/org/nuiton/helloworld/JavaBeanGenerator.java (rev 0) +++ eugenehelloworld/trunk/src/main/java/org/nuiton/helloworld/JavaBeanGenerator.java 2009-10-28 13:22:16 UTC (rev 286) @@ -0,0 +1,77 @@ +package org.nuiton.helloworld; +/* *##% + * Copyright (C) 2009 Code Lutin + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + *##%*/ + +import java.io.File; +import java.io.IOException; +import java.io.Writer; + +import org.apache.commons.lang.StringUtils; +import org.nuiton.eugene.ObjectModelGenerator; +import org.nuiton.eugene.models.object.ObjectModelAttribute; +import org.nuiton.eugene.models.object.ObjectModelClass; + +/** + * HelloWorld. + * + * @author chatellier + * @version $Revision$ + * + * Last update : $Date$ + * By : $Author: chatellier $ + */ +public class JavaBeanGenerator extends ObjectModelGenerator { + + /* + * @see org.codelutin.generator.ObjectModelGenerator#getFilenameForClass(org.codelutin.generator.models.object.ObjectModelClass) + */ + @Override + public String getFilenameForClass(ObjectModelClass clazz) { + String filename = clazz.getQualifiedName().replace('.', File.separatorChar) + ".java"; + return filename; + } + + /* + * @see org.codelutin.generator.ObjectModelGenerator#generateFromClass(java.io.Writer, org.codelutin.generator.models.object.ObjectModelClass) + */ + @Override + public void generateFromClass(Writer output, ObjectModelClass clazz) + throws IOException { + + output.write("package " + clazz.getPackageName() + ";\n\n"); + + output.write("public class " + clazz.getName() + " {\n"); + output.write("\n"); + for( ObjectModelAttribute attr : clazz.getAttributes()) { + output.write(" protected " + attr.getType() + " " + attr.getName() + ";\n"); + output.write("\n"); + } + for( ObjectModelAttribute attr : clazz.getAttributes()) { + String getterSetterName = StringUtils.capitalize(attr.getName()); + output.write(" public void set" + getterSetterName + "(" + attr.getType() + " " + attr.getName() + ") {\n"); + output.write(" this." + attr.getName() + " = " + attr.getName() + ";\n"); + output.write(" }\n"); + output.write("\n"); + output.write(" public " + attr.getType() + " get" + getterSetterName + "() {\n"); + output.write(" return this." + attr.getName() + ";\n"); + output.write(" }\n"); + output.write("\n"); + } + output.write("}\n"); + } +} Property changes on: eugenehelloworld/trunk/src/main/java/org/nuiton/helloworld/JavaBeanGenerator.java ___________________________________________________________________ Added: svn:keywords + "Author Date Id Revision HeadURL" Added: eugenehelloworld/trunk/src/main/java/org/nuiton/util/ResourceResolver.java =================================================================== --- eugenehelloworld/trunk/src/main/java/org/nuiton/util/ResourceResolver.java (rev 0) +++ eugenehelloworld/trunk/src/main/java/org/nuiton/util/ResourceResolver.java 2009-10-28 13:22:16 UTC (rev 286) @@ -0,0 +1,166 @@ +package org.nuiton.util; + + +import java.net.URL; +import java.net.URLClassLoader; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import javax.xml.transform.Source; +import javax.xml.transform.URIResolver; +import javax.xml.transform.stream.StreamSource; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.nuiton.util.Resource; + +/** + * ResourceResolver is a URIResolver for XSL transformation. <br/> + * Its purpose is to catch the XSL document(...) function call and return a + * valid data source only if the wanted resource is present in the project + * resources. <br/> + * The main goal of ResourceResolver is to retrieve datasources locally, if the + * wanted resource is not present in project resource then null will be + * returned.<br/> + * <p> + * The resolve function search for the file part of href parameter: <br/> + * href: http://argouml.org/profiles/uml14/default-uml14.xmi <br/> + * file part: default-uml14.xmi. <br/> + * The resource is searched this way: <br/> + * eg: <code>[file part extension]/[file part]</code> <br/> + * eg: <code>xmi/default-uml14.xmi</code> + * <p> + * You should assign this ResourceResolver on + * {@link javax.xml.transform.Transformer} but not on + * {@link javax.xml.transform.TransformerFactory}. <br/> + * + * @author chorlet + * @version $Revision$ + * + * Last update : $Date$ + * By : $Author: chatellier $ + */ +public class ResourceResolver implements URIResolver { + + /** log. */ + private static final Log log = LogFactory.getLog(ResourceResolver.class); + + /** + * Cache to not search in full classpath at each request. + */ + protected Map<String, Source> sourceCache; + + protected String base; + + public ResourceResolver() { + sourceCache = new HashMap<String, Source>(); + } + + public ResourceResolver(String base) { + this(); + this.base = base; + } + + /** + * Resolve href on local resource. + * + * @return null if local resource not found + */ + @Override + public Source resolve(String href, String base) { + + if (log.isDebugEnabled()) { + log.debug("Resolving " + href); + } + + // URI : + // example 1 : pathmap://UML_METAMODELS/UML.metamodel.uml + // example 2 : http://argouml.org/profiles/uml14/default-java.xmi + + // relative path : + // example 3 : xxx/zzz/ttt.uml + + Source source = null; + + // if URI + if (href.matches("[a-zA-Z]+://.+")) { + String filename = null; + int beginIndex = href.lastIndexOf('/'); + if (beginIndex > -1) { + filename = href.substring(beginIndex + 1); + } + if (filename != null && !filename.isEmpty()) { + source = findSource(filename, true); + } + } else { + source = findSource(href, false); + } + + return source; + } + + protected Source findSource(String filename, boolean isHref) { + + Source source = null; + + // test if already in cache + source = sourceCache.get(filename); + if(source != null) { + return source; + } + + String resource = null; + if(isHref) { + resource = ".*/" + filename; + } + else if (base != null) { + resource = base + "/" + filename; + } else { + resource = filename; + } + + if (log.isDebugEnabled()) { + log.debug("findSource " + resource); + } + + System.out.println("ResourceResolver(findSource) : java.class.path = " + + System.getProperty("java.class.path")); + + if(isHref) { + System.out.println("findsource: isHref"); + // use classloader to work in maven + List<URL> urls = null; + ClassLoader cl = this.getClass().getClassLoader(); + if( cl instanceof URLClassLoader) { + urls = Resource.getURLs(resource, (URLClassLoader)cl); + System.out.println("findsource urls : " + urls); + } + else { + urls = Resource.getURLs(resource); + System.out.println("findsource urls : " + urls + "cl: " + cl); + } + + if (urls != null && !urls.isEmpty()) { + URL url = urls.get(0); + if (log.isDebugEnabled()) { + log.debug("found resource in " + url.toString()); + } + source = new StreamSource(url.toString()); + sourceCache.put(filename, source); + } + } + else { + URL url = Resource.getURLOrNull(resource); + if (url != null) { + if (log.isDebugEnabled()) { + log.debug("found resource in " + url.toString()); + } + source = new StreamSource(url.toString()); + sourceCache.put(filename, source); + } + } + + return source; + } +} Property changes on: eugenehelloworld/trunk/src/main/java/org/nuiton/util/ResourceResolver.java ___________________________________________________________________ Added: svn:keywords + "Author Date Id Revision HeadURL" Added: eugenehelloworld/trunk/src/main/resources/log4j.properties =================================================================== --- eugenehelloworld/trunk/src/main/resources/log4j.properties (rev 0) +++ eugenehelloworld/trunk/src/main/resources/log4j.properties 2009-10-28 13:22:16 UTC (rev 286) @@ -0,0 +1,11 @@ +# Global logging configuration +log4j.rootLogger=ERROR, stdout + +# Console output... +log4j.appender.stdout=org.apache.log4j.ConsoleAppender +log4j.appender.stdout.layout=org.apache.log4j.PatternLayout +log4j.appender.stdout.layout.ConversionPattern=%5p [%t] (%F:%L) %M - %m%n + +# package level +log4j.logger.org.codelutin.generator=DEBUG +log4j.logger.org.apache.commons.digester=INFO Added: eugenehelloworld/trunk/src/main/xmi/TestXMI21.objectmodel =================================================================== --- eugenehelloworld/trunk/src/main/xmi/TestXMI21.objectmodel (rev 0) +++ eugenehelloworld/trunk/src/main/xmi/TestXMI21.objectmodel 2009-10-28 13:22:16 UTC (rev 286) @@ -0,0 +1,62 @@ +<?xml version="1.0" encoding="UTF-8"?><objectModel xmlns="http://www.codelutin.org/lutingenerator/objectModel" name="XMITest21"> + <class name="ClassA" package="org.codelutin.generator.test21" abstract="true"> + <interface name="org.codelutin.generator.test21.InterfaceA"/> + <interface name="org.codelutin.generator.test21.InterfaceB"/> + <attribute name="name" visibility="public" type="java.lang.String"/> + <operation name="add" visibility="public"> + <parameter name="formula" type="org.codelutin.types.Formula"/> + </operation> + </class> + <interface name="InterfaceA" package="org.codelutin.generator.test21"/> + <interface name="InterfaceB" package="org.codelutin.generator.test21"/> + <class name="ClassB" package="org.codelutin.generator.test21"> + <superClass name="org.codelutin.generator.test21.ClassA"/> + <attribute name="cost" visibility="public" type="int"> + <tagValue name="documentation" value="Cost attribute comment"/> + </attribute> + <attribute name="protectedCost" visibility="protected" type="int"/> + <attribute name="privateCost" visibility="private" type="int"/> + <attribute name="packageCost" visibility="package" type="int"/> + </class> + <class name="ClassC" package="org.codelutin.generator.test21"> + <superClass name="org.codelutin.generator.test21.ClassA"/> + <attribute name="formula" visibility="public" type="org.codelutin.types.Formula"/> + <operation name="launchException" visibility="public"> + <parameter name="msg" type="int"/> + <exceptionParameter type="org.codelutin.generator.test21.ClassCException"/> + </operation> + <attribute name="source" type="org.codelutin.generator.test21.ClassE" minMultiplicity="0" maxMultiplicity="*" ordering="true"/> + <tagValue name="documentation" value="Class C Comment"/> + </class> + <class name="ClassD" package="org.codelutin.generator.test21"> + <operation name="getFirst" visibility="public"> + <returnParameter type="boolean"/> + </operation> + <operation name="getSecond" visibility="protected"> + <returnParameter type="java.lang.String"/> + <parameter name="name" type="int"/> + </operation> + <operation name="close" visibility="package"/> + <operation name="getInstance" visibility="public"> + <returnParameter type="org.codelutin.generator.test21.ClassD"/> + </operation> + <attribute name="target" type="org.codelutin.generator.test21.ClassE" minMultiplicity="0" maxMultiplicity="*" navigable="true"/> + </class> + <class name="ClassE" package="org.codelutin.generator.test21"> + <attribute name="source" type="org.codelutin.generator.test21.ClassD" minMultiplicity="0" maxMultiplicity="1" navigable="true"/> + <attribute name="source" type="org.codelutin.generator.test21.ClassF" minMultiplicity="1" maxMultiplicity="1"/> + <attribute name="target" type="org.codelutin.generator.test21.ClassC" minMultiplicity="1" maxMultiplicity="1"/> + </class> + <class name="ClassF" package="org.codelutin.generator.test21"> + <attribute name="equation" visibility="public" type="Equation"/> + <attribute name="target" type="org.codelutin.generator.test21.ClassE" associationType="composite" minMultiplicity="1" maxMultiplicity="1"/> + </class> + <class name="ClassG" package="org.codelutin.generator.test21"/> + <associationClass name="AssociationClassGToF" package="org.codelutin.generator.test21"> + <attribute name="price" visibility="protected" type="float"/> + <operation name="getPrice" visibility="public"> + <returnParameter type="float"/> + </operation> + </associationClass> + <class name="ClassCException" package="org.codelutin.generator.test21"/> +</objectModel> Added: eugenehelloworld/trunk/src/main/xmi/TestXMI21.uml =================================================================== --- eugenehelloworld/trunk/src/main/xmi/TestXMI21.uml (rev 0) +++ eugenehelloworld/trunk/src/main/xmi/TestXMI21.uml 2009-10-28 13:22:16 UTC (rev 286) @@ -0,0 +1,136 @@ +<?xml version="1.0" encoding="UTF-8"?> +<xmi:XMI xmi:version="2.1" xmlns:xmi="http://schema.omg.org/spec/XMI/2.1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:AcceleoBusiness="http:///schemas/AcceleoBusiness/_my2ZAHXaEd2S2Y-Jnv-fiQ/2" xmlns:Sharengoserviceprofile="http:///schemas/Sharengoserviceprofile/_bMLXQKEQEd2L7a68DRX6Bg/1" xmlns:Sharengoserviceprofile_1="http:///schemas/Sharengoserviceprofile/_pCa5EPQ4Ed2_aZMAEjWDNQ/2" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:uml="http://www.eclipse.org/uml2/2.1.0/UML" xsi:schemaLocation="http:///schemas/AcceleoBusiness/_my2ZAHXaEd2S2Y-Jnv-fiQ/2 pathmap://ACCELEO_PROFILES/Acceleo.Business.profile.uml#_81g14fWcEdyuYMHNZCqWBQ http:///schemas/Sharengoserviceprofile/_bMLXQKEQEd2L7a68DRX6Bg/1 pathmap://SHARENGO_PROFILES/Sharengo.service.profile.uml#_bMLXQaEQEd2L7a68DRX6Bg http:///schemas/Sharengoserviceprofile/_pCa5EPQ4Ed2_aZMAEjWDNQ/2 pathmap://SHARENGO_PROFILES/Sharengo.service.profile.uml#_pCbgIPQ4Ed2_aZMAEjWDNQ"> + <uml:Model xmi:id="_qb8akM37EdqwVrslYOdUDA" name="XMITest21"> + <packagedElement xmi:type="uml:Package" xmi:id="_w8IxIM37EdqwVrslYOdUDA" name="org.codelutin.generator.test21"> + <packagedElement xmi:type="uml:Class" xmi:id="_NNUyUP58Ed2zEeRO-8Et9Q" name="ClassA" clientDependency="_X7ZekP58Ed2zEeRO-8Et9Q _YbeFwf58Ed2zEeRO-8Et9Q" isAbstract="true"> + <ownedAttribute xmi:id="_OkwfUP58Ed2zEeRO-8Et9Q" name="name"> + <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/> + </ownedAttribute> + <interfaceRealization xmi:id="_X7ZekP58Ed2zEeRO-8Et9Q" name="InterfaceRealization1" supplier="_TdnrsP58Ed2zEeRO-8Et9Q" client="_NNUyUP58Ed2zEeRO-8Et9Q" contract="_TdnrsP58Ed2zEeRO-8Et9Q"/> + <interfaceRealization xmi:id="_YbeFwf58Ed2zEeRO-8Et9Q" name="InterfaceRealization2" supplier="_VvGmIP58Ed2zEeRO-8Et9Q" client="_NNUyUP58Ed2zEeRO-8Et9Q" contract="_VvGmIP58Ed2zEeRO-8Et9Q"/> + <ownedOperation xmi:id="_hm5koP6qEd2zEeRO-8Et9Q" name="add"> + <ownedParameter xmi:id="_il4VYP6qEd2zEeRO-8Et9Q" name="formula" type="_DIpMEP6iEd2zEeRO-8Et9Q"/> + </ownedOperation> + </packagedElement> + <packagedElement xmi:type="uml:Interface" xmi:id="_TdnrsP58Ed2zEeRO-8Et9Q" name="InterfaceA"/> + <packagedElement xmi:type="uml:Interface" xmi:id="_VvGmIP58Ed2zEeRO-8Et9Q" name="InterfaceB"/> + <packagedElement xmi:type="uml:Class" xmi:id="_ZsQYMP58Ed2zEeRO-8Et9Q" name="ClassB"> + <generalization xmi:id="_eo5RUP58Ed2zEeRO-8Et9Q" general="_NNUyUP58Ed2zEeRO-8Et9Q"/> + <ownedAttribute xmi:id="_aqVxEP58Ed2zEeRO-8Et9Q" name="cost"> + <eAnnotations xmi:id="_19P_QP6VEd2zEeRO-8Et9Q" source="http://www.topcased.org/documentation"> + <details xmi:id="_19QmUP6VEd2zEeRO-8Et9Q" key="documentation" value="Cost attribute comment"/> + </eAnnotations> + <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Integer"/> + </ownedAttribute> + <ownedAttribute xmi:id="_je1FgP58Ed2zEeRO-8Et9Q" name="protectedCost" visibility="protected"> + <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Integer"/> + </ownedAttribute> + <ownedAttribute xmi:id="_nr6xAP58Ed2zEeRO-8Et9Q" name="privateCost" visibility="private"> + <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Integer"/> + </ownedAttribute> + <ownedAttribute xmi:id="_Ak0J8P6NEd2zEeRO-8Et9Q" name="packageCost" visibility="package"> + <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Integer"/> + </ownedAttribute> + </packagedElement> + <packagedElement xmi:type="uml:Class" xmi:id="_f4vvoP58Ed2zEeRO-8Et9Q" name="ClassC"> + <eAnnotations xmi:id="_wS4dcP6VEd2zEeRO-8Et9Q" source="http://www.topcased.org/documentation"> + <details xmi:id="_wS6SoP6VEd2zEeRO-8Et9Q" key="documentation" value="Class C Comment"/> + </eAnnotations> + <generalization xmi:id="_hukBwP58Ed2zEeRO-8Et9Q" general="_NNUyUP58Ed2zEeRO-8Et9Q"/> + <ownedAttribute xmi:id="_FrUkMP6iEd2zEeRO-8Et9Q" name="formula" type="_DIpMEP6iEd2zEeRO-8Et9Q"/> + <ownedOperation xmi:id="_0E3xQP6pEd2zEeRO-8Et9Q" name="launchException" raisedException="_O_SJQP6qEd2zEeRO-8Et9Q"> + <ownedParameter xmi:id="_4JuGwP6pEd2zEeRO-8Et9Q" name="msg"> + <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Integer"/> + </ownedParameter> + </ownedOperation> + </packagedElement> + <packagedElement xmi:type="uml:Class" xmi:id="_3DtAEP6MEd2zEeRO-8Et9Q" name="ClassD" visibility="protected"> + <ownedOperation xmi:id="_ETYGYP6NEd2zEeRO-8Et9Q" name="getFirst"> + <ownedParameter xmi:id="_GtUZQP6NEd2zEeRO-8Et9Q" name="return" direction="return"> + <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Boolean"/> + </ownedParameter> + </ownedOperation> + <ownedOperation xmi:id="_JRci4P6NEd2zEeRO-8Et9Q" name="getSecond" visibility="protected"> + <ownedParameter xmi:id="_MI6fQP6NEd2zEeRO-8Et9Q" name="return" direction="return"> + <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/> + </ownedParameter> + <ownedParameter xmi:id="_eBT-AP6qEd2zEeRO-8Et9Q" name="name"> + <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Integer"/> + </ownedParameter> + </ownedOperation> + <ownedOperation xmi:id="_OoKv8P6NEd2zEeRO-8Et9Q" name="close" visibility="package"/> + <ownedOperation xmi:id="_RvNZYP6NEd2zEeRO-8Et9Q" name="getInstance" isStatic="true"> + <ownedParameter xmi:id="_Ss04MP6NEd2zEeRO-8Et9Q" name="return" type="_3DtAEP6MEd2zEeRO-8Et9Q" direction="return"/> + </ownedOperation> + </packagedElement> + <packagedElement xmi:type="uml:Class" xmi:id="_dFFFcP6NEd2zEeRO-8Et9Q" name="ClassE"/> + <packagedElement xmi:type="uml:Association" xmi:id="_hQn40P6NEd2zEeRO-8Et9Q" name="Association3" memberEnd="_hQn40f6NEd2zEeRO-8Et9Q _hQn41P6NEd2zEeRO-8Et9Q" navigableOwnedEnd="_hQn40f6NEd2zEeRO-8Et9Q _hQn41P6NEd2zEeRO-8Et9Q"> + <ownedEnd xmi:id="_hQn40f6NEd2zEeRO-8Et9Q" name="source" type="_3DtAEP6MEd2zEeRO-8Et9Q" association="_hQn40P6NEd2zEeRO-8Et9Q"> + <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_hQn40v6NEd2zEeRO-8Et9Q" value="1"/> + <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_hQn40_6NEd2zEeRO-8Et9Q"/> + </ownedEnd> + <ownedEnd xmi:id="_hQn41P6NEd2zEeRO-8Et9Q" name="target" visibility="public" type="_dFFFcP6NEd2zEeRO-8Et9Q" association="_hQn40P6NEd2zEeRO-8Et9Q"> + <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_hQn41f6NEd2zEeRO-8Et9Q" value="*"/> + <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_hQn41v6NEd2zEeRO-8Et9Q"/> + </ownedEnd> + </packagedElement> + <packagedElement xmi:type="uml:Class" xmi:id="_pboycP6NEd2zEeRO-8Et9Q" name="ClassF"> + <ownedAttribute xmi:id="_rdaF0P6hEd2zEeRO-8Et9Q" name="equation" type="_ncUO8P6hEd2zEeRO-8Et9Q"/> + </packagedElement> + <packagedElement xmi:type="uml:Association" xmi:id="_rmReBP6NEd2zEeRO-8Et9Q" name="Association4" memberEnd="_rmReBf6NEd2zEeRO-8Et9Q _rmReCP6NEd2zEeRO-8Et9Q"> + <ownedEnd xmi:id="_rmReBf6NEd2zEeRO-8Et9Q" name="source" type="_pboycP6NEd2zEeRO-8Et9Q" association="_rmReBP6NEd2zEeRO-8Et9Q"> + <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_rmReBv6NEd2zEeRO-8Et9Q" value="1"/> + <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_rmReB_6NEd2zEeRO-8Et9Q" value="1"/> + </ownedEnd> + <ownedEnd xmi:id="_rmReCP6NEd2zEeRO-8Et9Q" name="target" type="_dFFFcP6NEd2zEeRO-8Et9Q" aggregation="composite" association="_rmReBP6NEd2zEeRO-8Et9Q"> + <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_rmReCf6NEd2zEeRO-8Et9Q" value="1"/> + <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_rmReCv6NEd2zEeRO-8Et9Q" value="1"/> + </ownedEnd> + </packagedElement> + <packagedElement xmi:type="uml:Class" xmi:id="_vhCqcP6NEd2zEeRO-8Et9Q" name="ClassG"/> + <packagedElement xmi:type="uml:AssociationClass" xmi:id="_0bvC4P6NEd2zEeRO-8Et9Q" name="AssociationClassGToF" memberEnd="_0bvp4P6NEd2zEeRO-8Et9Q _0bvp4_6NEd2zEeRO-8Et9Q" navigableOwnedEnd="_0bvp4_6NEd2zEeRO-8Et9Q"> + <ownedAttribute xmi:id="_SRvpQP6OEd2zEeRO-8Et9Q" name="price" visibility="protected"> + <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/Ecore.metamodel.uml#EFloat"/> + </ownedAttribute> + <ownedOperation xmi:id="_QmGm0P6OEd2zEeRO-8Et9Q" name="getPrice"> + <ownedParameter xmi:id="_WKIQEP6OEd2zEeRO-8Et9Q" name="return" direction="return"> + <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/Ecore.metamodel.uml#EFloat"/> + </ownedParameter> + </ownedOperation> + <ownedEnd xmi:id="_0bvp4P6NEd2zEeRO-8Et9Q" name="source" type="_vhCqcP6NEd2zEeRO-8Et9Q" association="_0bvC4P6NEd2zEeRO-8Et9Q"> + <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_0bvp4f6NEd2zEeRO-8Et9Q" value="*"/> + <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_0bvp4v6NEd2zEeRO-8Et9Q"/> + </ownedEnd> + <ownedEnd xmi:id="_0bvp4_6NEd2zEeRO-8Et9Q" name="target" type="_pboycP6NEd2zEeRO-8Et9Q" association="_0bvC4P6NEd2zEeRO-8Et9Q"> + <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_0bvp5P6NEd2zEeRO-8Et9Q" value="*"/> + <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_0bvp5f6NEd2zEeRO-8Et9Q"/> + </ownedEnd> + </packagedElement> + <packagedElement xmi:type="uml:Association" xmi:id="_4u46Gv6NEd2zEeRO-8Et9Q" name="Association5" memberEnd="_4u46G_6NEd2zEeRO-8Et9Q _4u46Hv6NEd2zEeRO-8Et9Q"> + <ownedEnd xmi:id="_4u46G_6NEd2zEeRO-8Et9Q" name="source" type="_dFFFcP6NEd2zEeRO-8Et9Q" isOrdered="true" association="_4u46Gv6NEd2zEeRO-8Et9Q"> + <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_4u46HP6NEd2zEeRO-8Et9Q" value="*"/> + <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_4u46Hf6NEd2zEeRO-8Et9Q"/> + </ownedEnd> + <ownedEnd xmi:id="_4u46Hv6NEd2zEeRO-8Et9Q" name="target" type="_f4vvoP58Ed2zEeRO-8Et9Q" association="_4u46Gv6NEd2zEeRO-8Et9Q"> + <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_4u46H_6NEd2zEeRO-8Et9Q" value="1"/> + <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_4u46IP6NEd2zEeRO-8Et9Q" value="1"/> + </ownedEnd> + </packagedElement> + <packagedElement xmi:type="uml:Class" xmi:id="_O_SJQP6qEd2zEeRO-8Et9Q" name="ClassCException"/> + <profileApplication xmi:id="_7Jv4UP6gEd2zEeRO-8Et9Q"> + <eAnnotations xmi:id="_7Jv4Uf6gEd2zEeRO-8Et9Q" source="http://www.eclipse.org/uml2/2.0.0/UML"> + <references xmi:type="ecore:EPackage" href="pathmap://UML_PROFILES/Standard.profile.uml#_yzU58YinEdqtvbnfB2L_5w"/> + </eAnnotations> + <appliedProfile href="pathmap://UML_PROFILES/Standard.profile.uml#_0"/> + </profileApplication> + </packagedElement> + <packagedElement xmi:type="uml:DataType" xmi:id="_ncUO8P6hEd2zEeRO-8Et9Q" name="Equation"/> + <packagedElement xmi:type="uml:Package" xmi:id="_8d2vEP6hEd2zEeRO-8Et9Q" name="org"> + <packagedElement xmi:type="uml:Package" xmi:id="_-aZUQP6hEd2zEeRO-8Et9Q" name="codelutin"> + <packagedElement xmi:type="uml:Package" xmi:id="_BYCKEP6iEd2zEeRO-8Et9Q" name="types"> + <packagedElement xmi:type="uml:DataType" xmi:id="_DIpMEP6iEd2zEeRO-8Et9Q" name="Formula"/> + </packagedElement> + </packagedElement> + </packagedElement> +</uml:Model> +</xmi:XMI> \ No newline at end of file Added: eugenehelloworld/trunk/src/main/xmi/helloworldmodel.objectmodel =================================================================== --- eugenehelloworld/trunk/src/main/xmi/helloworldmodel.objectmodel (rev 0) +++ eugenehelloworld/trunk/src/main/xmi/helloworldmodel.objectmodel 2009-10-28 13:22:16 UTC (rev 286) @@ -0,0 +1,18 @@ +<?xml version="1.0" encoding="UTF-8"?> +<objectModel xmlns="http://www.codelutin.org/lutingenerator/objectModel" name="HelloWorld" version="3.2"> + <class name="Class1" package="org.codelutin.helloWorld"> + <stereotype name="entity"/> + <attribute name="name" associationType="composite" visibility="private" type="java.lang.String"/> + <attribute name="comment" associationType="composite" visibility="private" type="java.lang.String"/> + <operation name="getFullName" visibility="public"> + <returnParameter type="java.lang.String"/> + </operation> + <attribute visibility="public" type="org.codelutin.helloWorld.Class2" reverseAttributeName="" reverseMaxMultiplicity="1" minMultiplicity="0" maxMultiplicity="-1" navigable="false" ordering="unordered"/> + </class> + <class name="Class2" package="org.codelutin.helloWorld"> + <stereotype name="entity"/> + <tagValue name="documentation" value="Class 2 documentation"/> + <attribute name="name" associationType="composite" visibility="private" type="java.lang.String"/> + <attribute name="price" associationType="composite" visibility="private" type="int"/> + </class> +</objectModel> Added: eugenehelloworld/trunk/src/main/xmi/pollen.objectmodel =================================================================== --- eugenehelloworld/trunk/src/main/xmi/pollen.objectmodel (rev 0) +++ eugenehelloworld/trunk/src/main/xmi/pollen.objectmodel 2009-10-28 13:22:16 UTC (rev 286) @@ -0,0 +1,129 @@ +<?xml version="1.0" encoding="UTF-8"?><objectModel xmlns="http://www.codelutin.org/lutingenerator/objectModel" name="PollenModel" version=""> + <class name="Choice" package="org.codelutin.pollen.business.persistence"> + <stereotype name="entity"/> + <attribute name="isValidate" associationType="composite" visibility="public" type="java.lang.Boolean" minMultiplicity="1" maxMultiplicity="1"/> + <attribute name="name" associationType="composite" visibility="public" type="java.lang.String" minMultiplicity="1" maxMultiplicity="1"/> + <attribute name="description" associationType="composite" visibility="public" type="java.lang.String" minMultiplicity="1" maxMultiplicity="1"/> + <attribute visibility="public" associationClassName="org.codelutin.pollen.business.persistence.VoteToChoice" type="org.codelutin.pollen.business.persistence.Vote" reverseAttributeName="" reverseMaxMultiplicity="-1" minMultiplicity="0" maxMultiplicity="-1" navigable="true" ordering="unordered"/> + <attribute visibility="public" type="org.codelutin.pollen.business.persistence.Poll" reverseAttributeName="" reverseMaxMultiplicity="-1" minMultiplicity="1" maxMultiplicity="1" navigable="true" ordering="unordered"/> + </class> + <class name="ChoicesGroup" package="org.codelutin.pollen.business.persistence"/> + <class name="VotingPerson" package="org.codelutin.pollen.business.persistence"> + <stereotype name="entity"/> + <attribute name="email" associationType="composite" visibility="public" type="java.lang.String" minMultiplicity="1" maxMultiplicity="1"/> + <attribute name="votingId" associationType="composite" visibility="public" type="java.lang.String" minMultiplicity="1" maxMultiplicity="1"/> + <attribute name="isBlackListed" associationType="composite" visibility="public" type="java.lang.Boolean" minMultiplicity="1" maxMultiplicity="1"/> + <attribute visibility="public" associationClassName="org.codelutin.pollen.business.persistence.PersonToList" type="org.codelutin.pollen.business.persistence.VotingList" reverseAttributeName="" reverseMaxMultiplicity="-1" minMultiplicity="0" maxMultiplicity="-1" navigable="true" ordering="unordered"/> + <attribute name="pollsCreated" visibility="public" type="org.codelutin.pollen.business.persistence.Poll" reverseAttributeName="creator" reverseMaxMultiplicity="1" minMultiplicity="0" maxMultiplicity="-1" navigable="true" ordering="unordered"/> + <attribute visibility="public" type="org.codelutin.pollen.business.persistence.Comment" reverseAttributeName="" reverseMaxMultiplicity="1" minMultiplicity="0" maxMultiplicity="-1" navigable="true" ordering="unordered"/> + <attribute visibility="public" type="org.codelutin.pollen.business.persistence.Vote" reverseAttributeName="" reverseMaxMultiplicity="1" minMultiplicity="0" maxMultiplicity="-1" navigable="true" ordering="unordered"/> + <attribute visibility="public" type="org.codelutin.pollen.business.persistence.PersonList" reverseAttributeName="" reverseMaxMultiplicity="-1" minMultiplicity="1" maxMultiplicity="1" navigable="true" ordering="unordered"/> + </class> + <class name="VotingList" package="org.codelutin.pollen.business.persistence"> + <stereotype name="entity"/> + <attribute name="name" associationType="composite" visibility="public" type="java.lang.String" minMultiplicity="1" maxMultiplicity="1"/> + <attribute name="weight" associationType="composite" visibility="public" type="int" minMultiplicity="1" maxMultiplicity="1"/> + <attribute visibility="public" associationClassName="org.codelutin.pollen.business.persistence.PersonToList" type="org.codelutin.pollen.business.persistence.VotingPerson" reverseAttributeName="" reverseMaxMultiplicity="-1" minMultiplicity="1" maxMultiplicity="-1" navigable="true" ordering="unordered"/> + <attribute visibility="public" type="org.codelutin.pollen.business.persistence.Poll" reverseAttributeName="" reverseMaxMultiplicity="-1" minMultiplicity="1" maxMultiplicity="1" navigable="true" ordering="unordered"/> + <attribute visibility="public" type="org.codelutin.pollen.business.persistence.Vote" reverseAttributeName="" reverseMaxMultiplicity="1" minMultiplicity="0" maxMultiplicity="1" navigable="true" ordering="unordered"/> + <attribute visibility="public" type="org.codelutin.pollen.business.persistence.ListType" reverseAttributeName="" reverseMaxMultiplicity="-1" minMultiplicity="1" maxMultiplicity="1" navigable="true" ordering="unordered"/> + </class> + <class name="Vote" package="org.codelutin.pollen.business.persistence"> + <stereotype name="entity"/> + <attribute name="weight" associationType="composite" visibility="public" type="int" minMultiplicity="1" maxMultiplicity="1"/> + <attribute name="comment" associationType="composite" visibility="public" type="java.lang.String" minMultiplicity="1" maxMultiplicity="1"/> + <attribute visibility="public" associationClassName="org.codelutin.pollen.business.persistence.VoteToChoice" type="org.codelutin.pollen.business.persistence.Choice" reverseAttributeName="" reverseMaxMultiplicity="-1" minMultiplicity="1" maxMultiplicity="-1" navigable="true" ordering="unordered"/> + <attribute visibility="public" type="org.codelutin.pollen.business.persistence.Poll" reverseAttributeName="" reverseMaxMultiplicity="-1" minMultiplicity="1" maxMultiplicity="1" navigable="true" ordering="unordered"/> + <attribute visibility="public" type="org.codelutin.pollen.business.persistence.VotingPerson" reverseAttributeName="" reverseMaxMultiplicity="-1" minMultiplicity="0" maxMultiplicity="1" navigable="true" ordering="unordered"/> + <attribute visibility="public" type="org.codelutin.pollen.business.persistence.VotingList" reverseAttributeName="" reverseMaxMultiplicity="1" minMultiplicity="0" maxMultiplicity="1" navigable="true" ordering="unordered"/> + </class> + <class name="User" package="org.codelutin.pollen.business.persistence"> + <stereotype name="entity"/> + <superclass name="org.codelutin.pollen.business.persistence.VotingPerson" discriminator=""/> + <attribute name="login" associationType="composite" visibility="public" type="java.lang.String" minMultiplicity="1" maxMultiplicity="1"/> + <attribute name="password" 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 name="lastName" associationType="composite" visibility="public" type="java.lang.String" minMultiplicity="1" maxMultiplicity="1"/> + <attribute name="isAdministrator" associationType="composite" visibility="public" type="java.lang.Boolean" minMultiplicity="1" maxMultiplicity="1"/> + <attribute name="favoriteList" visibility="public" type="org.codelutin.pollen.business.persistence.PersonList" reverseAttributeName="owner" reverseMaxMultiplicity="1" minMultiplicity="0" maxMultiplicity="-1" navigable="true" ordering="unordered"/> + </class> + <class name="Result" package="org.codelutin.pollen.business.persistence"> + <stereotype name="entity"/> + <attribute name="name" associationType="composite" visibility="public" type="java.lang.String" minMultiplicity="1" maxMultiplicity="1"/> + <attribute name="value" associationType="composite" visibility="public" type="java.lang.String" minMultiplicity="1" maxMultiplicity="1"/> + <attribute visibility="public" type="org.codelutin.pollen.business.persistence.Poll" reverseAttributeName="" reverseMaxMultiplicity="-1" minMultiplicity="1" maxMultiplicity="1" navigable="true" ordering="unordered"/> + </class> + <class name="PreventRule" package="org.codelutin.pollen.business.persistence"> + <stereotype name="entity"/> + <attribute name="daysBeforeEnd" associationType="composite" visibility="public" type="int" minMultiplicity="1" maxMultiplicity="1"/> + <attribute visibility="public" type="org.codelutin.pollen.business.persistence.Poll" reverseAttributeName="" reverseMaxMultiplicity="-1" minMultiplicity="0" maxMultiplicity="-1" navigable="true" ordering="unordered"/> + </class> + <class name="Poll" package="org.codelutin.pollen.business.persistence"> + <stereotype name="entity"/> + <attribute name="beginDate" associationType="composite" visibility="public" type="java.util.Date" minMultiplicity="1" maxMultiplicity="1"/> + <attribute name="endDate" associationType="composite" visibility="public" type="java.util.Date" minMultiplicity="1" maxMultiplicity="1"/> + <attribute name="maxChoiceNb" associationType="composite" visibility="public" type="int" minMultiplicity="1" maxMultiplicity="1"/> + <attribute name="title" associationType="composite" visibility="public" type="java.lang.String" minMultiplicity="1" maxMultiplicity="1"/> + <attribute name="description" associationType="composite" visibility="public" type="java.lang.String" minMultiplicity="1" maxMultiplicity="1"/> + <attribute name="pollId" associationType="composite" visibility="public" type="java.lang.String" minMultiplicity="1" maxMultiplicity="1"/> + <attribute name="sendEmailToUser" associationType="composite" visibility="public" type="java.lang.Boolean" minMultiplicity="1" maxMultiplicity="1"/> + <attribute name="isCounting" associationType="composite" visibility="public" type="java.lang.Boolean" minMultiplicity="1" maxMultiplicity="1"/> + <attribute name="isExported" associationType="composite" visibility="public" type="java.lang.Boolean" minMultiplicity="1" maxMultiplicity="1"/> + <attribute name="isChoiceAddAllowed" associationType="composite" visibility="public" type="java.lang.Boolean" minMultiplicity="1" maxMultiplicity="1"/> + <attribute name="isAnonymous" associationType="composite" visibility="public" type="java.lang.Boolean" minMultiplicity="1" maxMultiplicity="1"/> + <attribute visibility="public" type="org.codelutin.pollen.business.persistence.Vote" reverseAttributeName="" associationType="composite" reverseMaxMultiplicity="1" minMultiplicity="0" maxMultiplicity="-1" navigable="true" ordering="unordered"/> + <attribute visibility="public" type="org.codelutin.pollen.business.persistence.Choice" reverseAttributeName="" associationType="composite" reverseMaxMultiplicity="1" minMultiplicity="0" maxMultiplicity="-1" navigable="true" ordering="unordered"/> + <attribute visibility="public" type="org.codelutin.pollen.business.persistence.Result" reverseAttributeName="" associationType="composite" reverseMaxMultiplicity="1" minMultiplicity="1" maxMultiplicity="-1" navigable="true" ordering="unordered"/> + <attribute name="creator" visibility="public" type="org.codelutin.pollen.business.persistence.VotingPerson" reverseAttributeName="pollsCreated" reverseMaxMultiplicity="-1" minMultiplicity="1" maxMultiplicity="1" navigable="true" ordering="unordered"/> + <attribute visibility="public" type="org.codelutin.pollen.business.persistence.Comment" reverseAttributeName="" reverseMaxMultiplicity="1" minMultiplicity="0" maxMultiplicity="-1" navigable="true" ordering="unordered"/> + <attribute visibility="public" type="org.codelutin.pollen.business.persistence.VoteCounting" reverseAttributeName="" reverseMaxMultiplicity="-1" minMultiplicity="1" maxMultiplicity="1" navigable="true" ordering="unordered"/> + <attribute visibility="public" type="org.codelutin.pollen.business.persistence.PreventRule" reverseAttributeName="" reverseMaxMultiplicity="-1" minMultiplicity="0" maxMultiplicity="-1" navigable="true" ordering="unordered"/> + <attribute visibility="public" type="org.codelutin.pollen.business.persistence.VotingList" reverseAttributeName="" associationType="composite" reverseMaxMultiplicity="1" minMultiplicity="0" maxMultiplicity="-1" navigable="true" ordering="unordered"/> + <attribute visibility="public" type="org.codelutin.pollen.business.persistence.PollType" reverseAttributeName="" reverseMaxMultiplicity="-1" minMultiplicity="1" maxMultiplicity="1" navigable="true" ordering="unordered"/> + <attribute visibility="public" type="org.codelutin.pollen.business.persistence.ChoiceType" reverseAttributeName="" reverseMaxMultiplicity="-1" minMultiplicity="1" maxMultiplicity="1" navigable="true" ordering="unordered"/> + </class> + <class name="PersonList" package="org.codelutin.pollen.business.persistence"> + <stereotype name="entity"/> + <attribute name="name" associationType="composite" visibility="public" type="java.lang.String" minMultiplicity="1" maxMultiplicity="1"/> + <attribute name="owner" visibility="public" type="org.codelutin.pollen.business.persistence.User" reverseAttributeName="favoriteList" reverseMaxMultiplicity="-1" minMultiplicity="1" maxMultiplicity="1" navigable="true" ordering="unordered"/> + <attribute visibility="public" type="org.codelutin.pollen.business.persistence.VotingPerson" reverseAttributeName="" associationType="composite" reverseMaxMultiplicity="1" minMultiplicity="1" maxMultiplicity="-1" navigable="true" ordering="unordered"/> + </class> + <class name="Comment" package="org.codelutin.pollen.business.persistence"> + <stereotype name="entity"/> + <attribute name="text" associationType="composite" visibility="public" type="java.lang.String" minMultiplicity="1" maxMultiplicity="1"/> + <attribute visibility="public" type="org.codelutin.pollen.business.persistence.Poll" reverseAttributeName="" reverseMaxMultiplicity="-1" minMultiplicity="1" maxMultiplicity="1" navigable="true" ordering="unordered"/> + <attribute visibility="public" type="org.codelutin.pollen.business.persistence.VotingPerson" reverseAttributeName="" reverseMaxMultiplicity="-1" minMultiplicity="1" maxMultiplicity="1" navigable="true" ordering="unordered"/> + </class> + <class name="VoteCounting" package="org.codelutin.pollen.business.persistence"> + <stereotype name="entity"/> + <attribute visibility="public" type="org.codelutin.pollen.business.persistence.Poll" reverseAttributeName="" reverseMaxMultiplicity="1" minMultiplicity="0" maxMultiplicity="-1" navigable="true" ordering="unordered"/> + </class> + <class name="ChoiceType" package="org.codelutin.pollen.business.persistence"> + <stereotype name="entity"/> + <attribute name="name" associationType="composite" visibility="public" type="java.lang.String" minMultiplicity="1" maxMultiplicity="1"/> + <attribute visibility="public" type="org.codelutin.pollen.business.persistence.Poll" reverseAttributeName="" reverseMaxMultiplicity="1" minMultiplicity="0" maxMultiplicity="-1" navigable="true" ordering="unordered"/> + </class> + <class name="ListType" package="org.codelutin.pollen.business.persistence"> + <stereotype name="entity"/> + <attribute name="name" associationType="composite" visibility="public" type="java.lang.String" minMultiplicity="1" maxMultiplicity="1"/> + <attribute visibility="public" type="org.codelutin.pollen.business.persistence.VotingList" reverseAttributeName="" reverseMaxMultiplicity="1" minMultiplicity="0" maxMultiplicity="-1" navigable="true" ordering="unordered"/> + </class> + <class name="PollType" package="org.codelutin.pollen.business.persistence"> + <stereotype name="entity"/> + <attribute name="name" associationType="composite" visibility="public" type="java.lang.String" minMultiplicity="1" maxMultiplicity="1"/> + <attribute visibility="public" type="org.codelutin.pollen.business.persistence.Poll" reverseAttributeName="" reverseMaxMultiplicity="1" minMultiplicity="0" maxMultiplicity="-1" navigable="true" ordering="unordered"/> + </class> + <associationClass name="PersonToList" package="org.codelutin.pollen.business.persistence"> + <stereotype name="entity"/> + <participant name="org.codelutin.pollen.business.persistence.VotingPerson" attribute=""/> + <participant name="org.codelutin.pollen.business.persistence.VotingList" attribute=""/> + <attribute name="weight" associationType="composite" visibility="public" type="int" minMultiplicity="1" maxMultiplicity="1"/> + <attribute name="hasVoted" associationType="composite" visibility="public" type="java.lang.String" minMultiplicity="1" maxMultiplicity="1"/> + </associationClass> + <associationClass name="VoteToChoice" package="org.codelutin.pollen.business.persistence"> + <stereotype name="entity"/> + <participant name="org.codelutin.pollen.business.persistence.Choice" attribute=""/> + <participant name="org.codelutin.pollen.business.persistence.Vote" attribute=""/> + <attribute name="value" associationType="composite" visibility="public" type="int" minMultiplicity="1" maxMultiplicity="1"/> + </associationClass> +</objectModel> Added: eugenehelloworld/trunk/src/main/xmi/pollen.zargo =================================================================== (Binary files differ) Property changes on: eugenehelloworld/trunk/src/main/xmi/pollen.zargo ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: eugenehelloworld/trunk/src/main/xmi/topiatest.objectmodel =================================================================== --- eugenehelloworld/trunk/src/main/xmi/topiatest.objectmodel (rev 0) +++ eugenehelloworld/trunk/src/main/xmi/topiatest.objectmodel 2009-10-28 13:22:16 UTC (rev 286) @@ -0,0 +1,57 @@ +<?xml version="1.0" encoding="UTF-8"?><objectModel xmlns="http://www.codelutin.org/lutingenerator/objectModel" name="TopiaTest" version="1"> + <class name="Personne" package="org.codelutin.topiatest"> + <stereotype name="entity"/> + <attribute name="name" associationType="composite" visibility="public" type="java.lang.String" minMultiplicity="1" maxMultiplicity="1"/> + <attribute visibility="public" type="org.codelutin.topiatest.Address" reverseAttributeName="" reverseMaxMultiplicity="1" minMultiplicity="1" maxMultiplicity="1" navigable="true" ordering="unordered"/> + </class> + <class name="Employe" package="org.codelutin.topiatest"> + <stereotype name="entity"/> + <superclass name="org.codelutin.topiatest.Personne" discriminator=""/> + <attribute name="salary" associationType="composite" visibility="public" type="int" minMultiplicity="1" maxMultiplicity="1"/> + <attribute visibility="public" type="org.codelutin.topiatest.Company" reverseAttributeName="" reverseMaxMultiplicity="-1" minMultiplicity="1" maxMultiplicity="1" navigable="false" ordering="unordered"/> + <attribute name="lead" visibility="public" type="org.codelutin.topiatest.Department" reverseAttributeName="leader" reverseMaxMultiplicity="1" minMultiplicity="0" maxMultiplicity="1" navigable="false" ordering="unordered"/> + </class> + <class name="Company" package="org.codelutin.topiatest"> + <stereotype name="entity"/> + <attribute name="name" associationType="composite" visibility="public" type="java.lang.String" minMultiplicity="1" maxMultiplicity="1"/> + <attribute visibility="public" type="org.codelutin.topiatest.Employe" reverseAttributeName="" reverseMaxMultiplicity="1" minMultiplicity="0" maxMultiplicity="-1" navigable="true" ordering="unordered"/> + <attribute visibility="public" associationClassName="org.codelutin.topiatest.Bill" type="org.codelutin.topiatest.Store" reverseAttributeName="" reverseMaxMultiplicity="-1" minMultiplicity="0" maxMultiplicity="-1" navigable="true" ordering="unordered"/> + <attribute visibility="public" type="org.codelutin.topiatest.Department" reverseAttributeName="" associationType="composite" reverseMaxMultiplicity="1" minMultiplicity="0" maxMultiplicity="-1" navigable="true" ordering="unordered"/> + </class> + <class name="Address" package="org.codelutin.topiatest"> + <stereotype name="entity"/> + <attribute name="city" associationType="composite" visibility="public" type="java.lang.String" minMultiplicity="1" maxMultiplicity="1"/> + <attribute name="adress" associationType="composite" visibility="public" type="java.lang.String" minMultiplicity="1" maxMultiplicity="1"/> + <attribute visibility="public" type="org.codelutin.topiatest.Personne" reverseAttributeName="" reverseMaxMultiplicity="1" minMultiplicity="1" maxMultiplicity="1" navigable="false" ordering="unordered"/> + </class> + <class name="Department" package="org.codelutin.topiatest"> + <stereotype name="entity"/> + <attribute name="name" associationType="composite" visibility="public" type="java.lang.String" minMultiplicity="1" maxMultiplicity="1"/> + <attribute name="leader" visibility="public" type="org.codelutin.topiatest.Employe" reverseAttributeName="lead" reverseMaxMultiplicity="1" minMultiplicity="1" maxMultiplicity="1" navigable="true" ordering="unordered"/> + <attribute visibility="public" type="org.codelutin.topiatest.Company" reverseAttributeName="" reverseMaxMultiplicity="-1" minMultiplicity="1" maxMultiplicity="1" navigable="true" ordering="unordered"/> + <attribute visibility="public" type="org.codelutin.topiatest.Product" reverseAttributeName="" reverseMaxMultiplicity="1" minMultiplicity="0" maxMultiplicity="-1" navigable="true" ordering="unordered"/> + </class> + <class name="Product" package="org.codelutin.topiatest"> + <stereotype name="entity"/> + <attribute name="name" associationType="composite" visibility="public" type="java.lang.String" minMultiplicity="1" maxMultiplicity="1"/> + <attribute visibility="public" type="org.codelutin.topiatest.Department" reverseAttributeName="" reverseMaxMultiplicity="-1" minMultiplicity="1" maxMultiplicity="1" navigable="false" ordering="unordered"/> + <attribute visibility="public" type="org.codelutin.topiatest.Type" reverseAttributeName="" reverseMaxMultiplicity="-1" minMultiplicity="1" maxMultiplicity="1" navigable="true" ordering="unordered"/> + </class> + <class name="Store" package="org.codelutin.topiatest"> + <stereotype name="entity"/> + <attribute name="name" associationType="composite" visibility="public" type="java.lang.String" minMultiplicity="1" maxMultiplicity="1"/> + <attribute visibility="public" associationClassName="org.codelutin.topiatest.Bill" type="org.codelutin.topiatest.Company" reverseAttributeName="" reverseMaxMultiplicity="-1" minMultiplicity="0" maxMultiplicity="-1" navigable="false" ordering="unordered"/> + </class> + <class name="Type" package="org.codelutin.topiatest"> + <stereotype name="entity"/> + <attribute name="name" associationType="composite" visibility="public" type="java.lang.String" minMultiplicity="1" maxMultiplicity="1"/> + <attribute visibility="public" type="org.codelutin.topiatest.Product" reverseAttributeName="" reverseMaxMultiplicity="1" minMultiplicity="0" maxMultiplicity="-1" navigable="false" ordering="unordered"/> + </class> + <associationClass name="Bill" package="org.codelutin.topiatest"> + <stereotype name="entity"/> + <participant name="org.codelutin.topiatest.Company" attribute=""/> + <participant name="org.codelutin.topiatest.Store" attribute=""/> + <attribute name="cost" associationType="composite" visibility="public" type="int" minMultiplicity="1" maxMultiplicity="1"/> + <attribute name="date" associationType="composite" visibility="public" type="java.util.Date" minMultiplicity="1" maxMultiplicity="1"/> + </associationClass> +</objectModel> Added: eugenehelloworld/trunk/src/main/xmi/topiatest.xmi =================================================================== --- eugenehelloworld/trunk/src/main/xmi/topiatest.xmi (rev 0) +++ eugenehelloworld/trunk/src/main/xmi/topiatest.xmi 2009-10-28 13:22:16 UTC (rev 286) @@ -0,0 +1,559 @@ +<?xml version = '1.0' encoding = 'UTF-8' ?> +<XMI xmi.version = '1.2' xmlns:UML = 'org.omg.xmi.namespace.UML' timestamp = 'Thu Jan 29 10:16:29 CET 2009'> + <XMI.header> <XMI.documentation> + <XMI.exporter>ArgoUML (using Netbeans XMI Writer version 1.0)</XMI.exporter> + <XMI.exporterVersion>0.26.2(6) revised on $Date: 2007-05-12 08:08:08 +0200 (Sat, 12 May 2007) $ </XMI.exporterVersion> + </XMI.documentation> + <XMI.metamodel xmi.name="UML" xmi.version="1.4"/></XMI.header> + <XMI.content> + <UML:Model xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:000000000000077B' + name = 'TopiaTest' isSpecification = 'false' isRoot = 'false' isLeaf = 'false' + isAbstract = 'false'> + <UML:ModelElement.taggedValue> + <UML:TaggedValue xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:00000000000008E3' + isSpecification = 'false'> + <UML:TaggedValue.dataValue>1</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 = 'codelutin' 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: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: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 = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D06'> + <UML:Multiplicity.range> + <UML:MultiplicityRange xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D05' + 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 = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D0A'> + <UML:Multiplicity.range> + <UML:MultiplicityRange xmi.id = '127-0-0-1-3f03561c:11667f969c5:-8000:0000000000000D09' + 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:Namespace.ownedElement> + </UML:Package> + </UML:Namespace.ownedElement> + </UML:Package> + </UML:Namespace.ownedElement> + </UML:Package> + </UML:Namespace.ownedElement> + </UML:Model> + </XMI.content> +</XMI>