diff options
author | Eike Stepper | 2007-08-31 09:12:53 -0400 |
---|---|---|
committer | Eike Stepper | 2007-08-31 09:12:53 -0400 |
commit | b74434a54e748752337096bfeff4604edc120507 (patch) | |
tree | d2c6cf279acf1f37e93544e18a5d6c909736d4c2 | |
parent | be097c966f461f5146535c7b546cbd4ee564dd2f (diff) | |
download | cdo-b74434a54e748752337096bfeff4604edc120507.zip cdo-b74434a54e748752337096bfeff4604edc120507.tar.gz cdo-b74434a54e748752337096bfeff4604edc120507.tar.xz |
[201839] Net4j/CDO Components must comform to incubation rules
https://bugs.eclipse.org/bugs/show_bug.cgi?id=201839
54 files changed, 58172 insertions, 170 deletions
diff --git a/plugins/org.eclipse.emf.cdo.tests/.classpath b/plugins/org.eclipse.emf.cdo.tests/.classpath new file mode 100644 index 0000000..9e7e4b0 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.tests/.classpath @@ -0,0 +1,9 @@ +<?xml version="1.0" encoding="UTF-8"?> +<classpath> + <classpathentry kind="src" path="src"/> + <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/> + <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/> + <classpathentry combineaccessrules="false" kind="src" path="/org.eclipse.net4j.db.derby"/> + <classpathentry kind="lib" path="/org.eclipse.net4j.db.derby/lib/derby.jar"/> + <classpathentry kind="output" path="bin"/> +</classpath> diff --git a/plugins/org.eclipse.emf.cdo.tests/.cvsignore b/plugins/org.eclipse.emf.cdo.tests/.cvsignore new file mode 100644 index 0000000..f43b387 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.tests/.cvsignore @@ -0,0 +1,3 @@ +bin +doc +model1X.ecore diff --git a/plugins/org.eclipse.emf.cdo.tests/.project b/plugins/org.eclipse.emf.cdo.tests/.project new file mode 100644 index 0000000..e05af07 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.tests/.project @@ -0,0 +1,28 @@ +<?xml version="1.0" encoding="UTF-8"?> +<projectDescription> + <name>org.eclipse.emf.cdo.tests</name> + <comment></comment> + <projects> + </projects> + <buildSpec> + <buildCommand> + <name>org.eclipse.jdt.core.javabuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.pde.ManifestBuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.pde.SchemaBuilder</name> + <arguments> + </arguments> + </buildCommand> + </buildSpec> + <natures> + <nature>org.eclipse.pde.PluginNature</nature> + <nature>org.eclipse.jdt.core.javanature</nature> + </natures> +</projectDescription> diff --git a/plugins/org.eclipse.emf.cdo.tests/.settings/org.eclipse.jdt.core.prefs b/plugins/org.eclipse.emf.cdo.tests/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 0000000..85dc5b8 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.tests/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,7 @@ +#Sun Jan 07 14:27:04 CET 2007 +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5 +org.eclipse.jdt.core.compiler.compliance=1.5 +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.source=1.5 diff --git a/plugins/org.eclipse.emf.cdo.tests/CDO2 AllTests.launch b/plugins/org.eclipse.emf.cdo.tests/CDO2 AllTests.launch new file mode 100644 index 0000000..d13c4a9 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.tests/CDO2 AllTests.launch @@ -0,0 +1,21 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<launchConfiguration type="org.eclipse.jdt.junit.launchconfig"> +<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS"> +<listEntry value="/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/tdd/AllTests.java"/> +</listAttribute> +<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES"> +<listEntry value="1"/> +</listAttribute> +<booleanAttribute key="org.eclipse.debug.core.appendEnvironmentVariables" value="true"/> +<listAttribute key="org.eclipse.debug.ui.favoriteGroups"> +<listEntry value="org.eclipse.debug.ui.launchGroup.debug"/> +<listEntry value="org.eclipse.debug.ui.launchGroup.run"/> +</listAttribute> +<stringAttribute key="org.eclipse.jdt.junit.CONTAINER" value=""/> +<booleanAttribute key="org.eclipse.jdt.junit.KEEPRUNNING_ATTR" value="false"/> +<stringAttribute key="org.eclipse.jdt.junit.TESTNAME" value=""/> +<stringAttribute key="org.eclipse.jdt.junit.TEST_KIND" value="org.eclipse.jdt.junit.loader.junit3"/> +<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="org.eclipse.emf.cdo.tests.AllTests"/> +<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="org.eclipse.emf.cdo.tests"/> +<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Ddebug=true"/> +</launchConfiguration> diff --git a/plugins/org.eclipse.emf.cdo.tests/CDO2 ContainmentTest.launch b/plugins/org.eclipse.emf.cdo.tests/CDO2 ContainmentTest.launch new file mode 100644 index 0000000..3a7041d --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.tests/CDO2 ContainmentTest.launch @@ -0,0 +1,21 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<launchConfiguration type="org.eclipse.jdt.junit.launchconfig"> +<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS"> +<listEntry value="/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/tdd/ContainmentTest.java"/> +</listAttribute> +<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES"> +<listEntry value="1"/> +</listAttribute> +<booleanAttribute key="org.eclipse.debug.core.appendEnvironmentVariables" value="true"/> +<listAttribute key="org.eclipse.debug.ui.favoriteGroups"> +<listEntry value="org.eclipse.debug.ui.launchGroup.run"/> +<listEntry value="org.eclipse.debug.ui.launchGroup.debug"/> +</listAttribute> +<stringAttribute key="org.eclipse.jdt.junit.CONTAINER" value=""/> +<booleanAttribute key="org.eclipse.jdt.junit.KEEPRUNNING_ATTR" value="false"/> +<stringAttribute key="org.eclipse.jdt.junit.TESTNAME" value=""/> +<stringAttribute key="org.eclipse.jdt.junit.TEST_KIND" value="org.eclipse.jdt.junit.loader.junit3"/> +<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="org.eclipse.emf.cdo.tests.ContainmentTest"/> +<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="org.eclipse.emf.cdo.tests"/> +<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Ddebug=true"/> +</launchConfiguration> diff --git a/plugins/org.eclipse.emf.cdo.tests/CDO2 CrossReferenceTest.launch b/plugins/org.eclipse.emf.cdo.tests/CDO2 CrossReferenceTest.launch new file mode 100644 index 0000000..f3e604c --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.tests/CDO2 CrossReferenceTest.launch @@ -0,0 +1,21 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<launchConfiguration type="org.eclipse.jdt.junit.launchconfig"> +<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS"> +<listEntry value="/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/tdd/CrossReferenceTest.java"/> +</listAttribute> +<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES"> +<listEntry value="1"/> +</listAttribute> +<booleanAttribute key="org.eclipse.debug.core.appendEnvironmentVariables" value="true"/> +<listAttribute key="org.eclipse.debug.ui.favoriteGroups"> +<listEntry value="org.eclipse.debug.ui.launchGroup.debug"/> +<listEntry value="org.eclipse.debug.ui.launchGroup.run"/> +</listAttribute> +<stringAttribute key="org.eclipse.jdt.junit.CONTAINER" value=""/> +<booleanAttribute key="org.eclipse.jdt.junit.KEEPRUNNING_ATTR" value="false"/> +<stringAttribute key="org.eclipse.jdt.junit.TESTNAME" value=""/> +<stringAttribute key="org.eclipse.jdt.junit.TEST_KIND" value="org.eclipse.jdt.junit.loader.junit3"/> +<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="org.eclipse.emf.cdo.tests.CrossReferenceTest"/> +<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="org.eclipse.emf.cdo.tests"/> +<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Ddebug=true"/> +</launchConfiguration> diff --git a/plugins/org.eclipse.emf.cdo.tests/CDO2 InitialTest.launch b/plugins/org.eclipse.emf.cdo.tests/CDO2 InitialTest.launch new file mode 100644 index 0000000..a431a65 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.tests/CDO2 InitialTest.launch @@ -0,0 +1,21 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<launchConfiguration type="org.eclipse.jdt.junit.launchconfig"> +<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS"> +<listEntry value="/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/tdd/InitialTest.java"/> +</listAttribute> +<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES"> +<listEntry value="1"/> +</listAttribute> +<booleanAttribute key="org.eclipse.debug.core.appendEnvironmentVariables" value="true"/> +<listAttribute key="org.eclipse.debug.ui.favoriteGroups"> +<listEntry value="org.eclipse.debug.ui.launchGroup.debug"/> +<listEntry value="org.eclipse.debug.ui.launchGroup.run"/> +</listAttribute> +<stringAttribute key="org.eclipse.jdt.junit.CONTAINER" value=""/> +<booleanAttribute key="org.eclipse.jdt.junit.KEEPRUNNING_ATTR" value="false"/> +<stringAttribute key="org.eclipse.jdt.junit.TESTNAME" value=""/> +<stringAttribute key="org.eclipse.jdt.junit.TEST_KIND" value="org.eclipse.jdt.junit.loader.junit3"/> +<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="org.eclipse.emf.cdo.tests.InitialTest"/> +<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="org.eclipse.emf.cdo.tests"/> +<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Ddebug=true"/> +</launchConfiguration> diff --git a/plugins/org.eclipse.emf.cdo.tests/CDO2 InvalidationTest.launch b/plugins/org.eclipse.emf.cdo.tests/CDO2 InvalidationTest.launch new file mode 100644 index 0000000..5f6f90f --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.tests/CDO2 InvalidationTest.launch @@ -0,0 +1,21 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<launchConfiguration type="org.eclipse.jdt.junit.launchconfig"> +<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS"> +<listEntry value="/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/tdd/InvalidationTest.java"/> +</listAttribute> +<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES"> +<listEntry value="1"/> +</listAttribute> +<booleanAttribute key="org.eclipse.debug.core.appendEnvironmentVariables" value="true"/> +<listAttribute key="org.eclipse.debug.ui.favoriteGroups"> +<listEntry value="org.eclipse.debug.ui.launchGroup.debug"/> +<listEntry value="org.eclipse.debug.ui.launchGroup.run"/> +</listAttribute> +<stringAttribute key="org.eclipse.jdt.junit.CONTAINER" value=""/> +<booleanAttribute key="org.eclipse.jdt.junit.KEEPRUNNING_ATTR" value="false"/> +<stringAttribute key="org.eclipse.jdt.junit.TESTNAME" value=""/> +<stringAttribute key="org.eclipse.jdt.junit.TEST_KIND" value="org.eclipse.jdt.junit.loader.junit3"/> +<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="org.eclipse.emf.cdo.tests.InvalidationTest"/> +<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="org.eclipse.emf.cdo.tests"/> +<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Ddebug=true"/> +</launchConfiguration> diff --git a/plugins/org.eclipse.emf.cdo.tests/CDO2 TDD.launch b/plugins/org.eclipse.emf.cdo.tests/CDO2 TDD.launch new file mode 100644 index 0000000..45c7601 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.tests/CDO2 TDD.launch @@ -0,0 +1,19 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<launchConfiguration type="org.eclipse.jdt.launching.localJavaApplication"> +<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS"> +<listEntry value="/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/tdd/TDD.java"/> +</listAttribute> +<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES"> +<listEntry value="1"/> +</listAttribute> +<booleanAttribute key="org.eclipse.debug.core.appendEnvironmentVariables" value="true"/> +<stringAttribute key="org.eclipse.debug.core.source_locator_id" value="org.eclipse.jdt.launching.sourceLocator.JavaSourceLookupDirector"/> +<stringAttribute key="org.eclipse.debug.core.source_locator_memento" value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <sourceLookupDirector> <sourceContainers duplicates="false"> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;folder nest=&quot;false&quot; path=&quot;/org.eclipse.emf.cdo.weaver.ajdt/ecore&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.folder"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;default/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.default"/> </sourceContainers> </sourceLookupDirector> "/> +<listAttribute key="org.eclipse.debug.ui.favoriteGroups"> +<listEntry value="org.eclipse.debug.ui.launchGroup.debug"/> +<listEntry value="org.eclipse.debug.ui.launchGroup.run"/> +</listAttribute> +<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="org.eclipse.emf.cdo.tests.TDD"/> +<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="org.eclipse.emf.cdo.tests"/> +<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Ddebug=true"/> +</launchConfiguration> diff --git a/plugins/org.eclipse.emf.cdo.tests/META-INF/MANIFEST.MF b/plugins/org.eclipse.emf.cdo.tests/META-INF/MANIFEST.MF new file mode 100644 index 0000000..a163542 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.tests/META-INF/MANIFEST.MF @@ -0,0 +1,17 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: %pluginName +Bundle-SymbolicName: org.eclipse.emf.cdo.tests +Bundle-Version: 0.8.0.qualifier +Bundle-Activator: org.eclipse.emf.cdo.tests.Activator +Bundle-Vendor: %providerName +Require-Bundle: org.eclipse.core.runtime, + org.eclipse.net4j.tests, + org.eclipse.net4j.tcp, + org.eclipse.emf.cdo.server, + org.eclipse.emf.cdo.server.db, + org.eclipse.emf.cdo, + org.eclipse.emf.cdo.tests.model1, + org.eclipse.emf.ecore.xmi +Eclipse-LazyStart: true +Bundle-RequiredExecutionEnvironment: J2SE-1.5 diff --git a/plugins/org.eclipse.emf.cdo.tests/META-INF/net4j/embedded/net4j-embedded.properties b/plugins/org.eclipse.emf.cdo.tests/META-INF/net4j/embedded/net4j-embedded.properties deleted file mode 100644 index c79f2c2..0000000 --- a/plugins/org.eclipse.emf.cdo.tests/META-INF/net4j/embedded/net4j-embedded.properties +++ /dev/null @@ -1,6 +0,0 @@ -# Service -acceptor.listenAddr=0.0.0.0 -acceptor.listenPort=2037 - -# Internal -connectionManager.maxConnections=50 diff --git a/plugins/org.eclipse.emf.cdo.tests/META-INF/net4j/embedded/net4j-embedded.xml b/plugins/org.eclipse.emf.cdo.tests/META-INF/net4j/embedded/net4j-embedded.xml deleted file mode 100644 index a5751d1..0000000 --- a/plugins/org.eclipse.emf.cdo.tests/META-INF/net4j/embedded/net4j-embedded.xml +++ /dev/null @@ -1,64 +0,0 @@ -<?xml version="1.0" encoding="ISO-8859-1"?> -<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" - "http://www.springframework.org/dtd/spring-beans.dtd"> -<beans> - - <!-- ######################################################## --> - <bean id="propertyConfigurer" - class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> - <property name="locations"> - <list> - <value> plugin:/META-INF/net4j/embedded/net4j-embedded.properties </value> - </list> - </property> - </bean> - - <!-- ######################################################## --> - <bean id="serverControlProtocol" - class="org.eclipse.net4j.core.protocol.ServerControlProtocol"> - <property name="protocolManager"> - <ref bean="protocolManager"/> - </property> - </bean> - - <!-- ######################################################## --> - <bean id="clientControlProtocol" - class="org.eclipse.net4j.core.protocol.ClientControlProtocol"> - <property name="protocolManager"> - <ref bean="protocolManager"/> - </property> - </bean> - - <!-- ######################################################## --> - <bean id="connectionManager" - class="org.eclipse.net4j.core.impl.ConnectionManagerImpl"> - <property name="maxConnections"> - <value>${connectionManager.maxConnections}</value> - </property> - </bean> - - <!-- ######################################################## --> - <bean id="connector" class="org.eclipse.net4j.embedded.impl.ActiveEmbeddedConnectorImpl"> - <property name="bufferPool"> - <ref bean="bufferPool"/> - </property> - <property name="protocolManager"> - <ref bean="protocolManager"/> - </property> - </bean> - - <!-- ######################################################## --> - <bean id="slave" singleton="false" - class="org.eclipse.net4j.embedded.impl.PassiveEmbeddedConnectorImpl"> - <property name="bufferPool"> - <ref bean="bufferPool"/> - </property> - <property name="connectionManager"> - <ref local="connectionManager"/> - </property> - <property name="protocolManager"> - <ref bean="protocolManager"/> - </property> - </bean> - -</beans> diff --git a/plugins/org.eclipse.emf.cdo.tests/META-INF/net4j/net4j.properties b/plugins/org.eclipse.emf.cdo.tests/META-INF/net4j/net4j.properties deleted file mode 100644 index 451c043..0000000 --- a/plugins/org.eclipse.emf.cdo.tests/META-INF/net4j/net4j.properties +++ /dev/null @@ -1,4 +0,0 @@ -# Internal -randomizer.algorithm=SHA1PRNG -bufferPool.bufferSize=4096 -channel.responseTimeoutMillis=2000 diff --git a/plugins/org.eclipse.emf.cdo.tests/META-INF/net4j/net4j.xml b/plugins/org.eclipse.emf.cdo.tests/META-INF/net4j/net4j.xml deleted file mode 100644 index c0ce91c..0000000 --- a/plugins/org.eclipse.emf.cdo.tests/META-INF/net4j/net4j.xml +++ /dev/null @@ -1,56 +0,0 @@ -<?xml version="1.0" encoding="ISO-8859-1"?> -<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" - "http://www.springframework.org/dtd/spring-beans.dtd"> -<beans> - - <!-- ######################################################## --> - <bean id="propertyConfigurer" - class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> - <property name="locations"> - <list> - <value> plugin:/META-INF/net4j/net4j.properties </value> - </list> - </property> - </bean> - - <!-- ######################################################## --> - <bean id="randomizer" class="org.eclipse.net4j.core.impl.RandomizerImpl"> - <property name="algorithmName"> - <value>${randomizer.algorithm}</value> - </property> - </bean> - - <!-- ######################################################## --> - <bean id="bufferPool" class="org.eclipse.net4j.core.impl.BufferPoolImpl"> - <property name="bufferSize"> - <value>${bufferPool.bufferSize}</value> - </property> - </bean> - - <!-- ######################################################## --> - <bean id="protocolManager" - class="org.eclipse.net4j.core.impl.ProtocolManagerImpl"/> - - <!-- ######################################################## --> - <bean id="multiplexer" class="org.eclipse.net4j.core.impl.MultiplexerImpl"/> - - <!-- ######################################################## --> - <bean id="channel" singleton="false" - class="org.eclipse.net4j.core.impl.ChannelImpl"> - <property name="multiplexer"> - <ref local="multiplexer"/> - </property> - <property name="responseTimeoutMillis"> - <value>${channel.responseTimeoutMillis}</value> - </property> - </bean> - - <!-- ######################################################## --> - <bean id="selectorManager" - class="org.eclipse.net4j.socket.impl.SelectorManagerImpl"/> - - <!-- ######################################################## --> - <bean id="releaseExecutor" - class="org.eclipse.net4j.core.impl.QueueingExecutorImpl"/> - -</beans> diff --git a/plugins/org.eclipse.emf.cdo.tests/My.ecore b/plugins/org.eclipse.emf.cdo.tests/My.ecore new file mode 100644 index 0000000..e9428b9 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.tests/My.ecore @@ -0,0 +1,3 @@ +<?xml version="1.0" encoding="UTF-8"?> +<ecore:EPackage xmi:version="2.0" + xmlns:xmi="http://www.omg.org/XMI" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore"/> diff --git a/plugins/org.eclipse.emf.cdo.tests/about.html b/plugins/org.eclipse.emf.cdo.tests/about.html new file mode 100644 index 0000000..81a265f --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.tests/about.html @@ -0,0 +1,42 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<html> + + <head> + + <meta content="text/html; charset=ISO-8859-1" + http-equiv="Content-Type"/> + + <title>About</title> + + </head> + + <body lang="EN-US"> + + <h2>About This Content</h2> + + <p>May 17, 2007</p> + + <h3>License</h3> + + <p>The Eclipse Foundation makes available all content in this + plug-in ("Content"). Unless otherwise indicated below, + the Content is provided to you under the terms and conditions of + the Eclipse Public License Version 1.0 ("EPL"). A copy of + the EPL is available at + <a href="http://www.eclipse.org/legal/epl-v10.html"> + http://www.eclipse.org/legal/epl-v10.html</a>. For purposes of the + EPL, "Program" will mean the Content.</p> + + <p>If you did not receive this Content directly from the Eclipse + Foundation, the Content is being redistributed by another party + ("Redistributor") and different terms and conditions may + apply to your use of any object code in the Content. Check the + Redistributor's license that was provided with the Content. If + no such license exists, contact the Redistributor. Unless otherwise + indicated below, the terms and conditions of the EPL still apply to + any source code in the Content.</p> + + </body> + +</html> + diff --git a/plugins/org.eclipse.emf.cdo.tests/build.properties b/plugins/org.eclipse.emf.cdo.tests/build.properties new file mode 100644 index 0000000..42d4758 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.tests/build.properties @@ -0,0 +1,9 @@ +source.. = src/ +output.. = bin/ +bin.includes = META-INF/,\ + .,\ + about.html,\ + copyright.txt,\ + epl-v10.html,\ + license.html,\ + plugin.properties diff --git a/plugins/org.eclipse.emf.cdo.tests/copyright.txt b/plugins/org.eclipse.emf.cdo.tests/copyright.txt new file mode 100644 index 0000000..025f152 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.tests/copyright.txt @@ -0,0 +1,8 @@ +Copyright (c) 2004 - 2007 Eike Stepper, Germany. +All rights reserved. This program and the accompanying materials +are made available under the terms of the Eclipse Public License v1.0 +which accompanies this distribution, and is available at +http://www.eclipse.org/legal/epl-v10.html + +Contributors: + Eike Stepper - initial API and implementation
\ No newline at end of file diff --git a/plugins/org.eclipse.emf.cdo.tests/ecore/Ecore.ecore b/plugins/org.eclipse.emf.cdo.tests/ecore/Ecore.ecore new file mode 100644 index 0000000..7e266df --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.tests/ecore/Ecore.ecore @@ -0,0 +1,498 @@ +<?xml version="1.0" encoding="UTF-8"?> +<ecore:EPackage xmi:version="2.0" + xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="ecore" + nsURI="http://www.eclipse.org/emf/2002/Ecore" nsPrefix="ecore"> + <eClassifiers xsi:type="ecore:EClass" name="EAttribute" eSuperTypes="#//EStructuralFeature"> + <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore"> + <details key="constraints" value="ConsistentTransient"/> + </eAnnotations> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="iD" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="eAttributeType" lowerBound="1" + eType="#//EDataType" changeable="false" volatile="true" transient="true" derived="true"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="EAnnotation" eSuperTypes="#//EModelElement"> + <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore"> + <details key="constraints" value="WellFormedSourceURI"/> + </eAnnotations> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="source" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="details" upperBound="-1" + eType="#//EStringToStringMapEntry" containment="true" resolveProxies="false"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="eModelElement" eType="#//EModelElement" + transient="true" resolveProxies="false" eOpposite="#//EModelElement/eAnnotations"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="contents" upperBound="-1" + eType="#//EObject" containment="true" resolveProxies="false"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="references" upperBound="-1" + eType="#//EObject"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="EClass" eSuperTypes="#//EClassifier"> + <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore"> + <details key="constraints" value="InterfaceIsAbstract AtMostOneID UniqueFeatureNames UniqueOperationSignatures NoCircularSuperTypes WellFormedMapEntryClass ConsistentSuperTypes"/> + </eAnnotations> + <eOperations name="isSuperTypeOf" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"> + <eParameters name="someClass" eType="#//EClass"/> + </eOperations> + <eOperations name="getFeatureCount" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/> + <eOperations name="getEStructuralFeature" eType="#//EStructuralFeature"> + <eParameters name="featureID" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/> + </eOperations> + <eOperations name="getFeatureID" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"> + <eParameters name="feature" eType="#//EStructuralFeature"/> + </eOperations> + <eOperations name="getEStructuralFeature" eType="#//EStructuralFeature"> + <eParameters name="featureName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> + </eOperations> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="abstract" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="interface" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="eSuperTypes" upperBound="-1" + eType="#//EClass" unsettable="true"> + <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> + <details key="suppressedIsSetVisibility" value="true"/> + <details key="suppressedUnsetVisibility" value="true"/> + </eAnnotations> + </eStructuralFeatures> + <eStructuralFeatures xsi:type="ecore:EReference" name="eOperations" upperBound="-1" + eType="#//EOperation" containment="true" resolveProxies="false" eOpposite="#//EOperation/eContainingClass"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="eAllAttributes" upperBound="-1" + eType="#//EAttribute" changeable="false" volatile="true" transient="true" + derived="true"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="eAllReferences" upperBound="-1" + eType="#//EReference" changeable="false" volatile="true" transient="true" + derived="true"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="eReferences" upperBound="-1" + eType="#//EReference" changeable="false" volatile="true" transient="true" + derived="true"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="eAttributes" upperBound="-1" + eType="#//EAttribute" changeable="false" volatile="true" transient="true" + derived="true"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="eAllContainments" upperBound="-1" + eType="#//EReference" changeable="false" volatile="true" transient="true" + derived="true"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="eAllOperations" upperBound="-1" + eType="#//EOperation" changeable="false" volatile="true" transient="true" + derived="true"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="eAllStructuralFeatures" + upperBound="-1" eType="#//EStructuralFeature" changeable="false" volatile="true" + transient="true" derived="true"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="eAllSuperTypes" upperBound="-1" + eType="#//EClass" changeable="false" volatile="true" transient="true" derived="true"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="eIDAttribute" eType="#//EAttribute" + changeable="false" volatile="true" transient="true" derived="true" resolveProxies="false"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="eStructuralFeatures" upperBound="-1" + eType="#//EStructuralFeature" containment="true" resolveProxies="false" eOpposite="#//EStructuralFeature/eContainingClass"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="eGenericSuperTypes" upperBound="-1" + eType="#//EGenericType" unsettable="true" containment="true" resolveProxies="false"> + <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> + <details key="suppressedIsSetVisibility" value="true"/> + <details key="suppressedUnsetVisibility" value="true"/> + </eAnnotations> + </eStructuralFeatures> + <eStructuralFeatures xsi:type="ecore:EReference" name="eAllGenericSuperTypes" + upperBound="-1" eType="#//EGenericType" changeable="false" volatile="true" + transient="true" derived="true"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="EClassifier" abstract="true" eSuperTypes="#//ENamedElement"> + <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore"> + <details key="constraints" value="WellFormedInstanceTypeName UniqueTypeParameterNames"/> + </eAnnotations> + <eOperations name="isInstance" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"> + <eParameters name="object" eType="#//EJavaObject"/> + </eOperations> + <eOperations name="getClassifierID" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="instanceClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString" + volatile="true" unsettable="true"> + <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> + <details key="suppressedIsSetVisibility" value="true"/> + <details key="suppressedUnsetVisibility" value="true"/> + </eAnnotations> + </eStructuralFeatures> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="instanceClass" changeable="false" + volatile="true" transient="true" derived="true"> + <eGenericType eClassifier="#//EJavaClass"> + <eTypeArguments/> + </eGenericType> + </eStructuralFeatures> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="defaultValue" eType="#//EJavaObject" + changeable="false" volatile="true" transient="true" derived="true"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="instanceTypeName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString" + volatile="true" unsettable="true"> + <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> + <details key="suppressedIsSetVisibility" value="true"/> + <details key="suppressedUnsetVisibility" value="true"/> + </eAnnotations> + </eStructuralFeatures> + <eStructuralFeatures xsi:type="ecore:EReference" name="ePackage" eType="#//EPackage" + changeable="false" transient="true" eOpposite="#//EPackage/eClassifiers"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="eTypeParameters" upperBound="-1" + eType="#//ETypeParameter" containment="true"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="EDataType" eSuperTypes="#//EClassifier"> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="serializable" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean" + defaultValueLiteral="true"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="EEnum" eSuperTypes="#//EDataType"> + <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore"> + <details key="constraints" value="UniqueEnumeratorNames UniqueEnumeratorLiterals"/> + </eAnnotations> + <eOperations name="getEEnumLiteral" eType="#//EEnumLiteral"> + <eParameters name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> + </eOperations> + <eOperations name="getEEnumLiteral" eType="#//EEnumLiteral"> + <eParameters name="value" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/> + </eOperations> + <eOperations name="getEEnumLiteralByLiteral" eType="#//EEnumLiteral"> + <eParameters name="literal" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> + </eOperations> + <eStructuralFeatures xsi:type="ecore:EReference" name="eLiterals" upperBound="-1" + eType="#//EEnumLiteral" containment="true" resolveProxies="false" eOpposite="#//EEnumLiteral/eEnum"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="EEnumLiteral" eSuperTypes="#//ENamedElement"> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="instance" eType="#//EEnumerator" + transient="true"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="literal" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="eEnum" eType="#//EEnum" + changeable="false" transient="true" resolveProxies="false" eOpposite="#//EEnum/eLiterals"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="EFactory" eSuperTypes="#//EModelElement"> + <eOperations name="create" eType="#//EObject"> + <eParameters name="eClass" eType="#//EClass"/> + </eOperations> + <eOperations name="createFromString" eType="#//EJavaObject"> + <eParameters name="eDataType" eType="#//EDataType"/> + <eParameters name="literalValue" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> + </eOperations> + <eOperations name="convertToString" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"> + <eParameters name="eDataType" eType="#//EDataType"/> + <eParameters name="instanceValue" eType="#//EJavaObject"/> + </eOperations> + <eStructuralFeatures xsi:type="ecore:EReference" name="ePackage" lowerBound="1" + eType="#//EPackage" transient="true" resolveProxies="false" eOpposite="#//EPackage/eFactoryInstance"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="EModelElement" abstract="true" eSuperTypes="#//EObject"> + <eOperations name="getEAnnotation" eType="#//EAnnotation"> + <eParameters name="source" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> + </eOperations> + <eStructuralFeatures xsi:type="ecore:EReference" name="eAnnotations" upperBound="-1" + eType="#//EAnnotation" containment="true" resolveProxies="false" eOpposite="#//EAnnotation/eModelElement"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="ENamedElement" abstract="true" eSuperTypes="#//EModelElement"> + <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore"> + <details key="constraints" value="WellFormedName"/> + </eAnnotations> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="EObject"> + <eOperations name="eClass" eType="#//EClass"/> + <eOperations name="eIsProxy" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/> + <eOperations name="eResource" eType="#//EResource"/> + <eOperations name="eContainer" eType="#//EObject"/> + <eOperations name="eContainingFeature" eType="#//EStructuralFeature"/> + <eOperations name="eContainmentFeature" eType="#//EReference"/> + <eOperations name="eContents"> + <eGenericType eClassifier="#//EEList"> + <eTypeArguments eClassifier="#//EObject"/> + </eGenericType> + </eOperations> + <eOperations name="eAllContents"> + <eGenericType eClassifier="#//ETreeIterator"> + <eTypeArguments eClassifier="#//EObject"/> + </eGenericType> + </eOperations> + <eOperations name="eCrossReferences"> + <eGenericType eClassifier="#//EEList"> + <eTypeArguments eClassifier="#//EObject"/> + </eGenericType> + </eOperations> + <eOperations name="eGet" eType="#//EJavaObject"> + <eParameters name="feature" eType="#//EStructuralFeature"/> + </eOperations> + <eOperations name="eGet" eType="#//EJavaObject"> + <eParameters name="feature" eType="#//EStructuralFeature"/> + <eParameters name="resolve" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/> + </eOperations> + <eOperations name="eSet"> + <eParameters name="feature" eType="#//EStructuralFeature"/> + <eParameters name="newValue" eType="#//EJavaObject"/> + </eOperations> + <eOperations name="eIsSet" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"> + <eParameters name="feature" eType="#//EStructuralFeature"/> + </eOperations> + <eOperations name="eUnset"> + <eParameters name="feature" eType="#//EStructuralFeature"/> + </eOperations> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="EOperation" eSuperTypes="#//ETypedElement"> + <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore"> + <details key="constraints" value="UniqueParameterNames UniqueTypeParameterNames NoRepeatingVoid"/> + </eAnnotations> + <eStructuralFeatures xsi:type="ecore:EReference" name="eContainingClass" eType="#//EClass" + changeable="false" transient="true" resolveProxies="false" eOpposite="#//EClass/eOperations"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="eTypeParameters" upperBound="-1" + eType="#//ETypeParameter" containment="true"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="eParameters" upperBound="-1" + eType="#//EParameter" containment="true" resolveProxies="false" eOpposite="#//EParameter/eOperation"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="eExceptions" upperBound="-1" + eType="#//EClassifier" unsettable="true"> + <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> + <details key="suppressedIsSetVisibility" value="true"/> + <details key="suppressedUnsetVisibility" value="true"/> + </eAnnotations> + </eStructuralFeatures> + <eStructuralFeatures xsi:type="ecore:EReference" name="eGenericExceptions" upperBound="-1" + eType="#//EGenericType" unsettable="true" containment="true" resolveProxies="false"> + <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> + <details key="suppressedIsSetVisibility" value="true"/> + <details key="suppressedUnsetVisibility" value="true"/> + </eAnnotations> + </eStructuralFeatures> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="EPackage" eSuperTypes="#//ENamedElement"> + <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore"> + <details key="constraints" value="WellFormedNsURI WellFormedNsPrefix UniqueSubpackageNames UniqueClassifierNames UniqueNsURIs"/> + </eAnnotations> + <eOperations name="getEClassifier" eType="#//EClassifier"> + <eParameters name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> + </eOperations> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="nsURI" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="nsPrefix" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="eFactoryInstance" lowerBound="1" + eType="#//EFactory" transient="true" resolveProxies="false" eOpposite="#//EFactory/ePackage"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="eClassifiers" upperBound="-1" + eType="#//EClassifier" containment="true" eOpposite="#//EClassifier/ePackage"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="eSubpackages" upperBound="-1" + eType="#//EPackage" containment="true" eOpposite="#//EPackage/eSuperPackage"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="eSuperPackage" eType="#//EPackage" + changeable="false" transient="true" eOpposite="#//EPackage/eSubpackages"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="EParameter" eSuperTypes="#//ETypedElement"> + <eStructuralFeatures xsi:type="ecore:EReference" name="eOperation" eType="#//EOperation" + changeable="false" transient="true" resolveProxies="false" eOpposite="#//EOperation/eParameters"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="EReference" eSuperTypes="#//EStructuralFeature"> + <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore"> + <details key="constraints" value="ConsistentOpposite SingleContainer ConsistentKeys"/> + </eAnnotations> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="containment" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="container" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean" + changeable="false" volatile="true" transient="true" derived="true"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="resolveProxies" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean" + defaultValueLiteral="true"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="eOpposite" eType="#//EReference"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="eReferenceType" lowerBound="1" + eType="#//EClass" changeable="false" volatile="true" transient="true" derived="true"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="eKeys" upperBound="-1" + eType="#//EAttribute"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="EStructuralFeature" abstract="true" + eSuperTypes="#//ETypedElement"> + <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore"> + <details key="constraints" value="ValidDefaultValueLiteral"/> + </eAnnotations> + <eOperations name="getFeatureID" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/> + <eOperations name="getContainerClass"> + <eGenericType eClassifier="#//EJavaClass"> + <eTypeArguments/> + </eGenericType> + </eOperations> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="changeable" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean" + defaultValueLiteral="true"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="volatile" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="transient" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="defaultValueLiteral" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="defaultValue" eType="#//EJavaObject" + changeable="false" volatile="true" transient="true" derived="true"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="unsettable" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="derived" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="eContainingClass" eType="#//EClass" + changeable="false" transient="true" resolveProxies="false" eOpposite="#//EClass/eStructuralFeatures"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="ETypedElement" abstract="true" eSuperTypes="#//ENamedElement"> + <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore"> + <details key="constraints" value="ValidLowerBound ValidUpperBound ConsistentBounds ValidType"/> + </eAnnotations> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="ordered" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean" + defaultValueLiteral="true"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="unique" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean" + defaultValueLiteral="true"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="lowerBound" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="upperBound" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt" + defaultValueLiteral="1"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="many" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean" + changeable="false" volatile="true" transient="true" derived="true"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="required" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean" + changeable="false" volatile="true" transient="true" derived="true"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="eType" eType="#//EClassifier" + volatile="true" unsettable="true"> + <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> + <details key="suppressedIsSetVisibility" value="true"/> + <details key="suppressedUnsetVisibility" value="true"/> + </eAnnotations> + </eStructuralFeatures> + <eStructuralFeatures xsi:type="ecore:EReference" name="eGenericType" eType="#//EGenericType" + volatile="true" unsettable="true" containment="true" resolveProxies="false"> + <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> + <details key="suppressedIsSetVisibility" value="true"/> + <details key="suppressedUnsetVisibility" value="true"/> + </eAnnotations> + </eStructuralFeatures> + </eClassifiers> + <eClassifiers xsi:type="ecore:EDataType" name="EBigDecimal" instanceClassName="java.math.BigDecimal"> + <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> + <details key="baseType" value="http://www.w3.org/2001/XMLSchema#decimal"/> + </eAnnotations> + </eClassifiers> + <eClassifiers xsi:type="ecore:EDataType" name="EBigInteger" instanceClassName="java.math.BigInteger"> + <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> + <details key="baseType" value="http://www.w3.org/2001/XMLSchema#integer"/> + </eAnnotations> + </eClassifiers> + <eClassifiers xsi:type="ecore:EDataType" name="EBoolean" instanceClassName="boolean"> + <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> + <details key="baseType" value="http://www.w3.org/2001/XMLSchema#boolean"/> + </eAnnotations> + </eClassifiers> + <eClassifiers xsi:type="ecore:EDataType" name="EBooleanObject" instanceClassName="java.lang.Boolean"> + <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> + <details key="baseType" value="EBoolean"/> + <details key="name" value="EBoolean:Object"/> + </eAnnotations> + </eClassifiers> + <eClassifiers xsi:type="ecore:EDataType" name="EByte" instanceClassName="byte"> + <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> + <details key="baseType" value="http://www.w3.org/2001/XMLSchema#byte"/> + </eAnnotations> + </eClassifiers> + <eClassifiers xsi:type="ecore:EDataType" name="EByteArray" instanceClassName="byte[]"> + <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> + <details key="baseType" value="http://www.w3.org/2001/XMLSchema#hexBinary"/> + </eAnnotations> + </eClassifiers> + <eClassifiers xsi:type="ecore:EDataType" name="EByteObject" instanceClassName="java.lang.Byte"> + <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> + <details key="baseType" value="EByte"/> + <details key="name" value="EByte:Object"/> + </eAnnotations> + </eClassifiers> + <eClassifiers xsi:type="ecore:EDataType" name="EChar" instanceClassName="char"/> + <eClassifiers xsi:type="ecore:EDataType" name="ECharacterObject" instanceClassName="java.lang.Character"> + <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> + <details key="baseType" value="EChar"/> + <details key="name" value="EChar:Object"/> + </eAnnotations> + </eClassifiers> + <eClassifiers xsi:type="ecore:EDataType" name="EDate" instanceClassName="java.util.Date"/> + <eClassifiers xsi:type="ecore:EDataType" name="EDiagnosticChain" instanceClassName="org.eclipse.emf.common.util.DiagnosticChain" + serializable="false"/> + <eClassifiers xsi:type="ecore:EDataType" name="EDouble" instanceClassName="double"> + <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> + <details key="baseType" value="http://www.w3.org/2001/XMLSchema#double"/> + </eAnnotations> + </eClassifiers> + <eClassifiers xsi:type="ecore:EDataType" name="EDoubleObject" instanceClassName="java.lang.Double"> + <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> + <details key="baseType" value="EDouble"/> + <details key="name" value="EDouble:Object"/> + </eAnnotations> + </eClassifiers> + <eClassifiers xsi:type="ecore:EDataType" name="EEList" instanceClassName="org.eclipse.emf.common.util.EList" + serializable="false"> + <eTypeParameters name="E"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EDataType" name="EEnumerator" instanceClassName="org.eclipse.emf.common.util.Enumerator" + serializable="false"/> + <eClassifiers xsi:type="ecore:EDataType" name="EFeatureMap" instanceClassName="org.eclipse.emf.ecore.util.FeatureMap" + serializable="false"/> + <eClassifiers xsi:type="ecore:EDataType" name="EFeatureMapEntry" instanceClassName="org.eclipse.emf.ecore.util.FeatureMap$Entry" + serializable="false"/> + <eClassifiers xsi:type="ecore:EDataType" name="EFloat" instanceClassName="float"> + <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> + <details key="baseType" value="http://www.w3.org/2001/XMLSchema#float"/> + </eAnnotations> + </eClassifiers> + <eClassifiers xsi:type="ecore:EDataType" name="EFloatObject" instanceClassName="java.lang.Float"> + <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> + <details key="baseType" value="EFloat"/> + <details key="name" value="EFloat:Object"/> + </eAnnotations> + </eClassifiers> + <eClassifiers xsi:type="ecore:EDataType" name="EInt" instanceClassName="int"> + <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> + <details key="baseType" value="http://www.w3.org/2001/XMLSchema#int"/> + </eAnnotations> + </eClassifiers> + <eClassifiers xsi:type="ecore:EDataType" name="EIntegerObject" instanceClassName="java.lang.Integer"> + <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> + <details key="baseType" value="EInt"/> + <details key="name" value="EInt:Object"/> + </eAnnotations> + </eClassifiers> + <eClassifiers xsi:type="ecore:EDataType" name="EJavaClass" instanceClassName="java.lang.Class"> + <eTypeParameters name="T"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EDataType" name="EJavaObject" instanceClassName="java.lang.Object"/> + <eClassifiers xsi:type="ecore:EDataType" name="ELong" instanceClassName="long"> + <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> + <details key="baseType" value="http://www.w3.org/2001/XMLSchema#long"/> + </eAnnotations> + </eClassifiers> + <eClassifiers xsi:type="ecore:EDataType" name="ELongObject" instanceClassName="java.lang.Long"> + <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> + <details key="baseType" value="ELong"/> + <details key="name" value="ELong:Object"/> + </eAnnotations> + </eClassifiers> + <eClassifiers xsi:type="ecore:EDataType" name="EMap" instanceClassName="java.util.Map" + serializable="false"> + <eTypeParameters name="K"/> + <eTypeParameters name="V"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EDataType" name="EResource" instanceClassName="org.eclipse.emf.ecore.resource.Resource" + serializable="false"/> + <eClassifiers xsi:type="ecore:EDataType" name="EResourceSet" instanceClassName="org.eclipse.emf.ecore.resource.ResourceSet" + serializable="false"/> + <eClassifiers xsi:type="ecore:EDataType" name="EShort" instanceClassName="short"> + <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> + <details key="baseType" value="http://www.w3.org/2001/XMLSchema#short"/> + </eAnnotations> + </eClassifiers> + <eClassifiers xsi:type="ecore:EDataType" name="EShortObject" instanceClassName="java.lang.Short"> + <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> + <details key="baseType" value="EShort"/> + <details key="name" value="EShort:Object"/> + </eAnnotations> + </eClassifiers> + <eClassifiers xsi:type="ecore:EDataType" name="EString" instanceClassName="java.lang.String"> + <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> + <details key="baseType" value="http://www.w3.org/2001/XMLSchema#string"/> + </eAnnotations> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="EStringToStringMapEntry" instanceClassName="java.util.Map$Entry"> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="key" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EDataType" name="ETreeIterator" instanceClassName="org.eclipse.emf.common.util.TreeIterator" + serializable="false"> + <eTypeParameters name="E"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="EGenericType" eSuperTypes="#//EObject"> + <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore"> + <details key="constraints" value="ConsistentType ConsistentBounds ConsistentArguments"/> + </eAnnotations> + <eStructuralFeatures xsi:type="ecore:EReference" name="eUpperBound" eType="#//EGenericType" + containment="true" resolveProxies="false"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="eTypeArguments" upperBound="-1" + eType="#//EGenericType" containment="true" resolveProxies="false"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="eRawType" lowerBound="1" + eType="#//EClassifier" changeable="false" transient="true" derived="true"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="eLowerBound" eType="#//EGenericType" + containment="true" resolveProxies="false"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="eTypeParameter" eType="#//ETypeParameter" + resolveProxies="false"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="eClassifier" eType="#//EClassifier"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="ETypeParameter" eSuperTypes="#//ENamedElement"> + <eStructuralFeatures xsi:type="ecore:EReference" name="eBounds" upperBound="-1" + eType="#//EGenericType" containment="true" resolveProxies="false"/> + </eClassifiers> +</ecore:EPackage> diff --git a/plugins/org.eclipse.emf.cdo.tests/ecore/XMLNamespace.ecore b/plugins/org.eclipse.emf.cdo.tests/ecore/XMLNamespace.ecore new file mode 100644 index 0000000..ed4ba16 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.tests/ecore/XMLNamespace.ecore @@ -0,0 +1,94 @@ +<?xml version="1.0" encoding="UTF-8"?> +<ecore:EPackage xmi:version="2.0" + xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="namespace" + nsURI="http://www.w3.org/XML/1998/namespace" nsPrefix="xml"> + <eAnnotations source="http://www.w3.org/XML/1998/namespace"> + <details key="lang" value="en"/> + </eAnnotations> + <eClassifiers xsi:type="ecore:EDataType" name="LangType" instanceClassName="java.lang.String"> + <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> + <details key="name" value="lang_._type"/> + <details key="memberTypes" value="http://www.eclipse.org/emf/2003/XMLType#language lang_._type_._member_._1"/> + </eAnnotations> + </eClassifiers> + <eClassifiers xsi:type="ecore:EDataType" name="LangTypeNull" instanceClassName="java.lang.String"> + <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> + <details key="name" value="lang_._type_._member_._1"/> + <details key="baseType" value="http://www.eclipse.org/emf/2003/XMLType#string"/> + <details key="enumeration" value=""/> + </eAnnotations> + </eClassifiers> + <eClassifiers xsi:type="ecore:EEnum" name="SpaceType"> + <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> + <details key="name" value="space_._type"/> + </eAnnotations> + <eLiterals name="default"/> + <eLiterals name="preserve" value="1"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EDataType" name="SpaceTypeObject" instanceClassName="org.eclipse.emf.common.util.Enumerator"> + <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> + <details key="name" value="space_._type:Object"/> + <details key="baseType" value="space_._type"/> + </eAnnotations> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="XMLNamespaceDocumentRoot"> + <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> + <details key="name" value=""/> + <details key="kind" value="mixed"/> + </eAnnotations> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="mixed" unique="false" upperBound="-1" + eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EFeatureMapEntry"> + <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> + <details key="kind" value="elementWildcard"/> + <details key="name" value=":mixed"/> + </eAnnotations> + </eStructuralFeatures> + <eStructuralFeatures xsi:type="ecore:EReference" name="xMLNSPrefixMap" upperBound="-1" + eType="ecore:EClass http://www.eclipse.org/emf/2002/Ecore#//EStringToStringMapEntry" + transient="true" containment="true" resolveProxies="false"> + <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> + <details key="kind" value="attribute"/> + <details key="name" value="xmlns:prefix"/> + </eAnnotations> + </eStructuralFeatures> + <eStructuralFeatures xsi:type="ecore:EReference" name="xSISchemaLocation" upperBound="-1" + eType="ecore:EClass http://www.eclipse.org/emf/2002/Ecore#//EStringToStringMapEntry" + transient="true" containment="true" resolveProxies="false"> + <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> + <details key="kind" value="attribute"/> + <details key="name" value="xsi:schemaLocation"/> + </eAnnotations> + </eStructuralFeatures> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="base" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//AnyURI"> + <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> + <details key="kind" value="attribute"/> + <details key="name" value="base"/> + <details key="namespace" value="##targetNamespace"/> + </eAnnotations> + </eStructuralFeatures> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="id" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//ID" + iD="true"> + <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> + <details key="kind" value="attribute"/> + <details key="name" value="id"/> + <details key="namespace" value="##targetNamespace"/> + </eAnnotations> + </eStructuralFeatures> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="lang" eType="#//LangType"> + <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> + <details key="kind" value="attribute"/> + <details key="name" value="lang"/> + <details key="namespace" value="##targetNamespace"/> + </eAnnotations> + </eStructuralFeatures> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="space" eType="#//SpaceType" + defaultValueLiteral="preserve" unsettable="true"> + <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> + <details key="kind" value="attribute"/> + <details key="name" value="space"/> + <details key="namespace" value="##targetNamespace"/> + </eAnnotations> + </eStructuralFeatures> + </eClassifiers> +</ecore:EPackage> diff --git a/plugins/org.eclipse.emf.cdo.tests/ecore/XMLType.ecore b/plugins/org.eclipse.emf.cdo.tests/ecore/XMLType.ecore new file mode 100644 index 0000000..a24509b --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.tests/ecore/XMLType.ecore @@ -0,0 +1,518 @@ +<?xml version="1.0" encoding="UTF-8"?> +<ecore:EPackage xmi:version="2.0" + xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="type" + nsURI="http://www.eclipse.org/emf/2003/XMLType" nsPrefix="ecore.xml.type"> + <eClassifiers xsi:type="ecore:EDataType" name="AnySimpleType" instanceClassName="java.lang.Object"> + <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> + <details key="name" value="anySimpleType"/> + </eAnnotations> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="AnyType"> + <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> + <details key="name" value="anyType"/> + <details key="kind" value="mixed"/> + </eAnnotations> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="mixed" unique="false" upperBound="-1" + eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EFeatureMapEntry"> + <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> + <details key="kind" value="elementWildcard"/> + <details key="name" value=":mixed"/> + </eAnnotations> + </eStructuralFeatures> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="any" unique="false" upperBound="-1" + eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EFeatureMapEntry" + volatile="true" transient="true" derived="true"> + <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> + <details key="kind" value="elementWildcard"/> + <details key="wildcards" value="##any"/> + <details key="name" value=":1"/> + <details key="processing" value="lax"/> + </eAnnotations> + </eStructuralFeatures> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="anyAttribute" unique="false" + upperBound="-1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EFeatureMapEntry"> + <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> + <details key="kind" value="attributeWildcard"/> + <details key="wildcards" value="##any"/> + <details key="name" value=":2"/> + <details key="processing" value="lax"/> + </eAnnotations> + </eStructuralFeatures> + </eClassifiers> + <eClassifiers xsi:type="ecore:EDataType" name="AnyURI" instanceClassName="java.lang.String"> + <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> + <details key="name" value="anyURI"/> + <details key="whiteSpace" value="collapse"/> + </eAnnotations> + </eClassifiers> + <eClassifiers xsi:type="ecore:EDataType" name="Base64Binary" instanceClassName="byte[]"> + <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> + <details key="name" value="base64Binary"/> + <details key="whiteSpace" value="collapse"/> + </eAnnotations> + </eClassifiers> + <eClassifiers xsi:type="ecore:EDataType" name="Boolean" instanceClassName="boolean"> + <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> + <details key="name" value="boolean"/> + <details key="whiteSpace" value="collapse"/> + </eAnnotations> + </eClassifiers> + <eClassifiers xsi:type="ecore:EDataType" name="BooleanObject" instanceClassName="java.lang.Boolean"> + <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> + <details key="name" value="boolean:Object"/> + <details key="baseType" value="boolean"/> + </eAnnotations> + </eClassifiers> + <eClassifiers xsi:type="ecore:EDataType" name="Byte" instanceClassName="byte"> + <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> + <details key="name" value="byte"/> + </eAnnotations> + </eClassifiers> + <eClassifiers xsi:type="ecore:EDataType" name="ByteObject" instanceClassName="java.lang.Byte"> + <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> + <details key="name" value="byte:Object"/> + <details key="baseType" value="byte"/> + </eAnnotations> + </eClassifiers> + <eClassifiers xsi:type="ecore:EDataType" name="Date" instanceClassName="javax.xml.datatype.XMLGregorianCalendar"> + <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> + <details key="name" value="date"/> + <details key="whiteSpace" value="collapse"/> + </eAnnotations> + </eClassifiers> + <eClassifiers xsi:type="ecore:EDataType" name="DateTime" instanceClassName="javax.xml.datatype.XMLGregorianCalendar"> + <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> + <details key="name" value="dateTime"/> + <details key="whiteSpace" value="collapse"/> + </eAnnotations> + </eClassifiers> + <eClassifiers xsi:type="ecore:EDataType" name="Decimal" instanceClassName="java.math.BigDecimal"> + <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> + <details key="name" value="decimal"/> + <details key="whiteSpace" value="collapse"/> + </eAnnotations> + </eClassifiers> + <eClassifiers xsi:type="ecore:EDataType" name="Double" instanceClassName="double"> + <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> + <details key="name" value="double"/> + <details key="whiteSpace" value="collapse"/> + </eAnnotations> + </eClassifiers> + <eClassifiers xsi:type="ecore:EDataType" name="DoubleObject" instanceClassName="java.lang.Double"> + <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> + <details key="name" value="double:Object"/> + <details key="baseType" value="double"/> + </eAnnotations> + </eClassifiers> + <eClassifiers xsi:type="ecore:EDataType" name="Duration" instanceClassName="javax.xml.datatype.Duration"> + <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> + <details key="name" value="duration"/> + <details key="whiteSpace" value="collapse"/> + </eAnnotations> + </eClassifiers> + <eClassifiers xsi:type="ecore:EDataType" name="ENTITIES" instanceClassName="java.util.List"> + <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> + <details key="name" value="ENTITIES"/> + <details key="baseType" value="ENTITIES_._base"/> + <details key="minLength" value="1"/> + </eAnnotations> + </eClassifiers> + <eClassifiers xsi:type="ecore:EDataType" name="ENTITIESBase" instanceClassName="java.util.List"> + <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> + <details key="name" value="ENTITIES_._base"/> + <details key="itemType" value="ENTITY"/> + </eAnnotations> + </eClassifiers> + <eClassifiers xsi:type="ecore:EDataType" name="ENTITY" instanceClassName="java.lang.String"> + <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> + <details key="name" value="ENTITY"/> + <details key="baseType" value="NCName"/> + </eAnnotations> + </eClassifiers> + <eClassifiers xsi:type="ecore:EDataType" name="Float" instanceClassName="float"> + <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> + <details key="name" value="float"/> + <details key="whiteSpace" value="collapse"/> + </eAnnotations> + </eClassifiers> + <eClassifiers xsi:type="ecore:EDataType" name="FloatObject" instanceClassName="java.lang.Float"> + <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> + <details key="name" value="float:Object"/> + <details key="baseType" value="float"/> + </eAnnotations> + </eClassifiers> + <eClassifiers xsi:type="ecore:EDataType" name="GDay" instanceClassName="javax.xml.datatype.XMLGregorianCalendar"> + <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> + <details key="name" value="gDay"/> + <details key="whiteSpace" value="collapse"/> + </eAnnotations> + </eClassifiers> + <eClassifiers xsi:type="ecore:EDataType" name="GMonth" instanceClassName="javax.xml.datatype.XMLGregorianCalendar"> + <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> + <details key="name" value="gMonth"/> + <details key="whiteSpace" value="collapse"/> + </eAnnotations> + </eClassifiers> + <eClassifiers xsi:type="ecore:EDataType" name="GMonthDay" instanceClassName="javax.xml.datatype.XMLGregorianCalendar"> + <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> + <details key="name" value="gMonthDay"/> + <details key="whiteSpace" value="collapse"/> + </eAnnotations> + </eClassifiers> + <eClassifiers xsi:type="ecore:EDataType" name="GYear" instanceClassName="javax.xml.datatype.XMLGregorianCalendar"> + <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> + <details key="name" value="gYear"/> + <details key="whiteSpace" value="collapse"/> + </eAnnotations> + </eClassifiers> + <eClassifiers xsi:type="ecore:EDataType" name="GYearMonth" instanceClassName="javax.xml.datatype.XMLGregorianCalendar"> + <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> + <details key="name" value="gYearMonth"/> + <details key="whiteSpace" value="collapse"/> + </eAnnotations> + </eClassifiers> + <eClassifiers xsi:type="ecore:EDataType" name="HexBinary" instanceClassName="byte[]"> + <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> + <details key="name" value="hexBinary"/> + <details key="whiteSpace" value="collapse"/> + </eAnnotations> + </eClassifiers> + <eClassifiers xsi:type="ecore:EDataType" name="ID" instanceClassName="java.lang.String"> + <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> + <details key="name" value="ID"/> + <details key="baseType" value="NCName"/> + </eAnnotations> + </eClassifiers> + <eClassifiers xsi:type="ecore:EDataType" name="IDREF" instanceClassName="java.lang.String"> + <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> + <details key="name" value="IDREF"/> + <details key="baseType" value="NCName"/> + </eAnnotations> + </eClassifiers> + <eClassifiers xsi:type="ecore:EDataType" name="IDREFS" instanceClassName="java.util.List"> + <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> + <details key="name" value="IDREFS"/> + <details key="baseType" value="IDREFS_._base"/> + <details key="minLength" value="1"/> + </eAnnotations> + </eClassifiers> + <eClassifiers xsi:type="ecore:EDataType" name="IDREFSBase" instanceClassName="java.util.List"> + <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> + <details key="name" value="IDREFS_._base"/> + <details key="itemType" value="IDREF"/> + </eAnnotations> + </eClassifiers> + <eClassifiers xsi:type="ecore:EDataType" name="Int" instanceClassName="int"> + <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> + <details key="name" value="int"/> + </eAnnotations> + </eClassifiers> + <eClassifiers xsi:type="ecore:EDataType" name="Integer" instanceClassName="java.math.BigInteger"> + <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> + <details key="name" value="integer"/> + </eAnnotations> + </eClassifiers> + <eClassifiers xsi:type="ecore:EDataType" name="IntObject" instanceClassName="java.lang.Integer"> + <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> + <details key="name" value="int:Object"/> + <details key="baseType" value="int"/> + </eAnnotations> + </eClassifiers> + <eClassifiers xsi:type="ecore:EDataType" name="Language" instanceClassName="java.lang.String"> + <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> + <details key="name" value="language"/> + <details key="baseType" value="token"/> + <details key="pattern" value="[a-zA-Z]{1,8}(-[a-zA-Z0-9]{1,8})*"/> + </eAnnotations> + </eClassifiers> + <eClassifiers xsi:type="ecore:EDataType" name="Long" instanceClassName="long"> + <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> + <details key="name" value="long"/> + </eAnnotations> + </eClassifiers> + <eClassifiers xsi:type="ecore:EDataType" name="LongObject" instanceClassName="java.lang.Long"> + <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> + <details key="name" value="long:Object"/> + <details key="baseType" value="long"/> + </eAnnotations> + </eClassifiers> + <eClassifiers xsi:type="ecore:EDataType" name="Name" instanceClassName="java.lang.String"> + <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> + <details key="name" value="Name"/> + <details key="baseType" value="token"/> + <details key="pattern" value="\i\c*"/> + </eAnnotations> + </eClassifiers> + <eClassifiers xsi:type="ecore:EDataType" name="NCName" instanceClassName="java.lang.String"> + <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> + <details key="name" value="NCName"/> + <details key="baseType" value="Name"/> + <details key="pattern" value="[\i-[:]][\c-[:]]*"/> + </eAnnotations> + </eClassifiers> + <eClassifiers xsi:type="ecore:EDataType" name="NegativeInteger" instanceClassName="java.math.BigInteger"> + <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> + <details key="name" value="negativeInteger"/> + <details key="baseType" value="nonPositiveInteger"/> + <details key="maxInclusive" value="-1"/> + </eAnnotations> + </eClassifiers> + <eClassifiers xsi:type="ecore:EDataType" name="NMTOKEN" instanceClassName="java.lang.String"> + <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> + <details key="name" value="NMTOKEN"/> + <details key="baseType" value="token"/> + <details key="pattern" value="\c+"/> + </eAnnotations> + </eClassifiers> + <eClassifiers xsi:type="ecore:EDataType" name="NMTOKENS" instanceClassName="java.util.List"> + <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> + <details key="name" value="NMTOKENS"/> + <details key="baseType" value="NMTOKENS_._base"/> + <details key="minLength" value="1"/> + </eAnnotations> + </eClassifiers> + <eClassifiers xsi:type="ecore:EDataType" name="NMTOKENSBase" instanceClassName="java.util.List"> + <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> + <details key="name" value="NMTOKENS_._base"/> + <details key="itemType" value="NMTOKEN"/> + </eAnnotations> + </eClassifiers> + <eClassifiers xsi:type="ecore:EDataType" name="NonNegativeInteger" instanceClassName="java.math.BigInteger"> + <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> + <details key="name" value="nonNegativeInteger"/> + <details key="baseType" value="integer"/> + <details key="minInclusive" value="0"/> + </eAnnotations> + </eClassifiers> + <eClassifiers xsi:type="ecore:EDataType" name="NonPositiveInteger" instanceClassName="java.math.BigInteger"> + <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> + <details key="name" value="nonPositiveInteger"/> + <details key="baseType" value="integer"/> + <details key="maxInclusive" value="0"/> + </eAnnotations> + </eClassifiers> + <eClassifiers xsi:type="ecore:EDataType" name="NormalizedString" instanceClassName="java.lang.String"> + <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> + <details key="name" value="normalizedString"/> + <details key="baseType" value="string"/> + <details key="whiteSpace" value="replace"/> + </eAnnotations> + </eClassifiers> + <eClassifiers xsi:type="ecore:EDataType" name="NOTATION" instanceClassName="javax.xml.namespace.QName"> + <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> + <details key="name" value="NOTATION"/> + <details key="whiteSpace" value="collapse"/> + </eAnnotations> + </eClassifiers> + <eClassifiers xsi:type="ecore:EDataType" name="PositiveInteger" instanceClassName="java.math.BigInteger"> + <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> + <details key="name" value="positiveInteger"/> + <details key="baseType" value="nonNegativeInteger"/> + <details key="minInclusive" value="1"/> + </eAnnotations> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="ProcessingInstruction"> + <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> + <details key="name" value="processingInstruction_._type"/> + <details key="kind" value="empty"/> + </eAnnotations> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="data" eType="#//String"> + <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> + <details key="kind" value="attribute"/> + <details key="name" value="data"/> + </eAnnotations> + </eStructuralFeatures> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="target" lowerBound="1" + eType="#//String"> + <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> + <details key="kind" value="attribute"/> + <details key="name" value="target"/> + </eAnnotations> + </eStructuralFeatures> + </eClassifiers> + <eClassifiers xsi:type="ecore:EDataType" name="QName" instanceClassName="javax.xml.namespace.QName"> + <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> + <details key="name" value="QName"/> + <details key="whiteSpace" value="collapse"/> + </eAnnotations> + </eClassifiers> + <eClassifiers xsi:type="ecore:EDataType" name="Short" instanceClassName="short"> + <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> + <details key="name" value="short"/> + </eAnnotations> + </eClassifiers> + <eClassifiers xsi:type="ecore:EDataType" name="ShortObject" instanceClassName="java.lang.Short"> + <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> + <details key="name" value="short:Object"/> + <details key="baseType" value="short"/> + </eAnnotations> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="SimpleAnyType" eSuperTypes="#//AnyType"> + <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> + <details key="name" value="simpleAnyType"/> + <details key="kind" value="simple"/> + </eAnnotations> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="rawValue" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String" + volatile="true" transient="true" derived="true"> + <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> + <details key="name" value=":3"/> + <details key="kind" value="simple"/> + </eAnnotations> + </eStructuralFeatures> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//AnySimpleType" + volatile="true" transient="true" derived="true"> + <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> + <details key="name" value=":4"/> + <details key="kind" value="simple"/> + </eAnnotations> + </eStructuralFeatures> + <eStructuralFeatures xsi:type="ecore:EReference" name="instanceType" lowerBound="1" + eType="ecore:EClass http://www.eclipse.org/emf/2002/Ecore#//EDataType" resolveProxies="false"> + <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> + <details key="name" value=":5"/> + <details key="kind" value="simple"/> + </eAnnotations> + </eStructuralFeatures> + </eClassifiers> + <eClassifiers xsi:type="ecore:EDataType" name="String" instanceClassName="java.lang.String"> + <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> + <details key="name" value="string"/> + <details key="whiteSpace" value="preserve"/> + </eAnnotations> + </eClassifiers> + <eClassifiers xsi:type="ecore:EDataType" name="Time" instanceClassName="javax.xml.datatype.XMLGregorianCalendar"> + <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> + <details key="name" value="time"/> + <details key="whiteSpace" value="collapse"/> + </eAnnotations> + </eClassifiers> + <eClassifiers xsi:type="ecore:EDataType" name="Token" instanceClassName="java.lang.String"> + <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> + <details key="name" value="token"/> + <details key="baseType" value="normalizedString"/> + <details key="whiteSpace" value="collapse"/> + </eAnnotations> + </eClassifiers> + <eClassifiers xsi:type="ecore:EDataType" name="UnsignedByte" instanceClassName="short"> + <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> + <details key="name" value="unsignedByte"/> + <details key="maxInclusive" value="255"/> + <details key="minInclusive" value="0"/> + </eAnnotations> + </eClassifiers> + <eClassifiers xsi:type="ecore:EDataType" name="UnsignedByteObject" instanceClassName="java.lang.Short"> + <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> + <details key="name" value="unsignedByte:Object"/> + <details key="baseType" value="unsignedByte"/> + </eAnnotations> + </eClassifiers> + <eClassifiers xsi:type="ecore:EDataType" name="UnsignedInt" instanceClassName="long"> + <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> + <details key="name" value="unsignedInt"/> + <details key="maxInclusive" value="4294967295"/> + <details key="minInclusive" value="0"/> + </eAnnotations> + </eClassifiers> + <eClassifiers xsi:type="ecore:EDataType" name="UnsignedIntObject" instanceClassName="java.lang.Long"> + <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> + <details key="name" value="unsignedInt:Object"/> + <details key="baseType" value="unsignedInt"/> + </eAnnotations> + </eClassifiers> + <eClassifiers xsi:type="ecore:EDataType" name="UnsignedLong" instanceClassName="java.math.BigInteger"> + <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> + <details key="name" value="unsignedLong"/> + <details key="baseType" value="nonNegativeInteger"/> + <details key="maxInclusive" value="18446744073709551615"/> + <details key="minInclusive" value="0"/> + </eAnnotations> + </eClassifiers> + <eClassifiers xsi:type="ecore:EDataType" name="UnsignedShort" instanceClassName="int"> + <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> + <details key="name" value="unsignedShort"/> + <details key="maxInclusive" value="65535"/> + <details key="minInclusive" value="0"/> + </eAnnotations> + </eClassifiers> + <eClassifiers xsi:type="ecore:EDataType" name="UnsignedShortObject" instanceClassName="java.lang.Integer"> + <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> + <details key="name" value="unsignedShort:Object"/> + <details key="baseType" value="unsignedShort"/> + </eAnnotations> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="XMLTypeDocumentRoot"> + <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> + <details key="name" value=""/> + <details key="kind" value="mixed"/> + </eAnnotations> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="mixed" unique="false" upperBound="-1" + eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EFeatureMapEntry"> + <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> + <details key="kind" value="elementWildcard"/> + <details key="name" value=":mixed"/> + </eAnnotations> + </eStructuralFeatures> + <eStructuralFeatures xsi:type="ecore:EReference" name="xMLNSPrefixMap" upperBound="-1" + eType="ecore:EClass http://www.eclipse.org/emf/2002/Ecore#//EStringToStringMapEntry" + transient="true" containment="true" resolveProxies="false"> + <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> + <details key="kind" value="attribute"/> + <details key="name" value="xmlns:prefix"/> + </eAnnotations> + </eStructuralFeatures> + <eStructuralFeatures xsi:type="ecore:EReference" name="xSISchemaLocation" upperBound="-1" + eType="ecore:EClass http://www.eclipse.org/emf/2002/Ecore#//EStringToStringMapEntry" + transient="true" containment="true" resolveProxies="false"> + <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> + <details key="kind" value="attribute"/> + <details key="name" value="xsi:schemaLocation"/> + </eAnnotations> + </eStructuralFeatures> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="cDATA" unique="false" upperBound="-2" + eType="#//String" volatile="true" transient="true" derived="true"> + <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> + <details key="kind" value="element"/> + <details key="name" value="cDATA"/> + <details key="namespace" value="##targetNamespace"/> + </eAnnotations> + <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> + <details key="suppressedGetVisibility" value="true"/> + </eAnnotations> + </eStructuralFeatures> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="comment" unique="false" + upperBound="-2" eType="#//String" volatile="true" transient="true" derived="true"> + <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> + <details key="kind" value="element"/> + <details key="name" value="comment"/> + <details key="namespace" value="##targetNamespace"/> + </eAnnotations> + <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> + <details key="suppressedGetVisibility" value="true"/> + </eAnnotations> + </eStructuralFeatures> + <eStructuralFeatures xsi:type="ecore:EReference" name="processingInstruction" + upperBound="-2" eType="#//ProcessingInstruction" volatile="true" transient="true" + derived="true" containment="true" resolveProxies="false"> + <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> + <details key="kind" value="element"/> + <details key="name" value="processingInstruction"/> + <details key="namespace" value="##targetNamespace"/> + </eAnnotations> + <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> + <details key="suppressedGetVisibility" value="true"/> + </eAnnotations> + </eStructuralFeatures> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="text" unique="false" upperBound="-2" + eType="#//String" volatile="true" transient="true" derived="true"> + <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> + <details key="kind" value="element"/> + <details key="name" value="text"/> + <details key="namespace" value="##targetNamespace"/> + </eAnnotations> + <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> + <details key="suppressedGetVisibility" value="true"/> + </eAnnotations> + </eStructuralFeatures> + </eClassifiers> +</ecore:EPackage> diff --git a/plugins/org.eclipse.emf.cdo.tests/epl-v10.html b/plugins/org.eclipse.emf.cdo.tests/epl-v10.html new file mode 100644 index 0000000..d7b88e9 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.tests/epl-v10.html @@ -0,0 +1,319 @@ +<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns="http://www.w3.org/TR/REC-html40"><head> +<meta http-equiv="Content-Type" content="text/html; charset=windows-1252"> +<meta name="ProgId" content="Word.Document"> +<meta name="Generator" content="Microsoft Word 9"> +<meta name="Originator" content="Microsoft Word 9"> +<link rel="File-List" href="http://www.eclipse.org/org/documents/Eclipse%20EPL%202003_11_10%20Final_files/filelist.xml"><title>Eclipse Public License - Version 1.0</title><!--[if gte mso 9]><xml> + <o:DocumentProperties> + <o:Revision>2</o:Revision> + <o:TotalTime>3</o:TotalTime> + <o:Created>2004-03-05T23:03:00Z</o:Created> + <o:LastSaved>2004-03-05T23:03:00Z</o:LastSaved> + <o:Pages>4</o:Pages> + <o:Words>1626</o:Words> + <o:Characters>9270</o:Characters> + <o:Lines>77</o:Lines> + <o:Paragraphs>18</o:Paragraphs> + <o:CharactersWithSpaces>11384</o:CharactersWithSpaces> + <o:Version>9.4402</o:Version> + </o:DocumentProperties> +</xml><![endif]--><!--[if gte mso 9]><xml> + <w:WordDocument> + <w:TrackRevisions/> + </w:WordDocument> +</xml><![endif]--> + + +<style> +<!-- + /* Font Definitions */ +@font-face + {font-family:Tahoma; + panose-1:2 11 6 4 3 5 4 4 2 4; + mso-font-charset:0; + mso-generic-font-family:swiss; + mso-font-pitch:variable; + mso-font-signature:553679495 -2147483648 8 0 66047 0;} + /* Style Definitions */ +p.MsoNormal, li.MsoNormal, div.MsoNormal + {mso-style-parent:""; + margin:0in; + margin-bottom:.0001pt; + mso-pagination:widow-orphan; + font-size:12.0pt; + font-family:"Times New Roman"; + mso-fareast-font-family:"Times New Roman";} +p + {margin-right:0in; + mso-margin-top-alt:auto; + mso-margin-bottom-alt:auto; + margin-left:0in; + mso-pagination:widow-orphan; + font-size:12.0pt; + font-family:"Times New Roman"; + mso-fareast-font-family:"Times New Roman";} +p.BalloonText, li.BalloonText, div.BalloonText + {mso-style-name:"Balloon Text"; + margin:0in; + margin-bottom:.0001pt; + mso-pagination:widow-orphan; + font-size:8.0pt; + font-family:Tahoma; + mso-fareast-font-family:"Times New Roman";} +@page Section1 + {size:8.5in 11.0in; + margin:1.0in 1.25in 1.0in 1.25in; + mso-header-margin:.5in; + mso-footer-margin:.5in; + mso-paper-source:0;} +div.Section1 + {page:Section1;} +--> +</style></head> + +<body style="" lang="EN-US"> + +<div class="Section1"> + +<p style="text-align: center;" align="center"><b>Eclipse Public License - v 1.0</b> +</p> + +<p><span style="font-size: 10pt;">THE ACCOMPANYING PROGRAM IS PROVIDED UNDER +THE TERMS OF THIS ECLIPSE PUBLIC LICENSE ("AGREEMENT"). ANY USE, +REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE +OF THIS AGREEMENT.</span> </p> + +<p><b><span style="font-size: 10pt;">1. DEFINITIONS</span></b> </p> + +<p><span style="font-size: 10pt;">"Contribution" means:</span> </p> + +<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10pt;">a) +in the case of the initial Contributor, the initial code and documentation +distributed under this Agreement, and<br clear="left"> +b) in the case of each subsequent Contributor:</span></p> + +<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10pt;">i) +changes to the Program, and</span></p> + +<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10pt;">ii) +additions to the Program;</span></p> + +<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10pt;">where +such changes and/or additions to the Program originate from and are distributed +by that particular Contributor. A Contribution 'originates' from a Contributor +if it was added to the Program by such Contributor itself or anyone acting on +such Contributor's behalf. Contributions do not include additions to the +Program which: (i) are separate modules of software distributed in conjunction +with the Program under their own license agreement, and (ii) are not derivative +works of the Program. </span></p> + +<p><span style="font-size: 10pt;">"Contributor" means any person or +entity that distributes the Program.</span> </p> + +<p><span style="font-size: 10pt;">"Licensed Patents " mean patent +claims licensable by a Contributor which are necessarily infringed by the use +or sale of its Contribution alone or when combined with the Program. </span></p> + +<p><span style="font-size: 10pt;">"Program" means the Contributions +distributed in accordance with this Agreement.</span> </p> + +<p><span style="font-size: 10pt;">"Recipient" means anyone who +receives the Program under this Agreement, including all Contributors.</span> </p> + +<p><b><span style="font-size: 10pt;">2. GRANT OF RIGHTS</span></b> </p> + +<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10pt;">a) +Subject to the terms of this Agreement, each Contributor hereby grants Recipient +a non-exclusive, worldwide, royalty-free copyright license to<span style="color: red;"> </span>reproduce, prepare derivative works of, publicly +display, publicly perform, distribute and sublicense the Contribution of such +Contributor, if any, and such derivative works, in source code and object code +form.</span></p> + +<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10pt;">b) +Subject to the terms of this Agreement, each Contributor hereby grants +Recipient a non-exclusive, worldwide,<span style="color: green;"> </span>royalty-free +patent license under Licensed Patents to make, use, sell, offer to sell, import +and otherwise transfer the Contribution of such Contributor, if any, in source +code and object code form. This patent license shall apply to the combination +of the Contribution and the Program if, at the time the Contribution is added +by the Contributor, such addition of the Contribution causes such combination +to be covered by the Licensed Patents. The patent license shall not apply to +any other combinations which include the Contribution. No hardware per se is +licensed hereunder. </span></p> + +<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10pt;">c) +Recipient understands that although each Contributor grants the licenses to its +Contributions set forth herein, no assurances are provided by any Contributor +that the Program does not infringe the patent or other intellectual property +rights of any other entity. Each Contributor disclaims any liability to Recipient +for claims brought by any other entity based on infringement of intellectual +property rights or otherwise. As a condition to exercising the rights and +licenses granted hereunder, each Recipient hereby assumes sole responsibility +to secure any other intellectual property rights needed, if any. For example, +if a third party patent license is required to allow Recipient to distribute +the Program, it is Recipient's responsibility to acquire that license before +distributing the Program.</span></p> + +<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10pt;">d) +Each Contributor represents that to its knowledge it has sufficient copyright +rights in its Contribution, if any, to grant the copyright license set forth in +this Agreement. </span></p> + +<p><b><span style="font-size: 10pt;">3. REQUIREMENTS</span></b> </p> + +<p><span style="font-size: 10pt;">A Contributor may choose to distribute the +Program in object code form under its own license agreement, provided that:</span> +</p> + +<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10pt;">a) +it complies with the terms and conditions of this Agreement; and</span></p> + +<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10pt;">b) +its license agreement:</span></p> + +<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10pt;">i) +effectively disclaims on behalf of all Contributors all warranties and +conditions, express and implied, including warranties or conditions of title +and non-infringement, and implied warranties or conditions of merchantability +and fitness for a particular purpose; </span></p> + +<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10pt;">ii) +effectively excludes on behalf of all Contributors all liability for damages, +including direct, indirect, special, incidental and consequential damages, such +as lost profits; </span></p> + +<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10pt;">iii) +states that any provisions which differ from this Agreement are offered by that +Contributor alone and not by any other party; and</span></p> + +<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10pt;">iv) +states that source code for the Program is available from such Contributor, and +informs licensees how to obtain it in a reasonable manner on or through a +medium customarily used for software exchange.<span style="color: blue;"> </span></span></p> + +<p><span style="font-size: 10pt;">When the Program is made available in source +code form:</span> </p> + +<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10pt;">a) +it must be made available under this Agreement; and </span></p> + +<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10pt;">b) a +copy of this Agreement must be included with each copy of the Program. </span></p> + +<p><span style="font-size: 10pt;">Contributors may not remove or alter any +copyright notices contained within the Program. </span></p> + +<p><span style="font-size: 10pt;">Each Contributor must identify itself as the +originator of its Contribution, if any, in a manner that reasonably allows +subsequent Recipients to identify the originator of the Contribution. </span></p> + +<p><b><span style="font-size: 10pt;">4. COMMERCIAL DISTRIBUTION</span></b> </p> + +<p><span style="font-size: 10pt;">Commercial distributors of software may +accept certain responsibilities with respect to end users, business partners +and the like. While this license is intended to facilitate the commercial use +of the Program, the Contributor who includes the Program in a commercial +product offering should do so in a manner which does not create potential +liability for other Contributors. Therefore, if a Contributor includes the +Program in a commercial product offering, such Contributor ("Commercial +Contributor") hereby agrees to defend and indemnify every other +Contributor ("Indemnified Contributor") against any losses, damages and +costs (collectively "Losses") arising from claims, lawsuits and other +legal actions brought by a third party against the Indemnified Contributor to +the extent caused by the acts or omissions of such Commercial Contributor in +connection with its distribution of the Program in a commercial product +offering. The obligations in this section do not apply to any claims or Losses +relating to any actual or alleged intellectual property infringement. In order +to qualify, an Indemnified Contributor must: a) promptly notify the Commercial +Contributor in writing of such claim, and b) allow the Commercial Contributor +to control, and cooperate with the Commercial Contributor in, the defense and +any related settlement negotiations. The Indemnified Contributor may participate +in any such claim at its own expense.</span> </p> + +<p><span style="font-size: 10pt;">For example, a Contributor might include the +Program in a commercial product offering, Product X. That Contributor is then a +Commercial Contributor. If that Commercial Contributor then makes performance +claims, or offers warranties related to Product X, those performance claims and +warranties are such Commercial Contributor's responsibility alone. Under this +section, the Commercial Contributor would have to defend claims against the +other Contributors related to those performance claims and warranties, and if a +court requires any other Contributor to pay any damages as a result, the +Commercial Contributor must pay those damages.</span> </p> + +<p><b><span style="font-size: 10pt;">5. NO WARRANTY</span></b> </p> + +<p><span style="font-size: 10pt;">EXCEPT AS EXPRESSLY SET FORTH IN THIS +AGREEMENT, THE PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT +WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING, +WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, +MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely +responsible for determining the appropriateness of using and distributing the +Program and assumes all risks associated with its exercise of rights under this +Agreement , including but not limited to the risks and costs of program errors, +compliance with applicable laws, damage to or loss of data, programs or +equipment, and unavailability or interruption of operations. </span></p> + +<p><b><span style="font-size: 10pt;">6. DISCLAIMER OF LIABILITY</span></b> </p> + +<p><span style="font-size: 10pt;">EXCEPT AS EXPRESSLY SET FORTH IN THIS +AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR +ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY +OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF +THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF +THE POSSIBILITY OF SUCH DAMAGES.</span> </p> + +<p><b><span style="font-size: 10pt;">7. GENERAL</span></b> </p> + +<p><span style="font-size: 10pt;">If any provision of this Agreement is invalid +or unenforceable under applicable law, it shall not affect the validity or +enforceability of the remainder of the terms of this Agreement, and without +further action by the parties hereto, such provision shall be reformed to the +minimum extent necessary to make such provision valid and enforceable.</span> </p> + +<p><span style="font-size: 10pt;">If Recipient institutes patent litigation +against any entity (including a cross-claim or counterclaim in a lawsuit) +alleging that the Program itself (excluding combinations of the Program with +other software or hardware) infringes such Recipient's patent(s), then such +Recipient's rights granted under Section 2(b) shall terminate as of the date +such litigation is filed. </span></p> + +<p><span style="font-size: 10pt;">All Recipient's rights under this Agreement +shall terminate if it fails to comply with any of the material terms or +conditions of this Agreement and does not cure such failure in a reasonable +period of time after becoming aware of such noncompliance. If all Recipient's +rights under this Agreement terminate, Recipient agrees to cease use and +distribution of the Program as soon as reasonably practicable. However, +Recipient's obligations under this Agreement and any licenses granted by +Recipient relating to the Program shall continue and survive. </span></p> + +<p><span style="font-size: 10pt;">Everyone is permitted to copy and distribute +copies of this Agreement, but in order to avoid inconsistency the Agreement is +copyrighted and may only be modified in the following manner. The Agreement +Steward reserves the right to publish new versions (including revisions) of +this Agreement from time to time. No one other than the Agreement Steward has +the right to modify this Agreement. The Eclipse Foundation is the initial +Agreement Steward. The Eclipse Foundation may assign the responsibility to +serve as the Agreement Steward to a suitable separate entity. Each new version +of the Agreement will be given a distinguishing version number. The Program +(including Contributions) may always be distributed subject to the version of +the Agreement under which it was received. In addition, after a new version of +the Agreement is published, Contributor may elect to distribute the Program +(including its Contributions) under the new version. Except as expressly stated +in Sections 2(a) and 2(b) above, Recipient receives no rights or licenses to +the intellectual property of any Contributor under this Agreement, whether +expressly, by implication, estoppel or otherwise. All rights in the Program not +expressly granted under this Agreement are reserved.</span> </p> + +<p><span style="font-size: 10pt;">This Agreement is governed by the laws of the +State of New York and the intellectual property laws of the United States of +America. No party to this Agreement will bring a legal action under this +Agreement more than one year after the cause of action arose. Each party waives +its rights to a jury trial in any resulting litigation.</span> </p> + +<p class="MsoNormal"><!--[if !supportEmptyParas]--> <!--[endif]--><o:p></o:p></p> + +</div> + +</body></html>
\ No newline at end of file diff --git a/plugins/org.eclipse.emf.cdo.tests/license.html b/plugins/org.eclipse.emf.cdo.tests/license.html new file mode 100644 index 0000000..d7b88e9 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.tests/license.html @@ -0,0 +1,319 @@ +<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns="http://www.w3.org/TR/REC-html40"><head> +<meta http-equiv="Content-Type" content="text/html; charset=windows-1252"> +<meta name="ProgId" content="Word.Document"> +<meta name="Generator" content="Microsoft Word 9"> +<meta name="Originator" content="Microsoft Word 9"> +<link rel="File-List" href="http://www.eclipse.org/org/documents/Eclipse%20EPL%202003_11_10%20Final_files/filelist.xml"><title>Eclipse Public License - Version 1.0</title><!--[if gte mso 9]><xml> + <o:DocumentProperties> + <o:Revision>2</o:Revision> + <o:TotalTime>3</o:TotalTime> + <o:Created>2004-03-05T23:03:00Z</o:Created> + <o:LastSaved>2004-03-05T23:03:00Z</o:LastSaved> + <o:Pages>4</o:Pages> + <o:Words>1626</o:Words> + <o:Characters>9270</o:Characters> + <o:Lines>77</o:Lines> + <o:Paragraphs>18</o:Paragraphs> + <o:CharactersWithSpaces>11384</o:CharactersWithSpaces> + <o:Version>9.4402</o:Version> + </o:DocumentProperties> +</xml><![endif]--><!--[if gte mso 9]><xml> + <w:WordDocument> + <w:TrackRevisions/> + </w:WordDocument> +</xml><![endif]--> + + +<style> +<!-- + /* Font Definitions */ +@font-face + {font-family:Tahoma; + panose-1:2 11 6 4 3 5 4 4 2 4; + mso-font-charset:0; + mso-generic-font-family:swiss; + mso-font-pitch:variable; + mso-font-signature:553679495 -2147483648 8 0 66047 0;} + /* Style Definitions */ +p.MsoNormal, li.MsoNormal, div.MsoNormal + {mso-style-parent:""; + margin:0in; + margin-bottom:.0001pt; + mso-pagination:widow-orphan; + font-size:12.0pt; + font-family:"Times New Roman"; + mso-fareast-font-family:"Times New Roman";} +p + {margin-right:0in; + mso-margin-top-alt:auto; + mso-margin-bottom-alt:auto; + margin-left:0in; + mso-pagination:widow-orphan; + font-size:12.0pt; + font-family:"Times New Roman"; + mso-fareast-font-family:"Times New Roman";} +p.BalloonText, li.BalloonText, div.BalloonText + {mso-style-name:"Balloon Text"; + margin:0in; + margin-bottom:.0001pt; + mso-pagination:widow-orphan; + font-size:8.0pt; + font-family:Tahoma; + mso-fareast-font-family:"Times New Roman";} +@page Section1 + {size:8.5in 11.0in; + margin:1.0in 1.25in 1.0in 1.25in; + mso-header-margin:.5in; + mso-footer-margin:.5in; + mso-paper-source:0;} +div.Section1 + {page:Section1;} +--> +</style></head> + +<body style="" lang="EN-US"> + +<div class="Section1"> + +<p style="text-align: center;" align="center"><b>Eclipse Public License - v 1.0</b> +</p> + +<p><span style="font-size: 10pt;">THE ACCOMPANYING PROGRAM IS PROVIDED UNDER +THE TERMS OF THIS ECLIPSE PUBLIC LICENSE ("AGREEMENT"). ANY USE, +REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE +OF THIS AGREEMENT.</span> </p> + +<p><b><span style="font-size: 10pt;">1. DEFINITIONS</span></b> </p> + +<p><span style="font-size: 10pt;">"Contribution" means:</span> </p> + +<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10pt;">a) +in the case of the initial Contributor, the initial code and documentation +distributed under this Agreement, and<br clear="left"> +b) in the case of each subsequent Contributor:</span></p> + +<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10pt;">i) +changes to the Program, and</span></p> + +<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10pt;">ii) +additions to the Program;</span></p> + +<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10pt;">where +such changes and/or additions to the Program originate from and are distributed +by that particular Contributor. A Contribution 'originates' from a Contributor +if it was added to the Program by such Contributor itself or anyone acting on +such Contributor's behalf. Contributions do not include additions to the +Program which: (i) are separate modules of software distributed in conjunction +with the Program under their own license agreement, and (ii) are not derivative +works of the Program. </span></p> + +<p><span style="font-size: 10pt;">"Contributor" means any person or +entity that distributes the Program.</span> </p> + +<p><span style="font-size: 10pt;">"Licensed Patents " mean patent +claims licensable by a Contributor which are necessarily infringed by the use +or sale of its Contribution alone or when combined with the Program. </span></p> + +<p><span style="font-size: 10pt;">"Program" means the Contributions +distributed in accordance with this Agreement.</span> </p> + +<p><span style="font-size: 10pt;">"Recipient" means anyone who +receives the Program under this Agreement, including all Contributors.</span> </p> + +<p><b><span style="font-size: 10pt;">2. GRANT OF RIGHTS</span></b> </p> + +<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10pt;">a) +Subject to the terms of this Agreement, each Contributor hereby grants Recipient +a non-exclusive, worldwide, royalty-free copyright license to<span style="color: red;"> </span>reproduce, prepare derivative works of, publicly +display, publicly perform, distribute and sublicense the Contribution of such +Contributor, if any, and such derivative works, in source code and object code +form.</span></p> + +<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10pt;">b) +Subject to the terms of this Agreement, each Contributor hereby grants +Recipient a non-exclusive, worldwide,<span style="color: green;"> </span>royalty-free +patent license under Licensed Patents to make, use, sell, offer to sell, import +and otherwise transfer the Contribution of such Contributor, if any, in source +code and object code form. This patent license shall apply to the combination +of the Contribution and the Program if, at the time the Contribution is added +by the Contributor, such addition of the Contribution causes such combination +to be covered by the Licensed Patents. The patent license shall not apply to +any other combinations which include the Contribution. No hardware per se is +licensed hereunder. </span></p> + +<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10pt;">c) +Recipient understands that although each Contributor grants the licenses to its +Contributions set forth herein, no assurances are provided by any Contributor +that the Program does not infringe the patent or other intellectual property +rights of any other entity. Each Contributor disclaims any liability to Recipient +for claims brought by any other entity based on infringement of intellectual +property rights or otherwise. As a condition to exercising the rights and +licenses granted hereunder, each Recipient hereby assumes sole responsibility +to secure any other intellectual property rights needed, if any. For example, +if a third party patent license is required to allow Recipient to distribute +the Program, it is Recipient's responsibility to acquire that license before +distributing the Program.</span></p> + +<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10pt;">d) +Each Contributor represents that to its knowledge it has sufficient copyright +rights in its Contribution, if any, to grant the copyright license set forth in +this Agreement. </span></p> + +<p><b><span style="font-size: 10pt;">3. REQUIREMENTS</span></b> </p> + +<p><span style="font-size: 10pt;">A Contributor may choose to distribute the +Program in object code form under its own license agreement, provided that:</span> +</p> + +<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10pt;">a) +it complies with the terms and conditions of this Agreement; and</span></p> + +<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10pt;">b) +its license agreement:</span></p> + +<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10pt;">i) +effectively disclaims on behalf of all Contributors all warranties and +conditions, express and implied, including warranties or conditions of title +and non-infringement, and implied warranties or conditions of merchantability +and fitness for a particular purpose; </span></p> + +<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10pt;">ii) +effectively excludes on behalf of all Contributors all liability for damages, +including direct, indirect, special, incidental and consequential damages, such +as lost profits; </span></p> + +<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10pt;">iii) +states that any provisions which differ from this Agreement are offered by that +Contributor alone and not by any other party; and</span></p> + +<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10pt;">iv) +states that source code for the Program is available from such Contributor, and +informs licensees how to obtain it in a reasonable manner on or through a +medium customarily used for software exchange.<span style="color: blue;"> </span></span></p> + +<p><span style="font-size: 10pt;">When the Program is made available in source +code form:</span> </p> + +<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10pt;">a) +it must be made available under this Agreement; and </span></p> + +<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10pt;">b) a +copy of this Agreement must be included with each copy of the Program. </span></p> + +<p><span style="font-size: 10pt;">Contributors may not remove or alter any +copyright notices contained within the Program. </span></p> + +<p><span style="font-size: 10pt;">Each Contributor must identify itself as the +originator of its Contribution, if any, in a manner that reasonably allows +subsequent Recipients to identify the originator of the Contribution. </span></p> + +<p><b><span style="font-size: 10pt;">4. COMMERCIAL DISTRIBUTION</span></b> </p> + +<p><span style="font-size: 10pt;">Commercial distributors of software may +accept certain responsibilities with respect to end users, business partners +and the like. While this license is intended to facilitate the commercial use +of the Program, the Contributor who includes the Program in a commercial +product offering should do so in a manner which does not create potential +liability for other Contributors. Therefore, if a Contributor includes the +Program in a commercial product offering, such Contributor ("Commercial +Contributor") hereby agrees to defend and indemnify every other +Contributor ("Indemnified Contributor") against any losses, damages and +costs (collectively "Losses") arising from claims, lawsuits and other +legal actions brought by a third party against the Indemnified Contributor to +the extent caused by the acts or omissions of such Commercial Contributor in +connection with its distribution of the Program in a commercial product +offering. The obligations in this section do not apply to any claims or Losses +relating to any actual or alleged intellectual property infringement. In order +to qualify, an Indemnified Contributor must: a) promptly notify the Commercial +Contributor in writing of such claim, and b) allow the Commercial Contributor +to control, and cooperate with the Commercial Contributor in, the defense and +any related settlement negotiations. The Indemnified Contributor may participate +in any such claim at its own expense.</span> </p> + +<p><span style="font-size: 10pt;">For example, a Contributor might include the +Program in a commercial product offering, Product X. That Contributor is then a +Commercial Contributor. If that Commercial Contributor then makes performance +claims, or offers warranties related to Product X, those performance claims and +warranties are such Commercial Contributor's responsibility alone. Under this +section, the Commercial Contributor would have to defend claims against the +other Contributors related to those performance claims and warranties, and if a +court requires any other Contributor to pay any damages as a result, the +Commercial Contributor must pay those damages.</span> </p> + +<p><b><span style="font-size: 10pt;">5. NO WARRANTY</span></b> </p> + +<p><span style="font-size: 10pt;">EXCEPT AS EXPRESSLY SET FORTH IN THIS +AGREEMENT, THE PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT +WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING, +WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, +MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely +responsible for determining the appropriateness of using and distributing the +Program and assumes all risks associated with its exercise of rights under this +Agreement , including but not limited to the risks and costs of program errors, +compliance with applicable laws, damage to or loss of data, programs or +equipment, and unavailability or interruption of operations. </span></p> + +<p><b><span style="font-size: 10pt;">6. DISCLAIMER OF LIABILITY</span></b> </p> + +<p><span style="font-size: 10pt;">EXCEPT AS EXPRESSLY SET FORTH IN THIS +AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR +ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY +OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF +THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF +THE POSSIBILITY OF SUCH DAMAGES.</span> </p> + +<p><b><span style="font-size: 10pt;">7. GENERAL</span></b> </p> + +<p><span style="font-size: 10pt;">If any provision of this Agreement is invalid +or unenforceable under applicable law, it shall not affect the validity or +enforceability of the remainder of the terms of this Agreement, and without +further action by the parties hereto, such provision shall be reformed to the +minimum extent necessary to make such provision valid and enforceable.</span> </p> + +<p><span style="font-size: 10pt;">If Recipient institutes patent litigation +against any entity (including a cross-claim or counterclaim in a lawsuit) +alleging that the Program itself (excluding combinations of the Program with +other software or hardware) infringes such Recipient's patent(s), then such +Recipient's rights granted under Section 2(b) shall terminate as of the date +such litigation is filed. </span></p> + +<p><span style="font-size: 10pt;">All Recipient's rights under this Agreement +shall terminate if it fails to comply with any of the material terms or +conditions of this Agreement and does not cure such failure in a reasonable +period of time after becoming aware of such noncompliance. If all Recipient's +rights under this Agreement terminate, Recipient agrees to cease use and +distribution of the Program as soon as reasonably practicable. However, +Recipient's obligations under this Agreement and any licenses granted by +Recipient relating to the Program shall continue and survive. </span></p> + +<p><span style="font-size: 10pt;">Everyone is permitted to copy and distribute +copies of this Agreement, but in order to avoid inconsistency the Agreement is +copyrighted and may only be modified in the following manner. The Agreement +Steward reserves the right to publish new versions (including revisions) of +this Agreement from time to time. No one other than the Agreement Steward has +the right to modify this Agreement. The Eclipse Foundation is the initial +Agreement Steward. The Eclipse Foundation may assign the responsibility to +serve as the Agreement Steward to a suitable separate entity. Each new version +of the Agreement will be given a distinguishing version number. The Program +(including Contributions) may always be distributed subject to the version of +the Agreement under which it was received. In addition, after a new version of +the Agreement is published, Contributor may elect to distribute the Program +(including its Contributions) under the new version. Except as expressly stated +in Sections 2(a) and 2(b) above, Recipient receives no rights or licenses to +the intellectual property of any Contributor under this Agreement, whether +expressly, by implication, estoppel or otherwise. All rights in the Program not +expressly granted under this Agreement are reserved.</span> </p> + +<p><span style="font-size: 10pt;">This Agreement is governed by the laws of the +State of New York and the intellectual property laws of the United States of +America. No party to this Agreement will bring a legal action under this +Agreement more than one year after the cause of action arose. Each party waives +its rights to a jury trial in any resulting litigation.</span> </p> + +<p class="MsoNormal"><!--[if !supportEmptyParas]--> <!--[endif]--><o:p></o:p></p> + +</div> + +</body></html>
\ No newline at end of file diff --git a/plugins/org.eclipse.emf.cdo.tests/model1.ecore b/plugins/org.eclipse.emf.cdo.tests/model1.ecore new file mode 100644 index 0000000..9c39d34 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.tests/model1.ecore @@ -0,0 +1,69 @@ +<?xml version="1.0" encoding="UTF-8"?> +<ecore:EPackage xmi:version="2.0" + xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="model1" + nsURI="http://www.eclipse.org/emf/CDO/tests/model1/1.0.0" nsPrefix="model1"> + <eClassifiers xsi:type="ecore:EClass" name="Company"> + <eStructuralFeatures xsi:type="ecore:EReference" name="test" eType="ecore:EClass http://www.eclipse.org/emf/2002/Ecore#//EClass"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="street" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="city" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="categories" upperBound="-1" + eType="#//Category" containment="true"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="suppliers" upperBound="-1" + eType="#//Supplier" containment="true"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="customers" upperBound="-1" + eType="#//Customer" containment="true"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="purchaseOrders" upperBound="-1" + eType="#//PurchaseOrder" containment="true"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="salesOrders" upperBound="-1" + eType="#//SalesOrder" containment="true"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="Supplier"> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="street" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="city" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="purchaseOrders" upperBound="-1" + eType="#//PurchaseOrder" eOpposite="#//PurchaseOrder/supplier"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="Customer"> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="street" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="city" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="salesOrders" upperBound="-1" + eType="#//SalesOrder" eOpposite="#//SalesOrder/customer"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="Order"> + <eStructuralFeatures xsi:type="ecore:EReference" name="orderDetails" upperBound="-1" + eType="#//OrderDetail" containment="true" eOpposite="#//OrderDetail/order"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="OrderDetail"> + <eStructuralFeatures xsi:type="ecore:EReference" name="order" lowerBound="1" eType="#//Order" + eOpposite="#//Order/orderDetails"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="product" eType="#//Product" + eOpposite="#//Product/orderDetails"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="price" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EFloat"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="PurchaseOrder" eSuperTypes="#//Order"> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="date" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDate"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="supplier" lowerBound="1" + eType="#//Supplier" eOpposite="#//Supplier/purchaseOrders"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="SalesOrder" eSuperTypes="#//Order"> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="id" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="customer" lowerBound="1" + eType="#//Customer" eOpposite="#//Customer/salesOrders"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="Category"> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="categories" upperBound="-1" + eType="#//Category" containment="true"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="products" upperBound="-1" + eType="#//Product" containment="true"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="Product"> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="orderDetails" upperBound="-1" + eType="#//OrderDetail" eOpposite="#//OrderDetail/product"/> + </eClassifiers> +</ecore:EPackage> diff --git a/plugins/org.eclipse.emf.cdo.tests/model2.ecore b/plugins/org.eclipse.emf.cdo.tests/model2.ecore new file mode 100644 index 0000000..c193111 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.tests/model2.ecore @@ -0,0 +1,9 @@ +<?xml version="1.0" encoding="UTF-8"?> +<ecore:EPackage xmi:version="2.0" + xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="model2" + nsURI="http://model2" nsPrefix="model2"> + <eClassifiers xsi:type="ecore:EClass" name="CompanyProxy"> + <eStructuralFeatures xsi:type="ecore:EReference" name="company" eType="ecore:EClass model1.ecore#//Company"/> + </eClassifiers> +</ecore:EPackage> diff --git a/plugins/org.eclipse.emf.cdo.tests/plugin.properties b/plugins/org.eclipse.emf.cdo.tests/plugin.properties new file mode 100644 index 0000000..3e4b337 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.tests/plugin.properties @@ -0,0 +1,19 @@ +# <copyright> +# </copyright> +# +# $Id$ + +# ==================================================================== +# To code developer: +# Do NOT change the properties between this line and the +# "%%% END OF TRANSLATED PROPERTIES %%%" line. +# Make a new property name, append to the end of the file and change +# the code to use the new property. +# ==================================================================== + +# ==================================================================== +# %%% END OF TRANSLATED PROPERTIES %%% +# ==================================================================== + +pluginName = CDO Tests TDD (Incubation) +providerName = Eclipse.org diff --git a/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/AbstractCDOTest.java b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/AbstractCDOTest.java new file mode 100644 index 0000000..53fa877 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/AbstractCDOTest.java @@ -0,0 +1,243 @@ +/*************************************************************************** + * Copyright (c) 2004-2007 Eike Stepper, Germany. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Eike Stepper - initial API and implementation + **************************************************************************/ +package org.eclipse.emf.cdo.tests; + +import org.eclipse.emf.cdo.CDOObject; +import org.eclipse.emf.cdo.CDOSession; +import org.eclipse.emf.cdo.CDOState; +import org.eclipse.emf.cdo.eresource.CDOResource; +import org.eclipse.emf.cdo.internal.server.ContainerRepositoryProvider; +import org.eclipse.emf.cdo.internal.server.Repository; +import org.eclipse.emf.cdo.server.CDOServerUtil; +import org.eclipse.emf.cdo.server.db.IMappingStrategy; +import org.eclipse.emf.cdo.server.internal.db.DBStore; +import org.eclipse.emf.cdo.server.internal.db.HorizontalMappingStrategy; +import org.eclipse.emf.cdo.tests.model1.Model1Package; +import org.eclipse.emf.cdo.util.CDOUtil; + +import org.eclipse.net4j.db.ConnectionProvider; +import org.eclipse.net4j.db.DBUtil; +import org.eclipse.net4j.db.IDBAdapter; +import org.eclipse.net4j.db.internal.derby.DerbyAdapter; +import org.eclipse.net4j.tests.AbstractTransportTest; +import org.eclipse.net4j.util.container.IManagedContainer; + +import org.eclipse.emf.internal.cdo.util.FSMUtil; + +import javax.sql.DataSource; + +import java.util.Properties; +import java.util.concurrent.TimeUnit; +import java.util.concurrent.locks.Condition; +import java.util.concurrent.locks.Lock; + +/** + * @author Eike Stepper + */ +public abstract class AbstractCDOTest extends AbstractTransportTest +{ + public static final String REPOSITORY_NAME = "repo1"; + + @Override + protected IManagedContainer createContainer() + { + IManagedContainer container = super.createContainer(); + CDOUtil.prepareContainer(container); + CDOServerUtil.prepareContainer(container, new ContainerRepositoryProvider(container)); + CDOServerUtil.addRepository(container, createRepository()); + return container; + } + + protected Repository createRepository() + { + IMappingStrategy mappingStrategy = new HorizontalMappingStrategy(); + IDBAdapter dbAdapter = new DerbyAdapter(); + + Properties properties = new Properties(); + properties.put("driverClass", "org.apache.derby.jdbc.EmbeddedDataSource"); + properties.put("databaseName", "C:/temp/cdo-repo1"); + properties.put("createDatabase", "create"); + DataSource dataSource = DBUtil.createDataSource(properties); + ConnectionProvider connectionProvider = DBUtil.createConnectionProvider(dataSource); + + DBStore store = new DBStore(mappingStrategy, dbAdapter, connectionProvider); + mappingStrategy.setStore(store); + + Repository repository = new Repository(); + repository.setName(REPOSITORY_NAME); + repository.setStore(store); + + store.setRepository(repository); + return repository; + } + + @Override + protected void doSetUp() throws Exception + { + super.doSetUp(); + startTransport(); + } + + protected CDOSession openModel1Session() + { + CDOSession session = CDOUtil.openSession(getConnector(), REPOSITORY_NAME); + session.getPackageRegistry().putEPackage(Model1Package.eINSTANCE); + return session; + } + + protected void assertTransient(CDOObject object) + { + assertTrue(FSMUtil.isTransient(object)); + assertEquals(null, object.cdoID()); + assertEquals(null, object.cdoRevision()); + assertEquals(null, object.cdoView()); + assertEquals(object.eResource(), object.cdoResource()); + } + + protected void assertNotTransient(CDOObject object) + { + assertFalse(FSMUtil.isTransient(object)); + assertNotNull(object.cdoID()); + assertNotNull(object.cdoRevision()); + assertNotNull(object.cdoView()); + assertNotNull(object.cdoResource()); + assertNotNull(object.eResource()); + assertEquals(object.eResource(), object.cdoResource()); + } + + protected void assertNew(CDOObject object) + { + assertNotTransient(object); + assertEquals(CDOState.NEW, object.cdoState()); + } + + protected void assertDirty(CDOObject object) + { + assertNotTransient(object); + assertEquals(CDOState.DIRTY, object.cdoState()); + } + + protected void assertClean(CDOObject object) + { + assertNotTransient(object); + assertEquals(CDOState.CLEAN, object.cdoState()); + } + + protected void assertProxy(CDOObject object) + { + assertFalse(FSMUtil.isTransient(object)); + assertNotNull(object.cdoID()); + assertNotNull(object.cdoView()); + assertNotNull(object.cdoResource()); + assertNotNull(object.eResource()); + assertEquals(object.eResource(), object.cdoResource()); + assertEquals(CDOState.PROXY, object.cdoState()); + } + + protected void assertContent(CDOObject container, CDOObject contained) + { + assertEquals(container.eResource(), contained.eResource()); + assertEquals(container.cdoResource(), contained.cdoResource()); + assertTrue(container.eContents().contains(contained)); + if (container instanceof CDOResource) + { + assertEquals(null, contained.eContainer()); + assertTrue(((CDOResource)container).getContents().contains(contained)); + } + else + { + assertEquals(container, contained.eContainer()); + } + } + + /** + * @author Eike Stepper + */ + public static interface ITimeOuter + { + public boolean timedOut() throws InterruptedException; + } + + /** + * @author Eike Stepper + */ + public static abstract class PollingTimeOuter implements ITimeOuter + { + private int retries; + + private long interval; + + public PollingTimeOuter(int retries, long interval) + { + this.retries = retries; + this.interval = interval; + } + + public int getRetries() + { + return retries; + } + + public long getInterval() + { + return interval; + } + + public boolean timedOut() throws InterruptedException + { + for (int i = 0; i < retries; i++) + { + if (successful()) + { + return false; + } + + Thread.sleep(interval); + } + + return true; + } + + protected abstract boolean successful(); + } + + /** + * @author Eike Stepper + */ + public static class LockTimeOuter implements ITimeOuter + { + private Lock lock; + + private long millis; + + public LockTimeOuter(Lock lock, long millis) + { + this.lock = lock; + this.millis = millis; + } + + public Lock getLock() + { + return lock; + } + + public long getMillis() + { + return millis; + } + + public boolean timedOut() throws InterruptedException + { + Condition condition = lock.newCondition(); + return !condition.await(millis, TimeUnit.MILLISECONDS); + } + } +}
\ No newline at end of file diff --git a/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/Activator.java b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/Activator.java new file mode 100644 index 0000000..1c67941 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/Activator.java @@ -0,0 +1,60 @@ +package org.eclipse.emf.cdo.tests; + +import org.eclipse.core.runtime.Plugin; + +import org.osgi.framework.BundleContext; + +/** + * The activator class controls the plug-in life cycle + */ +public class Activator extends Plugin +{ + + // The plug-in ID + public static final String PLUGIN_ID = "org.eclipse.emf.cdo.tests"; + + // The shared instance + private static Activator plugin; + + /** + * The constructor + */ + public Activator() + { + } + + /* + * (non-Javadoc) + * + * @see org.eclipse.core.runtime.Plugins#start(org.osgi.framework.BundleContext) + */ + @Override + public void start(BundleContext context) throws Exception + { + super.start(context); + plugin = this; + } + + /* + * (non-Javadoc) + * + * @see org.eclipse.core.runtime.Plugin#stop(org.osgi.framework.BundleContext) + */ + @Override + public void stop(BundleContext context) throws Exception + { + plugin = null; + super.stop(context); + } + + /** + * Returns the shared instance + * + * @return the shared instance + */ + public static Activator getDefault() + { + return plugin; + } + +} diff --git a/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/AllTests.java b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/AllTests.java new file mode 100644 index 0000000..ceac314 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/AllTests.java @@ -0,0 +1,36 @@ +/*************************************************************************** + * Copyright (c) 2004-2007 Eike Stepper, Germany. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Eike Stepper - initial API and implementation + **************************************************************************/ +package org.eclipse.emf.cdo.tests; + +import junit.framework.Test; +import junit.framework.TestSuite; + +/** + * @author Eike Stepper + */ +public class AllTests +{ + public static Test suite() + { + TestSuite suite = new TestSuite("Tests for CDO"); + + // $JUnit-BEGIN$ + suite.addTestSuite(InitialTest.class); + suite.addTestSuite(ContainmentTest.class); + suite.addTestSuite(InvalidationTest.class); + suite.addTestSuite(CrossReferenceTest.class); + suite.addTestSuite(PackageRegistryTest.class); + suite.addTestSuite(GeneratedEcoreTest.class); + // $JUnit-END$ + + return suite; + } +} diff --git a/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/ContainmentTest.java b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/ContainmentTest.java new file mode 100644 index 0000000..8c7427f --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/ContainmentTest.java @@ -0,0 +1,273 @@ +/*************************************************************************** + * Copyright (c) 2004-2007 Eike Stepper, Germany. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Eike Stepper - initial API and implementation + **************************************************************************/ +package org.eclipse.emf.cdo.tests; + +import org.eclipse.emf.cdo.CDOSession; +import org.eclipse.emf.cdo.CDOTransaction; +import org.eclipse.emf.cdo.eresource.CDOResource; +import org.eclipse.emf.cdo.tests.model1.Category; +import org.eclipse.emf.cdo.tests.model1.Company; +import org.eclipse.emf.cdo.tests.model1.Model1Factory; +import org.eclipse.emf.cdo.tests.model1.Supplier; + +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl; + +/** + * @author Eike Stepper + */ +public class ContainmentTest extends AbstractCDOTest +{ + public void testTransientContainment() throws Exception + { + msg("Creating supplier"); + Supplier supplier = Model1Factory.eINSTANCE.createSupplier(); + + msg("Setting name"); + supplier.setName("Stepper"); + + msg("Creating company"); + Company company = Model1Factory.eINSTANCE.createCompany(); + + msg("Adding supplier"); + company.getSuppliers().add(supplier); + + assertTransient(company); + assertTransient(supplier); + assertContent(company, supplier); + } + + public void testBasicContainment() throws Exception + { + msg("Creating supplier"); + Supplier supplier = Model1Factory.eINSTANCE.createSupplier(); + + msg("Setting name"); + supplier.setName("Stepper"); + + msg("Creating company"); + Company company = Model1Factory.eINSTANCE.createCompany(); + + msg("Adding supplier"); + company.getSuppliers().add(supplier); + + msg("Opening session"); + CDOSession session = openModel1Session(); + + msg("Opening transaction"); + CDOTransaction transaction = session.openTransaction(new ResourceSetImpl()); + + msg("Creating resource"); + CDOResource resource = transaction.createResource("/test1"); + + msg("Adding company"); + resource.getContents().add(company); + + msg("Committing"); + transaction.commit(); + + assertClean(resource); + assertClean(company); + assertClean(supplier); + assertContent(resource, company); + assertContent(company, supplier); + } + + public void test3Levels() throws Exception + { + msg("Creating category1"); + Category category1 = Model1Factory.eINSTANCE.createCategory(); + category1.setName("category1"); + + msg("Creating category2"); + Category category2 = Model1Factory.eINSTANCE.createCategory(); + category2.setName("category2"); + + msg("Creating category3"); + Category category3 = Model1Factory.eINSTANCE.createCategory(); + category3.setName("category3"); + + msg("Creating company"); + Company company = Model1Factory.eINSTANCE.createCompany(); + + msg("Adding categories"); + company.getCategories().add(category1); + category1.getCategories().add(category2); + category2.getCategories().add(category3); + + msg("Opening session"); + CDOSession session = openModel1Session(); + + msg("Opening transaction"); + CDOTransaction transaction = session.openTransaction(new ResourceSetImpl()); + + msg("Creating resource"); + CDOResource resource = transaction.createResource("/test1"); + + msg("Adding company"); + resource.getContents().add(company); + + msg("Committing"); + transaction.commit(); + + assertClean(resource); + assertClean(company); + assertClean(category1); + assertClean(category2); + assertClean(category3); + assertContent(resource, company); + assertContent(company, category1); + assertContent(category1, category2); + assertContent(category2, category3); + } + + public void testSeparateView() throws Exception + { + msg("Opening session"); + CDOSession session = openModel1Session(); + + { + msg("Creating category1"); + Category category1 = Model1Factory.eINSTANCE.createCategory(); + category1.setName("category1"); + + msg("Creating category2"); + Category category2 = Model1Factory.eINSTANCE.createCategory(); + category2.setName("category2"); + + msg("Creating category3"); + Category category3 = Model1Factory.eINSTANCE.createCategory(); + category3.setName("category3"); + + msg("Creating company"); + Company company = Model1Factory.eINSTANCE.createCompany(); + + msg("Adding categories"); + company.getCategories().add(category1); + category1.getCategories().add(category2); + category2.getCategories().add(category3); + + msg("Opening transaction"); + CDOTransaction transaction = session.openTransaction(new ResourceSetImpl()); + + msg("Creating resource"); + CDOResource resource = transaction.createResource("/test1"); + + msg("Adding company"); + resource.getContents().add(company); + + msg("Committing"); + transaction.commit(); + } + + msg("Opening transaction"); + CDOTransaction transaction = session.openTransaction(new ResourceSetImpl()); + + msg("Loading resource"); + CDOResource resource = transaction.getResource("/test1"); + assertProxy(resource); + + EList<EObject> contents = resource.getContents(); + Company company = (Company)contents.get(0); + assertClean(company); + assertClean(resource); + assertContent(resource, company); + + Category category1 = company.getCategories().get(0); + assertClean(category1); + assertClean(company); + assertContent(company, category1); + + Category category2 = category1.getCategories().get(0); + assertClean(category2); + assertClean(category1); + assertContent(category1, category2); + + Category category3 = category2.getCategories().get(0); + assertClean(category3); + assertClean(category2); + assertContent(category2, category3); + assertClean(category3); + } + + public void testSeparateSession() throws Exception + { + { + msg("Opening session"); + CDOSession session = openModel1Session(); + + msg("Creating category1"); + Category category1 = Model1Factory.eINSTANCE.createCategory(); + category1.setName("category1"); + + msg("Creating category2"); + Category category2 = Model1Factory.eINSTANCE.createCategory(); + category2.setName("category2"); + + msg("Creating category3"); + Category category3 = Model1Factory.eINSTANCE.createCategory(); + category3.setName("category3"); + + msg("Creating company"); + Company company = Model1Factory.eINSTANCE.createCompany(); + + msg("Adding categories"); + company.getCategories().add(category1); + category1.getCategories().add(category2); + category2.getCategories().add(category3); + + msg("Opening transaction"); + CDOTransaction transaction = session.openTransaction(new ResourceSetImpl()); + + msg("Creating resource"); + CDOResource resource = transaction.createResource("/test1"); + + msg("Adding company"); + resource.getContents().add(company); + + msg("Committing"); + transaction.commit(); + } + + msg("Opening session"); + CDOSession session = openModel1Session(); + + msg("Opening transaction"); + CDOTransaction transaction = session.openTransaction(new ResourceSetImpl()); + + msg("Loading resource"); + CDOResource resource = transaction.getResource("/test1"); + assertProxy(resource); + + EList<EObject> contents = resource.getContents(); + Company company = (Company)contents.get(0); + assertClean(company); + assertClean(resource); + assertContent(resource, company); + + Category category1 = company.getCategories().get(0); + assertClean(category1); + assertClean(company); + assertContent(company, category1); + + Category category2 = category1.getCategories().get(0); + assertClean(category2); + assertClean(category1); + assertContent(category1, category2); + + Category category3 = category2.getCategories().get(0); + assertClean(category3); + assertClean(category2); + assertContent(category2, category3); + assertClean(category3); + } +} diff --git a/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/CrossReferenceTest.java b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/CrossReferenceTest.java new file mode 100644 index 0000000..b69d25a --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/CrossReferenceTest.java @@ -0,0 +1,263 @@ +/*************************************************************************** + * Copyright (c) 2004-2007 Eike Stepper, Germany. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Eike Stepper - initial API and implementation + **************************************************************************/ +package org.eclipse.emf.cdo.tests; + +import org.eclipse.emf.cdo.CDOSession; +import org.eclipse.emf.cdo.CDOTransaction; +import org.eclipse.emf.cdo.CDOView; +import org.eclipse.emf.cdo.eresource.CDOResource; +import org.eclipse.emf.cdo.tests.model1.Company; +import org.eclipse.emf.cdo.tests.model1.Customer; +import org.eclipse.emf.cdo.tests.model1.Model1Factory; +import org.eclipse.emf.cdo.tests.model1.SalesOrder; + +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl; + +/** + * @author Eike Stepper + */ +public class CrossReferenceTest extends AbstractCDOTest +{ + public void testLoadViaContainment() throws Exception + { + msg("Opening session"); + CDOSession session = openModel1Session(); + + // ************************************************************* // + + msg("Creating customer"); + Customer customerA = Model1Factory.eINSTANCE.createCustomer(); + customerA.setName("customer"); + + msg("Creating salesOrder1"); + SalesOrder salesOrder1A = Model1Factory.eINSTANCE.createSalesOrder(); + salesOrder1A.setId(1); + salesOrder1A.setCustomer(customerA); + + msg("Creating salesOrder2"); + SalesOrder salesOrder2A = Model1Factory.eINSTANCE.createSalesOrder(); + salesOrder2A.setId(2); + salesOrder2A.setCustomer(customerA); + + msg("Creating company"); + Company companyA = Model1Factory.eINSTANCE.createCompany(); + companyA.getCustomers().add(customerA); + companyA.getSalesOrders().add(salesOrder1A); + companyA.getSalesOrders().add(salesOrder2A); + + msg("Attaching transaction"); + CDOTransaction transaction = session.openTransaction(new ResourceSetImpl()); + + msg("Creating resource"); + CDOResource resourceA = transaction.createResource("/test1"); + + msg("Adding company"); + resourceA.getContents().add(companyA); + + msg("Committing"); + transaction.commit(); + + assertEquals(2, customerA.getSalesOrders().size()); + + // ************************************************************* // + + msg("Attaching viewB"); + CDOView viewB = session.openTransaction(new ResourceSetImpl()); + + msg("Loading resource"); + CDOResource resourceB = viewB.getResource("/test1"); + assertProxy(resourceB); + + EList<EObject> contents = resourceB.getContents(); + Company companyB = (Company)contents.get(0); + assertClean(companyB); + assertClean(resourceB); + assertContent(resourceB, companyB); + + Customer customerB = companyB.getCustomers().get(0); + assertClean(customerB); + assertClean(companyB); + assertContent(companyB, customerB); + + SalesOrder salesOrder1B = companyB.getSalesOrders().get(0); + assertClean(salesOrder1B); + assertClean(companyB); + assertContent(companyB, salesOrder1B); + + SalesOrder salesOrder2B = companyB.getSalesOrders().get(1); + assertClean(salesOrder2B); + assertClean(companyB); + assertContent(companyB, salesOrder2B); + assertClean(salesOrder2B); + + assertEquals(2, customerB.getSalesOrders().size()); + } + + public void testLoadViaXRef() throws Exception + { + msg("Opening session"); + CDOSession session = openModel1Session(); + + // ************************************************************* // + + msg("Creating customer"); + Customer customerA = Model1Factory.eINSTANCE.createCustomer(); + customerA.setName("customer"); + + msg("Creating salesOrder1"); + SalesOrder salesOrder1A = Model1Factory.eINSTANCE.createSalesOrder(); + salesOrder1A.setId(1); + salesOrder1A.setCustomer(customerA); + + msg("Creating salesOrder2"); + SalesOrder salesOrder2A = Model1Factory.eINSTANCE.createSalesOrder(); + salesOrder2A.setId(2); + salesOrder2A.setCustomer(customerA); + + msg("Creating company"); + Company companyA = Model1Factory.eINSTANCE.createCompany(); + companyA.getCustomers().add(customerA); + companyA.getSalesOrders().add(salesOrder1A); + companyA.getSalesOrders().add(salesOrder2A); + + msg("Attaching transaction"); + CDOTransaction transaction = session.openTransaction(new ResourceSetImpl()); + + msg("Creating resource"); + CDOResource resourceA = transaction.createResource("/test1"); + + msg("Adding company"); + resourceA.getContents().add(companyA); + + msg("Committing"); + transaction.commit(); + + assertEquals(2, customerA.getSalesOrders().size()); + + // ************************************************************* // + + msg("Attaching viewB"); + CDOView viewB = session.openTransaction(new ResourceSetImpl()); + + msg("Loading resource"); + CDOResource resourceB = viewB.getResource("/test1"); + assertProxy(resourceB); + + EList<EObject> contents = resourceB.getContents(); + Company companyB = (Company)contents.get(0); + assertClean(companyB); + assertClean(resourceB); + assertContent(resourceB, companyB); + + Customer customerB = companyB.getCustomers().get(0); + assertClean(customerB); + assertClean(companyB); + assertContent(companyB, customerB); + + SalesOrder salesOrder1B = customerB.getSalesOrders().get(0); + assertClean(salesOrder1B); + assertClean(companyB); + assertContent(companyB, salesOrder1B); + + SalesOrder salesOrder2B = customerB.getSalesOrders().get(1); + assertClean(salesOrder2B); + assertClean(companyB); + assertContent(companyB, salesOrder2B); + assertClean(salesOrder2B); + } + + public void testTwoResources() throws Exception + { + msg("Opening session"); + CDOSession session = openModel1Session(); + + msg("Attaching transaction"); + CDOTransaction transaction = session.openTransaction(new ResourceSetImpl()); + + // ************************************************************* // + + msg("Creating customer"); + Customer customerA = Model1Factory.eINSTANCE.createCustomer(); + customerA.setName("customer"); + + msg("Creating company1"); + Company company1A = Model1Factory.eINSTANCE.createCompany(); + company1A.getCustomers().add(customerA); + + msg("Creating resource1"); + CDOResource resource1A = transaction.createResource("/test1"); + + msg("Adding company1"); + resource1A.getContents().add(company1A); + + // ************************************************************* // + + msg("Creating salesOrder1"); + SalesOrder salesOrder1A = Model1Factory.eINSTANCE.createSalesOrder(); + assertTransient(salesOrder1A); + salesOrder1A.setId(1); + salesOrder1A.setCustomer(customerA); + assertTransient(salesOrder1A); + + msg("Creating salesOrder2"); + SalesOrder salesOrder2A = Model1Factory.eINSTANCE.createSalesOrder(); + assertTransient(salesOrder2A); + salesOrder2A.setId(2); + salesOrder2A.setCustomer(customerA); + assertTransient(salesOrder2A); + + msg("Creating company2"); + Company company2A = Model1Factory.eINSTANCE.createCompany(); + company2A.getSalesOrders().add(salesOrder1A); + company2A.getSalesOrders().add(salesOrder2A); + + msg("Creating resource2"); + CDOResource resource2A = transaction.createResource("/test2"); + + msg("Adding company"); + resource2A.getContents().add(company2A); + + // ************************************************************* // + + msg("Committing"); + transaction.commit(); + + assertEquals(2, customerA.getSalesOrders().size()); + + // ************************************************************* // + + msg("Attaching viewB"); + CDOView viewB = session.openTransaction(new ResourceSetImpl()); + + msg("Loading resource1"); + CDOResource resource1B = viewB.getResource("/test1"); + assertProxy(resource1B); + + EList<EObject> contents = resource1B.getContents(); + Company company1B = (Company)contents.get(0); + assertClean(company1B); + assertClean(resource1B); + assertContent(resource1B, company1B); + + Customer customerB = company1B.getCustomers().get(0); + assertClean(customerB); + assertClean(company1B); + assertContent(company1B, customerB); + + SalesOrder salesOrder1B = customerB.getSalesOrders().get(0); + assertClean(salesOrder1B); + + SalesOrder salesOrder2B = customerB.getSalesOrders().get(1); + assertClean(salesOrder2B); + } +} diff --git a/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/DymamicEcoreTest.java b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/DymamicEcoreTest.java new file mode 100644 index 0000000..f01010c --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/DymamicEcoreTest.java @@ -0,0 +1,80 @@ +/*************************************************************************** + * Copyright (c) 2004-2007 Eike Stepper, Germany. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Eike Stepper - initial API and implementation + **************************************************************************/ +package org.eclipse.emf.cdo.tests; + +import org.eclipse.emf.cdo.CDOSession; +import org.eclipse.emf.cdo.CDOTransaction; +import org.eclipse.emf.cdo.eresource.CDOResource; +import org.eclipse.emf.cdo.util.CDOUtil; + +import org.eclipse.emf.common.util.URI; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.EPackage; +import org.eclipse.emf.ecore.resource.Resource; +import org.eclipse.emf.ecore.resource.ResourceSet; +import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl; +import org.eclipse.emf.ecore.util.EcoreUtil; +import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl; + +import java.io.IOException; + +/** + * @author Eike Stepper + */ +public class DymamicEcoreTest extends AbstractCDOTest +{ + public void testDynamicEcore() throws Exception + { + { + // Obtain model + EPackage ecore = (EPackage)loadModel("ecore/Ecore.ecore", EPackage.Registry.INSTANCE); + + // Create resource in session 1 + CDOSession session = CDOUtil.openSession(getConnector(), REPOSITORY_NAME); + session.getPackageRegistry().putEPackage(ecore); + CDOTransaction transaction = session.openTransaction(); + CDOResource res = transaction.createResource("/res"); + + EObject root = loadModel("model1.ecore", session.getPackageRegistry()); + res.getContents().add(root); + transaction.commit(); + } + + { + // Load resource in session 2 + CDOSession session = CDOUtil.openSession(getConnector(), REPOSITORY_NAME); + CDOTransaction transaction = session.openTransaction(); + CDOResource res = transaction.getResource("/res"); + + EObject root = res.getContents().get(0); + saveModel("model1X.ecore", root); + } + } + + private static EObject loadModel(String fileName, EPackage.Registry packageRegistry) throws IOException + { + ResourceSet resourceSet = new ResourceSetImpl(); + resourceSet.getResourceFactoryRegistry().getExtensionToFactoryMap().put("*", new XMIResourceFactoryImpl()); + resourceSet.setPackageRegistry(packageRegistry); + + Resource resource = resourceSet.getResource(URI.createFileURI(fileName), true); + return resource.getContents().get(0); + } + + private static void saveModel(String fileName, EObject root) throws IOException + { + ResourceSet resourceSet = new ResourceSetImpl(); + resourceSet.getResourceFactoryRegistry().getExtensionToFactoryMap().put("*", new XMIResourceFactoryImpl()); + Resource resource = resourceSet.getResource(URI.createFileURI(fileName), true); + resource.getContents().add(EcoreUtil.copy(root)); + resource.save(null); + } +} diff --git a/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/DymamicUmlTest.java b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/DymamicUmlTest.java new file mode 100644 index 0000000..f3594c5 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/DymamicUmlTest.java @@ -0,0 +1,105 @@ +/*************************************************************************** + * Copyright (c) 2004-2007 Eike Stepper, Germany. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Eike Stepper - initial API and implementation + **************************************************************************/ +package org.eclipse.emf.cdo.tests; + +import org.eclipse.emf.cdo.CDOObject; +import org.eclipse.emf.cdo.CDOSession; +import org.eclipse.emf.cdo.CDOTransaction; +import org.eclipse.emf.cdo.eresource.CDOResource; +import org.eclipse.emf.cdo.tests.model1.Company; +import org.eclipse.emf.cdo.tests.model1.Model1Factory; +import org.eclipse.emf.cdo.tests.model1.Model1Package; +import org.eclipse.emf.cdo.util.CDOUtil; + +import org.eclipse.emf.common.util.URI; +import org.eclipse.emf.ecore.EAttribute; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EPackage; +import org.eclipse.emf.ecore.resource.Resource; +import org.eclipse.emf.ecore.resource.ResourceSet; +import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl; +import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl; + +import java.io.IOException; + +/** + * @author Eike Stepper + */ +public class DymamicUmlTest extends AbstractCDOTest +{ + public void testGeneratedPackage() throws Exception + { + { + // Create resource in session 1 + CDOSession session = CDOUtil.openSession(getConnector(), REPOSITORY_NAME); + session.getPackageRegistry().putEPackage(Model1Package.eINSTANCE); + CDOTransaction transaction = session.openTransaction(); + CDOResource res = transaction.createResource("/res"); + + Company company = Model1Factory.eINSTANCE.createCompany(); + company.setName("Eike"); + res.getContents().add(company); + transaction.commit(); + } + + { + // Load resource in session 2 + CDOSession session = CDOUtil.openSession(getConnector(), REPOSITORY_NAME); + CDOTransaction transaction = session.openTransaction(); + CDOResource res = transaction.getResource("/res"); + + Company company = (Company)res.getContents().get(0); + assertEquals("Eike", company.getName()); + } + } + + public void testDynamicPackage() throws Exception + { + { + // Obtain model + EPackage model1 = loadModel("model1.ecore"); + EClass companyClass = (EClass)model1.getEClassifier("Company"); + EAttribute nameAttribute = (EAttribute)companyClass.getEStructuralFeature("name"); + + // Create resource in session 1 + CDOSession session = CDOUtil.openSession(getConnector(), REPOSITORY_NAME); + session.getPackageRegistry().putEPackage(model1); + CDOTransaction transaction = session.openTransaction(); + CDOResource res = transaction.createResource("/res"); + + CDOObject company = transaction.newInstance(companyClass); + company.eSet(nameAttribute, "Eike"); + res.getContents().add(company); + transaction.commit(); + } + + { + // Load resource in session 2 + CDOSession session = CDOUtil.openSession(getConnector(), REPOSITORY_NAME); + CDOTransaction transaction = session.openTransaction(); + CDOResource res = transaction.getResource("/res"); + + CDOObject company = (CDOObject)res.getContents().get(0); + EClass companyClass = company.eClass(); + EAttribute nameAttribute = (EAttribute)companyClass.getEStructuralFeature("name"); + String name = (String)company.eGet(nameAttribute); + assertEquals("Eike", name); + } + } + + private static EPackage loadModel(String fileName) throws IOException + { + ResourceSet resourceSet = new ResourceSetImpl(); + resourceSet.getResourceFactoryRegistry().getExtensionToFactoryMap().put("*", new XMIResourceFactoryImpl()); + Resource resource = resourceSet.getResource(URI.createFileURI(fileName), true); + return (EPackage)resource.getContents().get(0); + } +} diff --git a/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/EMFTest.java b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/EMFTest.java new file mode 100644 index 0000000..370d417 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/EMFTest.java @@ -0,0 +1,73 @@ +/*************************************************************************** + * Copyright (c) 2004 - 2007 Eike Stepper, Germany. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Eike Stepper - initial API and implementation + **************************************************************************/ +package org.eclipse.emf.cdo.tests; + +import org.eclipse.emf.cdo.util.EMFUtil; + +import org.eclipse.net4j.util.tests.AbstractOMTest; + +import org.eclipse.emf.common.util.URI; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.EPackage; +import org.eclipse.emf.ecore.EReference; +import org.eclipse.emf.ecore.InternalEObject; + +/** + * @author Eike Stepper + */ +public class EMFTest extends AbstractOMTest +{ + public EMFTest() + { + } + + public void testProxy() + { + EPackage model2 = (EPackage)EMFUtil.loadXMI("model2.ecore"); + EClass companyProxy = (EClass)model2.getEClassifier("CompanyProxy"); + EReference reference = (EReference)companyProxy.getEStructuralFeature("company"); + + EClass type = (EClass)reference.getEType(); + dumpProxy(type); + System.out.println(type.getName()); + dumpProxy(type); + + System.out.println(); + + if (false) + { + model2.eResource().getResourceSet().getResources().get(1).unload(); + } + else + { + ((InternalEObject)type).eSetProxyURI(URI.createURI("model1.ecore#//Company")); + } + + if (true) + { + type = (EClass)reference.getEType(); + } + + dumpProxy(type); + System.out.println(type.getName()); + dumpProxy(type); + } + + private void dumpProxy(EObject object) + { + InternalEObject eObject = (InternalEObject)object; + String label = eObject.eClass().getName(); + + System.out.println(label + ": " + eObject.eIsProxy()); + System.out.println(label + ": " + eObject.eProxyURI()); + } +} diff --git a/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/GeneratedEcoreTest.java b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/GeneratedEcoreTest.java new file mode 100644 index 0000000..cb362bd --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/GeneratedEcoreTest.java @@ -0,0 +1,58 @@ +/*************************************************************************** + * Copyright (c) 2004-2007 Eike Stepper, Germany. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Eike Stepper - initial API and implementation + **************************************************************************/ +package org.eclipse.emf.cdo.tests; + +import org.eclipse.emf.cdo.CDOSession; +import org.eclipse.emf.cdo.CDOTransaction; +import org.eclipse.emf.cdo.eresource.CDOResource; +import org.eclipse.emf.cdo.util.CDOUtil; +import org.eclipse.emf.cdo.util.EMFUtil; + +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.EPackage; +import org.eclipse.emf.ecore.EcorePackage; + +/** + * @author Eike Stepper + */ +public class GeneratedEcoreTest extends AbstractCDOTest +{ + public void testGeneratedEcore() throws Exception + { + // Obtain model + EPackage ecore = EcorePackage.eINSTANCE; + + // Create resource in session 1 + CDOSession session1 = CDOUtil.openSession(getConnector(), REPOSITORY_NAME); + session1.getPackageRegistry().putEPackage(ecore); + CDOTransaction transaction1 = session1.openTransaction(); + CDOResource res1 = transaction1.createResource("/res"); + + EPackage root1 = (EPackage)EMFUtil.loadEcore("model1.ecore", session1.getPackageRegistry()); + res1.getContents().add(root1); + transaction1.commit(); + + // Load resource in session 2 + CDOSession session2 = CDOUtil.openSession(getConnector(), REPOSITORY_NAME); + CDOTransaction transaction2 = session2.openTransaction(); + CDOResource res2 = transaction2.getResource("/res"); + + EList<EObject> contents = res2.getContents(); + EPackage root2 = (EPackage)contents.get(0); + assertFalse("Unresolved proxy", root2.eIsProxy()); + assertEquals(res2, root2.eResource()); + + CDOUtil.load(root2, transaction2);// FIXME + EMFUtil.saveEcore("model1X.ecore", root2); + // assertTrue("Models differ", EcoreUtil.equals(root1, root2)); + } +} diff --git a/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/InitialTest.java b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/InitialTest.java new file mode 100644 index 0000000..03591e9 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/InitialTest.java @@ -0,0 +1,627 @@ +/*************************************************************************** + * Copyright (c) 2004-2007 Eike Stepper, Germany. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Eike Stepper - initial API and implementation + **************************************************************************/ +package org.eclipse.emf.cdo.tests; + +import org.eclipse.emf.cdo.CDOSession; +import org.eclipse.emf.cdo.CDOState; +import org.eclipse.emf.cdo.CDOTransaction; +import org.eclipse.emf.cdo.eresource.CDOResource; +import org.eclipse.emf.cdo.tests.model1.Model1Factory; +import org.eclipse.emf.cdo.tests.model1.PurchaseOrder; +import org.eclipse.emf.cdo.tests.model1.Supplier; +import org.eclipse.emf.cdo.util.CDOUtil; + +import org.eclipse.net4j.IBufferHandler; +import org.eclipse.net4j.IChannel; + +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.common.util.URI; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.resource.ResourceSet; +import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl; + +import java.util.Date; + +/** + * @author Eike Stepper + */ +public class InitialTest extends AbstractCDOTest +{ + public void testTransientObject() throws Exception + { + final Date date = new Date(); + + msg("Creating supplier"); + Supplier supplier = Model1Factory.eINSTANCE.createSupplier(); + assertTransient(supplier); + + msg("Setting name"); + supplier.setName("Stepper"); + assertTransient(supplier); + + msg("Verifying name"); + assertEquals("Stepper", supplier.getName()); + assertTransient(supplier); + + msg("Creating purchaseOrder"); + PurchaseOrder purchaseOrder = Model1Factory.eINSTANCE.createPurchaseOrder(); + assertTransient(purchaseOrder); + + msg("Setting date"); + purchaseOrder.setDate(date); + assertTransient(purchaseOrder); + + msg("Verifying date"); + assertEquals(date, purchaseOrder.getDate()); + assertTransient(purchaseOrder); + + msg("Setting supplier"); + purchaseOrder.setSupplier(supplier); + assertTransient(supplier); + assertTransient(purchaseOrder); + + msg("Verifying supplier"); + assertEquals(supplier, purchaseOrder.getSupplier()); + assertTransient(supplier); + assertTransient(purchaseOrder); + } + + public void testTransientResource() throws Exception + { + final URI uri = URI.createURI("cdo:/test1"); + + msg("Creating resourceSet"); + ResourceSet resourceSet = new ResourceSetImpl(); + CDOUtil.prepareResourceSet(resourceSet); + + msg("Creating resource"); + CDOResource resource = (CDOResource)resourceSet.createResource(uri); + assertTransient(resource); + + msg("Creating supplier"); + Supplier supplier = Model1Factory.eINSTANCE.createSupplier(); + assertTransient(supplier); + assertEquals(null, supplier.eContainer()); + + msg("Verifying contents"); + EList<EObject> contents = resource.getContents(); + assertNotNull(contents); + assertTrue(contents.isEmpty()); + assertEquals(0, contents.size()); + assertTransient(resource); + + msg("Adding supplier"); + contents.add(supplier); + assertTransient(resource); + assertTransient(supplier); + assertContent(resource, supplier); + } + + public void testOpenSession() throws Exception + { + msg("Opening session"); + CDOSession session = openModel1Session(); + assertNotNull(session); + + IChannel channel = session.getChannel(); + assertNotNull(channel); + + IBufferHandler receiveHandler = channel.getReceiveHandler(); + assertNotNull(receiveHandler); + } + + public void testStartTransaction() throws Exception + { + msg("Opening session"); + CDOSession session = openModel1Session(); + + msg("Opening transaction"); + CDOTransaction transaction = session.openTransaction(new ResourceSetImpl()); + assertNotNull(transaction); + assertEquals(session, transaction.getSession()); + } + + public void testAttachResource() throws Exception + { + msg("Opening session"); + CDOSession session = openModel1Session(); + + msg("Opening transaction"); + CDOTransaction transaction = session.openTransaction(new ResourceSetImpl()); + + msg("Creating resource"); + CDOResource resource = transaction.createResource("/test1"); + assertNew(resource); + assertEquals(URI.createURI("cdo:/test1"), resource.getURI()); + ResourceSet expected = transaction.getResourceSet(); + ResourceSet actual = resource.getResourceSet(); + assertEquals(expected, actual); + + } + + public void testAttachView() throws Exception + { + final URI uri = URI.createURI("cdo:/test1"); + + msg("Creating resourceSet"); + ResourceSet resourceSet = new ResourceSetImpl(); + CDOUtil.prepareResourceSet(resourceSet); + + msg("Creating resource"); + CDOResource resource = (CDOResource)resourceSet.createResource(uri); + assertTransient(resource); + + msg("Opening session"); + CDOSession session = openModel1Session(); + + msg("Opening transaction"); + CDOTransaction transaction = session.openTransaction(resourceSet); + + msg("Verifying resource"); + assertNew(resource); + assertEquals(uri, resource.getURI()); + assertEquals(transaction.getResourceSet(), resource.getResourceSet()); + } + + public void testAttachViewWithObject() throws Exception + { + final URI uri = URI.createURI("cdo:/test1"); + + msg("Creating resourceSet"); + ResourceSet resourceSet = new ResourceSetImpl(); + CDOUtil.prepareResourceSet(resourceSet); + + msg("Creating resource"); + CDOResource resource = (CDOResource)resourceSet.createResource(uri); + assertTransient(resource); + + msg("Creating supplier"); + Supplier supplier = Model1Factory.eINSTANCE.createSupplier(); + assertTransient(supplier); + + msg("Setting name"); + supplier.setName("Stepper"); + assertTransient(supplier); + + msg("Verifying name"); + assertEquals("Stepper", supplier.getName()); + assertTransient(supplier); + + msg("Adding supplier"); + EList<EObject> contents = resource.getContents(); + contents.add(supplier); + assertTransient(resource); + assertTransient(supplier); + assertContent(resource, supplier); + + msg("Verifying supplier"); + contents = resource.getContents(); + assertNotNull(contents); + assertEquals(1, contents.size()); + + msg("Opening session"); + CDOSession session = openModel1Session(); + + msg("Opening transaction"); + CDOTransaction transaction = session.openTransaction(resourceSet); + + msg("Verifying resource"); + assertNew(resource); + assertEquals(uri, resource.getURI()); + assertEquals(transaction.getResourceSet(), resource.getResourceSet()); + + msg("Verifying contents"); + contents = resource.getContents(); + assertNotNull(contents); + assertEquals(1, contents.size()); + + msg("Verifying supplier"); + Supplier s = (Supplier)contents.get(0); + assertNew(supplier); + assertNew(resource); + assertEquals(supplier, s); + assertEquals(resource, s.cdoResource()); + assertEquals(null, s.eContainer()); + } + + public void testAttachObject() throws Exception + { + msg("Creating supplier"); + Supplier supplier = Model1Factory.eINSTANCE.createSupplier(); + + msg("Setting name"); + supplier.setName("Stepper"); + + msg("Opening session"); + CDOSession session = openModel1Session(); + + msg("Opening transaction"); + CDOTransaction transaction = session.openTransaction(new ResourceSetImpl()); + + msg("Creating resource"); + CDOResource resource = transaction.createResource("/test1"); + + msg("Getting contents"); + EList<EObject> contents = resource.getContents(); + + msg("Adding supplier"); + contents.add(supplier); + assertNew(supplier); + assertEquals(transaction, supplier.cdoView()); + assertEquals(resource, supplier.cdoResource()); + assertEquals(resource, supplier.eResource()); + assertEquals(null, supplier.eContainer()); + } + + public void testCommitNew() throws Exception + { + msg("Opening session"); + CDOSession session = openModel1Session(); + + msg("Opening transaction"); + CDOTransaction transaction = session.openTransaction(new ResourceSetImpl()); + + msg("Creating resource"); + CDOResource resource = transaction.createResource("/test1"); + + msg("Creating supplier"); + Supplier supplier = Model1Factory.eINSTANCE.createSupplier(); + + msg("Setting name"); + supplier.setName("Stepper"); + + msg("Adding supplier"); + resource.getContents().add(supplier); + + msg("Committing"); + transaction.commit(); + assertEquals(CDOState.CLEAN, resource.cdoState()); + assertEquals(CDOState.CLEAN, supplier.cdoState()); + } + + public void testReadResourceClean() throws Exception + { + msg("Opening session"); + CDOSession session = openModel1Session(); + + msg("Opening transaction"); + CDOTransaction transaction = session.openTransaction(new ResourceSetImpl()); + + msg("Creating resource"); + CDOResource resource = transaction.createResource("/test1"); + + msg("Creating supplier"); + Supplier supplier = Model1Factory.eINSTANCE.createSupplier(); + + msg("Setting name"); + supplier.setName("Stepper"); + + msg("Adding supplier"); + resource.getContents().add(supplier); + + msg("Committing"); + transaction.commit(); + + msg("Getting supplier"); + EList<EObject> contents = resource.getContents(); + Supplier s = (Supplier)contents.get(0); + assertEquals(supplier, s); + } + + public void testReadObjectClean() throws Exception + { + msg("Opening session"); + CDOSession session = openModel1Session(); + + msg("Opening transaction"); + CDOTransaction transaction = session.openTransaction(new ResourceSetImpl()); + + msg("Creating resource"); + CDOResource resource = transaction.createResource("/test1"); + + msg("Creating supplier"); + Supplier supplier = Model1Factory.eINSTANCE.createSupplier(); + + msg("Setting name"); + supplier.setName("Stepper"); + + msg("Adding supplier"); + resource.getContents().add(supplier); + + msg("Committing"); + transaction.commit(); + + msg("Getting supplier"); + Supplier s = (Supplier)resource.getContents().get(0); + + msg("Verifying name"); + assertEquals("Stepper", s.getName()); + } + + public void testWriteClean() throws Exception + { + msg("Opening session"); + CDOSession session = openModel1Session(); + + msg("Opening transaction"); + CDOTransaction transaction = session.openTransaction(new ResourceSetImpl()); + + msg("Creating resource"); + CDOResource resource = transaction.createResource("/test1"); + + msg("Creating supplier"); + Supplier supplier = Model1Factory.eINSTANCE.createSupplier(); + + msg("Setting name"); + supplier.setName("Stepper"); + + msg("Adding supplier"); + resource.getContents().add(supplier); + + msg("Committing"); + transaction.commit(); + + msg("Getting supplier"); + Supplier s = (Supplier)resource.getContents().get(0); + + msg("Setting name"); + s.setName("Eike"); + assertEquals("Eike", s.getName()); + assertEquals(CDOState.DIRTY, supplier.cdoState()); + assertEquals(CDOState.CLEAN, resource.cdoState()); + } + + public void testCommitDirty() throws Exception + { + msg("Opening session"); + CDOSession session = openModel1Session(); + + msg("Opening transaction"); + CDOTransaction transaction = session.openTransaction(new ResourceSetImpl()); + + msg("Creating resource"); + CDOResource resource = transaction.createResource("/test1"); + + msg("Creating supplier"); + Supplier supplier = Model1Factory.eINSTANCE.createSupplier(); + + msg("Setting name"); + supplier.setName("Stepper"); + + msg("Adding supplier"); + resource.getContents().add(supplier); + + msg("Committing"); + transaction.commit(); + + msg("Setting name"); + supplier.setName("Eike"); + + msg("Committing"); + transaction.commit(); + assertEquals(CDOState.CLEAN, resource.cdoState()); + assertEquals(CDOState.CLEAN, supplier.cdoState()); + } + + public void testGetResource() throws Exception + { + msg("Opening session"); + CDOSession session = openModel1Session(); + + { + disableConsole(); + msg("Opening transaction"); + CDOTransaction transaction = session.openTransaction(new ResourceSetImpl()); + + msg("Creating resource"); + CDOResource resource = transaction.createResource("/test1"); + + msg("Creating supplier"); + Supplier supplier = Model1Factory.eINSTANCE.createSupplier(); + + msg("Setting name"); + supplier.setName("Stepper"); + + msg("Adding supplier"); + resource.getContents().add(supplier); + + msg("Committing"); + transaction.commit(); + enableConsole(); + } + + msg("Opening transaction"); + CDOTransaction transaction = session.openTransaction(new ResourceSetImpl()); + + msg("Getting resource"); + CDOResource resource = transaction.getResource("/test1"); + assertNotNull(resource); + assertEquals(URI.createURI("cdo:/test1"), resource.getURI()); + assertEquals(transaction.getResourceSet(), resource.getResourceSet()); + assertEquals(CDOState.PROXY, resource.cdoState()); + assertEquals(transaction, resource.cdoView()); + assertNull(resource.cdoRevision()); + } + + public void testGetContents() throws Exception + { + msg("Opening session"); + CDOSession session = openModel1Session(); + + { + disableConsole(); + msg("Opening transaction"); + CDOTransaction transaction = session.openTransaction(new ResourceSetImpl()); + + msg("Creating resource"); + CDOResource resource = transaction.createResource("/test1"); + + msg("Creating supplier"); + Supplier supplier = Model1Factory.eINSTANCE.createSupplier(); + + msg("Setting name"); + supplier.setName("Stepper"); + + msg("Adding supplier"); + resource.getContents().add(supplier); + + msg("Committing"); + transaction.commit(); + enableConsole(); + } + + msg("Opening transaction"); + CDOTransaction transaction = session.openTransaction(new ResourceSetImpl()); + + msg("Getting resource"); + CDOResource resource = transaction.getResource("/test1"); + + msg("Getting contents"); + EList<EObject> contents = resource.getContents(); + assertNotNull(contents); + } + + public void testReadObjectProxy() throws Exception + { + msg("Opening session"); + CDOSession session = openModel1Session(); + + { + disableConsole(); + msg("Opening transaction"); + CDOTransaction transaction = session.openTransaction(new ResourceSetImpl()); + + msg("Creating resource"); + CDOResource resource = transaction.createResource("/test1"); + + msg("Creating supplier"); + Supplier supplier = Model1Factory.eINSTANCE.createSupplier(); + + msg("Setting name"); + supplier.setName("Stepper"); + + msg("Adding supplier"); + resource.getContents().add(supplier); + + msg("Committing"); + transaction.commit(); + enableConsole(); + } + + msg("Opening transaction"); + CDOTransaction transaction = session.openTransaction(new ResourceSetImpl()); + + msg("Getting resource"); + CDOResource resource = transaction.getResource("/test1"); + + msg("Getting contents"); + EList<EObject> contents = resource.getContents(); + + msg("Getting supplier"); + Supplier s = (Supplier)contents.get(0); + assertNotNull(s); + + msg("Verifying name"); + assertEquals("Stepper", s.getName()); + } + + public void testLoadResource() throws Exception + { + { + // disableConsole(); + msg("Opening session"); + CDOSession session = openModel1Session(); + + msg("Opening transaction"); + CDOTransaction transaction = session.openTransaction(new ResourceSetImpl()); + + msg("Creating resource"); + CDOResource resource = transaction.createResource("/test1"); + + msg("Creating supplier"); + Supplier supplier = Model1Factory.eINSTANCE.createSupplier(); + + msg("Setting name"); + supplier.setName("Stepper"); + + msg("Adding supplier"); + resource.getContents().add(supplier); + + msg("Committing"); + transaction.commit(); + // XXX session.close(); + // enableConsole(); + } + + msg("Opening session"); + CDOSession session = openModel1Session(); + + msg("Opening transaction"); + CDOTransaction transaction = session.openTransaction(new ResourceSetImpl()); + + msg("Getting resource"); + CDOResource resource = transaction.getResource("/test1"); + assertNotNull(resource); + assertEquals(URI.createURI("cdo:/test1"), resource.getURI()); + assertEquals(transaction.getResourceSet(), resource.getResourceSet()); + assertEquals(CDOState.PROXY, resource.cdoState()); + assertEquals(transaction, resource.cdoView()); + assertNull(resource.cdoRevision()); + } + + public void testLoadObject() throws Exception + { + { + // disableConsole(); + msg("Opening session"); + CDOSession session = openModel1Session(); + + msg("Opening transaction"); + CDOTransaction transaction = session.openTransaction(new ResourceSetImpl()); + + msg("Creating resource"); + CDOResource resource = transaction.createResource("/test1"); + + msg("Creating supplier"); + Supplier supplier = Model1Factory.eINSTANCE.createSupplier(); + + msg("Setting name"); + supplier.setName("Stepper"); + + msg("Adding supplier"); + resource.getContents().add(supplier); + + msg("Committing"); + transaction.commit(); + // XXX session.close(); + enableConsole(); + } + + msg("Opening session"); + CDOSession session = openModel1Session(); + + msg("Opening transaction"); + CDOTransaction transaction = session.openTransaction(new ResourceSetImpl()); + + msg("Getting resource"); + CDOResource resource = transaction.getResource("/test1"); + + msg("Getting contents"); + EList<EObject> contents = resource.getContents(); + + msg("Getting supplier"); + Supplier s = (Supplier)contents.get(0); + assertNotNull(s); + + msg("Verifying name"); + assertEquals("Stepper", s.getName()); + } +} diff --git a/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/InvalidationTest.java b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/InvalidationTest.java new file mode 100644 index 0000000..c860c2b --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/InvalidationTest.java @@ -0,0 +1,341 @@ +/*************************************************************************** + * Copyright (c) 2004-2007 Eike Stepper, Germany. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Eike Stepper - initial API and implementation + **************************************************************************/ +package org.eclipse.emf.cdo.tests; + +import org.eclipse.emf.cdo.CDOSession; +import org.eclipse.emf.cdo.CDOSessionInvalidationEvent; +import org.eclipse.emf.cdo.CDOTransaction; +import org.eclipse.emf.cdo.CDOView; +import org.eclipse.emf.cdo.eresource.CDOResource; +import org.eclipse.emf.cdo.tests.model1.Category; +import org.eclipse.emf.cdo.tests.model1.Company; +import org.eclipse.emf.cdo.tests.model1.Model1Factory; + +import org.eclipse.net4j.util.event.IEvent; +import org.eclipse.net4j.util.event.IListener; + +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl; + +import java.util.concurrent.locks.Lock; +import java.util.concurrent.locks.ReentrantLock; + +/** + * @author Eike Stepper + */ +public class InvalidationTest extends AbstractCDOTest +{ + public void testSeparateView() throws Exception + { + msg("Opening session"); + final CDOSession session = openModel1Session(); + + // ************************************************************* // + + msg("Creating category1"); + final Category category1A = Model1Factory.eINSTANCE.createCategory(); + category1A.setName("category1"); + + msg("Creating category2"); + final Category category2A = Model1Factory.eINSTANCE.createCategory(); + category2A.setName("category2"); + + msg("Creating category3"); + final Category category3A = Model1Factory.eINSTANCE.createCategory(); + category3A.setName("category3"); + + msg("Creating company"); + final Company companyA = Model1Factory.eINSTANCE.createCompany(); + + msg("Adding categories"); + companyA.getCategories().add(category1A); + category1A.getCategories().add(category2A); + category2A.getCategories().add(category3A); + + msg("Attaching transaction"); + final CDOTransaction transaction = session.openTransaction(new ResourceSetImpl()); + + msg("Creating resource"); + final CDOResource resourceA = transaction.createResource("/test1"); + + msg("Adding company"); + resourceA.getContents().add(companyA); + + msg("Committing"); + transaction.commit(); + + // ************************************************************* // + + msg("Attaching viewB"); + final CDOView viewB = session.openTransaction(new ResourceSetImpl()); + + msg("Loading resource"); + final CDOResource resourceB = viewB.getResource("/test1"); + assertProxy(resourceB); + + EList<EObject> contents = resourceB.getContents(); + final Company companyB = (Company)contents.get(0); + assertClean(companyB); + assertClean(resourceB); + assertContent(resourceB, companyB); + + final Category category1B = companyB.getCategories().get(0); + assertClean(category1B); + assertClean(companyB); + assertContent(companyB, category1B); + + final Category category2B = category1B.getCategories().get(0); + assertClean(category2B); + assertClean(category1B); + assertContent(category1B, category2B); + + final Category category3B = category2B.getCategories().get(0); + assertClean(category3B); + assertClean(category2B); + assertContent(category2B, category3B); + assertClean(category3B); + + // ************************************************************* // + + msg("Changing name"); + category1A.setName("CHANGED NAME"); + Thread.sleep(500); + + msg("Checking before commit"); + assertEquals("category1", category1B.getName()); + + msg("Committing"); + transaction.commit(); + + msg("Checking after commit"); + boolean timedOut = new PollingTimeOuter(4, 100) + { + @Override + protected boolean successful() + { + return "CHANGED NAME".equals(category1B.getName()); + } + }.timedOut(); + + assertEquals(false, timedOut); + } + + public void testSeparateViewNotification() throws Exception + { + msg("Opening session"); + final CDOSession session = openModel1Session(); + + // ************************************************************* // + + msg("Creating category1"); + final Category category1A = Model1Factory.eINSTANCE.createCategory(); + category1A.setName("category1"); + + msg("Creating category2"); + final Category category2A = Model1Factory.eINSTANCE.createCategory(); + category2A.setName("category2"); + + msg("Creating category3"); + final Category category3A = Model1Factory.eINSTANCE.createCategory(); + category3A.setName("category3"); + + msg("Creating company"); + final Company companyA = Model1Factory.eINSTANCE.createCompany(); + + msg("Adding categories"); + companyA.getCategories().add(category1A); + category1A.getCategories().add(category2A); + category2A.getCategories().add(category3A); + + msg("Attaching transaction"); + final CDOTransaction transaction = session.openTransaction(new ResourceSetImpl()); + + msg("Creating resource"); + final CDOResource resourceA = transaction.createResource("/test1"); + + msg("Adding company"); + resourceA.getContents().add(companyA); + + msg("Committing"); + transaction.commit(); + + // ************************************************************* // + + msg("Attaching viewB"); + final CDOView viewB = session.openTransaction(new ResourceSetImpl()); + + msg("Loading resource"); + final CDOResource resourceB = viewB.getResource("/test1"); + assertProxy(resourceB); + + EList<EObject> contents = resourceB.getContents(); + final Company companyB = (Company)contents.get(0); + assertClean(companyB); + assertClean(resourceB); + assertContent(resourceB, companyB); + + final Category category1B = companyB.getCategories().get(0); + assertClean(category1B); + assertClean(companyB); + assertContent(companyB, category1B); + + final Category category2B = category1B.getCategories().get(0); + assertClean(category2B); + assertClean(category1B); + assertContent(category1B, category2B); + + final Category category3B = category2B.getCategories().get(0); + assertClean(category3B); + assertClean(category2B); + assertContent(category2B, category3B); + assertClean(category3B); + + // ************************************************************* // + + final boolean unlocked[] = { false }; + final Lock lock = new ReentrantLock(); + lock.lock(); + viewB.getSession().addListener(new IListener() + { + public void notifyEvent(IEvent event) + { + if (event instanceof CDOSessionInvalidationEvent) + { + CDOSessionInvalidationEvent e = (CDOSessionInvalidationEvent)event; + if (e.getView() == viewB) + { + msg("CDOSessionInvalidationEvent: " + e); + // TODO This code has no influence + unlocked[0] = true; + lock.unlock(); + } + } + } + }); + + msg("Changing name"); + category1A.setName("CHANGED NAME"); + + msg("Checking before commit"); + LockTimeOuter timeOuter = new LockTimeOuter(lock, 500); + boolean timedOut = timeOuter.timedOut(); + assertEquals(true, timedOut); + assertEquals(false, unlocked[0]); + + msg("Committing"); + transaction.commit(); + + msg("Checking after commit"); + if (!unlocked[0]) + { + timedOut = timeOuter.timedOut(); + assertEquals(true, timedOut); + } + } + + public void testSeparateSession() throws Exception + { + msg("Creating category1"); + final Category category1A = Model1Factory.eINSTANCE.createCategory(); + category1A.setName("category1"); + + msg("Creating category2"); + final Category category2A = Model1Factory.eINSTANCE.createCategory(); + category2A.setName("category2"); + + msg("Creating category3"); + final Category category3A = Model1Factory.eINSTANCE.createCategory(); + category3A.setName("category3"); + + msg("Creating company"); + final Company companyA = Model1Factory.eINSTANCE.createCompany(); + + msg("Adding categories"); + companyA.getCategories().add(category1A); + category1A.getCategories().add(category2A); + category2A.getCategories().add(category3A); + + msg("Opening sessionA"); + final CDOSession sessionA = openModel1Session(); + + msg("Attaching transaction"); + final CDOTransaction transaction = sessionA.openTransaction(new ResourceSetImpl()); + + msg("Creating resource"); + final CDOResource resourceA = transaction.createResource("/test1"); + + msg("Adding company"); + resourceA.getContents().add(companyA); + + msg("Committing"); + transaction.commit(); + + // ************************************************************* // + + msg("Opening sessionB"); + final CDOSession sessionB = openModel1Session(); + + msg("Attaching viewB"); + final CDOView viewB = sessionB.openTransaction(new ResourceSetImpl()); + + msg("Loading resource"); + final CDOResource resourceB = viewB.getResource("/test1"); + assertProxy(resourceB); + + EList<EObject> contents = resourceB.getContents(); + final Company companyB = (Company)contents.get(0); + assertClean(companyB); + assertClean(resourceB); + assertContent(resourceB, companyB); + + final Category category1B = companyB.getCategories().get(0); + assertClean(category1B); + assertClean(companyB); + assertContent(companyB, category1B); + + final Category category2B = category1B.getCategories().get(0); + assertClean(category2B); + assertClean(category1B); + assertContent(category1B, category2B); + + final Category category3B = category2B.getCategories().get(0); + assertClean(category3B); + assertClean(category2B); + assertContent(category2B, category3B); + assertClean(category3B); + + // ************************************************************* // + + msg("Changing name"); + category1A.setName("CHANGED NAME"); + + ITimeOuter timeOuter = new PollingTimeOuter(4, 100) + { + @Override + protected boolean successful() + { + return "CHANGED NAME".equals(category1B.getName()); + } + }; + + msg("Checking before commit"); + boolean timedOut = timeOuter.timedOut(); + assertEquals(true, timedOut); + + msg("Committing"); + transaction.commit(); + + msg("Checking after commit"); + timedOut = timeOuter.timedOut(); + assertEquals(false, timedOut); + } +} diff --git a/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/PackageRegistryTest.java b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/PackageRegistryTest.java new file mode 100644 index 0000000..26983e1 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/PackageRegistryTest.java @@ -0,0 +1,112 @@ +/*************************************************************************** + * Copyright (c) 2004-2007 Eike Stepper, Germany. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Eike Stepper - initial API and implementation + **************************************************************************/ +package org.eclipse.emf.cdo.tests; + +import org.eclipse.emf.cdo.CDOObject; +import org.eclipse.emf.cdo.CDOSession; +import org.eclipse.emf.cdo.CDOTransaction; +import org.eclipse.emf.cdo.eresource.CDOResource; +import org.eclipse.emf.cdo.tests.model1.Company; +import org.eclipse.emf.cdo.tests.model1.Model1Factory; +import org.eclipse.emf.cdo.tests.model1.Model1Package; +import org.eclipse.emf.cdo.util.CDOUtil; + +import org.eclipse.emf.common.util.URI; +import org.eclipse.emf.ecore.EAttribute; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EPackage; +import org.eclipse.emf.ecore.resource.Resource; +import org.eclipse.emf.ecore.resource.ResourceSet; +import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl; +import org.eclipse.emf.ecore.xmi.impl.EcoreResourceFactoryImpl; + +import java.io.IOException; + +/** + * @author Eike Stepper + */ +public class PackageRegistryTest extends AbstractCDOTest +{ + public void testGeneratedPackage() throws Exception + { + { + // Create resource in session 1 + CDOSession session = CDOUtil.openSession(getConnector(), REPOSITORY_NAME); + session.getPackageRegistry().putEPackage(Model1Package.eINSTANCE); + CDOTransaction transaction = session.openTransaction(); + CDOResource res = transaction.createResource("/res"); + + Company company = Model1Factory.eINSTANCE.createCompany(); + company.setName("Eike"); + res.getContents().add(company); + transaction.commit(); + } + + { + // Load resource in session 2 + CDOSession session = CDOUtil.openSession(getConnector(), REPOSITORY_NAME); + CDOTransaction transaction = session.openTransaction(); + CDOResource res = transaction.getResource("/res"); + + Company company = (Company)res.getContents().get(0); + assertEquals("Eike", company.getName()); + } + } + + /** + * TODO Fix testDynamicPackage() + */ + public void _testDynamicPackage() throws Exception + { + { + // Obtain model + EPackage model1 = loadModel("model1.ecore"); + // EClass supplierClass = (EClass)model1.getEClassifier("Supplier"); + // EStructuralFeature firstFeature = + // supplierClass.getEStructuralFeatures().get(0); + + EClass companyClass = (EClass)model1.getEClassifier("Company"); + EAttribute nameAttribute = (EAttribute)companyClass.getEStructuralFeature("name"); + + // Create resource in session 1 + CDOSession session = CDOUtil.openSession(getConnector(), REPOSITORY_NAME); + session.getPackageRegistry().putEPackage(model1); + CDOTransaction transaction = session.openTransaction(); + CDOResource res = transaction.createResource("/res"); + + CDOObject company = transaction.newInstance(companyClass); + company.eSet(nameAttribute, "Eike"); + res.getContents().add(company); + transaction.commit(); + } + + { + // Load resource in session 2 + CDOSession session = CDOUtil.openSession(getConnector(), REPOSITORY_NAME); + CDOTransaction transaction = session.openTransaction(); + CDOResource res = transaction.getResource("/res"); + + CDOObject company = (CDOObject)res.getContents().get(0); + EClass companyClass = company.eClass(); + EAttribute nameAttribute = (EAttribute)companyClass.getEStructuralFeature("name"); + String name = (String)company.eGet(nameAttribute); + assertEquals("Eike", name); + } + } + + private static EPackage loadModel(String fileName) throws IOException + { + ResourceSet resourceSet = new ResourceSetImpl(); + resourceSet.getResourceFactoryRegistry().getExtensionToFactoryMap().put("*", new EcoreResourceFactoryImpl()); + Resource resource = resourceSet.getResource(URI.createFileURI(fileName), true); + return (EPackage)resource.getContents().get(0); + } +} diff --git a/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/TDD.java b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/TDD.java new file mode 100644 index 0000000..469d67e --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/TDD.java @@ -0,0 +1,88 @@ +/*************************************************************************** + * Copyright (c) 2004-2007 Eike Stepper, Germany. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Eike Stepper - initial API and implementation + **************************************************************************/ +package org.eclipse.emf.cdo.tests; + +import org.eclipse.net4j.util.tests.AbstractOMTest; + +import java.lang.reflect.InvocationTargetException; +import java.lang.reflect.Method; + +/** + * @author Eike Stepper + */ +public class TDD +{ + private static final AbstractOMTest test = new PackageRegistryTest(); + + private static final String METHOD_NAME = "testDynamicPackage"; + + public static void main(String[] args) throws Throwable + { + if (METHOD_NAME != null && METHOD_NAME.length() != 0) + { + runTest(test, METHOD_NAME); + } + else + { + Method[] methods = test.getClass().getMethods(); + for (Method method : methods) + { + + String methodName = method.getName(); + if (methodName.startsWith("test")) + { + runTest(test, methodName); + } + } + } + + System.out.println("******* COMPLETED *******"); + } + + private static void runTest(AbstractOMTest test, String methodName) throws Exception, Throwable + { + test.setName(methodName); + test.setUp(); + callMethod(test, methodName); + test.tearDown(); + } + + private static void callMethod(Object object, String methodName) throws Throwable + { + try + { + Method method = object.getClass().getMethod(methodName, new Class[0]); + method.invoke(object, new Object[0]); + } + catch (InvocationTargetException ex) + { + throw filterException(ex.getTargetException(), object.getClass()); + } + } + + private static Throwable filterException(Throwable t, Class entry) + { + StackTraceElement[] stackTrace = t.getStackTrace(); + int len; + for (len = stackTrace.length - 1; len >= 0; len--) + { + if (stackTrace[len].getClassName().equals(entry.getName())) + { + StackTraceElement[] filtered = new StackTraceElement[++len]; + System.arraycopy(stackTrace, 0, filtered, 0, len); + t.setStackTrace(filtered); + break; + } + } + + return t; + } +} diff --git a/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/internal/CDOTestPlugin.java b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/internal/CDOTestPlugin.java deleted file mode 100644 index dceb8de..0000000 --- a/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/internal/CDOTestPlugin.java +++ /dev/null @@ -1,40 +0,0 @@ -/*************************************************************************** - * Copyright (c) 2004, 2005, 2006 Eike Stepper, Germany. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * Eike Stepper - initial API and implementation - **************************************************************************/ -package org.eclipse.emf.cdo.tests.internal; - - -import org.osgi.framework.BundleActivator; -import org.osgi.framework.BundleContext; - - -public class CDOTestPlugin implements BundleActivator -{ - private static CDOTestPlugin instance; - - public CDOTestPlugin() - { - super(); - instance = this; - } - - public static CDOTestPlugin getPlugin() - { - return instance; - } - - public void start(BundleContext context) throws Exception - { - } - - public void stop(BundleContext context) throws Exception - { - } -} diff --git a/plugins/org.eclipse.emf.cdo.tests/uml2/10536.uml b/plugins/org.eclipse.emf.cdo.tests/uml2/10536.uml new file mode 100644 index 0000000..7c50b81 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.tests/uml2/10536.uml @@ -0,0 +1,42 @@ +<?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:Ecore="http://www.eclipse.org/uml2/schemas/Ecore/4" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:uml="http://www.eclipse.org/uml2/2.1.0/UML" xsi:schemaLocation="http://www.eclipse.org/uml2/schemas/Ecore/4 pathmap://UML_PROFILES/Ecore.profile.uml#_B7dOIMEREduRdatXodjBjA"> + <uml:Model xmi:id="_y16xIPnhEdunWsS3se92JQ" name="10536"> + <packagedElement xmi:type="uml:Class" xmi:id="_0dB44PnhEdunWsS3se92JQ" name="ConnectableElement" isAbstract="true"> + <ownedAttribute xmi:id="_5fDBQPnhEdunWsS3se92JQ" name="end" visibility="public" type="_2UPSIPnhEdunWsS3se92JQ" isDerived="true" association="_5e5QQPnhEdunWsS3se92JQ"> + <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_5fDBQvnhEdunWsS3se92JQ" value="*"/> + <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_5fDBQfnhEdunWsS3se92JQ"/> + </ownedAttribute> + <ownedOperation xmi:id="_tL_ewPniEdunWsS3se92JQ" name="getEnds" visibility="protected"> + <ownedParameter xmi:id="_uvsGIPniEdunWsS3se92JQ" name="" type="_2UPSIPnhEdunWsS3se92JQ" direction="return"> + <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xsLscfniEdunWsS3se92JQ" value="*"/> + <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xsLscPniEdunWsS3se92JQ"/> + </ownedParameter> + </ownedOperation> + </packagedElement> + <packagedElement xmi:type="uml:Class" xmi:id="_2UPSIPnhEdunWsS3se92JQ" name="ConnectorEnd"> + <ownedAttribute xmi:id="_81UZgfnhEdunWsS3se92JQ" name="role" visibility="public" type="_0dB44PnhEdunWsS3se92JQ" association="_81UZgPnhEdunWsS3se92JQ"> + <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_81UZg_nhEdunWsS3se92JQ" value="1"/> + <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_81UZgvnhEdunWsS3se92JQ" value="1"/> + </ownedAttribute> + </packagedElement> + <packagedElement xmi:type="uml:Association" xmi:id="_5e5QQPnhEdunWsS3se92JQ" name="A_connectableElement_end" memberEnd="_5fDBQPnhEdunWsS3se92JQ _5fDBQ_nhEdunWsS3se92JQ"> + <ownedEnd xmi:id="_5fDBQ_nhEdunWsS3se92JQ" name="" visibility="private" type="_0dB44PnhEdunWsS3se92JQ" association="_5e5QQPnhEdunWsS3se92JQ"> + <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_5fDBRfnhEdunWsS3se92JQ" value="*"/> + <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_5fDBRPnhEdunWsS3se92JQ"/> + </ownedEnd> + </packagedElement> + <packagedElement xmi:type="uml:Association" xmi:id="_81UZgPnhEdunWsS3se92JQ" name="A_end_role" memberEnd="_81UZgfnhEdunWsS3se92JQ _81UZhPnhEdunWsS3se92JQ"> + <ownedEnd xmi:id="_81UZhPnhEdunWsS3se92JQ" name="end" visibility="private" type="_2UPSIPnhEdunWsS3se92JQ" association="_81UZgPnhEdunWsS3se92JQ"> + <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_81UZhvnhEdunWsS3se92JQ" value="*"/> + <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_81UZhfnhEdunWsS3se92JQ"/> + </ownedEnd> + </packagedElement> + <profileApplication xmi:id="_vz32QPn-EduCCoNWMwSrOA"> + <eAnnotations xmi:id="_v2Qb4Pn-EduCCoNWMwSrOA" source="http://www.eclipse.org/uml2/2.0.0/UML"> + <references xmi:type="ecore:EPackage" href="pathmap://UML_PROFILES/Ecore.profile.uml#_B7dOIMEREduRdatXodjBjA"/> + </eAnnotations> + <appliedProfile href="pathmap://UML_PROFILES/Ecore.profile.uml#_0"/> + </profileApplication> + </uml:Model> + <Ecore:EReference xmi:id="_yzfpEPn-EduCCoNWMwSrOA" isTransient="true" isVolatile="true" base_Property="_5fDBQPnhEdunWsS3se92JQ"/> +</xmi:XMI> diff --git a/plugins/org.eclipse.emf.cdo.tests/uml2/10537.uml b/plugins/org.eclipse.emf.cdo.tests/uml2/10537.uml new file mode 100644 index 0000000..bd271b4 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.tests/uml2/10537.uml @@ -0,0 +1,69 @@ +<?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:Ecore="http://www.eclipse.org/uml2/schemas/Ecore/4" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:uml="http://www.eclipse.org/uml2/2.1.0/UML" xsi:schemaLocation="http://www.eclipse.org/uml2/schemas/Ecore/4 pathmap://UML_PROFILES/Ecore.profile.uml#_B7dOIMEREduRdatXodjBjA"> + <uml:Model xmi:id="_udv6MPnlEdunWsS3se92JQ" name="10537"> + <packagedElement xmi:type="uml:Class" xmi:id="_xM1WoPnlEdunWsS3se92JQ" name="Vertex" isAbstract="true"> + <ownedAttribute xmi:id="_R1FbMfnmEdunWsS3se92JQ" name="incoming" visibility="public" type="_ykKV8PnlEdunWsS3se92JQ" isDerived="true" association="_R1FbMPnmEdunWsS3se92JQ"> + <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_R1FbM_nmEdunWsS3se92JQ" value="*"/> + <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_R1FbMvnmEdunWsS3se92JQ"/> + </ownedAttribute> + <ownedAttribute xmi:id="_X_OCMPnmEdunWsS3se92JQ" name="outgoing" visibility="public" type="_ykKV8PnlEdunWsS3se92JQ" isDerived="true" association="_X_E4QPnmEdunWsS3se92JQ"> + <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_X_OCMvnmEdunWsS3se92JQ" value="*"/> + <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_X_OCMfnmEdunWsS3se92JQ"/> + </ownedAttribute> + <ownedOperation xmi:id="_RqYxoPnnEdunWsS3se92JQ" name="getIncomings" visibility="protected"> + <ownedParameter xmi:id="_UvruoPnnEdunWsS3se92JQ" name="" type="_ykKV8PnlEdunWsS3se92JQ" direction="return"> + <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_YahosfnnEdunWsS3se92JQ" value="*"/> + <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_YahosPnnEdunWsS3se92JQ"/> + </ownedParameter> + </ownedOperation> + <ownedOperation xmi:id="_aHv_gPnnEdunWsS3se92JQ" name="getOutgoings" visibility="protected"> + <ownedParameter xmi:id="_aHv_gfnnEdunWsS3se92JQ" name="" type="_ykKV8PnlEdunWsS3se92JQ" direction="return"> + <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_aHv_gvnnEdunWsS3se92JQ" value="*"/> + <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_aHv_g_nnEdunWsS3se92JQ"/> + </ownedParameter> + </ownedOperation> + </packagedElement> + <packagedElement xmi:type="uml:Class" xmi:id="_ykKV8PnlEdunWsS3se92JQ" name="Transition"> + <ownedAttribute xmi:id="_EhVtMPnmEdunWsS3se92JQ" name="target" visibility="public" type="_xM1WoPnlEdunWsS3se92JQ" association="_EhL8MPnmEdunWsS3se92JQ"> + <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_EhVtMvnmEdunWsS3se92JQ" value="1"/> + <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_EhVtMfnmEdunWsS3se92JQ" value="1"/> + </ownedAttribute> + <ownedAttribute xmi:id="_JPYJofnmEdunWsS3se92JQ" name="source" visibility="public" type="_xM1WoPnlEdunWsS3se92JQ" association="_JPYJoPnmEdunWsS3se92JQ"> + <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_JPYJo_nmEdunWsS3se92JQ" value="1"/> + <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_JPYJovnmEdunWsS3se92JQ" value="1"/> + </ownedAttribute> + </packagedElement> + <packagedElement xmi:type="uml:Association" xmi:id="_EhL8MPnmEdunWsS3se92JQ" name="A_incoming_target" memberEnd="_EhVtMPnmEdunWsS3se92JQ _EhVtM_nmEdunWsS3se92JQ"> + <ownedEnd xmi:id="_EhVtM_nmEdunWsS3se92JQ" name="incoming" visibility="private" type="_ykKV8PnlEdunWsS3se92JQ" association="_EhL8MPnmEdunWsS3se92JQ"> + <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_EhVtNfnmEdunWsS3se92JQ" value="*"/> + <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_EhVtNPnmEdunWsS3se92JQ"/> + </ownedEnd> + </packagedElement> + <packagedElement xmi:type="uml:Association" xmi:id="_JPYJoPnmEdunWsS3se92JQ" name="A_outgoing_source" memberEnd="_JPYJofnmEdunWsS3se92JQ _JPh6oPnmEdunWsS3se92JQ"> + <ownedEnd xmi:id="_JPh6oPnmEdunWsS3se92JQ" name="outgoing" visibility="private" type="_ykKV8PnlEdunWsS3se92JQ" association="_JPYJoPnmEdunWsS3se92JQ"> + <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_JPh6ovnmEdunWsS3se92JQ" value="*"/> + <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_JPh6ofnmEdunWsS3se92JQ"/> + </ownedEnd> + </packagedElement> + <packagedElement xmi:type="uml:Association" xmi:id="_R1FbMPnmEdunWsS3se92JQ" name="A_vertex_incoming" memberEnd="_R1FbMfnmEdunWsS3se92JQ _R1FbNPnmEdunWsS3se92JQ"> + <ownedEnd xmi:id="_R1FbNPnmEdunWsS3se92JQ" name="" visibility="private" type="_xM1WoPnlEdunWsS3se92JQ" association="_R1FbMPnmEdunWsS3se92JQ"> + <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_R1FbNvnmEdunWsS3se92JQ" value="*"/> + <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_R1FbNfnmEdunWsS3se92JQ"/> + </ownedEnd> + </packagedElement> + <packagedElement xmi:type="uml:Association" xmi:id="_X_E4QPnmEdunWsS3se92JQ" name="A_vertex_outgoing" memberEnd="_X_OCMPnmEdunWsS3se92JQ _X_OCM_nmEdunWsS3se92JQ"> + <ownedEnd xmi:id="_X_OCM_nmEdunWsS3se92JQ" name="" visibility="private" type="_xM1WoPnlEdunWsS3se92JQ" association="_X_E4QPnmEdunWsS3se92JQ"> + <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_X_OCNfnmEdunWsS3se92JQ" value="*"/> + <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_X_OCNPnmEdunWsS3se92JQ"/> + </ownedEnd> + </packagedElement> + <profileApplication xmi:id="_3zuBsPn-EduCCoNWMwSrOA"> + <eAnnotations xmi:id="_3zuBsfn-EduCCoNWMwSrOA" source="http://www.eclipse.org/uml2/2.0.0/UML"> + <references xmi:type="ecore:EPackage" href="pathmap://UML_PROFILES/Ecore.profile.uml#_B7dOIMEREduRdatXodjBjA"/> + </eAnnotations> + <appliedProfile href="pathmap://UML_PROFILES/Ecore.profile.uml#_0"/> + </profileApplication> + </uml:Model> + <Ecore:EReference xmi:id="_5aiOgPn-EduCCoNWMwSrOA" isTransient="true" isVolatile="true" base_Property="_R1FbMfnmEdunWsS3se92JQ"/> + <Ecore:EReference xmi:id="_8M5BYPn-EduCCoNWMwSrOA" isTransient="true" isVolatile="true" base_Property="_X_OCMPnmEdunWsS3se92JQ"/> +</xmi:XMI> diff --git a/plugins/org.eclipse.emf.cdo.tests/uml2/Ecore.uml b/plugins/org.eclipse.emf.cdo.tests/uml2/Ecore.uml new file mode 100644 index 0000000..ca43ec6 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.tests/uml2/Ecore.uml @@ -0,0 +1,977 @@ +<?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:Ecore="http://www.eclipse.org/uml2/schemas/Ecore/4" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:uml="http://www.eclipse.org/uml2/2.1.0/UML" xsi:schemaLocation="http://www.eclipse.org/uml2/schemas/Ecore/4 pathmap://UML_PROFILES/Ecore.profile.uml#_B7dOIMEREduRdatXodjBjA"> + <uml:Model xmi:id="_SeWiQMX_EduPJbEsMYXjUQ" name="Ecore"> + <packagedElement xmi:type="uml:Class" xmi:id="_SeWj6cX_EduPJbEsMYXjUQ" name="EAnnotation"> + <eAnnotations xmi:id="_SeWj6sX_EduPJbEsMYXjUQ" source="http://www.eclipse.org/emf/2002/Ecore"> + <details xmi:id="_SeWj68X_EduPJbEsMYXjUQ" key="constraints" value="WellFormedSourceURI"/> + </eAnnotations> + <generalization xmi:id="_SeWj7MX_EduPJbEsMYXjUQ" general="_SeWihMX_EduPJbEsMYXjUQ"/> + <ownedAttribute xmi:id="_SeWj7cX_EduPJbEsMYXjUQ" name="source" visibility="public" type="_SeWkisX_EduPJbEsMYXjUQ" isOrdered="true"> + <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_SeWj7sX_EduPJbEsMYXjUQ"/> + </ownedAttribute> + <ownedAttribute xmi:id="_SeWj78X_EduPJbEsMYXjUQ" name="details" type="_SeWj-sX_EduPJbEsMYXjUQ" isOrdered="true" aggregation="composite" association="_SeWj_8X_EduPJbEsMYXjUQ"> + <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_SeWj8MX_EduPJbEsMYXjUQ" value="*"/> + <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_SeWj8cX_EduPJbEsMYXjUQ"/> + </ownedAttribute> + <ownedAttribute xmi:id="_SeWj8sX_EduPJbEsMYXjUQ" name="eModelElement" type="_SeWihMX_EduPJbEsMYXjUQ" isOrdered="true" association="_SeWkAcX_EduPJbEsMYXjUQ"> + <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_SeWj88X_EduPJbEsMYXjUQ"/> + </ownedAttribute> + <ownedAttribute xmi:id="_SeWj9MX_EduPJbEsMYXjUQ" name="contents" type="_SeWijsX_EduPJbEsMYXjUQ" isOrdered="true" aggregation="composite" association="_SeWkAsX_EduPJbEsMYXjUQ"> + <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_SeWj9cX_EduPJbEsMYXjUQ" value="*"/> + <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_SeWj9sX_EduPJbEsMYXjUQ"/> + </ownedAttribute> + <ownedAttribute xmi:id="_SeWj98X_EduPJbEsMYXjUQ" name="references" type="_SeWijsX_EduPJbEsMYXjUQ" isOrdered="true" association="_SeWkBMX_EduPJbEsMYXjUQ"> + <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_SeWj-MX_EduPJbEsMYXjUQ" value="*"/> + <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_SeWj-cX_EduPJbEsMYXjUQ"/> + </ownedAttribute> + </packagedElement> + <packagedElement xmi:type="uml:Class" xmi:id="_SeWiQcX_EduPJbEsMYXjUQ" name="EAttribute"> + <eAnnotations xmi:id="_SeWiQsX_EduPJbEsMYXjUQ" source="http://www.eclipse.org/emf/2002/Ecore"> + <details xmi:id="_SeWiQ8X_EduPJbEsMYXjUQ" key="constraints" value="ConsistentTransient"/> + </eAnnotations> + <generalization xmi:id="_SeWiRMX_EduPJbEsMYXjUQ" general="_SeWiSMX_EduPJbEsMYXjUQ"/> + <ownedAttribute xmi:id="_SeWiRcX_EduPJbEsMYXjUQ" name="id" visibility="public" type="_SeWkM8X_EduPJbEsMYXjUQ" isOrdered="true"> + <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_SeWiRsX_EduPJbEsMYXjUQ"/> + </ownedAttribute> + <ownedAttribute xmi:id="_SeWiR8X_EduPJbEsMYXjUQ" name="eAttributeType" type="_SeWjasX_EduPJbEsMYXjUQ" isOrdered="true" isReadOnly="true" isDerived="true" association="_SeWkCsX_EduPJbEsMYXjUQ"/> + </packagedElement> + <packagedElement xmi:type="uml:Class" xmi:id="_SeWizcX_EduPJbEsMYXjUQ" name="EClass"> + <eAnnotations xmi:id="_SeWizsX_EduPJbEsMYXjUQ" source="http://www.eclipse.org/emf/2002/Ecore"> + <details xmi:id="_SeWiz8X_EduPJbEsMYXjUQ" key="constraints" value="InterfaceIsAbstract AtMostOneID UniqueFeatureNames UniqueOperationSignatures NoCircularSuperTypes WellFormedMapEntryClass ConsistentSuperTypes"/> + </eAnnotations> + <generalization xmi:id="_SeWi0MX_EduPJbEsMYXjUQ" general="_SeWjG8X_EduPJbEsMYXjUQ"/> + <ownedAttribute xmi:id="_SeWi0cX_EduPJbEsMYXjUQ" name="abstract" visibility="public" type="_SeWkM8X_EduPJbEsMYXjUQ" isOrdered="true"> + <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_SeWi0sX_EduPJbEsMYXjUQ"/> + </ownedAttribute> + <ownedAttribute xmi:id="_SeWi08X_EduPJbEsMYXjUQ" name="interface" visibility="public" type="_SeWkM8X_EduPJbEsMYXjUQ" isOrdered="true"> + <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_SeWi1MX_EduPJbEsMYXjUQ"/> + </ownedAttribute> + <ownedAttribute xmi:id="_SeWi1cX_EduPJbEsMYXjUQ" name="eSuperTypes" type="_SeWizcX_EduPJbEsMYXjUQ" isOrdered="true" association="_SeWjlsX_EduPJbEsMYXjUQ"> + <eAnnotations xmi:id="_SeWi1sX_EduPJbEsMYXjUQ" source="http://www.eclipse.org/emf/2002/GenModel"> + <details xmi:id="_SeWi18X_EduPJbEsMYXjUQ" key="suppressedUnsetVisibility" value="true"/> + <details xmi:id="_SeWi2MX_EduPJbEsMYXjUQ" key="suppressedIsSetVisibility" value="true"/> + </eAnnotations> + <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_SeWi2cX_EduPJbEsMYXjUQ" value="*"/> + <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_SeWi2sX_EduPJbEsMYXjUQ"/> + </ownedAttribute> + <ownedAttribute xmi:id="_SeWi28X_EduPJbEsMYXjUQ" name="eOperations" type="_SeWjmMX_EduPJbEsMYXjUQ" isOrdered="true" aggregation="composite" association="_SeWjsMX_EduPJbEsMYXjUQ"> + <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_SeWi3MX_EduPJbEsMYXjUQ" value="*"/> + <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_SeWi3cX_EduPJbEsMYXjUQ"/> + </ownedAttribute> + <ownedAttribute xmi:id="_SeWi3sX_EduPJbEsMYXjUQ" name="eAllAttributes" type="_SeWiQcX_EduPJbEsMYXjUQ" isOrdered="true" isReadOnly="true" isDerived="true" association="_SeWjvMX_EduPJbEsMYXjUQ"> + <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_SeWi38X_EduPJbEsMYXjUQ" value="*"/> + <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_SeWi4MX_EduPJbEsMYXjUQ"/> + </ownedAttribute> + <ownedAttribute xmi:id="_SeWi4cX_EduPJbEsMYXjUQ" name="eAllReferences" type="_SeWjvsX_EduPJbEsMYXjUQ" isOrdered="true" isReadOnly="true" isDerived="true" association="_SeWj1MX_EduPJbEsMYXjUQ"> + <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_SeWi4sX_EduPJbEsMYXjUQ" value="*"/> + <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_SeWi48X_EduPJbEsMYXjUQ"/> + </ownedAttribute> + <ownedAttribute xmi:id="_SeWi5MX_EduPJbEsMYXjUQ" name="eReferences" type="_SeWjvsX_EduPJbEsMYXjUQ" isOrdered="true" isReadOnly="true" isDerived="true" association="_SeWj1sX_EduPJbEsMYXjUQ"> + <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_SeWi5cX_EduPJbEsMYXjUQ" value="*"/> + <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_SeWi5sX_EduPJbEsMYXjUQ"/> + </ownedAttribute> + <ownedAttribute xmi:id="_SeWi58X_EduPJbEsMYXjUQ" name="eAttributes" type="_SeWiQcX_EduPJbEsMYXjUQ" isOrdered="true" isReadOnly="true" isDerived="true" association="_SeWj2MX_EduPJbEsMYXjUQ"> + <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_SeWi6MX_EduPJbEsMYXjUQ" value="*"/> + <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_SeWi6cX_EduPJbEsMYXjUQ"/> + </ownedAttribute> + <ownedAttribute xmi:id="_SeWi6sX_EduPJbEsMYXjUQ" name="eAllContainments" type="_SeWjvsX_EduPJbEsMYXjUQ" isOrdered="true" isReadOnly="true" isDerived="true" association="_SeWj2sX_EduPJbEsMYXjUQ"> + <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_SeWi68X_EduPJbEsMYXjUQ" value="*"/> + <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_SeWi7MX_EduPJbEsMYXjUQ"/> + </ownedAttribute> + <ownedAttribute xmi:id="_SeWi7cX_EduPJbEsMYXjUQ" name="eAllOperations" type="_SeWjmMX_EduPJbEsMYXjUQ" isOrdered="true" isReadOnly="true" isDerived="true" association="_SeWj3MX_EduPJbEsMYXjUQ"> + <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_SeWi7sX_EduPJbEsMYXjUQ" value="*"/> + <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_SeWi78X_EduPJbEsMYXjUQ"/> + </ownedAttribute> + <ownedAttribute xmi:id="_SeWi8MX_EduPJbEsMYXjUQ" name="eAllStructuralFeatures" type="_SeWiSMX_EduPJbEsMYXjUQ" isOrdered="true" isReadOnly="true" isDerived="true" association="_SeWj3sX_EduPJbEsMYXjUQ"> + <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_SeWi8cX_EduPJbEsMYXjUQ" value="*"/> + <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_SeWi8sX_EduPJbEsMYXjUQ"/> + </ownedAttribute> + <ownedAttribute xmi:id="_SeWi88X_EduPJbEsMYXjUQ" name="eAllSuperTypes" type="_SeWizcX_EduPJbEsMYXjUQ" isOrdered="true" isReadOnly="true" isDerived="true" association="_SeWj4MX_EduPJbEsMYXjUQ"> + <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_SeWi9MX_EduPJbEsMYXjUQ" value="*"/> + <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_SeWi9cX_EduPJbEsMYXjUQ"/> + </ownedAttribute> + <ownedAttribute xmi:id="_SeWi9sX_EduPJbEsMYXjUQ" name="eIDAttribute" type="_SeWiQcX_EduPJbEsMYXjUQ" isOrdered="true" isReadOnly="true" isDerived="true" association="_SeWj4sX_EduPJbEsMYXjUQ"> + <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_SeWi98X_EduPJbEsMYXjUQ"/> + </ownedAttribute> + <ownedAttribute xmi:id="_SeWi-MX_EduPJbEsMYXjUQ" name="eStructuralFeatures" type="_SeWiSMX_EduPJbEsMYXjUQ" isOrdered="true" aggregation="composite" association="_SeWj5MX_EduPJbEsMYXjUQ"> + <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_SeWi-cX_EduPJbEsMYXjUQ" value="*"/> + <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_SeWi-sX_EduPJbEsMYXjUQ"/> + </ownedAttribute> + <ownedAttribute xmi:id="_SeWi-8X_EduPJbEsMYXjUQ" name="eGenericSuperTypes" type="_SeWjdsX_EduPJbEsMYXjUQ" isOrdered="true" aggregation="composite" association="_SeWj5cX_EduPJbEsMYXjUQ"> + <eAnnotations xmi:id="_SeWi_MX_EduPJbEsMYXjUQ" source="http://www.eclipse.org/emf/2002/GenModel"> + <details xmi:id="_SeWi_cX_EduPJbEsMYXjUQ" key="suppressedUnsetVisibility" value="true"/> + <details xmi:id="_SeWi_sX_EduPJbEsMYXjUQ" key="suppressedIsSetVisibility" value="true"/> + </eAnnotations> + <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_SeWi_8X_EduPJbEsMYXjUQ" value="*"/> + <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_SeWjAMX_EduPJbEsMYXjUQ"/> + </ownedAttribute> + <ownedAttribute xmi:id="_SeWjAcX_EduPJbEsMYXjUQ" name="eAllGenericSuperTypes" type="_SeWjdsX_EduPJbEsMYXjUQ" isOrdered="true" isReadOnly="true" isDerived="true" association="_SeWj58X_EduPJbEsMYXjUQ"> + <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_SeWjAsX_EduPJbEsMYXjUQ" value="*"/> + <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_SeWjA8X_EduPJbEsMYXjUQ"/> + </ownedAttribute> + <ownedOperation xmi:id="_SeWjBMX_EduPJbEsMYXjUQ" name="isSuperTypeOf" visibility="public"> + <ownedParameter xmi:id="_SeWjBcX_EduPJbEsMYXjUQ" type="_SeWkM8X_EduPJbEsMYXjUQ" isOrdered="true" direction="return"> + <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_SeWjBsX_EduPJbEsMYXjUQ"/> + </ownedParameter> + <ownedParameter xmi:id="_SeWjB8X_EduPJbEsMYXjUQ" name="someClass" type="_SeWizcX_EduPJbEsMYXjUQ" isOrdered="true"> + <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_SeWjCMX_EduPJbEsMYXjUQ"/> + </ownedParameter> + </ownedOperation> + <ownedOperation xmi:id="_SeWjCcX_EduPJbEsMYXjUQ" name="getFeatureCount" visibility="public"> + <ownedParameter xmi:id="_SeWjCsX_EduPJbEsMYXjUQ" type="_SeWkZcX_EduPJbEsMYXjUQ" isOrdered="true" direction="return"> + <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_SeWjC8X_EduPJbEsMYXjUQ"/> + </ownedParameter> + </ownedOperation> + <ownedOperation xmi:id="_SeWjDMX_EduPJbEsMYXjUQ" name="getEStructuralFeature" visibility="public"> + <ownedParameter xmi:id="_SeWjDcX_EduPJbEsMYXjUQ" type="_SeWiSMX_EduPJbEsMYXjUQ" isOrdered="true" direction="return"> + <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_SeWjDsX_EduPJbEsMYXjUQ"/> + </ownedParameter> + <ownedParameter xmi:id="_SeWjD8X_EduPJbEsMYXjUQ" name="featureID" type="_SeWkZcX_EduPJbEsMYXjUQ" isOrdered="true"> + <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_SeWjEMX_EduPJbEsMYXjUQ"/> + </ownedParameter> + </ownedOperation> + <ownedOperation xmi:id="_SeWjEcX_EduPJbEsMYXjUQ" name="getFeatureID" visibility="public"> + <ownedParameter xmi:id="_SeWjEsX_EduPJbEsMYXjUQ" type="_SeWkZcX_EduPJbEsMYXjUQ" isOrdered="true" direction="return"> + <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_SeWjE8X_EduPJbEsMYXjUQ"/> + </ownedParameter> + <ownedParameter xmi:id="_SeWjFMX_EduPJbEsMYXjUQ" name="feature" type="_SeWiSMX_EduPJbEsMYXjUQ" isOrdered="true"> + <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_SeWjFcX_EduPJbEsMYXjUQ"/> + </ownedParameter> + </ownedOperation> + <ownedOperation xmi:id="_SeWjFsX_EduPJbEsMYXjUQ" name="getEStructuralFeature" visibility="public"> + <ownedParameter xmi:id="_SeWjF8X_EduPJbEsMYXjUQ" type="_SeWiSMX_EduPJbEsMYXjUQ" isOrdered="true" direction="return"> + <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_SeWjGMX_EduPJbEsMYXjUQ"/> + </ownedParameter> + <ownedParameter xmi:id="_SeWjGcX_EduPJbEsMYXjUQ" name="featureName" type="_SeWkisX_EduPJbEsMYXjUQ" isOrdered="true"> + <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_SeWjGsX_EduPJbEsMYXjUQ"/> + </ownedParameter> + </ownedOperation> + </packagedElement> + <packagedElement xmi:type="uml:Class" xmi:id="_SeWjG8X_EduPJbEsMYXjUQ" name="EClassifier" isAbstract="true"> + <eAnnotations xmi:id="_SeWjHMX_EduPJbEsMYXjUQ" source="http://www.eclipse.org/emf/2002/Ecore"> + <details xmi:id="_SeWjHcX_EduPJbEsMYXjUQ" key="constraints" value="WellFormedInstanceTypeName UniqueTypeParameterNames"/> + </eAnnotations> + <generalization xmi:id="_SeWjHsX_EduPJbEsMYXjUQ" general="_SeWifsX_EduPJbEsMYXjUQ"/> + <ownedAttribute xmi:id="_SeWjH8X_EduPJbEsMYXjUQ" name="instanceClassName" visibility="public" type="_SeWkisX_EduPJbEsMYXjUQ" isOrdered="true"> + <eAnnotations xmi:id="_SeWjIMX_EduPJbEsMYXjUQ" source="http://www.eclipse.org/emf/2002/GenModel"> + <details xmi:id="_SeWjIcX_EduPJbEsMYXjUQ" key="suppressedUnsetVisibility" value="true"/> + <details xmi:id="_SeWjIsX_EduPJbEsMYXjUQ" key="suppressedIsSetVisibility" value="true"/> + </eAnnotations> + <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_SeWjI8X_EduPJbEsMYXjUQ"/> + </ownedAttribute> + <ownedAttribute xmi:id="_SeWjJMX_EduPJbEsMYXjUQ" name="instanceClass" visibility="public" type="_SeWjM8X_EduPJbEsMYXjUQ" isOrdered="true" isReadOnly="true" isDerived="true"> + <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_SeWjJcX_EduPJbEsMYXjUQ"/> + </ownedAttribute> + <ownedAttribute xmi:id="_SeWjJsX_EduPJbEsMYXjUQ" name="defaultValue" visibility="public" type="_SeWkccX_EduPJbEsMYXjUQ" isOrdered="true" isReadOnly="true" isDerived="true"> + <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_SeWjJ8X_EduPJbEsMYXjUQ"/> + </ownedAttribute> + <ownedAttribute xmi:id="_SeWjKMX_EduPJbEsMYXjUQ" name="instanceTypeName" visibility="public" type="_SeWkisX_EduPJbEsMYXjUQ" isOrdered="true"> + <eAnnotations xmi:id="_SeWjKcX_EduPJbEsMYXjUQ" source="http://www.eclipse.org/emf/2002/GenModel"> + <details xmi:id="_SeWjKsX_EduPJbEsMYXjUQ" key="suppressedUnsetVisibility" value="true"/> + <details xmi:id="_SeWjK8X_EduPJbEsMYXjUQ" key="suppressedIsSetVisibility" value="true"/> + </eAnnotations> + <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_SeWjLMX_EduPJbEsMYXjUQ"/> + </ownedAttribute> + <ownedAttribute xmi:id="_SeWjLcX_EduPJbEsMYXjUQ" name="ePackage" type="_SeWjPsX_EduPJbEsMYXjUQ" isOrdered="true" isReadOnly="true" association="_SeWjb8X_EduPJbEsMYXjUQ"> + <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_SeWjLsX_EduPJbEsMYXjUQ"/> + </ownedAttribute> + <ownedAttribute xmi:id="_SeWjL8X_EduPJbEsMYXjUQ" name="eTypeParameters" type="_SeWjccX_EduPJbEsMYXjUQ" isOrdered="true" aggregation="composite" association="_SeWjlMX_EduPJbEsMYXjUQ"> + <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_SeWjMMX_EduPJbEsMYXjUQ" value="*"/> + <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_SeWjMcX_EduPJbEsMYXjUQ"/> + </ownedAttribute> + <nestedClassifier xmi:type="uml:Class" xmi:id="_SeWjMsX_EduPJbEsMYXjUQ" name="Wildcard"/> + <nestedClassifier xmi:type="uml:PrimitiveType" xmi:id="_SeWjM8X_EduPJbEsMYXjUQ" name="EJavaClass_Wildcard"> + <templateBinding xmi:id="_SeWjNMX_EduPJbEsMYXjUQ" signature="_SeWkbsX_EduPJbEsMYXjUQ"> + <parameterSubstitution xmi:id="_SeWjNcX_EduPJbEsMYXjUQ" formal="_SeWkb8X_EduPJbEsMYXjUQ" actual="_SeWjMsX_EduPJbEsMYXjUQ"/> + </templateBinding> + </nestedClassifier> + <ownedOperation xmi:id="_SeWjNsX_EduPJbEsMYXjUQ" name="isInstance" visibility="public"> + <ownedParameter xmi:id="_SeWjN8X_EduPJbEsMYXjUQ" type="_SeWkM8X_EduPJbEsMYXjUQ" isOrdered="true" direction="return"> + <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_SeWjOMX_EduPJbEsMYXjUQ"/> + </ownedParameter> + <ownedParameter xmi:id="_SeWjOcX_EduPJbEsMYXjUQ" name="object" type="_SeWkccX_EduPJbEsMYXjUQ" isOrdered="true"> + <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_SeWjOsX_EduPJbEsMYXjUQ"/> + </ownedParameter> + </ownedOperation> + <ownedOperation xmi:id="_SeWjO8X_EduPJbEsMYXjUQ" name="getClassifierID" visibility="public"> + <ownedParameter xmi:id="_SeWjPMX_EduPJbEsMYXjUQ" type="_SeWkZcX_EduPJbEsMYXjUQ" isOrdered="true" direction="return"> + <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_SeWjPcX_EduPJbEsMYXjUQ"/> + </ownedParameter> + </ownedOperation> + </packagedElement> + <packagedElement xmi:type="uml:Class" xmi:id="_SeWjasX_EduPJbEsMYXjUQ" name="EDataType"> + <generalization xmi:id="_SeWja8X_EduPJbEsMYXjUQ" general="_SeWjG8X_EduPJbEsMYXjUQ"/> + <ownedAttribute xmi:id="_SeWjbMX_EduPJbEsMYXjUQ" name="serializable" visibility="public" type="_SeWkM8X_EduPJbEsMYXjUQ" isOrdered="true"> + <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_SeWjbcX_EduPJbEsMYXjUQ"/> + </ownedAttribute> + </packagedElement> + <packagedElement xmi:type="uml:Class" xmi:id="_SeWkDMX_EduPJbEsMYXjUQ" name="EEnum"> + <eAnnotations xmi:id="_SeWkDcX_EduPJbEsMYXjUQ" source="http://www.eclipse.org/emf/2002/Ecore"> + <details xmi:id="_SeWkDsX_EduPJbEsMYXjUQ" key="constraints" value="UniqueEnumeratorNames UniqueEnumeratorLiterals"/> + </eAnnotations> + <generalization xmi:id="_SeWkD8X_EduPJbEsMYXjUQ" general="_SeWjasX_EduPJbEsMYXjUQ"/> + <ownedAttribute xmi:id="_SeWkEMX_EduPJbEsMYXjUQ" name="eLiterals" type="_SeWkIsX_EduPJbEsMYXjUQ" isOrdered="true" aggregation="composite" association="_SeWkLMX_EduPJbEsMYXjUQ"> + <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_SeWkEcX_EduPJbEsMYXjUQ" value="*"/> + <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_SeWkEsX_EduPJbEsMYXjUQ"/> + </ownedAttribute> + <ownedOperation xmi:id="_SeWkE8X_EduPJbEsMYXjUQ" name="getEEnumLiteral" visibility="public"> + <ownedParameter xmi:id="_SeWkFMX_EduPJbEsMYXjUQ" type="_SeWkIsX_EduPJbEsMYXjUQ" isOrdered="true" direction="return"> + <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_SeWkFcX_EduPJbEsMYXjUQ"/> + </ownedParameter> + <ownedParameter xmi:id="_SeWkFsX_EduPJbEsMYXjUQ" name="name" type="_SeWkisX_EduPJbEsMYXjUQ" isOrdered="true"> + <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_SeWkF8X_EduPJbEsMYXjUQ"/> + </ownedParameter> + </ownedOperation> + <ownedOperation xmi:id="_SeWkGMX_EduPJbEsMYXjUQ" name="getEEnumLiteral" visibility="public"> + <ownedParameter xmi:id="_SeWkGcX_EduPJbEsMYXjUQ" type="_SeWkIsX_EduPJbEsMYXjUQ" isOrdered="true" direction="return"> + <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_SeWkGsX_EduPJbEsMYXjUQ"/> + </ownedParameter> + <ownedParameter xmi:id="_SeWkG8X_EduPJbEsMYXjUQ" name="value" type="_SeWkZcX_EduPJbEsMYXjUQ" isOrdered="true"> + <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_SeWkHMX_EduPJbEsMYXjUQ"/> + </ownedParameter> + </ownedOperation> + <ownedOperation xmi:id="_SeWkHcX_EduPJbEsMYXjUQ" name="getEEnumLiteralByLiteral" visibility="public"> + <ownedParameter xmi:id="_SeWkHsX_EduPJbEsMYXjUQ" type="_SeWkIsX_EduPJbEsMYXjUQ" isOrdered="true" direction="return"> + <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_SeWkH8X_EduPJbEsMYXjUQ"/> + </ownedParameter> + <ownedParameter xmi:id="_SeWkIMX_EduPJbEsMYXjUQ" name="literal" type="_SeWkisX_EduPJbEsMYXjUQ" isOrdered="true"> + <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_SeWkIcX_EduPJbEsMYXjUQ"/> + </ownedParameter> + </ownedOperation> + </packagedElement> + <packagedElement xmi:type="uml:Class" xmi:id="_SeWkIsX_EduPJbEsMYXjUQ" name="EEnumLiteral"> + <generalization xmi:id="_SeWkI8X_EduPJbEsMYXjUQ" general="_SeWifsX_EduPJbEsMYXjUQ"/> + <ownedAttribute xmi:id="_SeWkJMX_EduPJbEsMYXjUQ" name="value" visibility="public" type="_SeWkZcX_EduPJbEsMYXjUQ" isOrdered="true"> + <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_SeWkJcX_EduPJbEsMYXjUQ"/> + </ownedAttribute> + <ownedAttribute xmi:id="_SeWkJsX_EduPJbEsMYXjUQ" name="instance" visibility="public" type="_SeWkWsX_EduPJbEsMYXjUQ" isOrdered="true"> + <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_SeWkJ8X_EduPJbEsMYXjUQ"/> + </ownedAttribute> + <ownedAttribute xmi:id="_SeWkKMX_EduPJbEsMYXjUQ" name="literal" visibility="public" type="_SeWkisX_EduPJbEsMYXjUQ" isOrdered="true"> + <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_SeWkKcX_EduPJbEsMYXjUQ"/> + </ownedAttribute> + <ownedAttribute xmi:id="_SeWkKsX_EduPJbEsMYXjUQ" name="eEnum" type="_SeWkDMX_EduPJbEsMYXjUQ" isOrdered="true" isReadOnly="true" association="_SeWkLMX_EduPJbEsMYXjUQ"> + <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_SeWkK8X_EduPJbEsMYXjUQ"/> + </ownedAttribute> + </packagedElement> + <packagedElement xmi:type="uml:Class" xmi:id="_SeWjVMX_EduPJbEsMYXjUQ" name="EFactory"> + <generalization xmi:id="_SeWjVcX_EduPJbEsMYXjUQ" general="_SeWihMX_EduPJbEsMYXjUQ"/> + <ownedAttribute xmi:id="_SeWjVsX_EduPJbEsMYXjUQ" name="ePackage" type="_SeWjPsX_EduPJbEsMYXjUQ" isOrdered="true" association="_SeWjbsX_EduPJbEsMYXjUQ"/> + <ownedOperation xmi:id="_SeWjV8X_EduPJbEsMYXjUQ" name="create" visibility="public"> + <ownedParameter xmi:id="_SeWjWMX_EduPJbEsMYXjUQ" type="_SeWijsX_EduPJbEsMYXjUQ" isOrdered="true" direction="return"> + <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_SeWjWcX_EduPJbEsMYXjUQ"/> + </ownedParameter> + <ownedParameter xmi:id="_SeWjWsX_EduPJbEsMYXjUQ" name="eClass" type="_SeWizcX_EduPJbEsMYXjUQ" isOrdered="true"> + <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_SeWjW8X_EduPJbEsMYXjUQ"/> + </ownedParameter> + </ownedOperation> + <ownedOperation xmi:id="_SeWjXMX_EduPJbEsMYXjUQ" name="createFromString" visibility="public"> + <ownedParameter xmi:id="_SeWjXcX_EduPJbEsMYXjUQ" type="_SeWkccX_EduPJbEsMYXjUQ" isOrdered="true" direction="return"> + <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_SeWjXsX_EduPJbEsMYXjUQ"/> + </ownedParameter> + <ownedParameter xmi:id="_SeWjX8X_EduPJbEsMYXjUQ" name="eDataType" type="_SeWjasX_EduPJbEsMYXjUQ" isOrdered="true"> + <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_SeWjYMX_EduPJbEsMYXjUQ"/> + </ownedParameter> + <ownedParameter xmi:id="_SeWjYcX_EduPJbEsMYXjUQ" name="literalValue" type="_SeWkisX_EduPJbEsMYXjUQ" isOrdered="true"> + <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_SeWjYsX_EduPJbEsMYXjUQ"/> + </ownedParameter> + </ownedOperation> + <ownedOperation xmi:id="_SeWjY8X_EduPJbEsMYXjUQ" name="convertToString" visibility="public"> + <ownedParameter xmi:id="_SeWjZMX_EduPJbEsMYXjUQ" type="_SeWkisX_EduPJbEsMYXjUQ" isOrdered="true" direction="return"> + <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_SeWjZcX_EduPJbEsMYXjUQ"/> + </ownedParameter> + <ownedParameter xmi:id="_SeWjZsX_EduPJbEsMYXjUQ" name="eDataType" type="_SeWjasX_EduPJbEsMYXjUQ" isOrdered="true"> + <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_SeWjZ8X_EduPJbEsMYXjUQ"/> + </ownedParameter> + <ownedParameter xmi:id="_SeWjaMX_EduPJbEsMYXjUQ" name="instanceValue" type="_SeWkccX_EduPJbEsMYXjUQ" isOrdered="true"> + <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_SeWjacX_EduPJbEsMYXjUQ"/> + </ownedParameter> + </ownedOperation> + </packagedElement> + <packagedElement xmi:type="uml:Class" xmi:id="_SeWjdsX_EduPJbEsMYXjUQ" name="EGenericType"> + <eAnnotations xmi:id="_SeWjd8X_EduPJbEsMYXjUQ" source="http://www.eclipse.org/emf/2002/Ecore"> + <details xmi:id="_SeWjeMX_EduPJbEsMYXjUQ" key="constraints" value="ConsistentType ConsistentBounds ConsistentArguments"/> + </eAnnotations> + <generalization xmi:id="_SeWjecX_EduPJbEsMYXjUQ" general="_SeWijsX_EduPJbEsMYXjUQ"/> + <ownedAttribute xmi:id="_SeWjesX_EduPJbEsMYXjUQ" name="eUpperBound" type="_SeWjdsX_EduPJbEsMYXjUQ" isOrdered="true" aggregation="composite" association="_SeWjhsX_EduPJbEsMYXjUQ"> + <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_SeWje8X_EduPJbEsMYXjUQ"/> + </ownedAttribute> + <ownedAttribute xmi:id="_SeWjfMX_EduPJbEsMYXjUQ" name="eTypeArguments" type="_SeWjdsX_EduPJbEsMYXjUQ" isOrdered="true" aggregation="composite" association="_SeWjiMX_EduPJbEsMYXjUQ"> + <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_SeWjfcX_EduPJbEsMYXjUQ" value="*"/> + <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_SeWjfsX_EduPJbEsMYXjUQ"/> + </ownedAttribute> + <ownedAttribute xmi:id="_SeWjf8X_EduPJbEsMYXjUQ" name="eRawType" type="_SeWjG8X_EduPJbEsMYXjUQ" isOrdered="true" isReadOnly="true" isDerived="true" association="_SeWjisX_EduPJbEsMYXjUQ"/> + <ownedAttribute xmi:id="_SeWjgMX_EduPJbEsMYXjUQ" name="eLowerBound" type="_SeWjdsX_EduPJbEsMYXjUQ" isOrdered="true" aggregation="composite" association="_SeWjjMX_EduPJbEsMYXjUQ"> + <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_SeWjgcX_EduPJbEsMYXjUQ"/> + </ownedAttribute> + <ownedAttribute xmi:id="_SeWjgsX_EduPJbEsMYXjUQ" name="eTypeParameter" type="_SeWjccX_EduPJbEsMYXjUQ" isOrdered="true" association="_SeWjjsX_EduPJbEsMYXjUQ"> + <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_SeWjg8X_EduPJbEsMYXjUQ"/> + </ownedAttribute> + <ownedAttribute xmi:id="_SeWjhMX_EduPJbEsMYXjUQ" name="eClassifier" type="_SeWjG8X_EduPJbEsMYXjUQ" isOrdered="true" association="_SeWjkMX_EduPJbEsMYXjUQ"> + <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_SeWjhcX_EduPJbEsMYXjUQ"/> + </ownedAttribute> + </packagedElement> + <packagedElement xmi:type="uml:Class" xmi:id="_SeWihMX_EduPJbEsMYXjUQ" name="EModelElement" isAbstract="true"> + <generalization xmi:id="_SeWihcX_EduPJbEsMYXjUQ" general="_SeWijsX_EduPJbEsMYXjUQ"/> + <ownedAttribute xmi:id="_SeWihsX_EduPJbEsMYXjUQ" name="eAnnotations" type="_SeWj6cX_EduPJbEsMYXjUQ" isOrdered="true" aggregation="composite" association="_SeWkAcX_EduPJbEsMYXjUQ"> + <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_SeWih8X_EduPJbEsMYXjUQ" value="*"/> + <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_SeWiiMX_EduPJbEsMYXjUQ"/> + </ownedAttribute> + <ownedOperation xmi:id="_SeWiicX_EduPJbEsMYXjUQ" name="getEAnnotation" visibility="public"> + <ownedParameter xmi:id="_SeWiisX_EduPJbEsMYXjUQ" type="_SeWj6cX_EduPJbEsMYXjUQ" isOrdered="true" direction="return"> + <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_SeWii8X_EduPJbEsMYXjUQ"/> + </ownedParameter> + <ownedParameter xmi:id="_SeWijMX_EduPJbEsMYXjUQ" name="source" type="_SeWkisX_EduPJbEsMYXjUQ" isOrdered="true"> + <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_SeWijcX_EduPJbEsMYXjUQ"/> + </ownedParameter> + </ownedOperation> + </packagedElement> + <packagedElement xmi:type="uml:Class" xmi:id="_SeWifsX_EduPJbEsMYXjUQ" name="ENamedElement" isAbstract="true"> + <eAnnotations xmi:id="_SeWif8X_EduPJbEsMYXjUQ" source="http://www.eclipse.org/emf/2002/Ecore"> + <details xmi:id="_SeWigMX_EduPJbEsMYXjUQ" key="constraints" value="WellFormedName"/> + </eAnnotations> + <generalization xmi:id="_SeWigcX_EduPJbEsMYXjUQ" general="_SeWihMX_EduPJbEsMYXjUQ"/> + <ownedAttribute xmi:id="_SeWigsX_EduPJbEsMYXjUQ" name="name" visibility="public" type="_SeWkisX_EduPJbEsMYXjUQ" isOrdered="true"> + <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_SeWig8X_EduPJbEsMYXjUQ"/> + </ownedAttribute> + </packagedElement> + <packagedElement xmi:type="uml:Class" xmi:id="_SeWijsX_EduPJbEsMYXjUQ" name="EObject"> + <nestedClassifier xmi:type="uml:PrimitiveType" xmi:id="_SeWij8X_EduPJbEsMYXjUQ" name="EEList_EObject"> + <templateBinding xmi:id="_SeWikMX_EduPJbEsMYXjUQ" signature="_SeWkV8X_EduPJbEsMYXjUQ"> + <parameterSubstitution xmi:id="_SeWikcX_EduPJbEsMYXjUQ" formal="_SeWkWMX_EduPJbEsMYXjUQ" actual="_SeWijsX_EduPJbEsMYXjUQ"/> + </templateBinding> + </nestedClassifier> + <nestedClassifier xmi:type="uml:PrimitiveType" xmi:id="_SeWiksX_EduPJbEsMYXjUQ" name="ETreeIterator_EObject"> + <templateBinding xmi:id="_SeWik8X_EduPJbEsMYXjUQ" signature="_SeWkjsX_EduPJbEsMYXjUQ"> + <parameterSubstitution xmi:id="_SeWilMX_EduPJbEsMYXjUQ" formal="_SeWkj8X_EduPJbEsMYXjUQ" actual="_SeWijsX_EduPJbEsMYXjUQ"/> + </templateBinding> + </nestedClassifier> + <ownedOperation xmi:id="_SeWilcX_EduPJbEsMYXjUQ" name="eClass" visibility="public"> + <ownedParameter xmi:id="_SeWilsX_EduPJbEsMYXjUQ" type="_SeWizcX_EduPJbEsMYXjUQ" isOrdered="true" direction="return"> + <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_SeWil8X_EduPJbEsMYXjUQ"/> + </ownedParameter> + </ownedOperation> + <ownedOperation xmi:id="_SeWimMX_EduPJbEsMYXjUQ" name="eIsProxy" visibility="public"> + <ownedParameter xmi:id="_SeWimcX_EduPJbEsMYXjUQ" type="_SeWkM8X_EduPJbEsMYXjUQ" isOrdered="true" direction="return"> + <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_SeWimsX_EduPJbEsMYXjUQ"/> + </ownedParameter> + </ownedOperation> + <ownedOperation xmi:id="_SeWim8X_EduPJbEsMYXjUQ" name="eResource" visibility="public"> + <ownedParameter xmi:id="_SeWinMX_EduPJbEsMYXjUQ" type="_SeWkgMX_EduPJbEsMYXjUQ" isOrdered="true" direction="return"> + <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_SeWincX_EduPJbEsMYXjUQ"/> + </ownedParameter> + </ownedOperation> + <ownedOperation xmi:id="_SeWinsX_EduPJbEsMYXjUQ" name="eContainer" visibility="public"> + <ownedParameter xmi:id="_SeWin8X_EduPJbEsMYXjUQ" type="_SeWijsX_EduPJbEsMYXjUQ" isOrdered="true" direction="return"> + <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_SeWioMX_EduPJbEsMYXjUQ"/> + </ownedParameter> + </ownedOperation> + <ownedOperation xmi:id="_SeWiocX_EduPJbEsMYXjUQ" name="eContainingFeature" visibility="public"> + <ownedParameter xmi:id="_SeWiosX_EduPJbEsMYXjUQ" type="_SeWiSMX_EduPJbEsMYXjUQ" isOrdered="true" direction="return"> + <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_SeWio8X_EduPJbEsMYXjUQ"/> + </ownedParameter> + </ownedOperation> + <ownedOperation xmi:id="_SeWipMX_EduPJbEsMYXjUQ" name="eContainmentFeature" visibility="public"> + <ownedParameter xmi:id="_SeWipcX_EduPJbEsMYXjUQ" type="_SeWjvsX_EduPJbEsMYXjUQ" isOrdered="true" direction="return"> + <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_SeWipsX_EduPJbEsMYXjUQ"/> + </ownedParameter> + </ownedOperation> + <ownedOperation xmi:id="_SeWip8X_EduPJbEsMYXjUQ" name="eContents" visibility="public"> + <ownedParameter xmi:id="_SeWiqMX_EduPJbEsMYXjUQ" type="_SeWij8X_EduPJbEsMYXjUQ" isOrdered="true" direction="return"> + <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_SeWiqcX_EduPJbEsMYXjUQ"/> + </ownedParameter> + </ownedOperation> + <ownedOperation xmi:id="_SeWiqsX_EduPJbEsMYXjUQ" name="eAllContents" visibility="public"> + <ownedParameter xmi:id="_SeWiq8X_EduPJbEsMYXjUQ" type="_SeWiksX_EduPJbEsMYXjUQ" isOrdered="true" direction="return"> + <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_SeWirMX_EduPJbEsMYXjUQ"/> + </ownedParameter> + </ownedOperation> + <ownedOperation xmi:id="_SeWircX_EduPJbEsMYXjUQ" name="eCrossReferences" visibility="public"> + <ownedParameter xmi:id="_SeWirsX_EduPJbEsMYXjUQ" type="_SeWij8X_EduPJbEsMYXjUQ" isOrdered="true" direction="return"> + <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_SeWir8X_EduPJbEsMYXjUQ"/> + </ownedParameter> + </ownedOperation> + <ownedOperation xmi:id="_SeWisMX_EduPJbEsMYXjUQ" name="eGet" visibility="public"> + <ownedParameter xmi:id="_SeWiscX_EduPJbEsMYXjUQ" type="_SeWkccX_EduPJbEsMYXjUQ" isOrdered="true" direction="return"> + <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_SeWissX_EduPJbEsMYXjUQ"/> + </ownedParameter> + <ownedParameter xmi:id="_SeWis8X_EduPJbEsMYXjUQ" name="feature" type="_SeWiSMX_EduPJbEsMYXjUQ" isOrdered="true"> + <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_SeWitMX_EduPJbEsMYXjUQ"/> + </ownedParameter> + </ownedOperation> + <ownedOperation xmi:id="_SeWitcX_EduPJbEsMYXjUQ" name="eGet" visibility="public"> + <ownedParameter xmi:id="_SeWitsX_EduPJbEsMYXjUQ" type="_SeWkccX_EduPJbEsMYXjUQ" isOrdered="true" direction="return"> + <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_SeWit8X_EduPJbEsMYXjUQ"/> + </ownedParameter> + <ownedParameter xmi:id="_SeWiuMX_EduPJbEsMYXjUQ" name="feature" type="_SeWiSMX_EduPJbEsMYXjUQ" isOrdered="true"> + <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_SeWiucX_EduPJbEsMYXjUQ"/> + </ownedParameter> + <ownedParameter xmi:id="_SeWiusX_EduPJbEsMYXjUQ" name="resolve" type="_SeWkM8X_EduPJbEsMYXjUQ" isOrdered="true"> + <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_SeWiu8X_EduPJbEsMYXjUQ"/> + </ownedParameter> + </ownedOperation> + <ownedOperation xmi:id="_SeWivMX_EduPJbEsMYXjUQ" name="eSet" visibility="public"> + <ownedParameter xmi:id="_SeWivcX_EduPJbEsMYXjUQ" isOrdered="true" direction="return"> + <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_SeWivsX_EduPJbEsMYXjUQ"/> + </ownedParameter> + <ownedParameter xmi:id="_SeWiv8X_EduPJbEsMYXjUQ" name="feature" type="_SeWiSMX_EduPJbEsMYXjUQ" isOrdered="true"> + <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_SeWiwMX_EduPJbEsMYXjUQ"/> + </ownedParameter> + <ownedParameter xmi:id="_SeWiwcX_EduPJbEsMYXjUQ" name="newValue" type="_SeWkccX_EduPJbEsMYXjUQ" isOrdered="true"> + <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_SeWiwsX_EduPJbEsMYXjUQ"/> + </ownedParameter> + </ownedOperation> + <ownedOperation xmi:id="_SeWiw8X_EduPJbEsMYXjUQ" name="eIsSet" visibility="public"> + <ownedParameter xmi:id="_SeWixMX_EduPJbEsMYXjUQ" type="_SeWkM8X_EduPJbEsMYXjUQ" isOrdered="true" direction="return"> + <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_SeWixcX_EduPJbEsMYXjUQ"/> + </ownedParameter> + <ownedParameter xmi:id="_SeWixsX_EduPJbEsMYXjUQ" name="feature" type="_SeWiSMX_EduPJbEsMYXjUQ" isOrdered="true"> + <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_SeWix8X_EduPJbEsMYXjUQ"/> + </ownedParameter> + </ownedOperation> + <ownedOperation xmi:id="_SeWiyMX_EduPJbEsMYXjUQ" name="eUnset" visibility="public"> + <ownedParameter xmi:id="_SeWiycX_EduPJbEsMYXjUQ" isOrdered="true" direction="return"> + <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_SeWiysX_EduPJbEsMYXjUQ"/> + </ownedParameter> + <ownedParameter xmi:id="_SeWiy8X_EduPJbEsMYXjUQ" name="feature" type="_SeWiSMX_EduPJbEsMYXjUQ" isOrdered="true"> + <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_SeWizMX_EduPJbEsMYXjUQ"/> + </ownedParameter> + </ownedOperation> + </packagedElement> + <packagedElement xmi:type="uml:Class" xmi:id="_SeWjmMX_EduPJbEsMYXjUQ" name="EOperation"> + <eAnnotations xmi:id="_SeWjmcX_EduPJbEsMYXjUQ" source="http://www.eclipse.org/emf/2002/Ecore"> + <details xmi:id="_SeWjmsX_EduPJbEsMYXjUQ" key="constraints" value="UniqueParameterNames UniqueTypeParameterNames NoRepeatingVoid"/> + </eAnnotations> + <generalization xmi:id="_SeWjm8X_EduPJbEsMYXjUQ" general="_SeWiZMX_EduPJbEsMYXjUQ"/> + <ownedAttribute xmi:id="_SeWjnMX_EduPJbEsMYXjUQ" name="eContainingClass" type="_SeWizcX_EduPJbEsMYXjUQ" isOrdered="true" isReadOnly="true" association="_SeWjsMX_EduPJbEsMYXjUQ"> + <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_SeWjncX_EduPJbEsMYXjUQ"/> + </ownedAttribute> + <ownedAttribute xmi:id="_SeWjnsX_EduPJbEsMYXjUQ" name="eTypeParameters" type="_SeWjccX_EduPJbEsMYXjUQ" isOrdered="true" aggregation="composite" association="_SeWjscX_EduPJbEsMYXjUQ"> + <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_SeWjn8X_EduPJbEsMYXjUQ" value="*"/> + <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_SeWjoMX_EduPJbEsMYXjUQ"/> + </ownedAttribute> + <ownedAttribute xmi:id="_SeWjocX_EduPJbEsMYXjUQ" name="eParameters" type="_SeWjs8X_EduPJbEsMYXjUQ" isOrdered="true" aggregation="composite" association="_SeWjt8X_EduPJbEsMYXjUQ"> + <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_SeWjosX_EduPJbEsMYXjUQ" value="*"/> + <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_SeWjo8X_EduPJbEsMYXjUQ"/> + </ownedAttribute> + <ownedAttribute xmi:id="_SeWjpMX_EduPJbEsMYXjUQ" name="eExceptions" type="_SeWjG8X_EduPJbEsMYXjUQ" isOrdered="true" association="_SeWjuMX_EduPJbEsMYXjUQ"> + <eAnnotations xmi:id="_SeWjpcX_EduPJbEsMYXjUQ" source="http://www.eclipse.org/emf/2002/GenModel"> + <details xmi:id="_SeWjpsX_EduPJbEsMYXjUQ" key="suppressedUnsetVisibility" value="true"/> + <details xmi:id="_SeWjp8X_EduPJbEsMYXjUQ" key="suppressedIsSetVisibility" value="true"/> + </eAnnotations> + <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_SeWjqMX_EduPJbEsMYXjUQ" value="*"/> + <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_SeWjqcX_EduPJbEsMYXjUQ"/> + </ownedAttribute> + <ownedAttribute xmi:id="_SeWjqsX_EduPJbEsMYXjUQ" name="eGenericExceptions" type="_SeWjdsX_EduPJbEsMYXjUQ" isOrdered="true" aggregation="composite" association="_SeWjusX_EduPJbEsMYXjUQ"> + <eAnnotations xmi:id="_SeWjq8X_EduPJbEsMYXjUQ" source="http://www.eclipse.org/emf/2002/GenModel"> + <details xmi:id="_SeWjrMX_EduPJbEsMYXjUQ" key="suppressedUnsetVisibility" value="true"/> + <details xmi:id="_SeWjrcX_EduPJbEsMYXjUQ" key="suppressedIsSetVisibility" value="true"/> + </eAnnotations> + <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_SeWjrsX_EduPJbEsMYXjUQ" value="*"/> + <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_SeWjr8X_EduPJbEsMYXjUQ"/> + </ownedAttribute> + </packagedElement> + <packagedElement xmi:type="uml:Class" xmi:id="_SeWjPsX_EduPJbEsMYXjUQ" name="EPackage"> + <eAnnotations xmi:id="_SeWjP8X_EduPJbEsMYXjUQ" source="http://www.eclipse.org/emf/2002/Ecore"> + <details xmi:id="_SeWjQMX_EduPJbEsMYXjUQ" key="constraints" value="WellFormedNsURI WellFormedNsPrefix UniqueSubpackageNames UniqueClassifierNames UniqueNsURIs"/> + </eAnnotations> + <generalization xmi:id="_SeWjQcX_EduPJbEsMYXjUQ" general="_SeWifsX_EduPJbEsMYXjUQ"/> + <ownedAttribute xmi:id="_SeWjQsX_EduPJbEsMYXjUQ" name="nsURI" visibility="public" type="_SeWkisX_EduPJbEsMYXjUQ" isOrdered="true"> + <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_SeWjQ8X_EduPJbEsMYXjUQ"/> + </ownedAttribute> + <ownedAttribute xmi:id="_SeWjRMX_EduPJbEsMYXjUQ" name="nsPrefix" visibility="public" type="_SeWkisX_EduPJbEsMYXjUQ" isOrdered="true"> + <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_SeWjRcX_EduPJbEsMYXjUQ"/> + </ownedAttribute> + <ownedAttribute xmi:id="_SeWjRsX_EduPJbEsMYXjUQ" name="eFactoryInstance" type="_SeWjVMX_EduPJbEsMYXjUQ" isOrdered="true" association="_SeWjbsX_EduPJbEsMYXjUQ"/> + <ownedAttribute xmi:id="_SeWjR8X_EduPJbEsMYXjUQ" name="eClassifiers" type="_SeWjG8X_EduPJbEsMYXjUQ" isOrdered="true" aggregation="composite" association="_SeWjb8X_EduPJbEsMYXjUQ"> + <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_SeWjSMX_EduPJbEsMYXjUQ" value="*"/> + <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_SeWjScX_EduPJbEsMYXjUQ"/> + </ownedAttribute> + <ownedAttribute xmi:id="_SeWjSsX_EduPJbEsMYXjUQ" name="eSubpackages" type="_SeWjPsX_EduPJbEsMYXjUQ" isOrdered="true" aggregation="composite" association="_SeWjcMX_EduPJbEsMYXjUQ"> + <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_SeWjS8X_EduPJbEsMYXjUQ" value="*"/> + <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_SeWjTMX_EduPJbEsMYXjUQ"/> + </ownedAttribute> + <ownedAttribute xmi:id="_SeWjTcX_EduPJbEsMYXjUQ" name="eSuperPackage" type="_SeWjPsX_EduPJbEsMYXjUQ" isOrdered="true" isReadOnly="true" association="_SeWjcMX_EduPJbEsMYXjUQ"> + <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_SeWjTsX_EduPJbEsMYXjUQ"/> + </ownedAttribute> + <ownedOperation xmi:id="_SeWjT8X_EduPJbEsMYXjUQ" name="getEClassifier" visibility="public"> + <ownedParameter xmi:id="_SeWjUMX_EduPJbEsMYXjUQ" type="_SeWjG8X_EduPJbEsMYXjUQ" isOrdered="true" direction="return"> + <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_SeWjUcX_EduPJbEsMYXjUQ"/> + </ownedParameter> + <ownedParameter xmi:id="_SeWjUsX_EduPJbEsMYXjUQ" name="name" type="_SeWkisX_EduPJbEsMYXjUQ" isOrdered="true"> + <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_SeWjU8X_EduPJbEsMYXjUQ"/> + </ownedParameter> + </ownedOperation> + </packagedElement> + <packagedElement xmi:type="uml:Class" xmi:id="_SeWjs8X_EduPJbEsMYXjUQ" name="EParameter"> + <generalization xmi:id="_SeWjtMX_EduPJbEsMYXjUQ" general="_SeWiZMX_EduPJbEsMYXjUQ"/> + <ownedAttribute xmi:id="_SeWjtcX_EduPJbEsMYXjUQ" name="eOperation" type="_SeWjmMX_EduPJbEsMYXjUQ" isOrdered="true" isReadOnly="true" association="_SeWjt8X_EduPJbEsMYXjUQ"> + <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_SeWjtsX_EduPJbEsMYXjUQ"/> + </ownedAttribute> + </packagedElement> + <packagedElement xmi:type="uml:Class" xmi:id="_SeWjvsX_EduPJbEsMYXjUQ" name="EReference"> + <eAnnotations xmi:id="_SeWjv8X_EduPJbEsMYXjUQ" source="http://www.eclipse.org/emf/2002/Ecore"> + <details xmi:id="_SeWjwMX_EduPJbEsMYXjUQ" key="constraints" value="ConsistentOpposite SingleContainer ConsistentKeys"/> + </eAnnotations> + <generalization xmi:id="_SeWjwcX_EduPJbEsMYXjUQ" general="_SeWiSMX_EduPJbEsMYXjUQ"/> + <ownedAttribute xmi:id="_SeWjwsX_EduPJbEsMYXjUQ" name="containment" visibility="public" type="_SeWkM8X_EduPJbEsMYXjUQ" isOrdered="true"> + <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_SeWjw8X_EduPJbEsMYXjUQ"/> + </ownedAttribute> + <ownedAttribute xmi:id="_SeWjxMX_EduPJbEsMYXjUQ" name="container" visibility="public" type="_SeWkM8X_EduPJbEsMYXjUQ" isOrdered="true" isReadOnly="true" isDerived="true"> + <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_SeWjxcX_EduPJbEsMYXjUQ"/> + </ownedAttribute> + <ownedAttribute xmi:id="_SeWjxsX_EduPJbEsMYXjUQ" name="resolveProxies" visibility="public" type="_SeWkM8X_EduPJbEsMYXjUQ" isOrdered="true"> + <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_SeWjx8X_EduPJbEsMYXjUQ"/> + </ownedAttribute> + <ownedAttribute xmi:id="_SeWjyMX_EduPJbEsMYXjUQ" name="eOpposite" type="_SeWjvsX_EduPJbEsMYXjUQ" isOrdered="true" association="_SeWjzsX_EduPJbEsMYXjUQ"> + <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_SeWjycX_EduPJbEsMYXjUQ"/> + </ownedAttribute> + <ownedAttribute xmi:id="_SeWjysX_EduPJbEsMYXjUQ" name="eReferenceType" type="_SeWizcX_EduPJbEsMYXjUQ" isOrdered="true" isReadOnly="true" isDerived="true" association="_SeWj0MX_EduPJbEsMYXjUQ"/> + <ownedAttribute xmi:id="_SeWjy8X_EduPJbEsMYXjUQ" name="eKeys" type="_SeWiQcX_EduPJbEsMYXjUQ" isOrdered="true" association="_SeWj0sX_EduPJbEsMYXjUQ"> + <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_SeWjzMX_EduPJbEsMYXjUQ" value="*"/> + <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_SeWjzcX_EduPJbEsMYXjUQ"/> + </ownedAttribute> + </packagedElement> + <packagedElement xmi:type="uml:Class" xmi:id="_SeWj-sX_EduPJbEsMYXjUQ" name="EStringToStringMapEntry"> + <ownedAttribute xmi:id="_SeWj-8X_EduPJbEsMYXjUQ" name="key" visibility="public" type="_SeWkisX_EduPJbEsMYXjUQ" isOrdered="true"> + <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_SeWj_MX_EduPJbEsMYXjUQ"/> + </ownedAttribute> + <ownedAttribute xmi:id="_SeWj_cX_EduPJbEsMYXjUQ" name="value" visibility="public" type="_SeWkisX_EduPJbEsMYXjUQ" isOrdered="true"> + <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_SeWj_sX_EduPJbEsMYXjUQ"/> + </ownedAttribute> + </packagedElement> + <packagedElement xmi:type="uml:Class" xmi:id="_SeWiSMX_EduPJbEsMYXjUQ" name="EStructuralFeature" isAbstract="true"> + <generalization xmi:id="_SeWiScX_EduPJbEsMYXjUQ" general="_SeWiZMX_EduPJbEsMYXjUQ"/> + <ownedAttribute xmi:id="_SeWiSsX_EduPJbEsMYXjUQ" name="eContainingClass" type="_SeWizcX_EduPJbEsMYXjUQ" isOrdered="true" isReadOnly="true" association="_SeWj5MX_EduPJbEsMYXjUQ"> + <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_SeWiS8X_EduPJbEsMYXjUQ"/> + |