Skip to main content

This CGIT instance is deprecated, and repositories have been moved to Gitlab or Github. See the repository descriptions for specific locations.

aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGregoire Dupe2012-08-07 08:49:59 +0000
committerGregoire Dupe2012-08-07 08:49:59 +0000
commit18e4aea56d5fc4084f55a0cd643736bd943de472 (patch)
tree5e3e2eebf28d5ad1156913bd64434f750b090aca /org.eclipse.gmt.modisco.java.discoverer.tests
parentb555713b679cd9675b77bf565b3099b4a3349478 (diff)
downloadorg.eclipse.modisco-18e4aea56d5fc4084f55a0cd643736bd943de472.tar.gz
org.eclipse.modisco-18e4aea56d5fc4084f55a0cd643736bd943de472.tar.xz
org.eclipse.modisco-18e4aea56d5fc4084f55a0cd643736bd943de472.zip
Bug 386235 - [Releng] Use tycho to build MoDisco Moving test plug-ins to the root.
Diffstat (limited to 'org.eclipse.gmt.modisco.java.discoverer.tests')
-rw-r--r--org.eclipse.gmt.modisco.java.discoverer.tests/.checkstyle9
-rw-r--r--org.eclipse.gmt.modisco.java.discoverer.tests/.classpath7
-rw-r--r--org.eclipse.gmt.modisco.java.discoverer.tests/.options4
-rw-r--r--org.eclipse.gmt.modisco.java.discoverer.tests/.project28
-rw-r--r--org.eclipse.gmt.modisco.java.discoverer.tests/.settings/org.eclipse.core.resources.prefs3
-rw-r--r--org.eclipse.gmt.modisco.java.discoverer.tests/.settings/org.eclipse.jdt.core.prefs71
-rw-r--r--org.eclipse.gmt.modisco.java.discoverer.tests/META-INF/MANIFEST.MF25
-rw-r--r--org.eclipse.gmt.modisco.java.discoverer.tests/OSGI-INF/l10n/bundle.properties17
-rw-r--r--org.eclipse.gmt.modisco.java.discoverer.tests/about.html28
-rw-r--r--org.eclipse.gmt.modisco.java.discoverer.tests/build.properties20
-rw-r--r--org.eclipse.gmt.modisco.java.discoverer.tests/plugin.xml21
-rw-r--r--org.eclipse.gmt.modisco.java.discoverer.tests/references/bug317835.javaxmi31
-rw-r--r--org.eclipse.gmt.modisco.java.discoverer.tests/references/bug318469.javaxmi87
-rw-r--r--org.eclipse.gmt.modisco.java.discoverer.tests/references/bug318631.javaxmi213
-rw-r--r--org.eclipse.gmt.modisco.java.discoverer.tests/references/bug326584.javaxmi23
-rw-r--r--org.eclipse.gmt.modisco.java.discoverer.tests/references/bug326944.javaxmi48
-rw-r--r--org.eclipse.gmt.modisco.java.discoverer.tests/references/test001.javaxmi1755
-rw-r--r--org.eclipse.gmt.modisco.java.discoverer.tests/references/test001.kdm3305
-rw-r--r--org.eclipse.gmt.modisco.java.discoverer.tests/src/org/eclipse/gmt/modisco/java/discoverer/tests/Activator.java75
-rw-r--r--org.eclipse.gmt.modisco.java.discoverer.tests/src/org/eclipse/gmt/modisco/java/discoverer/tests/AllTests.java28
-rw-r--r--org.eclipse.gmt.modisco.java.discoverer.tests/src/org/eclipse/gmt/modisco/java/discoverer/tests/Bug329423CommentsTest.java65
-rw-r--r--org.eclipse.gmt.modisco.java.discoverer.tests/src/org/eclipse/gmt/modisco/java/discoverer/tests/Java2KdmConverterTest.java224
-rw-r--r--org.eclipse.gmt.modisco.java.discoverer.tests/src/org/eclipse/gmt/modisco/java/discoverer/tests/JavaJUnitEMF.java555
-rw-r--r--org.eclipse.gmt.modisco.java.discoverer.tests/src/org/eclipse/gmt/modisco/java/discoverer/tests/JavaJUnitEMFJunit3.java181
-rw-r--r--org.eclipse.gmt.modisco.java.discoverer.tests/src/org/eclipse/gmt/modisco/java/discoverer/tests/JavaProject2KdmTest.java213
-rw-r--r--org.eclipse.gmt.modisco.java.discoverer.tests/src/org/eclipse/gmt/modisco/java/discoverer/tests/JavaValidation.java571
-rw-r--r--org.eclipse.gmt.modisco.java.discoverer.tests/src/org/eclipse/gmt/modisco/java/discoverer/tests/Messages.java33
-rw-r--r--org.eclipse.gmt.modisco.java.discoverer.tests/src/org/eclipse/gmt/modisco/java/discoverer/tests/ModelElementStats.java107
-rw-r--r--org.eclipse.gmt.modisco.java.discoverer.tests/src/org/eclipse/gmt/modisco/java/discoverer/tests/ParameterizedDiscovery.java124
-rw-r--r--org.eclipse.gmt.modisco.java.discoverer.tests/src/org/eclipse/gmt/modisco/java/discoverer/tests/SimpleBlackBoxConverter.java168
-rw-r--r--org.eclipse.gmt.modisco.java.discoverer.tests/src/org/eclipse/gmt/modisco/java/discoverer/tests/SimpleBlackBoxDiscovery.java329
-rw-r--r--org.eclipse.gmt.modisco.java.discoverer.tests/src/org/eclipse/gmt/modisco/java/discoverer/tests/messages.properties13
-rw-r--r--org.eclipse.gmt.modisco.java.discoverer.tests/src/org/eclipse/gmt/modisco/java/discoverer/tests/utils/AbstractDiscoverTest.java217
-rw-r--r--org.eclipse.gmt.modisco.java.discoverer.tests/src/org/eclipse/gmt/modisco/java/discoverer/tests/utils/JavaProjectFactory.java181
-rw-r--r--org.eclipse.gmt.modisco.java.discoverer.tests/workspace/bug312080/src/x/y/myClass.java9
-rw-r--r--org.eclipse.gmt.modisco.java.discoverer.tests/workspace/bug318469/src/annotations/AnnotatedField.java27
-rw-r--r--org.eclipse.gmt.modisco.java.discoverer.tests/workspace/bug318631/src/annotations/AnnotatedField.java27
-rw-r--r--org.eclipse.gmt.modisco.java.discoverer.tests/workspace/bug318631/src/anonymousclass/IBug318631.java20
-rw-r--r--org.eclipse.gmt.modisco.java.discoverer.tests/workspace/bug318631/src/anonymousclass/RootClass.java28
-rw-r--r--org.eclipse.gmt.modisco.java.discoverer.tests/workspace/bug318631/src/supercontructorinvocation/Child.java26
-rw-r--r--org.eclipse.gmt.modisco.java.discoverer.tests/workspace/bug318631/src/supercontructorinvocation/Parent.java22
-rw-r--r--org.eclipse.gmt.modisco.java.discoverer.tests/workspace/bug326944/src/supermethodinvocation/Child.java20
-rw-r--r--org.eclipse.gmt.modisco.java.discoverer.tests/workspace/bug326944/src/supermethodinvocation/Parent.java18
-rw-r--r--org.eclipse.gmt.modisco.java.discoverer.tests/workspace/bug329423/.classpath6
-rw-r--r--org.eclipse.gmt.modisco.java.discoverer.tests/workspace/bug329423/.project17
-rw-r--r--org.eclipse.gmt.modisco.java.discoverer.tests/workspace/bug329423/src/comments/IsolatedComment.java23
-rw-r--r--org.eclipse.gmt.modisco.java.discoverer.tests/workspace/bug338874/src/test.java19
-rw-r--r--org.eclipse.gmt.modisco.java.discoverer.tests/workspace/test001/.classpath6
-rw-r--r--org.eclipse.gmt.modisco.java.discoverer.tests/workspace/test001/.project17
-rw-r--r--org.eclipse.gmt.modisco.java.discoverer.tests/workspace/test001/.settings/org.eclipse.jdt.core.prefs12
-rw-r--r--org.eclipse.gmt.modisco.java.discoverer.tests/workspace/test001/src/annotations/MyAnnotatedClass.java34
-rw-r--r--org.eclipse.gmt.modisco.java.discoverer.tests/workspace/test001/src/annotations/MyAnnotatedClass2.java37
-rw-r--r--org.eclipse.gmt.modisco.java.discoverer.tests/workspace/test001/src/annotations/MyAnnotation.java19
-rw-r--r--org.eclipse.gmt.modisco.java.discoverer.tests/workspace/test001/src/bug325108/Bug325108.java7
-rw-r--r--org.eclipse.gmt.modisco.java.discoverer.tests/workspace/test001/src/classorifaceproxy/README.txt12
-rw-r--r--org.eclipse.gmt.modisco.java.discoverer.tests/workspace/test001/src/classorifaceproxy/p1/Iface1.java18
-rw-r--r--org.eclipse.gmt.modisco.java.discoverer.tests/workspace/test001/src/classorifaceproxy/p2/Iface2.java18
-rw-r--r--org.eclipse.gmt.modisco.java.discoverer.tests/workspace/test001/src/comments/Comments.java37
-rw-r--r--org.eclipse.gmt.modisco.java.discoverer.tests/workspace/test001/src/duplicateproxy/DuplicateProxy1.java20
-rw-r--r--org.eclipse.gmt.modisco.java.discoverer.tests/workspace/test001/src/duplicateproxy/DuplicateProxy2.java20
-rw-r--r--org.eclipse.gmt.modisco.java.discoverer.tests/workspace/test001/src/duplicateproxy/DuplicateProxy3.java20
-rw-r--r--org.eclipse.gmt.modisco.java.discoverer.tests/workspace/test001/src/duplicateproxy/Readme.txt13
-rw-r--r--org.eclipse.gmt.modisco.java.discoverer.tests/workspace/test001/src/enumerations/p1/EnumUse.java25
-rw-r--r--org.eclipse.gmt.modisco.java.discoverer.tests/workspace/test001/src/enumerations/p1/MyEnumeration.java25
-rw-r--r--org.eclipse.gmt.modisco.java.discoverer.tests/workspace/test001/src/initializer/InitializerTest.java21
-rw-r--r--org.eclipse.gmt.modisco.java.discoverer.tests/workspace/test001/src/initializer/Readme.txt12
-rw-r--r--org.eclipse.gmt.modisco.java.discoverer.tests/workspace/test001/src/innerclass/InnerClass.java26
-rw-r--r--org.eclipse.gmt.modisco.java.discoverer.tests/workspace/test001/src/innerclass/InnerClassB.java26
-rw-r--r--org.eclipse.gmt.modisco.java.discoverer.tests/workspace/test001/src/methodefromanonymousclassdeclaration/AnonymousClass.java23
-rw-r--r--org.eclipse.gmt.modisco.java.discoverer.tests/workspace/test001/src/modifiers/Modifiers.java20
-rw-r--r--org.eclipse.gmt.modisco.java.discoverer.tests/workspace/test001/src/packageaccess/PackageAccess.java17
-rw-r--r--org.eclipse.gmt.modisco.java.discoverer.tests/workspace/test001/src/parameterizedtype/ParameterizedType.java36
-rw-r--r--org.eclipse.gmt.modisco.java.discoverer.tests/workspace/test001/src/parameterizedtype/ParameterizedType2.java28
-rw-r--r--org.eclipse.gmt.modisco.java.discoverer.tests/workspace/test001/src/parameterizedtypeinmethoddecl/Class1.java21
-rw-r--r--org.eclipse.gmt.modisco.java.discoverer.tests/workspace/test001/src/proxyField/p1/PFClass1.java24
-rw-r--r--org.eclipse.gmt.modisco.java.discoverer.tests/workspace/test001/src/proxyField/p2/PFClass2.java25
-rw-r--r--org.eclipse.gmt.modisco.java.discoverer.tests/workspace/test001/src/proxyparameters/Readme.txt14
-rw-r--r--org.eclipse.gmt.modisco.java.discoverer.tests/workspace/test001/src/proxyparameters/p1/ProxyParameters1.java23
-rw-r--r--org.eclipse.gmt.modisco.java.discoverer.tests/workspace/test001/src/proxyparameters/p2/ProxyParameters2.java18
-rw-r--r--org.eclipse.gmt.modisco.java.discoverer.tests/workspace/test001/src/resolvebinding/Readme.txt40
-rw-r--r--org.eclipse.gmt.modisco.java.discoverer.tests/workspace/test001/src/resolvebinding/p1/ResolveBindind1.java29
-rw-r--r--org.eclipse.gmt.modisco.java.discoverer.tests/workspace/test001/src/test001/p1/Class1.java20
-rw-r--r--org.eclipse.gmt.modisco.java.discoverer.tests/workspace/test001/src/test001/p2/Class2.java20
-rw-r--r--org.eclipse.gmt.modisco.java.discoverer.tests/workspace/test001/src/test002/Class1.java25
-rw-r--r--org.eclipse.gmt.modisco.java.discoverer.tests/workspace/test001/src/test002/Class2.java25
-rw-r--r--org.eclipse.gmt.modisco.java.discoverer.tests/workspace/test001/src/test003/Test003.java18
-rw-r--r--org.eclipse.gmt.modisco.java.discoverer.tests/workspace/test001/src/test004/Test004.java19
-rw-r--r--org.eclipse.gmt.modisco.java.discoverer.tests/workspace/test001/src/unresolved/Unresolved.java27
-rw-r--r--org.eclipse.gmt.modisco.java.discoverer.tests/workspace/test001/src/varargs/VarArgs1.java31
-rw-r--r--org.eclipse.gmt.modisco.java.discoverer.tests/workspace/test001/src/varargs/VarArgs2.java30
90 files changed, 9999 insertions, 0 deletions
diff --git a/org.eclipse.gmt.modisco.java.discoverer.tests/.checkstyle b/org.eclipse.gmt.modisco.java.discoverer.tests/.checkstyle
new file mode 100644
index 000000000..8872051f5
--- /dev/null
+++ b/org.eclipse.gmt.modisco.java.discoverer.tests/.checkstyle
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<fileset-config file-format-version="1.2.0" simple-config="true" sync-formatter="false">
+ <local-check-config name="MoDisco" location="../org.eclipse.gmt.modisco.dev.core/checkstyle/MoDisco.checkstyle" type="project" description=""/>
+ <fileset name="all" enabled="true" check-config-name="MoDisco" local="true">
+ <file-match-pattern match-pattern="." include-pattern="true"/>
+ </fileset>
+ <filter name="NonSrcDirs" enabled="true"/>
+</fileset-config>
diff --git a/org.eclipse.gmt.modisco.java.discoverer.tests/.classpath b/org.eclipse.gmt.modisco.java.discoverer.tests/.classpath
new file mode 100644
index 000000000..2d1a4302f
--- /dev/null
+++ b/org.eclipse.gmt.modisco.java.discoverer.tests/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <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 kind="src" path="src"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/org.eclipse.gmt.modisco.java.discoverer.tests/.options b/org.eclipse.gmt.modisco.java.discoverer.tests/.options
new file mode 100644
index 000000000..240297a05
--- /dev/null
+++ b/org.eclipse.gmt.modisco.java.discoverer.tests/.options
@@ -0,0 +1,4 @@
+#master switch
+org.eclipse.gmt.modisco.java.discoverer.tests/debug=false
+org.eclipse.gmt.modisco.java.discoverer.tests/debug/JavaDiscovererUtils/getQualifiedName=false
+org.eclipse.gmt.modisco.java.discoverer.tests/debug/JavaDiscovererUtils/getNamedElementByQualifiedName=false
diff --git a/org.eclipse.gmt.modisco.java.discoverer.tests/.project b/org.eclipse.gmt.modisco.java.discoverer.tests/.project
new file mode 100644
index 000000000..bb5ff7fed
--- /dev/null
+++ b/org.eclipse.gmt.modisco.java.discoverer.tests/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.gmt.modisco.java.discoverer.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/org.eclipse.gmt.modisco.java.discoverer.tests/.settings/org.eclipse.core.resources.prefs b/org.eclipse.gmt.modisco.java.discoverer.tests/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 000000000..2516c69d2
--- /dev/null
+++ b/org.eclipse.gmt.modisco.java.discoverer.tests/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,3 @@
+#Mon Oct 04 15:53:08 CEST 2010
+eclipse.preferences.version=1
+encoding/<project>=UTF-8
diff --git a/org.eclipse.gmt.modisco.java.discoverer.tests/.settings/org.eclipse.jdt.core.prefs b/org.eclipse.gmt.modisco.java.discoverer.tests/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 000000000..664f78755
--- /dev/null
+++ b/org.eclipse.gmt.modisco.java.discoverer.tests/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,71 @@
+#Sun Feb 14 18:21:34 CET 2010
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
+org.eclipse.jdt.core.compiler.compliance=1.5
+org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
+org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
+org.eclipse.jdt.core.compiler.problem.deadCode=warning
+org.eclipse.jdt.core.compiler.problem.deprecation=warning
+org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
+org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
+org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
+org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.problem.fallthroughCase=warning
+org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled
+org.eclipse.jdt.core.compiler.problem.fieldHiding=warning
+org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
+org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
+org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
+org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
+org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
+org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=warning
+org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=warning
+org.eclipse.jdt.core.compiler.problem.localVariableHiding=warning
+org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
+org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=warning
+org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=warning
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=warning
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
+org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
+org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=warning
+org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
+org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
+org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=warning
+org.eclipse.jdt.core.compiler.problem.nullReference=warning
+org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
+org.eclipse.jdt.core.compiler.problem.parameterAssignment=warning
+org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
+org.eclipse.jdt.core.compiler.problem.potentialNullReference=warning
+org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
+org.eclipse.jdt.core.compiler.problem.redundantNullCheck=warning
+org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning
+org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
+org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
+org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
+org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=warning
+org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
+org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
+org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=warning
+org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.unnecessaryElse=warning
+org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
+org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=warning
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
+org.eclipse.jdt.core.compiler.problem.unusedImport=warning
+org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
+org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
+org.eclipse.jdt.core.compiler.problem.unusedParameter=warning
+org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
+org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
+org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
+org.eclipse.jdt.core.compiler.source=1.5
diff --git a/org.eclipse.gmt.modisco.java.discoverer.tests/META-INF/MANIFEST.MF b/org.eclipse.gmt.modisco.java.discoverer.tests/META-INF/MANIFEST.MF
new file mode 100644
index 000000000..a9622466d
--- /dev/null
+++ b/org.eclipse.gmt.modisco.java.discoverer.tests/META-INF/MANIFEST.MF
@@ -0,0 +1,25 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: %Bundle-Name
+Bundle-SymbolicName: org.eclipse.gmt.modisco.java.discoverer.tests;singleton:=true
+Bundle-Version: 0.10.1.qualifier
+Bundle-Activator: org.eclipse.gmt.modisco.java.discoverer.tests.Activator
+Bundle-Vendor: %Bundle-Vendor
+Require-Bundle: org.eclipse.gmt.modisco.infra.discoverymanager,
+ org.eclipse.gmt.modisco.java.discoverer,
+ org.eclipse.ui;bundle-version="3.5.0",
+ org.eclipse.core.resources;bundle-version="3.5.0",
+ org.eclipse.jdt.core;bundle-version="3.5.0",
+ org.eclipse.gmt.modisco.java;bundle-version="0.7.0",
+ org.eclipse.gmt.modisco.infra.common.core;bundle-version="0.7.0",
+ org.eclipse.jdt.launching;bundle-version="3.5.0",
+ org.junit;bundle-version="4.7.0",
+ org.eclipse.core.runtime;bundle-version="3.5.0",
+ org.eclipse.m2m.atl.core;bundle-version="3.1.0",
+ org.eclipse.gmt.modisco.omg.kdm;bundle-version="0.9.0",
+ org.eclipse.modisco.kdm.source.extension;bundle-version="0.9.0",
+ org.eclipse.modisco.common.tests;bundle-version="0.9.0"
+Bundle-RequiredExecutionEnvironment: J2SE-1.5
+Bundle-ActivationPolicy: lazy
+Export-Package: org.eclipse.gmt.modisco.java.discoverer.tests,
+ org.eclipse.gmt.modisco.java.discoverer.tests.utils
diff --git a/org.eclipse.gmt.modisco.java.discoverer.tests/OSGI-INF/l10n/bundle.properties b/org.eclipse.gmt.modisco.java.discoverer.tests/OSGI-INF/l10n/bundle.properties
new file mode 100644
index 000000000..ef96dbc03
--- /dev/null
+++ b/org.eclipse.gmt.modisco.java.discoverer.tests/OSGI-INF/l10n/bundle.properties
@@ -0,0 +1,17 @@
+###############################################################################
+# Copyright (c) 2009, 2010 Mia-Software.
+# 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:
+# Gregoire DUPE (Mia-Software) - initial API and implementation
+###############################################################################
+
+#Properties file for org.eclipse.gmt.modisco.java.discoverer.tests
+Bundle-Vendor = Eclipse Modeling Project
+Bundle-Name = MoDisco Java Discoverer Tests (Incubation)
+discoverer.trace = Discover Java model from Java project - Trace
+discoverer.simpleStat = Discover Java model from Java project - Simple stat
+discoverer.modelElementStats = Discover Java model from Java project - Model element stats \ No newline at end of file
diff --git a/org.eclipse.gmt.modisco.java.discoverer.tests/about.html b/org.eclipse.gmt.modisco.java.discoverer.tests/about.html
new file mode 100644
index 000000000..3019b95b9
--- /dev/null
+++ b/org.eclipse.gmt.modisco.java.discoverer.tests/about.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+<title>About</title>
+</head>
+<body lang="EN-US">
+<h2>About This Content</h2>
+
+<p>December 22, 2008</p>
+<h3>License</h3>
+
+<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;). Unless otherwise
+indicated below, the Content is provided to you under the terms and conditions of the
+Eclipse Public License Version 1.0 (&quot;EPL&quot;). 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, &quot;Program&quot; 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 (&quot;Redistributor&quot;) 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
+and such source code may be obtained at <a href="http://www.eclipse.org/">http://www.eclipse.org</a>.</p>
+
+</body>
+</html> \ No newline at end of file
diff --git a/org.eclipse.gmt.modisco.java.discoverer.tests/build.properties b/org.eclipse.gmt.modisco.java.discoverer.tests/build.properties
new file mode 100644
index 000000000..b0074b098
--- /dev/null
+++ b/org.eclipse.gmt.modisco.java.discoverer.tests/build.properties
@@ -0,0 +1,20 @@
+###############################################################################
+# Copyright (c) 2009, 2010 Mia-Software.
+# 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:
+# Gregoire DUPE (Mia-Software) - initial API and implementation
+###############################################################################
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+ .,\
+ plugin.xml,\
+ about.html,\
+ workspace/,\
+ references/,\
+ OSGI-INF/
+src.includes = about.html
diff --git a/org.eclipse.gmt.modisco.java.discoverer.tests/plugin.xml b/org.eclipse.gmt.modisco.java.discoverer.tests/plugin.xml
new file mode 100644
index 000000000..c729e7a64
--- /dev/null
+++ b/org.eclipse.gmt.modisco.java.discoverer.tests/plugin.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.2"?>
+<!--
+ Copyright (c) 2009, 2010 Mia-Software.
+ 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:
+ Gregoire DUPE (Mia-Software) - initial API and implementation
+-->
+<plugin>
+ <extension point="org.eclipse.gmt.modisco.discoverers">
+ <discoverer
+ class="org.eclipse.gmt.modisco.java.discoverer.tests.ModelElementStats"
+ name="%discoverer.modelElementStats"
+ path="Java Tests">
+ </discoverer>
+ </extension>
+</plugin>
diff --git a/org.eclipse.gmt.modisco.java.discoverer.tests/references/bug317835.javaxmi b/org.eclipse.gmt.modisco.java.discoverer.tests/references/bug317835.javaxmi
new file mode 100644
index 000000000..84fbe8ac4
--- /dev/null
+++ b/org.eclipse.gmt.modisco.java.discoverer.tests/references/bug317835.javaxmi
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<java:Model xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:java="http://www.eclipse.org/MoDisco/Java/0.2.incubation/java" name="test002">
+ <ownedElements name="testInterface">
+ <ownedElements xsi:type="java:InterfaceDeclaration" originalCompilationUnit="//@compilationUnits.0" name="Interface1">
+ <modifier visibility="public"/>
+ <bodyDeclarations xsi:type="java:MethodDeclaration" originalCompilationUnit="//@compilationUnits.0" name="aMethodWithoutVisibility">
+ <modifier/>
+ <returnType type="//@orphanTypes.5"/>
+ </bodyDeclarations>
+ </ownedElements>
+ <ownedElements xsi:type="java:ClassDeclaration" originalCompilationUnit="//@compilationUnits.1" name="Class1">
+ <modifier visibility="public"/>
+ <bodyDeclarations xsi:type="java:MethodDeclaration" originalCompilationUnit="//@compilationUnits.1" name="aMethodWithoutVisibility2">
+ <modifier/>
+ <body originalCompilationUnit="//@compilationUnits.1"/>
+ <returnType type="//@orphanTypes.5"/>
+ </bodyDeclarations>
+ </ownedElements>
+ </ownedElements>
+ <orphanTypes xsi:type="java:PrimitiveTypeInt" name="int"/>
+ <orphanTypes xsi:type="java:PrimitiveTypeLong" name="long"/>
+ <orphanTypes xsi:type="java:PrimitiveTypeFloat" name="float"/>
+ <orphanTypes xsi:type="java:PrimitiveTypeDouble" name="double"/>
+ <orphanTypes xsi:type="java:PrimitiveTypeBoolean" name="boolean"/>
+ <orphanTypes xsi:type="java:PrimitiveTypeVoid" name="void" usagesInTypeAccess="//@ownedElements.0/@ownedElements.0/@bodyDeclarations.0/@returnType //@ownedElements.0/@ownedElements.1/@bodyDeclarations.0/@returnType"/>
+ <orphanTypes xsi:type="java:PrimitiveTypeChar" name="char"/>
+ <orphanTypes xsi:type="java:PrimitiveTypeShort" name="short"/>
+ <orphanTypes xsi:type="java:PrimitiveTypeByte" name="byte"/>
+ <compilationUnits name="Interface1.java" originalFilePath="D:\eclipse 3.6RC3-dev\runtime-dvt-workspace\_Brouillon\src\testInterface\Interface1.java" package="//@ownedElements.0" types="//@ownedElements.0/@ownedElements.0"/>
+ <compilationUnits name="Class1.java" originalFilePath="D:\eclipse 3.6RC3-dev\runtime-dvt-workspace\_Brouillon\src\testInterface\Class1.java" package="//@ownedElements.0" types="//@ownedElements.0/@ownedElements.1"/>
+</java:Model>
diff --git a/org.eclipse.gmt.modisco.java.discoverer.tests/references/bug318469.javaxmi b/org.eclipse.gmt.modisco.java.discoverer.tests/references/bug318469.javaxmi
new file mode 100644
index 000000000..009a8b85c
--- /dev/null
+++ b/org.eclipse.gmt.modisco.java.discoverer.tests/references/bug318469.javaxmi
@@ -0,0 +1,87 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<java:Model xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:java="http://www.eclipse.org/MoDisco/Java/0.2.incubation/java" name="Brouillon2">
+ <ownedElements name="annotations">
+ <ownedElements xsi:type="java:ClassDeclaration" originalCompilationUnit="//@compilationUnits.0" name="AnnotatedField" usagesInTypeAccess="//@ownedElements.0/@ownedElements.0/@bodyDeclarations.1/@annotations.0/@values.0/@value/@expressions.0/@values.1/@value/@type">
+ <modifier visibility="public"/>
+ <bodyDeclarations xsi:type="java:FieldDeclaration" originalCompilationUnit="//@compilationUnits.0">
+ <modifier visibility="private" inheritance="final" static="true"/>
+ <type type="//@orphanTypes.1"/>
+ <fragments originalCompilationUnit="//@compilationUnits.0" name="serialVersionUID">
+ <initializer xsi:type="java:NumberLiteral" originalCompilationUnit="//@compilationUnits.0" tokenValue="1L"/>
+ </fragments>
+ </bodyDeclarations>
+ <bodyDeclarations xsi:type="java:FieldDeclaration" originalCompilationUnit="//@compilationUnits.0">
+ <annotations originalCompilationUnit="//@compilationUnits.0">
+ <type type="//@ownedElements.2/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedElements.1"/>
+ <values>
+ <value xsi:type="java:ArrayInitializer" originalCompilationUnit="//@compilationUnits.0">
+ <expressions xsi:type="java:Annotation" originalCompilationUnit="//@compilationUnits.0">
+ <type type="//@ownedElements.2/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedElements.0"/>
+ <values originalCompilationUnit="//@compilationUnits.0" name="name" member="//@ownedElements.2/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedElements.0/@bodyDeclarations.0">
+ <value xsi:type="java:StringLiteral" originalCompilationUnit="//@compilationUnits.0" escapedValue="&quot;XXX&quot;"/>
+ </values>
+ <values originalCompilationUnit="//@compilationUnits.0" name="type" member="//@ownedElements.2/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedElements.0/@bodyDeclarations.1">
+ <value xsi:type="java:TypeLiteral" originalCompilationUnit="//@compilationUnits.0">
+ <type type="//@ownedElements.0/@ownedElements.0"/>
+ </value>
+ </values>
+ </expressions>
+ </value>
+ </values>
+ </annotations>
+ <modifier visibility="private"/>
+ <type type="//@orphanTypes.9"/>
+ <fragments originalCompilationUnit="//@compilationUnits.0" name="objects"/>
+ </bodyDeclarations>
+ </ownedElements>
+ </ownedElements>
+ <ownedElements name="java" proxy="true">
+ <ownedPackages name="util" proxy="true">
+ <ownedElements xsi:type="java:InterfaceDeclaration" name="List" proxy="true" usagesInImports="//@compilationUnits.0/@imports.0" usagesInTypeAccess="//@orphanTypes.9/@type">
+ <superInterfaces type="//@ownedElements.1/@ownedPackages.0/@ownedElements.1"/>
+ <typeParameters name="E" proxy="true"/>
+ </ownedElements>
+ <ownedElements xsi:type="java:InterfaceDeclaration" name="Collection" proxy="true" usagesInTypeAccess="//@ownedElements.1/@ownedPackages.0/@ownedElements.0/@superInterfaces.0">
+ <superInterfaces type="//@ownedElements.1/@ownedPackages.1/@ownedElements.0"/>
+ <typeParameters name="E" proxy="true"/>
+ </ownedElements>
+ </ownedPackages>
+ <ownedPackages name="lang" proxy="true">
+ <ownedElements xsi:type="java:InterfaceDeclaration" name="Iterable" proxy="true" usagesInTypeAccess="//@ownedElements.1/@ownedPackages.0/@ownedElements.1/@superInterfaces.0">
+ <typeParameters name="T" proxy="true"/>
+ </ownedElements>
+ <ownedElements xsi:type="java:ClassDeclaration" name="Object" proxy="true" usagesInTypeAccess="//@orphanTypes.9/@typeArguments.0"/>
+ </ownedPackages>
+ </ownedElements>
+ <ownedElements name="javax" proxy="true">
+ <ownedPackages name="xml" proxy="true">
+ <ownedPackages name="bind" proxy="true">
+ <ownedPackages name="annotation" proxy="true">
+ <ownedElements xsi:type="java:AnnotationTypeDeclaration" name="XmlElement" proxy="true" usagesInImports="//@compilationUnits.0/@imports.1" usagesInTypeAccess="//@ownedElements.0/@ownedElements.0/@bodyDeclarations.1/@annotations.0/@values.0/@value/@expressions.0/@type">
+ <bodyDeclarations xsi:type="java:AnnotationTypeMemberDeclaration" name="name" proxy="true" usages="//@ownedElements.0/@ownedElements.0/@bodyDeclarations.1/@annotations.0/@values.0/@value/@expressions.0/@values.0"/>
+ <bodyDeclarations xsi:type="java:AnnotationTypeMemberDeclaration" name="type" proxy="true" usages="//@ownedElements.0/@ownedElements.0/@bodyDeclarations.1/@annotations.0/@values.0/@value/@expressions.0/@values.1"/>
+ </ownedElements>
+ <ownedElements xsi:type="java:AnnotationTypeDeclaration" name="XmlElements" proxy="true" usagesInImports="//@compilationUnits.0/@imports.2" usagesInTypeAccess="//@ownedElements.0/@ownedElements.0/@bodyDeclarations.1/@annotations.0/@type"/>
+ </ownedPackages>
+ </ownedPackages>
+ </ownedPackages>
+ </ownedElements>
+ <orphanTypes xsi:type="java:PrimitiveTypeInt" name="int"/>
+ <orphanTypes xsi:type="java:PrimitiveTypeLong" name="long" usagesInTypeAccess="//@ownedElements.0/@ownedElements.0/@bodyDeclarations.0/@type"/>
+ <orphanTypes xsi:type="java:PrimitiveTypeFloat" name="float"/>
+ <orphanTypes xsi:type="java:PrimitiveTypeDouble" name="double"/>
+ <orphanTypes xsi:type="java:PrimitiveTypeBoolean" name="boolean"/>
+ <orphanTypes xsi:type="java:PrimitiveTypeVoid" name="void"/>
+ <orphanTypes xsi:type="java:PrimitiveTypeChar" name="char"/>
+ <orphanTypes xsi:type="java:PrimitiveTypeShort" name="short"/>
+ <orphanTypes xsi:type="java:PrimitiveTypeByte" name="byte"/>
+ <orphanTypes xsi:type="java:ParameterizedType" name="java.util.List&lt;java.lang.Object>" usagesInTypeAccess="//@ownedElements.0/@ownedElements.0/@bodyDeclarations.1/@type">
+ <type type="//@ownedElements.1/@ownedPackages.0/@ownedElements.0"/>
+ <typeArguments type="//@ownedElements.1/@ownedPackages.1/@ownedElements.1"/>
+ </orphanTypes>
+ <compilationUnits name="AnnotatedField.java" originalFilePath="D:\eclipse 3.6Z.m-dev\runtime-dvt-workspace\Brouillon2\src\annotations\AnnotatedField.java" package="//@ownedElements.0" types="//@ownedElements.0/@ownedElements.0">
+ <imports originalCompilationUnit="//@compilationUnits.0" importedElement="//@ownedElements.1/@ownedPackages.0/@ownedElements.0"/>
+ <imports originalCompilationUnit="//@compilationUnits.0" importedElement="//@ownedElements.2/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedElements.0"/>
+ <imports originalCompilationUnit="//@compilationUnits.0" importedElement="//@ownedElements.2/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedElements.1"/>
+ </compilationUnits>
+</java:Model>
diff --git a/org.eclipse.gmt.modisco.java.discoverer.tests/references/bug318631.javaxmi b/org.eclipse.gmt.modisco.java.discoverer.tests/references/bug318631.javaxmi
new file mode 100644
index 000000000..a82960fff
--- /dev/null
+++ b/org.eclipse.gmt.modisco.java.discoverer.tests/references/bug318631.javaxmi
@@ -0,0 +1,213 @@
+<?xml version="1.0" encoding="ASCII"?>
+<java:Model xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:java="http://www.eclipse.org/MoDisco/Java/0.2.incubation/java" name="bug318631">
+ <ownedElements name="anonymousclass">
+ <ownedElements xsi:type="java:ClassDeclaration" originalCompilationUnit="//@compilationUnits.0" name="RootClass">
+ <comments xsi:type="java:Javadoc" originalCompilationUnit="//@compilationUnits.0" content="/** &#xA; * @author GBarbier&#xA; */&#xA;" prefixOfParent="true">
+ <tags originalCompilationUnit="//@compilationUnits.0" tagName="@author">
+ <fragments xsi:type="java:TextElement" originalCompilationUnit="//@compilationUnits.0" text=" GBarbier"/>
+ </tags>
+ </comments>
+ <modifier visibility="public"/>
+ <bodyDeclarations xsi:type="java:MethodDeclaration" originalCompilationUnit="//@compilationUnits.0" name="aMethod">
+ <modifier visibility="public"/>
+ <body originalCompilationUnit="//@compilationUnits.0">
+ <statements xsi:type="java:VariableDeclarationStatement" originalCompilationUnit="//@compilationUnits.0">
+ <type type="//@ownedElements.0/@ownedElements.1"/>
+ <fragments originalCompilationUnit="//@compilationUnits.0" name="variable">
+ <initializer xsi:type="java:ClassInstanceCreation" originalCompilationUnit="//@compilationUnits.0" method="//@ownedElements.0/@ownedElements.0/@bodyDeclarations.0/@body/@statements.0/@fragments.0/@initializer/@anonymousClassDeclaration/@bodyDeclarations.1">
+ <anonymousClassDeclaration originalCompilationUnit="//@compilationUnits.0">
+ <bodyDeclarations xsi:type="java:MethodDeclaration" originalCompilationUnit="//@compilationUnits.0" name="testBug318631">
+ <annotations originalCompilationUnit="//@compilationUnits.0">
+ <type type="//@ownedElements.3/@ownedPackages.0/@ownedElements.0"/>
+ </annotations>
+ <modifier visibility="public"/>
+ <body originalCompilationUnit="//@compilationUnits.0"/>
+ <parameters originalCompilationUnit="//@compilationUnits.0" name="parameter">
+ <modifier/>
+ <type type="//@ownedElements.3/@ownedPackages.0/@ownedElements.1"/>
+ </parameters>
+ <returnType type="//@orphanTypes.5"/>
+ </bodyDeclarations>
+ <bodyDeclarations xsi:type="java:ConstructorDeclaration" name="" proxy="true" usages="//@ownedElements.0/@ownedElements.0/@bodyDeclarations.0/@body/@statements.0/@fragments.0/@initializer"/>
+ </anonymousClassDeclaration>
+ <type type="//@ownedElements.0/@ownedElements.1"/>
+ </initializer>
+ </fragments>
+ <modifier/>
+ </statements>
+ </body>
+ <returnType type="//@orphanTypes.5"/>
+ </bodyDeclarations>
+ </ownedElements>
+ <ownedElements xsi:type="java:InterfaceDeclaration" originalCompilationUnit="//@compilationUnits.1" name="IBug318631" usagesInTypeAccess="//@ownedElements.0/@ownedElements.0/@bodyDeclarations.0/@body/@statements.0/@type //@ownedElements.0/@ownedElements.0/@bodyDeclarations.0/@body/@statements.0/@fragments.0/@initializer/@type">
+ <comments xsi:type="java:Javadoc" originalCompilationUnit="//@compilationUnits.1" content="/** &#xA; * @author GBarbier&#xA; */&#xA;" prefixOfParent="true">
+ <tags originalCompilationUnit="//@compilationUnits.1" tagName="@author">
+ <fragments xsi:type="java:TextElement" originalCompilationUnit="//@compilationUnits.1" text=" GBarbier"/>
+ </tags>
+ </comments>
+ <modifier visibility="public"/>
+ <bodyDeclarations xsi:type="java:MethodDeclaration" originalCompilationUnit="//@compilationUnits.1" name="testBug318631">
+ <modifier visibility="public"/>
+ <parameters originalCompilationUnit="//@compilationUnits.1" name="parameter">
+ <modifier/>
+ <type type="//@ownedElements.3/@ownedPackages.0/@ownedElements.1"/>
+ </parameters>
+ <returnType type="//@orphanTypes.5"/>
+ </bodyDeclarations>
+ </ownedElements>
+ </ownedElements>
+ <ownedElements name="supercontructorinvocation">
+ <ownedElements xsi:type="java:ClassDeclaration" originalCompilationUnit="//@compilationUnits.2" name="Child">
+ <comments xsi:type="java:Javadoc" originalCompilationUnit="//@compilationUnits.2" content="/** &#xA; * @author GBarbier&#xA; */&#xA;" prefixOfParent="true">
+ <tags originalCompilationUnit="//@compilationUnits.2" tagName="@author">
+ <fragments xsi:type="java:TextElement" originalCompilationUnit="//@compilationUnits.2" text=" GBarbier"/>
+ </tags>
+ </comments>
+ <modifier visibility="public"/>
+ <bodyDeclarations xsi:type="java:ConstructorDeclaration" originalCompilationUnit="//@compilationUnits.2" name="Child">
+ <comments xsi:type="java:Javadoc" originalCompilationUnit="//@compilationUnits.2" content="/** &#xA; * @param name&#xA; */&#xA;" prefixOfParent="true">
+ <tags originalCompilationUnit="//@compilationUnits.2" tagName="@param">
+ <fragments xsi:type="java:SingleVariableAccess" variable="//@ownedElements.1/@ownedElements.0/@bodyDeclarations.0/@parameters.0"/>
+ </tags>
+ </comments>
+ <modifier visibility="public"/>
+ <body originalCompilationUnit="//@compilationUnits.2">
+ <statements xsi:type="java:SuperConstructorInvocation" originalCompilationUnit="//@compilationUnits.2" method="//@ownedElements.1/@ownedElements.1/@bodyDeclarations.0">
+ <arguments xsi:type="java:SingleVariableAccess" variable="//@ownedElements.1/@ownedElements.0/@bodyDeclarations.0/@parameters.0"/>
+ </statements>
+ </body>
+ <parameters originalCompilationUnit="//@compilationUnits.2" name="name" usageInVariableAccess="//@ownedElements.1/@ownedElements.0/@bodyDeclarations.0/@comments.0/@tags.0/@fragments.0 //@ownedElements.1/@ownedElements.0/@bodyDeclarations.0/@body/@statements.0/@arguments.0">
+ <modifier/>
+ <type type="//@ownedElements.3/@ownedPackages.0/@ownedElements.1"/>
+ </parameters>
+ </bodyDeclarations>
+ <superClass type="//@ownedElements.1/@ownedElements.1"/>
+ </ownedElements>
+ <ownedElements xsi:type="java:ClassDeclaration" originalCompilationUnit="//@compilationUnits.3" name="Parent" usagesInTypeAccess="//@ownedElements.1/@ownedElements.0/@superClass">
+ <comments xsi:type="java:Javadoc" originalCompilationUnit="//@compilationUnits.3" content="/** &#xA; * @author GBarbier&#xA; */&#xA;" prefixOfParent="true">
+ <tags originalCompilationUnit="//@compilationUnits.3" tagName="@author">
+ <fragments xsi:type="java:TextElement" originalCompilationUnit="//@compilationUnits.3" text=" GBarbier"/>
+ </tags>
+ </comments>
+ <modifier visibility="public"/>
+ <bodyDeclarations xsi:type="java:ConstructorDeclaration" originalCompilationUnit="//@compilationUnits.3" name="Parent" usages="//@ownedElements.1/@ownedElements.0/@bodyDeclarations.0/@body/@statements.0">
+ <modifier visibility="public"/>
+ <body originalCompilationUnit="//@compilationUnits.3"/>
+ <parameters originalCompilationUnit="//@compilationUnits.3" name="name">
+ <modifier/>
+ <type type="//@ownedElements.3/@ownedPackages.0/@ownedElements.1"/>
+ </parameters>
+ </bodyDeclarations>
+ </ownedElements>
+ </ownedElements>
+ <ownedElements name="annotations">
+ <ownedElements xsi:type="java:ClassDeclaration" originalCompilationUnit="//@compilationUnits.4" name="AnnotatedField" usagesInTypeAccess="//@ownedElements.2/@ownedElements.0/@bodyDeclarations.1/@annotations.0/@values.0/@value/@expressions.0/@values.1/@value/@type">
+ <modifier visibility="public"/>
+ <bodyDeclarations xsi:type="java:FieldDeclaration" originalCompilationUnit="//@compilationUnits.4">
+ <modifier visibility="private" inheritance="final" static="true"/>
+ <type type="//@orphanTypes.1"/>
+ <fragments originalCompilationUnit="//@compilationUnits.4" name="serialVersionUID">
+ <initializer xsi:type="java:NumberLiteral" originalCompilationUnit="//@compilationUnits.4" tokenValue="1L"/>
+ </fragments>
+ </bodyDeclarations>
+ <bodyDeclarations xsi:type="java:FieldDeclaration" originalCompilationUnit="//@compilationUnits.4">
+ <annotations originalCompilationUnit="//@compilationUnits.4">
+ <type type="//@ownedElements.4/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedElements.1"/>
+ <values>
+ <value xsi:type="java:ArrayInitializer" originalCompilationUnit="//@compilationUnits.4">
+ <expressions xsi:type="java:Annotation" originalCompilationUnit="//@compilationUnits.4">
+ <type type="//@ownedElements.4/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedElements.0"/>
+ <values originalCompilationUnit="//@compilationUnits.4" name="name" member="//@ownedElements.4/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedElements.0/@bodyDeclarations.0">
+ <value xsi:type="java:StringLiteral" originalCompilationUnit="//@compilationUnits.4" escapedValue="&quot;XXX&quot;"/>
+ </values>
+ <values originalCompilationUnit="//@compilationUnits.4" name="type" member="//@ownedElements.4/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedElements.0/@bodyDeclarations.1">
+ <value xsi:type="java:TypeLiteral" originalCompilationUnit="//@compilationUnits.4">
+ <type type="//@ownedElements.2/@ownedElements.0"/>
+ </value>
+ </values>
+ </expressions>
+ </value>
+ </values>
+ </annotations>
+ <modifier visibility="private"/>
+ <type type="//@orphanTypes.9"/>
+ <fragments originalCompilationUnit="//@compilationUnits.4" name="objects"/>
+ </bodyDeclarations>
+ </ownedElements>
+ </ownedElements>
+ <ownedElements name="java" proxy="true">
+ <ownedPackages name="lang" proxy="true">
+ <ownedElements xsi:type="java:AnnotationTypeDeclaration" name="Override" proxy="true" usagesInTypeAccess="//@ownedElements.0/@ownedElements.0/@bodyDeclarations.0/@body/@statements.0/@fragments.0/@initializer/@anonymousClassDeclaration/@bodyDeclarations.0/@annotations.0/@type"/>
+ <ownedElements xsi:type="java:ClassDeclaration" name="String" proxy="true" usagesInTypeAccess="//@ownedElements.0/@ownedElements.0/@bodyDeclarations.0/@body/@statements.0/@fragments.0/@initializer/@anonymousClassDeclaration/@bodyDeclarations.0/@parameters.0/@type //@ownedElements.0/@ownedElements.1/@bodyDeclarations.0/@parameters.0/@type //@ownedElements.1/@ownedElements.0/@bodyDeclarations.0/@parameters.0/@type //@ownedElements.1/@ownedElements.1/@bodyDeclarations.0/@parameters.0/@type">
+ <superInterfaces type="//@ownedElements.3/@ownedPackages.1/@ownedElements.0"/>
+ <superInterfaces type="//@ownedElements.3/@ownedPackages.0/@ownedElements.2"/>
+ <superInterfaces type="//@ownedElements.3/@ownedPackages.0/@ownedElements.3"/>
+ </ownedElements>
+ <ownedElements xsi:type="java:InterfaceDeclaration" name="Comparable" proxy="true" usagesInTypeAccess="//@ownedElements.3/@ownedPackages.0/@ownedElements.1/@superInterfaces.1">
+ <typeParameters name="T" proxy="true"/>
+ </ownedElements>
+ <ownedElements xsi:type="java:InterfaceDeclaration" name="CharSequence" proxy="true" usagesInTypeAccess="//@ownedElements.3/@ownedPackages.0/@ownedElements.1/@superInterfaces.2"/>
+ <ownedElements xsi:type="java:InterfaceDeclaration" name="Iterable" proxy="true" usagesInTypeAccess="//@ownedElements.3/@ownedPackages.2/@ownedElements.1/@superInterfaces.0">
+ <typeParameters name="T" proxy="true"/>
+ </ownedElements>
+ <ownedElements xsi:type="java:ClassDeclaration" name="Object" proxy="true" usagesInTypeAccess="//@orphanTypes.9/@typeArguments.0"/>
+ </ownedPackages>
+ <ownedPackages name="io" proxy="true">
+ <ownedElements xsi:type="java:InterfaceDeclaration" name="Serializable" proxy="true" usagesInTypeAccess="//@ownedElements.3/@ownedPackages.0/@ownedElements.1/@superInterfaces.0"/>
+ </ownedPackages>
+ <ownedPackages name="util" proxy="true">
+ <ownedElements xsi:type="java:InterfaceDeclaration" name="List" proxy="true" usagesInImports="//@compilationUnits.4/@imports.0" usagesInTypeAccess="//@orphanTypes.9/@type">
+ <superInterfaces type="//@ownedElements.3/@ownedPackages.2/@ownedElements.1"/>
+ <typeParameters name="E" proxy="true"/>
+ </ownedElements>
+ <ownedElements xsi:type="java:InterfaceDeclaration" name="Collection" proxy="true" usagesInTypeAccess="//@ownedElements.3/@ownedPackages.2/@ownedElements.0/@superInterfaces.0">
+ <superInterfaces type="//@ownedElements.3/@ownedPackages.0/@ownedElements.4"/>
+ <typeParameters name="E" proxy="true"/>
+ </ownedElements>
+ </ownedPackages>
+ </ownedElements>
+ <ownedElements name="javax" proxy="true">
+ <ownedPackages name="xml" proxy="true">
+ <ownedPackages name="bind" proxy="true">
+ <ownedPackages name="annotation" proxy="true">
+ <ownedElements xsi:type="java:AnnotationTypeDeclaration" name="XmlElement" proxy="true" usagesInImports="//@compilationUnits.4/@imports.1" usagesInTypeAccess="//@ownedElements.2/@ownedElements.0/@bodyDeclarations.1/@annotations.0/@values.0/@value/@expressions.0/@type">
+ <bodyDeclarations xsi:type="java:AnnotationTypeMemberDeclaration" name="name" proxy="true" usages="//@ownedElements.2/@ownedElements.0/@bodyDeclarations.1/@annotations.0/@values.0/@value/@expressions.0/@values.0"/>
+ <bodyDeclarations xsi:type="java:AnnotationTypeMemberDeclaration" name="type" proxy="true" usages="//@ownedElements.2/@ownedElements.0/@bodyDeclarations.1/@annotations.0/@values.0/@value/@expressions.0/@values.1"/>
+ </ownedElements>
+ <ownedElements xsi:type="java:AnnotationTypeDeclaration" name="XmlElements" proxy="true" usagesInImports="//@compilationUnits.4/@imports.2" usagesInTypeAccess="//@ownedElements.2/@ownedElements.0/@bodyDeclarations.1/@annotations.0/@type"/>
+ </ownedPackages>
+ </ownedPackages>
+ </ownedPackages>
+ </ownedElements>
+ <orphanTypes xsi:type="java:PrimitiveTypeInt" name="int"/>
+ <orphanTypes xsi:type="java:PrimitiveTypeLong" name="long" usagesInTypeAccess="//@ownedElements.2/@ownedElements.0/@bodyDeclarations.0/@type"/>
+ <orphanTypes xsi:type="java:PrimitiveTypeFloat" name="float"/>
+ <orphanTypes xsi:type="java:PrimitiveTypeDouble" name="double"/>
+ <orphanTypes xsi:type="java:PrimitiveTypeBoolean" name="boolean"/>
+ <orphanTypes xsi:type="java:PrimitiveTypeVoid" name="void" usagesInTypeAccess="//@ownedElements.0/@ownedElements.0/@bodyDeclarations.0/@returnType //@ownedElements.0/@ownedElements.0/@bodyDeclarations.0/@body/@statements.0/@fragments.0/@initializer/@anonymousClassDeclaration/@bodyDeclarations.0/@returnType //@ownedElements.0/@ownedElements.1/@bodyDeclarations.0/@returnType"/>
+ <orphanTypes xsi:type="java:PrimitiveTypeChar" name="char"/>
+ <orphanTypes xsi:type="java:PrimitiveTypeShort" name="short"/>
+ <orphanTypes xsi:type="java:PrimitiveTypeByte" name="byte"/>
+ <orphanTypes xsi:type="java:ParameterizedType" name="java.util.List&lt;java.lang.Object>" usagesInTypeAccess="//@ownedElements.2/@ownedElements.0/@bodyDeclarations.1/@type">
+ <type type="//@ownedElements.3/@ownedPackages.2/@ownedElements.0"/>
+ <typeArguments type="//@ownedElements.3/@ownedPackages.0/@ownedElements.5"/>
+ </orphanTypes>
+ <compilationUnits name="RootClass.java" originalFilePath="D:\MoDisco\helios\workspace\bug318631\src\anonymousclass\RootClass.java" commentList="//@compilationUnits.0/@comments.0 //@ownedElements.0/@ownedElements.0/@comments.0" package="//@ownedElements.0" types="//@ownedElements.0/@ownedElements.0">
+ <comments xsi:type="java:BlockComment" originalCompilationUnit="//@compilationUnits.0" content="/*&#xD;&#xA; * Copyright (c) 2010 Mia-Software.&#xD;&#xA; * All rights reserved. This program and the accompanying materials&#xD;&#xA; * are made available under the terms of the Eclipse Public License v1.0&#xD;&#xA; * which accompanies this distribution, and is available at&#xD;&#xA; * http://www.eclipse.org/legal/epl-v10.html&#xD;&#xA; *&#xD;&#xA; * Contributors:&#xD;&#xA; * Gabriel Barbier (Mia-Software) - initial API and implementation&#xD;&#xA; */" prefixOfParent="true"/>
+ </compilationUnits>
+ <compilationUnits name="IBug318631.java" originalFilePath="D:\MoDisco\helios\workspace\bug318631\src\anonymousclass\IBug318631.java" commentList="//@compilationUnits.1/@comments.0 //@ownedElements.0/@ownedElements.1/@comments.0" package="//@ownedElements.0" types="//@ownedElements.0/@ownedElements.1">
+ <comments xsi:type="java:BlockComment" originalCompilationUnit="//@compilationUnits.1" content="/*&#xD;&#xA; * Copyright (c) 2010 Mia-Software.&#xD;&#xA; * All rights reserved. This program and the accompanying materials&#xD;&#xA; * are made available under the terms of the Eclipse Public License v1.0&#xD;&#xA; * which accompanies this distribution, and is available at&#xD;&#xA; * http://www.eclipse.org/legal/epl-v10.html&#xD;&#xA; *&#xD;&#xA; * Contributors:&#xD;&#xA; * Gabriel Barbier (Mia-Software) - initial API and implementation&#xD;&#xA; */" prefixOfParent="true"/>
+ </compilationUnits>
+ <compilationUnits name="Child.java" originalFilePath="D:\MoDisco\helios\workspace\bug318631\src\supercontructorinvocation\Child.java" commentList="//@compilationUnits.2/@comments.0 //@ownedElements.1/@ownedElements.0/@comments.0 //@ownedElements.1/@ownedElements.0/@bodyDeclarations.0/@comments.0" package="//@ownedElements.1" types="//@ownedElements.1/@ownedElements.0">
+ <comments xsi:type="java:BlockComment" originalCompilationUnit="//@compilationUnits.2" content="/*&#xD;&#xA; * Copyright (c) 2010 Mia-Software.&#xD;&#xA; * All rights reserved. This program and the accompanying materials&#xD;&#xA; * are made available under the terms of the Eclipse Public License v1.0&#xD;&#xA; * which accompanies this distribution, and is available at&#xD;&#xA; * http://www.eclipse.org/legal/epl-v10.html&#xD;&#xA; *&#xD;&#xA; * Contributors:&#xD;&#xA; * Gabriel Barbier (Mia-Software) - initial API and implementation&#xD;&#xA; */" prefixOfParent="true"/>
+ </compilationUnits>
+ <compilationUnits name="Parent.java" originalFilePath="D:\MoDisco\helios\workspace\bug318631\src\supercontructorinvocation\Parent.java" commentList="//@compilationUnits.3/@comments.0 //@ownedElements.1/@ownedElements.1/@comments.0" package="//@ownedElements.1" types="//@ownedElements.1/@ownedElements.1">
+ <comments xsi:type="java:BlockComment" originalCompilationUnit="//@compilationUnits.3" content="/*&#xD;&#xA; * Copyright (c) 2010 Mia-Software.&#xD;&#xA; * All rights reserved. This program and the accompanying materials&#xD;&#xA; * are made available under the terms of the Eclipse Public License v1.0&#xD;&#xA; * which accompanies this distribution, and is available at&#xD;&#xA; * http://www.eclipse.org/legal/epl-v10.html&#xD;&#xA; *&#xD;&#xA; * Contributors:&#xD;&#xA; * Gabriel Barbier (Mia-Software) - initial API and implementation&#xD;&#xA; */" prefixOfParent="true"/>
+ </compilationUnits>
+ <compilationUnits name="AnnotatedField.java" originalFilePath="D:\MoDisco\helios\workspace\bug318631\src\annotations\AnnotatedField.java" commentList="//@compilationUnits.4/@comments.0" package="//@ownedElements.2" types="//@ownedElements.2/@ownedElements.0">
+ <comments xsi:type="java:Javadoc" originalCompilationUnit="//@compilationUnits.4" content="/** &#xA; * Copyright (c) 2010 Mia-Software.&#xA; * All rights reserved. This program and the accompanying materials&#xA; * are made available under the terms of the Eclipse Public License v1.0&#xA; * which accompanies this distribution, and is available at&#xA; * http://www.eclipse.org/legal/epl-v10.html&#xA; * Contributors:&#xA; * Fabien Giquel - initial API and implementation&#xA; */&#xA;" prefixOfParent="true"/>
+ <imports originalCompilationUnit="//@compilationUnits.4" importedElement="//@ownedElements.3/@ownedPackages.2/@ownedElements.0"/>
+ <imports originalCompilationUnit="//@compilationUnits.4" importedElement="//@ownedElements.4/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedElements.0"/>
+ <imports originalCompilationUnit="//@compilationUnits.4" importedElement="//@ownedElements.4/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedElements.1"/>
+ </compilationUnits>
+</java:Model>
diff --git a/org.eclipse.gmt.modisco.java.discoverer.tests/references/bug326584.javaxmi b/org.eclipse.gmt.modisco.java.discoverer.tests/references/bug326584.javaxmi
new file mode 100644
index 000000000..7d7c01106
--- /dev/null
+++ b/org.eclipse.gmt.modisco.java.discoverer.tests/references/bug326584.javaxmi
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="ASCII"?>
+<java:Model xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:java="http://www.eclipse.org/MoDisco/Java/0.2.incubation/java" name="_Brouillon">
+ <ownedElements name="(default package)">
+ <ownedElements xsi:type="java:ClassDeclaration" originalCompilationUnit="//@compilationUnits.0" name="ASimpleClassWithComments">
+ <comments xsi:type="java:Javadoc" originalCompilationUnit="//@compilationUnits.0" content="/** &#xA; * a Javadoc content.&#xA; */&#xA;" prefixOfParent="true">
+ <tags originalCompilationUnit="//@compilationUnits.0">
+ <fragments xsi:type="java:TextElement" originalCompilationUnit="//@compilationUnits.0" text="a Javadoc content."/>
+ </tags>
+ </comments>
+ <modifier visibility="public"/>
+ </ownedElements>
+ </ownedElements>
+ <orphanTypes xsi:type="java:PrimitiveTypeInt" name="int"/>
+ <orphanTypes xsi:type="java:PrimitiveTypeLong" name="long"/>
+ <orphanTypes xsi:type="java:PrimitiveTypeFloat" name="float"/>
+ <orphanTypes xsi:type="java:PrimitiveTypeDouble" name="double"/>
+ <orphanTypes xsi:type="java:PrimitiveTypeBoolean" name="boolean"/>
+ <orphanTypes xsi:type="java:PrimitiveTypeVoid" name="void"/>
+ <orphanTypes xsi:type="java:PrimitiveTypeChar" name="char"/>
+ <orphanTypes xsi:type="java:PrimitiveTypeShort" name="short"/>
+ <orphanTypes xsi:type="java:PrimitiveTypeByte" name="byte"/>
+ <compilationUnits name="ASimpleClassWithComments.java" originalFilePath="D:\eclipse 3.6Z.m-dev\runtime-dvt-workspace\_Brouillon\src\ASimpleClassWithComments.java" commentList="//@ownedElements.0/@ownedElements.0/@comments.0" types="//@ownedElements.0/@ownedElements.0"/>
+</java:Model>
diff --git a/org.eclipse.gmt.modisco.java.discoverer.tests/references/bug326944.javaxmi b/org.eclipse.gmt.modisco.java.discoverer.tests/references/bug326944.javaxmi
new file mode 100644
index 000000000..1e2886294
--- /dev/null
+++ b/org.eclipse.gmt.modisco.java.discoverer.tests/references/bug326944.javaxmi
@@ -0,0 +1,48 @@
+<?xml version="1.0" encoding="ASCII"?>
+<java:Model xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:java="http://www.eclipse.org/MoDisco/Java/0.2.incubation/java" name="bug326944">
+ <ownedElements name="supermethodinvocation">
+ <ownedElements xsi:type="java:ClassDeclaration" originalCompilationUnit="//@compilationUnits.0" name="Parent" usagesInTypeAccess="//@ownedElements.0/@ownedElements.1/@superClass">
+ <modifier visibility="public"/>
+ <bodyDeclarations xsi:type="java:MethodDeclaration" originalCompilationUnit="//@compilationUnits.0" name="aMethod" usages="//@ownedElements.0/@ownedElements.1/@bodyDeclarations.0/@body/@statements.0/@expression" redefinitions="//@ownedElements.0/@ownedElements.1/@bodyDeclarations.0">
+ <modifier visibility="public"/>
+ <body originalCompilationUnit="//@compilationUnits.0"/>
+ <returnType type="//@orphanTypes.5"/>
+ </bodyDeclarations>
+ </ownedElements>
+ <ownedElements xsi:type="java:ClassDeclaration" originalCompilationUnit="//@compilationUnits.1" name="Child" usagesInTypeAccess="//@ownedElements.0/@ownedElements.1/@bodyDeclarations.0/@body/@statements.0/@expression/@qualifier">
+ <modifier visibility="public"/>
+ <bodyDeclarations xsi:type="java:MethodDeclaration" originalCompilationUnit="//@compilationUnits.1" name="aMethod" usages="//@ownedElements.0/@ownedElements.1/@bodyDeclarations.0/@body/@statements.1/@expression" redefinedMethodDeclaration="//@ownedElements.0/@ownedElements.0/@bodyDeclarations.0">
+ <modifier visibility="public"/>
+ <body originalCompilationUnit="//@compilationUnits.1">
+ <statements xsi:type="java:ExpressionStatement" originalCompilationUnit="//@compilationUnits.1">
+ <expression xsi:type="java:SuperMethodInvocation" originalCompilationUnit="//@compilationUnits.1" method="//@ownedElements.0/@ownedElements.0/@bodyDeclarations.0">
+ <qualifier type="//@ownedElements.0/@ownedElements.1"/>
+ </expression>
+ </statements>
+ <statements xsi:type="java:ExpressionStatement" originalCompilationUnit="//@compilationUnits.1">
+ <expression xsi:type="java:MethodInvocation" originalCompilationUnit="//@compilationUnits.1" method="//@ownedElements.0/@ownedElements.1/@bodyDeclarations.0">
+ <expression xsi:type="java:ThisExpression" originalCompilationUnit="//@compilationUnits.1"/>
+ </expression>
+ </statements>
+ </body>
+ <returnType type="//@orphanTypes.5"/>
+ </bodyDeclarations>
+ <superClass type="//@ownedElements.0/@ownedElements.0"/>
+ </ownedElements>
+ </ownedElements>
+ <orphanTypes xsi:type="java:PrimitiveTypeInt" name="int"/>
+ <orphanTypes xsi:type="java:PrimitiveTypeLong" name="long"/>
+ <orphanTypes xsi:type="java:PrimitiveTypeFloat" name="float"/>
+ <orphanTypes xsi:type="java:PrimitiveTypeDouble" name="double"/>
+ <orphanTypes xsi:type="java:PrimitiveTypeBoolean" name="boolean"/>
+ <orphanTypes xsi:type="java:PrimitiveTypeVoid" name="void" usagesInTypeAccess="//@ownedElements.0/@ownedElements.0/@bodyDeclarations.0/@returnType //@ownedElements.0/@ownedElements.1/@bodyDeclarations.0/@returnType"/>
+ <orphanTypes xsi:type="java:PrimitiveTypeChar" name="char"/>
+ <orphanTypes xsi:type="java:PrimitiveTypeShort" name="short"/>
+ <orphanTypes xsi:type="java:PrimitiveTypeByte" name="byte"/>
+ <compilationUnits name="Parent.java" originalFilePath="D:\MoDisco\helios\workspace\bug326944\src\supermethodinvocation\Parent.java" commentList="//@compilationUnits.0/@comments.0" package="//@ownedElements.0" types="//@ownedElements.0/@ownedElements.0">
+ <comments xsi:type="java:BlockComment" originalCompilationUnit="//@compilationUnits.0" content="/*&#xD;&#xA; * Copyright (c) 2010 Mia-Software.&#xD;&#xA; * All rights reserved. This program and the accompanying materials&#xD;&#xA; * are made available under the terms of the Eclipse Public License v1.0&#xD;&#xA; * which accompanies this distribution, and is available at&#xD;&#xA; * http://www.eclipse.org/legal/epl-v10.html&#xD;&#xA; *&#xD;&#xA; * Contributors:&#xD;&#xA; * Gabriel Barbier (Mia-Software) - initial API and implementation&#xD;&#xA; */" prefixOfParent="true"/>
+ </compilationUnits>
+ <compilationUnits name="Child.java" originalFilePath="D:\MoDisco\helios\workspace\bug326944\src\supermethodinvocation\Child.java" commentList="//@compilationUnits.1/@comments.0" package="//@ownedElements.0" types="//@ownedElements.0/@ownedElements.1">
+ <comments xsi:type="java:BlockComment" originalCompilationUnit="//@compilationUnits.1" content="/*&#xD;&#xA; * Copyright (c) 2010 Mia-Software.&#xD;&#xA; * All rights reserved. This program and the accompanying materials&#xD;&#xA; * are made available under the terms of the Eclipse Public License v1.0&#xD;&#xA; * which accompanies this distribution, and is available at&#xD;&#xA; * http://www.eclipse.org/legal/epl-v10.html&#xD;&#xA; *&#xD;&#xA; * Contributors:&#xD;&#xA; * Gabriel Barbier (Mia-Software) - initial API and implementation&#xD;&#xA; */" prefixOfParent="true"/>
+ </compilationUnits>
+</java:Model>
diff --git a/org.eclipse.gmt.modisco.java.discoverer.tests/references/test001.javaxmi b/org.eclipse.gmt.modisco.java.discoverer.tests/references/test001.javaxmi
new file mode 100644
index 000000000..72903a8ac
--- /dev/null
+++ b/org.eclipse.gmt.modisco.java.discoverer.tests/references/test001.javaxmi
@@ -0,0 +1,1755 @@
+<?xml version="1.0" encoding="ASCII"?>
+<java:Model xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:java="http://www.eclipse.org/MoDisco/Java/0.2.incubation/java" name="org.eclipse.gmt.modisco.java.discoverer.tests_test001">
+ <ownedElements name="annotations">
+ <ownedElements xsi:type="java:ClassDeclaration" originalCompilationUnit="//@compilationUnits.0" name="MyAnnotatedClass">
+ <annotations originalCompilationUnit="//@compilationUnits.0">
+ <type type="//@ownedElements.22/@ownedPackages.1/@ownedElements.1"/>
+ </annotations>
+ <modifier visibility="public"/>
+ <bodyDeclarations xsi:type="java:MethodDeclaration" originalCompilationUnit="//@compilationUnits.0" name="myMethod">
+ <modifier visibility="public"/>
+ <body originalCompilationUnit="//@compilationUnits.0">
+ <statements xsi:type="java:VariableDeclarationStatement" originalCompilationUnit="//@compilationUnits.0">
+ <type type="//@orphanTypes.9"/>
+ <fragments originalCompilationUnit="//@compilationUnits.0" name="lst">
+ <initializer xsi:type="java:MethodInvocation" originalCompilationUnit="//@compilationUnits.0" method="//@ownedElements.0/@ownedElements.0/@bodyDeclarations.1"/>
+ </fragments>
+ <modifier/>
+ <annotations originalCompilationUnit="//@compilationUnits.0">
+ <type type="//@ownedElements.22/@ownedPackages.1/@ownedElements.2"/>
+ <values>
+ <value xsi:type="java:StringLiteral" originalCompilationUnit="//@compilationUnits.0" escapedValue="&quot;unchecked&quot;"/>
+ </values>
+ </annotations>
+ </statements>
+ </body>
+ <returnType type="//@orphanTypes.5"/>
+ </bodyDeclarations>
+ <bodyDeclarations xsi:type="java:MethodDeclaration" originalCompilationUnit="//@compilationUnits.0" name="returnRawList" usages="//@ownedElements.0/@ownedElements.0/@bodyDeclarations.0/@body/@statements.0/@fragments.0/@initializer">
+ <annotations originalCompilationUnit="//@compilationUnits.0">
+ <type type="//@ownedElements.22/@ownedPackages.1/@ownedElements.2"/>
+ <values>
+ <value xsi:type="java:StringLiteral" originalCompilationUnit="//@compilationUnits.0" escapedValue="&quot;unchecked&quot;"/>
+ </values>
+ </annotations>
+ <modifier visibility="public"/>
+ <body originalCompilationUnit="//@compilationUnits.0">
+ <statements xsi:type="java:ReturnStatement" originalCompilationUnit="//@compilationUnits.0">
+ <expression xsi:type="java:NullLiteral" originalCompilationUnit="//@compilationUnits.0"/>
+ </statements>
+ </body>
+ <returnType type="//@ownedElements.22/@ownedPackages.0/@ownedElements.0"/>
+ </bodyDeclarations>
+ <bodyDeclarations xsi:type="java:MethodDeclaration" originalCompilationUnit="//@compilationUnits.0" name="toString">
+ <annotations originalCompilationUnit="//@compilationUnits.0">
+ <type type="//@ownedElements.22/@ownedPackages.1/@ownedElements.6"/>
+ </annotations>
+ <modifier visibility="public"/>
+ <body originalCompilationUnit="//@compilationUnits.0">
+ <statements xsi:type="java:ReturnStatement" originalCompilationUnit="//@compilationUnits.0">
+ <expression xsi:type="java:StringLiteral" originalCompilationUnit="//@compilationUnits.0" escapedValue="&quot;&quot;"/>
+ </statements>
+ </body>
+ <returnType type="//@ownedElements.22/@ownedPackages.1/@ownedElements.7"/>
+ </bodyDeclarations>
+ </ownedElements>
+ <ownedElements xsi:type="java:AnnotationTypeDeclaration" originalCompilationUnit="//@compilationUnits.1" name="MyAnnotation" usagesInTypeAccess="//@ownedElements.0/@ownedElements.2/@annotations.1/@type //@ownedElements.0/@ownedElements.2/@bodyDeclarations.2/@annotations.2/@type">
+ <modifier visibility="public"/>
+ <bodyDeclarations xsi:type="java:AnnotationTypeMemberDeclaration" originalCompilationUnit="//@compilationUnits.1" name="numero" usages="//@ownedElements.0/@ownedElements.2/@annotations.1/@values.0 //@ownedElements.0/@ownedElements.2/@bodyDeclarations.2/@annotations.2/@values.0">
+ <modifier/>
+ <type type="//@orphanTypes.0"/>
+ </bodyDeclarations>
+ <bodyDeclarations xsi:type="java:AnnotationTypeMemberDeclaration" originalCompilationUnit="//@compilationUnits.1" name="valeur" usages="//@ownedElements.0/@ownedElements.2/@annotations.1/@values.1 //@ownedElements.0/@ownedElements.2/@bodyDeclarations.2/@annotations.2/@values.1">
+ <modifier/>
+ <type type="//@ownedElements.22/@ownedPackages.1/@ownedElements.7"/>
+ </bodyDeclarations>
+ <bodyDeclarations xsi:type="java:FieldDeclaration" originalCompilationUnit="//@compilationUnits.1">
+ <modifier/>
+ <type type="//@orphanTypes.4"/>
+ <fragments originalCompilationUnit="//@compilationUnits.1" name="monAttributNormal">
+ <initializer xsi:type="java:BooleanLiteral" originalCompilationUnit="//@compilationUnits.1" value="true"/>
+ </fragments>
+ </bodyDeclarations>
+ </ownedElements>
+ <ownedElements xsi:type="java:ClassDeclaration" originalCompilationUnit="//@compilationUnits.2" name="MyAnnotatedClass2">
+ <annotations originalCompilationUnit="//@compilationUnits.2">
+ <type type="//@ownedElements.22/@ownedPackages.1/@ownedElements.1"/>
+ </annotations>
+ <annotations originalCompilationUnit="//@compilationUnits.2">
+ <type type="//@ownedElements.0/@ownedElements.1"/>
+ <values originalCompilationUnit="//@compilationUnits.2" name="numero" member="//@ownedElements.0/@ownedElements.1/@bodyDeclarations.0">
+ <value xsi:type="java:NumberLiteral" originalCompilationUnit="//@compilationUnits.2" tokenValue="2"/>
+ </values>
+ <values originalCompilationUnit="//@compilationUnits.2" name="valeur" member="//@ownedElements.0/@ownedElements.1/@bodyDeclarations.1">
+ <value xsi:type="java:StringLiteral" originalCompilationUnit="//@compilationUnits.2" escapedValue="&quot;ok&quot;"/>
+ </values>
+ </annotations>
+ <modifier visibility="public"/>
+ <bodyDeclarations xsi:type="java:FieldDeclaration" originalCompilationUnit="//@compilationUnits.2">
+ <annotations originalCompilationUnit="//@compilationUnits.2">
+ <type type="//@ownedElements.22/@ownedPackages.1/@ownedElements.1"/>
+ </annotations>
+ <modifier/>
+ <type type="//@orphanTypes.0"/>
+ <fragments originalCompilationUnit="//@compilationUnits.2" name="j"/>
+ </bodyDeclarations>
+ <bodyDeclarations xsi:type="java:AnnotationTypeDeclaration" originalCompilationUnit="//@compilationUnits.2" name="MonInnerAnnotation" usagesInTypeAccess="//@ownedElements.0/@ownedElements.2/@bodyDeclarations.2/@annotations.1/@type">
+ <modifier visibility="public"/>
+ <bodyDeclarations xsi:type="java:AnnotationTypeMemberDeclaration" originalCompilationUnit="//@compilationUnits.2" name="value">
+ <modifier/>
+ <default xsi:type="java:StringLiteral" originalCompilationUnit="//@compilationUnits.2" escapedValue="&quot;ok&quot;"/>
+ <type type="//@ownedElements.22/@ownedPackages.1/@ownedElements.7"/>
+ </bodyDeclarations>
+ <bodyDeclarations xsi:type="java:FieldDeclaration" originalCompilationUnit="//@compilationUnits.2">
+ <modifier/>
+ <type type="//@ownedElements.22/@ownedPackages.1/@ownedElements.7"/>
+ <fragments originalCompilationUnit="//@compilationUnits.2" name="maV">
+ <initializer xsi:type="java:StringLiteral" originalCompilationUnit="//@compilationUnits.2" escapedValue="&quot;&quot;"/>
+ </fragments>
+ </bodyDeclarations>
+ </bodyDeclarations>
+ <bodyDeclarations xsi:type="java:MethodDeclaration" originalCompilationUnit="//@compilationUnits.2" name="MaMethode">
+ <annotations originalCompilationUnit="//@compilationUnits.2">
+ <type type="//@ownedElements.22/@ownedPackages.1/@ownedElements.1"/>
+ </annotations>
+ <annotations originalCompilationUnit="//@compilationUnits.2">
+ <type type="//@ownedElements.0/@ownedElements.2/@bodyDeclarations.1"/>
+ <values>
+ <value xsi:type="java:StringLiteral" originalCompilationUnit="//@compilationUnits.2" escapedValue="&quot;ok&quot;"/>
+ </values>
+ </annotations>
+ <annotations originalCompilationUnit="//@compilationUnits.2">
+ <type type="//@ownedElements.0/@ownedElements.1"/>
+ <values originalCompilationUnit="//@compilationUnits.2" name="numero" member="//@ownedElements.0/@ownedElements.1/@bodyDeclarations.0">
+ <value xsi:type="java:NumberLiteral" originalCompilationUnit="//@compilationUnits.2" tokenValue="2"/>
+ </values>
+ <values originalCompilationUnit="//@compilationUnits.2" name="valeur" member="//@ownedElements.0/@ownedElements.1/@bodyDeclarations.1">
+ <value xsi:type="java:StringLiteral" originalCompilationUnit="//@compilationUnits.2" escapedValue="&quot;ok&quot;"/>
+ </values>
+ </annotations>
+ <modifier visibility="public"/>
+ <body originalCompilationUnit="//@compilationUnits.2">
+ <statements xsi:type="java:VariableDeclarationStatement" originalCompilationUnit="//@compilationUnits.2">
+ <type type="//@ownedElements.22/@ownedPackages.1/@ownedElements.7"/>
+ <fragments originalCompilationUnit="//@compilationUnits.2" name="v"/>
+ <modifier/>
+ <annotations originalCompilationUnit="//@compilationUnits.2">
+ <type type="//@ownedElements.22/@ownedPackages.1/@ownedElements.2"/>
+ <values>
+ <value xsi:type="java:StringLiteral" originalCompilationUnit="//@compilationUnits.2" escapedValue="&quot;unused&quot;"/>
+ </values>
+ </annotations>
+ </statements>
+ </body>
+ <parameters originalCompilationUnit="//@compilationUnits.2" name="aFile">
+ <modifier/>
+ <type type="//@ownedElements.22/@ownedPackages.2/@ownedElements.1">
+ <qualifier xsi:type="java:PackageAccess" package="//@ownedElements.22/@ownedPackages.2">
+ <qualifier package="//@ownedElements.22"/>
+ </qualifier>
+ </type>
+ </parameters>
+ <returnType type="//@orphanTypes.5"/>
+ </bodyDeclarations>
+ </ownedElements>
+ </ownedElements>
+ <ownedElements name="bug325108">
+ <ownedElements xsi:type="java:ClassDeclaration" originalCompilationUnit="//@compilationUnits.3" name="Bug325108">
+ <modifier visibility="public"/>
+ <bodyDeclarations xsi:type="java:FieldDeclaration" originalCompilationUnit="//@compilationUnits.3">
+ <modifier visibility="private"/>
+ <type type="//@unresolvedItems.1"/>
+ <fragments originalCompilationUnit="//@compilationUnits.3" name="console">
+ <initializer xsi:type="java:UnresolvedItemAccess" element="//@unresolvedItems.2">
+ <comments xsi:type="java:BlockComment" originalCompilationUnit="//@compilationUnits.3" content="/* end console */"/>
+ <comments xsi:type="java:BlockComment" originalCompilationUnit="//@compilationUnits.3" content="/* console */" prefixOfParent="true"/>
+ <qualifier xsi:type="java:UnresolvedItemAccess" element="//@unresolvedItems.1"/>
+ </initializer>
+ </fragments>
+ </bodyDeclarations>
+ </ownedElements>
+ </ownedElements>
+ <ownedElements name="classorifaceproxy">
+ <ownedPackages name="p1">
+ <ownedElements xsi:type="java:InterfaceDeclaration" originalCompilationUnit="//@compilationUnits.4" name="Iface1" usagesInImports="//@compilationUnits.5/@imports.0" usagesInTypeAccess="//@ownedElements.2/@ownedPackages.1/@ownedElements.0/@bodyDeclarations.0/@type">
+ <modifier visibility="public"/>
+ <bodyDeclarations xsi:type="java:FieldDeclaration" originalCompilationUnit="//@compilationUnits.4">
+ <modifier/>
+ <type type="//@ownedElements.2/@ownedPackages.1/@ownedElements.0"/>
+ <fragments originalCompilationUnit="//@compilationUnits.4" name="if2">
+ <initializer xsi:type="java:NullLiteral" originalCompilationUnit="//@compilationUnits.4"/>
+ </fragments>
+ </bodyDeclarations>
+ </ownedElements>
+ </ownedPackages>
+ <ownedPackages name="p2">
+ <ownedElements xsi:type="java:InterfaceDeclaration" originalCompilationUnit="//@compilationUnits.5" name="Iface2" usagesInImports="//@compilationUnits.4/@imports.0" usagesInTypeAccess="//@ownedElements.2/@ownedPackages.0/@ownedElements.0/@bodyDeclarations.0/@type">
+ <modifier visibility="public"/>
+ <bodyDeclarations xsi:type="java:FieldDeclaration" originalCompilationUnit="//@compilationUnits.5">
+ <modifier/>
+ <type type="//@ownedElements.2/@ownedPackages.0/@ownedElements.0"/>
+ <fragments originalCompilationUnit="//@compilationUnits.5" name="if1">
+ <initializer xsi:type="java:NullLiteral" originalCompilationUnit="//@compilationUnits.5"/>
+ </fragments>
+ </bodyDeclarations>
+ </ownedElements>
+ </ownedPackages>
+ </ownedElements>
+ <ownedElements name="comments">
+ <ownedElements xsi:type="java:ClassDeclaration" originalCompilationUnit="//@compilationUnits.6" name="Comments">
+ <comments xsi:type="java:Javadoc" originalCompilationUnit="//@compilationUnits.6" content="/** &#xA; * This class doesn't subclass {@link java.lang.String}&#xA; * @author me&#xA; * @see java.lang.String#toString()&#xA; */&#xA;" prefixOfParent="true">
+ <tags originalCompilationUnit="//@compilationUnits.6">
+ <fragments xsi:type="java:TextElement" originalCompilationUnit="//@compilationUnits.6" text="This class doesn't subclass "/>
+ <fragments xsi:type="java:TagElement" originalCompilationUnit="//@compilationUnits.6" tagName="@link">
+ <fragments xsi:type="java:TypeAccess" type="//@ownedElements.22/@ownedPackages.1/@ownedElements.7">
+ <qualifier xsi:type="java:PackageAccess" package="//@ownedElements.22/@ownedPackages.1">
+ <qualifier package="//@ownedElements.22"/>
+ </qualifier>
+ </fragments>
+ </fragments>
+ </tags>
+ <tags originalCompilationUnit="//@compilationUnits.6" tagName="@author">
+ <fragments xsi:type="java:TextElement" originalCompilationUnit="//@compilationUnits.6" text=" me"/>
+ </tags>
+ <tags originalCompilationUnit="//@compilationUnits.6" tagName="@see">
+ <fragments xsi:type="java:MethodRef" originalCompilationUnit="//@compilationUnits.6" method="//@ownedElements.22/@ownedPackages.1/@ownedElements.7/@bodyDeclarations.0">
+ <qualifier type="//@ownedElements.22/@ownedPackages.1/@ownedElements.7">
+ <qualifier xsi:type="java:PackageAccess" package="//@ownedElements.22/@ownedPackages.1">
+ <qualifier package="//@ownedElements.22"/>
+ </qualifier>
+ </qualifier>
+ </fragments>
+ </tags>
+ </comments>
+ <comments xsi:type="java:BlockComment" originalCompilationUnit="//@compilationUnits.6" content="/*&#xD;&#xA; * after class&#xD;&#xA; */"/>
+ <modifier visibility="public"/>
+ <bodyDeclarations xsi:type="java:FieldDeclaration" originalCompilationUnit="//@compilationUnits.6">
+ <comments xsi:type="java:Javadoc" originalCompilationUnit="//@compilationUnits.6" content="/** &#xA; * javadoc on field&#xA; */&#xA;" prefixOfParent="true">
+ <tags originalCompilationUnit="//@compilationUnits.6">
+ <fragments xsi:type="java:TextElement" originalCompilationUnit="//@compilationUnits.6" text="javadoc on field"/>
+ </tags>
+ </comments>
+ <modifier visibility="public"/>
+ <type type="//@ownedElements.22/@ownedPackages.1/@ownedElements.7"/>
+ <fragments originalCompilationUnit="//@compilationUnits.6" name="s"/>
+ </bodyDeclarations>
+ <bodyDeclarations xsi:type="java:MethodDeclaration" originalCompilationUnit="//@compilationUnits.6" name="method">
+ <comments xsi:type="java:Javadoc" originalCompilationUnit="//@compilationUnits.6" content="/** &#xA; * javadoc on method&#xA; */&#xA;" prefixOfParent="true">
+ <tags originalCompilationUnit="//@compilationUnits.6">
+ <fragments xsi:type="java:TextElement" originalCompilationUnit="//@compilationUnits.6" text="javadoc on method"/>
+ </tags>
+ </comments>
+ <modifier visibility="public"/>
+ <body originalCompilationUnit="//@compilationUnits.6">
+ <comments xsi:type="java:LineComment" originalCompilationUnit="//@compilationUnits.6" content="//in method" enclosedByParent="true"/>
+ </body>
+ <returnType type="//@orphanTypes.5"/>
+ </bodyDeclarations>
+ </ownedElements>
+ </ownedElements>
+ <ownedElements name="duplicateproxy">
+ <ownedElements xsi:type="java:ClassDeclaration" originalCompilationUnit="//@compilationUnits.7" name="DuplicateProxy1">
+ <modifier visibility="public"/>
+ <bodyDeclarations xsi:type="java:MethodDeclaration" originalCompilationUnit="//@compilationUnits.7" name="main">
+ <modifier visibility="public" static="true"/>
+ <body originalCompilationUnit="//@compilationUnits.7">
+ <statements xsi:type="java:ExpressionStatement" originalCompilationUnit="//@compilationUnits.7">
+ <expression xsi:type="java:MethodInvocation" originalCompilationUnit="//@compilationUnits.7" method="//@ownedElements.22/@ownedPackages.0/@ownedElements.2/@bodyDeclarations.1">
+ <expression xsi:type="java:ClassInstanceCreation" originalCompilationUnit="//@compilationUnits.7" method="//@ownedElements.22/@ownedPackages.0/@ownedElements.2/@bodyDeclarations.0">
+ <type type="//@orphanTypes.11"/>
+ </expression>
+ </expression>
+ </statements>
+ </body>
+ <parameters originalCompilationUnit="//@compilationUnits.7" name="args">
+ <modifier/>
+ <type type="//@orphanTypes.10"/>
+ </parameters>
+ <returnType type="//@orphanTypes.5"/>
+ </bodyDeclarations>
+ </ownedElements>
+ <ownedElements xsi:type="java:ClassDeclaration" originalCompilationUnit="//@compilationUnits.8" name="DuplicateProxy2">
+ <modifier visibility="public"/>
+ <bodyDeclarations xsi:type="java:MethodDeclaration" originalCompilationUnit="//@compilationUnits.8" name="main">
+ <modifier visibility="public" static="true"/>
+ <body originalCompilationUnit="//@compilationUnits.8">
+ <statements xsi:type="java:ExpressionStatement" originalCompilationUnit="//@compilationUnits.8">
+ <expression xsi:type="java:MethodInvocation" originalCompilationUnit="//@compilationUnits.8" method="//@ownedElements.22/@ownedPackages.0/@ownedElements.2/@bodyDeclarations.1">
+ <expression xsi:type="java:ClassInstanceCreation" originalCompilationUnit="//@compilationUnits.8" method="//@ownedElements.22/@ownedPackages.0/@ownedElements.2/@bodyDeclarations.0">
+ <type type="//@orphanTypes.12"/>
+ </expression>
+ </expression>
+ </statements>
+ </body>
+ <parameters originalCompilationUnit="//@compilationUnits.8" name="args">
+ <modifier/>
+ <type type="//@orphanTypes.10"/>
+ </parameters>
+ <returnType type="//@orphanTypes.5"/>
+ </bodyDeclarations>
+ </ownedElements>
+ <ownedElements xsi:type="java:ClassDeclaration" originalCompilationUnit="//@compilationUnits.9" name="DuplicateProxy3">
+ <modifier visibility="public"/>
+ <bodyDeclarations xsi:type="java:MethodDeclaration" originalCompilationUnit="//@compilationUnits.9" name="main">
+ <modifier visibility="public" static="true"/>
+ <body originalCompilationUnit="//@compilationUnits.9">
+ <statements xsi:type="java:ExpressionStatement" originalCompilationUnit="//@compilationUnits.9">
+ <expression xsi:type="java:MethodInvocation" originalCompilationUnit="//@compilationUnits.9" method="//@ownedElements.22/@ownedPackages.0/@ownedElements.2/@bodyDeclarations.1">
+ <expression xsi:type="java:ClassInstanceCreation" originalCompilationUnit="//@compilationUnits.9" method="//@ownedElements.22/@ownedPackages.0/@ownedElements.2/@bodyDeclarations.0">
+ <type type="//@orphanTypes.13"/>
+ </expression>
+ </expression>
+ </statements>
+ </body>
+ <parameters originalCompilationUnit="//@compilationUnits.9" name="args">
+ <modifier/>
+ <type type="//@orphanTypes.10"/>
+ </parameters>
+ <returnType type="//@orphanTypes.5"/>
+ </bodyDeclarations>
+ </ownedElements>
+ </ownedElements>
+ <ownedElements name="enumerations">
+ <ownedPackages name="p1">
+ <ownedElements xsi:type="java:ClassDeclaration" originalCompilationUnit="//@compilationUnits.10" name="EnumUse">
+ <modifier visibility="public"/>
+ <bodyDeclarations xsi:type="java:MethodDeclaration" originalCompilationUnit="//@compilationUnits.10" name="main">
+ <comments xsi:type="java:Javadoc" originalCompilationUnit="//@compilationUnits.10" content="/** &#xA; * @param args&#xA; */&#xA;" prefixOfParent="true">
+ <tags originalCompilationUnit="//@compilationUnits.10" tagName="@param">
+ <fragments xsi:type="java:SingleVariableAccess" variable="//@ownedElements.5/@ownedPackages.0/@ownedElements.0/@bodyDeclarations.0/@parameters.0"/>
+ </tags>
+ </comments>
+ <modifier visibility="public" static="true"/>
+ <body originalCompilationUnit="//@compilationUnits.10">
+ <statements xsi:type="java:VariableDeclarationStatement" originalCompilationUnit="//@compilationUnits.10">
+ <type type="//@orphanTypes.3"/>
+ <fragments originalCompilationUnit="//@compilationUnits.10" name="ux">
+ <initializer xsi:type="java:UnresolvedItemAccess" element="//@unresolvedItems.6">
+ <qualifier xsi:type="java:UnresolvedItemAccess" element="//@unresolvedItems.5">
+ <qualifier xsi:type="java:UnresolvedItemAccess" element="//@unresolvedItems.4"/>
+ </qualifier>
+ </initializer>
+ </fragments>
+ <modifier/>
+ </statements>
+ </body>
+ <parameters originalCompilationUnit="//@compilationUnits.10" name="args" usageInVariableAccess="//@ownedElements.5/@ownedPackages.0/@ownedElements.0/@bodyDeclarations.0/@comments.0/@tags.0/@fragments.0">
+ <modifier/>
+ <type type="//@orphanTypes.10"/>
+ </parameters>
+ <returnType type="//@orphanTypes.5"/>
+ </bodyDeclarations>
+ </ownedElements>
+ <ownedElements xsi:type="java:EnumDeclaration" originalCompilationUnit="//@compilationUnits.11" name="MyEnumeration">
+ <modifier visibility="public"/>
+ <bodyDeclarations xsi:type="java:ConstructorDeclaration" originalCompilationUnit="//@compilationUnits.11" name="MyEnumeration">
+ <modifier/>
+ <body originalCompilationUnit="//@compilationUnits.11"/>
+ <parameters originalCompilationUnit="//@compilationUnits.11" name="code">
+ <modifier/>
+ <type type="//@ownedElements.22/@ownedPackages.1/@ownedElements.7"/>
+ </parameters>
+ <parameters originalCompilationUnit="//@compilationUnits.11" name="libelle">
+ <modifier/>
+ <type type="//@ownedElements.22/@ownedPackages.1/@ownedElements.7"/>
+ </parameters>
+ </bodyDeclarations>
+ <enumConstants originalCompilationUnit="//@compilationUnits.11" name="MA_CONSTANTE_ENUM1">
+ <modifier/>
+ <arguments xsi:type="java:StringLiteral" originalCompilationUnit="//@compilationUnits.11" escapedValue="&quot;Element&quot;"/>
+ <arguments xsi:type="java:StringLiteral" originalCompilationUnit="//@compilationUnits.11" escapedValue="&quot;monLibelle&quot;"/>
+ </enumConstants>
+ <enumConstants originalCompilationUnit="//@compilationUnits.11" name="MA_CONSTANTE_ENUM2">
+ <modifier/>
+ <arguments xsi:type="java:StringLiteral" originalCompilationUnit="//@compilationUnits.11" escapedValue="&quot;Document&quot;"/>
+ <arguments xsi:type="java:StringLiteral" originalCompilationUnit="//@compilationUnits.11" escapedValue="&quot;monLibelle&quot;"/>
+ </enumConstants>
+ <enumConstants originalCompilationUnit="//@compilationUnits.11" name="MA_CONSTANTE_ENUM3">
+ <modifier/>
+ <arguments xsi:type="java:StringLiteral" originalCompilationUnit="//@compilationUnits.11" escapedValue="&quot;Workzone&quot;"/>
+ <arguments xsi:type="java:StringLiteral" originalCompilationUnit="//@compilationUnits.11" escapedValue="&quot;monLibelle&quot;"/>
+ </enumConstants>
+ <enumConstants originalCompilationUnit="//@compilationUnits.11" name="MA_CONSTANTE_ENUM4">
+ <modifier/>
+ <arguments xsi:type="java:StringLiteral" originalCompilationUnit="//@compilationUnits.11" escapedValue="&quot;Box&quot;"/>
+ <arguments xsi:type="java:StringLiteral" originalCompilationUnit="//@compilationUnits.11" escapedValue="&quot;monLibelle&quot;"/>
+ </enumConstants>
+ </ownedElements>
+ </ownedPackages>
+ </ownedElements>
+ <ownedElements name="initializer">
+ <ownedElements xsi:type="java:ClassDeclaration" originalCompilationUnit="//@compilationUnits.12" name="InitializerTest">
+ <modifier visibility="public"/>
+ <bodyDeclarations xsi:type="java:Initializer" originalCompilationUnit="//@compilationUnits.12">
+ <modifier static="true"/>
+ <body originalCompilationUnit="//@compilationUnits.12"/>
+ </bodyDeclarations>
+ <bodyDeclarations xsi:type="java:Initializer" originalCompilationUnit="//@compilationUnits.12">
+ <modifier/>
+ <body originalCompilationUnit="//@compilationUnits.12"/>
+ </bodyDeclarations>
+ </ownedElements>
+ </ownedElements>
+ <ownedElements name="innerclass" usagesInPackageAccess="//@ownedElements.7/@ownedElements.1/@bodyDeclarations.0/@body/@statements.3/@type/@qualifier/@qualifier">
+ <ownedElements xsi:type="java:ClassDeclaration" originalCompilationUnit="//@compilationUnits.13" name="InnerClass" usagesInTypeAccess="//@ownedElements.7/@ownedElements.1/@bodyDeclarations.0/@body/@statements.0/@type //@ownedElements.7/@ownedElements.1/@bodyDeclarations.0/@body/@statements.0/@fragments.0/@initializer/@type //@ownedElements.7/@ownedElements.1/@bodyDeclarations.0/@body/@statements.2/@type/@qualifier //@ownedElements.7/@ownedElements.1/@bodyDeclarations.0/@body/@statements.3/@type/@qualifier">
+ <modifier visibility="public"/>
+ <bodyDeclarations xsi:type="java:ClassDeclaration" originalCompilationUnit="//@compilationUnits.13" name="InnerClass2" usagesInImports="//@compilationUnits.14/@imports.0" usagesInTypeAccess="//@ownedElements.7/@ownedElements.1/@bodyDeclarations.0/@body/@statements.1/@type //@ownedElements.7/@ownedElements.1/@bodyDeclarations.0/@body/@statements.1/@fragments.0/@initializer/@type //@ownedElements.7/@ownedElements.1/@bodyDeclarations.0/@body/@statements.2/@type //@ownedElements.7/@ownedElements.1/@bodyDeclarations.0/@body/@statements.2/@fragments.0/@initializer/@type //@ownedElements.7/@ownedElements.1/@bodyDeclarations.0/@body/@statements.3/@type //@ownedElements.7/@ownedElements.1/@bodyDeclarations.0/@body/@statements.3/@fragments.0/@initializer/@type //@ownedElements.7/@ownedElements.1/@bodyDeclarations.0/@body/@statements.4/@type/@qualifier">
+ <modifier visibility="public"/>
+ <bodyDeclarations xsi:type="java:ClassDeclaration" originalCompilationUnit="//@compilationUnits.13" name="InnerClass3" usagesInImports="//@compilationUnits.14/@imports.1" usagesInTypeAccess="//@ownedElements.7/@ownedElements.1/@bodyDeclarations.0/@body/@statements.4/@type //@ownedElements.7/@ownedElements.1/@bodyDeclarations.0/@body/@statements.4/@fragments.0/@initializer/@type">
+ <modifier visibility="public"/>
+ <bodyDeclarations xsi:type="java:ClassDeclaration" originalCompilationUnit="//@compilationUnits.13" name="InnerClass4">
+ <modifier visibility="public"/>
+ <bodyDeclarations xsi:type="java:ClassDeclaration" originalCompilationUnit="//@compilationUnits.13" name="InnerClass5">
+ <modifier visibility="public"/>
+ </bodyDeclarations>
+ </bodyDeclarations>
+ <bodyDeclarations xsi:type="java:ConstructorDeclaration" name="InnerClass3" proxy="true" usages="//@ownedElements.7/@ownedElements.1/@bodyDeclarations.0/@body/@statements.4/@fragments.0/@initializer"/>
+ </bodyDeclarations>
+ <bodyDeclarations xsi:type="java:ConstructorDeclaration" name="InnerClass2" proxy="true" usages="//@ownedElements.7/@ownedElements.1/@bodyDeclarations.0/@body/@statements.1/@fragments.0/@initializer //@ownedElements.7/@ownedElements.1/@bodyDeclarations.0/@body/@statements.2/@fragments.0/@initializer //@ownedElements.7/@ownedElements.1/@bodyDeclarations.0/@body/@statements.3/@fragments.0/@initializer"/>
+ </bodyDeclarations>
+ <bodyDeclarations xsi:type="java:ConstructorDeclaration" name="InnerClass" proxy="true" usages="//@ownedElements.7/@ownedElements.1/@bodyDeclarations.0/@body/@statements.0/@fragments.0/@initializer"/>
+ </ownedElements>
+ <ownedElements xsi:type="java:ClassDeclaration" originalCompilationUnit="//@compilationUnits.14" name="InnerClassB">
+ <modifier visibility="public"/>
+ <bodyDeclarations xsi:type="java:MethodDeclaration" originalCompilationUnit="//@compilationUnits.14" name="main">
+ <modifier visibility="public" static="true"/>
+ <body originalCompilationUnit="//@compilationUnits.14">
+ <statements xsi:type="java:VariableDeclarationStatement" originalCompilationUnit="//@compilationUnits.14">
+ <type type="//@ownedElements.7/@ownedElements.0"/>
+ <fragments originalCompilationUnit="//@compilationUnits.14" name="ic" usageInVariableAccess="//@ownedElements.7/@ownedElements.1/@bodyDeclarations.0/@body/@statements.1/@fragments.0/@initializer/@expression //@ownedElements.7/@ownedElements.1/@bodyDeclarations.0/@body/@statements.2/@fragments.0/@initializer/@expression //@ownedElements.7/@ownedElements.1/@bodyDeclarations.0/@body/@statements.3/@fragments.0/@initializer/@expression">
+ <initializer xsi:type="java:ClassInstanceCreation" originalCompilationUnit="//@compilationUnits.14" method="//@ownedElements.7/@ownedElements.0/@bodyDeclarations.1">
+ <type type="//@ownedElements.7/@ownedElements.0"/>
+ </initializer>
+ </fragments>
+ <modifier/>
+ </statements>
+ <statements xsi:type="java:VariableDeclarationStatement" originalCompilationUnit="//@compilationUnits.14">
+ <type type="//@ownedElements.7/@ownedElements.0/@bodyDeclarations.0"/>
+ <fragments originalCompilationUnit="//@compilationUnits.14" name="ic2" usageInVariableAccess="//@ownedElements.7/@ownedElements.1/@bodyDeclarations.0/@body/@statements.4/@fragments.0/@initializer/@expression">
+ <initializer xsi:type="java:ClassInstanceCreation" originalCompilationUnit="//@compilationUnits.14" method="//@ownedElements.7/@ownedElements.0/@bodyDeclarations.0/@bodyDeclarations.1">
+ <expression xsi:type="java:SingleVariableAccess" variable="//@ownedElements.7/@ownedElements.1/@bodyDeclarations.0/@body/@statements.0/@fragments.0"/>
+ <type type="//@ownedElements.7/@ownedElements.0/@bodyDeclarations.0"/>
+ </initializer>
+ </fragments>
+ <modifier/>
+ </statements>
+ <statements xsi:type="java:VariableDeclarationStatement" originalCompilationUnit="//@compilationUnits.14">
+ <type type="//@ownedElements.7/@ownedElements.0/@bodyDeclarations.0">
+ <qualifier xsi:type="java:TypeAccess" type="//@ownedElements.7/@ownedElements.0"/>
+ </type>
+ <fragments originalCompilationUnit="//@compilationUnits.14" name="ic22">
+ <initializer xsi:type="java:ClassInstanceCreation" originalCompilationUnit="//@compilationUnits.14" method="//@ownedElements.7/@ownedElements.0/@bodyDeclarations.0/@bodyDeclarations.1">
+ <expression xsi:type="java:SingleVariableAccess" variable="//@ownedElements.7/@ownedElements.1/@bodyDeclarations.0/@body/@statements.0/@fragments.0"/>
+ <type type="//@ownedElements.7/@ownedElements.0/@bodyDeclarations.0"/>
+ </initializer>
+ </fragments>
+ <modifier/>
+ </statements>
+ <statements xsi:type="java:VariableDeclarationStatement" originalCompilationUnit="//@compilationUnits.14">
+ <type type="//@ownedElements.7/@ownedElements.0/@bodyDeclarations.0">
+ <qualifier xsi:type="java:TypeAccess" type="//@ownedElements.7/@ownedElements.0">
+ <qualifier xsi:type="java:PackageAccess" package="//@ownedElements.7"/>
+ </qualifier>
+ </type>
+ <fragments originalCompilationUnit="//@compilationUnits.14" name="ic222">
+ <initializer xsi:type="java:ClassInstanceCreation" originalCompilationUnit="//@compilationUnits.14" method="//@ownedElements.7/@ownedElements.0/@bodyDeclarations.0/@bodyDeclarations.1">
+ <expression xsi:type="java:SingleVariableAccess" variable="//@ownedElements.7/@ownedElements.1/@bodyDeclarations.0/@body/@statements.0/@fragments.0"/>
+ <type type="//@ownedElements.7/@ownedElements.0/@bodyDeclarations.0"/>
+ </initializer>
+ </fragments>
+ <modifier/>
+ </statements>
+ <statements xsi:type="java:VariableDeclarationStatement" originalCompilationUnit="//@compilationUnits.14">
+ <type type="//@ownedElements.7/@ownedElements.0/@bodyDeclarations.0/@bodyDeclarations.0">
+ <qualifier xsi:type="java:TypeAccess" type="//@ownedElements.7/@ownedElements.0/@bodyDeclarations.0"/>
+ </type>
+ <fragments originalCompilationUnit="//@compilationUnits.14" name="ic3">
+ <initializer xsi:type="java:ClassInstanceCreation" originalCompilationUnit="//@compilationUnits.14" method="//@ownedElements.7/@ownedElements.0/@bodyDeclarations.0/@bodyDeclarations.0/@bodyDeclarations.1">
+ <expression xsi:type="java:SingleVariableAccess" variable="//@ownedElements.7/@ownedElements.1/@bodyDeclarations.0/@body/@statements.1/@fragments.0"/>
+ <type type="//@ownedElements.7/@ownedElements.0/@bodyDeclarations.0/@bodyDeclarations.0"/>
+ </initializer>
+ </fragments>
+ <modifier/>
+ </statements>
+ </body>
+ <parameters originalCompilationUnit="//@compilationUnits.14" name="args">
+ <modifier/>
+ <type type="//@orphanTypes.10"/>
+ </parameters>
+ <returnType type="//@orphanTypes.5"/>
+ </bodyDeclarations>
+ </ownedElements>
+ </ownedElements>
+ <ownedElements name="methodefromanonymousclassdeclaration">
+ <ownedElements xsi:type="java:ClassDeclaration" originalCompilationUnit="//@compilationUnits.15" name="AnonymousClass">
+ <modifier visibility="public"/>
+ <bodyDeclarations xsi:type="java:MethodDeclaration" originalCompilationUnit="//@compilationUnits.15" name="main">
+ <modifier visibility="public" static="true"/>
+ <body originalCompilationUnit="//@compilationUnits.15">
+ <statements xsi:type="java:ExpressionStatement" originalCompilationUnit="//@compilationUnits.15">
+ <expression xsi:type="java:ClassInstanceCreation" originalCompilationUnit="//@compilationUnits.15" method="//@ownedElements.8/@ownedElements.0/@bodyDeclarations.0/@body/@statements.0/@expression/@anonymousClassDeclaration/@bodyDeclarations.1">
+ <anonymousClassDeclaration originalCompilationUnit="//@compilationUnits.15">
+ <bodyDeclarations xsi:type="java:MethodDeclaration" originalCompilationUnit="//@compilationUnits.15" name="run">
+ <annotations originalCompilationUnit="//@compilationUnits.15">
+ <type type="//@ownedElements.22/@ownedPackages.1/@ownedElements.6"/>
+ </annotations>
+ <modifier visibility="public"/>
+ <body originalCompilationUnit="//@compilationUnits.15">
+ <statements xsi:type="java:ExpressionStatement" originalCompilationUnit="//@compilationUnits.15">
+ <expression xsi:type="java:MethodInvocation" originalCompilationUnit="//@compilationUnits.15" method="//@ownedElements.22/@ownedPackages.2/@ownedElements.2/@bodyDeclarations.0">
+ <arguments xsi:type="java:StringLiteral" originalCompilationUnit="//@compilationUnits.15" escapedValue="&quot;Hello&quot;"/>
+ <expression xsi:type="java:SingleVariableAccess" variable="//@ownedElements.22/@ownedPackages.1/@ownedElements.13/@bodyDeclarations.0/@fragments.0">
+ <qualifier xsi:type="java:TypeAccess" type="//@ownedElements.22/@ownedPackages.1/@ownedElements.13"/>
+ </expression>
+ </expression>
+ </statements>
+ </body>
+ <returnType type="//@orphanTypes.5"/>
+ </bodyDeclarations>
+ <bodyDeclarations xsi:type="java:ConstructorDeclaration" name="" proxy="true" usages="//@ownedElements.8/@ownedElements.0/@bodyDeclarations.0/@body/@statements.0/@expression"/>
+ </anonymousClassDeclaration>
+ <type type="//@ownedElements.22/@ownedPackages.1/@ownedElements.11"/>
+ </expression>
+ </statements>
+ </body>
+ <parameters originalCompilationUnit="//@compilationUnits.15" name="args">
+ <modifier/>
+ <type type="//@orphanTypes.10"/>
+ </parameters>
+ <returnType type="//@orphanTypes.5"/>
+ </bodyDeclarations>
+ </ownedElements>
+ </ownedElements>
+ <ownedElements name="modifiers">
+ <ownedElements xsi:type="java:ClassDeclaration" originalCompilationUnit="//@compilationUnits.16" name="Modifiers">
+ <modifier visibility="public" inheritance="abstract"/>
+ <bodyDeclarations xsi:type="java:FieldDeclaration" originalCompilationUnit="//@compilationUnits.16">
+ <modifier visibility="private" static="true" transient="true" volatile="true"/>
+ <type type="//@orphanTypes.0"/>
+ <fragments originalCompilationUnit="//@compilationUnits.16" name="f"/>
+ </bodyDeclarations>
+ <bodyDeclarations xsi:type="java:MethodDeclaration" originalCompilationUnit="//@compilationUnits.16" name="method">
+ <modifier visibility="protected" inheritance="final" native="true" synchronized="true"/>
+ <returnType type="//@orphanTypes.0"/>
+ </bodyDeclarations>
+ </ownedElements>
+ </ownedElements>
+ <ownedElements name="packageaccess">
+ <ownedElements xsi:type="java:ClassDeclaration" originalCompilationUnit="//@compilationUnits.17" name="PackageAccess">
+ <modifier visibility="public"/>
+ <superInterfaces type="//@ownedElements.23/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedElements.0">
+ <qualifier xsi:type="java:PackageAccess" package="//@ownedElements.23/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0">
+ <qualifier package="//@ownedElements.23/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0">
+ <qualifier package="//@ownedElements.23/@ownedPackages.0/@ownedPackages.0">
+ <qualifier package="//@ownedElements.23/@ownedPackages.0">
+ <qualifier package="//@ownedElements.23"/>
+ </qualifier>
+ </qualifier>
+ </qualifier>
+ </qualifier>
+ </superInterfaces>
+ </ownedElements>
+ </ownedElements>
+ <ownedElements name="parameterizedtype">
+ <ownedElements xsi:type="java:ClassDeclaration" originalCompilationUnit="//@compilationUnits.18" name="ParameterizedType2">
+ <modifier visibility="public"/>
+ <bodyDeclarations xsi:type="java:FieldDeclaration" originalCompilationUnit="//@compilationUnits.18">
+ <modifier visibility="private"/>
+ <type type="//@orphanTypes.17"/>
+ <fragments originalCompilationUnit="//@compilationUnits.18" name="aMap">
+ <initializer xsi:type="java:NullLiteral" originalCompilationUnit="//@compilationUnits.18"/>
+ </fragments>
+ </bodyDeclarations>
+ <bodyDeclarations xsi:type="java:MethodDeclaration" originalCompilationUnit="//@compilationUnits.18" name="MaMethodeParametree">
+ <modifier visibility="public"/>
+ <body originalCompilationUnit="//@compilationUnits.18">
+ <statements xsi:type="java:ExpressionStatement" originalCompilationUnit="//@compilationUnits.18">
+ <expression xsi:type="java:MethodInvocation" originalCompilationUnit="//@compilationUnits.18" method="//@ownedElements.22/@ownedPackages.2/@ownedElements.2/@bodyDeclarations.0">
+ <arguments xsi:type="java:MethodInvocation" originalCompilationUnit="//@compilationUnits.18" method="//@ownedElements.22/@ownedPackages.1/@ownedElements.16/@bodyDeclarations.0">
+ <expression xsi:type="java:SingleVariableAccess" variable="//@ownedElements.11/@ownedElements.0/@bodyDeclarations.1/@parameters.0"/>
+ </arguments>
+ <expression xsi:type="java:SingleVariableAccess" variable="//@ownedElements.22/@ownedPackages.1/@ownedElements.13/@bodyDeclarations.0/@fragments.0">
+ <qualifier xsi:type="java:TypeAccess" type="//@ownedElements.22/@ownedPackages.1/@ownedElements.13"/>
+ </expression>
+ </expression>
+ </statements>
+ </body>
+ <parameters originalCompilationUnit="//@compilationUnits.18" name="aT" usageInVariableAccess="//@ownedElements.11/@ownedElements.0/@bodyDeclarations.1/@body/@statements.0/@expression/@arguments.0/@expression">
+ <modifier/>
+ <type type="//@ownedElements.11/@ownedElements.0/@typeParameters.1"/>
+ </parameters>
+ <parameters originalCompilationUnit="//@compilationUnits.18" name="aP">
+ <modifier/>
+ <type type="//@orphanTypes.19"/>
+ </parameters>
+ <typeParameters originalCompilationUnit="//@compilationUnits.18" name="T3"/>
+ <returnType type="//@orphanTypes.5"/>
+ </bodyDeclarations>
+ <bodyDeclarations xsi:type="java:MethodDeclaration" originalCompilationUnit="//@compilationUnits.18" name="MaMethodeParametree2">
+ <modifier visibility="public"/>
+ <body originalCompilationUnit="//@compilationUnits.18"/>
+ <parameters originalCompilationUnit="//@compilationUnits.18" name="aP">
+ <modifier/>
+ <type type="//@orphanTypes.21"/>
+ </parameters>
+ <returnType type="//@orphanTypes.5"/>
+ </bodyDeclarations>
+ <typeParameters originalCompilationUnit="//@compilationUnits.18" name="T1" usagesInTypeAccess="//@orphanTypes.18/@bound">
+ <bounds type="//@ownedElements.22/@ownedPackages.1/@ownedElements.11"/>
+ <bounds type="//@ownedElements.22/@ownedPackages.0/@ownedElements.0"/>
+ </typeParameters>
+ <typeParameters originalCompilationUnit="//@compilationUnits.18" name="T2" usagesInTypeAccess="//@ownedElements.11/@ownedElements.0/@bodyDeclarations.1/@parameters.0/@type">
+ <bounds type="//@orphanTypes.15"/>
+ </typeParameters>
+ <superClass type="//@ownedElements.22/@ownedPackages.0/@ownedElements.2"/>
+ </ownedElements>
+ <ownedElements xsi:type="java:ClassDeclaration" originalCompilationUnit="//@compilationUnits.19" name="ParameterizedType">
+ <modifier visibility="public"/>
+ <bodyDeclarations xsi:type="java:MethodDeclaration" originalCompilationUnit="//@compilationUnits.19" name="first">
+ <modifier visibility="public"/>
+ <body originalCompilationUnit="//@compilationUnits.19">
+ <statements xsi:type="java:Block" originalCompilationUnit="//@compilationUnits.19">
+ <statements xsi:type="java:ReturnStatement" originalCompilationUnit="//@compilationUnits.19">
+ <expression xsi:type="java:NullLiteral" originalCompilationUnit="//@compilationUnits.19"/>
+ </statements>
+ </statements>
+ </body>
+ <parameters originalCompilationUnit="//@compilationUnits.19" name="x">
+ <modifier/>
+ <type type="//@ownedElements.11/@ownedElements.1/@bodyDeclarations.0/@typeParameters.0"/>
+ </parameters>
+ <typeParameters originalCompilationUnit="//@compilationUnits.19" name="X" usagesInTypeAccess="//@ownedElements.11/@ownedElements.1/@bodyDeclarations.0/@parameters.0/@type">
+ <bounds type="//@ownedElements.22/@ownedPackages.1/@ownedElements.7"/>
+ </typeParameters>
+ <returnType type="//@ownedElements.11/@ownedElements.1/@typeParameters.0"/>
+ </bodyDeclarations>
+ <bodyDeclarations xsi:type="java:MethodDeclaration" originalCompilationUnit="//@compilationUnits.19" name="first">
+ <modifier visibility="public"/>
+ <body originalCompilationUnit="//@compilationUnits.19">
+ <statements xsi:type="java:Block" originalCompilationUnit="//@compilationUnits.19">
+ <statements xsi:type="java:ReturnStatement" originalCompilationUnit="//@compilationUnits.19">
+ <expression xsi:type="java:NullLiteral" originalCompilationUnit="//@compilationUnits.19"/>
+ </statements>
+ </statements>
+ </body>
+ <parameters originalCompilationUnit="//@compilationUnits.19" name="x">
+ <modifier/>
+ <type type="//@ownedElements.11/@ownedElements.1/@bodyDeclarations.1/@typeParameters.0"/>
+ </parameters>
+ <typeParameters originalCompilationUnit="//@compilationUnits.19" name="X" usagesInTypeAccess="//@ownedElements.11/@ownedElements.1/@bodyDeclarations.1/@parameters.0/@type">
+ <bounds type="//@ownedElements.22/@ownedPackages.1/@ownedElements.3"/>
+ </typeParameters>
+ <returnType type="//@ownedElements.11/@ownedElements.1/@typeParameters.0"/>
+ </bodyDeclarations>
+ <bodyDeclarations xsi:type="java:MethodDeclaration" originalCompilationUnit="//@compilationUnits.19" name="second">
+ <modifier visibility="public"/>
+ <body originalCompilationUnit="//@compilationUnits.19">
+ <statements xsi:type="java:Block" originalCompilationUnit="//@compilationUnits.19">
+ <statements xsi:type="java:ReturnStatement" originalCompilationUnit="//@compilationUnits.19">
+ <expression xsi:type="java:NullLiteral" originalCompilationUnit="//@compilationUnits.19"/>
+ </statements>
+ </statements>
+ </body>
+ <parameters originalCompilationUnit="//@compilationUnits.19" name="x">
+ <modifier/>
+ <type type="//@ownedElements.11/@ownedElements.1/@bodyDeclarations.2/@typeParameters.0"/>
+ </parameters>
+ <typeParameters originalCompilationUnit="//@compilationUnits.19" name="X" usagesInTypeAccess="//@ownedElements.11/@ownedElements.1/@bodyDeclarations.2/@parameters.0/@type">
+ <bounds type="//@ownedElements.22/@ownedPackages.1/@ownedElements.3"/>
+ <bounds type="//@unresolvedItems.8"/>
+ </typeParameters>
+ <typeParameters originalCompilationUnit="//@compilationUnits.19" name="Y">
+ <bounds type="//@ownedElements.22/@ownedPackages.1/@ownedElements.7"/>
+ </typeParameters>
+ <returnType type="//@ownedElements.11/@ownedElements.1/@typeParameters.0"/>
+ </bodyDeclarations>
+ <typeParameters originalCompilationUnit="//@compilationUnits.19" name="P" usagesInTypeAccess="//@ownedElements.11/@ownedElements.1/@bodyDeclarations.0/@returnType //@ownedElements.11/@ownedElements.1/@bodyDeclarations.1/@returnType //@ownedElements.11/@ownedElements.1/@bodyDeclarations.2/@returnType">
+ <bounds type="//@ownedElements.22/@ownedPackages.1/@ownedElements.7"/>
+ </typeParameters>
+ </ownedElements>
+ </ownedElements>
+ <ownedElements name="parameterizedtypeinmethoddecl">
+ <ownedElements xsi:type="java:ClassDeclaration" originalCompilationUnit="//@compilationUnits.20" name="Class1">
+ <modifier visibility="public"/>
+ <bodyDeclarations xsi:type="java:MethodDeclaration" originalCompilationUnit="//@compilationUnits.20" name="accept">
+ <modifier visibility="public"/>
+ <body originalCompilationUnit="//@compilationUnits.20">
+ <statements xsi:type="java:ReturnStatement" originalCompilationUnit="//@compilationUnits.20">
+ <expression xsi:type="java:MethodInvocation" originalCompilationUnit="//@compilationUnits.20" method="//@ownedElements.22/@ownedPackages.0/@ownedElements.10/@bodyDeclarations.0">
+ <expression xsi:type="java:MethodInvocation" originalCompilationUnit="//@compilationUnits.20" method="//@ownedElements.22/@ownedPackages.0/@ownedElements.9/@bodyDeclarations.0">
+ <expression xsi:type="java:MethodInvocation" originalCompilationUnit="//@compilationUnits.20" method="//@ownedElements.22/@ownedPackages.0/@ownedElements.7/@bodyDeclarations.0">
+ <expression xsi:type="java:SingleVariableAccess" variable="//@ownedElements.12/@ownedElements.0/@bodyDeclarations.0/@parameters.0"/>
+ </expression>
+ </expression>
+ </expression>
+ </statements>
+ </body>
+ <parameters originalCompilationUnit="//@compilationUnits.20" name="v" usageInVariableAccess="//@ownedElements.12/@ownedElements.0/@bodyDeclarations.0/@body/@statements.0/@expression/@expression/@expression/@expression">
+ <modifier/>
+ <type type="//@orphanTypes.22"/>
+ </parameters>
+ <parameters originalCompilationUnit="//@compilationUnits.20" name="p">
+ <modifier/>
+ <type type="//@ownedElements.12/@ownedElements.0/@bodyDeclarations.0/@typeParameters.1"/>
+ </parameters>
+ <typeParameters originalCompilationUnit="//@compilationUnits.20" name="R" usagesInTypeAccess="//@ownedElements.12/@ownedElements.0/@bodyDeclarations.0/@returnType //@orphanTypes.22/@typeArguments.0"/>
+ <typeParameters originalCompilationUnit="//@compilationUnits.20" name="P" usagesInTypeAccess="//@orphanTypes.22/@typeArguments.1 //@ownedElements.12/@ownedElements.0/@bodyDeclarations.0/@parameters.1/@type"/>
+ <returnType type="//@ownedElements.12/@ownedElements.0/@bodyDeclarations.0/@typeParameters.0"/>
+ </bodyDeclarations>
+ </ownedElements>
+ </ownedElements>
+ <ownedElements name="proxyField">
+ <ownedPackages name="p1">
+ <ownedElements xsi:type="java:ClassDeclaration" originalCompilationUnit="//@compilationUnits.21" name="PFClass1" usagesInImports="//@compilationUnits.22/@imports.0" usagesInTypeAccess="//@ownedElements.13/@ownedPackages.1/@ownedElements.0/@bodyDeclarations.3/@body/@statements.0/@expression/@leftHandSide/@expression/@type //@ownedElements.13/@ownedPackages.1/@ownedElements.0/@bodyDeclarations.3/@body/@statements.1/@expression/@leftHandSide/@expression/@type">
+ <modifier visibility="public"/>
+ <bodyDeclarations xsi:type="java:FieldDeclaration" originalCompilationUnit="//@compilationUnits.21">
+ <modifier visibility="public"/>
+ <type type="//@ownedElements.22/@ownedPackages.1/@ownedElements.7"/>
+ <fragments originalCompilationUnit="//@compilationUnits.21" name="s1" usageInVariableAccess="//@ownedElements.13/@ownedPackages.1/@ownedElements.0/@bodyDeclarations.3/@body/@statements.0/@expression/@leftHandSide/@field"/>
+ <fragments originalCompilationUnit="//@compilationUnits.21" name="s2" usageInVariableAccess="//@ownedElements.13/@ownedPackages.1/@ownedElements.0/@bodyDeclarations.3/@body/@statements.1/@expression/@leftHandSide/@field"/>
+ </bodyDeclarations>
+ <bodyDeclarations xsi:type="java:MethodDeclaration" originalCompilationUnit="//@compilationUnits.21" name="main">
+ <modifier visibility="public" static="true"/>
+ <body originalCompilationUnit="//@compilationUnits.21">
+ <statements xsi:type="java:ExpressionStatement" originalCompilationUnit="//@compilationUnits.21">
+ <expression xsi:type="java:Assignment" originalCompilationUnit="//@compilationUnits.21">
+ <leftHandSide xsi:type="java:FieldAccess" originalCompilationUnit="//@compilationUnits.21">
+ <field variable="//@ownedElements.13/@ownedPackages.1/@ownedElements.0/@bodyDeclarations.1/@fragments.0"/>
+ <expression xsi:type="java:ClassInstanceCreation" originalCompilationUnit="//@compilationUnits.21" method="//@ownedElements.13/@ownedPackages.1/@ownedElements.0/@bodyDeclarations.4">
+ <type type="//@ownedElements.13/@ownedPackages.1/@ownedElements.0"/>
+ </expression>
+ </leftHandSide>
+ <rightHandSide xsi:type="java:StringLiteral" originalCompilationUnit="//@compilationUnits.21" escapedValue="&quot;hello&quot;"/>
+ </expression>
+ </statements>
+ <statements xsi:type="java:ExpressionStatement" originalCompilationUnit="//@compilationUnits.21">
+ <expression xsi:type="java:Assignment" originalCompilationUnit="//@compilationUnits.21">
+ <leftHandSide xsi:type="java:FieldAccess" originalCompilationUnit="//@compilationUnits.21">
+ <field variable="//@ownedElements.13/@ownedPackages.1/@ownedElements.0/@bodyDeclarations.1/@fragments.1"/>
+ <expression xsi:type="java:ClassInstanceCreation" originalCompilationUnit="//@compilationUnits.21" method="//@ownedElements.13/@ownedPackages.1/@ownedElements.0/@bodyDeclarations.4">
+ <type type="//@ownedElements.13/@ownedPackages.1/@ownedElements.0"/>
+ </expression>
+ </leftHandSide>
+ <rightHandSide xsi:type="java:StringLiteral" originalCompilationUnit="//@compilationUnits.21" escapedValue="&quot;hello&quot;"/>
+ </expression>
+ </statements>
+ </body>
+ <parameters originalCompilationUnit="//@compilationUnits.21" name="args">
+ <modifier/>
+ <type type="//@orphanTypes.10"/>
+ </parameters>
+ <returnType type="//@orphanTypes.5"/>
+ </bodyDeclarations>
+ <bodyDeclarations xsi:type="java:ConstructorDeclaration" name="PFClass1" proxy="true" usages="//@ownedElements.13/@ownedPackages.1/@ownedElements.0/@bodyDeclarations.3/@body/@statements.0/@expression/@leftHandSide/@expression //@ownedElements.13/@ownedPackages.1/@ownedElements.0/@bodyDeclarations.3/@body/@statements.1/@expression/@leftHandSide/@expression"/>
+ </ownedElements>
+ </ownedPackages>
+ <ownedPackages name="p2">
+ <ownedElements xsi:type="java:ClassDeclaration" originalCompilationUnit="//@compilationUnits.22" name="PFClass2" usagesInImports="//@compilationUnits.21/@imports.0" usagesInTypeAccess="//@ownedElements.13/@ownedPackages.0/@ownedElements.0/@bodyDeclarations.1/@body/@statements.0/@expression/@leftHandSide/@expression/@type //@ownedElements.13/@ownedPackages.0/@ownedElements.0/@bodyDeclarations.1/@body/@statements.1/@expression/@leftHandSide/@expression/@type">
+ <modifier visibility="public"/>
+ <bodyDeclarations xsi:type="java:FieldDeclaration" originalCompilationUnit="//@compilationUnits.22">
+ <modifier visibility="public"/>
+ <type type="//@ownedElements.22/@ownedPackages.1/@ownedElements.7"/>
+ <fragments originalCompilationUnit="//@compilationUnits.22" name="a1"/>
+ <fragments originalCompilationUnit="//@compilationUnits.22" name="a2"/>
+ </bodyDeclarations>
+ <bodyDeclarations xsi:type="java:FieldDeclaration" originalCompilationUnit="//@compilationUnits.22">
+ <modifier visibility="public"/>
+ <type type="//@ownedElements.22/@ownedPackages.1/@ownedElements.7"/>
+ <fragments originalCompilationUnit="//@compilationUnits.22" name="b1" usageInVariableAccess="//@ownedElements.13/@ownedPackages.0/@ownedElements.0/@bodyDeclarations.1/@body/@statements.0/@expression/@leftHandSide/@field"/>
+ <fragments originalCompilationUnit="//@compilationUnits.22" name="b2" usageInVariableAccess="//@ownedElements.13/@ownedPackages.0/@ownedElements.0/@bodyDeclarations.1/@body/@statements.1/@expression/@leftHandSide/@field"/>
+ </bodyDeclarations>
+ <bodyDeclarations xsi:type="java:FieldDeclaration" originalCompilationUnit="//@compilationUnits.22">
+ <modifier visibility="public"/>
+ <type type="//@ownedElements.22/@ownedPackages.1/@ownedElements.7"/>
+ <fragments originalCompilationUnit="//@compilationUnits.22" name="c1"/>
+ <fragments originalCompilationUnit="//@compilationUnits.22" name="c2"/>
+ </bodyDeclarations>
+ <bodyDeclarations xsi:type="java:MethodDeclaration" originalCompilationUnit="//@compilationUnits.22" name="main">
+ <modifier visibility="public" static="true"/>
+ <body originalCompilationUnit="//@compilationUnits.22">
+ <statements xsi:type="java:ExpressionStatement" originalCompilationUnit="//@compilationUnits.22">
+ <expression xsi:type="java:Assignment" originalCompilationUnit="//@compilationUnits.22">
+ <leftHandSide xsi:type="java:FieldAccess" originalCompilationUnit="//@compilationUnits.22">
+ <field variable="//@ownedElements.13/@ownedPackages.0/@ownedElements.0/@bodyDeclarations.0/@fragments.0"/>
+ <expression xsi:type="java:ClassInstanceCreation" originalCompilationUnit="//@compilationUnits.22" method="//@ownedElements.13/@ownedPackages.0/@ownedElements.0/@bodyDeclarations.2">
+ <type type="//@ownedElements.13/@ownedPackages.0/@ownedElements.0"/>
+ </expression>
+ </leftHandSide>
+ <rightHandSide xsi:type="java:StringLiteral" originalCompilationUnit="//@compilationUnits.22" escapedValue="&quot;hello&quot;"/>
+ </expression>
+ </statements>
+ <statements xsi:type="java:ExpressionStatement" originalCompilationUnit="//@compilationUnits.22">
+ <expression xsi:type="java:Assignment" originalCompilationUnit="//@compilationUnits.22">
+ <leftHandSide xsi:type="java:FieldAccess" originalCompilationUnit="//@compilationUnits.22">
+ <field variable="//@ownedElements.13/@ownedPackages.0/@ownedElements.0/@bodyDeclarations.0/@fragments.1"/>
+ <expression xsi:type="java:ClassInstanceCreation" originalCompilationUnit="//@compilationUnits.22" method="//@ownedElements.13/@ownedPackages.0/@ownedElements.0/@bodyDeclarations.2">
+ <type type="//@ownedElements.13/@ownedPackages.0/@ownedElements.0"/>
+ </expression>
+ </leftHandSide>
+ <rightHandSide xsi:type="java:StringLiteral" originalCompilationUnit="//@compilationUnits.22" escapedValue="&quot;hello&quot;"/>
+ </expression>
+ </statements>
+ </body>
+ <parameters originalCompilationUnit="//@compilationUnits.22" name="args">
+ <modifier/>
+ <type type="//@orphanTypes.10"/>
+ </parameters>
+ <returnType type="//@orphanTypes.5"/>
+ </bodyDeclarations>
+ <bodyDeclarations xsi:type="java:ConstructorDeclaration" name="PFClass2" proxy="true" usages="//@ownedElements.13/@ownedPackages.0/@ownedElements.0/@bodyDeclarations.1/@body/@statements.0/@expression/@leftHandSide/@expression //@ownedElements.13/@ownedPackages.0/@ownedElements.0/@bodyDeclarations.1/@body/@statements.1/@expression/@leftHandSide/@expression"/>
+ </ownedElements>
+ </ownedPackages>
+ </ownedElements>
+ <ownedElements name="proxyparameters">
+ <ownedPackages name="p1">
+ <ownedElements xsi:type="java:ClassDeclaration" originalCompilationUnit="//@compilationUnits.23" name="ProxyParameters1">
+ <modifier visibility="public"/>
+ <bodyDeclarations xsi:type="java:MethodDeclaration" originalCompilationUnit="//@compilationUnits.23" name="main">
+ <modifier visibility="public" static="true"/>
+ <body originalCompilationUnit="//@compilationUnits.23">
+ <statements xsi:type="java:ExpressionStatement" originalCompilationUnit="//@compilationUnits.23">
+ <expression xsi:type="java:MethodInvocation" originalCompilationUnit="//@compilationUnits.23" method="//@ownedElements.14/@ownedPackages.1/@ownedElements.0/@bodyDeclarations.0">
+ <arguments xsi:type="java:NumberLiteral" originalCompilationUnit="//@compilationUnits.23" tokenValue="0"/>
+ <expression xsi:type="java:ClassInstanceCreation" originalCompilationUnit="//@compilationUnits.23" method="//@ownedElements.14/@ownedPackages.1/@ownedElements.0/@bodyDeclarations.1">
+ <type type="//@ownedElements.14/@ownedPackages.1/@ownedElements.0"/>
+ </expression>
+ </expression>
+ </statements>
+ </body>
+ <parameters originalCompilationUnit="//@compilationUnits.23" name="args">
+ <modifier/>
+ <type type="//@orphanTypes.10"/>
+ </parameters>
+ <returnType type="//@orphanTypes.5"/>
+ </bodyDeclarations>
+ <bodyDeclarations xsi:type="java:MethodDeclaration" originalCompilationUnit="//@compilationUnits.23" name="test">
+ <modifier visibility="public"/>
+ <body originalCompilationUnit="//@compilationUnits.23"/>
+ <parameters originalCompilationUnit="//@compilationUnits.23" name="param1">
+ <modifier/>
+ <type type="//@orphanTypes.0"/>
+ </parameters>
+ <returnType type="//@orphanTypes.5"/>
+ </bodyDeclarations>
+ </ownedElements>
+ </ownedPackages>
+ <ownedPackages name="p2">
+ <ownedElements xsi:type="java:ClassDeclaration" originalCompilationUnit="//@compilationUnits.24" name="ProxyParameters2" usagesInImports="//@compilationUnits.23/@imports.0" usagesInTypeAccess="//@ownedElements.14/@ownedPackages.0/@ownedElements.0/@bodyDeclarations.0/@body/@statements.0/@expression/@expression/@type">
+ <modifier visibility="public"/>
+ <bodyDeclarations xsi:type="java:MethodDeclaration" originalCompilationUnit="//@compilationUnits.24" name="test" usages="//@ownedElements.14/@ownedPackages.0/@ownedElements.0/@bodyDeclarations.0/@body/@statements.0/@expression">
+ <modifier visibility="public"/>
+ <body originalCompilationUnit="//@compilationUnits.24"/>
+ <parameters originalCompilationUnit="//@compilationUnits.24" name="param1">
+ <modifier/>
+ <type type="//@orphanTypes.0"/>
+ </parameters>
+ <returnType type="//@orphanTypes.5"/>
+ </bodyDeclarations>
+ <bodyDeclarations xsi:type="java:ConstructorDeclaration" name="ProxyParameters2" proxy="true" usages="//@ownedElements.14/@ownedPackages.0/@ownedElements.0/@bodyDeclarations.0/@body/@statements.0/@expression/@expression"/>
+ </ownedElements>
+ </ownedPackages>
+ </ownedElements>
+ <ownedElements name="resolvebinding">
+ <ownedPackages name="p1">
+ <ownedElements xsi:type="java:ClassDeclaration" originalCompilationUnit="//@compilationUnits.25" name="ResolveBindind1" usagesInTypeAccess="//@ownedElements.15/@ownedPackages.0/@ownedElements.0/@bodyDeclarations.0/@body/@statements.0/@expression/@expression/@type //@ownedElements.15/@ownedPackages.0/@ownedElements.0/@bodyDeclarations.1/@parameters.0/@type">
+ <modifier visibility="public"/>
+ <bodyDeclarations xsi:type="java:MethodDeclaration" originalCompilationUnit="//@compilationUnits.25" name="main">
+ <modifier visibility="public" static="true"/>
+ <body originalCompilationUnit="//@compilationUnits.25">
+ <statements xsi:type="java:ExpressionStatement" originalCompilationUnit="//@compilationUnits.25">
+ <comments xsi:type="java:LineComment" originalCompilationUnit="//@compilationUnits.25" content="//&#x9;&#x9;new ResolveBindind2().new SubResolveBinding2();" prefixOfParent="true"/>
+ <expression xsi:type="java:ClassInstanceCreation" originalCompilationUnit="//@compilationUnits.25" method="//@ownedElements.15/@ownedPackages.0/@ownedElements.0/@bodyDeclarations.2/@bodyDeclarations.0">
+ <expression xsi:type="java:ClassInstanceCreation" originalCompilationUnit="//@compilationUnits.25" method="//@ownedElements.15/@ownedPackages.0/@ownedElements.0/@bodyDeclarations.3">
+ <type type="//@ownedElements.15/@ownedPackages.0/@ownedElements.0"/>
+ </expression>
+ <type type="//@ownedElements.15/@ownedPackages.0/@ownedElements.0/@bodyDeclarations.2"/>
+ </expression>
+ </statements>
+ </body>
+ <parameters originalCompilationUnit="//@compilationUnits.25" name="args">
+ <modifier/>
+ <type type="//@orphanTypes.10"/>
+ </parameters>
+ <returnType type="//@orphanTypes.5"/>
+ </bodyDeclarations>
+ <bodyDeclarations xsi:type="java:MethodDeclaration" originalCompilationUnit="//@compilationUnits.25" name="m1">
+ <modifier visibility="public"/>
+ <body originalCompilationUnit="//@compilationUnits.25"/>
+ <parameters originalCompilationUnit="//@compilationUnits.25" name="rb2">
+ <modifier/>
+ <type type="//@ownedElements.15/@ownedPackages.0/@ownedElements.0"/>
+ </parameters>
+ <returnType type="//@orphanTypes.5"/>
+ </bodyDeclarations>
+ <bodyDeclarations xsi:type="java:ClassDeclaration" originalCompilationUnit="//@compilationUnits.25" name="SubResolveBinding1" usagesInTypeAccess="//@ownedElements.15/@ownedPackages.0/@ownedElements.0/@bodyDeclarations.0/@body/@statements.0/@expression/@type">
+ <modifier visibility="public"/>
+ <bodyDeclarations xsi:type="java:ConstructorDeclaration" name="SubResolveBinding1" proxy="true" usages="//@ownedElements.15/@ownedPackages.0/@ownedElements.0/@bodyDeclarations.0/@body/@statements.0/@expression"/>
+ </bodyDeclarations>
+ <bodyDeclarations xsi:type="java:ConstructorDeclaration" name="ResolveBindind1" proxy="true" usages="//@ownedElements.15/@ownedPackages.0/@ownedElements.0/@bodyDeclarations.0/@body/@statements.0/@expression/@expression"/>
+ </ownedElements>
+ </ownedPackages>
+ </ownedElements>
+ <ownedElements name="test001">
+ <ownedPackages name="p1">
+ <ownedElements xsi:type="java:ClassDeclaration" originalCompilationUnit="//@compilationUnits.26" name="Class1" usagesInImports="//@compilationUnits.27/@imports.0" usagesInTypeAccess="//@ownedElements.16/@ownedPackages.1/@ownedElements.0/@bodyDeclarations.0/@body/@statements.0/@type //@ownedElements.16/@ownedPackages.1/@ownedElements.0/@bodyDeclarations.0/@body/@statements.0/@fragments.0/@initializer/@type">
+ <modifier visibility="public"/>
+ <bodyDeclarations xsi:type="java:MethodDeclaration" originalCompilationUnit="//@compilationUnits.26" name="main">
+ <modifier visibility="public" static="true"/>
+ <body originalCompilationUnit="//@compilationUnits.26">
+ <statements xsi:type="java:VariableDeclarationStatement" originalCompilationUnit="//@compilationUnits.26">
+ <type type="//@ownedElements.16/@ownedPackages.1/@ownedElements.0"/>
+ <fragments originalCompilationUnit="//@compilationUnits.26" name="c2">
+ <initializer xsi:type="java:ClassInstanceCreation" originalCompilationUnit="//@compilationUnits.26" method="//@ownedElements.16/@ownedPackages.1/@ownedElements.0/@bodyDeclarations.1">
+ <type type="//@ownedElements.16/@ownedPackages.1/@ownedElements.0"/>
+ </initializer>
+ </fragments>
+ <modifier/>
+ </statements>
+ </body>
+ <parameters originalCompilationUnit="//@compilationUnits.26" name="args">
+ <modifier/>
+ <type type="//@orphanTypes.10"/>
+ </parameters>
+ <returnType type="//@orphanTypes.5"/>
+ </bodyDeclarations>
+ <bodyDeclarations xsi:type="java:ConstructorDeclaration" name="Class1" proxy="true" usages="//@ownedElements.16/@ownedPackages.1/@ownedElements.0/@bodyDeclarations.0/@body/@statements.0/@fragments.0/@initializer"/>
+ </ownedElements>
+ </ownedPackages>
+ <ownedPackages name="p2">
+ <ownedElements xsi:type="java:ClassDeclaration" originalCompilationUnit="//@compilationUnits.27" name="Class2" usagesInImports="//@compilationUnits.26/@imports.0" usagesInTypeAccess="//@ownedElements.16/@ownedPackages.0/@ownedElements.0/@bodyDeclarations.0/@body/@statements.0/@type //@ownedElements.16/@ownedPackages.0/@ownedElements.0/@bodyDeclarations.0/@body/@statements.0/@fragments.0/@initializer/@type">
+ <modifier visibility="public"/>
+ <bodyDeclarations xsi:type="java:MethodDeclaration" originalCompilationUnit="//@compilationUnits.27" name="main">
+ <modifier visibility="public" static="true"/>
+ <body originalCompilationUnit="//@compilationUnits.27">
+ <statements xsi:type="java:VariableDeclarationStatement" originalCompilationUnit="//@compilationUnits.27">
+ <type type="//@ownedElements.16/@ownedPackages.0/@ownedElements.0"/>
+ <fragments originalCompilationUnit="//@compilationUnits.27" name="c2">
+ <initializer xsi:type="java:ClassInstanceCreation" originalCompilationUnit="//@compilationUnits.27" method="//@ownedElements.16/@ownedPackages.0/@ownedElements.0/@bodyDeclarations.1">
+ <type type="//@ownedElements.16/@ownedPackages.0/@ownedElements.0"/>
+ </initializer>
+ </fragments>
+ <modifier/>
+ </statements>
+ </body>
+ <parameters originalCompilationUnit="//@compilationUnits.27" name="args">
+ <modifier/>
+ <type type="//@orphanTypes.10"/>
+ </parameters>
+ <returnType type="//@orphanTypes.5"/>
+ </bodyDeclarations>
+ <bodyDeclarations xsi:type="java:ConstructorDeclaration" name="Class2" proxy="true" usages="//@ownedElements.16/@ownedPackages.0/@ownedElements.0/@bodyDeclarations.0/@body/@statements.0/@fragments.0/@initializer"/>
+ </ownedElements>
+ </ownedPackages>
+ </ownedElements>
+ <ownedElements name="test002">
+ <ownedElements xsi:type="java:ClassDeclaration" originalCompilationUnit="//@compilationUnits.28" name="Class2" usagesInTypeAccess="//@ownedElements.17/@ownedElements.1/@bodyDeclarations.0/@body/@statements.0/@type //@ownedElements.17/@ownedElements.1/@bodyDeclarations.0/@body/@statements.0/@fragments.0/@initializer/@type">
+ <modifier visibility="public"/>
+ <bodyDeclarations xsi:type="java:MethodDeclaration" originalCompilationUnit="//@compilationUnits.28" name="main">
+ <modifier visibility="public" static="true"/>
+ <body originalCompilationUnit="//@compilationUnits.28">
+ <statements xsi:type="java:VariableDeclarationStatement" originalCompilationUnit="//@compilationUnits.28">
+ <type type="//@ownedElements.17/@ownedElements.1"/>
+ <fragments originalCompilationUnit="//@compilationUnits.28" name="c1" usageInVariableAccess="//@ownedElements.17/@ownedElements.0/@bodyDeclarations.0/@body/@statements.1/@fragments.0/@initializer/@expression">
+ <initializer xsi:type="java:ClassInstanceCreation" originalCompilationUnit="//@compilationUnits.28" method="//@ownedElements.17/@ownedElements.1/@bodyDeclarations.2">
+ <type type="//@ownedElements.17/@ownedElements.1"/>
+ </initializer>
+ </fragments>
+ <modifier/>
+ </statements>
+ <statements xsi:type="java:VariableDeclarationStatement" originalCompilationUnit="//@compilationUnits.28">
+ <type type="//@ownedElements.17/@ownedElements.1/@bodyDeclarations.1"/>
+ <fragments originalCompilationUnit="//@compilationUnits.28" name="c4">
+ <initializer xsi:type="java:ClassInstanceCreation" originalCompilationUnit="//@compilationUnits.28" method="//@ownedElements.17/@ownedElements.1/@bodyDeclarations.1/@bodyDeclarations.0">
+ <expression xsi:type="java:SingleVariableAccess" variable="//@ownedElements.17/@ownedElements.0/@bodyDeclarations.0/@body/@statements.0/@fragments.0"/>
+ <type type="//@ownedElements.17/@ownedElements.1/@bodyDeclarations.1"/>
+ </initializer>
+ </fragments>
+ <modifier/>
+ </statements>
+ </body>
+ <parameters originalCompilationUnit="//@compilationUnits.28" name="args">
+ <modifier/>
+ <type type="//@orphanTypes.10"/>
+ </parameters>
+ <returnType type="//@orphanTypes.5"/>
+ </bodyDeclarations>
+ <bodyDeclarations xsi:type="java:ClassDeclaration" originalCompilationUnit="//@compilationUnits.28" name="Class3" usagesInImports="//@compilationUnits.29/@imports.0" usagesInTypeAccess="//@ownedElements.17/@ownedElements.1/@bodyDeclarations.0/@body/@statements.1/@type //@ownedElements.17/@ownedElements.1/@bodyDeclarations.0/@body/@statements.1/@fragments.0/@initializer/@type">
+ <modifier visibility="public"/>
+ <bodyDeclarations xsi:type="java:ConstructorDeclaration" name="Class3" proxy="true" usages="//@ownedElements.17/@ownedElements.1/@bodyDeclarations.0/@body/@statements.1/@fragments.0/@initializer"/>
+ </bodyDeclarations>
+ <bodyDeclarations xsi:type="java:ConstructorDeclaration" name="Class2" proxy="true" usages="//@ownedElements.17/@ownedElements.1/@bodyDeclarations.0/@body/@statements.0/@fragments.0/@initializer"/>
+ </ownedElements>
+ <ownedElements xsi:type="java:ClassDeclaration" originalCompilationUnit="//@compilationUnits.29" name="Class1" usagesInTypeAccess="//@ownedElements.17/@ownedElements.0/@bodyDeclarations.0/@body/@statements.0/@type //@ownedElements.17/@ownedElements.0/@bodyDeclarations.0/@body/@statements.0/@fragments.0/@initializer/@type">
+ <modifier visibility="public"/>
+ <bodyDeclarations xsi:type="java:MethodDeclaration" originalCompilationUnit="//@compilationUnits.29" name="main">
+ <modifier visibility="public" static="true"/>
+ <body originalCompilationUnit="//@compilationUnits.29">
+ <statements xsi:type="java:VariableDeclarationStatement" originalCompilationUnit="//@compilationUnits.29">
+ <type type="//@ownedElements.17/@ownedElements.0"/>
+ <fragments originalCompilationUnit="//@compilationUnits.29" name="c2" usageInVariableAccess="//@ownedElements.17/@ownedElements.1/@bodyDeclarations.0/@body/@statements.1/@fragments.0/@initializer/@expression">
+ <initializer xsi:type="java:ClassInstanceCreation" originalCompilationUnit="//@compilationUnits.29" method="//@ownedElements.17/@ownedElements.0/@bodyDeclarations.2">
+ <type type="//@ownedElements.17/@ownedElements.0"/>
+ </initializer>
+ </fragments>
+ <modifier/>
+ </statements>
+ <statements xsi:type="java:VariableDeclarationStatement" originalCompilationUnit="//@compilationUnits.29">
+ <type type="//@ownedElements.17/@ownedElements.0/@bodyDeclarations.1"/>
+ <fragments originalCompilationUnit="//@compilationUnits.29" name="c3">
+ <initializer xsi:type="java:ClassInstanceCreation" originalCompilationUnit="//@compilationUnits.29" method="//@ownedElements.17/@ownedElements.0/@bodyDeclarations.1/@bodyDeclarations.0">
+ <expression xsi:type="java:SingleVariableAccess" variable="//@ownedElements.17/@ownedElements.1/@bodyDeclarations.0/@body/@statements.0/@fragments.0"/>
+ <type type="//@ownedElements.17/@ownedElements.0/@bodyDeclarations.1"/>
+ </initializer>
+ </fragments>
+ <modifier/>
+ </statements>
+ </body>
+ <parameters originalCompilationUnit="//@compilationUnits.29" name="args">
+ <modifier/>
+ <type type="//@orphanTypes.10"/>
+ </parameters>
+ <returnType type="//@orphanTypes.5"/>
+ </bodyDeclarations>
+ <bodyDeclarations xsi:type="java:ClassDeclaration" originalCompilationUnit="//@compilationUnits.29" name="Class4" usagesInImports="//@compilationUnits.28/@imports.0" usagesInTypeAccess="//@ownedElements.17/@ownedElements.0/@bodyDeclarations.0/@body/@statements.1/@type //@ownedElements.17/@ownedElements.0/@bodyDeclarations.0/@body/@statements.1/@fragments.0/@initializer/@type">
+ <modifier visibility="public"/>
+ <bodyDeclarations xsi:type="java:ConstructorDeclaration" name="Class4" proxy="true" usages="//@ownedElements.17/@ownedElements.0/@bodyDeclarations.0/@body/@statements.1/@fragments.0/@initializer"/>
+ </bodyDeclarations>
+ <bodyDeclarations xsi:type="java:ConstructorDeclaration" name="Class1" proxy="true" usages="//@ownedElements.17/@ownedElements.0/@bodyDeclarations.0/@body/@statements.0/@fragments.0/@initializer"/>
+ </ownedElements>
+ </ownedElements>
+ <ownedElements name="test003">
+ <ownedElements xsi:type="java:ClassDeclaration" originalCompilationUnit="//@compilationUnits.30" name="Test003">
+ <modifier visibility="public"/>
+ <bodyDeclarations xsi:type="java:MethodDeclaration" originalCompilationUnit="//@compilationUnits.30" name="main">
+ <modifier visibility="public" static="true"/>
+ <body originalCompilationUnit="//@compilationUnits.30">
+ <statements xsi:type="java:VariableDeclarationStatement" originalCompilationUnit="//@compilationUnits.30">
+ <type type="//@ownedElements.22/@ownedPackages.1/@ownedElements.7"/>
+ <fragments originalCompilationUnit="//@compilationUnits.30" name="s">
+ <initializer xsi:type="java:ClassInstanceCreation" originalCompilationUnit="//@compilationUnits.30" method="//@ownedElements.22/@ownedPackages.1/@ownedElements.7/@bodyDeclarations.1">
+ <type type="//@ownedElements.22/@ownedPackages.1/@ownedElements.7"/>
+ </initializer>
+ </fragments>
+ <modifier/>
+ </statements>
+ <statements xsi:type="java:VariableDeclarationStatement" originalCompilationUnit="//@compilationUnits.30">
+ <type type="//@ownedElements.22/@ownedPackages.1/@ownedElements.7"/>
+ <fragments originalCompilationUnit="//@compilationUnits.30" name="s2">
+ <initializer xsi:type="java:ClassInstanceCreation" originalCompilationUnit="//@compilationUnits.30" method="//@ownedElements.22/@ownedPackages.1/@ownedElements.7/@bodyDeclarations.1">
+ <type type="//@ownedElements.22/@ownedPackages.1/@ownedElements.7"/>
+ </initializer>
+ </fragments>
+ <modifier/>
+ </statements>
+ </body>
+ <parameters originalCompilationUnit="//@compilationUnits.30" name="args">
+ <modifier/>
+ <type type="//@orphanTypes.10"/>
+ </parameters>
+ <returnType type="//@orphanTypes.5"/>
+ </bodyDeclarations>
+ </ownedElements>
+ </ownedElements>
+ <ownedElements name="test004">
+ <ownedElements xsi:type="java:ClassDeclaration" originalCompilationUnit="//@compilationUnits.31" name="Test004">
+ <modifier visibility="public"/>
+ <bodyDeclarations xsi:type="java:MethodDeclaration" originalCompilationUnit="//@compilationUnits.31" name="main">
+ <modifier visibility="public" static="true"/>
+ <body originalCompilationUnit="//@compilationUnits.31">
+ <statements xsi:type="java:VariableDeclarationStatement" originalCompilationUnit="//@compilationUnits.31">
+ <type type="//@orphanTypes.25"/>
+ <fragments originalCompilationUnit="//@compilationUnits.31" name="x" usageInVariableAccess="//@ownedElements.19/@ownedElements.0/@bodyDeclarations.0/@body/@statements.1/@expression/@leftHandSide"/>
+ <modifier/>
+ </statements>
+ <statements xsi:type="java:ExpressionStatement" originalCompilationUnit="//@compilationUnits.31">
+ <expression xsi:type="java:Assignment" originalCompilationUnit="//@compilationUnits.31">
+ <leftHandSide xsi:type="java:SingleVariableAccess" variable="//@ownedElements.19/@ownedElements.0/@bodyDeclarations.0/@body/@statements.0/@fragments.0"/>
+ <rightHandSide xsi:type="java:ClassInstanceCreation" originalCompilationUnit="//@compilationUnits.31" method="//@ownedElements.22/@ownedPackages.0/@ownedElements.7/@bodyDeclarations.1">
+ <type type="//@orphanTypes.25"/>
+ </rightHandSide>
+ </expression>
+ </statements>
+ </body>
+ <parameters originalCompilationUnit="//@compilationUnits.31" name="args">
+ <modifier/>
+ <type type="//@orphanTypes.10"/>
+ </parameters>
+ <returnType type="//@orphanTypes.5"/>
+ </bodyDeclarations>
+ </ownedElements>
+ </ownedElements>
+ <ownedElements name="unresolved">
+ <ownedElements xsi:type="java:ClassDeclaration" originalCompilationUnit="//@compilationUnits.32" name="Unresolved">
+ <modifier visibility="public"/>
+ <bodyDeclarations xsi:type="java:MethodDeclaration" originalCompilationUnit="//@compilationUnits.32" name="main">
+ <modifier visibility="public"/>
+ <body originalCompilationUnit="//@compilationUnits.32">
+ <statements xsi:type="java:VariableDeclarationStatement" originalCompilationUnit="//@compilationUnits.32">
+ <type type="//@unresolvedItems.9"/>
+ <fragments originalCompilationUnit="//@compilationUnits.32" name="b">
+ <initializer xsi:type="java:ClassInstanceCreation" originalCompilationUnit="//@compilationUnits.32" method="//@unresolvedItems.13">
+ <type type="//@unresolvedItems.12"/>
+ </initializer>
+ </fragments>
+ <modifier/>
+ </statements>
+ <statements xsi:type="java:VariableDeclarationStatement" originalCompilationUnit="//@compilationUnits.32">
+ <type type="//@unresolvedItems.10"/>
+ <fragments originalCompilationUnit="//@compilationUnits.32" name="b2">
+ <initializer xsi:type="java:MethodInvocation" originalCompilationUnit="//@compilationUnits.32" method="//@unresolvedItems.15">
+ <expression xsi:type="java:UnresolvedItemAccess" element="//@unresolvedItems.14"/>
+ </initializer>
+ </fragments>
+ <modifier/>
+ </statements>
+ <statements xsi:type="java:IfStatement" originalCompilationUnit="//@compilationUnits.32">
+ <expression xsi:type="java:InfixExpression" originalCompilationUnit="//@compilationUnits.32" operator=">">
+ <rightOperand xsi:type="java:UnresolvedItemAccess" element="//@unresolvedItems.16"/>
+ <leftOperand xsi:type="java:UnresolvedItemAccess" element="//@unresolvedItems.14"/>
+ </expression>
+ <thenStatement xsi:type="java:Block" originalCompilationUnit="//@compilationUnits.32">
+ <statements xsi:type="java:ThrowStatement" originalCompilationUnit="//@compilationUnits.32">
+ <expression xsi:type="java:ClassInstanceCreation" originalCompilationUnit="//@compilationUnits.32" method="//@unresolvedItems.18">
+ <type type="//@unresolvedItems.17"/>
+ </expression>
+ </statements>
+ </thenStatement>
+ </statements>
+ <statements xsi:type="java:ReturnStatement" originalCompilationUnit="//@compilationUnits.32">
+ <expression xsi:type="java:NullLiteral" originalCompilationUnit="//@compilationUnits.32"/>
+ </statements>
+ </body>
+ <parameters originalCompilationUnit="//@compilationUnits.32" name="boby">
+ <modifier/>
+ <type type="//@unresolvedItems.11"/>
+ </parameters>
+ <returnType type="//@unresolvedItems.10"/>
+ </bodyDeclarations>
+ <superClass type="//@unresolvedItems.9">
+ <qualifier xsi:type="java:PackageAccess" package="//@ownedElements.24"/>
+ </superClass>
+ </ownedElements>
+ </ownedElements>
+ <ownedElements name="varargs">
+ <ownedElements xsi:type="java:ClassDeclaration" originalCompilationUnit="//@compilationUnits.33" name="VarArgs1">
+ <modifier visibility="public"/>
+ <bodyDeclarations xsi:type="java:MethodDeclaration" originalCompilationUnit="//@compilationUnits.33" name="main">
+ <modifier visibility="public" static="true"/>
+ <body originalCompilationUnit="//@compilationUnits.33">
+ <statements xsi:type="java:VariableDeclarationStatement" originalCompilationUnit="//@compilationUnits.33">
+ <type type="//@orphanTypes.0"/>
+ <fragments originalCompilationUnit="//@compilationUnits.33" name="passed" usageInVariableAccess="//@ownedElements.21/@ownedElements.0/@bodyDeclarations.0/@body/@statements.2/@body/@statements.0/@body/@statements.2/@expression/@operand //@ownedElements.21/@ownedElements.0/@bodyDeclarations.0/@body/@statements.3/@expression/@arguments.1">
+ <initializer xsi:type="java:NumberLiteral" originalCompilationUnit="//@compilationUnits.33" tokenValue="0"/>
+ </fragments>
+ <modifier/>
+ </statements>
+ <statements xsi:type="java:VariableDeclarationStatement" originalCompilationUnit="//@compilationUnits.33">
+ <type type="//@orphanTypes.0"/>
+ <fragments originalCompilationUnit="//@compilationUnits.33" name="failed" usageInVariableAccess="//@ownedElements.21/@ownedElements.0/@bodyDeclarations.0/@body/@statements.2/@body/@statements.0/@catchClauses.0/@body/@statements.1/@expression/@operand //@ownedElements.21/@ownedElements.0/@bodyDeclarations.0/@body/@statements.3/@expression/@arguments.2">
+ <initializer xsi:type="java:NumberLiteral" originalCompilationUnit="//@compilationUnits.33" tokenValue="0"/>
+ </fragments>
+ <modifier/>
+ </statements>
+ <statements xsi:type="java:EnhancedForStatement" originalCompilationUnit="//@compilationUnits.33">
+ <body xsi:type="java:Block" originalCompilationUnit="//@compilationUnits.33">
+ <statements xsi:type="java:TryStatement" originalCompilationUnit="//@compilationUnits.33">
+ <body originalCompilationUnit="//@compilationUnits.33">
+ <statements xsi:type="java:VariableDeclarationStatement" originalCompilationUnit="//@compilationUnits.33">
+ <type type="//@ownedElements.22/@ownedPackages.1/@ownedElements.17"/>
+ <fragments originalCompilationUnit="//@compilationUnits.33" name="c" usageInVariableAccess="//@ownedElements.21/@ownedElements.0/@bodyDeclarations.0/@body/@statements.2/@body/@statements.0/@body/@statements.1/@expression/@expression/@expression //@ownedElements.21/@ownedElements.0/@bodyDeclarations.0/@body/@statements.2/@body/@statements.0/@body/@statements.1/@expression/@arguments.0/@expression">
+ <initializer xsi:type="java:MethodInvocation" originalCompilationUnit="//@compilationUnits.33" method="//@ownedElements.22/@ownedPackages.1/@ownedElements.17/@bodyDeclarations.0">
+ <arguments xsi:type="java:SingleVariableAccess" variable="//@ownedElements.21/@ownedElements.0/@bodyDeclarations.0/@body/@statements.2/@parameter"/>
+ <expression xsi:type="java:TypeAccess" type="//@ownedElements.22/@ownedPackages.1/@ownedElements.17"/>
+ </initializer>
+ </fragments>
+ <modifier/>
+ </statements>
+ <statements xsi:type="java:ExpressionStatement" originalCompilationUnit="//@compilationUnits.33">
+ <expression xsi:type="java:MethodInvocation" originalCompilationUnit="//@compilationUnits.33" method="//@ownedElements.22/@ownedPackages.1/@ownedPackages.0/@ownedElements.3/@bodyDeclarations.0">
+ <arguments xsi:type="java:MethodInvocation" originalCompilationUnit="//@compilationUnits.33" method="//@ownedElements.22/@ownedPackages.1/@ownedElements.17/@bodyDeclarations.2">
+ <expression xsi:type="java:SingleVariableAccess" variable="//@ownedElements.21/@ownedElements.0/@bodyDeclarations.0/@body/@statements.2/@body/@statements.0/@body/@statements.0/@fragments.0"/>
+ </arguments>
+ <expression xsi:type="java:MethodInvocation" originalCompilationUnit="//@compilationUnits.33" method="//@ownedElements.22/@ownedPackages.1/@ownedElements.17/@bodyDeclarations.1">
+ <arguments xsi:type="java:StringLiteral" originalCompilationUnit="//@compilationUnits.33" escapedValue="&quot;test&quot;"/>
+ <expression xsi:type="java:SingleVariableAccess" variable="//@ownedElements.21/@ownedElements.0/@bodyDeclarations.0/@body/@statements.2/@body/@statements.0/@body/@statements.0/@fragments.0"/>
+ </expression>
+ </expression>
+ </statements>
+ <statements xsi:type="java:ExpressionStatement" originalCompilationUnit="//@compilationUnits.33">
+ <expression xsi:type="java:PostfixExpression" originalCompilationUnit="//@compilationUnits.33">
+ <operand xsi:type="java:SingleVariableAccess" variable="//@ownedElements.21/@ownedElements.0/@bodyDeclarations.0/@body/@statements.0/@fragments.0"/>
+ </expression>
+ </statements>
+ </body>
+ <catchClauses originalCompilationUnit="//@compilationUnits.33">
+ <exception originalCompilationUnit="//@compilationUnits.33" name="ex" usageInVariableAccess="//@ownedElements.21/@ownedElements.0/@bodyDeclarations.0/@body/@statements.2/@body/@statements.0/@catchClauses.0/@body/@statements.0/@expression/@arguments.2">
+ <modifier/>
+ <type type="//@ownedElements.22/@ownedPackages.1/@ownedElements.18"/>
+ </exception>
+ <body originalCompilationUnit="//@compilationUnits.33">
+ <statements xsi:type="java:ExpressionStatement" originalCompilationUnit="//@compilationUnits.33">
+ <expression xsi:type="java:MethodInvocation" originalCompilationUnit="//@compilationUnits.33" method="//@ownedElements.22/@ownedPackages.2/@ownedElements.2/@bodyDeclarations.1">
+ <arguments xsi:type="java:StringLiteral" originalCompilationUnit="//@compilationUnits.33" escapedValue="&quot;%s failed: %s%n&quot;"/>
+ <arguments xsi:type="java:SingleVariableAccess" variable="//@ownedElements.21/@ownedElements.0/@bodyDeclarations.0/@body/@statements.2/@parameter"/>
+ <arguments xsi:type="java:SingleVariableAccess" variable="//@ownedElements.21/@ownedElements.0/@bodyDeclarations.0/@body/@statements.2/@body/@statements.0/@catchClauses.0/@exception"/>
+ <expression xsi:type="java:SingleVariableAccess" variable="//@ownedElements.22/@ownedPackages.1/@ownedElements.13/@bodyDeclarations.0/@fragments.0">
+ <qualifier xsi:type="java:TypeAccess" type="//@ownedElements.22/@ownedPackages.1/@ownedElements.13"/>
+ </expression>
+ </expression>
+ </statements>
+ <statements xsi:type="java:ExpressionStatement" originalCompilationUnit="//@compilationUnits.33">
+ <expression xsi:type="java:PostfixExpression" originalCompilationUnit="//@compilationUnits.33">
+ <operand xsi:type="java:SingleVariableAccess" variable="//@ownedElements.21/@ownedElements.0/@bodyDeclarations.0/@body/@statements.1/@fragments.0"/>
+ </expression>
+ </statements>
+ </body>
+ </catchClauses>
+ </statements>
+ </body>
+ <expression xsi:type="java:SingleVariableAccess" variable="//@ownedElements.21/@ownedElements.0/@bodyDeclarations.0/@parameters.0"/>
+ <parameter originalCompilationUnit="//@compilationUnits.33" name="className" usageInVariableAccess="//@ownedElements.21/@ownedElements.0/@bodyDeclarations.0/@body/@statements.2/@body/@statements.0/@body/@statements.0/@fragments.0/@initializer/@arguments.0 //@ownedElements.21/@ownedElements.0/@bodyDeclarations.0/@body/@statements.2/@body/@statements.0/@catchClauses.0/@body/@statements.0/@expression/@arguments.1">
+ <modifier/>
+ <type type="//@ownedElements.22/@ownedPackages.1/@ownedElements.7"/>
+ </parameter>
+ </statements>
+ <statements xsi:type="java:ExpressionStatement" originalCompilationUnit="//@compilationUnits.33">
+ <expression xsi:type="java:MethodInvocation" originalCompilationUnit="//@compilationUnits.33" method="//@ownedElements.22/@ownedPackages.2/@ownedElements.2/@bodyDeclarations.1">
+ <arguments xsi:type="java:StringLiteral" originalCompilationUnit="//@compilationUnits.33" escapedValue="&quot;passed=%d; failed=%d%n&quot;"/>
+ <arguments xsi:type="java:SingleVariableAccess" variable="//@ownedElements.21/@ownedElements.0/@bodyDeclarations.0/@body/@statements.0/@fragments.0"/>
+ <arguments xsi:type="java:SingleVariableAccess" variable="//@ownedElements.21/@ownedElements.0/@bodyDeclarations.0/@body/@statements.1/@fragments.0"/>
+ <expression xsi:type="java:SingleVariableAccess" variable="//@ownedElements.22/@ownedPackages.1/@ownedElements.13/@bodyDeclarations.0/@fragments.0">
+ <qualifier xsi:type="java:TypeAccess" type="//@ownedElements.22/@ownedPackages.1/@ownedElements.13"/>
+ </expression>
+ </expression>
+ </statements>
+ </body>
+ <parameters originalCompilationUnit="//@compilationUnits.33" name="args" usageInVariableAccess="//@ownedElements.21/@ownedElements.0/@bodyDeclarations.0/@body/@statements.2/@expression">
+ <modifier/>
+ <type type="//@orphanTypes.10"/>
+ </parameters>
+ <returnType type="//@orphanTypes.5"/>
+ </bodyDeclarations>
+ </ownedElements>
+ <ownedElements xsi:type="java:ClassDeclaration" originalCompilationUnit="//@compilationUnits.34" name="VarArgs2">
+ <modifier visibility="public"/>
+ <bodyDeclarations xsi:type="java:MethodDeclaration" originalCompilationUnit="//@compilationUnits.34" name="main">
+ <modifier visibility="public" static="true"/>
+ <body originalCompilationUnit="//@compilationUnits.34">
+ <statements xsi:type="java:VariableDeclarationStatement" originalCompilationUnit="//@compilationUnits.34">
+ <type type="//@ownedElements.22/@ownedPackages.1/@ownedElements.7"/>
+ <fragments originalCompilationUnit="//@compilationUnits.34" name="result">
+ <initializer xsi:type="java:MethodInvocation" originalCompilationUnit="//@compilationUnits.34" method="//@ownedElements.22/@ownedPackages.3/@ownedElements.0/@bodyDeclarations.0">
+ <arguments xsi:type="java:InfixExpression" originalCompilationUnit="//@compilationUnits.34" operator="+">
+ <rightOperand xsi:type="java:StringLiteral" originalCompilationUnit="//@compilationUnits.34" escapedValue="&quot;{0,number,integer}.&quot;"/>
+ <leftOperand xsi:type="java:StringLiteral" originalCompilationUnit="//@compilationUnits.34" escapedValue="&quot;At {1,time} on {1,date}, there was {2} on planet &quot;"/>
+ </arguments>
+ <arguments xsi:type="java:NumberLiteral" originalCompilationUnit="//@compilationUnits.34" tokenValue="7"/>
+ <arguments xsi:type="java:ClassInstanceCreation" originalCompilationUnit="//@compilationUnits.34" method="//@ownedElements.22/@ownedPackages.0/@ownedElements.11/@bodyDeclarations.0">
+ <type type="//@ownedElements.22/@ownedPackages.0/@ownedElements.11"/>
+ </arguments>
+ <arguments xsi:type="java:StringLiteral" originalCompilationUnit="//@compilationUnits.34" escapedValue="&quot;a disturbance in the Force&quot;"/>
+ <expression xsi:type="java:TypeAccess" type="//@ownedElements.22/@ownedPackages.3/@ownedElements.0"/>
+ </initializer>
+ </fragments>
+ <modifier/>
+ </statements>
+ </body>
+ <parameters originalCompilationUnit="//@compilationUnits.34" name="args">
+ <modifier/>
+ <type type="//@orphanTypes.10"/>
+ </parameters>
+ <returnType type="//@orphanTypes.5"/>
+ </bodyDeclarations>
+ <bodyDeclarations xsi:type="java:MethodDeclaration" originalCompilationUnit="//@compilationUnits.34" name="m1">
+ <modifier visibility="public"/>
+ <body originalCompilationUnit="//@compilationUnits.34">
+ <statements xsi:type="java:VariableDeclarationStatement" originalCompilationUnit="//@compilationUnits.34">
+ <type type="//@orphanTypes.0"/>
+ <fragments originalCompilationUnit="//@compilationUnits.34" name="i">
+ <initializer xsi:type="java:ArrayLengthAccess" originalCompilationUnit="//@compilationUnits.34">
+ <array xsi:type="java:SingleVariableAccess" variable="//@ownedElements.21/@ownedElements.1/@bodyDeclarations.1/@parameters.0"/>
+ </initializer>
+ </fragments>
+ <modifier/>
+ </statements>
+ </body>
+ <parameters originalCompilationUnit="//@compilationUnits.34" name="objects" usageInVariableAccess="//@ownedElements.21/@ownedElements.1/@bodyDeclarations.1/@body/@statements.0/@fragments.0/@initializer/@array" varargs="true">
+ <modifier/>
+ <type type="//@ownedElements.22/@ownedPackages.1/@ownedElements.16"/>
+ </parameters>
+ <returnType type="//@orphanTypes.5"/>
+ </bodyDeclarations>
+ </ownedElements>
+ </ownedElements>
+ <ownedElements name="java" proxy="true" usagesInPackageAccess="//@ownedElements.0/@ownedElements.2/@bodyDeclarations.2/@parameters.0/@type/@qualifier/@qualifier //@ownedElements.3/@ownedElements.0/@comments.0/@tags.0/@fragments.1/@fragments.0/@qualifier/@qualifier //@ownedElements.3/@ownedElements.0/@comments.0/@tags.2/@fragments.0/@qualifier/@qualifier/@qualifier //@orphanTypes.25/@type/@qualifier/@qualifier //@orphanTypes.25/@typeArguments.0/@qualifier/@qualifier //@orphanTypes.24/@type/@qualifier/@qualifier //@orphanTypes.23/@bound/@qualifier/@qualifier">
+ <ownedPackages name="util" proxy="true" usagesInImports="//@compilationUnits.11/@imports.0" usagesInPackageAccess="//@orphanTypes.25/@type/@qualifier">
+ <ownedElements xsi:type="java:InterfaceDeclaration" name="List" proxy="true" usagesInImports="//@compilationUnits.0/@imports.0 //@compilationUnits.2/@imports.1 //@compilationUnits.18/@imports.1" usagesInTypeAccess="//@orphanTypes.9/@type //@ownedElements.0/@ownedElements.0/@bodyDeclarations.1/@returnType //@ownedElements.22/@ownedPackages.0/@ownedElements.3/@superInterfaces.0 //@ownedElements.22/@ownedPackages.0/@ownedElements.2/@superInterfaces.0 //@ownedElements.11/@ownedElements.0/@typeParameters.0/@bounds.1 //@orphanTypes.15/@type //@orphanTypes.19/@type //@orphanTypes.21/@type">
+ <superInterfaces type="//@ownedElements.22/@ownedPackages.0/@ownedElements.1"/>
+ <typeParameters name="E" proxy="true"/>
+ </ownedElements>
+ <ownedElements xsi:type="java:InterfaceDeclaration" name="Collection" proxy="true" usagesInTypeAccess="//@ownedElements.22/@ownedPackages.0/@ownedElements.0/@superInterfaces.0 //@ownedElements.22/@ownedPackages.0/@ownedElements.4/@superInterfaces.0 //@ownedElements.22/@ownedPackages.0/@ownedElements.9/@superInterfaces.0">
+ <superInterfaces type="//@ownedElements.22/@ownedPackages.1/@ownedElements.0"/>
+ <typeParameters name="E" proxy="true"/>
+ </ownedElements>
+ <ownedElements xsi:type="java:ClassDeclaration" name="ArrayList" proxy="true" usagesInImports="//@compilationUnits.2/@imports.0 //@compilationUnits.7/@imports.0 //@compilationUnits.8/@imports.0 //@compilationUnits.9/@imports.0 //@compilationUnits.18/@imports.0" usagesInTypeAccess="//@orphanTypes.11/@type //@orphanTypes.12/@type //@orphanTypes.13/@type //@ownedElements.11/@ownedElements.0/@superClass">
+ <bodyDeclarations xsi:type="java:ConstructorDeclaration" name="ArrayList" proxy="true" usages="//@ownedElements.4/@ownedElements.0/@bodyDeclarations.0/@body/@statements.0/@expression/@expression //@ownedElements.4/@ownedElements.1/@bodyDeclarations.0/@body/@statements.0/@expression/@expression //@ownedElements.4/@ownedElements.2/@bodyDeclarations.0/@body/@statements.0/@expression/@expression"/>
+ <bodyDeclarations xsi:type="java:MethodDeclaration" name="size" proxy="true" usages="//@ownedElements.4/@ownedElements.0/@bodyDeclarations.0/@body/@statements.0/@expression //@ownedElements.4/@ownedElements.1/@bodyDeclarations.0/@body/@statements.0/@expression //@ownedElements.4/@ownedElements.2/@bodyDeclarations.0/@body/@statements.0/@expression"/>
+ <superInterfaces type="//@ownedElements.22/@ownedPackages.0/@ownedElements.0"/>
+ <superInterfaces type="//@ownedElements.22/@ownedPackages.0/@ownedElements.5"/>
+ <superInterfaces type="//@ownedElements.22/@ownedPackages.1/@ownedElements.9"/>
+ <superInterfaces type="//@ownedElements.22/@ownedPackages.2/@ownedElements.0"/>
+ <typeParameters name="E" proxy="true"/>
+ <superClass type="//@ownedElements.22/@ownedPackages.0/@ownedElements.3"/>
+ </ownedElements>
+ <ownedElements xsi:type="java:ClassDeclaration" name="AbstractList" proxy="true" usagesInTypeAccess="//@ownedElements.22/@ownedPackages.0/@ownedElements.2/@superClass">
+ <superInterfaces type="//@ownedElements.22/@ownedPackages.0/@ownedElements.0"/>
+ <typeParameters name="E" proxy="true"/>
+ <superClass type="//@ownedElements.22/@ownedPackages.0/@ownedElements.4"/>
+ </ownedElements>
+ <ownedElements xsi:type="java:ClassDeclaration" name="AbstractCollection" proxy="true" usagesInTypeAccess="//@ownedElements.22/@ownedPackages.0/@ownedElements.3/@superClass">
+ <superInterfaces type="//@ownedElements.22/@ownedPackages.0/@ownedElements.1"/>
+ <typeParameters name="E" proxy="true"/>
+ </ownedElements>
+ <ownedElements xsi:type="java:InterfaceDeclaration" name="RandomAccess" proxy="true" usagesInTypeAccess="//@ownedElements.22/@ownedPackages.0/@ownedElements.2/@superInterfaces.1"/>
+ <ownedElements xsi:type="java:InterfaceDeclaration" name="Map" proxy="true" usagesInImports="//@compilationUnits.2/@imports.2 //@compilationUnits.18/@imports.2" usagesInTypeAccess="//@orphanTypes.17/@type //@ownedElements.22/@ownedPackages.0/@ownedElements.8/@superInterfaces.0 //@ownedElements.22/@ownedPackages.0/@ownedElements.7/@superInterfaces.0">
+ <typeParameters name="K" proxy="true"/>
+ <typeParameters name="V" proxy="true"/>
+ </ownedElements>
+ <ownedElements xsi:type="java:ClassDeclaration" name="HashMap" proxy="true" usagesInImports="//@compilationUnits.20/@imports.0" usagesInTypeAccess="//@orphanTypes.22/@type //@orphanTypes.25/@type">
+ <bodyDeclarations xsi:type="java:MethodDeclaration" name="keySet" proxy="true" usages="//@ownedElements.12/@ownedElements.0/@bodyDeclarations.0/@body/@statements.0/@expression/@expression/@expression"/>
+ <bodyDeclarations xsi:type="java:ConstructorDeclaration" name="HashMap" proxy="true" usages="//@ownedElements.19/@ownedElements.0/@bodyDeclarations.0/@body/@statements.1/@expression/@rightHandSide"/>
+ <superInterfaces type="//@ownedElements.22/@ownedPackages.0/@ownedElements.6"/>
+ <superInterfaces type="//@ownedElements.22/@ownedPackages.1/@ownedElements.9"/>
+ <superInterfaces type="//@ownedElements.22/@ownedPackages.2/@ownedElements.0"/>
+ <typeParameters name="K" proxy="true"/>
+ <typeParameters name="V" proxy="true"/>
+ <superClass type="//@ownedElements.22/@ownedPackages.0/@ownedElements.8"/>
+ </ownedElements>
+ <ownedElements xsi:type="java:ClassDeclaration" name="AbstractMap" proxy="true" usagesInTypeAccess="//@ownedElements.22/@ownedPackages.0/@ownedElements.7/@superClass">
+ <superInterfaces type="//@ownedElements.22/@ownedPackages.0/@ownedElements.6"/>
+ <typeParameters name="K" proxy="true"/>
+ <typeParameters name="V" proxy="true"/>
+ </ownedElements>
+ <ownedElements xsi:type="java:InterfaceDeclaration" name="Set" proxy="true">
+ <bodyDeclarations xsi:type="java:MethodDeclaration" name="iterator" proxy="true" usages="//@ownedElements.12/@ownedElements.0/@bodyDeclarations.0/@body/@statements.0/@expression/@expression"/>
+ <superInterfaces type="//@ownedElements.22/@ownedPackages.0/@ownedElements.1"/>
+ <typeParameters name="E" proxy="true"/>
+ </ownedElements>
+ <ownedElements xsi:type="java:InterfaceDeclaration" name="Iterator" proxy="true">
+ <bodyDeclarations xsi:type="java:MethodDeclaration" name="next" proxy="true" usages="//@ownedElements.12/@ownedElements.0/@bodyDeclarations.0/@body/@statements.0/@expression"/>
+ <typeParameters name="E" proxy="true"/>
+ </ownedElements>
+ <ownedElements xsi:type="java:ClassDeclaration" name="Date" proxy="true" usagesInImports="//@compilationUnits.34/@imports.1" usagesInTypeAccess="//@ownedElements.21/@ownedElements.1/@bodyDeclarations.0/@body/@statements.0/@fragments.0/@initializer/@arguments.2/@type">
+ <bodyDeclarations xsi:type="java:ConstructorDeclaration" name="Date" proxy="true" usages="//@ownedElements.21/@ownedElements.1/@bodyDeclarations.0/@body/@statements.0/@fragments.0/@initializer/@arguments.2"/>
+ <superInterfaces type="//@ownedElements.22/@ownedPackages.2/@ownedElements.0"/>
+ <superInterfaces type="//@ownedElements.22/@ownedPackages.1/@ownedElements.9"/>
+ <superInterfaces type="//@ownedElements.22/@ownedPackages.1/@ownedElements.5"/>
+ </ownedElements>
+ </ownedPackages>
+ <ownedPackages name="lang" proxy="true" usagesInPackageAccess="//@ownedElements.3/@ownedElements.0/@comments.0/@tags.0/@fragments.1/@fragments.0/@qualifier //@ownedElements.3/@ownedElements.0/@comments.0/@tags.2/@fragments.0/@qualifier/@qualifier //@orphanTypes.25/@typeArguments.0/@qualifier //@orphanTypes.24/@type/@qualifier">
+ <ownedElements xsi:type="java:InterfaceDeclaration" name="Iterable" proxy="true" usagesInTypeAccess="//@ownedElements.22/@ownedPackages.0/@ownedElements.1/@superInterfaces.0 //@orphanTypes.24/@type">
+ <typeParameters name="T" proxy="true"/>
+ </ownedElements>
+ <ownedElements xsi:type="java:AnnotationTypeDeclaration" name="Deprecated" proxy="true" usagesInTypeAccess="//@ownedElements.0/@ownedElements.0/@annotations.0/@type //@ownedElements.0/@ownedElements.2/@annotations.0/@type //@ownedElements.0/@ownedElements.2/@bodyDeclarations.0/@annotations.0/@type //@ownedElements.0/@ownedElements.2/@bodyDeclarations.2/@annotations.0/@type"/>
+ <ownedElements xsi:type="java:AnnotationTypeDeclaration" name="SuppressWarnings" proxy="true" usagesInTypeAccess="//@ownedElements.0/@ownedElements.0/@bodyDeclarations.0/@body/@statements.0/@annotations.0/@type //@ownedElements.0/@ownedElements.0/@bodyDeclarations.1/@annotations.0/@type //@ownedElements.0/@ownedElements.2/@bodyDeclarations.2/@body/@statements.0/@annotations.0/@type"/>
+ <ownedElements xsi:type="java:ClassDeclaration" name="Integer" proxy="true" usagesInTypeAccess="//@orphanTypes.9/@typeArguments.0 //@orphanTypes.12/@typeArguments.0 //@ownedElements.11/@ownedElements.1/@bodyDeclarations.1/@typeParameters.0/@bounds.0 //@ownedElements.11/@ownedElements.1/@bodyDeclarations.2/@typeParameters.0/@bounds.0">
+ <superInterfaces type="//@ownedElements.22/@ownedPackages.1/@ownedElements.5"/>
+ <superClass type="//@ownedElements.22/@ownedPackages.1/@ownedElements.4"/>
+ </ownedElements>
+ <ownedElements xsi:type="java:ClassDeclaration" name="Number" proxy="true" usagesInTypeAccess="//@ownedElements.22/@ownedPackages.1/@ownedElements.3/@superClass //@ownedElements.22/@ownedPackages.1/@ownedElements.10/@superClass">
+ <superInterfaces type="//@ownedElements.22/@ownedPackages.2/@ownedElements.0"/>
+ </ownedElements>
+ <ownedElements xsi:type="java:InterfaceDeclaration" name="Comparable" proxy="true" usagesInTypeAccess="//@ownedElements.22/@ownedPackages.1/@ownedElements.3/@superInterfaces.0 //@ownedElements.22/@ownedPackages.1/@ownedElements.7/@superInterfaces.1 //@ownedElements.22/@ownedPackages.2/@ownedElements.1/@superInterfaces.1 //@ownedElements.22/@ownedPackages.1/@ownedElements.10/@superInterfaces.0 //@ownedElements.22/@ownedPackages.1/@ownedElements.15/@superInterfaces.1 //@ownedElements.22/@ownedPackages.0/@ownedElements.11/@superInterfaces.2">
+ <typeParameters name="T" proxy="true"/>
+ </ownedElements>
+ <ownedElements xsi:type="java:AnnotationTypeDeclaration" name="Override" proxy="true" usagesInTypeAccess="//@ownedElements.0/@ownedElements.0/@bodyDeclarations.2/@annotations.0/@type //@ownedElements.8/@ownedElements.0/@bodyDeclarations.0/@body/@statements.0/@expression/@anonymousClassDeclaration/@bodyDeclarations.0/@annotations.0/@type"/>
+ <ownedElements xsi:type="java:ClassDeclaration" name="String" proxy="true" usagesInTypeAccess="//@ownedElements.0/@ownedElements.0/@bodyDeclarations.2/@returnType //@ownedElements.0/@ownedElements.1/@bodyDeclarations.1/@type //@ownedElements.0/@ownedElements.2/@bodyDeclarations.1/@bodyDeclarations.0/@type //@ownedElements.0/@ownedElements.2/@bodyDeclarations.1/@bodyDeclarations.1/@type //@ownedElements.0/@ownedElements.2/@bodyDeclarations.2/@body/@statements.0/@type //@ownedElements.3/@ownedElements.0/@comments.0/@tags.0/@fragments.1/@fragments.0 //@ownedElements.3/@ownedElements.0/@comments.0/@tags.2/@fragments.0/@qualifier //@ownedElements.3/@ownedElements.0/@bodyDeclarations.0/@type //@orphanTypes.10/@elementType //@orphanTypes.11/@typeArguments.0 //@ownedElements.5/@ownedPackages.0/@ownedElements.1/@bodyDeclarations.0/@parameters.0/@type //@ownedElements.5/@ownedPackages.0/@ownedElements.1/@bodyDeclarations.0/@parameters.1/@type //@ownedElements.22/@ownedPackages.2/@ownedElements.2/@bodyDeclarations.0/@parameters.0/@type //@orphanTypes.17/@typeArguments.0 //@orphanTypes.16/@bound //@ownedElements.11/@ownedElements.1/@typeParameters.0/@bounds.0 //@ownedElements.11/@ownedElements.1/@bodyDeclarations.0/@typeParameters.0/@bounds.0 //@ownedElements.11/@ownedElements.1/@bodyDeclarations.2/@typeParameters.1/@bounds.0 //@ownedElements.13/@ownedPackages.0/@ownedElements.0/@bodyDeclarations.0/@type //@ownedElements.13/@ownedPackages.1/@ownedElements.0/@bodyDeclarations.0/@type //@ownedElements.13/@ownedPackages.1/@ownedElements.0/@bodyDeclarations.1/@type //@ownedElements.13/@ownedPackages.1/@ownedElements.0/@bodyDeclarations.2/@type //@ownedElements.18/@ownedElements.0/@bodyDeclarations.0/@body/@statements.0/@type //@ownedElements.18/@ownedElements.0/@bodyDeclarations.0/@body/@statements.0/@fragments.0/@initializer/@type //@ownedElements.18/@ownedElements.0/@bodyDeclarations.0/@body/@statements.1/@type //@ownedElements.18/@ownedElements.0/@bodyDeclarations.0/@body/@statements.1/@fragments.0/@initializer/@type //@orphanTypes.25/@typeArguments.0 //@ownedElements.21/@ownedElements.0/@bodyDeclarations.0/@body/@statements.2/@parameter/@type //@ownedElements.22/@ownedPackages.1/@ownedElements.17/@bodyDeclarations.0/@parameters.0/@type //@ownedElements.22/@ownedPackages.1/@ownedElements.17/@bodyDeclarations.1/@parameters.0/@type //@ownedElements.22/@ownedPackages.2/@ownedElements.2/@bodyDeclarations.1/@parameters.0/@type //@ownedElements.21/@ownedElements.1/@bodyDeclarations.0/@body/@statements.0/@type //@ownedElements.22/@ownedPackages.3/@ownedElements.0/@bodyDeclarations.0/@parameters.0/@type">
+ <bodyDeclarations xsi:type="java:MethodDeclaration" name="toString" proxy="true" usagesInDocComments="//@ownedElements.3/@ownedElements.0/@comments.0/@tags.2/@fragments.0"/>
+ <bodyDeclarations xsi:type="java:ConstructorDeclaration" name="String" proxy="true" usages="//@ownedElements.18/@ownedElements.0/@bodyDeclarations.0/@body/@statements.0/@fragments.0/@initializer //@ownedElements.18/@ownedElements.0/@bodyDeclarations.0/@body/@statements.1/@fragments.0/@initializer"/>
+ <superInterfaces type="//@ownedElements.22/@ownedPackages.2/@ownedElements.0"/>
+ <superInterfaces type="//@ownedElements.22/@ownedPackages.1/@ownedElements.5"/>
+ <superInterfaces type="//@ownedElements.22/@ownedPackages.1/@ownedElements.8"/>
+ </ownedElements>
+ <ownedElements xsi:type="java:InterfaceDeclaration" name="CharSequence" proxy="true" usagesInTypeAccess="//@ownedElements.22/@ownedPackages.1/@ownedElements.7/@superInterfaces.2"/>
+ <ownedElements xsi:type="java:InterfaceDeclaration" name="Cloneable" proxy="true" usagesInTypeAccess="//@ownedElements.22/@ownedPackages.0/@ownedElements.2/@superInterfaces.2 //@ownedElements.22/@ownedPackages.0/@ownedElements.7/@superInterfaces.1 //@ownedElements.22/@ownedPackages.3/@ownedElements.1/@superInterfaces.1 //@ownedElements.22/@ownedPackages.0/@ownedElements.11/@superInterfaces.1"/>
+ <ownedElements xsi:type="java:ClassDeclaration" name="Long" proxy="true" usagesInTypeAccess="//@orphanTypes.13/@typeArguments.0">
+ <superInterfaces type="//@ownedElements.22/@ownedPackages.1/@ownedElements.5"/>
+ <superClass type="//@ownedElements.22/@ownedPackages.1/@ownedElements.4"/>
+ </ownedElements>
+ <ownedElements xsi:type="java:ClassDeclaration" name="Thread" proxy="true" usagesInTypeAccess="//@ownedElements.8/@ownedElements.0/@bodyDeclarations.0/@body/@statements.0/@expression/@type //@ownedElements.11/@ownedElements.0/@typeParameters.0/@bounds.0">
+ <superInterfaces type="//@ownedElements.22/@ownedPackages.1/@ownedElements.12"/>
+ </ownedElements>
+ <ownedElements xsi:type="java:InterfaceDeclaration" name="Runnable" proxy="true" usagesInTypeAccess="//@ownedElements.22/@ownedPackages.1/@ownedElements.11/@superInterfaces.0"/>
+ <ownedElements xsi:type="java:ClassDeclaration" name="System" proxy="true" usagesInTypeAccess="//@ownedElements.8/@ownedElements.0/@bodyDeclarations.0/@body/@statements.0/@expression/@anonymousClassDeclaration/@bodyDeclarations.0/@body/@statements.0/@expression/@expression/@qualifier //@ownedElements.11/@ownedElements.0/@bodyDeclarations.1/@body/@statements.0/@expression/@expression/@qualifier //@ownedElements.21/@ownedElements.0/@bodyDeclarations.0/@body/@statements.2/@body/@statements.0/@catchClauses.0/@body/@statements.0/@expression/@expression/@qualifier //@ownedElements.21/@ownedElements.0/@bodyDeclarations.0/@body/@statements.3/@expression/@expression/@qualifier">
+ <bodyDeclarations xsi:type="java:FieldDeclaration" proxy="true">
+ <fragments name="out" proxy="true" usageInVariableAccess="//@ownedElements.8/@ownedElements.0/@bodyDeclarations.0/@body/@statements.0/@expression/@anonymousClassDeclaration/@bodyDeclarations.0/@body/@statements.0/@expression/@expression //@ownedElements.11/@ownedElements.0/@bodyDeclarations.1/@body/@statements.0/@expression/@expression //@ownedElements.21/@ownedElements.0/@bodyDeclarations.0/@body/@statements.2/@body/@statements.0/@catchClauses.0/@body/@statements.0/@expression/@expression //@ownedElements.21/@ownedElements.0/@bodyDeclarations.0/@body/@statements.3/@expression/@expression"/>
+ </bodyDeclarations>
+ </ownedElements>
+ <ownedElements xsi:type="java:InterfaceDeclaration" name="Appendable" proxy="true" usagesInTypeAccess="//@ownedElements.22/@ownedPackages.2/@ownedElements.2/@superInterfaces.0"/>
+ <ownedElements xsi:type="java:ClassDeclaration" name="Boolean" proxy="true" usagesInTypeAccess="//@orphanTypes.14/@bound">
+ <superInterfaces type="//@ownedElements.22/@ownedPackages.2/@ownedElements.0"/>
+ <superInterfaces type="//@ownedElements.22/@ownedPackages.1/@ownedElements.5"/>
+ </ownedElements>
+ <ownedElements xsi:type="java:ClassDeclaration" name="Object" proxy="true" usagesInTypeAccess="//@ownedElements.22/@ownedPackages.1/@ownedPackages.0/@ownedElements.3/@bodyDeclarations.0/@parameters.0/@type //@orphanTypes.27/@elementType //@ownedElements.21/@ownedElements.1/@bodyDeclarations.1/@parameters.0/@type">
+ <bodyDeclarations xsi:type="java:MethodDeclaration" name="toString" proxy="true" usages="//@ownedElements.11/@ownedElements.0/@bodyDeclarations.1/@body/@statements.0/@expression/@arguments.0"/>
+ </ownedElements>
+ <ownedElements xsi:type="java:ClassDeclaration" name="Class" proxy="true" usagesInTypeAccess="//@ownedElements.21/@ownedElements.0/@bodyDeclarations.0/@body/@statements.2/@body/@statements.0/@body/@statements.0/@type //@ownedElements.21/@ownedElements.0/@bodyDeclarations.0/@body/@statements.2/@body/@statements.0/@body/@statements.0/@fragments.0/@initializer/@expression //@orphanTypes.26/@elementType">
+ <bodyDeclarations xsi:type="java:MethodDeclaration" name="forName" proxy="true" usages="//@ownedElements.21/@ownedElements.0/@bodyDeclarations.0/@body/@statements.2/@body/@statements.0/@body/@statements.0/@fragments.0/@initializer">
+ <parameters name="arg0" proxy="true">
+ <type type="//@ownedElements.22/@ownedPackages.1/@ownedElements.7"/>
+ </parameters>
+ </bodyDeclarations>
+ <bodyDeclarations xsi:type="java:MethodDeclaration" name="getMethod" proxy="true" usages="//@ownedElements.21/@ownedElements.0/@bodyDeclarations.0/@body/@statements.2/@body/@statements.0/@body/@statements.1/@expression/@expression">
+ <parameters name="arg0" proxy="true">
+ <type type="//@ownedElements.22/@ownedPackages.1/@ownedElements.7"/>
+ </parameters>
+ <parameters name="arg1" proxy="true">
+ <type type="//@orphanTypes.26"/>
+ </parameters>
+ </bodyDeclarations>
+ <bodyDeclarations xsi:type="java:MethodDeclaration" name="newInstance" proxy="true" usages="//@ownedElements.21/@ownedElements.0/@bodyDeclarations.0/@body/@statements.2/@body/@statements.0/@body/@statements.1/@expression/@arguments.0"/>
+ <superInterfaces type="//@ownedElements.22/@ownedPackages.2/@ownedElements.0"/>
+ <superInterfaces type="//@ownedElements.22/@ownedPackages.1/@ownedPackages.0/@ownedElements.0"/>
+ <superInterfaces type="//@ownedElements.22/@ownedPackages.1/@ownedPackages.0/@ownedElements.1"/>
+ <superInterfaces type="//@ownedElements.22/@ownedPackages.1/@ownedPackages.0/@ownedElements.2"/>
+ <typeParameters name="T" proxy="true"/>
+ </ownedElements>
+ <ownedElements xsi:type="java:ClassDeclaration" name="Exception" proxy="true" usagesInTypeAccess="//@ownedElements.21/@ownedElements.0/@bodyDeclarations.0/@body/@statements.2/@body/@statements.0/@catchClauses.0/@exception/@type">
+ <superClass type="//@ownedElements.22/@ownedPackages.1/@ownedElements.19"/>
+ </ownedElements>
+ <ownedElements xsi:type="java:ClassDeclaration" name="Throwable" proxy="true" usagesInTypeAccess="//@ownedElements.22/@ownedPackages.1/@ownedElements.18/@superClass">
+ <superInterfaces type="//@ownedElements.22/@ownedPackages.2/@ownedElements.0"/>
+ </ownedElements>
+ <ownedPackages name="reflect" proxy="true">
+ <ownedElements xsi:type="java:InterfaceDeclaration" name="GenericDeclaration" proxy="true" usagesInTypeAccess="//@ownedElements.22/@ownedPackages.1/@ownedElements.17/@superInterfaces.1 //@ownedElements.22/@ownedPackages.1/@ownedPackages.0/@ownedElements.3/@superInterfaces.0"/>
+ <ownedElements xsi:type="java:InterfaceDeclaration" name="Type" proxy="true" usagesInTypeAccess="//@ownedElements.22/@ownedPackages.1/@ownedElements.17/@superInterfaces.2"/>
+ <ownedElements xsi:type="java:InterfaceDeclaration" name="AnnotatedElement" proxy="true" usagesInTypeAccess="//@ownedElements.22/@ownedPackages.1/@ownedElements.17/@superInterfaces.3 //@ownedElements.22/@ownedPackages.1/@ownedPackages.0/@ownedElements.4/@superInterfaces.0"/>
+ <ownedElements xsi:type="java:ClassDeclaration" name="Method" proxy="true">
+ <bodyDeclarations xsi:type="java:MethodDeclaration" name="invoke" proxy="true" usages="//@ownedElements.21/@ownedElements.0/@bodyDeclarations.0/@body/@statements.2/@body/@statements.0/@body/@statements.1/@expression">
+ <parameters name="arg0" proxy="true">
+ <type type="//@ownedElements.22/@ownedPackages.1/@ownedElements.16"/>
+ </parameters>
+ <parameters name="arg1" proxy="true">
+ <type type="//@orphanTypes.27"/>
+ </parameters>
+ </bodyDeclarations>
+ <superInterfaces type="//@ownedElements.22/@ownedPackages.1/@ownedPackages.0/@ownedElements.0"/>
+ <superInterfaces type="//@ownedElements.22/@ownedPackages.1/@ownedPackages.0/@ownedElements.5"/>
+ <superClass type="//@ownedElements.22/@ownedPackages.1/@ownedPackages.0/@ownedElements.4"/>
+ </ownedElements>
+ <ownedElements xsi:type="java:ClassDeclaration" name="AccessibleObject" proxy="true" usagesInTypeAccess="//@ownedElements.22/@ownedPackages.1/@ownedPackages.0/@ownedElements.3/@superClass">
+ <superInterfaces type="//@ownedElements.22/@ownedPackages.1/@ownedPackages.0/@ownedElements.2"/>
+ </ownedElements>
+ <ownedElements xsi:type="java:InterfaceDeclaration" name="Member" proxy="true" usagesInTypeAccess="//@ownedElements.22/@ownedPackages.1/@ownedPackages.0/@ownedElements.3/@superInterfaces.1"/>
+ </ownedPackages>
+ </ownedPackages>
+ <ownedPackages name="io" proxy="true" usagesInPackageAccess="//@ownedElements.0/@ownedElements.2/@bodyDeclarations.2/@parameters.0/@type/@qualifier //@orphanTypes.23/@bound/@qualifier">
+ <ownedElements xsi:type="java:InterfaceDeclaration" name="Serializable" proxy="true" usagesInTypeAccess="//@ownedElements.22/@ownedPackages.1/@ownedElements.4/@superInterfaces.0 //@ownedElements.22/@ownedPackages.1/@ownedElements.7/@superInterfaces.0 //@ownedElements.22/@ownedPackages.0/@ownedElements.2/@superInterfaces.3 //@ownedElements.22/@ownedPackages.2/@ownedElements.1/@superInterfaces.0 //@ownedElements.22/@ownedPackages.1/@ownedElements.15/@superInterfaces.0 //@ownedElements.22/@ownedPackages.0/@ownedElements.7/@superInterfaces.2 //@ownedElements.22/@ownedPackages.1/@ownedElements.17/@superInterfaces.0 //@ownedElements.22/@ownedPackages.1/@ownedElements.19/@superInterfaces.0 //@ownedElements.22/@ownedPackages.3/@ownedElements.1/@superInterfaces.0 //@ownedElements.22/@ownedPackages.0/@ownedElements.11/@superInterfaces.0"/>
+ <ownedElements xsi:type="java:ClassDeclaration" name="File" proxy="true" usagesInTypeAccess="//@ownedElements.0/@ownedElements.2/@bodyDeclarations.2/@parameters.0/@type //@orphanTypes.23/@bound">
+ <superInterfaces type="//@ownedElements.22/@ownedPackages.2/@ownedElements.0"/>
+ <superInterfaces type="//@ownedElements.22/@ownedPackages.1/@ownedElements.5"/>
+ </ownedElements>
+ <ownedElements xsi:type="java:ClassDeclaration" name="PrintStream" proxy="true">
+ <bodyDeclarations xsi:type="java:MethodDeclaration" name="println" proxy="true" usages="//@ownedElements.8/@ownedElements.0/@bodyDeclarations.0/@body/@statements.0/@expression/@anonymousClassDeclaration/@bodyDeclarations.0/@body/@statements.0/@expression //@ownedElements.11/@ownedElements.0/@bodyDeclarations.1/@body/@statements.0/@expression">
+ <parameters name="arg0" proxy="true">
+ <type type="//@ownedElements.22/@ownedPackages.1/@ownedElements.7"/>
+ </parameters>
+ </bodyDeclarations>
+ <bodyDeclarations xsi:type="java:MethodDeclaration" name="printf" proxy="true" usages="//@ownedElements.21/@ownedElements.0/@bodyDeclarations.0/@body/@statements.2/@body/@statements.0/@catchClauses.0/@body/@statements.0/@expression //@ownedElements.21/@ownedElements.0/@bodyDeclarations.0/@body/@statements.3/@expression">
+ <parameters name="arg0" proxy="true">
+ <type type="//@ownedElements.22/@ownedPackages.1/@ownedElements.7"/>
+ </parameters>
+ <parameters name="arg1" proxy="true">
+ <type type="//@orphanTypes.27"/>
+ </parameters>
+ </bodyDeclarations>
+ <superInterfaces type="//@ownedElements.22/@ownedPackages.1/@ownedElements.14"/>
+ <superInterfaces type="//@ownedElements.22/@ownedPackages.2/@ownedElements.5"/>
+ <superClass type="//@ownedElements.22/@ownedPackages.2/@ownedElements.3"/>
+ </ownedElements>
+ <ownedElements xsi:type="java:ClassDeclaration" name="FilterOutputStream" proxy="true" usagesInTypeAccess="//@ownedElements.22/@ownedPackages.2/@ownedElements.2/@superClass">
+ <superClass type="//@ownedElements.22/@ownedPackages.2/@ownedElements.4"/>
+ </ownedElements>
+ <ownedElements xsi:type="java:ClassDeclaration" name="OutputStream" proxy="true" usagesInTypeAccess="//@ownedElements.22/@ownedPackages.2/@ownedElements.3/@superClass">
+ <superInterfaces type="//@ownedElements.22/@ownedPackages.2/@ownedElements.5"/>
+ <superInterfaces type="//@ownedElements.22/@ownedPackages.2/@ownedElements.6"/>
+ </ownedElements>
+ <ownedElements xsi:type="java:InterfaceDeclaration" name="Closeable" proxy="true" usagesInTypeAccess="//@ownedElements.22/@ownedPackages.2/@ownedElements.4/@superInterfaces.0 //@ownedElements.22/@ownedPackages.2/@ownedElements.2/@superInterfaces.1"/>
+ <ownedElements xsi:type="java:InterfaceDeclaration" name="Flushable" proxy="true" usagesInTypeAccess="//@ownedElements.22/@ownedPackages.2/@ownedElements.4/@superInterfaces.1"/>
+ </ownedPackages>
+ <ownedPackages name="text" proxy="true">
+ <ownedElements xsi:type="java:ClassDeclaration" name="MessageFormat" proxy="true" usagesInImports="//@compilationUnits.34/@imports.0" usagesInTypeAccess="//@ownedElements.21/@ownedElements.1/@bodyDeclarations.0/@body/@statements.0/@fragments.0/@initializer/@expression">
+ <bodyDeclarations xsi:type="java:MethodDeclaration" name="format" proxy="true" usages="//@ownedElements.21/@ownedElements.1/@bodyDeclarations.0/@body/@statements.0/@fragments.0/@initializer">
+ <parameters name="arg0" proxy="true">
+ <type type="//@ownedElements.22/@ownedPackages.1/@ownedElements.7"/>
+ </parameters>
+ <parameters name="arg1" proxy="true">
+ <type type="//@orphanTypes.27"/>
+ </parameters>
+ </bodyDeclarations>
+ <superClass type="//@ownedElements.22/@ownedPackages.3/@ownedElements.1"/>
+ </ownedElements>
+ <ownedElements xsi:type="java:ClassDeclaration" name="Format" proxy="true" usagesInTypeAccess="//@ownedElements.22/@ownedPackages.3/@ownedElements.0/@superClass">
+ <superInterfaces type="//@ownedElements.22/@ownedPackages.2/@ownedElements.0"/>
+ <superInterfaces type="//@ownedElements.22/@ownedPackages.1/@ownedElements.9"/>
+ </ownedElements>
+ </ownedPackages>
+ </ownedElements>
+ <ownedElements name="javax" proxy="true" usagesInPackageAccess="//@ownedElements.10/@ownedElements.0/@superInterfaces.0/@qualifier/@qualifier/@qualifier/@qualifier/@qualifier">
+ <ownedPackages name="swing" proxy="true" usagesInPackageAccess="//@ownedElements.10/@ownedElements.0/@superInterfaces.0/@qualifier/@qualifier/@qualifier/@qualifier">
+ <ownedPackages name="text" proxy="true" usagesInPackageAccess="//@ownedElements.10/@ownedElements.0/@superInterfaces.0/@qualifier/@qualifier/@qualifier">
+ <ownedPackages name="html" proxy="true" usagesInPackageAccess="//@ownedElements.10/@ownedElements.0/@superInterfaces.0/@qualifier/@qualifier">
+ <ownedPackages name="parser" proxy="true" usagesInPackageAccess="//@ownedElements.10/@ownedElements.0/@superInterfaces.0/@qualifier">
+ <ownedElements xsi:type="java:InterfaceDeclaration" name="DTDConstants" proxy="true" usagesInTypeAccess="//@ownedElements.10/@ownedElements.0/@superInterfaces.0"/>
+ </ownedPackages>
+ </ownedPackages>
+ </ownedPackages>
+ </ownedPackages>
+ </ownedElements>
+ <ownedElements name="unrPkg1" proxy="true" usagesInPackageAccess="//@ownedElements.20/@ownedElements.0/@superClass/@qualifier"/>
+ <orphanTypes xsi:type="java:PrimitiveTypeInt" name="int" usagesInTypeAccess="//@ownedElements.0/@ownedElements.1/@bodyDeclarations.0/@type //@ownedElements.0/@ownedElements.2/@bodyDeclarations.0/@type //@ownedElements.9/@ownedElements.0/@bodyDeclarations.0/@type //@ownedElements.9/@ownedElements.0/@bodyDeclarations.1/@returnType //@ownedElements.14/@ownedPackages.0/@ownedElements.0/@bodyDeclarations.1/@parameters.0/@type //@ownedElements.14/@ownedPackages.1/@ownedElements.0/@bodyDeclarations.0/@parameters.0/@type //@ownedElements.21/@ownedElements.0/@bodyDeclarations.0/@body/@statements.0/@type //@ownedElements.21/@ownedElements.0/@bodyDeclarations.0/@body/@statements.1/@type //@ownedElements.21/@ownedElements.1/@bodyDeclarations.1/@body/@statements.0/@type"/>
+ <orphanTypes xsi:type="java:PrimitiveTypeLong" name="long"/>
+ <orphanTypes xsi:type="java:PrimitiveTypeFloat" name="float"/>
+ <orphanTypes xsi:type="java:PrimitiveTypeDouble" name="double" usagesInTypeAccess="//@ownedElements.5/@ownedPackages.0/@ownedElements.0/@bodyDeclarations.0/@body/@statements.0/@type"/>
+ <orphanTypes xsi:type="java:PrimitiveTypeBoolean" name="boolean" usagesInTypeAccess="//@ownedElements.0/@ownedElements.1/@bodyDeclarations.2/@type"/>
+ <orphanTypes xsi:type="java:PrimitiveTypeVoid" name="void" usagesInTypeAccess="//@ownedElements.0/@ownedElements.0/@bodyDeclarations.0/@returnType //@ownedElements.0/@ownedElements.2/@bodyDeclarations.2/@returnType //@ownedElements.3/@ownedElements.0/@bodyDeclarations.1/@returnType //@ownedElements.4/@ownedElements.0/@bodyDeclarations.0/@returnType //@ownedElements.4/@ownedElements.1/@bodyDeclarations.0/@returnType //@ownedElements.4/@ownedElements.2/@bodyDeclarations.0/@returnType //@ownedElements.5/@ownedPackages.0/@ownedElements.0/@bodyDeclarations.0/@returnType //@ownedElements.7/@ownedElements.1/@bodyDeclarations.0/@returnType //@ownedElements.8/@ownedElements.0/@bodyDeclarations.0/@returnType //@ownedElements.8/@ownedElements.0/@bodyDeclarations.0/@body/@statements.0/@expression/@anonymousClassDeclaration/@bodyDeclarations.0/@returnType //@ownedElements.11/@ownedElements.0/@bodyDeclarations.1/@returnType //@ownedElements.11/@ownedElements.0/@bodyDeclarations.2/@returnType //@ownedElements.13/@ownedPackages.0/@ownedElements.0/@bodyDeclarations.1/@returnType //@ownedElements.13/@ownedPackages.1/@ownedElements.0/@bodyDeclarations.3/@returnType //@ownedElements.14/@ownedPackages.0/@ownedElements.0/@bodyDeclarations.0/@returnType //@ownedElements.14/@ownedPackages.0/@ownedElements.0/@bodyDeclarations.1/@returnType //@ownedElements.14/@ownedPackages.1/@ownedElements.0/@bodyDeclarations.0/@returnType //@ownedElements.15/@ownedPackages.0/@ownedElements.0/@bodyDeclarations.0/@returnType //@ownedElements.15/@ownedPackages.0/@ownedElements.0/@bodyDeclarations.1/@returnType //@ownedElements.16/@ownedPackages.0/@ownedElements.0/@bodyDeclarations.0/@returnType //@ownedElements.16/@ownedPackages.1/@ownedElements.0/@bodyDeclarations.0/@returnType //@ownedElements.17/@ownedElements.0/@bodyDeclarations.0/@returnType //@ownedElements.17/@ownedElements.1/@bodyDeclarations.0/@returnType //@ownedElements.18/@ownedElements.0/@bodyDeclarations.0/@returnType //@ownedElements.19/@ownedElements.0/@bodyDeclarations.0/@returnType //@ownedElements.21/@ownedElements.0/@bodyDeclarations.0/@returnType //@ownedElements.21/@ownedElements.1/@bodyDeclarations.0/@returnType //@ownedElements.21/@ownedElements.1/@bodyDeclarations.1/@returnType"/>
+ <orphanTypes xsi:type="java:PrimitiveTypeChar" name="char"/>
+ <orphanTypes xsi:type="java:PrimitiveTypeShort" name="short"/>
+ <orphanTypes xsi:type="java:PrimitiveTypeByte" name="byte"/>
+ <orphanTypes xsi:type="java:ParameterizedType" name="java.util.List&lt;java.lang.Integer>" usagesInTypeAccess="//@ownedElements.0/@ownedElements.0/@bodyDeclarations.0/@body/@statements.0/@type">
+ <type type="//@ownedElements.22/@ownedPackages.0/@ownedElements.0"/>
+ <typeArguments type="//@ownedElements.22/@ownedPackages.1/@ownedElements.3"/>
+ </orphanTypes>
+ <orphanTypes xsi:type="java:ArrayType" name="java.lang.String[]" usagesInTypeAccess="//@ownedElements.4/@ownedElements.0/@bodyDeclarations.0/@parameters.0/@type //@ownedElements.4/@ownedElements.1/@bodyDeclarations.0/@parameters.0/@type //@ownedElements.4/@ownedElements.2/@bodyDeclarations.0/@parameters.0/@type //@ownedElements.5/@ownedPackages.0/@ownedElements.0/@bodyDeclarations.0/@parameters.0/@type //@ownedElements.7/@ownedElements.1/@bodyDeclarations.0/@parameters.0/@type //@ownedElements.8/@ownedElements.0/@bodyDeclarations.0/@parameters.0/@type //@ownedElements.13/@ownedPackages.0/@ownedElements.0/@bodyDeclarations.1/@parameters.0/@type //@ownedElements.13/@ownedPackages.1/@ownedElements.0/@bodyDeclarations.3/@parameters.0/@type //@ownedElements.14/@ownedPackages.0/@ownedElements.0/@bodyDeclarations.0/@parameters.0/@type //@ownedElements.15/@ownedPackages.0/@ownedElements.0/@bodyDeclarations.0/@parameters.0/@type //@ownedElements.16/@ownedPackages.0/@ownedElements.0/@bodyDeclarations.0/@parameters.0/@type //@ownedElements.16/@ownedPackages.1/@ownedElements.0/@bodyDeclarations.0/@parameters.0/@type //@ownedElements.17/@ownedElements.0/@bodyDeclarations.0/@parameters.0/@type //@ownedElements.17/@ownedElements.1/@bodyDeclarations.0/@parameters.0/@type //@ownedElements.18/@ownedElements.0/@bodyDeclarations.0/@parameters.0/@type //@ownedElements.19/@ownedElements.0/@bodyDeclarations.0/@parameters.0/@type //@ownedElements.21/@ownedElements.0/@bodyDeclarations.0/@parameters.0/@type //@ownedElements.21/@ownedElements.1/@bodyDeclarations.0/@parameters.0/@type" dimensions="1">
+ <elementType type="//@ownedElements.22/@ownedPackages.1/@ownedElements.7"/>
+ </orphanTypes>
+ <orphanTypes xsi:type="java:ParameterizedType" name="java.util.ArrayList&lt;java.lang.String>" usagesInTypeAccess="//@ownedElements.4/@ownedElements.0/@bodyDeclarations.0/@body/@statements.0/@expression/@expression/@type">
+ <type type="//@ownedElements.22/@ownedPackages.0/@ownedElements.2"/>
+ <typeArguments type="//@ownedElements.22/@ownedPackages.1/@ownedElements.7"/>
+ </orphanTypes>
+ <orphanTypes xsi:type="java:ParameterizedType" name="java.util.ArrayList&lt;java.lang.Integer>" usagesInTypeAccess="//@ownedElements.4/@ownedElements.1/@bodyDeclarations.0/@body/@statements.0/@expression/@expression/@type">
+ <type type="//@ownedElements.22/@ownedPackages.0/@ownedElements.2"/>
+ <typeArguments type="//@ownedElements.22/@ownedPackages.1/@ownedElements.3"/>
+ </orphanTypes>
+ <orphanTypes xsi:type="java:ParameterizedType" name="java.util.ArrayList&lt;java.lang.Long>" usagesInTypeAccess="//@ownedElements.4/@ownedElements.2/@bodyDeclarations.0/@body/@statements.0/@expression/@expression/@type">
+ <type type="//@ownedElements.22/@ownedPackages.0/@ownedElements.2"/>
+ <typeArguments type="//@ownedElements.22/@ownedPackages.1/@ownedElements.10"/>
+ </orphanTypes>
+ <orphanTypes xsi:type="java:WildCardType" name="? extends java.lang.Boolean" usagesInTypeAccess="//@orphanTypes.15/@typeArguments.0" upperBound="true">
+ <bound type="//@ownedElements.22/@ownedPackages.1/@ownedElements.15"/>
+ </orphanTypes>
+ <orphanTypes xsi:type="java:ParameterizedType" name="java.util.List&lt;? extends java.lang.Boolean>" usagesInTypeAccess="//@ownedElements.11/@ownedElements.0/@typeParameters.1/@bounds.0">
+ <type type="//@ownedElements.22/@ownedPackages.0/@ownedElements.0"/>
+ <typeArguments type="//@orphanTypes.14"/>
+ </orphanTypes>
+ <orphanTypes xsi:type="java:WildCardType" name="? super java.lang.String" usagesInTypeAccess="//@orphanTypes.17/@typeArguments.1">
+ <bound type="//@ownedElements.22/@ownedPackages.1/@ownedElements.7"/>
+ </orphanTypes>
+ <orphanTypes xsi:type="java:ParameterizedType" name="java.util.Map&lt;java.lang.String,? super java.lang.String>" usagesInTypeAccess="//@ownedElements.11/@ownedElements.0/@bodyDeclarations.0/@type">
+ <type type="//@ownedElements.22/@ownedPackages.0/@ownedElements.6"/>
+ <typeArguments type="//@ownedElements.22/@ownedPackages.1/@ownedElements.7"/>
+ <typeArguments type="//@orphanTypes.16"/>
+ </orphanTypes>
+ <orphanTypes xsi:type="java:WildCardType" name="? extends T1" usagesInTypeAccess="//@orphanTypes.19/@typeArguments.0" upperBound="true">
+ <bound type="//@ownedElements.11/@ownedElements.0/@typeParameters.0"/>
+ </orphanTypes>
+ <orphanTypes xsi:type="java:ParameterizedType" name="java.util.List&lt;? extends T1>" usagesInTypeAccess="//@ownedElements.11/@ownedElements.0/@bodyDeclarations.1/@parameters.1/@type">
+ <type type="//@ownedElements.22/@ownedPackages.0/@ownedElements.0"/>
+ <typeArguments type="//@orphanTypes.18"/>
+ </orphanTypes>
+ <orphanTypes xsi:type="java:WildCardType" name="?" usagesInTypeAccess="//@orphanTypes.21/@typeArguments.0" upperBound="true"/>
+ <orphanTypes xsi:type="java:ParameterizedType" name="java.util.List&lt;?>" usagesInTypeAccess="//@ownedElements.11/@ownedElements.0/@bodyDeclarations.2/@parameters.0/@type">
+ <type type="//@ownedElements.22/@ownedPackages.0/@ownedElements.0"/>
+ <typeArguments type="//@orphanTypes.20"/>
+ </orphanTypes>
+ <orphanTypes xsi:type="java:ParameterizedType" name="java.util.HashMap&lt;R,P>" usagesInTypeAccess="//@ownedElements.12/@ownedElements.0/@bodyDeclarations.0/@parameters.0/@type">
+ <type type="//@ownedElements.22/@ownedPackages.0/@ownedElements.7"/>
+ <typeArguments type="//@ownedElements.12/@ownedElements.0/@bodyDeclarations.0/@typeParameters.0"/>
+ <typeArguments type="//@ownedElements.12/@ownedElements.0/@bodyDeclarations.0/@typeParameters.1"/>
+ </orphanTypes>
+ <orphanTypes xsi:type="java:WildCardType" name="? extends java.io.File" usagesInTypeAccess="//@orphanTypes.24/@typeArguments.0" upperBound="true">
+ <bound type="//@ownedElements.22/@ownedPackages.2/@ownedElements.1">
+ <qualifier xsi:type="java:PackageAccess" package="//@ownedElements.22/@ownedPackages.2">
+ <qualifier package="//@ownedElements.22"/>
+ </qualifier>
+ </bound>
+ </orphanTypes>
+ <orphanTypes xsi:type="java:ParameterizedType" name="java.lang.Iterable&lt;? extends java.io.File>" usagesInTypeAccess="//@orphanTypes.25/@typeArguments.1">
+ <type type="//@ownedElements.22/@ownedPackages.1/@ownedElements.0">
+ <qualifier xsi:type="java:PackageAccess" package="//@ownedElements.22/@ownedPackages.1">
+ <qualifier package="//@ownedElements.22"/>
+ </qualifier>
+ </type>
+ <typeArguments type="//@orphanTypes.23"/>
+ </orphanTypes>
+ <orphanTypes xsi:type="java:ParameterizedType" name="java.util.HashMap&lt;java.lang.String,java.lang.Iterable&lt;? extends java.io.File>>" usagesInTypeAccess="//@ownedElements.19/@ownedElements.0/@bodyDeclarations.0/@body/@statements.0/@type //@ownedElements.19/@ownedElements.0/@bodyDeclarations.0/@body/@statements.1/@expression/@rightHandSide/@type">
+ <type type="//@ownedElements.22/@ownedPackages.0/@ownedElements.7">
+ <qualifier xsi:type="java:PackageAccess" package="//@ownedElements.22/@ownedPackages.0">
+ <qualifier package="//@ownedElements.22"/>
+ </qualifier>
+ </type>
+ <typeArguments type="//@ownedElements.22/@ownedPackages.1/@ownedElements.7">
+ <qualifier xsi:type="java:PackageAccess" package="//@ownedElements.22/@ownedPackages.1">
+ <qualifier package="//@ownedElements.22"/>
+ </qualifier>
+ </typeArguments>
+ <typeArguments type="//@orphanTypes.24"/>
+ </orphanTypes>
+ <orphanTypes xsi:type="java:ArrayType" name="java.lang.Class[]" usagesInTypeAccess="//@ownedElements.22/@ownedPackages.1/@ownedElements.17/@bodyDeclarations.1/@parameters.1/@type" dimensions="1">
+ <elementType type="//@ownedElements.22/@ownedPackages.1/@ownedElements.17"/>
+ </orphanTypes>
+ <orphanTypes xsi:type="java:ArrayType" name="java.lang.Object[]" usagesInTypeAccess="//@ownedElements.22/@ownedPackages.1/@ownedPackages.0/@ownedElements.3/@bodyDeclarations.0/@parameters.1/@type //@ownedElements.22/@ownedPackages.2/@ownedElements.2/@bodyDeclarations.1/@parameters.1/@type //@ownedElements.22/@ownedPackages.3/@ownedElements.0/@bodyDeclarations.0/@parameters.1/@type" dimensions="1">
+ <elementType type="//@ownedElements.22/@ownedPackages.1/@ownedElements.16"/>
+ </orphanTypes>
+ <unresolvedItems name="com.mia.core.console.Console" proxy="true" usagesInImports="//@compilationUnits.3/@imports.0"/>
+ <unresolvedItems xsi:type="java:UnresolvedTypeDeclaration" name="Console" proxy="true" usagesInTypeAccess="//@ownedElements.1/@ownedElements.0/@bodyDeclarations.0/@type"/>
+ <unresolvedItems name="NULL_CONSOLE" proxy="true"/>
+ <unresolvedItems name="enumerations.Planet" proxy="true" usagesInImports="//@compilationUnits.10/@imports.0"/>
+ <unresolvedItems name="Planet" proxy="true"/>
+ <unresolvedItems name="URANUS" proxy="true"/>
+ <unresolvedItems name="x" proxy="true"/>
+ <unresolvedItems name="javax.lang.model.type.ArrayType" proxy="true" usagesInImports="//@compilationUnits.19/@imports.0"/>
+ <unresolvedItems xsi:type="java:UnresolvedTypeDeclaration" name="ArrayType" proxy="true" usagesInTypeAccess="//@ownedElements.11/@ownedElements.1/@bodyDeclarations.2/@typeParameters.0/@bounds.1"/>
+ <unresolvedItems xsi:type="java:UnresolvedTypeDeclaration" name="Bob" proxy="true" usagesInTypeAccess="//@ownedElements.20/@ownedElements.0/@superClass //@ownedElements.20/@ownedElements.0/@bodyDeclarations.0/@body/@statements.0/@type"/>
+ <unresolvedItems xsi:type="java:UnresolvedTypeDeclaration" name="Bobette" proxy="true" usagesInTypeAccess="//@ownedElements.20/@ownedElements.0/@bodyDeclarations.0/@returnType //@ownedElements.20/@ownedElements.0/@bodyDeclarations.0/@body/@statements.1/@type"/>
+ <unresolvedItems xsi:type="java:UnresolvedTypeDeclaration" name="BobMan" proxy="true" usagesInTypeAccess="//@ownedElements.20/@ownedElements.0/@bodyDeclarations.0/@parameters.0/@type"/>
+ <unresolvedItems xsi:type="java:UnresolvedTypeDeclaration" name="SuperBob" proxy="true" usagesInTypeAccess="//@ownedElements.20/@ownedElements.0/@bodyDeclarations.0/@body/@statements.0/@fragments.0/@initializer/@type"/>
+ <unresolvedItems xsi:type="java:UnresolvedMethodDeclaration" name="new SuperBob()" proxy="true" usages="//@ownedElements.20/@ownedElements.0/@bodyDeclarations.0/@body/@statements.0/@fragments.0/@initializer"/>
+ <unresolvedItems name="b" proxy="true"/>
+ <unresolvedItems xsi:type="java:UnresolvedMethodDeclaration" name="getBobette" proxy="true" usages="//@ownedElements.20/@ownedElements.0/@bodyDeclarations.0/@body/@statements.1/@fragments.0/@initializer"/>
+ <unresolvedItems name="b2" proxy="true"/>
+ <unresolvedItems xsi:type="java:UnresolvedTypeDeclaration" name="BobException" proxy="true" usagesInTypeAccess="//@ownedElements.20/@ownedElements.0/@bodyDeclarations.0/@body/@statements.2/@thenStatement/@statements.0/@expression/@type"/>
+ <unresolvedItems xsi:type="java:UnresolvedMethodDeclaration" name="new BobException()" proxy="true" usages="//@ownedElements.20/@ownedElements.0/@bodyDeclarations.0/@body/@statements.2/@thenStatement/@statements.0/@expression"/>
+ <compilationUnits name="MyAnnotatedClass.java" originalFilePath="D:\eclipse 3.7M2\junit-workspace\org.eclipse.gmt.modisco.java.discoverer.tests_test001\src\annotations\MyAnnotatedClass.java" commentList="//@compilationUnits.0/@comments.0" package="//@ownedElements.0" types="//@ownedElements.0/@ownedElements.0">
+ <comments xsi:type="java:Javadoc" originalCompilationUnit="//@compilationUnits.0" content="/** &#xA; * Copyright (c) 2009 Mia-Software.&#xA; * All rights reserved. This program and the accompanying materials&#xA; * are made available under the terms of the Eclipse Public License v1.0&#xA; * which accompanies this distribution, and is available at&#xA; * http://www.eclipse.org/legal/epl-v10.html&#xA; * Contributors:&#xA; * Gregoire DUPE (Mia-Software)&#xA; * Romain Dervaux (Mia-Software)&#xA; */&#xA;" prefixOfParent="true"/>
+ <imports originalCompilationUnit="//@compilationUnits.0" importedElement="//@ownedElements.22/@ownedPackages.0/@ownedElements.0"/>
+ </compilationUnits>
+ <compilationUnits name="MyAnnotation.java" originalFilePath="D:\eclipse 3.7M2\junit-workspace\org.eclipse.gmt.modisco.java.discoverer.tests_test001\src\annotations\MyAnnotation.java" commentList="//@compilationUnits.1/@comments.0" package="//@ownedElements.0" types="//@ownedElements.0/@ownedElements.1">
+ <comments xsi:type="java:Javadoc" originalCompilationUnit="//@compilationUnits.1" content="/** &#xA; * Copyright (c) 2009 Mia-Software.&#xA; * All rights reserved. This program and the accompanying materials&#xA; * are made available under the terms of the Eclipse Public License v1.0&#xA; * which accompanies this distribution, and is available at&#xA; * http://www.eclipse.org/legal/epl-v10.html&#xA; * Contributors:&#xA; * Fabien Giquel (Mia-Software)&#xA; */&#xA;" prefixOfParent="true"/>
+ </compilationUnits>
+ <compilationUnits name="MyAnnotatedClass2.java" originalFilePath="D:\eclipse 3.7M2\junit-workspace\org.eclipse.gmt.modisco.java.discoverer.tests_test001\src\annotations\MyAnnotatedClass2.java" commentList="//@compilationUnits.2/@comments.0" package="//@ownedElements.0" types="//@ownedElements.0/@ownedElements.2">
+ <comments xsi:type="java:Javadoc" originalCompilationUnit="//@compilationUnits.2" content="/** &#xA; * Copyright (c) 2009 Mia-Software.&#xA; * All rights reserved. This program and the accompanying materials&#xA; * are made available under the terms of the Eclipse Public License v1.0&#xA; * which accompanies this distribution, and is available at&#xA; * http://www.eclipse.org/legal/epl-v10.html&#xA; * Contributors:&#xA; * Fabien Giquel (Mia-Software)&#xA; */&#xA;" prefixOfParent="true"/>
+ <imports originalCompilationUnit="//@compilationUnits.2" importedElement="//@ownedElements.22/@ownedPackages.0/@ownedElements.2"/>
+ <imports originalCompilationUnit="//@compilationUnits.2" importedElement="//@ownedElements.22/@ownedPackages.0/@ownedElements.0"/>
+ <imports originalCompilationUnit="//@compilationUnits.2" importedElement="//@ownedElements.22/@ownedPackages.0/@ownedElements.6"/>
+ </compilationUnits>
+ <compilationUnits name="Bug325108.java" originalFilePath="D:\eclipse 3.7M2\junit-workspace\org.eclipse.gmt.modisco.java.discoverer.tests_test001\src\bug325108\Bug325108.java" commentList="//@ownedElements.1/@ownedElements.0/@bodyDeclarations.0/@fragments.0/@initializer/@comments.1 //@ownedElements.1/@ownedElements.0/@bodyDeclarations.0/@fragments.0/@initializer/@comments.0" package="//@ownedElements.1" types="//@ownedElements.1/@ownedElements.0">
+ <imports originalCompilationUnit="//@compilationUnits.3" importedElement="//@unresolvedItems.0"/>
+ </compilationUnits>
+ <compilationUnits name="Iface1.java" originalFilePath="D:\eclipse 3.7M2\junit-workspace\org.eclipse.gmt.modisco.java.discoverer.tests_test001\src\classorifaceproxy\p1\Iface1.java" commentList="//@compilationUnits.4/@comments.0" package="//@ownedElements.2/@ownedPackages.0" types="//@ownedElements.2/@ownedPackages.0/@ownedElements.0">
+ <comments xsi:type="java:Javadoc" originalCompilationUnit="//@compilationUnits.4" content="/** &#xA; * Copyright (c) 2009 Mia-Software.&#xA; * All rights reserved. This program and the accompanying materials&#xA; * are made available under the terms of the Eclipse Public License v1.0&#xA; * which accompanies this distribution, and is available at&#xA; * http://www.eclipse.org/legal/epl-v10.html&#xA; * Contributors:&#xA; * Gregoire DUPE (Mia-Software)&#xA; * Romain Dervaux (Mia-Software)&#xA; */&#xA;" prefixOfParent="true"/>
+ <imports originalCompilationUnit="//@compilationUnits.4" importedElement="//@ownedElements.2/@ownedPackages.1/@ownedElements.0"/>
+ </compilationUnits>
+ <compilationUnits name="Iface2.java" originalFilePath="D:\eclipse 3.7M2\junit-workspace\org.eclipse.gmt.modisco.java.discoverer.tests_test001\src\classorifaceproxy\p2\Iface2.java" commentList="//@compilationUnits.5/@comments.0" package="//@ownedElements.2/@ownedPackages.1" types="//@ownedElements.2/@ownedPackages.1/@ownedElements.0">
+ <comments xsi:type="java:Javadoc" originalCompilationUnit="//@compilationUnits.5" content="/** &#xA; * Copyright (c) 2009 Mia-Software.&#xA; * All rights reserved. This program and the accompanying materials&#xA; * are made available under the terms of the Eclipse Public License v1.0&#xA; * which accompanies this distribution, and is available at&#xA; * http://www.eclipse.org/legal/epl-v10.html&#xA; * Contributors:&#xA; * Gregoire DUPE (Mia-Software)&#xA; * Romain Dervaux (Mia-Software)&#xA; */&#xA;" prefixOfParent="true"/>
+ <imports originalCompilationUnit="//@compilationUnits.5" importedElement="//@ownedElements.2/@ownedPackages.0/@ownedElements.0"/>
+ </compilationUnits>
+ <compilationUnits name="Comments.java" originalFilePath="D:\eclipse 3.7M2\junit-workspace\org.eclipse.gmt.modisco.java.discoverer.tests_test001\src\comments\Comments.java" commentList="//@compilationUnits.6/@comments.0 //@ownedElements.3/@ownedElements.0/@comments.0 //@ownedElements.3/@ownedElements.0/@bodyDeclarations.0/@comments.0 //@ownedElements.3/@ownedElements.0/@bodyDeclarations.1/@comments.0 //@ownedElements.3/@ownedElements.0/@bodyDeclarations.1/@body/@comments.0 //@ownedElements.3/@ownedElements.0/@comments.1" package="//@ownedElements.3" types="//@ownedElements.3/@ownedElements.0">
+ <comments xsi:type="java:Javadoc" originalCompilationUnit="//@compilationUnits.6" content="/** &#xA; * Copyright (c) 2009 Mia-Software.&#xA; * All rights reserved. This program and the accompanying materials&#xA; * are made available under the terms of the Eclipse Public License v1.0&#xA; * which accompanies this distribution, and is available at&#xA; * http://www.eclipse.org/legal/epl-v10.html&#xA; * Contributors:&#xA; * Gregoire DUPE (Mia-Software)&#xA; * Romain Dervaux (Mia-Software)&#xA; */&#xA;" prefixOfParent="true"/>
+ </compilationUnits>
+ <compilationUnits name="DuplicateProxy1.java" originalFilePath="D:\eclipse 3.7M2\junit-workspace\org.eclipse.gmt.modisco.java.discoverer.tests_test001\src\duplicateproxy\DuplicateProxy1.java" commentList="//@compilationUnits.7/@comments.0" package="//@ownedElements.4" types="//@ownedElements.4/@ownedElements.0">
+ <comments xsi:type="java:Javadoc" originalCompilationUnit="//@compilationUnits.7" content="/** &#xA; * Copyright (c) 2009 Mia-Software.&#xA; * All rights reserved. This program and the accompanying materials&#xA; * are made available under the terms of the Eclipse Public License v1.0&#xA; * which accompanies this distribution, and is available at&#xA; * http://www.eclipse.org/legal/epl-v10.html&#xA; * Contributors:&#xA; * Gregoire DUPE (Mia-Software)&#xA; * Romain Dervaux (Mia-Software)&#xA; */&#xA;" prefixOfParent="true"/>
+ <imports originalCompilationUnit="//@compilationUnits.7" importedElement="//@ownedElements.22/@ownedPackages.0/@ownedElements.2"/>
+ </compilationUnits>
+ <compilationUnits name="DuplicateProxy2.java" originalFilePath="D:\eclipse 3.7M2\junit-workspace\org.eclipse.gmt.modisco.java.discoverer.tests_test001\src\duplicateproxy\DuplicateProxy2.java" commentList="//@compilationUnits.8/@comments.0" package="//@ownedElements.4" types="//@ownedElements.4/@ownedElements.1">
+ <comments xsi:type="java:Javadoc" originalCompilationUnit="//@compilationUnits.8" content="/** &#xA; * Copyright (c) 2009 Mia-Software.&#xA; * All rights reserved. This program and the accompanying materials&#xA; * are made available under the terms of the Eclipse Public License v1.0&#xA; * which accompanies this distribution, and is available at&#xA; * http://www.eclipse.org/legal/epl-v10.html&#xA; * Contributors:&#xA; * Gregoire DUPE (Mia-Software)&#xA; * Romain Dervaux (Mia-Software)&#xA; */&#xA;" prefixOfParent="true"/>
+ <imports originalCompilationUnit="//@compilationUnits.8" importedElement="//@ownedElements.22/@ownedPackages.0/@ownedElements.2"/>
+ </compilationUnits>
+ <compilationUnits name="DuplicateProxy3.java" originalFilePath="D:\eclipse 3.7M2\junit-workspace\org.eclipse.gmt.modisco.java.discoverer.tests_test001\src\duplicateproxy\DuplicateProxy3.java" commentList="//@compilationUnits.9/@comments.0" package="//@ownedElements.4" types="//@ownedElements.4/@ownedElements.2">
+ <comments xsi:type="java:Javadoc" originalCompilationUnit="//@compilationUnits.9" content="/** &#xA; * Copyright (c) 2009 Mia-Software.&#xA; * All rights reserved. This program and the accompanying materials&#xA; * are made available under the terms of the Eclipse Public License v1.0&#xA; * which accompanies this distribution, and is available at&#xA; * http://www.eclipse.org/legal/epl-v10.html&#xA; * Contributors:&#xA; * Gregoire DUPE (Mia-Software)&#xA; * Romain Dervaux (Mia-Software)&#xA; */&#xA;" prefixOfParent="true"/>
+ <imports originalCompilationUnit="//@compilationUnits.9" importedElement="//@ownedElements.22/@ownedPackages.0/@ownedElements.2"/>
+ </compilationUnits>
+ <compilationUnits name="EnumUse.java" originalFilePath="D:\eclipse 3.7M2\junit-workspace\org.eclipse.gmt.modisco.java.discoverer.tests_test001\src\enumerations\p1\EnumUse.java" commentList="//@compilationUnits.10/@comments.0 //@ownedElements.5/@ownedPackages.0/@ownedElements.0/@bodyDeclarations.0/@comments.0" package="//@ownedElements.5/@ownedPackages.0" types="//@ownedElements.5/@ownedPackages.0/@ownedElements.0">
+ <comments xsi:type="java:Javadoc" originalCompilationUnit="//@compilationUnits.10" content="/** &#xA; * Copyright (c) 2009 Mia-Software.&#xA; * All rights reserved. This program and the accompanying materials&#xA; * are made available under the terms of the Eclipse Public License v1.0&#xA; * which accompanies this distribution, and is available at&#xA; * http://www.eclipse.org/legal/epl-v10.html&#xA; * Contributors:&#xA; * Gregoire DUPE (Mia-Software)&#xA; * Romain Dervaux (Mia-Software)&#xA; */&#xA;" prefixOfParent="true"/>
+ <imports originalCompilationUnit="//@compilationUnits.10" importedElement="//@unresolvedItems.3"/>
+ </compilationUnits>
+ <compilationUnits name="MyEnumeration.java" originalFilePath="D:\eclipse 3.7M2\junit-workspace\org.eclipse.gmt.modisco.java.discoverer.tests_test001\src\enumerations\p1\MyEnumeration.java" commentList="//@compilationUnits.11/@comments.0" package="//@ownedElements.5/@ownedPackages.0" types="//@ownedElements.5/@ownedPackages.0/@ownedElements.1">
+ <comments xsi:type="java:Javadoc" originalCompilationUnit="//@compilationUnits.11" content="/** &#xA; * Copyright (c) 2009 Mia-Software.&#xA; * All rights reserved. This program and the accompanying materials&#xA; * are made available under the terms of the Eclipse Public License v1.0&#xA; * which accompanies this distribution, and is available at&#xA; * http://www.eclipse.org/legal/epl-v10.html&#xA; * Contributors:&#xA; * Fabien Giquel (Mia-Software)&#xA; */&#xA;" prefixOfParent="true"/>
+ <imports originalCompilationUnit="//@compilationUnits.11" importedElement="//@ownedElements.22/@ownedPackages.0"/>
+ </compilationUnits>
+ <compilationUnits name="InitializerTest.java" originalFilePath="D:\eclipse 3.7M2\junit-workspace\org.eclipse.gmt.modisco.java.discoverer.tests_test001\src\initializer\InitializerTest.java" commentList="//@compilationUnits.12/@comments.0" package="//@ownedElements.6" types="//@ownedElements.6/@ownedElements.0">
+ <comments xsi:type="java:Javadoc" originalCompilationUnit="//@compilationUnits.12" content="/** &#xA; * Copyright (c) 2009 Mia-Software.&#xA; * All rights reserved. This program and the accompanying materials&#xA; * are made available under the terms of the Eclipse Public License v1.0&#xA; * which accompanies this distribution, and is available at&#xA; * http://www.eclipse.org/legal/epl-v10.html&#xA; * Contributors:&#xA; * Gregoire DUPE (Mia-Software)&#xA; * Romain Dervaux (Mia-Software)&#xA; */&#xA;" prefixOfParent="true"/>
+ </compilationUnits>
+ <compilationUnits name="InnerClass.java" originalFilePath="D:\eclipse 3.7M2\junit-workspace\org.eclipse.gmt.modisco.java.discoverer.tests_test001\src\innerclass\InnerClass.java" commentList="//@compilationUnits.13/@comments.0" package="//@ownedElements.7" types="//@ownedElements.7/@ownedElements.0">
+ <comments xsi:type="java:Javadoc" originalCompilationUnit="//@compilationUnits.13" content="/** &#xA; * Copyright (c) 2009 Mia-Software.&#xA; * All rights reserved. This program and the accompanying materials&#xA; * are made available under the terms of the Eclipse Public License v1.0&#xA; * which accompanies this distribution, and is available at&#xA; * http://www.eclipse.org/legal/epl-v10.html&#xA; * Contributors:&#xA; * Gregoire DUPE (Mia-Software)&#xA; * Romain Dervaux (Mia-Software)&#xA; */&#xA;" prefixOfParent="true"/>
+ </compilationUnits>
+ <compilationUnits name="InnerClassB.java" originalFilePath="D:\eclipse 3.7M2\junit-workspace\org.eclipse.gmt.modisco.java.discoverer.tests_test001\src\innerclass\InnerClassB.java" commentList="//@compilationUnits.14/@comments.0" package="//@ownedElements.7" types="//@ownedElements.7/@ownedElements.1">
+ <comments xsi:type="java:Javadoc" originalCompilationUnit="//@compilationUnits.14" content="/** &#xA; * Copyright (c) 2009 Mia-Software.&#xA; * All rights reserved. This program and the accompanying materials&#xA; * are made available under the terms of the Eclipse Public License v1.0&#xA; * which accompanies this distribution, and is available at&#xA; * http://www.eclipse.org/legal/epl-v10.html&#xA; * Contributors:&#xA; * Gregoire DUPE (Mia-Software)&#xA; * Romain Dervaux (Mia-Software)&#xA; */&#xA;" prefixOfParent="true"/>
+ <imports originalCompilationUnit="//@compilationUnits.14" importedElement="//@ownedElements.7/@ownedElements.0/@bodyDeclarations.0"/>
+ <imports originalCompilationUnit="//@compilationUnits.14" importedElement="//@ownedElements.7/@ownedElements.0/@bodyDeclarations.0/@bodyDeclarations.0"/>
+ </compilationUnits>
+ <compilationUnits name="AnonymousClass.java" originalFilePath="D:\eclipse 3.7M2\junit-workspace\org.eclipse.gmt.modisco.java.discoverer.tests_test001\src\methodefromanonymousclassdeclaration\AnonymousClass.java" commentList="//@compilationUnits.15/@comments.0" package="//@ownedElements.8" types="//@ownedElements.8/@ownedElements.0">
+ <comments xsi:type="java:Javadoc" originalCompilationUnit="//@compilationUnits.15" content="/** &#xA; * Copyright (c) 2009 Mia-Software.&#xA; * All rights reserved. This program and the accompanying materials&#xA; * are made available under the terms of the Eclipse Public License v1.0&#xA; * which accompanies this distribution, and is available at&#xA; * http://www.eclipse.org/legal/epl-v10.html&#xA; * Contributors:&#xA; * Gregoire DUPE (Mia-Software)&#xA; * Romain Dervaux (Mia-Software)&#xA; */&#xA;" prefixOfParent="true"/>
+ </compilationUnits>
+ <compilationUnits name="Modifiers.java" originalFilePath="D:\eclipse 3.7M2\junit-workspace\org.eclipse.gmt.modisco.java.discoverer.tests_test001\src\modifiers\Modifiers.java" commentList="//@compilationUnits.16/@comments.0" package="//@ownedElements.9" types="//@ownedElements.9/@ownedElements.0">
+ <comments xsi:type="java:Javadoc" originalCompilationUnit="//@compilationUnits.16" content="/** &#xA; * Copyright (c) 2009 Mia-Software.&#xA; * All rights reserved. This program and the accompanying materials&#xA; * are made available under the terms of the Eclipse Public License v1.0&#xA; * which accompanies this distribution, and is available at&#xA; * http://www.eclipse.org/legal/epl-v10.html&#xA; * Contributors:&#xA; * Gregoire DUPE (Mia-Software)&#xA; * Romain Dervaux (Mia-Software)&#xA; */&#xA;" prefixOfParent="true"/>
+ </compilationUnits>
+ <compilationUnits name="PackageAccess.java" originalFilePath="D:\eclipse 3.7M2\junit-workspace\org.eclipse.gmt.modisco.java.discoverer.tests_test001\src\packageaccess\PackageAccess.java" commentList="//@compilationUnits.17/@comments.0" package="//@ownedElements.10" types="//@ownedElements.10/@ownedElements.0">
+ <comments xsi:type="java:Javadoc" originalCompilationUnit="//@compilationUnits.17" content="/** &#xA; * Copyright (c) 2009 Mia-Software.&#xA; * All rights reserved. This program and the accompanying materials&#xA; * are made available under the terms of the Eclipse Public License v1.0&#xA; * which accompanies this distribution, and is available at&#xA; * http://www.eclipse.org/legal/epl-v10.html&#xA; * Contributors:&#xA; * Gregoire DUPE (Mia-Software)&#xA; * Romain Dervaux (Mia-Software)&#xA; */&#xA;" prefixOfParent="true"/>
+ </compilationUnits>
+ <compilationUnits name="ParameterizedType2.java" originalFilePath="D:\eclipse 3.7M2\junit-workspace\org.eclipse.gmt.modisco.java.discoverer.tests_test001\src\parameterizedtype\ParameterizedType2.java" commentList="//@compilationUnits.18/@comments.0" package="//@ownedElements.11" types="//@ownedElements.11/@ownedElements.0">
+ <comments xsi:type="java:Javadoc" originalCompilationUnit="//@compilationUnits.18" content="/** &#xA; * Copyright (c) 2009 Mia-Software.&#xA; * All rights reserved. This program and the accompanying materials&#xA; * are made available under the terms of the Eclipse Public License v1.0&#xA; * which accompanies this distribution, and is available at&#xA; * http://www.eclipse.org/legal/epl-v10.html&#xA; * Contributors:&#xA; * Fabien Giquel (Mia-Software)&#xA; */&#xA;" prefixOfParent="true"/>
+ <imports originalCompilationUnit="//@compilationUnits.18" importedElement="//@ownedElements.22/@ownedPackages.0/@ownedElements.2"/>
+ <imports originalCompilationUnit="//@compilationUnits.18" importedElement="//@ownedElements.22/@ownedPackages.0/@ownedElements.0"/>
+ <imports originalCompilationUnit="//@compilationUnits.18" importedElement="//@ownedElements.22/@ownedPackages.0/@ownedElements.6"/>
+ </compilationUnits>
+ <compilationUnits name="ParameterizedType.java" originalFilePath="D:\eclipse 3.7M2\junit-workspace\org.eclipse.gmt.modisco.java.discoverer.tests_test001\src\parameterizedtype\ParameterizedType.java" commentList="//@compilationUnits.19/@comments.0" package="//@ownedElements.11" types="//@ownedElements.11/@ownedElements.1">
+ <comments xsi:type="java:Javadoc" originalCompilationUnit="//@compilationUnits.19" content="/** &#xA; * Copyright (c) 2009 Mia-Software.&#xA; * All rights reserved. This program and the accompanying materials&#xA; * are made available under the terms of the Eclipse Public License v1.0&#xA; * which accompanies this distribution, and is available at&#xA; * http://www.eclipse.org/legal/epl-v10.html&#xA; * Contributors:&#xA; * Gregoire DUPE (Mia-Software)&#xA; * Romain Dervaux (Mia-Software)&#xA; */&#xA;" prefixOfParent="true"/>
+ <imports originalCompilationUnit="//@compilationUnits.19" importedElement="//@unresolvedItems.7"/>
+ </compilationUnits>
+ <compilationUnits name="Class1.java" originalFilePath="D:\eclipse 3.7M2\junit-workspace\org.eclipse.gmt.modisco.java.discoverer.tests_test001\src\parameterizedtypeinmethoddecl\Class1.java" commentList="//@compilationUnits.20/@comments.0" package="//@ownedElements.12" types="//@ownedElements.12/@ownedElements.0">
+ <comments xsi:type="java:Javadoc" originalCompilationUnit="//@compilationUnits.20" content="/** &#xA; * Copyright (c) 2009 Mia-Software.&#xA; * All rights reserved. This program and the accompanying materials&#xA; * are made available under the terms of the Eclipse Public License v1.0&#xA; * which accompanies this distribution, and is available at&#xA; * http://www.eclipse.org/legal/epl-v10.html&#xA; * Contributors:&#xA; * Gregoire DUPE (Mia-Software)&#xA; * Romain Dervaux (Mia-Software)&#xA; */&#xA;" prefixOfParent="true"/>
+ <imports originalCompilationUnit="//@compilationUnits.20" importedElement="//@ownedElements.22/@ownedPackages.0/@ownedElements.7"/>
+ </compilationUnits>
+ <compilationUnits name="PFClass1.java" originalFilePath="D:\eclipse 3.7M2\junit-workspace\org.eclipse.gmt.modisco.java.discoverer.tests_test001\src\proxyField\p1\PFClass1.java" commentList="//@compilationUnits.21/@comments.0" package="//@ownedElements.13/@ownedPackages.0" types="//@ownedElements.13/@ownedPackages.0/@ownedElements.0">
+ <comments xsi:type="java:Javadoc" originalCompilationUnit="//@compilationUnits.21" content="/** &#xA; * Copyright (c) 2009 Mia-Software.&#xA; * All rights reserved. This program and the accompanying materials&#xA; * are made available under the terms of the Eclipse Public License v1.0&#xA; * which accompanies this distribution, and is available at&#xA; * http://www.eclipse.org/legal/epl-v10.html&#xA; * Contributors:&#xA; * Gregoire DUPE (Mia-Software)&#xA; * Romain Dervaux (Mia-Software)&#xA; */&#xA;" prefixOfParent="true"/>
+ <imports originalCompilationUnit="//@compilationUnits.21" importedElement="//@ownedElements.13/@ownedPackages.1/@ownedElements.0"/>
+ </compilationUnits>
+ <compilationUnits name="PFClass2.java" originalFilePath="D:\eclipse 3.7M2\junit-workspace\org.eclipse.gmt.modisco.java.discoverer.tests_test001\src\proxyField\p2\PFClass2.java" commentList="//@compilationUnits.22/@comments.0" package="//@ownedElements.13/@ownedPackages.1" types="//@ownedElements.13/@ownedPackages.1/@ownedElements.0">
+ <comments xsi:type="java:Javadoc" originalCompilationUnit="//@compilationUnits.22" content="/** &#xA; * Copyright (c) 2009 Mia-Software.&#xA; * All rights reserved. This program and the accompanying materials&#xA; * are made available under the terms of the Eclipse Public License v1.0&#xA; * which accompanies this distribution, and is available at&#xA; * http://www.eclipse.org/legal/epl-v10.html&#xA; * Contributors:&#xA; * Gregoire DUPE (Mia-Software)&#xA; * Romain Dervaux (Mia-Software)&#xA; */&#xA;" prefixOfParent="true"/>
+ <imports originalCompilationUnit="//@compilationUnits.22" importedElement="//@ownedElements.13/@ownedPackages.0/@ownedElements.0"/>
+ </compilationUnits>
+ <compilationUnits name="ProxyParameters1.java" originalFilePath="D:\eclipse 3.7M2\junit-workspace\org.eclipse.gmt.modisco.java.discoverer.tests_test001\src\proxyparameters\p1\ProxyParameters1.java" commentList="//@compilationUnits.23/@comments.0" package="//@ownedElements.14/@ownedPackages.0" types="//@ownedElements.14/@ownedPackages.0/@ownedElements.0">
+ <comments xsi:type="java:Javadoc" originalCompilationUnit="//@compilationUnits.23" content="/** &#xA; * Copyright (c) 2009 Mia-Software.&#xA; * All rights reserved. This program and the accompanying materials&#xA; * are made available under the terms of the Eclipse Public License v1.0&#xA; * which accompanies this distribution, and is available at&#xA; * http://www.eclipse.org/legal/epl-v10.html&#xA; * Contributors:&#xA; * Gregoire DUPE (Mia-Software)&#xA; * Romain Dervaux (Mia-Software)&#xA; */&#xA;" prefixOfParent="true"/>
+ <imports originalCompilationUnit="//@compilationUnits.23" importedElement="//@ownedElements.14/@ownedPackages.1/@ownedElements.0"/>
+ </compilationUnits>
+ <compilationUnits name="ProxyParameters2.java" originalFilePath="D:\eclipse 3.7M2\junit-workspace\org.eclipse.gmt.modisco.java.discoverer.tests_test001\src\proxyparameters\p2\ProxyParameters2.java" commentList="//@compilationUnits.24/@comments.0" package="//@ownedElements.14/@ownedPackages.1" types="//@ownedElements.14/@ownedPackages.1/@ownedElements.0">
+ <comments xsi:type="java:Javadoc" originalCompilationUnit="//@compilationUnits.24" content="/** &#xA; * Copyright (c) 2009 Mia-Software.&#xA; * All rights reserved. This program and the accompanying materials&#xA; * are made available under the terms of the Eclipse Public License v1.0&#xA; * which accompanies this distribution, and is available at&#xA; * http://www.eclipse.org/legal/epl-v10.html&#xA; * Contributors:&#xA; * Gregoire DUPE (Mia-Software)&#xA; * Romain Dervaux (Mia-Software)&#xA; */&#xA;" prefixOfParent="true"/>
+ </compilationUnits>
+ <compilationUnits name="ResolveBindind1.java" originalFilePath="D:\eclipse 3.7M2\junit-workspace\org.eclipse.gmt.modisco.java.discoverer.tests_test001\src\resolvebinding\p1\ResolveBindind1.java" commentList="//@compilationUnits.25/@comments.0 //@ownedElements.15/@ownedPackages.0/@ownedElements.0/@bodyDeclarations.0/@body/@statements.0/@comments.0" package="//@ownedElements.15/@ownedPackages.0" types="//@ownedElements.15/@ownedPackages.0/@ownedElements.0">
+ <comments xsi:type="java:Javadoc" originalCompilationUnit="//@compilationUnits.25" content="/** &#xA; * Copyright (c) 2009 Mia-Software.&#xA; * All rights reserved. This program and the accompanying materials&#xA; * are made available under the terms of the Eclipse Public License v1.0&#xA; * which accompanies this distribution, and is available at&#xA; * http://www.eclipse.org/legal/epl-v10.html&#xA; * Contributors:&#xA; * Gregoire DUPE (Mia-Software)&#xA; * Romain Dervaux (Mia-Software)&#xA; */&#xA;" prefixOfParent="true"/>
+ </compilationUnits>
+ <compilationUnits name="Class1.java" originalFilePath="D:\eclipse 3.7M2\junit-workspace\org.eclipse.gmt.modisco.java.discoverer.tests_test001\src\test001\p1\Class1.java" commentList="//@compilationUnits.26/@comments.0" package="//@ownedElements.16/@ownedPackages.0" types="//@ownedElements.16/@ownedPackages.0/@ownedElements.0">
+ <comments xsi:type="java:Javadoc" originalCompilationUnit="//@compilationUnits.26" content="/** &#xA; * Copyright (c) 2009 Mia-Software.&#xA; * All rights reserved. This program and the accompanying materials&#xA; * are made available under the terms of the Eclipse Public License v1.0&#xA; * which accompanies this distribution, and is available at&#xA; * http://www.eclipse.org/legal/epl-v10.html&#xA; * Contributors:&#xA; * Gregoire DUPE (Mia-Software)&#xA; * Romain Dervaux (Mia-Software)&#xA; */&#xA;" prefixOfParent="true"/>
+ <imports originalCompilationUnit="//@compilationUnits.26" importedElement="//@ownedElements.16/@ownedPackages.1/@ownedElements.0"/>
+ </compilationUnits>
+ <compilationUnits name="Class2.java" originalFilePath="D:\eclipse 3.7M2\junit-workspace\org.eclipse.gmt.modisco.java.discoverer.tests_test001\src\test001\p2\Class2.java" commentList="//@compilationUnits.27/@comments.0" package="//@ownedElements.16/@ownedPackages.1" types="//@ownedElements.16/@ownedPackages.1/@ownedElements.0">
+ <comments xsi:type="java:Javadoc" originalCompilationUnit="//@compilationUnits.27" content="/** &#xA; * Copyright (c) 2009 Mia-Software.&#xA; * All rights reserved. This program and the accompanying materials&#xA; * are made available under the terms of the Eclipse Public License v1.0&#xA; * which accompanies this distribution, and is available at&#xA; * http://www.eclipse.org/legal/epl-v10.html&#xA; * Contributors:&#xA; * Gregoire DUPE (Mia-Software)&#xA; * Romain Dervaux (Mia-Software)&#xA; */&#xA;" prefixOfParent="true"/>
+ <imports originalCompilationUnit="//@compilationUnits.27" importedElement="//@ownedElements.16/@ownedPackages.0/@ownedElements.0"/>
+ </compilationUnits>
+ <compilationUnits name="Class2.java" originalFilePath="D:\eclipse 3.7M2\junit-workspace\org.eclipse.gmt.modisco.java.discoverer.tests_test001\src\test002\Class2.java" commentList="//@compilationUnits.28/@comments.0" package="//@ownedElements.17" types="//@ownedElements.17/@ownedElements.0">
+ <comments xsi:type="java:Javadoc" originalCompilationUnit="//@compilationUnits.28" content="/** &#xA; * Copyright (c) 2009 Mia-Software.&#xA; * All rights reserved. This program and the accompanying materials&#xA; * are made available under the terms of the Eclipse Public License v1.0&#xA; * which accompanies this distribution, and is available at&#xA; * http://www.eclipse.org/legal/epl-v10.html&#xA; * Contributors:&#xA; * Gregoire DUPE (Mia-Software)&#xA; * Romain Dervaux (Mia-Software)&#xA; */&#xA;" prefixOfParent="true"/>
+ <imports originalCompilationUnit="//@compilationUnits.28" importedElement="//@ownedElements.17/@ownedElements.1/@bodyDeclarations.1"/>
+ </compilationUnits>
+ <compilationUnits name="Class1.java" originalFilePath="D:\eclipse 3.7M2\junit-workspace\org.eclipse.gmt.modisco.java.discoverer.tests_test001\src\test002\Class1.java" commentList="//@compilationUnits.29/@comments.0" package="//@ownedElements.17" types="//@ownedElements.17/@ownedElements.1">
+ <comments xsi:type="java:Javadoc" originalCompilationUnit="//@compilationUnits.29" content="/** &#xA; * Copyright (c) 2009 Mia-Software.&#xA; * All rights reserved. This program and the accompanying materials&#xA; * are made available under the terms of the Eclipse Public License v1.0&#xA; * which accompanies this distribution, and is available at&#xA; * http://www.eclipse.org/legal/epl-v10.html&#xA; * Contributors:&#xA; * Gregoire DUPE (Mia-Software)&#xA; * Romain Dervaux (Mia-Software)&#xA; */&#xA;" prefixOfParent="true"/>
+ <imports originalCompilationUnit="//@compilationUnits.29" importedElement="//@ownedElements.17/@ownedElements.0/@bodyDeclarations.1"/>
+ </compilationUnits>
+ <compilationUnits name="Test003.java" originalFilePath="D:\eclipse 3.7M2\junit-workspace\org.eclipse.gmt.modisco.java.discoverer.tests_test001\src\test003\Test003.java" commentList="//@compilationUnits.30/@comments.0" package="//@ownedElements.18" types="//@ownedElements.18/@ownedElements.0">
+ <comments xsi:type="java:Javadoc" originalCompilationUnit="//@compilationUnits.30" content="/** &#xA; * Copyright (c) 2009 Mia-Software.&#xA; * All rights reserved. This program and the accompanying materials&#xA; * are made available under the terms of the Eclipse Public License v1.0&#xA; * which accompanies this distribution, and is available at&#xA; * http://www.eclipse.org/legal/epl-v10.html&#xA; * Contributors:&#xA; * Gregoire DUPE (Mia-Software)&#xA; * Romain Dervaux (Mia-Software)&#xA; */&#xA;" prefixOfParent="true"/>
+ </compilationUnits>
+ <compilationUnits name="Test004.java" originalFilePath="D:\eclipse 3.7M2\junit-workspace\org.eclipse.gmt.modisco.java.discoverer.tests_test001\src\test004\Test004.java" commentList="//@compilationUnits.31/@comments.0" package="//@ownedElements.19" types="//@ownedElements.19/@ownedElements.0">
+ <comments xsi:type="java:Javadoc" originalCompilationUnit="//@compilationUnits.31" content="/** &#xA; * Copyright (c) 2009 Mia-Software.&#xA; * All rights reserved. This program and the accompanying materials&#xA; * are made available under the terms of the Eclipse Public License v1.0&#xA; * which accompanies this distribution, and is available at&#xA; * http://www.eclipse.org/legal/epl-v10.html&#xA; * Contributors:&#xA; * Gregoire DUPE (Mia-Software)&#xA; * Romain Dervaux (Mia-Software)&#xA; */&#xA;" prefixOfParent="true"/>
+ </compilationUnits>
+ <compilationUnits name="Unresolved.java" originalFilePath="D:\eclipse 3.7M2\junit-workspace\org.eclipse.gmt.modisco.java.discoverer.tests_test001\src\unresolved\Unresolved.java" commentList="//@compilationUnits.32/@comments.0" package="//@ownedElements.20" types="//@ownedElements.20/@ownedElements.0">
+ <comments xsi:type="java:Javadoc" originalCompilationUnit="//@compilationUnits.32" content="/** &#xA; * Copyright (c) 2009 Mia-Software.&#xA; * All rights reserved. This program and the accompanying materials&#xA; * are made available under the terms of the Eclipse Public License v1.0&#xA; * which accompanies this distribution, and is available at&#xA; * http://www.eclipse.org/legal/epl-v10.html&#xA; * Contributors:&#xA; * Gregoire DUPE (Mia-Software)&#xA; * Romain Dervaux (Mia-Software)&#xA; */&#xA;" prefixOfParent="true"/>
+ </compilationUnits>
+ <compilationUnits name="VarArgs1.java" originalFilePath="D:\eclipse 3.7M2\junit-workspace\org.eclipse.gmt.modisco.java.discoverer.tests_test001\src\varargs\VarArgs1.java" commentList="//@compilationUnits.33/@comments.0" package="//@ownedElements.21" types="//@ownedElements.21/@ownedElements.0">
+ <comments xsi:type="java:Javadoc" originalCompilationUnit="//@compilationUnits.33" content="/** &#xA; * Copyright (c) 2009 Mia-Software.&#xA; * All rights reserved. This program and the accompanying materials&#xA; * are made available under the terms of the Eclipse Public License v1.0&#xA; * which accompanies this distribution, and is available at&#xA; * http://www.eclipse.org/legal/epl-v10.html&#xA; * Contributors:&#xA; * Gregoire DUPE (Mia-Software)&#xA; * Romain Dervaux (Mia-Software)&#xA; */&#xA;" prefixOfParent="true"/>
+ </compilationUnits>
+ <compilationUnits name="VarArgs2.java" originalFilePath="D:\eclipse 3.7M2\junit-workspace\org.eclipse.gmt.modisco.java.discoverer.tests_test001\src\varargs\VarArgs2.java" commentList="//@compilationUnits.34/@comments.0" package="//@ownedElements.21" types="//@ownedElements.21/@ownedElements.1">
+ <comments xsi:type="java:Javadoc" originalCompilationUnit="//@compilationUnits.34" content="/** &#xA; * Copyright (c) 2009 Mia-Software.&#xA; * All rights reserved. This program and the accompanying materials&#xA; * are made available under the terms of the Eclipse Public License v1.0&#xA; * which accompanies this distribution, and is available at&#xA; * http://www.eclipse.org/legal/epl-v10.html&#xA; * Contributors:&#xA; * Gregoire DUPE (Mia-Software)&#xA; * Romain Dervaux (Mia-Software)&#xA; */&#xA;" prefixOfParent="true"/>
+ <imports originalCompilationUnit="//@compilationUnits.34" importedElement="//@ownedElements.22/@ownedPackages.3/@ownedElements.0"/>
+ <imports originalCompilationUnit="//@compilationUnits.34" importedElement="//@ownedElements.22/@ownedPackages.0/@ownedElements.11"/>
+ </compilationUnits>
+</java:Model>
diff --git a/org.eclipse.gmt.modisco.java.discoverer.tests/references/test001.kdm b/org.eclipse.gmt.modisco.java.discoverer.tests/references/test001.kdm
new file mode 100644
index 000000000..fa1db5b25
--- /dev/null
+++ b/org.eclipse.gmt.modisco.java.discoverer.tests/references/test001.kdm
@@ -0,0 +1,3305 @@
+<?xml version="1.0" encoding="ASCII"?>
+<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:action="http://www.eclipse.org/MoDisco/kdm/action" xmlns:code="http://www.eclipse.org/MoDisco/kdm/code" xmlns:kdm="http://www.eclipse.org/MoDisco/kdm/kdm" xmlns:source="http://www.eclipse.org/MoDisco/kdm/source">
+ <kdm:Segment>
+ <model xsi:type="code:CodeModel" name="org.eclipse.gmt.modisco.java.discoverer.tests_test001">
+ <codeElement xsi:type="code:Package" name="annotations">
+ <codeElement xsi:type="code:ClassUnit" name="MyAnnotatedClass" isAbstract="false">
+ <attribute tag="export" value="public"/>
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.0" language="java"/>
+ </source>
+ <comment text="/** &#xA; * Copyright (c) 2009 Mia-Software.&#xA; * All rights reserved. This program and the accompanying materials&#xA; * are made available under the terms of the Eclipse Public License v1.0&#xA; * which accompanies this distribution, and is available at&#xA; * http://www.eclipse.org/legal/epl-v10.html&#xA; * Contributors:&#xA; * Gregoire DUPE (Mia-Software)&#xA; * Romain Dervaux (Mia-Software)&#xA; */&#xA;"/>
+ <codeRelation xsi:type="code:Imports" to="/0/@model.1/@codeElement.0/@codeElement.0/@codeElement.0" from="/0/@model.0/@codeElement.0/@codeElement.0"/>
+ <codeRelation xsi:type="code:HasValue" to="/0/@model.1/@codeElement.0/@codeElement.1/@codeElement.2" from="/0/@model.0/@codeElement.0/@codeElement.0">
+ <annotation text="annotation"/>
+ </codeRelation>
+ <codeElement xsi:type="code:MethodUnit" name="myMethod" type="/0/@model.0/@codeElement.0/@codeElement.0/@codeElement.0/@codeElement.0">
+ <attribute tag="export" value="public"/>
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.0" language="java"/>
+ </source>
+ <codeElement xsi:type="code:Signature" name="myMethod">
+ <parameterUnit type="/0/@model.0/@codeElement.22/@codeElement.5" kind="return">
+ <source language="java">
+ <region language="java"/>
+ </source>
+ </parameterUnit>
+ </codeElement>
+ <codeElement xsi:type="action:BlockUnit">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.0" language="java"/>
+ </source>
+ <codeElement xsi:type="action:ActionElement" name="variable declaration" kind="variable declaration">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.0" language="java"/>
+ </source>
+ <codeRelation xsi:type="code:HasValue" to="/0/@model.1/@codeElement.0/@codeElement.1/@codeElement.3" from="/0/@model.0/@codeElement.0/@codeElement.0/@codeElement.0/@codeElement.1/@codeElement.0/@codeElement.0">
+ <attribute tag="no member" value="&quot;unchecked&quot;"/>
+ <annotation text="annotation"/>
+ </codeRelation>
+ <codeElement xsi:type="code:StorableUnit" name="lst" type="/0/@model.1/@codeElement.3" kind="local">
+ <attribute tag="export" value="none"/>
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.0" language="java"/>
+ </source>
+ <codeRelation xsi:type="code:HasValue" to="/0/@model.1/@codeElement.22" from="/0/@model.0/@codeElement.0/@codeElement.0/@codeElement.0/@codeElement.1/@codeElement.0/@codeElement.0"/>
+ </codeElement>
+ </codeElement>
+ </codeElement>
+ </codeElement>
+ <codeElement xsi:type="code:MethodUnit" name="returnRawList" type="/0/@model.0/@codeElement.0/@codeElement.0/@codeElement.1/@codeElement.0">
+ <attribute tag="export" value="public"/>
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.0" language="java"/>
+ </source>
+ <codeRelation xsi:type="code:HasValue" to="/0/@model.1/@codeElement.0/@codeElement.1/@codeElement.3" from="/0/@model.0/@codeElement.0/@codeElement.0/@codeElement.1">
+ <attribute tag="no member" value="&quot;unchecked&quot;"/>
+ <annotation text="annotation"/>
+ </codeRelation>
+ <codeElement xsi:type="code:Signature" name="returnRawList">
+ <parameterUnit type="/0/@model.1/@codeElement.0/@codeElement.0/@codeElement.0" kind="return">
+ <source language="java">
+ <region language="java"/>
+ </source>
+ </parameterUnit>
+ </codeElement>
+ <codeElement xsi:type="action:BlockUnit">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.0" language="java"/>
+ </source>
+ <codeElement xsi:type="action:ActionElement" name="return" kind="return">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.0" language="java"/>
+ </source>
+ <codeElement xsi:type="action:ActionElement" name="null" kind="null">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.0" language="java"/>
+ </source>
+ </codeElement>
+ </codeElement>
+ </codeElement>
+ </codeElement>
+ <codeElement xsi:type="code:MethodUnit" name="toString" type="/0/@model.0/@codeElement.0/@codeElement.0/@codeElement.2/@codeElement.0">
+ <attribute tag="export" value="public"/>
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.0" language="java"/>
+ </source>
+ <codeRelation xsi:type="code:HasValue" to="/0/@model.1/@codeElement.0/@codeElement.1/@codeElement.7" from="/0/@model.0/@codeElement.0/@codeElement.0/@codeElement.2">
+ <annotation text="annotation"/>
+ </codeRelation>
+ <codeElement xsi:type="code:Signature" name="toString">
+ <parameterUnit type="/0/@model.1/@codeElement.0/@codeElement.1/@codeElement.8" kind="return">
+ <source language="java">
+ <region language="java"/>
+ </source>
+ </parameterUnit>
+ </codeElement>
+ <codeElement xsi:type="action:BlockUnit">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.0" language="java"/>
+ </source>
+ <codeElement xsi:type="action:ActionElement" name="return" kind="return">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.0" language="java"/>
+ </source>
+ <codeElement xsi:type="code:Value" name="string literal" type="/0/@model.0/@codeElement.22/@codeElement.9" ext="&quot;&quot;">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.0" language="java"/>
+ </source>
+ </codeElement>
+ </codeElement>
+ </codeElement>
+ </codeElement>
+ </codeElement>
+ <codeElement xsi:type="code:InterfaceUnit" name="MyAnnotation">
+ <attribute tag="export" value="public"/>
+ <annotation text="annotation"/>
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.1" language="java"/>
+ </source>
+ <comment text="/** &#xA; * Copyright (c) 2009 Mia-Software.&#xA; * All rights reserved. This program and the accompanying materials&#xA; * are made available under the terms of the Eclipse Public License v1.0&#xA; * which accompanies this distribution, and is available at&#xA; * http://www.eclipse.org/legal/epl-v10.html&#xA; * Contributors:&#xA; * Fabien Giquel (Mia-Software)&#xA; */&#xA;"/>
+ <codeElement xsi:type="code:StorableUnit" name="monAttributNormal" type="/0/@model.0/@codeElement.22/@codeElement.4">
+ <attribute tag="export" value="none"/>
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.1" language="java"/>
+ </source>
+ <codeRelation xsi:type="code:HasValue" to="/0/@model.1/@codeElement.25" from="/0/@model.0/@codeElement.0/@codeElement.1/@codeElement.0"/>
+ </codeElement>
+ <codeElement xsi:type="code:MemberUnit" name="numero" type="/0/@model.0/@codeElement.22/@codeElement.0">
+ <attribute tag="export" value="none"/>
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.1" language="java"/>
+ </source>
+ </codeElement>
+ <codeElement xsi:type="code:MemberUnit" name="valeur" type="/0/@model.1/@codeElement.0/@codeElement.1/@codeElement.8">
+ <attribute tag="export" value="none"/>
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.1" language="java"/>
+ </source>
+ </codeElement>
+ </codeElement>
+ <codeElement xsi:type="code:ClassUnit" name="MyAnnotatedClass2" isAbstract="false">
+ <attribute tag="export" value="public"/>
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.2" language="java"/>
+ </source>
+ <comment text="/** &#xA; * Copyright (c) 2009 Mia-Software.&#xA; * All rights reserved. This program and the accompanying materials&#xA; * are made available under the terms of the Eclipse Public License v1.0&#xA; * which accompanies this distribution, and is available at&#xA; * http://www.eclipse.org/legal/epl-v10.html&#xA; * Contributors:&#xA; * Fabien Giquel (Mia-Software)&#xA; */&#xA;"/>
+ <codeRelation xsi:type="code:HasValue" to="/0/@model.1/@codeElement.0/@codeElement.1/@codeElement.2" from="/0/@model.0/@codeElement.0/@codeElement.2">
+ <annotation text="annotation"/>
+ </codeRelation>
+ <codeRelation xsi:type="code:HasValue" to="/0/@model.0/@codeElement.0/@codeElement.1" from="/0/@model.0/@codeElement.0/@codeElement.2">
+ <attribute tag="numero" value="2"/>
+ <attribute tag="valeur" value="&quot;ok&quot;"/>
+ <annotation text="annotation"/>
+ </codeRelation>
+ <codeElement xsi:type="code:StorableUnit" name="j" type="/0/@model.0/@codeElement.22/@codeElement.0">
+ <attribute tag="export" value="none"/>
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.2" language="java"/>
+ </source>
+ <codeRelation xsi:type="code:HasValue" to="/0/@model.1/@codeElement.0/@codeElement.1/@codeElement.2" from="/0/@model.0/@codeElement.0/@codeElement.2/@codeElement.0">
+ <annotation text="annotation"/>
+ </codeRelation>
+ </codeElement>
+ <codeElement xsi:type="code:InterfaceUnit" name="MonInnerAnnotation">
+ <attribute tag="export" value="public"/>
+ <annotation text="annotation"/>
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.2" language="java"/>
+ </source>
+ <codeRelation xsi:type="code:Imports" to="/0/@model.1/@codeElement.0/@codeElement.0/@codeElement.2" from="/0/@model.0/@codeElement.0/@codeElement.2"/>
+ <codeRelation xsi:type="code:Imports" to="/0/@model.1/@codeElement.0/@codeElement.0/@codeElement.0" from="/0/@model.0/@codeElement.0/@codeElement.2"/>
+ <codeRelation xsi:type="code:Imports" to="/0/@model.1/@codeElement.0/@codeElement.0/@codeElement.6" from="/0/@model.0/@codeElement.0/@codeElement.2"/>
+ <codeElement xsi:type="code:StorableUnit" name="maV" type="/0/@model.1/@codeElement.0/@codeElement.1/@codeElement.8">
+ <attribute tag="export" value="none"/>
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.2" language="java"/>
+ </source>
+ <codeRelation xsi:type="code:HasValue" to="/0/@model.1/@codeElement.29" from="/0/@model.0/@codeElement.0/@codeElement.2/@codeElement.1/@codeElement.0"/>
+ </codeElement>
+ <codeElement xsi:type="code:MemberUnit" name="value" type="/0/@model.1/@codeElement.0/@codeElement.1/@codeElement.8">
+ <attribute tag="export" value="none"/>
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.2" language="java"/>
+ </source>
+ </codeElement>
+ </codeElement>
+ <codeElement xsi:type="code:MethodUnit" name="MaMethode" type="/0/@model.0/@codeElement.0/@codeElement.2/@codeElement.2/@codeElement.0">
+ <attribute tag="export" value="public"/>
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.2" language="java"/>
+ </source>
+ <codeRelation xsi:type="code:HasValue" to="/0/@model.1/@codeElement.0/@codeElement.1/@codeElement.2" from="/0/@model.0/@codeElement.0/@codeElement.2/@codeElement.2">
+ <annotation text="annotation"/>
+ </codeRelation>
+ <codeRelation xsi:type="code:HasValue" to="/0/@model.0/@codeElement.0/@codeElement.2/@codeElement.1" from="/0/@model.0/@codeElement.0/@codeElement.2/@codeElement.2">
+ <attribute tag="no member" value="&quot;ok&quot;"/>
+ <annotation text="annotation"/>
+ </codeRelation>
+ <codeRelation xsi:type="code:HasValue" to="/0/@model.0/@codeElement.0/@codeElement.1" from="/0/@model.0/@codeElement.0/@codeElement.2/@codeElement.2">
+ <attribute tag="numero" value="2"/>
+ <attribute tag="valeur" value="&quot;ok&quot;"/>
+ <annotation text="annotation"/>
+ </codeRelation>
+ <codeElement xsi:type="code:Signature" name="MaMethode">
+ <parameterUnit type="/0/@model.0/@codeElement.22/@codeElement.5" kind="return">
+ <source language="java">
+ <region language="java"/>
+ </source>
+ </parameterUnit>
+ <parameterUnit name="aFile" type="/0/@model.1/@codeElement.0/@codeElement.2/@codeElement.1" kind="unknown">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.2" language="java"/>
+ </source>
+ </parameterUnit>
+ </codeElement>
+ <codeElement xsi:type="action:BlockUnit">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.2" language="java"/>
+ </source>
+ <codeElement xsi:type="action:ActionElement" name="variable declaration" kind="variable declaration">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.2" language="java"/>
+ </source>
+ <codeRelation xsi:type="code:HasValue" to="/0/@model.1/@codeElement.0/@codeElement.1/@codeElement.3" from="/0/@model.0/@codeElement.0/@codeElement.2/@codeElement.2/@codeElement.1/@codeElement.0/@codeElement.0">
+ <attribute tag="no member" value="&quot;unused&quot;"/>
+ <annotation text="annotation"/>
+ </codeRelation>
+ <codeElement xsi:type="code:StorableUnit" name="v" type="/0/@model.1/@codeElement.0/@codeElement.1/@codeElement.8" kind="local">
+ <attribute tag="export" value="none"/>
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.2" language="java"/>
+ </source>
+ </codeElement>
+ </codeElement>
+ </codeElement>
+ </codeElement>
+ </codeElement>
+ </codeElement>
+ <codeElement xsi:type="code:Package" name="bug325108">
+ <codeElement xsi:type="code:ClassUnit" name="Bug325108" isAbstract="false">
+ <attribute tag="export" value="public"/>
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.3" language="java"/>
+ </source>
+ <codeRelation xsi:type="code:Imports" to="/0/@model.1/@codeElement.47" from="/0/@model.0/@codeElement.1/@codeElement.0"/>
+ <codeElement xsi:type="code:StorableUnit" name="console" type="/0/@model.1/@codeElement.53">
+ <attribute tag="export" value="private"/>
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.3" language="java"/>
+ </source>
+ <codeRelation xsi:type="code:HasValue" to="/0/@model.1/@codeElement.54" from="/0/@model.0/@codeElement.1/@codeElement.0/@codeElement.0"/>
+ </codeElement>
+ </codeElement>
+ </codeElement>
+ <codeElement xsi:type="code:Package" name="classorifaceproxy">
+ <codeElement xsi:type="code:Package" name="p1">
+ <codeElement xsi:type="code:InterfaceUnit" name="Iface1">
+ <attribute tag="export" value="public"/>
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.4" language="java"/>
+ </source>
+ <comment text="/** &#xA; * Copyright (c) 2009 Mia-Software.&#xA; * All rights reserved. This program and the accompanying materials&#xA; * are made available under the terms of the Eclipse Public License v1.0&#xA; * which accompanies this distribution, and is available at&#xA; * http://www.eclipse.org/legal/epl-v10.html&#xA; * Contributors:&#xA; * Gregoire DUPE (Mia-Software)&#xA; * Romain Dervaux (Mia-Software)&#xA; */&#xA;"/>
+ <codeRelation xsi:type="code:Imports" to="/0/@model.0/@codeElement.2/@codeElement.1/@codeElement.0" from="/0/@model.0/@codeElement.2/@codeElement.0/@codeElement.0"/>
+ <codeElement xsi:type="code:StorableUnit" name="if2" type="/0/@model.0/@codeElement.2/@codeElement.1/@codeElement.0">
+ <attribute tag="export" value="none"/>
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.4" language="java"/>
+ </source>
+ <codeRelation xsi:type="code:HasValue" to="/0/@model.1/@codeElement.34" from="/0/@model.0/@codeElement.2/@codeElement.0/@codeElement.0/@codeElement.0"/>
+ </codeElement>
+ </codeElement>
+ </codeElement>
+ <codeElement xsi:type="code:Package" name="p2">
+ <codeElement xsi:type="code:InterfaceUnit" name="Iface2">
+ <attribute tag="export" value="public"/>
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.5" language="java"/>
+ </source>
+ <comment text="/** &#xA; * Copyright (c) 2009 Mia-Software.&#xA; * All rights reserved. This program and the accompanying materials&#xA; * are made available under the terms of the Eclipse Public License v1.0&#xA; * which accompanies this distribution, and is available at&#xA; * http://www.eclipse.org/legal/epl-v10.html&#xA; * Contributors:&#xA; * Gregoire DUPE (Mia-Software)&#xA; * Romain Dervaux (Mia-Software)&#xA; */&#xA;"/>
+ <codeRelation xsi:type="code:Imports" to="/0/@model.0/@codeElement.2/@codeElement.0/@codeElement.0" from="/0/@model.0/@codeElement.2/@codeElement.1/@codeElement.0"/>
+ <codeElement xsi:type="code:StorableUnit" name="if1" type="/0/@model.0/@codeElement.2/@codeElement.0/@codeElement.0">
+ <attribute tag="export" value="none"/>
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.5" language="java"/>
+ </source>
+ <codeRelation xsi:type="code:HasValue" to="/0/@model.1/@codeElement.35" from="/0/@model.0/@codeElement.2/@codeElement.1/@codeElement.0/@codeElement.0"/>
+ </codeElement>
+ </codeElement>
+ </codeElement>
+ </codeElement>
+ <codeElement xsi:type="code:Package" name="comments">
+ <codeElement xsi:type="code:ClassUnit" name="Comments" isAbstract="false">
+ <attribute tag="export" value="public"/>
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.6" language="java"/>
+ </source>
+ <comment text="/** &#xA; * This class doesn't subclass {@link java.lang.String}&#xA; * @author me&#xA; * @see java.lang.String#toString()&#xA; */&#xA;"/>
+ <comment text="/*&#xD;&#xA; * after class&#xD;&#xA; */"/>
+ <comment text="/** &#xA; * Copyright (c) 2009 Mia-Software.&#xA; * All rights reserved. This program and the accompanying materials&#xA; * are made available under the terms of the Eclipse Public License v1.0&#xA; * which accompanies this distribution, and is available at&#xA; * http://www.eclipse.org/legal/epl-v10.html&#xA; * Contributors:&#xA; * Gregoire DUPE (Mia-Software)&#xA; * Romain Dervaux (Mia-Software)&#xA; */&#xA;"/>
+ <codeElement xsi:type="code:StorableUnit" name="s" type="/0/@model.1/@codeElement.0/@codeElement.1/@codeElement.8">
+ <attribute tag="export" value="public"/>
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.6" language="java"/>
+ </source>
+ <comment text="/** &#xA; * javadoc on field&#xA; */&#xA;"/>
+ </codeElement>
+ <codeElement xsi:type="code:MethodUnit" name="method" type="/0/@model.0/@codeElement.3/@codeElement.0/@codeElement.1/@codeElement.0">
+ <attribute tag="export" value="public"/>
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.6" language="java"/>
+ </source>
+ <comment text="/** &#xA; * javadoc on method&#xA; */&#xA;"/>
+ <codeElement xsi:type="code:Signature" name="method">
+ <parameterUnit type="/0/@model.0/@codeElement.22/@codeElement.5" kind="return">
+ <source language="java">
+ <region language="java"/>
+ </source>
+ </parameterUnit>
+ </codeElement>
+ <codeElement xsi:type="action:BlockUnit">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.6" language="java"/>
+ </source>
+ <comment text="//in method"/>
+ </codeElement>
+ </codeElement>
+ </codeElement>
+ </codeElement>
+ <codeElement xsi:type="code:Package" name="duplicateproxy">
+ <codeElement xsi:type="code:ClassUnit" name="DuplicateProxy1" isAbstract="false">
+ <attribute tag="export" value="public"/>
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.7" language="java"/>
+ </source>
+ <comment text="/** &#xA; * Copyright (c) 2009 Mia-Software.&#xA; * All rights reserved. This program and the accompanying materials&#xA; * are made available under the terms of the Eclipse Public License v1.0&#xA; * which accompanies this distribution, and is available at&#xA; * http://www.eclipse.org/legal/epl-v10.html&#xA; * Contributors:&#xA; * Gregoire DUPE (Mia-Software)&#xA; * Romain Dervaux (Mia-Software)&#xA; */&#xA;"/>
+ <codeRelation xsi:type="code:Imports" to="/0/@model.1/@codeElement.0/@codeElement.0/@codeElement.2" from="/0/@model.0/@codeElement.4/@codeElement.0"/>
+ <codeElement xsi:type="code:MethodUnit" name="main" type="/0/@model.0/@codeElement.4/@codeElement.0/@codeElement.0/@codeElement.0">
+ <attribute tag="export" value="public"/>
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.7" language="java"/>
+ </source>
+ <codeElement xsi:type="code:Signature" name="main">
+ <parameterUnit type="/0/@model.0/@codeElement.22/@codeElement.5" kind="return">
+ <source language="java">
+ <region language="java"/>
+ </source>
+ </parameterUnit>
+ <parameterUnit name="args" type="/0/@model.1/@codeElement.4" kind="unknown">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.7" language="java"/>
+ </source>
+ </parameterUnit>
+ </codeElement>
+ <codeElement xsi:type="action:BlockUnit">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.7" language="java"/>
+ </source>
+ <codeElement xsi:type="action:ActionElement" name="expression statement" kind="expression statement">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.7" language="java"/>
+ </source>
+ <codeElement xsi:type="action:ActionElement" name="method invocation" kind="method invocation">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.7" language="java"/>
+ </source>
+ <codeElement xsi:type="action:ActionElement" name="class instance creation" kind="class instance creation">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.7" language="java"/>
+ </source>
+ <actionRelation xsi:type="action:Calls" to="/0/@model.1/@codeElement.0/@codeElement.0/@codeElement.2/@codeElement.1/@codeElement.0" from="/0/@model.0/@codeElement.4/@codeElement.0/@codeElement.0/@codeElement.1/@codeElement.0/@codeElement.0/@codeElement.0"/>
+ <actionRelation xsi:type="action:Creates" to="/0/@model.1/@codeElement.5" from="/0/@model.0/@codeElement.4/@codeElement.0/@codeElement.0/@codeElement.1/@codeElement.0/@codeElement.0/@codeElement.0"/>
+ </codeElement>
+ <actionRelation xsi:type="action:Calls" to="/0/@model.1/@codeElement.0/@codeElement.0/@codeElement.2/@codeElement.1/@codeElement.1" from="/0/@model.0/@codeElement.4/@codeElement.0/@codeElement.0/@codeElement.1/@codeElement.0/@codeElement.0"/>
+ </codeElement>
+ </codeElement>
+ </codeElement>
+ </codeElement>
+ </codeElement>
+ <codeElement xsi:type="code:ClassUnit" name="DuplicateProxy2" isAbstract="false">
+ <attribute tag="export" value="public"/>
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.8" language="java"/>
+ </source>
+ <comment text="/** &#xA; * Copyright (c) 2009 Mia-Software.&#xA; * All rights reserved. This program and the accompanying materials&#xA; * are made available under the terms of the Eclipse Public License v1.0&#xA; * which accompanies this distribution, and is available at&#xA; * http://www.eclipse.org/legal/epl-v10.html&#xA; * Contributors:&#xA; * Gregoire DUPE (Mia-Software)&#xA; * Romain Dervaux (Mia-Software)&#xA; */&#xA;"/>
+ <codeRelation xsi:type="code:Imports" to="/0/@model.1/@codeElement.0/@codeElement.0/@codeElement.2" from="/0/@model.0/@codeElement.4/@codeElement.1"/>
+ <codeElement xsi:type="code:MethodUnit" name="main" type="/0/@model.0/@codeElement.4/@codeElement.1/@codeElement.0/@codeElement.0">
+ <attribute tag="export" value="public"/>
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.8" language="java"/>
+ </source>
+ <codeElement xsi:type="code:Signature" name="main">
+ <parameterUnit type="/0/@model.0/@codeElement.22/@codeElement.5" kind="return">
+ <source language="java">
+ <region language="java"/>
+ </source>
+ </parameterUnit>
+ <parameterUnit name="args" type="/0/@model.1/@codeElement.4" kind="unknown">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.8" language="java"/>
+ </source>
+ </parameterUnit>
+ </codeElement>
+ <codeElement xsi:type="action:BlockUnit">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.8" language="java"/>
+ </source>
+ <codeElement xsi:type="action:ActionElement" name="expression statement" kind="expression statement">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.8" language="java"/>
+ </source>
+ <codeElement xsi:type="action:ActionElement" name="method invocation" kind="method invocation">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.8" language="java"/>
+ </source>
+ <codeElement xsi:type="action:ActionElement" name="class instance creation" kind="class instance creation">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.8" language="java"/>
+ </source>
+ <actionRelation xsi:type="action:Calls" to="/0/@model.1/@codeElement.0/@codeElement.0/@codeElement.2/@codeElement.1/@codeElement.0" from="/0/@model.0/@codeElement.4/@codeElement.1/@codeElement.0/@codeElement.1/@codeElement.0/@codeElement.0/@codeElement.0"/>
+ <actionRelation xsi:type="action:Creates" to="/0/@model.1/@codeElement.6" from="/0/@model.0/@codeElement.4/@codeElement.1/@codeElement.0/@codeElement.1/@codeElement.0/@codeElement.0/@codeElement.0"/>
+ </codeElement>
+ <actionRelation xsi:type="action:Calls" to="/0/@model.1/@codeElement.0/@codeElement.0/@codeElement.2/@codeElement.1/@codeElement.1" from="/0/@model.0/@codeElement.4/@codeElement.1/@codeElement.0/@codeElement.1/@codeElement.0/@codeElement.0"/>
+ </codeElement>
+ </codeElement>
+ </codeElement>
+ </codeElement>
+ </codeElement>
+ <codeElement xsi:type="code:ClassUnit" name="DuplicateProxy3" isAbstract="false">
+ <attribute tag="export" value="public"/>
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.9" language="java"/>
+ </source>
+ <comment text="/** &#xA; * Copyright (c) 2009 Mia-Software.&#xA; * All rights reserved. This program and the accompanying materials&#xA; * are made available under the terms of the Eclipse Public License v1.0&#xA; * which accompanies this distribution, and is available at&#xA; * http://www.eclipse.org/legal/epl-v10.html&#xA; * Contributors:&#xA; * Gregoire DUPE (Mia-Software)&#xA; * Romain Dervaux (Mia-Software)&#xA; */&#xA;"/>
+ <codeRelation xsi:type="code:Imports" to="/0/@model.1/@codeElement.0/@codeElement.0/@codeElement.2" from="/0/@model.0/@codeElement.4/@codeElement.2"/>
+ <codeElement xsi:type="code:MethodUnit" name="main" type="/0/@model.0/@codeElement.4/@codeElement.2/@codeElement.0/@codeElement.0">
+ <attribute tag="export" value="public"/>
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.9" language="java"/>
+ </source>
+ <codeElement xsi:type="code:Signature" name="main">
+ <parameterUnit type="/0/@model.0/@codeElement.22/@codeElement.5" kind="return">
+ <source language="java">
+ <region language="java"/>
+ </source>
+ </parameterUnit>
+ <parameterUnit name="args" type="/0/@model.1/@codeElement.4" kind="unknown">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.9" language="java"/>
+ </source>
+ </parameterUnit>
+ </codeElement>
+ <codeElement xsi:type="action:BlockUnit">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.9" language="java"/>
+ </source>
+ <codeElement xsi:type="action:ActionElement" name="expression statement" kind="expression statement">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.9" language="java"/>
+ </source>
+ <codeElement xsi:type="action:ActionElement" name="method invocation" kind="method invocation">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.9" language="java"/>
+ </source>
+ <codeElement xsi:type="action:ActionElement" name="class instance creation" kind="class instance creation">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.9" language="java"/>
+ </source>
+ <actionRelation xsi:type="action:Calls" to="/0/@model.1/@codeElement.0/@codeElement.0/@codeElement.2/@codeElement.1/@codeElement.0" from="/0/@model.0/@codeElement.4/@codeElement.2/@codeElement.0/@codeElement.1/@codeElement.0/@codeElement.0/@codeElement.0"/>
+ <actionRelation xsi:type="action:Creates" to="/0/@model.1/@codeElement.7" from="/0/@model.0/@codeElement.4/@codeElement.2/@codeElement.0/@codeElement.1/@codeElement.0/@codeElement.0/@codeElement.0"/>
+ </codeElement>
+ <actionRelation xsi:type="action:Calls" to="/0/@model.1/@codeElement.0/@codeElement.0/@codeElement.2/@codeElement.1/@codeElement.1" from="/0/@model.0/@codeElement.4/@codeElement.2/@codeElement.0/@codeElement.1/@codeElement.0/@codeElement.0"/>
+ </codeElement>
+ </codeElement>
+ </codeElement>
+ </codeElement>
+ </codeElement>
+ </codeElement>
+ <codeElement xsi:type="code:Package" name="enumerations">
+ <codeElement xsi:type="code:Package" name="p1">
+ <codeElement xsi:type="code:ClassUnit" name="EnumUse" isAbstract="false">
+ <attribute tag="export" value="public"/>
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.10" language="java"/>
+ </source>
+ <comment text="/** &#xA; * Copyright (c) 2009 Mia-Software.&#xA; * All rights reserved. This program and the accompanying materials&#xA; * are made available under the terms of the Eclipse Public License v1.0&#xA; * which accompanies this distribution, and is available at&#xA; * http://www.eclipse.org/legal/epl-v10.html&#xA; * Contributors:&#xA; * Gregoire DUPE (Mia-Software)&#xA; * Romain Dervaux (Mia-Software)&#xA; */&#xA;"/>
+ <codeRelation xsi:type="code:Imports" to="/0/@model.1/@codeElement.48" from="/0/@model.0/@codeElement.5/@codeElement.0/@codeElement.0"/>
+ <codeElement xsi:type="code:MethodUnit" name="main" type="/0/@model.0/@codeElement.5/@codeElement.0/@codeElement.0/@codeElement.0/@codeElement.0">
+ <attribute tag="export" value="public"/>
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.10" language="java"/>
+ </source>
+ <comment text="/** &#xA; * @param args&#xA; */&#xA;"/>
+ <codeElement xsi:type="code:Signature" name="main">
+ <parameterUnit type="/0/@model.0/@codeElement.22/@codeElement.5" kind="return">
+ <source language="java">
+ <region language="java"/>
+ </source>
+ </parameterUnit>
+ <parameterUnit name="args" type="/0/@model.1/@codeElement.4" kind="unknown">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.10" language="java"/>
+ </source>
+ </parameterUnit>
+ </codeElement>
+ <codeElement xsi:type="action:BlockUnit">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.10" language="java"/>
+ </source>
+ <codeElement xsi:type="action:ActionElement" name="variable declaration" kind="variable declaration">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.10" language="java"/>
+ </source>
+ <codeElement xsi:type="code:StorableUnit" name="ux" type="/0/@model.0/@codeElement.22/@codeElement.3" kind="local">
+ <attribute tag="export" value="none"/>
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.10" language="java"/>
+ </source>
+ <codeRelation xsi:type="code:HasValue" to="/0/@model.1/@codeElement.52" from="/0/@model.0/@codeElement.5/@codeElement.0/@codeElement.0/@codeElement.0/@codeElement.1/@codeElement.0/@codeElement.0"/>
+ </codeElement>
+ </codeElement>
+ </codeElement>
+ </codeElement>
+ </codeElement>
+ <codeElement xsi:type="code:EnumeratedType" name="MyEnumeration">
+ <attribute tag="export" value="public"/>
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.11" language="java"/>
+ </source>
+ <comment text="/** &#xA; * Copyright (c) 2009 Mia-Software.&#xA; * All rights reserved. This program and the accompanying materials&#xA; * are made available under the terms of the Eclipse Public License v1.0&#xA; * which accompanies this distribution, and is available at&#xA; * http://www.eclipse.org/legal/epl-v10.html&#xA; * Contributors:&#xA; * Fabien Giquel (Mia-Software)&#xA; */&#xA;"/>
+ <codeRelation xsi:type="code:Imports" to="/0/@model.1/@codeElement.0/@codeElement.0" from="/0/@model.0/@codeElement.5/@codeElement.0/@codeElement.1"/>
+ <value name="enum literal" type="/0/@model.0/@codeElement.5/@codeElement.0/@codeElement.1" ext="MA_CONSTANTE_ENUM1">
+ <attribute tag="export" value="none"/>
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.11" language="java"/>
+ </source>
+ </value>
+ <value name="enum literal" type="/0/@model.0/@codeElement.5/@codeElement.0/@codeElement.1" ext="MA_CONSTANTE_ENUM2">
+ <attribute tag="export" value="none"/>
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.11" language="java"/>
+ </source>
+ </value>
+ <value name="enum literal" type="/0/@model.0/@codeElement.5/@codeElement.0/@codeElement.1" ext="MA_CONSTANTE_ENUM3">
+ <attribute tag="export" value="none"/>
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.11" language="java"/>
+ </source>
+ </value>
+ <value name="enum literal" type="/0/@model.0/@codeElement.5/@codeElement.0/@codeElement.1" ext="MA_CONSTANTE_ENUM4">
+ <attribute tag="export" value="none"/>
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.11" language="java"/>
+ </source>
+ </value>
+ <codeElement xsi:type="code:MethodUnit" name="MyEnumeration" type="/0/@model.0/@codeElement.5/@codeElement.0/@codeElement.1/@codeElement.0/@codeElement.0" kind="constructor" export="protected">
+ <attribute tag="export" value="none"/>
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.11" language="java"/>
+ </source>
+ <codeElement xsi:type="code:Signature" name="MyEnumeration">
+ <parameterUnit name="code" type="/0/@model.1/@codeElement.0/@codeElement.1/@codeElement.8" kind="unknown">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.11" language="java"/>
+ </source>
+ </parameterUnit>
+ <parameterUnit name="libelle" type="/0/@model.1/@codeElement.0/@codeElement.1/@codeElement.8" kind="unknown">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.11" language="java"/>
+ </source>
+ </parameterUnit>
+ </codeElement>
+ <codeElement xsi:type="action:BlockUnit">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.11" language="java"/>
+ </source>
+ </codeElement>
+ </codeElement>
+ </codeElement>
+ </codeElement>
+ </codeElement>
+ <codeElement xsi:type="code:Package" name="initializer">
+ <codeElement xsi:type="code:ClassUnit" name="InitializerTest" isAbstract="false">
+ <attribute tag="export" value="public"/>
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.12" language="java"/>
+ </source>
+ <comment text="/** &#xA; * Copyright (c) 2009 Mia-Software.&#xA; * All rights reserved. This program and the accompanying materials&#xA; * are made available under the terms of the Eclipse Public License v1.0&#xA; * which accompanies this distribution, and is available at&#xA; * http://www.eclipse.org/legal/epl-v10.html&#xA; * Contributors:&#xA; * Gregoire DUPE (Mia-Software)&#xA; * Romain Dervaux (Mia-Software)&#xA; */&#xA;"/>
+ <codeElement xsi:type="code:ControlElement">
+ <attribute tag="export" value="none"/>
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.12" language="java"/>
+ </source>
+ <codeElement xsi:type="action:BlockUnit">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.12" language="java"/>
+ </source>
+ </codeElement>
+ </codeElement>
+ <codeElement xsi:type="code:ControlElement">
+ <attribute tag="export" value="none"/>
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.12" language="java"/>
+ </source>
+ <codeElement xsi:type="action:BlockUnit">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.12" language="java"/>
+ </source>
+ </codeElement>
+ </codeElement>
+ </codeElement>
+ </codeElement>
+ <codeElement xsi:type="code:Package" name="innerclass">
+ <codeElement xsi:type="code:ClassUnit" name="InnerClass" isAbstract="false">
+ <attribute tag="export" value="public"/>
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.13" language="java"/>
+ </source>
+ <comment text="/** &#xA; * Copyright (c) 2009 Mia-Software.&#xA; * All rights reserved. This program and the accompanying materials&#xA; * are made available under the terms of the Eclipse Public License v1.0&#xA; * which accompanies this distribution, and is available at&#xA; * http://www.eclipse.org/legal/epl-v10.html&#xA; * Contributors:&#xA; * Gregoire DUPE (Mia-Software)&#xA; * Romain Dervaux (Mia-Software)&#xA; */&#xA;"/>
+ <codeElement xsi:type="code:ClassUnit" name="InnerClass2" isAbstract="false">
+ <attribute tag="export" value="public"/>
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.13" language="java"/>
+ </source>
+ <codeElement xsi:type="code:ClassUnit" name="InnerClass3" isAbstract="false">
+ <attribute tag="export" value="public"/>
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.13" language="java"/>
+ </source>
+ <codeElement xsi:type="code:ClassUnit" name="InnerClass4" isAbstract="false">
+ <attribute tag="export" value="public"/>
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.13" language="java"/>
+ </source>
+ <codeElement xsi:type="code:ClassUnit" name="InnerClass5" isAbstract="false">
+ <attribute tag="export" value="public"/>
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.13" language="java"/>
+ </source>
+ </codeElement>
+ </codeElement>
+ <codeElement xsi:type="code:MethodUnit" name="InnerClass3" type="/0/@model.0/@codeElement.7/@codeElement.0/@codeElement.0/@codeElement.0/@codeElement.1/@codeElement.0" kind="constructor" export="unknown">
+ <source language="java">
+ <region language="java"/>
+ </source>
+ <codeElement xsi:type="code:Signature" name="InnerClass3"/>
+ </codeElement>
+ </codeElement>
+ <codeElement xsi:type="code:MethodUnit" name="InnerClass2" type="/0/@model.0/@codeElement.7/@codeElement.0/@codeElement.0/@codeElement.1/@codeElement.0" kind="constructor" export="unknown">
+ <source language="java">
+ <region language="java"/>
+ </source>
+ <codeElement xsi:type="code:Signature" name="InnerClass2"/>
+ </codeElement>
+ </codeElement>
+ <codeElement xsi:type="code:MethodUnit" name="InnerClass" type="/0/@model.0/@codeElement.7/@codeElement.0/@codeElement.1/@codeElement.0" kind="constructor" export="unknown">
+ <source language="java">
+ <region language="java"/>
+ </source>
+ <codeElement xsi:type="code:Signature" name="InnerClass"/>
+ </codeElement>
+ </codeElement>
+ <codeElement xsi:type="code:ClassUnit" name="InnerClassB" isAbstract="false">
+ <attribute tag="export" value="public"/>
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.14" language="java"/>
+ </source>
+ <comment text="/** &#xA; * Copyright (c) 2009 Mia-Software.&#xA; * All rights reserved. This program and the accompanying materials&#xA; * are made available under the terms of the Eclipse Public License v1.0&#xA; * which accompanies this distribution, and is available at&#xA; * http://www.eclipse.org/legal/epl-v10.html&#xA; * Contributors:&#xA; * Gregoire DUPE (Mia-Software)&#xA; * Romain Dervaux (Mia-Software)&#xA; */&#xA;"/>
+ <codeRelation xsi:type="code:Imports" to="/0/@model.0/@codeElement.7/@codeElement.0/@codeElement.0" from="/0/@model.0/@codeElement.7/@codeElement.1"/>
+ <codeRelation xsi:type="code:Imports" to="/0/@model.0/@codeElement.7/@codeElement.0/@codeElement.0/@codeElement.0" from="/0/@model.0/@codeElement.7/@codeElement.1"/>
+ <codeElement xsi:type="code:MethodUnit" name="main" type="/0/@model.0/@codeElement.7/@codeElement.1/@codeElement.0/@codeElement.0">
+ <attribute tag="export" value="public"/>
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.14" language="java"/>
+ </source>
+ <codeElement xsi:type="code:Signature" name="main">
+ <parameterUnit type="/0/@model.0/@codeElement.22/@codeElement.5" kind="return">
+ <source language="java">
+ <region language="java"/>
+ </source>
+ </parameterUnit>
+ <parameterUnit name="args" type="/0/@model.1/@codeElement.4" kind="unknown">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.14" language="java"/>
+ </source>
+ </parameterUnit>
+ </codeElement>
+ <codeElement xsi:type="action:BlockUnit">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.14" language="java"/>
+ </source>
+ <codeElement xsi:type="action:ActionElement" name="variable declaration" kind="variable declaration">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.14" language="java"/>
+ </source>
+ <codeElement xsi:type="code:StorableUnit" name="ic" type="/0/@model.0/@codeElement.7/@codeElement.0" kind="local">
+ <attribute tag="export" value="none"/>
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.14" language="java"/>
+ </source>
+ <codeRelation xsi:type="code:HasValue" to="/0/@model.0/@codeElement.7/@codeElement.1/@codeElement.0/@codeElement.1/@codeElement.0/@codeElement.1" from="/0/@model.0/@codeElement.7/@codeElement.1/@codeElement.0/@codeElement.1/@codeElement.0/@codeElement.0"/>
+ </codeElement>
+ <codeElement xsi:type="action:ActionElement" name="class instance creation" kind="class instance creation">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.14" language="java"/>
+ </source>
+ <actionRelation xsi:type="action:Calls" to="/0/@model.0/@codeElement.7/@codeElement.0/@codeElement.1" from="/0/@model.0/@codeElement.7/@codeElement.1/@codeElement.0/@codeElement.1/@codeElement.0/@codeElement.1"/>
+ <actionRelation xsi:type="action:Creates" to="/0/@model.0/@codeElement.7/@codeElement.0" from="/0/@model.0/@codeElement.7/@codeElement.1/@codeElement.0/@codeElement.1/@codeElement.0/@codeElement.1"/>
+ </codeElement>
+ </codeElement>
+ <codeElement xsi:type="action:ActionElement" name="variable declaration" kind="variable declaration">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.14" language="java"/>
+ </source>
+ <codeElement xsi:type="code:StorableUnit" name="ic2" type="/0/@model.0/@codeElement.7/@codeElement.0/@codeElement.0" kind="local">
+ <attribute tag="export" value="none"/>
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.14" language="java"/>
+ </source>
+ <codeRelation xsi:type="code:HasValue" to="/0/@model.0/@codeElement.7/@codeElement.1/@codeElement.0/@codeElement.1/@codeElement.1/@codeElement.1" from="/0/@model.0/@codeElement.7/@codeElement.1/@codeElement.0/@codeElement.1/@codeElement.1/@codeElement.0"/>
+ </codeElement>
+ <codeElement xsi:type="action:ActionElement" name="class instance creation" kind="class instance creation">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.14" language="java"/>
+ </source>
+ <actionRelation xsi:type="action:Calls" to="/0/@model.0/@codeElement.7/@codeElement.0/@codeElement.0/@codeElement.1" from="/0/@model.0/@codeElement.7/@codeElement.1/@codeElement.0/@codeElement.1/@codeElement.1/@codeElement.1"/>
+ <actionRelation xsi:type="action:Creates" to="/0/@model.0/@codeElement.7/@codeElement.0/@codeElement.0" from="/0/@model.0/@codeElement.7/@codeElement.1/@codeElement.0/@codeElement.1/@codeElement.1/@codeElement.1"/>
+ </codeElement>
+ </codeElement>
+ <codeElement xsi:type="action:ActionElement" name="variable declaration" kind="variable declaration">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.14" language="java"/>
+ </source>
+ <codeElement xsi:type="code:StorableUnit" name="ic22" type="/0/@model.0/@codeElement.7/@codeElement.0/@codeElement.0" kind="local">
+ <attribute tag="export" value="none"/>
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.14" language="java"/>
+ </source>
+ <codeRelation xsi:type="code:HasValue" to="/0/@model.0/@codeElement.7/@codeElement.1/@codeElement.0/@codeElement.1/@codeElement.2/@codeElement.1" from="/0/@model.0/@codeElement.7/@codeElement.1/@codeElement.0/@codeElement.1/@codeElement.2/@codeElement.0"/>
+ </codeElement>
+ <codeElement xsi:type="action:ActionElement" name="class instance creation" kind="class instance creation">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.14" language="java"/>
+ </source>
+ <actionRelation xsi:type="action:Calls" to="/0/@model.0/@codeElement.7/@codeElement.0/@codeElement.0/@codeElement.1" from="/0/@model.0/@codeElement.7/@codeElement.1/@codeElement.0/@codeElement.1/@codeElement.2/@codeElement.1"/>
+ <actionRelation xsi:type="action:Creates" to="/0/@model.0/@codeElement.7/@codeElement.0/@codeElement.0" from="/0/@model.0/@codeElement.7/@codeElement.1/@codeElement.0/@codeElement.1/@codeElement.2/@codeElement.1"/>
+ </codeElement>
+ </codeElement>
+ <codeElement xsi:type="action:ActionElement" name="variable declaration" kind="variable declaration">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.14" language="java"/>
+ </source>
+ <codeElement xsi:type="code:StorableUnit" name="ic222" type="/0/@model.0/@codeElement.7/@codeElement.0/@codeElement.0" kind="local">
+ <attribute tag="export" value="none"/>
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.14" language="java"/>
+ </source>
+ <codeRelation xsi:type="code:HasValue" to="/0/@model.0/@codeElement.7/@codeElement.1/@codeElement.0/@codeElement.1/@codeElement.3/@codeElement.1" from="/0/@model.0/@codeElement.7/@codeElement.1/@codeElement.0/@codeElement.1/@codeElement.3/@codeElement.0"/>
+ </codeElement>
+ <codeElement xsi:type="action:ActionElement" name="class instance creation" kind="class instance creation">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.14" language="java"/>
+ </source>
+ <actionRelation xsi:type="action:Calls" to="/0/@model.0/@codeElement.7/@codeElement.0/@codeElement.0/@codeElement.1" from="/0/@model.0/@codeElement.7/@codeElement.1/@codeElement.0/@codeElement.1/@codeElement.3/@codeElement.1"/>
+ <actionRelation xsi:type="action:Creates" to="/0/@model.0/@codeElement.7/@codeElement.0/@codeElement.0" from="/0/@model.0/@codeElement.7/@codeElement.1/@codeElement.0/@codeElement.1/@codeElement.3/@codeElement.1"/>
+ </codeElement>
+ </codeElement>
+ <codeElement xsi:type="action:ActionElement" name="variable declaration" kind="variable declaration">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.14" language="java"/>
+ </source>
+ <codeElement xsi:type="code:StorableUnit" name="ic3" type="/0/@model.0/@codeElement.7/@codeElement.0/@codeElement.0/@codeElement.0" kind="local">
+ <attribute tag="export" value="none"/>
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.14" language="java"/>
+ </source>
+ <codeRelation xsi:type="code:HasValue" to="/0/@model.0/@codeElement.7/@codeElement.1/@codeElement.0/@codeElement.1/@codeElement.4/@codeElement.1" from="/0/@model.0/@codeElement.7/@codeElement.1/@codeElement.0/@codeElement.1/@codeElement.4/@codeElement.0"/>
+ </codeElement>
+ <codeElement xsi:type="action:ActionElement" name="class instance creation" kind="class instance creation">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.14" language="java"/>
+ </source>
+ <actionRelation xsi:type="action:Calls" to="/0/@model.0/@codeElement.7/@codeElement.0/@codeElement.0/@codeElement.0/@codeElement.1" from="/0/@model.0/@codeElement.7/@codeElement.1/@codeElement.0/@codeElement.1/@codeElement.4/@codeElement.1"/>
+ <actionRelation xsi:type="action:Creates" to="/0/@model.0/@codeElement.7/@codeElement.0/@codeElement.0/@codeElement.0" from="/0/@model.0/@codeElement.7/@codeElement.1/@codeElement.0/@codeElement.1/@codeElement.4/@codeElement.1"/>
+ </codeElement>
+ </codeElement>
+ </codeElement>
+ </codeElement>
+ </codeElement>
+ </codeElement>
+ <codeElement xsi:type="code:Package" name="methodefromanonymousclassdeclaration">
+ <codeElement xsi:type="code:ClassUnit" name="AnonymousClass" isAbstract="false">
+ <attribute tag="export" value="public"/>
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.15" language="java"/>
+ </source>
+ <comment text="/** &#xA; * Copyright (c) 2009 Mia-Software.&#xA; * All rights reserved. This program and the accompanying materials&#xA; * are made available under the terms of the Eclipse Public License v1.0&#xA; * which accompanies this distribution, and is available at&#xA; * http://www.eclipse.org/legal/epl-v10.html&#xA; * Contributors:&#xA; * Gregoire DUPE (Mia-Software)&#xA; * Romain Dervaux (Mia-Software)&#xA; */&#xA;"/>
+ <codeElement xsi:type="code:MethodUnit" name="main" type="/0/@model.0/@codeElement.8/@codeElement.0/@codeElement.0/@codeElement.0">
+ <attribute tag="export" value="public"/>
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.15" language="java"/>
+ </source>
+ <codeElement xsi:type="code:Signature" name="main">
+ <parameterUnit type="/0/@model.0/@codeElement.22/@codeElement.5" kind="return">
+ <source language="java">
+ <region language="java"/>
+ </source>
+ </parameterUnit>
+ <parameterUnit name="args" type="/0/@model.1/@codeElement.4" kind="unknown">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.15" language="java"/>
+ </source>
+ </parameterUnit>
+ </codeElement>
+ <codeElement xsi:type="action:BlockUnit">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.15" language="java"/>
+ </source>
+ <codeElement xsi:type="action:ActionElement" name="expression statement" kind="expression statement">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.15" language="java"/>
+ </source>
+ <codeElement xsi:type="action:ActionElement" name="class instance creation" kind="class instance creation">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.15" language="java"/>
+ </source>
+ <codeElement xsi:type="code:ClassUnit" name="Anonymous type">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.15" language="java"/>
+ </source>
+ <codeRelation xsi:type="code:Implements" to="/0/@model.1/@codeElement.0/@codeElement.1/@codeElement.12" from="/0/@model.0/@codeElement.8/@codeElement.0/@codeElement.0/@codeElement.1/@codeElement.0/@codeElement.0/@codeElement.0"/>
+ <codeElement xsi:type="code:MethodUnit" name="run" type="/0/@model.0/@codeElement.8/@codeElement.0/@codeElement.0/@codeElement.1/@codeElement.0/@codeElement.0/@codeElement.0/@codeElement.0/@codeElement.0">
+ <attribute tag="export" value="public"/>
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.15" language="java"/>
+ </source>
+ <codeRelation xsi:type="code:HasValue" to="/0/@model.1/@codeElement.0/@codeElement.1/@codeElement.7" from="/0/@model.0/@codeElement.8/@codeElement.0/@codeElement.0/@codeElement.1/@codeElement.0/@codeElement.0/@codeElement.0/@codeElement.0">
+ <annotation text="annotation"/>
+ </codeRelation>
+ <codeElement xsi:type="code:Signature" name="run">
+ <parameterUnit type="/0/@model.0/@codeElement.22/@codeElement.5" kind="return">
+ <source language="java">
+ <region language="java"/>
+ </source>
+ </parameterUnit>
+ </codeElement>
+ <codeElement xsi:type="action:BlockUnit">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.15" language="java"/>
+ </source>
+ <codeElement xsi:type="action:ActionElement" name="expression statement" kind="expression statement">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.15" language="java"/>
+ </source>
+ <codeElement xsi:type="action:ActionElement" name="method invocation" kind="method invocation">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.15" language="java"/>
+ </source>
+ <codeElement xsi:type="code:Value" name="string literal" type="/0/@model.0/@codeElement.22/@codeElement.9" ext="&quot;Hello&quot;">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.15" language="java"/>
+ </source>
+ </codeElement>
+ <actionRelation xsi:type="action:Calls" to="/0/@model.1/@codeElement.0/@codeElement.2/@codeElement.2/@codeElement.0" from="/0/@model.0/@codeElement.8/@codeElement.0/@codeElement.0/@codeElement.1/@codeElement.0/@codeElement.0/@codeElement.0/@codeElement.0/@codeElement.1/@codeElement.0/@codeElement.0"/>
+ </codeElement>
+ </codeElement>
+ </codeElement>
+ </codeElement>
+ <codeElement xsi:type="code:MethodUnit" name="" type="/0/@model.0/@codeElement.8/@codeElement.0/@codeElement.0/@codeElement.1/@codeElement.0/@codeElement.0/@codeElement.0/@codeElement.1/@codeElement.0" kind="constructor" export="unknown">
+ <source language="java">
+ <region language="java"/>
+ </source>
+ <codeElement xsi:type="code:Signature" name=""/>
+ </codeElement>
+ </codeElement>
+ <actionRelation xsi:type="action:Calls" to="/0/@model.0/@codeElement.8/@codeElement.0/@codeElement.0/@codeElement.1/@codeElement.0/@codeElement.0/@codeElement.0/@codeElement.1" from="/0/@model.0/@codeElement.8/@codeElement.0/@codeElement.0/@codeElement.1/@codeElement.0/@codeElement.0"/>
+ <actionRelation xsi:type="action:Creates" to="/0/@model.1/@codeElement.0/@codeElement.1/@codeElement.12" from="/0/@model.0/@codeElement.8/@codeElement.0/@codeElement.0/@codeElement.1/@codeElement.0/@codeElement.0"/>
+ </codeElement>
+ </codeElement>
+ </codeElement>
+ </codeElement>
+ </codeElement>
+ </codeElement>
+ <codeElement xsi:type="code:Package" name="modifiers">
+ <codeElement xsi:type="code:ClassUnit" name="Modifiers" isAbstract="false">
+ <attribute tag="export" value="public abstract"/>
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.16" language="java"/>
+ </source>
+ <comment text="/** &#xA; * Copyright (c) 2009 Mia-Software.&#xA; * All rights reserved. This program and the accompanying materials&#xA; * are made available under the terms of the Eclipse Public License v1.0&#xA; * which accompanies this distribution, and is available at&#xA; * http://www.eclipse.org/legal/epl-v10.html&#xA; * Contributors:&#xA; * Gregoire DUPE (Mia-Software)&#xA; * Romain Dervaux (Mia-Software)&#xA; */&#xA;"/>
+ <codeElement xsi:type="code:StorableUnit" name="f" type="/0/@model.0/@codeElement.22/@codeElement.0" kind="static">
+ <attribute tag="export" value="private"/>
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.16" language="java"/>
+ </source>
+ </codeElement>
+ <codeElement xsi:type="code:MethodUnit" name="method" type="/0/@model.0/@codeElement.9/@codeElement.0/@codeElement.1/@codeElement.0" export="protected">
+ <attribute tag="export" value="protected final"/>
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.16" language="java"/>
+ </source>
+ <codeElement xsi:type="code:Signature" name="method">
+ <parameterUnit type="/0/@model.0/@codeElement.22/@codeElement.0" kind="return">
+ <source language="java">
+ <region language="java"/>
+ </source>
+ </parameterUnit>
+ </codeElement>
+ </codeElement>
+ </codeElement>
+ </codeElement>
+ <codeElement xsi:type="code:Package" name="packageaccess">
+ <codeElement xsi:type="code:ClassUnit" name="PackageAccess" isAbstract="false">
+ <attribute tag="export" value="public"/>
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.17" language="java"/>
+ </source>
+ <comment text="/** &#xA; * Copyright (c) 2009 Mia-Software.&#xA; * All rights reserved. This program and the accompanying materials&#xA; * are made available under the terms of the Eclipse Public License v1.0&#xA; * which accompanies this distribution, and is available at&#xA; * http://www.eclipse.org/legal/epl-v10.html&#xA; * Contributors:&#xA; * Gregoire DUPE (Mia-Software)&#xA; * Romain Dervaux (Mia-Software)&#xA; */&#xA;"/>
+ <codeRelation xsi:type="code:Implements" to="/0/@model.1/@codeElement.1/@codeElement.0/@codeElement.0/@codeElement.0/@codeElement.0/@codeElement.0" from="/0/@model.0/@codeElement.10/@codeElement.0"/>
+ </codeElement>
+ </codeElement>
+ <codeElement xsi:type="code:Package" name="parameterizedtype">
+ <codeElement xsi:type="code:TemplateUnit" name="ParameterizedType2&lt;T1, T2>">
+ <codeElement xsi:type="code:TemplateParameter" name="T1"/>
+ <codeElement xsi:type="code:TemplateParameter" name="T2"/>
+ <codeElement xsi:type="code:ClassUnit" name="ParameterizedType2" isAbstract="false">
+ <attribute tag="export" value="public"/>
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.18" language="java"/>
+ </source>
+ <comment text="/** &#xA; * Copyright (c) 2009 Mia-Software.&#xA; * All rights reserved. This program and the accompanying materials&#xA; * are made available under the terms of the Eclipse Public License v1.0&#xA; * which accompanies this distribution, and is available at&#xA; * http://www.eclipse.org/legal/epl-v10.html&#xA; * Contributors:&#xA; * Fabien Giquel (Mia-Software)&#xA; */&#xA;"/>
+ <codeRelation xsi:type="code:Imports" to="/0/@model.1/@codeElement.0/@codeElement.0/@codeElement.2" from="/0/@model.0/@codeElement.11/@codeElement.0"/>
+ <codeRelation xsi:type="code:Imports" to="/0/@model.1/@codeElement.0/@codeElement.0/@codeElement.0" from="/0/@model.0/@codeElement.11/@codeElement.0"/>
+ <codeRelation xsi:type="code:Imports" to="/0/@model.1/@codeElement.0/@codeElement.0/@codeElement.6" from="/0/@model.0/@codeElement.11/@codeElement.0"/>
+ <codeRelation xsi:type="code:Extends" to="/0/@model.1/@codeElement.0/@codeElement.0/@codeElement.2" from="/0/@model.0/@codeElement.11/@codeElement.0/@codeElement.2"/>
+ <codeElement xsi:type="code:StorableUnit" name="aMap" type="/0/@model.1/@codeElement.11">
+ <attribute tag="export" value="private"/>
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.18" language="java"/>
+ </source>
+ <codeRelation xsi:type="code:HasValue" to="/0/@model.1/@codeElement.36" from="/0/@model.0/@codeElement.11/@codeElement.0/@codeElement.2/@codeElement.0"/>
+ </codeElement>
+ <codeElement xsi:type="code:TemplateUnit" name="MaMethodeParametree">
+ <codeElement xsi:type="code:TemplateParameter" name="T3"/>
+ <codeElement xsi:type="code:MethodUnit" name="MaMethodeParametree" type="/0/@model.0/@codeElement.11/@codeElement.0/@codeElement.2/@codeElement.1/@codeElement.1/@codeElement.0">
+ <attribute tag="export" value="public"/>
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.18" language="java"/>
+ </source>
+ <codeElement xsi:type="code:Signature" name="MaMethodeParametree">
+ <parameterUnit type="/0/@model.0/@codeElement.22/@codeElement.5" kind="return">
+ <source language="java">
+ <region language="java"/>
+ </source>
+ </parameterUnit>
+ <parameterUnit name="aT" type="/0/@model.0/@codeElement.11/@codeElement.0/@codeElement.1" kind="unknown">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.18" language="java"/>
+ </source>
+ </parameterUnit>
+ <parameterUnit name="aP" type="/0/@model.1/@codeElement.13" kind="unknown">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.18" language="java"/>
+ </source>
+ </parameterUnit>
+ </codeElement>
+ <codeElement xsi:type="action:BlockUnit">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.18" language="java"/>
+ </source>
+ <codeElement xsi:type="action:ActionElement" name="expression statement" kind="expression statement">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.18" language="java"/>
+ </source>
+ <codeElement xsi:type="action:ActionElement" name="method invocation" kind="method invocation">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.18" language="java"/>
+ </source>
+ <codeElement xsi:type="action:ActionElement" name="method invocation" kind="method invocation">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.18" language="java"/>
+ </source>
+ <actionRelation xsi:type="action:Calls" to="/0/@model.1/@codeElement.0/@codeElement.1/@codeElement.17/@codeElement.0" from="/0/@model.0/@codeElement.11/@codeElement.0/@codeElement.2/@codeElement.1/@codeElement.1/@codeElement.1/@codeElement.0/@codeElement.0/@codeElement.0"/>
+ </codeElement>
+ <actionRelation xsi:type="action:Calls" to="/0/@model.1/@codeElement.0/@codeElement.2/@codeElement.2/@codeElement.0" from="/0/@model.0/@codeElement.11/@codeElement.0/@codeElement.2/@codeElement.1/@codeElement.1/@codeElement.1/@codeElement.0/@codeElement.0"/>
+ </codeElement>
+ </codeElement>
+ </codeElement>
+ </codeElement>
+ </codeElement>
+ <codeElement xsi:type="code:MethodUnit" name="MaMethodeParametree2" type="/0/@model.0/@codeElement.11/@codeElement.0/@codeElement.2/@codeElement.2/@codeElement.0">
+ <attribute tag="export" value="public"/>
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.18" language="java"/>
+ </source>
+ <codeElement xsi:type="code:Signature" name="MaMethodeParametree2">
+ <parameterUnit type="/0/@model.0/@codeElement.22/@codeElement.5" kind="return">
+ <source language="java">
+ <region language="java"/>
+ </source>
+ </parameterUnit>
+ <parameterUnit name="aP" type="/0/@model.1/@codeElement.15" kind="unknown">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.18" language="java"/>
+ </source>
+ </parameterUnit>
+ </codeElement>
+ <codeElement xsi:type="action:BlockUnit">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.18" language="java"/>
+ </source>
+ </codeElement>
+ </codeElement>
+ </codeElement>
+ </codeElement>
+ <codeElement xsi:type="code:TemplateUnit" name="ParameterizedType&lt;P>">
+ <codeElement xsi:type="code:TemplateParameter" name="P"/>
+ <codeElement xsi:type="code:ClassUnit" name="ParameterizedType" isAbstract="false">
+ <attribute tag="export" value="public"/>
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.19" language="java"/>
+ </source>
+ <comment text="/** &#xA; * Copyright (c) 2009 Mia-Software.&#xA; * All rights reserved. This program and the accompanying materials&#xA; * are made available under the terms of the Eclipse Public License v1.0&#xA; * which accompanies this distribution, and is available at&#xA; * http://www.eclipse.org/legal/epl-v10.html&#xA; * Contributors:&#xA; * Gregoire DUPE (Mia-Software)&#xA; * Romain Dervaux (Mia-Software)&#xA; */&#xA;"/>
+ <codeRelation xsi:type="code:Imports" to="/0/@model.1/@codeElement.49" from="/0/@model.0/@codeElement.11/@codeElement.1"/>
+ <codeElement xsi:type="code:TemplateUnit" name="first">
+ <codeElement xsi:type="code:TemplateParameter" name="X"/>
+ <codeElement xsi:type="code:MethodUnit" name="first" type="/0/@model.0/@codeElement.11/@codeElement.1/@codeElement.1/@codeElement.0/@codeElement.1/@codeElement.0">
+ <attribute tag="export" value="public"/>
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.19" language="java"/>
+ </source>
+ <codeElement xsi:type="code:Signature" name="first">
+ <parameterUnit type="/0/@model.0/@codeElement.11/@codeElement.1/@codeElement.0" kind="return">
+ <source language="java">
+ <region language="java"/>
+ </source>
+ </parameterUnit>
+ <parameterUnit name="x" type="/0/@model.0/@codeElement.11/@codeElement.1/@codeElement.1/@codeElement.0/@codeElement.0" kind="unknown">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.19" language="java"/>
+ </source>
+ </parameterUnit>
+ </codeElement>
+ <codeElement xsi:type="action:BlockUnit">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.19" language="java"/>
+ </source>
+ <codeElement xsi:type="action:BlockUnit">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.19" language="java"/>
+ </source>
+ <codeElement xsi:type="action:ActionElement" name="return" kind="return">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.19" language="java"/>
+ </source>
+ <codeElement xsi:type="action:ActionElement" name="null" kind="null">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.19" language="java"/>
+ </source>
+ </codeElement>
+ </codeElement>
+ </codeElement>
+ </codeElement>
+ </codeElement>
+ </codeElement>
+ <codeElement xsi:type="code:TemplateUnit" name="first">
+ <codeElement xsi:type="code:TemplateParameter" name="X"/>
+ <codeElement xsi:type="code:MethodUnit" name="first" type="/0/@model.0/@codeElement.11/@codeElement.1/@codeElement.1/@codeElement.1/@codeElement.1/@codeElement.0">
+ <attribute tag="export" value="public"/>
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.19" language="java"/>
+ </source>
+ <codeElement xsi:type="code:Signature" name="first">
+ <parameterUnit type="/0/@model.0/@codeElement.11/@codeElement.1/@codeElement.0" kind="return">
+ <source language="java">
+ <region language="java"/>
+ </source>
+ </parameterUnit>
+ <parameterUnit name="x" type="/0/@model.0/@codeElement.11/@codeElement.1/@codeElement.1/@codeElement.1/@codeElement.0" kind="unknown">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.19" language="java"/>
+ </source>
+ </parameterUnit>
+ </codeElement>
+ <codeElement xsi:type="action:BlockUnit">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.19" language="java"/>
+ </source>
+ <codeElement xsi:type="action:BlockUnit">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.19" language="java"/>
+ </source>
+ <codeElement xsi:type="action:ActionElement" name="return" kind="return">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.19" language="java"/>
+ </source>
+ <codeElement xsi:type="action:ActionElement" name="null" kind="null">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.19" language="java"/>
+ </source>
+ </codeElement>
+ </codeElement>
+ </codeElement>
+ </codeElement>
+ </codeElement>
+ </codeElement>
+ <codeElement xsi:type="code:TemplateUnit" name="second">
+ <codeElement xsi:type="code:TemplateParameter" name="X"/>
+ <codeElement xsi:type="code:TemplateParameter" name="Y"/>
+ <codeElement xsi:type="code:MethodUnit" name="second" type="/0/@model.0/@codeElement.11/@codeElement.1/@codeElement.1/@codeElement.2/@codeElement.2/@codeElement.0">
+ <attribute tag="export" value="public"/>
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.19" language="java"/>
+ </source>
+ <codeElement xsi:type="code:Signature" name="second">
+ <parameterUnit type="/0/@model.0/@codeElement.11/@codeElement.1/@codeElement.0" kind="return">
+ <source language="java">
+ <region language="java"/>
+ </source>
+ </parameterUnit>
+ <parameterUnit name="x" type="/0/@model.0/@codeElement.11/@codeElement.1/@codeElement.1/@codeElement.2/@codeElement.0" kind="unknown">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.19" language="java"/>
+ </source>
+ </parameterUnit>
+ </codeElement>
+ <codeElement xsi:type="action:BlockUnit">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.19" language="java"/>
+ </source>
+ <codeElement xsi:type="action:BlockUnit">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.19" language="java"/>
+ </source>
+ <codeElement xsi:type="action:ActionElement" name="return" kind="return">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.19" language="java"/>
+ </source>
+ <codeElement xsi:type="action:ActionElement" name="null" kind="null">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.19" language="java"/>
+ </source>
+ </codeElement>
+ </codeElement>
+ </codeElement>
+ </codeElement>
+ </codeElement>
+ </codeElement>
+ </codeElement>
+ </codeElement>
+ </codeElement>
+ <codeElement xsi:type="code:Package" name="parameterizedtypeinmethoddecl">
+ <codeElement xsi:type="code:ClassUnit" name="Class1" isAbstract="false">
+ <attribute tag="export" value="public"/>
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.20" language="java"/>
+ </source>
+ <comment text="/** &#xA; * Copyright (c) 2009 Mia-Software.&#xA; * All rights reserved. This program and the accompanying materials&#xA; * are made available under the terms of the Eclipse Public License v1.0&#xA; * which accompanies this distribution, and is available at&#xA; * http://www.eclipse.org/legal/epl-v10.html&#xA; * Contributors:&#xA; * Gregoire DUPE (Mia-Software)&#xA; * Romain Dervaux (Mia-Software)&#xA; */&#xA;"/>
+ <codeRelation xsi:type="code:Imports" to="/0/@model.1/@codeElement.0/@codeElement.0/@codeElement.7" from="/0/@model.0/@codeElement.12/@codeElement.0"/>
+ <codeElement xsi:type="code:TemplateUnit" name="accept">
+ <codeElement xsi:type="code:TemplateParameter" name="R"/>
+ <codeElement xsi:type="code:TemplateParameter" name="P"/>
+ <codeElement xsi:type="code:MethodUnit" name="accept" type="/0/@model.0/@codeElement.12/@codeElement.0/@codeElement.0/@codeElement.2/@codeElement.0">
+ <attribute tag="export" value="public"/>
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.20" language="java"/>
+ </source>
+ <codeElement xsi:type="code:Signature" name="accept">
+ <parameterUnit type="/0/@model.0/@codeElement.12/@codeElement.0/@codeElement.0/@codeElement.0" kind="return">
+ <source language="java">
+ <region language="java"/>
+ </source>
+ </parameterUnit>
+ <parameterUnit name="v" type="/0/@model.1/@codeElement.16" kind="unknown">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.20" language="java"/>
+ </source>
+ </parameterUnit>
+ <parameterUnit name="p" type="/0/@model.0/@codeElement.12/@codeElement.0/@codeElement.0/@codeElement.1" kind="unknown">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.20" language="java"/>
+ </source>
+ </parameterUnit>
+ </codeElement>
+ <codeElement xsi:type="action:BlockUnit">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.20" language="java"/>
+ </source>
+ <codeElement xsi:type="action:ActionElement" name="return" kind="return">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.20" language="java"/>
+ </source>
+ <codeElement xsi:type="action:ActionElement" name="method invocation" kind="method invocation">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.20" language="java"/>
+ </source>
+ <codeElement xsi:type="action:ActionElement" name="method invocation" kind="method invocation">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.20" language="java"/>
+ </source>
+ <codeElement xsi:type="action:ActionElement" name="method invocation" kind="method invocation">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.20" language="java"/>
+ </source>
+ <actionRelation xsi:type="action:Calls" to="/0/@model.1/@codeElement.0/@codeElement.0/@codeElement.7/@codeElement.2/@codeElement.0" from="/0/@model.0/@codeElement.12/@codeElement.0/@codeElement.0/@codeElement.2/@codeElement.1/@codeElement.0/@codeElement.0/@codeElement.0/@codeElement.0"/>
+ </codeElement>
+ <actionRelation xsi:type="action:Calls" to="/0/@model.1/@codeElement.0/@codeElement.0/@codeElement.9/@codeElement.1/@codeElement.0" from="/0/@model.0/@codeElement.12/@codeElement.0/@codeElement.0/@codeElement.2/@codeElement.1/@codeElement.0/@codeElement.0/@codeElement.0"/>
+ </codeElement>
+ <actionRelation xsi:type="action:Calls" to="/0/@model.1/@codeElement.0/@codeElement.0/@codeElement.10/@codeElement.1/@codeElement.0" from="/0/@model.0/@codeElement.12/@codeElement.0/@codeElement.0/@codeElement.2/@codeElement.1/@codeElement.0/@codeElement.0"/>
+ </codeElement>
+ </codeElement>
+ </codeElement>
+ </codeElement>
+ </codeElement>
+ </codeElement>
+ </codeElement>
+ <codeElement xsi:type="code:Package" name="proxyField">
+ <codeElement xsi:type="code:Package" name="p1">
+ <codeElement xsi:type="code:ClassUnit" name="PFClass1" isAbstract="false">
+ <attribute tag="export" value="public"/>
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.21" language="java"/>
+ </source>
+ <comment text="/** &#xA; * Copyright (c) 2009 Mia-Software.&#xA; * All rights reserved. This program and the accompanying materials&#xA; * are made available under the terms of the Eclipse Public License v1.0&#xA; * which accompanies this distribution, and is available at&#xA; * http://www.eclipse.org/legal/epl-v10.html&#xA; * Contributors:&#xA; * Gregoire DUPE (Mia-Software)&#xA; * Romain Dervaux (Mia-Software)&#xA; */&#xA;"/>
+ <codeRelation xsi:type="code:Imports" to="/0/@model.0/@codeElement.13/@codeElement.1/@codeElement.0" from="/0/@model.0/@codeElement.13/@codeElement.0/@codeElement.0"/>
+ <codeElement xsi:type="code:StorableUnit" name="s1" type="/0/@model.1/@codeElement.0/@codeElement.1/@codeElement.8">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.21" language="java"/>
+ </source>
+ </codeElement>
+ <codeElement xsi:type="code:StorableUnit" name="s2" type="/0/@model.1/@codeElement.0/@codeElement.1/@codeElement.8">
+ <attribute tag="export" value="public"/>
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.21" language="java"/>
+ </source>
+ </codeElement>
+ <codeElement xsi:type="code:MethodUnit" name="main" type="/0/@model.0/@codeElement.13/@codeElement.0/@codeElement.0/@codeElement.2/@codeElement.0">
+ <attribute tag="export" value="public"/>
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.21" language="java"/>
+ </source>
+ <codeElement xsi:type="code:Signature" name="main">
+ <parameterUnit type="/0/@model.0/@codeElement.22/@codeElement.5" kind="return">
+ <source language="java">
+ <region language="java"/>
+ </source>
+ </parameterUnit>
+ <parameterUnit name="args" type="/0/@model.1/@codeElement.4" kind="unknown">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.21" language="java"/>
+ </source>
+ </parameterUnit>
+ </codeElement>
+ <codeElement xsi:type="action:BlockUnit">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.21" language="java"/>
+ </source>
+ <codeElement xsi:type="action:ActionElement" name="expression statement" kind="expression statement">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.21" language="java"/>
+ </source>
+ <codeElement xsi:type="action:ActionElement" name="ASSIGN" kind="assignment">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.21" language="java"/>
+ </source>
+ <codeElement xsi:type="action:ActionElement" name="field access" kind="field access">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.21" language="java"/>
+ </source>
+ <codeElement xsi:type="action:ActionElement" name="class instance creation" kind="class instance creation">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.21" language="java"/>
+ </source>
+ <actionRelation xsi:type="action:Calls" to="/0/@model.0/@codeElement.13/@codeElement.1/@codeElement.0/@codeElement.7" from="/0/@model.0/@codeElement.13/@codeElement.0/@codeElement.0/@codeElement.2/@codeElement.1/@codeElement.0/@codeElement.0/@codeElement.0/@codeElement.0"/>
+ <actionRelation xsi:type="action:Creates" to="/0/@model.0/@codeElement.13/@codeElement.1/@codeElement.0" from="/0/@model.0/@codeElement.13/@codeElement.0/@codeElement.0/@codeElement.2/@codeElement.1/@codeElement.0/@codeElement.0/@codeElement.0/@codeElement.0"/>
+ </codeElement>
+ <actionRelation xsi:type="action:Addresses" to="/0/@model.0/@codeElement.13/@codeElement.1/@codeElement.0/@codeElement.2" from="/0/@model.0/@codeElement.13/@codeElement.0/@codeElement.0/@codeElement.2/@codeElement.1/@codeElement.0/@codeElement.0/@codeElement.0"/>
+ </codeElement>
+ <codeElement xsi:type="code:Value" name="string literal" type="/0/@model.0/@codeElement.22/@codeElement.9" ext="&quot;hello&quot;">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.21" language="java"/>
+ </source>
+ </codeElement>
+ </codeElement>
+ </codeElement>
+ <codeElement xsi:type="action:ActionElement" name="expression statement" kind="expression statement">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.21" language="java"/>
+ </source>
+ <codeElement xsi:type="action:ActionElement" name="ASSIGN" kind="assignment">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.21" language="java"/>
+ </source>
+ <codeElement xsi:type="action:ActionElement" name="field access" kind="field access">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.21" language="java"/>
+ </source>
+ <codeElement xsi:type="action:ActionElement" name="class instance creation" kind="class instance creation">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.21" language="java"/>
+ </source>
+ <actionRelation xsi:type="action:Calls" to="/0/@model.0/@codeElement.13/@codeElement.1/@codeElement.0/@codeElement.7" from="/0/@model.0/@codeElement.13/@codeElement.0/@codeElement.0/@codeElement.2/@codeElement.1/@codeElement.1/@codeElement.0/@codeElement.0/@codeElement.0"/>
+ <actionRelation xsi:type="action:Creates" to="/0/@model.0/@codeElement.13/@codeElement.1/@codeElement.0" from="/0/@model.0/@codeElement.13/@codeElement.0/@codeElement.0/@codeElement.2/@codeElement.1/@codeElement.1/@codeElement.0/@codeElement.0/@codeElement.0"/>
+ </codeElement>
+ <actionRelation xsi:type="action:Addresses" to="/0/@model.0/@codeElement.13/@codeElement.1/@codeElement.0/@codeElement.3" from="/0/@model.0/@codeElement.13/@codeElement.0/@codeElement.0/@codeElement.2/@codeElement.1/@codeElement.1/@codeElement.0/@codeElement.0"/>
+ </codeElement>
+ <codeElement xsi:type="code:Value" name="string literal" type="/0/@model.0/@codeElement.22/@codeElement.9" ext="&quot;hello&quot;">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.21" language="java"/>
+ </source>
+ </codeElement>
+ </codeElement>
+ </codeElement>
+ </codeElement>
+ </codeElement>
+ <codeElement xsi:type="code:MethodUnit" name="PFClass1" type="/0/@model.0/@codeElement.13/@codeElement.0/@codeElement.0/@codeElement.3/@codeElement.0" kind="constructor" export="unknown">
+ <source language="java">
+ <region language="java"/>
+ </source>
+ <codeElement xsi:type="code:Signature" name="PFClass1"/>
+ </codeElement>
+ </codeElement>
+ </codeElement>
+ <codeElement xsi:type="code:Package" name="p2">
+ <codeElement xsi:type="code:ClassUnit" name="PFClass2" isAbstract="false">
+ <attribute tag="export" value="public"/>
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.22" language="java"/>
+ </source>
+ <comment text="/** &#xA; * Copyright (c) 2009 Mia-Software.&#xA; * All rights reserved. This program and the accompanying materials&#xA; * are made available under the terms of the Eclipse Public License v1.0&#xA; * which accompanies this distribution, and is available at&#xA; * http://www.eclipse.org/legal/epl-v10.html&#xA; * Contributors:&#xA; * Gregoire DUPE (Mia-Software)&#xA; * Romain Dervaux (Mia-Software)&#xA; */&#xA;"/>
+ <codeRelation xsi:type="code:Imports" to="/0/@model.0/@codeElement.13/@codeElement.0/@codeElement.0" from="/0/@model.0/@codeElement.13/@codeElement.1/@codeElement.0"/>
+ <codeElement xsi:type="code:StorableUnit" name="a1" type="/0/@model.1/@codeElement.0/@codeElement.1/@codeElement.8">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.22" language="java"/>
+ </source>
+ </codeElement>
+ <codeElement xsi:type="code:StorableUnit" name="a2" type="/0/@model.1/@codeElement.0/@codeElement.1/@codeElement.8">
+ <attribute tag="export" value="public"/>
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.22" language="java"/>
+ </source>
+ </codeElement>
+ <codeElement xsi:type="code:StorableUnit" name="b1" type="/0/@model.1/@codeElement.0/@codeElement.1/@codeElement.8">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.22" language="java"/>
+ </source>
+ </codeElement>
+ <codeElement xsi:type="code:StorableUnit" name="b2" type="/0/@model.1/@codeElement.0/@codeElement.1/@codeElement.8">
+ <attribute tag="export" value="public"/>
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.22" language="java"/>
+ </source>
+ </codeElement>
+ <codeElement xsi:type="code:StorableUnit" name="c1" type="/0/@model.1/@codeElement.0/@codeElement.1/@codeElement.8">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.22" language="java"/>
+ </source>
+ </codeElement>
+ <codeElement xsi:type="code:StorableUnit" name="c2" type="/0/@model.1/@codeElement.0/@codeElement.1/@codeElement.8">
+ <attribute tag="export" value="public"/>
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.22" language="java"/>
+ </source>
+ </codeElement>
+ <codeElement xsi:type="code:MethodUnit" name="main" type="/0/@model.0/@codeElement.13/@codeElement.1/@codeElement.0/@codeElement.6/@codeElement.0">
+ <attribute tag="export" value="public"/>
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.22" language="java"/>
+ </source>
+ <codeElement xsi:type="code:Signature" name="main">
+ <parameterUnit type="/0/@model.0/@codeElement.22/@codeElement.5" kind="return">
+ <source language="java">
+ <region language="java"/>
+ </source>
+ </parameterUnit>
+ <parameterUnit name="args" type="/0/@model.1/@codeElement.4" kind="unknown">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.22" language="java"/>
+ </source>
+ </parameterUnit>
+ </codeElement>
+ <codeElement xsi:type="action:BlockUnit">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.22" language="java"/>
+ </source>
+ <codeElement xsi:type="action:ActionElement" name="expression statement" kind="expression statement">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.22" language="java"/>
+ </source>
+ <codeElement xsi:type="action:ActionElement" name="ASSIGN" kind="assignment">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.22" language="java"/>
+ </source>
+ <codeElement xsi:type="action:ActionElement" name="field access" kind="field access">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.22" language="java"/>
+ </source>
+ <codeElement xsi:type="action:ActionElement" name="class instance creation" kind="class instance creation">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.22" language="java"/>
+ </source>
+ <actionRelation xsi:type="action:Calls" to="/0/@model.0/@codeElement.13/@codeElement.0/@codeElement.0/@codeElement.3" from="/0/@model.0/@codeElement.13/@codeElement.1/@codeElement.0/@codeElement.6/@codeElement.1/@codeElement.0/@codeElement.0/@codeElement.0/@codeElement.0"/>
+ <actionRelation xsi:type="action:Creates" to="/0/@model.0/@codeElement.13/@codeElement.0/@codeElement.0" from="/0/@model.0/@codeElement.13/@codeElement.1/@codeElement.0/@codeElement.6/@codeElement.1/@codeElement.0/@codeElement.0/@codeElement.0/@codeElement.0"/>
+ </codeElement>
+ <actionRelation xsi:type="action:Addresses" to="/0/@model.0/@codeElement.13/@codeElement.0/@codeElement.0/@codeElement.0" from="/0/@model.0/@codeElement.13/@codeElement.1/@codeElement.0/@codeElement.6/@codeElement.1/@codeElement.0/@codeElement.0/@codeElement.0"/>
+ </codeElement>
+ <codeElement xsi:type="code:Value" name="string literal" type="/0/@model.0/@codeElement.22/@codeElement.9" ext="&quot;hello&quot;">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.22" language="java"/>
+ </source>
+ </codeElement>
+ </codeElement>
+ </codeElement>
+ <codeElement xsi:type="action:ActionElement" name="expression statement" kind="expression statement">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.22" language="java"/>
+ </source>
+ <codeElement xsi:type="action:ActionElement" name="ASSIGN" kind="assignment">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.22" language="java"/>
+ </source>
+ <codeElement xsi:type="action:ActionElement" name="field access" kind="field access">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.22" language="java"/>
+ </source>
+ <codeElement xsi:type="action:ActionElement" name="class instance creation" kind="class instance creation">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.22" language="java"/>
+ </source>
+ <actionRelation xsi:type="action:Calls" to="/0/@model.0/@codeElement.13/@codeElement.0/@codeElement.0/@codeElement.3" from="/0/@model.0/@codeElement.13/@codeElement.1/@codeElement.0/@codeElement.6/@codeElement.1/@codeElement.1/@codeElement.0/@codeElement.0/@codeElement.0"/>
+ <actionRelation xsi:type="action:Creates" to="/0/@model.0/@codeElement.13/@codeElement.0/@codeElement.0" from="/0/@model.0/@codeElement.13/@codeElement.1/@codeElement.0/@codeElement.6/@codeElement.1/@codeElement.1/@codeElement.0/@codeElement.0/@codeElement.0"/>
+ </codeElement>
+ <actionRelation xsi:type="action:Addresses" to="/0/@model.0/@codeElement.13/@codeElement.0/@codeElement.0/@codeElement.1" from="/0/@model.0/@codeElement.13/@codeElement.1/@codeElement.0/@codeElement.6/@codeElement.1/@codeElement.1/@codeElement.0/@codeElement.0"/>
+ </codeElement>
+ <codeElement xsi:type="code:Value" name="string literal" type="/0/@model.0/@codeElement.22/@codeElement.9" ext="&quot;hello&quot;">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.22" language="java"/>
+ </source>
+ </codeElement>
+ </codeElement>
+ </codeElement>
+ </codeElement>
+ </codeElement>
+ <codeElement xsi:type="code:MethodUnit" name="PFClass2" type="/0/@model.0/@codeElement.13/@codeElement.1/@codeElement.0/@codeElement.7/@codeElement.0" kind="constructor" export="unknown">
+ <source language="java">
+ <region language="java"/>
+ </source>
+ <codeElement xsi:type="code:Signature" name="PFClass2"/>
+ </codeElement>
+ </codeElement>
+ </codeElement>
+ </codeElement>
+ <codeElement xsi:type="code:Package" name="proxyparameters">
+ <codeElement xsi:type="code:Package" name="p1">
+ <codeElement xsi:type="code:ClassUnit" name="ProxyParameters1" isAbstract="false">
+ <attribute tag="export" value="public"/>
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.23" language="java"/>
+ </source>
+ <comment text="/** &#xA; * Copyright (c) 2009 Mia-Software.&#xA; * All rights reserved. This program and the accompanying materials&#xA; * are made available under the terms of the Eclipse Public License v1.0&#xA; * which accompanies this distribution, and is available at&#xA; * http://www.eclipse.org/legal/epl-v10.html&#xA; * Contributors:&#xA; * Gregoire DUPE (Mia-Software)&#xA; * Romain Dervaux (Mia-Software)&#xA; */&#xA;"/>
+ <codeRelation xsi:type="code:Imports" to="/0/@model.0/@codeElement.14/@codeElement.1/@codeElement.0" from="/0/@model.0/@codeElement.14/@codeElement.0/@codeElement.0"/>
+ <codeElement xsi:type="code:MethodUnit" name="main" type="/0/@model.0/@codeElement.14/@codeElement.0/@codeElement.0/@codeElement.0/@codeElement.0">
+ <attribute tag="export" value="public"/>
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.23" language="java"/>
+ </source>
+ <codeElement xsi:type="code:Signature" name="main">
+ <parameterUnit type="/0/@model.0/@codeElement.22/@codeElement.5" kind="return">
+ <source language="java">
+ <region language="java"/>
+ </source>
+ </parameterUnit>
+ <parameterUnit name="args" type="/0/@model.1/@codeElement.4" kind="unknown">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.23" language="java"/>
+ </source>
+ </parameterUnit>
+ </codeElement>
+ <codeElement xsi:type="action:BlockUnit">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.23" language="java"/>
+ </source>
+ <codeElement xsi:type="action:ActionElement" name="expression statement" kind="expression statement">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.23" language="java"/>
+ </source>
+ <codeElement xsi:type="action:ActionElement" name="method invocation" kind="method invocation">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.23" language="java"/>
+ </source>
+ <codeElement xsi:type="action:ActionElement" name="class instance creation" kind="class instance creation">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.23" language="java"/>
+ </source>
+ <actionRelation xsi:type="action:Calls" to="/0/@model.0/@codeElement.14/@codeElement.1/@codeElement.0/@codeElement.1" from="/0/@model.0/@codeElement.14/@codeElement.0/@codeElement.0/@codeElement.0/@codeElement.1/@codeElement.0/@codeElement.0/@codeElement.0"/>
+ <actionRelation xsi:type="action:Creates" to="/0/@model.0/@codeElement.14/@codeElement.1/@codeElement.0" from="/0/@model.0/@codeElement.14/@codeElement.0/@codeElement.0/@codeElement.0/@codeElement.1/@codeElement.0/@codeElement.0/@codeElement.0"/>
+ </codeElement>
+ <codeElement xsi:type="code:Value" name="number literal" type="/0/@model.0/@codeElement.22/@codeElement.0" ext="0">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.23" language="java"/>
+ </source>
+ </codeElement>
+ <actionRelation xsi:type="action:Calls" to="/0/@model.0/@codeElement.14/@codeElement.1/@codeElement.0/@codeElement.0" from="/0/@model.0/@codeElement.14/@codeElement.0/@codeElement.0/@codeElement.0/@codeElement.1/@codeElement.0/@codeElement.0"/>
+ </codeElement>
+ </codeElement>
+ </codeElement>
+ </codeElement>
+ <codeElement xsi:type="code:MethodUnit" name="test" type="/0/@model.0/@codeElement.14/@codeElement.0/@codeElement.0/@codeElement.1/@codeElement.0">
+ <attribute tag="export" value="public"/>
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.23" language="java"/>
+ </source>
+ <codeElement xsi:type="code:Signature" name="test">
+ <parameterUnit type="/0/@model.0/@codeElement.22/@codeElement.5" kind="return">
+ <source language="java">
+ <region language="java"/>
+ </source>
+ </parameterUnit>
+ <parameterUnit name="param1" type="/0/@model.0/@codeElement.22/@codeElement.0" kind="unknown">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.23" language="java"/>
+ </source>
+ </parameterUnit>
+ </codeElement>
+ <codeElement xsi:type="action:BlockUnit">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.23" language="java"/>
+ </source>
+ </codeElement>
+ </codeElement>
+ </codeElement>
+ </codeElement>
+ <codeElement xsi:type="code:Package" name="p2">
+ <codeElement xsi:type="code:ClassUnit" name="ProxyParameters2" isAbstract="false">
+ <attribute tag="export" value="public"/>
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.24" language="java"/>
+ </source>
+ <comment text="/** &#xA; * Copyright (c) 2009 Mia-Software.&#xA; * All rights reserved. This program and the accompanying materials&#xA; * are made available under the terms of the Eclipse Public License v1.0&#xA; * which accompanies this distribution, and is available at&#xA; * http://www.eclipse.org/legal/epl-v10.html&#xA; * Contributors:&#xA; * Gregoire DUPE (Mia-Software)&#xA; * Romain Dervaux (Mia-Software)&#xA; */&#xA;"/>
+ <codeElement xsi:type="code:MethodUnit" name="test" type="/0/@model.0/@codeElement.14/@codeElement.1/@codeElement.0/@codeElement.0/@codeElement.0">
+ <attribute tag="export" value="public"/>
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.24" language="java"/>
+ </source>
+ <codeElement xsi:type="code:Signature" name="test">
+ <parameterUnit type="/0/@model.0/@codeElement.22/@codeElement.5" kind="return">
+ <source language="java">
+ <region language="java"/>
+ </source>
+ </parameterUnit>
+ <parameterUnit name="param1" type="/0/@model.0/@codeElement.22/@codeElement.0" kind="unknown">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.24" language="java"/>
+ </source>
+ </parameterUnit>
+ </codeElement>
+ <codeElement xsi:type="action:BlockUnit">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.24" language="java"/>
+ </source>
+ </codeElement>
+ </codeElement>
+ <codeElement xsi:type="code:MethodUnit" name="ProxyParameters2" type="/0/@model.0/@codeElement.14/@codeElement.1/@codeElement.0/@codeElement.1/@codeElement.0" kind="constructor" export="unknown">
+ <source language="java">
+ <region language="java"/>
+ </source>
+ <codeElement xsi:type="code:Signature" name="ProxyParameters2"/>
+ </codeElement>
+ </codeElement>
+ </codeElement>
+ </codeElement>
+ <codeElement xsi:type="code:Package" name="resolvebinding">
+ <codeElement xsi:type="code:Package" name="p1">
+ <codeElement xsi:type="code:ClassUnit" name="ResolveBindind1" isAbstract="false">
+ <attribute tag="export" value="public"/>
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.25" language="java"/>
+ </source>
+ <comment text="/** &#xA; * Copyright (c) 2009 Mia-Software.&#xA; * All rights reserved. This program and the accompanying materials&#xA; * are made available under the terms of the Eclipse Public License v1.0&#xA; * which accompanies this distribution, and is available at&#xA; * http://www.eclipse.org/legal/epl-v10.html&#xA; * Contributors:&#xA; * Gregoire DUPE (Mia-Software)&#xA; * Romain Dervaux (Mia-Software)&#xA; */&#xA;"/>
+ <codeElement xsi:type="code:MethodUnit" name="main" type="/0/@model.0/@codeElement.15/@codeElement.0/@codeElement.0/@codeElement.0/@codeElement.0">
+ <attribute tag="export" value="public"/>
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.25" language="java"/>
+ </source>
+ <codeElement xsi:type="code:Signature" name="main">
+ <parameterUnit type="/0/@model.0/@codeElement.22/@codeElement.5" kind="return">
+ <source language="java">
+ <region language="java"/>
+ </source>
+ </parameterUnit>
+ <parameterUnit name="args" type="/0/@model.1/@codeElement.4" kind="unknown">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.25" language="java"/>
+ </source>
+ </parameterUnit>
+ </codeElement>
+ <codeElement xsi:type="action:BlockUnit">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.25" language="java"/>
+ </source>
+ <codeElement xsi:type="action:ActionElement" name="expression statement" kind="expression statement">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.25" language="java"/>
+ </source>
+ <comment text="//&#x9;&#x9;new ResolveBindind2().new SubResolveBinding2();"/>
+ <codeElement xsi:type="action:ActionElement" name="class instance creation" kind="class instance creation">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.25" language="java"/>
+ </source>
+ <codeElement xsi:type="action:ActionElement" name="class instance creation" kind="class instance creation">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.25" language="java"/>
+ </source>
+ <actionRelation xsi:type="action:Calls" to="/0/@model.0/@codeElement.15/@codeElement.0/@codeElement.0/@codeElement.3" from="/0/@model.0/@codeElement.15/@codeElement.0/@codeElement.0/@codeElement.0/@codeElement.1/@codeElement.0/@codeElement.0/@codeElement.0"/>
+ <actionRelation xsi:type="action:Creates" to="/0/@model.0/@codeElement.15/@codeElement.0/@codeElement.0" from="/0/@model.0/@codeElement.15/@codeElement.0/@codeElement.0/@codeElement.0/@codeElement.1/@codeElement.0/@codeElement.0/@codeElement.0"/>
+ </codeElement>
+ <actionRelation xsi:type="action:Calls" to="/0/@model.0/@codeElement.15/@codeElement.0/@codeElement.0/@codeElement.2/@codeElement.0" from="/0/@model.0/@codeElement.15/@codeElement.0/@codeElement.0/@codeElement.0/@codeElement.1/@codeElement.0/@codeElement.0"/>
+ <actionRelation xsi:type="action:Creates" to="/0/@model.0/@codeElement.15/@codeElement.0/@codeElement.0/@codeElement.2" from="/0/@model.0/@codeElement.15/@codeElement.0/@codeElement.0/@codeElement.0/@codeElement.1/@codeElement.0/@codeElement.0"/>
+ </codeElement>
+ </codeElement>
+ </codeElement>
+ </codeElement>
+ <codeElement xsi:type="code:MethodUnit" name="m1" type="/0/@model.0/@codeElement.15/@codeElement.0/@codeElement.0/@codeElement.1/@codeElement.0">
+ <attribute tag="export" value="public"/>
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.25" language="java"/>
+ </source>
+ <codeElement xsi:type="code:Signature" name="m1">
+ <parameterUnit type="/0/@model.0/@codeElement.22/@codeElement.5" kind="return">
+ <source language="java">
+ <region language="java"/>
+ </source>
+ </parameterUnit>
+ <parameterUnit name="rb2" type="/0/@model.0/@codeElement.15/@codeElement.0/@codeElement.0" kind="unknown">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.25" language="java"/>
+ </source>
+ </parameterUnit>
+ </codeElement>
+ <codeElement xsi:type="action:BlockUnit">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.25" language="java"/>
+ </source>
+ </codeElement>
+ </codeElement>
+ <codeElement xsi:type="code:ClassUnit" name="SubResolveBinding1" isAbstract="false">
+ <attribute tag="export" value="public"/>
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.25" language="java"/>
+ </source>
+ <codeElement xsi:type="code:MethodUnit" name="SubResolveBinding1" type="/0/@model.0/@codeElement.15/@codeElement.0/@codeElement.0/@codeElement.2/@codeElement.0/@codeElement.0" kind="constructor" export="unknown">
+ <source language="java">
+ <region language="java"/>
+ </source>
+ <codeElement xsi:type="code:Signature" name="SubResolveBinding1"/>
+ </codeElement>
+ </codeElement>
+ <codeElement xsi:type="code:MethodUnit" name="ResolveBindind1" type="/0/@model.0/@codeElement.15/@codeElement.0/@codeElement.0/@codeElement.3/@codeElement.0" kind="constructor" export="unknown">
+ <source language="java">
+ <region language="java"/>
+ </source>
+ <codeElement xsi:type="code:Signature" name="ResolveBindind1"/>
+ </codeElement>
+ </codeElement>
+ </codeElement>
+ </codeElement>
+ <codeElement xsi:type="code:Package" name="test001">
+ <codeElement xsi:type="code:Package" name="p1">
+ <codeElement xsi:type="code:ClassUnit" name="Class1" isAbstract="false">
+ <attribute tag="export" value="public"/>
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.26" language="java"/>
+ </source>
+ <comment text="/** &#xA; * Copyright (c) 2009 Mia-Software.&#xA; * All rights reserved. This program and the accompanying materials&#xA; * are made available under the terms of the Eclipse Public License v1.0&#xA; * which accompanies this distribution, and is available at&#xA; * http://www.eclipse.org/legal/epl-v10.html&#xA; * Contributors:&#xA; * Gregoire DUPE (Mia-Software)&#xA; * Romain Dervaux (Mia-Software)&#xA; */&#xA;"/>
+ <codeRelation xsi:type="code:Imports" to="/0/@model.0/@codeElement.16/@codeElement.1/@codeElement.0" from="/0/@model.0/@codeElement.16/@codeElement.0/@codeElement.0"/>
+ <codeElement xsi:type="code:MethodUnit" name="main" type="/0/@model.0/@codeElement.16/@codeElement.0/@codeElement.0/@codeElement.0/@codeElement.0">
+ <attribute tag="export" value="public"/>
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.26" language="java"/>
+ </source>
+ <codeElement xsi:type="code:Signature" name="main">
+ <parameterUnit type="/0/@model.0/@codeElement.22/@codeElement.5" kind="return">
+ <source language="java">
+ <region language="java"/>
+ </source>
+ </parameterUnit>
+ <parameterUnit name="args" type="/0/@model.1/@codeElement.4" kind="unknown">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.26" language="java"/>
+ </source>
+ </parameterUnit>
+ </codeElement>
+ <codeElement xsi:type="action:BlockUnit">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.26" language="java"/>
+ </source>
+ <codeElement xsi:type="action:ActionElement" name="variable declaration" kind="variable declaration">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.26" language="java"/>
+ </source>
+ <codeElement xsi:type="code:StorableUnit" name="c2" type="/0/@model.0/@codeElement.16/@codeElement.1/@codeElement.0" kind="local">
+ <attribute tag="export" value="none"/>
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.26" language="java"/>
+ </source>
+ <codeRelation xsi:type="code:HasValue" to="/0/@model.0/@codeElement.16/@codeElement.0/@codeElement.0/@codeElement.0/@codeElement.1/@codeElement.0/@codeElement.1" from="/0/@model.0/@codeElement.16/@codeElement.0/@codeElement.0/@codeElement.0/@codeElement.1/@codeElement.0/@codeElement.0"/>
+ </codeElement>
+ <codeElement xsi:type="action:ActionElement" name="class instance creation" kind="class instance creation">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.26" language="java"/>
+ </source>
+ <actionRelation xsi:type="action:Calls" to="/0/@model.0/@codeElement.16/@codeElement.1/@codeElement.0/@codeElement.1" from="/0/@model.0/@codeElement.16/@codeElement.0/@codeElement.0/@codeElement.0/@codeElement.1/@codeElement.0/@codeElement.1"/>
+ <actionRelation xsi:type="action:Creates" to="/0/@model.0/@codeElement.16/@codeElement.1/@codeElement.0" from="/0/@model.0/@codeElement.16/@codeElement.0/@codeElement.0/@codeElement.0/@codeElement.1/@codeElement.0/@codeElement.1"/>
+ </codeElement>
+ </codeElement>
+ </codeElement>
+ </codeElement>
+ <codeElement xsi:type="code:MethodUnit" name="Class1" type="/0/@model.0/@codeElement.16/@codeElement.0/@codeElement.0/@codeElement.1/@codeElement.0" kind="constructor" export="unknown">
+ <source language="java">
+ <region language="java"/>
+ </source>
+ <codeElement xsi:type="code:Signature" name="Class1"/>
+ </codeElement>
+ </codeElement>
+ </codeElement>
+ <codeElement xsi:type="code:Package" name="p2">
+ <codeElement xsi:type="code:ClassUnit" name="Class2" isAbstract="false">
+ <attribute tag="export" value="public"/>
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.27" language="java"/>
+ </source>
+ <comment text="/** &#xA; * Copyright (c) 2009 Mia-Software.&#xA; * All rights reserved. This program and the accompanying materials&#xA; * are made available under the terms of the Eclipse Public License v1.0&#xA; * which accompanies this distribution, and is available at&#xA; * http://www.eclipse.org/legal/epl-v10.html&#xA; * Contributors:&#xA; * Gregoire DUPE (Mia-Software)&#xA; * Romain Dervaux (Mia-Software)&#xA; */&#xA;"/>
+ <codeRelation xsi:type="code:Imports" to="/0/@model.0/@codeElement.16/@codeElement.0/@codeElement.0" from="/0/@model.0/@codeElement.16/@codeElement.1/@codeElement.0"/>
+ <codeElement xsi:type="code:MethodUnit" name="main" type="/0/@model.0/@codeElement.16/@codeElement.1/@codeElement.0/@codeElement.0/@codeElement.0">
+ <attribute tag="export" value="public"/>
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.27" language="java"/>
+ </source>
+ <codeElement xsi:type="code:Signature" name="main">
+ <parameterUnit type="/0/@model.0/@codeElement.22/@codeElement.5" kind="return">
+ <source language="java">
+ <region language="java"/>
+ </source>
+ </parameterUnit>
+ <parameterUnit name="args" type="/0/@model.1/@codeElement.4" kind="unknown">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.27" language="java"/>
+ </source>
+ </parameterUnit>
+ </codeElement>
+ <codeElement xsi:type="action:BlockUnit">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.27" language="java"/>
+ </source>
+ <codeElement xsi:type="action:ActionElement" name="variable declaration" kind="variable declaration">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.27" language="java"/>
+ </source>
+ <codeElement xsi:type="code:StorableUnit" name="c2" type="/0/@model.0/@codeElement.16/@codeElement.0/@codeElement.0" kind="local">
+ <attribute tag="export" value="none"/>
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.27" language="java"/>
+ </source>
+ <codeRelation xsi:type="code:HasValue" to="/0/@model.0/@codeElement.16/@codeElement.1/@codeElement.0/@codeElement.0/@codeElement.1/@codeElement.0/@codeElement.1" from="/0/@model.0/@codeElement.16/@codeElement.1/@codeElement.0/@codeElement.0/@codeElement.1/@codeElement.0/@codeElement.0"/>
+ </codeElement>
+ <codeElement xsi:type="action:ActionElement" name="class instance creation" kind="class instance creation">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.27" language="java"/>
+ </source>
+ <actionRelation xsi:type="action:Calls" to="/0/@model.0/@codeElement.16/@codeElement.0/@codeElement.0/@codeElement.1" from="/0/@model.0/@codeElement.16/@codeElement.1/@codeElement.0/@codeElement.0/@codeElement.1/@codeElement.0/@codeElement.1"/>
+ <actionRelation xsi:type="action:Creates" to="/0/@model.0/@codeElement.16/@codeElement.0/@codeElement.0" from="/0/@model.0/@codeElement.16/@codeElement.1/@codeElement.0/@codeElement.0/@codeElement.1/@codeElement.0/@codeElement.1"/>
+ </codeElement>
+ </codeElement>
+ </codeElement>
+ </codeElement>
+ <codeElement xsi:type="code:MethodUnit" name="Class2" type="/0/@model.0/@codeElement.16/@codeElement.1/@codeElement.0/@codeElement.1/@codeElement.0" kind="constructor" export="unknown">
+ <source language="java">
+ <region language="java"/>
+ </source>
+ <codeElement xsi:type="code:Signature" name="Class2"/>
+ </codeElement>
+ </codeElement>
+ </codeElement>
+ </codeElement>
+ <codeElement xsi:type="code:Package" name="test002">
+ <codeElement xsi:type="code:ClassUnit" name="Class2" isAbstract="false">
+ <attribute tag="export" value="public"/>
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.28" language="java"/>
+ </source>
+ <comment text="/** &#xA; * Copyright (c) 2009 Mia-Software.&#xA; * All rights reserved. This program and the accompanying materials&#xA; * are made available under the terms of the Eclipse Public License v1.0&#xA; * which accompanies this distribution, and is available at&#xA; * http://www.eclipse.org/legal/epl-v10.html&#xA; * Contributors:&#xA; * Gregoire DUPE (Mia-Software)&#xA; * Romain Dervaux (Mia-Software)&#xA; */&#xA;"/>
+ <codeElement xsi:type="code:MethodUnit" name="main" type="/0/@model.0/@codeElement.17/@codeElement.0/@codeElement.0/@codeElement.0">
+ <attribute tag="export" value="public"/>
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.28" language="java"/>
+ </source>
+ <codeElement xsi:type="code:Signature" name="main">
+ <parameterUnit type="/0/@model.0/@codeElement.22/@codeElement.5" kind="return">
+ <source language="java">
+ <region language="java"/>
+ </source>
+ </parameterUnit>
+ <parameterUnit name="args" type="/0/@model.1/@codeElement.4" kind="unknown">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.28" language="java"/>
+ </source>
+ </parameterUnit>
+ </codeElement>
+ <codeElement xsi:type="action:BlockUnit">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.28" language="java"/>
+ </source>
+ <codeElement xsi:type="action:ActionElement" name="variable declaration" kind="variable declaration">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.28" language="java"/>
+ </source>
+ <codeElement xsi:type="code:StorableUnit" name="c1" type="/0/@model.0/@codeElement.17/@codeElement.1" kind="local">
+ <attribute tag="export" value="none"/>
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.28" language="java"/>
+ </source>
+ <codeRelation xsi:type="code:HasValue" to="/0/@model.0/@codeElement.17/@codeElement.0/@codeElement.0/@codeElement.1/@codeElement.0/@codeElement.1" from="/0/@model.0/@codeElement.17/@codeElement.0/@codeElement.0/@codeElement.1/@codeElement.0/@codeElement.0"/>
+ </codeElement>
+ <codeElement xsi:type="action:ActionElement" name="class instance creation" kind="class instance creation">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.28" language="java"/>
+ </source>
+ <actionRelation xsi:type="action:Calls" to="/0/@model.0/@codeElement.17/@codeElement.1/@codeElement.2" from="/0/@model.0/@codeElement.17/@codeElement.0/@codeElement.0/@codeElement.1/@codeElement.0/@codeElement.1"/>
+ <actionRelation xsi:type="action:Creates" to="/0/@model.0/@codeElement.17/@codeElement.1" from="/0/@model.0/@codeElement.17/@codeElement.0/@codeElement.0/@codeElement.1/@codeElement.0/@codeElement.1"/>
+ </codeElement>
+ </codeElement>
+ <codeElement xsi:type="action:ActionElement" name="variable declaration" kind="variable declaration">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.28" language="java"/>
+ </source>
+ <codeElement xsi:type="code:StorableUnit" name="c4" type="/0/@model.0/@codeElement.17/@codeElement.1/@codeElement.1" kind="local">
+ <attribute tag="export" value="none"/>
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.28" language="java"/>
+ </source>
+ <codeRelation xsi:type="code:HasValue" to="/0/@model.0/@codeElement.17/@codeElement.0/@codeElement.0/@codeElement.1/@codeElement.1/@codeElement.1" from="/0/@model.0/@codeElement.17/@codeElement.0/@codeElement.0/@codeElement.1/@codeElement.1/@codeElement.0"/>
+ </codeElement>
+ <codeElement xsi:type="action:ActionElement" name="class instance creation" kind="class instance creation">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.28" language="java"/>
+ </source>
+ <actionRelation xsi:type="action:Calls" to="/0/@model.0/@codeElement.17/@codeElement.1/@codeElement.1/@codeElement.0" from="/0/@model.0/@codeElement.17/@codeElement.0/@codeElement.0/@codeElement.1/@codeElement.1/@codeElement.1"/>
+ <actionRelation xsi:type="action:Creates" to="/0/@model.0/@codeElement.17/@codeElement.1/@codeElement.1" from="/0/@model.0/@codeElement.17/@codeElement.0/@codeElement.0/@codeElement.1/@codeElement.1/@codeElement.1"/>
+ </codeElement>
+ </codeElement>
+ </codeElement>
+ </codeElement>
+ <codeElement xsi:type="code:ClassUnit" name="Class3" isAbstract="false">
+ <attribute tag="export" value="public"/>
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.28" language="java"/>
+ </source>
+ <codeRelation xsi:type="code:Imports" to="/0/@model.0/@codeElement.17/@codeElement.1/@codeElement.1" from="/0/@model.0/@codeElement.17/@codeElement.0"/>
+ <codeElement xsi:type="code:MethodUnit" name="Class3" type="/0/@model.0/@codeElement.17/@codeElement.0/@codeElement.1/@codeElement.0/@codeElement.0" kind="constructor" export="unknown">
+ <source language="java">
+ <region language="java"/>
+ </source>
+ <codeElement xsi:type="code:Signature" name="Class3"/>
+ </codeElement>
+ </codeElement>
+ <codeElement xsi:type="code:MethodUnit" name="Class2" type="/0/@model.0/@codeElement.17/@codeElement.0/@codeElement.2/@codeElement.0" kind="constructor" export="unknown">
+ <source language="java">
+ <region language="java"/>
+ </source>
+ <codeElement xsi:type="code:Signature" name="Class2"/>
+ </codeElement>
+ </codeElement>
+ <codeElement xsi:type="code:ClassUnit" name="Class1" isAbstract="false">
+ <attribute tag="export" value="public"/>
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.29" language="java"/>
+ </source>
+ <comment text="/** &#xA; * Copyright (c) 2009 Mia-Software.&#xA; * All rights reserved. This program and the accompanying materials&#xA; * are made available under the terms of the Eclipse Public License v1.0&#xA; * which accompanies this distribution, and is available at&#xA; * http://www.eclipse.org/legal/epl-v10.html&#xA; * Contributors:&#xA; * Gregoire DUPE (Mia-Software)&#xA; * Romain Dervaux (Mia-Software)&#xA; */&#xA;"/>
+ <codeElement xsi:type="code:MethodUnit" name="main" type="/0/@model.0/@codeElement.17/@codeElement.1/@codeElement.0/@codeElement.0">
+ <attribute tag="export" value="public"/>
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.29" language="java"/>
+ </source>
+ <codeElement xsi:type="code:Signature" name="main">
+ <parameterUnit type="/0/@model.0/@codeElement.22/@codeElement.5" kind="return">
+ <source language="java">
+ <region language="java"/>
+ </source>
+ </parameterUnit>
+ <parameterUnit name="args" type="/0/@model.1/@codeElement.4" kind="unknown">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.29" language="java"/>
+ </source>
+ </parameterUnit>
+ </codeElement>
+ <codeElement xsi:type="action:BlockUnit">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.29" language="java"/>
+ </source>
+ <codeElement xsi:type="action:ActionElement" name="variable declaration" kind="variable declaration">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.29" language="java"/>
+ </source>
+ <codeElement xsi:type="code:StorableUnit" name="c2" type="/0/@model.0/@codeElement.17/@codeElement.0" kind="local">
+ <attribute tag="export" value="none"/>
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.29" language="java"/>
+ </source>
+ <codeRelation xsi:type="code:HasValue" to="/0/@model.0/@codeElement.17/@codeElement.1/@codeElement.0/@codeElement.1/@codeElement.0/@codeElement.1" from="/0/@model.0/@codeElement.17/@codeElement.1/@codeElement.0/@codeElement.1/@codeElement.0/@codeElement.0"/>
+ </codeElement>
+ <codeElement xsi:type="action:ActionElement" name="class instance creation" kind="class instance creation">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.29" language="java"/>
+ </source>
+ <actionRelation xsi:type="action:Calls" to="/0/@model.0/@codeElement.17/@codeElement.0/@codeElement.2" from="/0/@model.0/@codeElement.17/@codeElement.1/@codeElement.0/@codeElement.1/@codeElement.0/@codeElement.1"/>
+ <actionRelation xsi:type="action:Creates" to="/0/@model.0/@codeElement.17/@codeElement.0" from="/0/@model.0/@codeElement.17/@codeElement.1/@codeElement.0/@codeElement.1/@codeElement.0/@codeElement.1"/>
+ </codeElement>
+ </codeElement>
+ <codeElement xsi:type="action:ActionElement" name="variable declaration" kind="variable declaration">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.29" language="java"/>
+ </source>
+ <codeElement xsi:type="code:StorableUnit" name="c3" type="/0/@model.0/@codeElement.17/@codeElement.0/@codeElement.1" kind="local">
+ <attribute tag="export" value="none"/>
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.29" language="java"/>
+ </source>
+ <codeRelation xsi:type="code:HasValue" to="/0/@model.0/@codeElement.17/@codeElement.1/@codeElement.0/@codeElement.1/@codeElement.1/@codeElement.1" from="/0/@model.0/@codeElement.17/@codeElement.1/@codeElement.0/@codeElement.1/@codeElement.1/@codeElement.0"/>
+ </codeElement>
+ <codeElement xsi:type="action:ActionElement" name="class instance creation" kind="class instance creation">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.29" language="java"/>
+ </source>
+ <actionRelation xsi:type="action:Calls" to="/0/@model.0/@codeElement.17/@codeElement.0/@codeElement.1/@codeElement.0" from="/0/@model.0/@codeElement.17/@codeElement.1/@codeElement.0/@codeElement.1/@codeElement.1/@codeElement.1"/>
+ <actionRelation xsi:type="action:Creates" to="/0/@model.0/@codeElement.17/@codeElement.0/@codeElement.1" from="/0/@model.0/@codeElement.17/@codeElement.1/@codeElement.0/@codeElement.1/@codeElement.1/@codeElement.1"/>
+ </codeElement>
+ </codeElement>
+ </codeElement>
+ </codeElement>
+ <codeElement xsi:type="code:ClassUnit" name="Class4" isAbstract="false">
+ <attribute tag="export" value="public"/>
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.29" language="java"/>
+ </source>
+ <codeRelation xsi:type="code:Imports" to="/0/@model.0/@codeElement.17/@codeElement.0/@codeElement.1" from="/0/@model.0/@codeElement.17/@codeElement.1"/>
+ <codeElement xsi:type="code:MethodUnit" name="Class4" type="/0/@model.0/@codeElement.17/@codeElement.1/@codeElement.1/@codeElement.0/@codeElement.0" kind="constructor" export="unknown">
+ <source language="java">
+ <region language="java"/>
+ </source>
+ <codeElement xsi:type="code:Signature" name="Class4"/>
+ </codeElement>
+ </codeElement>
+ <codeElement xsi:type="code:MethodUnit" name="Class1" type="/0/@model.0/@codeElement.17/@codeElement.1/@codeElement.2/@codeElement.0" kind="constructor" export="unknown">
+ <source language="java">
+ <region language="java"/>
+ </source>
+ <codeElement xsi:type="code:Signature" name="Class1"/>
+ </codeElement>
+ </codeElement>
+ </codeElement>
+ <codeElement xsi:type="code:Package" name="test003">
+ <codeElement xsi:type="code:ClassUnit" name="Test003" isAbstract="false">
+ <attribute tag="export" value="public"/>
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.30" language="java"/>
+ </source>
+ <comment text="/** &#xA; * Copyright (c) 2009 Mia-Software.&#xA; * All rights reserved. This program and the accompanying materials&#xA; * are made available under the terms of the Eclipse Public License v1.0&#xA; * which accompanies this distribution, and is available at&#xA; * http://www.eclipse.org/legal/epl-v10.html&#xA; * Contributors:&#xA; * Gregoire DUPE (Mia-Software)&#xA; * Romain Dervaux (Mia-Software)&#xA; */&#xA;"/>
+ <codeElement xsi:type="code:MethodUnit" name="main" type="/0/@model.0/@codeElement.18/@codeElement.0/@codeElement.0/@codeElement.0">
+ <attribute tag="export" value="public"/>
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.30" language="java"/>
+ </source>
+ <codeElement xsi:type="code:Signature" name="main">
+ <parameterUnit type="/0/@model.0/@codeElement.22/@codeElement.5" kind="return">
+ <source language="java">
+ <region language="java"/>
+ </source>
+ </parameterUnit>
+ <parameterUnit name="args" type="/0/@model.1/@codeElement.4" kind="unknown">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.30" language="java"/>
+ </source>
+ </parameterUnit>
+ </codeElement>
+ <codeElement xsi:type="action:BlockUnit">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.30" language="java"/>
+ </source>
+ <codeElement xsi:type="action:ActionElement" name="variable declaration" kind="variable declaration">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.30" language="java"/>
+ </source>
+ <codeElement xsi:type="code:StorableUnit" name="s" type="/0/@model.1/@codeElement.0/@codeElement.1/@codeElement.8" kind="local">
+ <attribute tag="export" value="none"/>
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.30" language="java"/>
+ </source>
+ <codeRelation xsi:type="code:HasValue" to="/0/@model.0/@codeElement.18/@codeElement.0/@codeElement.0/@codeElement.1/@codeElement.0/@codeElement.1" from="/0/@model.0/@codeElement.18/@codeElement.0/@codeElement.0/@codeElement.1/@codeElement.0/@codeElement.0"/>
+ </codeElement>
+ <codeElement xsi:type="action:ActionElement" name="class instance creation" kind="class instance creation">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.30" language="java"/>
+ </source>
+ <actionRelation xsi:type="action:Calls" to="/0/@model.1/@codeElement.0/@codeElement.1/@codeElement.8/@codeElement.1" from="/0/@model.0/@codeElement.18/@codeElement.0/@codeElement.0/@codeElement.1/@codeElement.0/@codeElement.1"/>
+ <actionRelation xsi:type="action:Creates" to="/0/@model.1/@codeElement.0/@codeElement.1/@codeElement.8" from="/0/@model.0/@codeElement.18/@codeElement.0/@codeElement.0/@codeElement.1/@codeElement.0/@codeElement.1"/>
+ </codeElement>
+ </codeElement>
+ <codeElement xsi:type="action:ActionElement" name="variable declaration" kind="variable declaration">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.30" language="java"/>
+ </source>
+ <codeElement xsi:type="code:StorableUnit" name="s2" type="/0/@model.1/@codeElement.0/@codeElement.1/@codeElement.8" kind="local">
+ <attribute tag="export" value="none"/>
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.30" language="java"/>
+ </source>
+ <codeRelation xsi:type="code:HasValue" to="/0/@model.0/@codeElement.18/@codeElement.0/@codeElement.0/@codeElement.1/@codeElement.1/@codeElement.1" from="/0/@model.0/@codeElement.18/@codeElement.0/@codeElement.0/@codeElement.1/@codeElement.1/@codeElement.0"/>
+ </codeElement>
+ <codeElement xsi:type="action:ActionElement" name="class instance creation" kind="class instance creation">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.30" language="java"/>
+ </source>
+ <actionRelation xsi:type="action:Calls" to="/0/@model.1/@codeElement.0/@codeElement.1/@codeElement.8/@codeElement.1" from="/0/@model.0/@codeElement.18/@codeElement.0/@codeElement.0/@codeElement.1/@codeElement.1/@codeElement.1"/>
+ <actionRelation xsi:type="action:Creates" to="/0/@model.1/@codeElement.0/@codeElement.1/@codeElement.8" from="/0/@model.0/@codeElement.18/@codeElement.0/@codeElement.0/@codeElement.1/@codeElement.1/@codeElement.1"/>
+ </codeElement>
+ </codeElement>
+ </codeElement>
+ </codeElement>
+ </codeElement>
+ </codeElement>
+ <codeElement xsi:type="code:Package" name="test004">
+ <codeElement xsi:type="code:ClassUnit" name="Test004" isAbstract="false">
+ <attribute tag="export" value="public"/>
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.31" language="java"/>
+ </source>
+ <comment text="/** &#xA; * Copyright (c) 2009 Mia-Software.&#xA; * All rights reserved. This program and the accompanying materials&#xA; * are made available under the terms of the Eclipse Public License v1.0&#xA; * which accompanies this distribution, and is available at&#xA; * http://www.eclipse.org/legal/epl-v10.html&#xA; * Contributors:&#xA; * Gregoire DUPE (Mia-Software)&#xA; * Romain Dervaux (Mia-Software)&#xA; */&#xA;"/>
+ <codeElement xsi:type="code:MethodUnit" name="main" type="/0/@model.0/@codeElement.19/@codeElement.0/@codeElement.0/@codeElement.0">
+ <attribute tag="export" value="public"/>
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.31" language="java"/>
+ </source>
+ <codeElement xsi:type="code:Signature" name="main">
+ <parameterUnit type="/0/@model.0/@codeElement.22/@codeElement.5" kind="return">
+ <source language="java">
+ <region language="java"/>
+ </source>
+ </parameterUnit>
+ <parameterUnit name="args" type="/0/@model.1/@codeElement.4" kind="unknown">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.31" language="java"/>
+ </source>
+ </parameterUnit>
+ </codeElement>
+ <codeElement xsi:type="action:BlockUnit">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.31" language="java"/>
+ </source>
+ <codeElement xsi:type="action:ActionElement" name="variable declaration" kind="variable declaration">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.31" language="java"/>
+ </source>
+ <codeElement xsi:type="code:StorableUnit" name="x" type="/0/@model.1/@codeElement.19" kind="local">
+ <attribute tag="export" value="none"/>
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.31" language="java"/>
+ </source>
+ </codeElement>
+ </codeElement>
+ <codeElement xsi:type="action:ActionElement" name="expression statement" kind="expression statement">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.31" language="java"/>
+ </source>
+ <codeElement xsi:type="action:ActionElement" name="ASSIGN" kind="assignment">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.31" language="java"/>
+ </source>
+ <codeElement xsi:type="action:ActionElement" name="class instance creation" kind="class instance creation">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.31" language="java"/>
+ </source>
+ <actionRelation xsi:type="action:Calls" to="/0/@model.1/@codeElement.0/@codeElement.0/@codeElement.7/@codeElement.2/@codeElement.1" from="/0/@model.0/@codeElement.19/@codeElement.0/@codeElement.0/@codeElement.1/@codeElement.1/@codeElement.0/@codeElement.0"/>
+ <actionRelation xsi:type="action:Creates" to="/0/@model.1/@codeElement.19" from="/0/@model.0/@codeElement.19/@codeElement.0/@codeElement.0/@codeElement.1/@codeElement.1/@codeElement.0/@codeElement.0"/>
+ </codeElement>
+ <actionRelation xsi:type="action:Writes" to="/0/@model.0/@codeElement.19/@codeElement.0/@codeElement.0/@codeElement.1/@codeElement.0/@codeElement.0" from="/0/@model.0/@codeElement.19/@codeElement.0/@codeElement.0/@codeElement.1/@codeElement.1/@codeElement.0"/>
+ </codeElement>
+ </codeElement>
+ </codeElement>
+ </codeElement>
+ </codeElement>
+ </codeElement>
+ <codeElement xsi:type="code:Package" name="unresolved">
+ <codeElement xsi:type="code:ClassUnit" name="Unresolved" isAbstract="false">
+ <attribute tag="export" value="public"/>
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.32" language="java"/>
+ </source>
+ <comment text="/** &#xA; * Copyright (c) 2009 Mia-Software.&#xA; * All rights reserved. This program and the accompanying materials&#xA; * are made available under the terms of the Eclipse Public License v1.0&#xA; * which accompanies this distribution, and is available at&#xA; * http://www.eclipse.org/legal/epl-v10.html&#xA; * Contributors:&#xA; * Gregoire DUPE (Mia-Software)&#xA; * Romain Dervaux (Mia-Software)&#xA; */&#xA;"/>
+ <codeRelation xsi:type="code:Extends" to="/0/@model.1/@codeElement.46" from="/0/@model.0/@codeElement.20/@codeElement.0"/>
+ <codeElement xsi:type="code:MethodUnit" name="main" type="/0/@model.0/@codeElement.20/@codeElement.0/@codeElement.0/@codeElement.0">
+ <attribute tag="export" value="public"/>
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.32" language="java"/>
+ </source>
+ <codeElement xsi:type="code:Signature" name="main">
+ <parameterUnit type="/0/@model.1/@codeElement.50" kind="return">
+ <source language="java">
+ <region language="java"/>
+ </source>
+ </parameterUnit>
+ <parameterUnit name="boby" type="/0/@model.1/@codeElement.51" kind="unknown">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.32" language="java"/>
+ </source>
+ </parameterUnit>
+ </codeElement>
+ <codeElement xsi:type="action:BlockUnit">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.32" language="java"/>
+ </source>
+ <codeElement xsi:type="action:ActionElement" name="variable declaration" kind="variable declaration">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.32" language="java"/>
+ </source>
+ <codeElement xsi:type="code:StorableUnit" name="b" type="/0/@model.1/@codeElement.46" kind="local">
+ <attribute tag="export" value="none"/>
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.32" language="java"/>
+ </source>
+ <codeRelation xsi:type="code:HasValue" to="/0/@model.0/@codeElement.20/@codeElement.0/@codeElement.0/@codeElement.1/@codeElement.0/@codeElement.1" from="/0/@model.0/@codeElement.20/@codeElement.0/@codeElement.0/@codeElement.1/@codeElement.0/@codeElement.0"/>
+ </codeElement>
+ <codeElement xsi:type="action:ActionElement" name="class instance creation" kind="class instance creation">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.32" language="java"/>
+ </source>
+ <actionRelation xsi:type="action:Calls" to="/0/@model.1/@codeElement.43" from="/0/@model.0/@codeElement.20/@codeElement.0/@codeElement.0/@codeElement.1/@codeElement.0/@codeElement.1"/>
+ <actionRelation xsi:type="action:Creates" to="/0/@model.1/@codeElement.55" from="/0/@model.0/@codeElement.20/@codeElement.0/@codeElement.0/@codeElement.1/@codeElement.0/@codeElement.1"/>
+ </codeElement>
+ </codeElement>
+ <codeElement xsi:type="action:ActionElement" name="variable declaration" kind="variable declaration">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.32" language="java"/>
+ </source>
+ <codeElement xsi:type="code:StorableUnit" name="b2" type="/0/@model.1/@codeElement.50" kind="local">
+ <attribute tag="export" value="none"/>
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.32" language="java"/>
+ </source>
+ <codeRelation xsi:type="code:HasValue" to="/0/@model.1/@codeElement.37" from="/0/@model.0/@codeElement.20/@codeElement.0/@codeElement.0/@codeElement.1/@codeElement.1/@codeElement.0"/>
+ </codeElement>
+ </codeElement>
+ <codeElement xsi:type="action:ActionElement" name="if" kind="if">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.32" language="java"/>
+ </source>
+ <codeElement xsi:type="action:ActionElement" name="GREATER" kind="infix expression">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.32" language="java"/>
+ </source>
+ </codeElement>
+ <codeElement xsi:type="action:BlockUnit">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.32" language="java"/>
+ </source>
+ <codeElement xsi:type="action:ActionElement" name="throw" kind="throw">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.32" language="java"/>
+ </source>
+ <codeElement xsi:type="action:ActionElement" name="class instance creation" kind="class instance creation">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.32" language="java"/>
+ </source>
+ <actionRelation xsi:type="action:Calls" to="/0/@model.1/@codeElement.45" from="/0/@model.0/@codeElement.20/@codeElement.0/@codeElement.0/@codeElement.1/@codeElement.2/@codeElement.1/@codeElement.0/@codeElement.0"/>
+ <actionRelation xsi:type="action:Creates" to="/0/@model.1/@codeElement.56" from="/0/@model.0/@codeElement.20/@codeElement.0/@codeElement.0/@codeElement.1/@codeElement.2/@codeElement.1/@codeElement.0/@codeElement.0"/>
+ </codeElement>
+ </codeElement>
+ </codeElement>
+ </codeElement>
+ <codeElement xsi:type="action:ActionElement" name="return" kind="return">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.32" language="java"/>
+ </source>
+ <codeElement xsi:type="action:ActionElement" name="null" kind="null">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.32" language="java"/>
+ </source>
+ </codeElement>
+ </codeElement>
+ </codeElement>
+ </codeElement>
+ </codeElement>
+ </codeElement>
+ <codeElement xsi:type="code:Package" name="varargs">
+ <codeElement xsi:type="code:ClassUnit" name="VarArgs1" isAbstract="false">
+ <attribute tag="export" value="public"/>
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.33" language="java"/>
+ </source>
+ <comment text="/** &#xA; * Copyright (c) 2009 Mia-Software.&#xA; * All rights reserved. This program and the accompanying materials&#xA; * are made available under the terms of the Eclipse Public License v1.0&#xA; * which accompanies this distribution, and is available at&#xA; * http://www.eclipse.org/legal/epl-v10.html&#xA; * Contributors:&#xA; * Gregoire DUPE (Mia-Software)&#xA; * Romain Dervaux (Mia-Software)&#xA; */&#xA;"/>
+ <codeElement xsi:type="code:MethodUnit" name="main" type="/0/@model.0/@codeElement.21/@codeElement.0/@codeElement.0/@codeElement.0">
+ <attribute tag="export" value="public"/>
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.33" language="java"/>
+ </source>
+ <codeElement xsi:type="code:Signature" name="main">
+ <parameterUnit type="/0/@model.0/@codeElement.22/@codeElement.5" kind="return">
+ <source language="java">
+ <region language="java"/>
+ </source>
+ </parameterUnit>
+ <parameterUnit name="args" type="/0/@model.1/@codeElement.4" kind="unknown">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.33" language="java"/>
+ </source>
+ </parameterUnit>
+ </codeElement>
+ <codeElement xsi:type="action:BlockUnit">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.33" language="java"/>
+ </source>
+ <codeElement xsi:type="action:ActionElement" name="variable declaration" kind="variable declaration">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.33" language="java"/>
+ </source>
+ <codeElement xsi:type="code:StorableUnit" name="passed" type="/0/@model.0/@codeElement.22/@codeElement.0" kind="local">
+ <attribute tag="export" value="none"/>
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.33" language="java"/>
+ </source>
+ <codeRelation xsi:type="code:HasValue" to="/0/@model.1/@codeElement.38" from="/0/@model.0/@codeElement.21/@codeElement.0/@codeElement.0/@codeElement.1/@codeElement.0/@codeElement.0"/>
+ </codeElement>
+ </codeElement>
+ <codeElement xsi:type="action:ActionElement" name="variable declaration" kind="variable declaration">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.33" language="java"/>
+ </source>
+ <codeElement xsi:type="code:StorableUnit" name="failed" type="/0/@model.0/@codeElement.22/@codeElement.0" kind="local">
+ <attribute tag="export" value="none"/>
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.33" language="java"/>
+ </source>
+ <codeRelation xsi:type="code:HasValue" to="/0/@model.1/@codeElement.39" from="/0/@model.0/@codeElement.21/@codeElement.0/@codeElement.0/@codeElement.1/@codeElement.1/@codeElement.0"/>
+ </codeElement>
+ </codeElement>
+ <codeElement xsi:type="action:ActionElement" name="foreach" kind="foreach">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.33" language="java"/>
+ </source>
+ <codeElement xsi:type="action:BlockUnit">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.33" language="java"/>
+ </source>
+ <codeElement xsi:type="action:TryUnit" name="try" kind="try">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.33" language="java"/>
+ </source>
+ <codeElement xsi:type="action:BlockUnit">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.33" language="java"/>
+ </source>
+ <codeElement xsi:type="action:ActionElement" name="variable declaration" kind="variable declaration">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.33" language="java"/>
+ </source>
+ <codeElement xsi:type="code:StorableUnit" name="c" type="/0/@model.1/@codeElement.0/@codeElement.1/@codeElement.18" kind="local">
+ <attribute tag="export" value="none"/>
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.33" language="java"/>
+ </source>
+ <codeRelation xsi:type="code:HasValue" to="/0/@model.1/@codeElement.40" from="/0/@model.0/@codeElement.21/@codeElement.0/@codeElement.0/@codeElement.1/@codeElement.2/@codeElement.0/@codeElement.0/@codeElement.0/@codeElement.0/@codeElement.0"/>
+ </codeElement>
+ </codeElement>
+ <codeElement xsi:type="action:ActionElement" name="expression statement" kind="expression statement">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.33" language="java"/>
+ </source>
+ <codeElement xsi:type="action:ActionElement" name="method invocation" kind="method invocation">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.33" language="java"/>
+ </source>
+ <codeElement xsi:type="action:ActionElement" name="method invocation" kind="method invocation">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.33" language="java"/>
+ </source>
+ <codeElement xsi:type="code:Value" name="string literal" type="/0/@model.0/@codeElement.22/@codeElement.9" ext="&quot;test&quot;">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.33" language="java"/>
+ </source>
+ </codeElement>
+ <actionRelation xsi:type="action:Calls" to="/0/@model.1/@codeElement.0/@codeElement.1/@codeElement.18/@codeElement.1/@codeElement.1" from="/0/@model.0/@codeElement.21/@codeElement.0/@codeElement.0/@codeElement.1/@codeElement.2/@codeElement.0/@codeElement.0/@codeElement.0/@codeElement.1/@codeElement.0/@codeElement.0"/>
+ </codeElement>
+ <codeElement xsi:type="action:ActionElement" name="method invocation" kind="method invocation">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.33" language="java"/>
+ </source>
+ <actionRelation xsi:type="action:Calls" to="/0/@model.1/@codeElement.0/@codeElement.1/@codeElement.18/@codeElement.1/@codeElement.2" from="/0/@model.0/@codeElement.21/@codeElement.0/@codeElement.0/@codeElement.1/@codeElement.2/@codeElement.0/@codeElement.0/@codeElement.0/@codeElement.1/@codeElement.0/@codeElement.1"/>
+ </codeElement>
+ <actionRelation xsi:type="action:Calls" to="/0/@model.1/@codeElement.0/@codeElement.1/@codeElement.0/@codeElement.3/@codeElement.0" from="/0/@model.0/@codeElement.21/@codeElement.0/@codeElement.0/@codeElement.1/@codeElement.2/@codeElement.0/@codeElement.0/@codeElement.0/@codeElement.1/@codeElement.0"/>
+ </codeElement>
+ </codeElement>
+ <codeElement xsi:type="action:ActionElement" name="expression statement" kind="expression statement">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.33" language="java"/>
+ </source>
+ <codeElement xsi:type="action:ActionElement" name="INCREMENT" kind="postfix expression">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.33" language="java"/>
+ </source>
+ </codeElement>
+ </codeElement>
+ </codeElement>
+ <codeElement xsi:type="action:CatchUnit" name="catch" kind="catch">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.33" language="java"/>
+ </source>
+ <codeElement xsi:type="action:BlockUnit">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.33" language="java"/>
+ </source>
+ <codeElement xsi:type="action:ActionElement" name="expression statement" kind="expression statement">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.33" language="java"/>
+ </source>
+ <codeElement xsi:type="action:ActionElement" name="method invocation" kind="method invocation">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.33" language="java"/>
+ </source>
+ <codeElement xsi:type="code:Value" name="string literal" type="/0/@model.0/@codeElement.22/@codeElement.9" ext="&quot;%s failed: %s%n&quot;">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.33" language="java"/>
+ </source>
+ </codeElement>
+ <actionRelation xsi:type="action:Calls" to="/0/@model.1/@codeElement.0/@codeElement.2/@codeElement.2/@codeElement.1" from="/0/@model.0/@codeElement.21/@codeElement.0/@codeElement.0/@codeElement.1/@codeElement.2/@codeElement.0/@codeElement.0/@codeElement.1/@codeElement.0/@codeElement.0/@codeElement.0"/>
+ </codeElement>
+ </codeElement>
+ <codeElement xsi:type="action:ActionElement" name="expression statement" kind="expression statement">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.33" language="java"/>
+ </source>
+ <codeElement xsi:type="action:ActionElement" name="INCREMENT" kind="postfix expression">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.33" language="java"/>
+ </source>
+ </codeElement>
+ </codeElement>
+ </codeElement>
+ <codeElement xsi:type="code:StorableUnit" name="ex" type="/0/@model.1/@codeElement.0/@codeElement.1/@codeElement.19" kind="local">
+ <attribute tag="export" value="none"/>
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.33" language="java"/>
+ </source>
+ </codeElement>
+ <actionRelation xsi:type="action:ExceptionFlow" to="/0/@model.0/@codeElement.21/@codeElement.0/@codeElement.0/@codeElement.1/@codeElement.2/@codeElement.0/@codeElement.0/@codeElement.1" from="/0/@model.0/@codeElement.21/@codeElement.0/@codeElement.0/@codeElement.1/@codeElement.2/@codeElement.0/@codeElement.0"/>
+ </codeElement>
+ </codeElement>
+ </codeElement>
+ <codeElement xsi:type="code:StorableUnit" name="className" type="/0/@model.1/@codeElement.0/@codeElement.1/@codeElement.8" kind="local">
+ <attribute tag="export" value="none"/>
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.33" language="java"/>
+ </source>
+ </codeElement>
+ </codeElement>
+ <codeElement xsi:type="action:ActionElement" name="expression statement" kind="expression statement">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.33" language="java"/>
+ </source>
+ <codeElement xsi:type="action:ActionElement" name="method invocation" kind="method invocation">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.33" language="java"/>
+ </source>
+ <codeElement xsi:type="code:Value" name="string literal" type="/0/@model.0/@codeElement.22/@codeElement.9" ext="&quot;passed=%d; failed=%d%n&quot;">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.33" language="java"/>
+ </source>
+ </codeElement>
+ <actionRelation xsi:type="action:Calls" to="/0/@model.1/@codeElement.0/@codeElement.2/@codeElement.2/@codeElement.1" from="/0/@model.0/@codeElement.21/@codeElement.0/@codeElement.0/@codeElement.1/@codeElement.3/@codeElement.0"/>
+ </codeElement>
+ </codeElement>
+ </codeElement>
+ </codeElement>
+ </codeElement>
+ <codeElement xsi:type="code:ClassUnit" name="VarArgs2" isAbstract="false">
+ <attribute tag="export" value="public"/>
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.34" language="java"/>
+ </source>
+ <comment text="/** &#xA; * Copyright (c) 2009 Mia-Software.&#xA; * All rights reserved. This program and the accompanying materials&#xA; * are made available under the terms of the Eclipse Public License v1.0&#xA; * which accompanies this distribution, and is available at&#xA; * http://www.eclipse.org/legal/epl-v10.html&#xA; * Contributors:&#xA; * Gregoire DUPE (Mia-Software)&#xA; * Romain Dervaux (Mia-Software)&#xA; */&#xA;"/>
+ <codeRelation xsi:type="code:Imports" to="/0/@model.1/@codeElement.0/@codeElement.3/@codeElement.0" from="/0/@model.0/@codeElement.21/@codeElement.1"/>
+ <codeRelation xsi:type="code:Imports" to="/0/@model.1/@codeElement.0/@codeElement.0/@codeElement.11" from="/0/@model.0/@codeElement.21/@codeElement.1"/>
+ <codeElement xsi:type="code:MethodUnit" name="main" type="/0/@model.0/@codeElement.21/@codeElement.1/@codeElement.0/@codeElement.0">
+ <attribute tag="export" value="public"/>
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.34" language="java"/>
+ </source>
+ <codeElement xsi:type="code:Signature" name="main">
+ <parameterUnit type="/0/@model.0/@codeElement.22/@codeElement.5" kind="return">
+ <source language="java">
+ <region language="java"/>
+ </source>
+ </parameterUnit>
+ <parameterUnit name="args" type="/0/@model.1/@codeElement.4" kind="unknown">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.34" language="java"/>
+ </source>
+ </parameterUnit>
+ </codeElement>
+ <codeElement xsi:type="action:BlockUnit">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.34" language="java"/>
+ </source>
+ <codeElement xsi:type="action:ActionElement" name="variable declaration" kind="variable declaration">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.34" language="java"/>
+ </source>
+ <codeElement xsi:type="code:StorableUnit" name="result" type="/0/@model.1/@codeElement.0/@codeElement.1/@codeElement.8" kind="local">
+ <attribute tag="export" value="none"/>
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.34" language="java"/>
+ </source>
+ <codeRelation xsi:type="code:HasValue" to="/0/@model.1/@codeElement.41" from="/0/@model.0/@codeElement.21/@codeElement.1/@codeElement.0/@codeElement.1/@codeElement.0/@codeElement.0"/>
+ </codeElement>
+ </codeElement>
+ </codeElement>
+ </codeElement>
+ <codeElement xsi:type="code:MethodUnit" name="m1" type="/0/@model.0/@codeElement.21/@codeElement.1/@codeElement.1/@codeElement.0">
+ <attribute tag="export" value="public"/>
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.34" language="java"/>
+ </source>
+ <codeElement xsi:type="code:Signature" name="m1">
+ <parameterUnit type="/0/@model.0/@codeElement.22/@codeElement.5" kind="return">
+ <source language="java">
+ <region language="java"/>
+ </source>
+ </parameterUnit>
+ <parameterUnit name="objects" type="/0/@model.1/@codeElement.0/@codeElement.1/@codeElement.17" kind="unknown">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.34" language="java"/>
+ </source>
+ </parameterUnit>
+ </codeElement>
+ <codeElement xsi:type="action:BlockUnit">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.34" language="java"/>
+ </source>
+ <codeElement xsi:type="action:ActionElement" name="variable declaration" kind="variable declaration">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.34" language="java"/>
+ </source>
+ <codeElement xsi:type="code:StorableUnit" name="i" type="/0/@model.0/@codeElement.22/@codeElement.0" kind="local">
+ <attribute tag="export" value="none"/>
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.34" language="java"/>
+ </source>
+ <codeRelation xsi:type="code:HasValue" to="/0/@model.1/@codeElement.42" from="/0/@model.0/@codeElement.21/@codeElement.1/@codeElement.1/@codeElement.1/@codeElement.0/@codeElement.0"/>
+ </codeElement>
+ </codeElement>
+ </codeElement>
+ </codeElement>
+ </codeElement>
+ </codeElement>
+ <codeElement xsi:type="code:LanguageUnit" name="Common Java datatypes">
+ <codeElement xsi:type="code:IntegerType" name="int"/>
+ <codeElement xsi:type="code:IntegerType" name="long"/>
+ <codeElement xsi:type="code:FloatType" name="float"/>
+ <codeElement xsi:type="code:FloatType" name="double"/>
+ <codeElement xsi:type="code:BooleanType" name="boolean"/>
+ <codeElement xsi:type="code:VoidType" name="void"/>
+ <codeElement xsi:type="code:CharType" name="char"/>
+ <codeElement xsi:type="code:IntegerType" name="short"/>
+ <codeElement xsi:type="code:OctetType" name="byte"/>
+ <codeElement xsi:type="code:StringType" name="string"/>
+ </codeElement>
+ </model>
+ <model xsi:type="code:CodeModel" name="externals">
+ <codeElement xsi:type="code:Package" name="java">
+ <codeElement xsi:type="code:Package" name="util">
+ <codeElement xsi:type="code:TemplateUnit" name="List&lt;E>">
+ <codeElement xsi:type="code:TemplateParameter" name="E"/>
+ <codeElement xsi:type="code:InterfaceUnit" name="List">
+ <source language="java">
+ <region language="java"/>
+ </source>
+ <codeRelation xsi:type="code:Extends" to="/0/@model.1/@codeElement.0/@codeElement.0/@codeElement.1" from="/0/@model.1/@codeElement.0/@codeElement.0/@codeElement.0/@codeElement.1"/>
+ </codeElement>
+ </codeElement>
+ <codeElement xsi:type="code:TemplateUnit" name="Collection&lt;E>">
+ <codeElement xsi:type="code:TemplateParameter" name="E"/>
+ <codeElement xsi:type="code:InterfaceUnit" name="Collection">
+ <source language="java">
+ <region language="java"/>
+ </source>
+ <codeRelation xsi:type="code:Extends" to="/0/@model.1/@codeElement.0/@codeElement.1/@codeElement.1" from="/0/@model.1/@codeElement.0/@codeElement.0/@codeElement.1/@codeElement.1"/>
+ </codeElement>
+ </codeElement>
+ <codeElement xsi:type="code:TemplateUnit" name="ArrayList&lt;E>">
+ <codeElement xsi:type="code:TemplateParameter" name="E"/>
+ <codeElement xsi:type="code:ClassUnit" name="ArrayList">
+ <source language="java">
+ <region language="java"/>
+ </source>
+ <codeRelation xsi:type="code:Implements" to="/0/@model.1/@codeElement.0/@codeElement.0/@codeElement.0" from="/0/@model.1/@codeElement.0/@codeElement.0/@codeElement.2/@codeElement.1"/>
+ <codeRelation xsi:type="code:Implements" to="/0/@model.1/@codeElement.0/@codeElement.0/@codeElement.5" from="/0/@model.1/@codeElement.0/@codeElement.0/@codeElement.2/@codeElement.1"/>
+ <codeRelation xsi:type="code:Implements" to="/0/@model.1/@codeElement.0/@codeElement.1/@codeElement.10" from="/0/@model.1/@codeElement.0/@codeElement.0/@codeElement.2/@codeElement.1"/>
+ <codeRelation xsi:type="code:Implements" to="/0/@model.1/@codeElement.0/@codeElement.2/@codeElement.0" from="/0/@model.1/@codeElement.0/@codeElement.0/@codeElement.2/@codeElement.1"/>
+ <codeRelation xsi:type="code:Extends" to="/0/@model.1/@codeElement.0/@codeElement.0/@codeElement.3" from="/0/@model.1/@codeElement.0/@codeElement.0/@codeElement.2/@codeElement.1"/>
+ <codeElement xsi:type="code:MethodUnit" name="ArrayList" type="/0/@model.1/@codeElement.0/@codeElement.0/@codeElement.2/@codeElement.1/@codeElement.0/@codeElement.0" kind="constructor" export="unknown">
+ <source language="java">
+ <region language="java"/>
+ </source>
+ <codeElement xsi:type="code:Signature" name="ArrayList"/>
+ </codeElement>
+ <codeElement xsi:type="code:MethodUnit" name="size" type="/0/@model.1/@codeElement.0/@codeElement.0/@codeElement.2/@codeElement.1/@codeElement.1/@codeElement.0" export="unknown">
+ <source language="java">
+ <region language="java"/>
+ </source>
+ <codeElement xsi:type="code:Signature" name="size"/>
+ </codeElement>
+ </codeElement>
+ </codeElement>
+ <codeElement xsi:type="code:TemplateUnit" name="AbstractList&lt;E>">
+ <codeElement xsi:type="code:TemplateParameter" name="E"/>
+ <codeElement xsi:type="code:ClassUnit" name="AbstractList">
+ <source language="java">
+ <region language="java"/>
+ </source>
+ <codeRelation xsi:type="code:Implements" to="/0/@model.1/@codeElement.0/@codeElement.0/@codeElement.0" from="/0/@model.1/@codeElement.0/@codeElement.0/@codeElement.3/@codeElement.1"/>
+ <codeRelation xsi:type="code:Extends" to="/0/@model.1/@codeElement.0/@codeElement.0/@codeElement.4" from="/0/@model.1/@codeElement.0/@codeElement.0/@codeElement.3/@codeElement.1"/>
+ </codeElement>
+ </codeElement>
+ <codeElement xsi:type="code:TemplateUnit" name="AbstractCollection&lt;E>">
+ <codeElement xsi:type="code:TemplateParameter" name="E"/>
+ <codeElement xsi:type="code:ClassUnit" name="AbstractCollection">
+ <source language="java">
+ <region language="java"/>
+ </source>
+ <codeRelation xsi:type="code:Implements" to="/0/@model.1/@codeElement.0/@codeElement.0/@codeElement.1" from="/0/@model.1/@codeElement.0/@codeElement.0/@codeElement.4/@codeElement.1"/>
+ </codeElement>
+ </codeElement>
+ <codeElement xsi:type="code:InterfaceUnit" name="RandomAccess">
+ <source language="java">
+ <region language="java"/>
+ </source>
+ </codeElement>
+ <codeElement xsi:type="code:TemplateUnit" name="Map&lt;K, V>">
+ <codeElement xsi:type="code:TemplateParameter" name="K"/>
+ <codeElement xsi:type="code:TemplateParameter" name="V"/>
+ <codeElement xsi:type="code:InterfaceUnit" name="Map">
+ <source language="java">
+ <region language="java"/>
+ </source>
+ </codeElement>
+ </codeElement>
+ <codeElement xsi:type="code:TemplateUnit" name="HashMap&lt;K, V>">
+ <codeElement xsi:type="code:TemplateParameter" name="K"/>
+ <codeElement xsi:type="code:TemplateParameter" name="V"/>
+ <codeElement xsi:type="code:ClassUnit" name="HashMap">
+ <source language="java">
+ <region language="java"/>
+ </source>
+ <codeRelation xsi:type="code:Implements" to="/0/@model.1/@codeElement.0/@codeElement.0/@codeElement.6" from="/0/@model.1/@codeElement.0/@codeElement.0/@codeElement.7/@codeElement.2"/>
+ <codeRelation xsi:type="code:Implements" to="/0/@model.1/@codeElement.0/@codeElement.1/@codeElement.10" from="/0/@model.1/@codeElement.0/@codeElement.0/@codeElement.7/@codeElement.2"/>
+ <codeRelation xsi:type="code:Implements" to="/0/@model.1/@codeElement.0/@codeElement.2/@codeElement.0" from="/0/@model.1/@codeElement.0/@codeElement.0/@codeElement.7/@codeElement.2"/>
+ <codeRelation xsi:type="code:Extends" to="/0/@model.1/@codeElement.0/@codeElement.0/@codeElement.8" from="/0/@model.1/@codeElement.0/@codeElement.0/@codeElement.7/@codeElement.2"/>
+ <codeElement xsi:type="code:MethodUnit" name="keySet" type="/0/@model.1/@codeElement.0/@codeElement.0/@codeElement.7/@codeElement.2/@codeElement.0/@codeElement.0" export="unknown">
+ <source language="java">
+ <region language="java"/>
+ </source>
+ <codeElement xsi:type="code:Signature" name="keySet"/>
+ </codeElement>
+ <codeElement xsi:type="code:MethodUnit" name="HashMap" type="/0/@model.1/@codeElement.0/@codeElement.0/@codeElement.7/@codeElement.2/@codeElement.1/@codeElement.0" kind="constructor" export="unknown">
+ <source language="java">
+ <region language="java"/>
+ </source>
+ <codeElement xsi:type="code:Signature" name="HashMap"/>
+ </codeElement>
+ </codeElement>
+ </codeElement>
+ <codeElement xsi:type="code:TemplateUnit" name="AbstractMap&lt;K, V>">
+ <codeElement xsi:type="code:TemplateParameter" name="K"/>
+ <codeElement xsi:type="code:TemplateParameter" name="V"/>
+ <codeElement xsi:type="code:ClassUnit" name="AbstractMap">
+ <source language="java">
+ <region language="java"/>
+ </source>
+ <codeRelation xsi:type="code:Implements" to="/0/@model.1/@codeElement.0/@codeElement.0/@codeElement.6" from="/0/@model.1/@codeElement.0/@codeElement.0/@codeElement.8/@codeElement.2"/>
+ </codeElement>
+ </codeElement>
+ <codeElement xsi:type="code:TemplateUnit" name="Set&lt;E>">
+ <codeElement xsi:type="code:TemplateParameter" name="E"/>
+ <codeElement xsi:type="code:InterfaceUnit" name="Set">
+ <source language="java">
+ <region language="java"/>
+ </source>
+ <codeRelation xsi:type="code:Extends" to="/0/@model.1/@codeElement.0/@codeElement.0/@codeElement.1" from="/0/@model.1/@codeElement.0/@codeElement.0/@codeElement.9/@codeElement.1"/>
+ <codeElement xsi:type="code:MethodUnit" name="iterator" type="/0/@model.1/@codeElement.0/@codeElement.0/@codeElement.9/@codeElement.1/@codeElement.0/@codeElement.0" export="unknown">
+ <source language="java">
+ <region language="java"/>
+ </source>
+ <codeElement xsi:type="code:Signature" name="iterator"/>
+ </codeElement>
+ </codeElement>
+ </codeElement>
+ <codeElement xsi:type="code:TemplateUnit" name="Iterator&lt;E>">
+ <codeElement xsi:type="code:TemplateParameter" name="E"/>
+ <codeElement xsi:type="code:InterfaceUnit" name="Iterator">
+ <source language="java">
+ <region language="java"/>
+ </source>
+ <codeElement xsi:type="code:MethodUnit" name="next" type="/0/@model.1/@codeElement.0/@codeElement.0/@codeElement.10/@codeElement.1/@codeElement.0/@codeElement.0" export="unknown">
+ <source language="java">
+ <region language="java"/>
+ </source>
+ <codeElement xsi:type="code:Signature" name="next"/>
+ </codeElement>
+ </codeElement>
+ </codeElement>
+ <codeElement xsi:type="code:ClassUnit" name="Date">
+ <source language="java">
+ <region language="java"/>
+ </source>
+ <codeRelation xsi:type="code:Implements" to="/0/@model.1/@codeElement.0/@codeElement.2/@codeElement.0" from="/0/@model.1/@codeElement.0/@codeElement.0/@codeElement.11"/>
+ <codeRelation xsi:type="code:Implements" to="/0/@model.1/@codeElement.0/@codeElement.1/@codeElement.10" from="/0/@model.1/@codeElement.0/@codeElement.0/@codeElement.11"/>
+ <codeRelation xsi:type="code:Implements" to="/0/@model.1/@codeElement.0/@codeElement.1/@codeElement.6" from="/0/@model.1/@codeElement.0/@codeElement.0/@codeElement.11"/>
+ <codeElement xsi:type="code:MethodUnit" name="Date" type="/0/@model.1/@codeElement.0/@codeElement.0/@codeElement.11/@codeElement.0/@codeElement.0" kind="constructor" export="unknown">
+ <source language="java">
+ <region language="java"/>
+ </source>
+ <codeElement xsi:type="code:Signature" name="Date"/>
+ </codeElement>
+ </codeElement>
+ </codeElement>
+ <codeElement xsi:type="code:Package" name="lang">
+ <codeElement xsi:type="code:Package" name="reflect">
+ <codeElement xsi:type="code:InterfaceUnit" name="GenericDeclaration">
+ <source language="java">
+ <region language="java"/>
+ </source>
+ </codeElement>
+ <codeElement xsi:type="code:InterfaceUnit" name="Type">
+ <source language="java">
+ <region language="java"/>
+ </source>
+ </codeElement>
+ <codeElement xsi:type="code:InterfaceUnit" name="AnnotatedElement">
+ <source language="java">
+ <region language="java"/>
+ </source>
+ </codeElement>
+ <codeElement xsi:type="code:ClassUnit" name="Method">
+ <source language="java">
+ <region language="java"/>
+ </source>
+ <codeRelation xsi:type="code:Implements" to="/0/@model.1/@codeElement.0/@codeElement.1/@codeElement.0/@codeElement.0" from="/0/@model.1/@codeElement.0/@codeElement.1/@codeElement.0/@codeElement.3"/>
+ <codeRelation xsi:type="code:Implements" to="/0/@model.1/@codeElement.0/@codeElement.1/@codeElement.0/@codeElement.5" from="/0/@model.1/@codeElement.0/@codeElement.1/@codeElement.0/@codeElement.3"/>
+ <codeRelation xsi:type="code:Extends" to="/0/@model.1/@codeElement.0/@codeElement.1/@codeElement.0/@codeElement.4" from="/0/@model.1/@codeElement.0/@codeElement.1/@codeElement.0/@codeElement.3"/>
+ <codeElement xsi:type="code:MethodUnit" name="invoke" type="/0/@model.1/@codeElement.0/@codeElement.1/@codeElement.0/@codeElement.3/@codeElement.0/@codeElement.0" export="unknown">
+ <source language="java">
+ <region language="java"/>
+ </source>
+ <codeElement xsi:type="code:Signature" name="invoke">
+ <parameterUnit name="arg0" type="/0/@model.1/@codeElement.0/@codeElement.1/@codeElement.17" kind="unknown">
+ <source language="java">
+ <region language="java"/>
+ </source>
+ </parameterUnit>
+ <parameterUnit name="arg1" type="/0/@model.1/@codeElement.21" kind="unknown">
+ <source language="java">
+ <region language="java"/>
+ </source>
+ </parameterUnit>
+ </codeElement>
+ </codeElement>
+ </codeElement>
+ <codeElement xsi:type="code:ClassUnit" name="AccessibleObject">
+ <source language="java">
+ <region language="java"/>
+ </source>
+ <codeRelation xsi:type="code:Implements" to="/0/@model.1/@codeElement.0/@codeElement.1/@codeElement.0/@codeElement.2" from="/0/@model.1/@codeElement.0/@codeElement.1/@codeElement.0/@codeElement.4"/>
+ </codeElement>
+ <codeElement xsi:type="code:InterfaceUnit" name="Member">
+ <source language="java">
+ <region language="java"/>
+ </source>
+ </codeElement>
+ </codeElement>
+ <codeElement xsi:type="code:TemplateUnit" name="Iterable&lt;T>">
+ <codeElement xsi:type="code:TemplateParameter" name="T"/>
+ <codeElement xsi:type="code:InterfaceUnit" name="Iterable">
+ <source language="java">
+ <region language="java"/>
+ </source>
+ </codeElement>
+ </codeElement>
+ <codeElement xsi:type="code:InterfaceUnit" name="Deprecated">
+ <annotation text="annotation"/>
+ <source language="java">
+ <region language="java"/>
+ </source>
+ </codeElement>
+ <codeElement xsi:type="code:InterfaceUnit" name="SuppressWarnings">
+ <annotation text="annotation"/>
+ <source language="java">
+ <region language="java"/>
+ </source>
+ </codeElement>
+ <codeElement xsi:type="code:ClassUnit" name="Integer">
+ <source language="java">
+ <region language="java"/>
+ </source>
+ <codeRelation xsi:type="code:Implements" to="/0/@model.1/@codeElement.0/@codeElement.1/@codeElement.6" from="/0/@model.1/@codeElement.0/@codeElement.1/@codeElement.4"/>
+ <codeRelation xsi:type="code:Extends" to="/0/@model.1/@codeElement.0/@codeElement.1/@codeElement.5" from="/0/@model.1/@codeElement.0/@codeElement.1/@codeElement.4"/>
+ </codeElement>
+ <codeElement xsi:type="code:ClassUnit" name="Number">
+ <source language="java">
+ <region language="java"/>
+ </source>
+ <codeRelation xsi:type="code:Implements" to="/0/@model.1/@codeElement.0/@codeElement.2/@codeElement.0" from="/0/@model.1/@codeElement.0/@codeElement.1/@codeElement.5"/>
+ </codeElement>
+ <codeElement xsi:type="code:TemplateUnit" name="Comparable&lt;T>">
+ <codeElement xsi:type="code:TemplateParameter" name="T"/>
+ <codeElement xsi:type="code:InterfaceUnit" name="Comparable">
+ <source language="java">
+ <region language="java"/>
+ </source>
+ </codeElement>
+ </codeElement>
+ <codeElement xsi:type="code:InterfaceUnit" name="Override">
+ <annotation text="annotation"/>
+ <source language="java">
+ <region language="java"/>
+ </source>
+ </codeElement>
+ <codeElement xsi:type="code:ClassUnit" name="String">
+ <source language="java">
+ <region language="java"/>
+ </source>
+ <codeRelation xsi:type="code:Implements" to="/0/@model.1/@codeElement.0/@codeElement.2/@codeElement.0" from="/0/@model.1/@codeElement.0/@codeElement.1/@codeElement.8"/>
+ <codeRelation xsi:type="code:Implements" to="/0/@model.1/@codeElement.0/@codeElement.1/@codeElement.6" from="/0/@model.1/@codeElement.0/@codeElement.1/@codeElement.8"/>
+ <codeRelation xsi:type="code:Implements" to="/0/@model.1/@codeElement.0/@codeElement.1/@codeElement.9" from="/0/@model.1/@codeElement.0/@codeElement.1/@codeElement.8"/>
+ <codeElement xsi:type="code:MethodUnit" name="toString" type="/0/@model.1/@codeElement.0/@codeElement.1/@codeElement.8/@codeElement.0/@codeElement.0" export="unknown">
+ <source language="java">
+ <region language="java"/>
+ </source>
+ <codeElement xsi:type="code:Signature" name="toString"/>
+ </codeElement>
+ <codeElement xsi:type="code:MethodUnit" name="String" type="/0/@model.1/@codeElement.0/@codeElement.1/@codeElement.8/@codeElement.1/@codeElement.0" kind="constructor" export="unknown">
+ <source language="java">
+ <region language="java"/>
+ </source>
+ <codeElement xsi:type="code:Signature" name="String"/>
+ </codeElement>
+ </codeElement>
+ <codeElement xsi:type="code:InterfaceUnit" name="CharSequence">
+ <source language="java">
+ <region language="java"/>
+ </source>
+ </codeElement>
+ <codeElement xsi:type="code:InterfaceUnit" name="Cloneable">
+ <source language="java">
+ <region language="java"/>
+ </source>
+ </codeElement>
+ <codeElement xsi:type="code:ClassUnit" name="Long">
+ <source language="java">
+ <region language="java"/>
+ </source>
+ <codeRelation xsi:type="code:Implements" to="/0/@model.1/@codeElement.0/@codeElement.1/@codeElement.6" from="/0/@model.1/@codeElement.0/@codeElement.1/@codeElement.11"/>
+ <codeRelation xsi:type="code:Extends" to="/0/@model.1/@codeElement.0/@codeElement.1/@codeElement.5" from="/0/@model.1/@codeElement.0/@codeElement.1/@codeElement.11"/>
+ </codeElement>
+ <codeElement xsi:type="code:ClassUnit" name="Thread">
+ <source language="java">
+ <region language="java"/>
+ </source>
+ <codeRelation xsi:type="code:Implements" to="/0/@model.1/@codeElement.0/@codeElement.1/@codeElement.13" from="/0/@model.1/@codeElement.0/@codeElement.1/@codeElement.12"/>
+ </codeElement>
+ <codeElement xsi:type="code:InterfaceUnit" name="Runnable">
+ <source language="java">
+ <region language="java"/>
+ </source>
+ </codeElement>
+ <codeElement xsi:type="code:ClassUnit" name="System">
+ <source language="java">
+ <region language="java"/>
+ </source>
+ <codeElement xsi:type="code:StorableUnit" name="out">
+ <source language="java">
+ <region language="java"/>
+ </source>
+ </codeElement>
+ </codeElement>
+ <codeElement xsi:type="code:InterfaceUnit" name="Appendable">
+ <source language="java">
+ <region language="java"/>
+ </source>
+ </codeElement>
+ <codeElement xsi:type="code:ClassUnit" name="Boolean">
+ <source language="java">
+ <region language="java"/>
+ </source>
+ <codeRelation xsi:type="code:Implements" to="/0/@model.1/@codeElement.0/@codeElement.2/@codeElement.0" from="/0/@model.1/@codeElement.0/@codeElement.1/@codeElement.16"/>
+ <codeRelation xsi:type="code:Implements" to="/0/@model.1/@codeElement.0/@codeElement.1/@codeElement.6" from="/0/@model.1/@codeElement.0/@codeElement.1/@codeElement.16"/>
+ </codeElement>
+ <codeElement xsi:type="code:ClassUnit" name="Object">
+ <source language="java">
+ <region language="java"/>
+ </source>
+ <codeElement xsi:type="code:MethodUnit" name="toString" type="/0/@model.1/@codeElement.0/@codeElement.1/@codeElement.17/@codeElement.0/@codeElement.0" export="unknown">
+ <source language="java">
+ <region language="java"/>
+ </source>
+ <codeElement xsi:type="code:Signature" name="toString"/>
+ </codeElement>
+ </codeElement>
+ <codeElement xsi:type="code:TemplateUnit" name="Class&lt;T>">
+ <codeElement xsi:type="code:TemplateParameter" name="T"/>
+ <codeElement xsi:type="code:ClassUnit" name="Class">
+ <source language="java">
+ <region language="java"/>
+ </source>
+ <codeRelation xsi:type="code:Implements" to="/0/@model.1/@codeElement.0/@codeElement.2/@codeElement.0" from="/0/@model.1/@codeElement.0/@codeElement.1/@codeElement.18/@codeElement.1"/>
+ <codeRelation xsi:type="code:Implements" to="/0/@model.1/@codeElement.0/@codeElement.1/@codeElement.0/@codeElement.0" from="/0/@model.1/@codeElement.0/@codeElement.1/@codeElement.18/@codeElement.1"/>
+ <codeRelation xsi:type="code:Implements" to="/0/@model.1/@codeElement.0/@codeElement.1/@codeElement.0/@codeElement.1" from="/0/@model.1/@codeElement.0/@codeElement.1/@codeElement.18/@codeElement.1"/>
+ <codeRelation xsi:type="code:Implements" to="/0/@model.1/@codeElement.0/@codeElement.1/@codeElement.0/@codeElement.2" from="/0/@model.1/@codeElement.0/@codeElement.1/@codeElement.18/@codeElement.1"/>
+ <codeElement xsi:type="code:MethodUnit" name="forName" type="/0/@model.1/@codeElement.0/@codeElement.1/@codeElement.18/@codeElement.1/@codeElement.0/@codeElement.0" export="unknown">
+ <source language="java">
+ <region language="java"/>
+ </source>
+ <codeElement xsi:type="code:Signature" name="forName">
+ <parameterUnit name="arg0" type="/0/@model.1/@codeElement.0/@codeElement.1/@codeElement.8" kind="unknown">
+ <source language="java">
+ <region language="java"/>
+ </source>
+ </parameterUnit>
+ </codeElement>
+ </codeElement>
+ <codeElement xsi:type="code:MethodUnit" name="getMethod" type="/0/@model.1/@codeElement.0/@codeElement.1/@codeElement.18/@codeElement.1/@codeElement.1/@codeElement.0" export="unknown">
+ <source language="java">
+ <region language="java"/>
+ </source>
+ <codeElement xsi:type="code:Signature" name="getMethod">
+ <parameterUnit name="arg0" type="/0/@model.1/@codeElement.0/@codeElement.1/@codeElement.8" kind="unknown">
+ <source language="java">
+ <region language="java"/>
+ </source>
+ </parameterUnit>
+ <parameterUnit name="arg1" type="/0/@model.1/@codeElement.20" kind="unknown">
+ <source language="java">
+ <region language="java"/>
+ </source>
+ </parameterUnit>
+ </codeElement>
+ </codeElement>
+ <codeElement xsi:type="code:MethodUnit" name="newInstance" type="/0/@model.1/@codeElement.0/@codeElement.1/@codeElement.18/@codeElement.1/@codeElement.2/@codeElement.0" export="unknown">
+ <source language="java">
+ <region language="java"/>
+ </source>
+ <codeElement xsi:type="code:Signature" name="newInstance"/>
+ </codeElement>
+ </codeElement>
+ </codeElement>
+ <codeElement xsi:type="code:ClassUnit" name="Exception">
+ <source language="java">
+ <region language="java"/>
+ </source>
+ <codeRelation xsi:type="code:Extends" to="/0/@model.1/@codeElement.0/@codeElement.1/@codeElement.20" from="/0/@model.1/@codeElement.0/@codeElement.1/@codeElement.19"/>
+ </codeElement>
+ <codeElement xsi:type="code:ClassUnit" name="Throwable">
+ <source language="java">
+ <region language="java"/>
+ </source>
+ <codeRelation xsi:type="code:Implements" to="/0/@model.1/@codeElement.0/@codeElement.2/@codeElement.0" from="/0/@model.1/@codeElement.0/@codeElement.1/@codeElement.20"/>
+ </codeElement>
+ </codeElement>
+ <codeElement xsi:type="code:Package" name="io">
+ <codeElement xsi:type="code:InterfaceUnit" name="Serializable">
+ <source language="java">
+ <region language="java"/>
+ </source>
+ </codeElement>
+ <codeElement xsi:type="code:ClassUnit" name="File">
+ <source language="java">
+ <region language="java"/>
+ </source>
+ <codeRelation xsi:type="code:Implements" to="/0/@model.1/@codeElement.0/@codeElement.2/@codeElement.0" from="/0/@model.1/@codeElement.0/@codeElement.2/@codeElement.1"/>
+ <codeRelation xsi:type="code:Implements" to="/0/@model.1/@codeElement.0/@codeElement.1/@codeElement.6" from="/0/@model.1/@codeElement.0/@codeElement.2/@codeElement.1"/>
+ </codeElement>
+ <codeElement xsi:type="code:ClassUnit" name="PrintStream">
+ <source language="java">
+ <region language="java"/>
+ </source>
+ <codeRelation xsi:type="code:Implements" to="/0/@model.1/@codeElement.0/@codeElement.1/@codeElement.15" from="/0/@model.1/@codeElement.0/@codeElement.2/@codeElement.2"/>
+ <codeRelation xsi:type="code:Implements" to="/0/@model.1/@codeElement.0/@codeElement.2/@codeElement.5" from="/0/@model.1/@codeElement.0/@codeElement.2/@codeElement.2"/>
+ <codeRelation xsi:type="code:Extends" to="/0/@model.1/@codeElement.0/@codeElement.2/@codeElement.3" from="/0/@model.1/@codeElement.0/@codeElement.2/@codeElement.2"/>
+ <codeElement xsi:type="code:MethodUnit" name="println" type="/0/@model.1/@codeElement.0/@codeElement.2/@codeElement.2/@codeElement.0/@codeElement.0" export="unknown">
+ <source language="java">
+ <region language="java"/>
+ </source>
+ <codeElement xsi:type="code:Signature" name="println">
+ <parameterUnit name="arg0" type="/0/@model.1/@codeElement.0/@codeElement.1/@codeElement.8" kind="unknown">
+ <source language="java">
+ <region language="java"/>
+ </source>
+ </parameterUnit>
+ </codeElement>
+ </codeElement>
+ <codeElement xsi:type="code:MethodUnit" name="printf" type="/0/@model.1/@codeElement.0/@codeElement.2/@codeElement.2/@codeElement.1/@codeElement.0" export="unknown">
+ <source language="java">
+ <region language="java"/>
+ </source>
+ <codeElement xsi:type="code:Signature" name="printf">
+ <parameterUnit name="arg0" type="/0/@model.1/@codeElement.0/@codeElement.1/@codeElement.8" kind="unknown">
+ <source language="java">
+ <region language="java"/>
+ </source>
+ </parameterUnit>
+ <parameterUnit name="arg1" type="/0/@model.1/@codeElement.21" kind="unknown">
+ <source language="java">
+ <region language="java"/>
+ </source>
+ </parameterUnit>
+ </codeElement>
+ </codeElement>
+ </codeElement>
+ <codeElement xsi:type="code:ClassUnit" name="FilterOutputStream">
+ <source language="java">
+ <region language="java"/>
+ </source>
+ <codeRelation xsi:type="code:Extends" to="/0/@model.1/@codeElement.0/@codeElement.2/@codeElement.4" from="/0/@model.1/@codeElement.0/@codeElement.2/@codeElement.3"/>
+ </codeElement>
+ <codeElement xsi:type="code:ClassUnit" name="OutputStream">
+ <source language="java">
+ <region language="java"/>
+ </source>
+ <codeRelation xsi:type="code:Implements" to="/0/@model.1/@codeElement.0/@codeElement.2/@codeElement.5" from="/0/@model.1/@codeElement.0/@codeElement.2/@codeElement.4"/>
+ <codeRelation xsi:type="code:Implements" to="/0/@model.1/@codeElement.0/@codeElement.2/@codeElement.6" from="/0/@model.1/@codeElement.0/@codeElement.2/@codeElement.4"/>
+ </codeElement>
+ <codeElement xsi:type="code:InterfaceUnit" name="Closeable">
+ <source language="java">
+ <region language="java"/>
+ </source>
+ </codeElement>
+ <codeElement xsi:type="code:InterfaceUnit" name="Flushable">
+ <source language="java">
+ <region language="java"/>
+ </source>
+ </codeElement>
+ </codeElement>
+ <codeElement xsi:type="code:Package" name="text">
+ <codeElement xsi:type="code:ClassUnit" name="MessageFormat">
+ <source language="java">
+ <region language="java"/>
+ </source>
+ <codeRelation xsi:type="code:Extends" to="/0/@model.1/@codeElement.0/@codeElement.3/@codeElement.1" from="/0/@model.1/@codeElement.0/@codeElement.3/@codeElement.0"/>
+ <codeElement xsi:type="code:MethodUnit" name="format" type="/0/@model.1/@codeElement.0/@codeElement.3/@codeElement.0/@codeElement.0/@codeElement.0" export="unknown">
+ <source language="java">
+ <region language="java"/>
+ </source>
+ <codeElement xsi:type="code:Signature" name="format">
+ <parameterUnit name="arg0" type="/0/@model.1/@codeElement.0/@codeElement.1/@codeElement.8" kind="unknown">
+ <source language="java">
+ <region language="java"/>
+ </source>
+ </parameterUnit>
+ <parameterUnit name="arg1" type="/0/@model.1/@codeElement.21" kind="unknown">
+ <source language="java">
+ <region language="java"/>
+ </source>
+ </parameterUnit>
+ </codeElement>
+ </codeElement>
+ </codeElement>
+ <codeElement xsi:type="code:ClassUnit" name="Format">
+ <source language="java">
+ <region language="java"/>
+ </source>
+ <codeRelation xsi:type="code:Implements" to="/0/@model.1/@codeElement.0/@codeElement.2/@codeElement.0" from="/0/@model.1/@codeElement.0/@codeElement.3/@codeElement.1"/>
+ <codeRelation xsi:type="code:Implements" to="/0/@model.1/@codeElement.0/@codeElement.1/@codeElement.10" from="/0/@model.1/@codeElement.0/@codeElement.3/@codeElement.1"/>
+ </codeElement>
+ </codeElement>
+ </codeElement>
+ <codeElement xsi:type="code:Package" name="javax">
+ <codeElement xsi:type="code:Package" name="swing">
+ <codeElement xsi:type="code:Package" name="text">
+ <codeElement xsi:type="code:Package" name="html">
+ <codeElement xsi:type="code:Package" name="parser">
+ <codeElement xsi:type="code:InterfaceUnit" name="DTDConstants">
+ <source language="java">
+ <region language="java"/>
+ </source>
+ </codeElement>
+ </codeElement>
+ </codeElement>
+ </codeElement>
+ </codeElement>
+ </codeElement>
+ <codeElement xsi:type="code:Package" name="unrPkg1"/>
+ <codeElement xsi:type="code:TemplateType" name="java.util.List&lt;java.lang.Integer>">
+ <codeRelation xsi:type="code:ParameterTo" to="/0/@model.1/@codeElement.0/@codeElement.1/@codeElement.4" from="/0/@model.1/@codeElement.3"/>
+ <codeRelation xsi:type="code:InstanceOf" to="/0/@model.1/@codeElement.0/@codeElement.0/@codeElement.0" from="/0/@model.1/@codeElement.3"/>
+ </codeElement>
+ <codeElement xsi:type="code:ArrayType" name="java.lang.String[]" size="1">
+ <itemUnit type="/0/@model.1/@codeElement.0/@codeElement.1/@codeElement.8"/>
+ <indexUnit type="/0/@model.0/@codeElement.22/@codeElement.0"/>
+ </codeElement>
+ <codeElement xsi:type="code:TemplateType" name="java.util.ArrayList&lt;java.lang.String>">
+ <codeRelation xsi:type="code:ParameterTo" to="/0/@model.1/@codeElement.0/@codeElement.1/@codeElement.8" from="/0/@model.1/@codeElement.5"/>
+ <codeRelation xsi:type="code:InstanceOf" to="/0/@model.1/@codeElement.0/@codeElement.0/@codeElement.2" from="/0/@model.1/@codeElement.5"/>
+ </codeElement>
+ <codeElement xsi:type="code:TemplateType" name="java.util.ArrayList&lt;java.lang.Integer>">
+ <codeRelation xsi:type="code:ParameterTo" to="/0/@model.1/@codeElement.0/@codeElement.1/@codeElement.4" from="/0/@model.1/@codeElement.6"/>
+ <codeRelation xsi:type="code:InstanceOf" to="/0/@model.1/@codeElement.0/@codeElement.0/@codeElement.2" from="/0/@model.1/@codeElement.6"/>
+ </codeElement>
+ <codeElement xsi:type="code:TemplateType" name="java.util.ArrayList&lt;java.lang.Long>">
+ <codeRelation xsi:type="code:ParameterTo" to="/0/@model.1/@codeElement.0/@codeElement.1/@codeElement.11" from="/0/@model.1/@codeElement.7"/>
+ <codeRelation xsi:type="code:InstanceOf" to="/0/@model.1/@codeElement.0/@codeElement.0/@codeElement.2" from="/0/@model.1/@codeElement.7"/>
+ </codeElement>
+ <codeElement xsi:type="code:TypeUnit" type="/0/@model.1/@codeElement.0/@codeElement.1/@codeElement.16"/>
+ <codeElement xsi:type="code:TemplateType" name="java.util.List&lt;? extends java.lang.Boolean>">
+ <codeRelation xsi:type="code:ParameterTo" to="/0/@model.1/@codeElement.8" from="/0/@model.1/@codeElement.9"/>
+ <codeRelation xsi:type="code:InstanceOf" to="/0/@model.1/@codeElement.0/@codeElement.0/@codeElement.0" from="/0/@model.1/@codeElement.9"/>
+ </codeElement>
+ <codeElement xsi:type="code:TypeUnit" type="/0/@model.1/@codeElement.0/@codeElement.1/@codeElement.8"/>
+ <codeElement xsi:type="code:TemplateType" name="java.util.Map&lt;java.lang.String,? super java.lang.String>">
+ <codeRelation xsi:type="code:ParameterTo" to="/0/@model.1/@codeElement.0/@codeElement.1/@codeElement.8" from="/0/@model.1/@codeElement.11"/>
+ <codeRelation xsi:type="code:ParameterTo" to="/0/@model.1/@codeElement.10" from="/0/@model.1/@codeElement.11"/>
+ <codeRelation xsi:type="code:InstanceOf" to="/0/@model.1/@codeElement.0/@codeElement.0/@codeElement.6" from="/0/@model.1/@codeElement.11"/>
+ </codeElement>
+ <codeElement xsi:type="code:TypeUnit" type="/0/@model.0/@codeElement.11/@codeElement.0/@codeElement.0"/>
+ <codeElement xsi:type="code:TemplateType" name="java.util.List&lt;? extends T1>">
+ <codeRelation xsi:type="code:ParameterTo" to="/0/@model.1/@codeElement.12" from="/0/@model.1/@codeElement.13"/>
+ <codeRelation xsi:type="code:InstanceOf" to="/0/@model.1/@codeElement.0/@codeElement.0/@codeElement.0" from="/0/@model.1/@codeElement.13"/>
+ </codeElement>
+ <codeElement xsi:type="code:TypeUnit"/>
+ <codeElement xsi:type="code:TemplateType" name="java.util.List&lt;?>">
+ <codeRelation xsi:type="code:ParameterTo" to="/0/@model.1/@codeElement.14" from="/0/@model.1/@codeElement.15"/>
+ <codeRelation xsi:type="code:InstanceOf" to="/0/@model.1/@codeElement.0/@codeElement.0/@codeElement.0" from="/0/@model.1/@codeElement.15"/>
+ </codeElement>
+ <codeElement xsi:type="code:TemplateType" name="java.util.HashMap&lt;R,P>">
+ <codeRelation xsi:type="code:ParameterTo" to="/0/@model.0/@codeElement.12/@codeElement.0/@codeElement.0/@codeElement.0" from="/0/@model.1/@codeElement.16"/>
+ <codeRelation xsi:type="code:ParameterTo" to="/0/@model.0/@codeElement.12/@codeElement.0/@codeElement.0/@codeElement.1" from="/0/@model.1/@codeElement.16"/>
+ <codeRelation xsi:type="code:InstanceOf" to="/0/@model.1/@codeElement.0/@codeElement.0/@codeElement.7" from="/0/@model.1/@codeElement.16"/>
+ </codeElement>
+ <codeElement xsi:type="code:TypeUnit" type="/0/@model.1/@codeElement.0/@codeElement.2/@codeElement.1"/>
+ <codeElement xsi:type="code:TemplateType" name="java.lang.Iterable&lt;? extends java.io.File>">
+ <codeRelation xsi:type="code:ParameterTo" to="/0/@model.1/@codeElement.17" from="/0/@model.1/@codeElement.18"/>
+ <codeRelation xsi:type="code:InstanceOf" to="/0/@model.1/@codeElement.0/@codeElement.1/@codeElement.1" from="/0/@model.1/@codeElement.18"/>
+ </codeElement>
+ <codeElement xsi:type="code:TemplateType" name="java.util.HashMap&lt;java.lang.String,java.lang.Iterable&lt;? extends java.io.File>>">
+ <codeRelation xsi:type="code:ParameterTo" to="/0/@model.1/@codeElement.0/@codeElement.1/@codeElement.8" from="/0/@model.1/@codeElement.19"/>
+ <codeRelation xsi:type="code:ParameterTo" to="/0/@model.1/@codeElement.18" from="/0/@model.1/@codeElement.19"/>
+ <codeRelation xsi:type="code:InstanceOf" to="/0/@model.1/@codeElement.0/@codeElement.0/@codeElement.7" from="/0/@model.1/@codeElement.19"/>
+ </codeElement>
+ <codeElement xsi:type="code:ArrayType" name="java.lang.Class[]" size="1">
+ <itemUnit type="/0/@model.1/@codeElement.0/@codeElement.1/@codeElement.18"/>
+ <indexUnit type="/0/@model.0/@codeElement.22/@codeElement.0"/>
+ </codeElement>
+ <codeElement xsi:type="code:ArrayType" name="java.lang.Object[]" size="1">
+ <itemUnit type="/0/@model.1/@codeElement.0/@codeElement.1/@codeElement.17"/>
+ <indexUnit type="/0/@model.0/@codeElement.22/@codeElement.0"/>
+ </codeElement>
+ <codeElement xsi:type="action:ActionElement" name="method invocation" kind="method invocation">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.0" language="java"/>
+ </source>
+ <actionRelation xsi:type="action:Calls" to="/0/@model.0/@codeElement.0/@codeElement.0/@codeElement.1" from="/0/@model.1/@codeElement.22"/>
+ </codeElement>
+ <codeElement xsi:type="code:Value" name="string literal" type="/0/@model.0/@codeElement.22/@codeElement.9" ext="&quot;unchecked&quot;">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.0" language="java"/>
+ </source>
+ </codeElement>
+ <codeElement xsi:type="code:Value" name="string literal" type="/0/@model.0/@codeElement.22/@codeElement.9" ext="&quot;unchecked&quot;">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.0" language="java"/>
+ </source>
+ </codeElement>
+ <codeElement xsi:type="code:Value" name="boolean literal" type="/0/@model.0/@codeElement.22/@codeElement.4" ext="true">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.1" language="java"/>
+ </source>
+ </codeElement>
+ <codeElement xsi:type="code:Value" name="number literal" type="/0/@model.0/@codeElement.22/@codeElement.0" ext="2">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.2" language="java"/>
+ </source>
+ </codeElement>
+ <codeElement xsi:type="code:Value" name="string literal" type="/0/@model.0/@codeElement.22/@codeElement.9" ext="&quot;ok&quot;">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.2" language="java"/>
+ </source>
+ </codeElement>
+ <codeElement xsi:type="code:Value" name="string literal" type="/0/@model.0/@codeElement.22/@codeElement.9" ext="&quot;ok&quot;">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.2" language="java"/>
+ </source>
+ </codeElement>
+ <codeElement xsi:type="code:Value" name="string literal" type="/0/@model.0/@codeElement.22/@codeElement.9" ext="&quot;&quot;">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.2" language="java"/>
+ </source>
+ </codeElement>
+ <codeElement xsi:type="code:Value" name="string literal" type="/0/@model.0/@codeElement.22/@codeElement.9" ext="&quot;ok&quot;">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.2" language="java"/>
+ </source>
+ </codeElement>
+ <codeElement xsi:type="code:Value" name="number literal" type="/0/@model.0/@codeElement.22/@codeElement.0" ext="2">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.2" language="java"/>
+ </source>
+ </codeElement>
+ <codeElement xsi:type="code:Value" name="string literal" type="/0/@model.0/@codeElement.22/@codeElement.9" ext="&quot;ok&quot;">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.2" language="java"/>
+ </source>
+ </codeElement>
+ <codeElement xsi:type="code:Value" name="string literal" type="/0/@model.0/@codeElement.22/@codeElement.9" ext="&quot;unused&quot;">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.2" language="java"/>
+ </source>
+ </codeElement>
+ <codeElement xsi:type="action:ActionElement" name="null" kind="null">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.4" language="java"/>
+ </source>
+ </codeElement>
+ <codeElement xsi:type="action:ActionElement" name="null" kind="null">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.5" language="java"/>
+ </source>
+ </codeElement>
+ <codeElement xsi:type="action:ActionElement" name="null" kind="null">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.18" language="java"/>
+ </source>
+ </codeElement>
+ <codeElement xsi:type="action:ActionElement" name="method invocation" kind="method invocation">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.32" language="java"/>
+ </source>
+ <actionRelation xsi:type="action:Calls" to="/0/@model.1/@codeElement.44" from="/0/@model.1/@codeElement.37"/>
+ </codeElement>
+ <codeElement xsi:type="code:Value" name="number literal" type="/0/@model.0/@codeElement.22/@codeElement.0" ext="0">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.33" language="java"/>
+ </source>
+ </codeElement>
+ <codeElement xsi:type="code:Value" name="number literal" type="/0/@model.0/@codeElement.22/@codeElement.0" ext="0">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.33" language="java"/>
+ </source>
+ </codeElement>
+ <codeElement xsi:type="action:ActionElement" name="method invocation" kind="method invocation">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.33" language="java"/>
+ </source>
+ <actionRelation xsi:type="action:Calls" to="/0/@model.1/@codeElement.0/@codeElement.1/@codeElement.18/@codeElement.1/@codeElement.0" from="/0/@model.1/@codeElement.40"/>
+ </codeElement>
+ <codeElement xsi:type="action:ActionElement" name="method invocation" kind="method invocation">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.34" language="java"/>
+ </source>
+ <codeElement xsi:type="action:ActionElement" name="PLUS" kind="infix expression">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.34" language="java"/>
+ </source>
+ <codeElement xsi:type="code:Value" name="string literal" type="/0/@model.0/@codeElement.22/@codeElement.9" ext="&quot;At {1,time} on {1,date}, there was {2} on planet &quot;">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.34" language="java"/>
+ </source>
+ </codeElement>
+ <codeElement xsi:type="code:Value" name="string literal" type="/0/@model.0/@codeElement.22/@codeElement.9" ext="&quot;{0,number,integer}.&quot;">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.34" language="java"/>
+ </source>
+ </codeElement>
+ </codeElement>
+ <codeElement xsi:type="code:Value" name="number literal" type="/0/@model.0/@codeElement.22/@codeElement.0" ext="7">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.34" language="java"/>
+ </source>
+ </codeElement>
+ <codeElement xsi:type="action:ActionElement" name="class instance creation" kind="class instance creation">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.34" language="java"/>
+ </source>
+ <actionRelation xsi:type="action:Calls" to="/0/@model.1/@codeElement.0/@codeElement.0/@codeElement.11/@codeElement.0" from="/0/@model.1/@codeElement.41/@codeElement.2"/>
+ <actionRelation xsi:type="action:Creates" to="/0/@model.1/@codeElement.0/@codeElement.0/@codeElement.11" from="/0/@model.1/@codeElement.41/@codeElement.2"/>
+ </codeElement>
+ <codeElement xsi:type="code:Value" name="string literal" type="/0/@model.0/@codeElement.22/@codeElement.9" ext="&quot;a disturbance in the Force&quot;">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.34" language="java"/>
+ </source>
+ </codeElement>
+ <actionRelation xsi:type="action:Calls" to="/0/@model.1/@codeElement.0/@codeElement.3/@codeElement.0/@codeElement.0" from="/0/@model.1/@codeElement.41"/>
+ </codeElement>
+ <codeElement xsi:type="action:ActionElement" name="array length access" kind="array length access">
+ <source language="java">
+ <region file="/0/@model.2/@inventoryElement.34" language="java"/>
+ </source>
+ </codeElement>
+ <codeElement xsi:type="code:MethodUnit" name="new SuperBob()" type="/0/@model.1/@codeElement.43/@codeElement.0" export="unknown">
+ <source language="java">
+ <region language="java"/>
+ </source>
+ <codeElement xsi:type="code:Signature" name="new SuperBob()"/>
+ </codeElement>
+ <codeElement xsi:type="code:MethodUnit" name="getBobette" type="/0/@model.1/@codeElement.44/@codeElement.0" export="unknown">
+ <source language="java">
+ <region language="java"/>
+ </source>
+ <codeElement xsi:type="code:Signature" name="getBobette"/>
+ </codeElement>
+ <codeElement xsi:type="code:MethodUnit" name="new BobException()" type="/0/@model.1/@codeElement.45/@codeElement.0" export="unknown">
+ <source language="java">
+ <region language="java"/>
+ </source>
+ <codeElement xsi:type="code:Signature" name="new BobException()"/>
+ </codeElement>
+ <codeElement xsi:type="code:InterfaceUnit" name="Bob"/>
+ <codeElement xsi:type="code:InterfaceUnit" name="com.mia.core.console.Console"/>
+ <codeElement xsi:type="code:InterfaceUnit" name="enumerations.Planet"/>
+ <codeElement xsi:type="code:InterfaceUnit" name="javax.lang.model.type.ArrayType"/>
+ <codeElement xsi:type="code:InterfaceUnit" name="Bobette"/>
+ <codeElement xsi:type="code:InterfaceUnit" name="BobMan"/>
+ <codeElement xsi:type="code:Datatype" name="x"/>
+ <codeElement xsi:type="code:InterfaceUnit" name="Console"/>
+ <codeElement xsi:type="code:Datatype" name="NULL_CONSOLE"/>
+ <codeElement xsi:type="code:InterfaceUnit" name="SuperBob"/>
+ <codeElement xsi:type="code:InterfaceUnit" name="BobException"/>
+ </model>
+ <model xsi:type="source:InventoryModel" name="source references">
+ <inventoryElement xsi:type="source:SourceFile" name="MyAnnotatedClass.java" path="D:\eclipse 3.7M2\junit-workspace\org.eclipse.gmt.modisco.java.discoverer.tests_test001\src\annotations\MyAnnotatedClass.java" language="java"/>
+ <inventoryElement xsi:type="source:SourceFile" name="MyAnnotation.java" path="D:\eclipse 3.7M2\junit-workspace\org.eclipse.gmt.modisco.java.discoverer.tests_test001\src\annotations\MyAnnotation.java" language="java"/>
+ <inventoryElement xsi:type="source:SourceFile" name="MyAnnotatedClass2.java" path="D:\eclipse 3.7M2\junit-workspace\org.eclipse.gmt.modisco.java.discoverer.tests_test001\src\annotations\MyAnnotatedClass2.java" language="java"/>
+ <inventoryElement xsi:type="source:SourceFile" name="Bug325108.java" path="D:\eclipse 3.7M2\junit-workspace\org.eclipse.gmt.modisco.java.discoverer.tests_test001\src\bug325108\Bug325108.java" language="java"/>
+ <inventoryElement xsi:type="source:SourceFile" name="Iface1.java" path="D:\eclipse 3.7M2\junit-workspace\org.eclipse.gmt.modisco.java.discoverer.tests_test001\src\classorifaceproxy\p1\Iface1.java" language="java"/>
+ <inventoryElement xsi:type="source:SourceFile" name="Iface2.java" path="D:\eclipse 3.7M2\junit-workspace\org.eclipse.gmt.modisco.java.discoverer.tests_test001\src\classorifaceproxy\p2\Iface2.java" language="java"/>
+ <inventoryElement xsi:type="source:SourceFile" name="Comments.java" path="D:\eclipse 3.7M2\junit-workspace\org.eclipse.gmt.modisco.java.discoverer.tests_test001\src\comments\Comments.java" language="java"/>
+ <inventoryElement xsi:type="source:SourceFile" name="DuplicateProxy1.java" path="D:\eclipse 3.7M2\junit-workspace\org.eclipse.gmt.modisco.java.discoverer.tests_test001\src\duplicateproxy\DuplicateProxy1.java" language="java"/>
+ <inventoryElement xsi:type="source:SourceFile" name="DuplicateProxy2.java" path="D:\eclipse 3.7M2\junit-workspace\org.eclipse.gmt.modisco.java.discoverer.tests_test001\src\duplicateproxy\DuplicateProxy2.java" language="java"/>
+ <inventoryElement xsi:type="source:SourceFile" name="DuplicateProxy3.java" path="D:\eclipse 3.7M2\junit-workspace\org.eclipse.gmt.modisco.java.discoverer.tests_test001\src\duplicateproxy\DuplicateProxy3.java" language="java"/>
+ <inventoryElement xsi:type="source:SourceFile" name="EnumUse.java" path="D:\eclipse 3.7M2\junit-workspace\org.eclipse.gmt.modisco.java.discoverer.tests_test001\src\enumerations\p1\EnumUse.java" language="java"/>
+ <inventoryElement xsi:type="source:SourceFile" name="MyEnumeration.java" path="D:\eclipse 3.7M2\junit-workspace\org.eclipse.gmt.modisco.java.discoverer.tests_test001\src\enumerations\p1\MyEnumeration.java" language="java"/>
+ <inventoryElement xsi:type="source:SourceFile" name="InitializerTest.java" path="D:\eclipse 3.7M2\junit-workspace\org.eclipse.gmt.modisco.java.discoverer.tests_test001\src\initializer\InitializerTest.java" language="java"/>
+ <inventoryElement xsi:type="source:SourceFile" name="InnerClass.java" path="D:\eclipse 3.7M2\junit-workspace\org.eclipse.gmt.modisco.java.discoverer.tests_test001\src\innerclass\InnerClass.java" language="java"/>
+ <inventoryElement xsi:type="source:SourceFile" name="InnerClassB.java" path="D:\eclipse 3.7M2\junit-workspace\org.eclipse.gmt.modisco.java.discoverer.tests_test001\src\innerclass\InnerClassB.java" language="java"/>
+ <inventoryElement xsi:type="source:SourceFile" name="AnonymousClass.java" path="D:\eclipse 3.7M2\junit-workspace\org.eclipse.gmt.modisco.java.discoverer.tests_test001\src\methodefromanonymousclassdeclaration\AnonymousClass.java" language="java"/>
+ <inventoryElement xsi:type="source:SourceFile" name="Modifiers.java" path="D:\eclipse 3.7M2\junit-workspace\org.eclipse.gmt.modisco.java.discoverer.tests_test001\src\modifiers\Modifiers.java" language="java"/>
+ <inventoryElement xsi:type="source:SourceFile" name="PackageAccess.java" path="D:\eclipse 3.7M2\junit-workspace\org.eclipse.gmt.modisco.java.discoverer.tests_test001\src\packageaccess\PackageAccess.java" language="java"/>
+ <inventoryElement xsi:type="source:SourceFile" name="ParameterizedType2.java" path="D:\eclipse 3.7M2\junit-workspace\org.eclipse.gmt.modisco.java.discoverer.tests_test001\src\parameterizedtype\ParameterizedType2.java" language="java"/>
+ <inventoryElement xsi:type="source:SourceFile" name="ParameterizedType.java" path="D:\eclipse 3.7M2\junit-workspace\org.eclipse.gmt.modisco.java.discoverer.tests_test001\src\parameterizedtype\ParameterizedType.java" language="java"/>
+ <inventoryElement xsi:type="source:SourceFile" name="Class1.java" path="D:\eclipse 3.7M2\junit-workspace\org.eclipse.gmt.modisco.java.discoverer.tests_test001\src\parameterizedtypeinmethoddecl\Class1.java" language="java"/>
+ <inventoryElement xsi:type="source:SourceFile" name="PFClass1.java" path="D:\eclipse 3.7M2\junit-workspace\org.eclipse.gmt.modisco.java.discoverer.tests_test001\src\proxyField\p1\PFClass1.java" language="java"/>
+ <inventoryElement xsi:type="source:SourceFile" name="PFClass2.java" path="D:\eclipse 3.7M2\junit-workspace\org.eclipse.gmt.modisco.java.discoverer.tests_test001\src\proxyField\p2\PFClass2.java" language="java"/>
+ <inventoryElement xsi:type="source:SourceFile" name="ProxyParameters1.java" path="D:\eclipse 3.7M2\junit-workspace\org.eclipse.gmt.modisco.java.discoverer.tests_test001\src\proxyparameters\p1\ProxyParameters1.java" language="java"/>
+ <inventoryElement xsi:type="source:SourceFile" name="ProxyParameters2.java" path="D:\eclipse 3.7M2\junit-workspace\org.eclipse.gmt.modisco.java.discoverer.tests_test001\src\proxyparameters\p2\ProxyParameters2.java" language="java"/>
+ <inventoryElement xsi:type="source:SourceFile" name="ResolveBindind1.java" path="D:\eclipse 3.7M2\junit-workspace\org.eclipse.gmt.modisco.java.discoverer.tests_test001\src\resolvebinding\p1\ResolveBindind1.java" language="java"/>
+ <inventoryElement xsi:type="source:SourceFile" name="Class1.java" path="D:\eclipse 3.7M2\junit-workspace\org.eclipse.gmt.modisco.java.discoverer.tests_test001\src\test001\p1\Class1.java" language="java"/>
+ <inventoryElement xsi:type="source:SourceFile" name="Class2.java" path="D:\eclipse 3.7M2\junit-workspace\org.eclipse.gmt.modisco.java.discoverer.tests_test001\src\test001\p2\Class2.java" language="java"/>
+ <inventoryElement xsi:type="source:SourceFile" name="Class2.java" path="D:\eclipse 3.7M2\junit-workspace\org.eclipse.gmt.modisco.java.discoverer.tests_test001\src\test002\Class2.java" language="java"/>
+ <inventoryElement xsi:type="source:SourceFile" name="Class1.java" path="D:\eclipse 3.7M2\junit-workspace\org.eclipse.gmt.modisco.java.discoverer.tests_test001\src\test002\Class1.java" language="java"/>
+ <inventoryElement xsi:type="source:SourceFile" name="Test003.java" path="D:\eclipse 3.7M2\junit-workspace\org.eclipse.gmt.modisco.java.discoverer.tests_test001\src\test003\Test003.java" language="java"/>
+ <inventoryElement xsi:type="source:SourceFile" name="Test004.java" path="D:\eclipse 3.7M2\junit-workspace\org.eclipse.gmt.modisco.java.discoverer.tests_test001\src\test004\Test004.java" language="java"/>
+ <inventoryElement xsi:type="source:SourceFile" name="Unresolved.java" path="D:\eclipse 3.7M2\junit-workspace\org.eclipse.gmt.modisco.java.discoverer.tests_test001\src\unresolved\Unresolved.java" language="java"/>
+ <inventoryElement xsi:type="source:SourceFile" name="VarArgs1.java" path="D:\eclipse 3.7M2\junit-workspace\org.eclipse.gmt.modisco.java.discoverer.tests_test001\src\varargs\VarArgs1.java" language="java"/>
+ <inventoryElement xsi:type="source:SourceFile" name="VarArgs2.java" path="D:\eclipse 3.7M2\junit-workspace\org.eclipse.gmt.modisco.java.discoverer.tests_test001\src\varargs\VarArgs2.java" language="java"/>
+ </model>
+ </kdm:Segment>
+ <kdm:Attribute tag="export" value="none"/>
+ <kdm:Attribute tag="export" value="none"/>
+ <kdm:Attribute tag="export" value="none"/>
+ <kdm:Attribute tag="export" value="none"/>
+ <kdm:Attribute tag="export" value="none"/>
+ <kdm:Attribute tag="export" value="none"/>
+ <kdm:Attribute tag="export" value="none"/>
+ <kdm:Attribute tag="export" value="none"/>
+ <kdm:Attribute tag="export" value="none"/>
+ <kdm:Attribute tag="export" value="none"/>
+ <kdm:Attribute tag="export" value="none"/>
+ <kdm:Attribute tag="export" value="none"/>
+ <kdm:Attribute tag="export" value="none"/>
+ <kdm:Attribute tag="export" value="none"/>
+ <kdm:Attribute tag="export" value="none"/>
+ <kdm:Attribute tag="export" value="none"/>
+ <kdm:Attribute tag="export" value="none"/>
+ <kdm:Attribute tag="export" value="none"/>
+ <kdm:Attribute tag="export" value="none"/>
+ <kdm:Attribute tag="export" value="none"/>
+ <kdm:Attribute tag="export" value="none"/>
+ <kdm:Attribute tag="export" value="none"/>
+ <kdm:Attribute tag="export" value="none"/>
+ <kdm:Attribute tag="export" value="none"/>
+ <kdm:Attribute tag="export" value="none"/>
+ <kdm:Attribute tag="export" value="none"/>
+ <kdm:Attribute tag="export" value="none"/>
+ <kdm:Attribute tag="export" value="none"/>
+ <kdm:Attribute tag="export" value="none"/>
+ <kdm:Attribute tag="export" value="none"/>
+ <kdm:Attribute tag="export" value="none"/>
+ <kdm:Attribute tag="export" value="none"/>
+ <kdm:Attribute tag="export" value="none"/>
+ <kdm:Attribute tag="export" value="none"/>
+</xmi:XMI>
diff --git a/org.eclipse.gmt.modisco.java.discoverer.tests/src/org/eclipse/gmt/modisco/java/discoverer/tests/Activator.java b/org.eclipse.gmt.modisco.java.discoverer.tests/src/org/eclipse/gmt/modisco/java/discoverer/tests/Activator.java
new file mode 100644
index 000000000..83a70e355
--- /dev/null
+++ b/org.eclipse.gmt.modisco.java.discoverer.tests/src/org/eclipse/gmt/modisco/java/discoverer/tests/Activator.java
@@ -0,0 +1,75 @@
+/*******************************************************************************
+ * Copyright (c) 2009, 2010 Mia-Software.
+ * 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:
+ * Gregoire DUPE (Mia-Software)
+ * Romain Dervaux (Mia-Software)
+ * Fabien Giquel (Mia-Software) - Bug 339720 : MoDisco Discoverers (infra + techno) API clean
+ *******************************************************************************/
+
+package org.eclipse.gmt.modisco.java.discoverer.tests;
+
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+import org.osgi.framework.BundleContext;
+
+/**
+ * The activator class controls the plug-in life cycle
+ *
+ * @deprecated use matching org.eclipse.modisco.x.y.z component
+ */
+@Deprecated
+public class Activator extends AbstractUIPlugin {
+
+ // The plug-in ID
+ public static final String PLUGIN_ID = "org.eclipse.gmt.modisco.java.discoverer.tests"; //$NON-NLS-1$
+
+ // The shared instance
+ private static Activator plugin;
+
+ /**
+ * The constructor
+ */
+ public Activator() {
+ // Nothing
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see
+ * org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext
+ * )
+ */
+ @Override
+ public void start(final BundleContext context) throws Exception {
+ super.start(context);
+ Activator.plugin = this;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see
+ * org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext
+ * )
+ */
+ @Override
+ public void stop(final BundleContext context) throws Exception {
+ Activator.plugin = null;
+ super.stop(context);
+ }
+
+ /**
+ * Returns the shared instance
+ *
+ * @return the shared instance
+ */
+ public static Activator getDefault() {
+ return Activator.plugin;
+ }
+
+}
diff --git a/org.eclipse.gmt.modisco.java.discoverer.tests/src/org/eclipse/gmt/modisco/java/discoverer/tests/AllTests.java b/org.eclipse.gmt.modisco.java.discoverer.tests/src/org/eclipse/gmt/modisco/java/discoverer/tests/AllTests.java
new file mode 100644
index 000000000..4d2141f35
--- /dev/null
+++ b/org.eclipse.gmt.modisco.java.discoverer.tests/src/org/eclipse/gmt/modisco/java/discoverer/tests/AllTests.java
@@ -0,0 +1,28 @@
+/*******************************************************************************
+ * Copyright (c) 2010 Mia-Software.
+ * 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:
+ * Nicolas Bros (Mia-Software)
+ * Fabien Giquel (Mia-Software) - Bug 339720 : MoDisco Discoverers (infra + techno) API clean
+ *******************************************************************************/
+package org.eclipse.gmt.modisco.java.discoverer.tests;
+
+import org.junit.runner.RunWith;
+import org.junit.runners.Suite;
+import org.junit.runners.Suite.SuiteClasses;
+
+/*
+ * @deprecated use matching org.eclipse.modisco.x.y.z component
+ */
+@Deprecated
+@RunWith(Suite.class)
+@SuiteClasses({ JavaJUnitEMF.class, SimpleBlackBoxDiscovery.class,
+ SimpleBlackBoxConverter.class, Java2KdmConverterTest.class,
+ ParameterizedDiscovery.class, Bug329423CommentsTest.class })
+public class AllTests {
+ // JUnit 4 test suite
+}
diff --git a/org.eclipse.gmt.modisco.java.discoverer.tests/src/org/eclipse/gmt/modisco/java/discoverer/tests/Bug329423CommentsTest.java b/org.eclipse.gmt.modisco.java.discoverer.tests/src/org/eclipse/gmt/modisco/java/discoverer/tests/Bug329423CommentsTest.java
new file mode 100644
index 000000000..361a6fa5e
--- /dev/null
+++ b/org.eclipse.gmt.modisco.java.discoverer.tests/src/org/eclipse/gmt/modisco/java/discoverer/tests/Bug329423CommentsTest.java
@@ -0,0 +1,65 @@
+/*******************************************************************************
+ * Copyright (c) 2009, 2010 Mia-Software.
+ * 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:
+ * Fabien Giquel - initial API and implementation
+ * Fabien Giquel (Mia-Software) - Bug 339720 : MoDisco Discoverers (infra + techno) API clean
+ *******************************************************************************/
+
+package org.eclipse.gmt.modisco.java.discoverer.tests;
+
+import org.eclipse.gmt.modisco.java.Block;
+import org.eclipse.gmt.modisco.java.ClassDeclaration;
+import org.eclipse.gmt.modisco.java.Comment;
+import org.eclipse.gmt.modisco.java.MethodDeclaration;
+import org.eclipse.gmt.modisco.java.Statement;
+import org.eclipse.gmt.modisco.java.discoverer.tests.utils.AbstractDiscoverTest;
+import org.eclipse.gmt.modisco.java.internal.util.JavaUtil;
+import org.junit.Assert;
+import org.junit.Test;
+
+/**
+ * @deprecated use matching org.eclipse.modisco.x.y.z component
+ */
+@Deprecated
+public class Bug329423CommentsTest extends AbstractDiscoverTest {
+
+ @Override
+ protected String getTargetProjectName() {
+ return Activator.PLUGIN_ID + "_bug329423"; //$NON-NLS-1$
+ }
+
+ @Override
+ protected String getSourcesReferencePath() {
+ return "/workspace/bug329423/"; //$NON-NLS-1$
+ }
+
+ @Test
+ // See Bugzilla 329423
+ public void testIsolatedComments() {
+ ClassDeclaration aClass = (ClassDeclaration) JavaUtil
+ .getNamedElementByQualifiedName(getModel(),
+ "comments.IsolatedComment"); //$NON-NLS-1$
+ Assert.assertNotNull(aClass);
+
+ MethodDeclaration methodMain = (MethodDeclaration) aClass
+ .getBodyDeclarations().get(0);
+ Block mainBody = methodMain.getBody();
+
+ Assert.assertTrue(mainBody.getComments() == null
+ || mainBody.getComments().isEmpty());
+
+ Assert.assertTrue(mainBody.getStatements().size() == 2);
+ Statement secondStatement = mainBody.getStatements().get(1);
+
+ Assert.assertFalse(secondStatement.getComments().isEmpty());
+ Comment comment = secondStatement.getComments().get(0);
+
+ Assert.assertTrue(comment.getContent().contains("a Comment")); //$NON-NLS-1$
+ }
+
+}
diff --git a/org.eclipse.gmt.modisco.java.discoverer.tests/src/org/eclipse/gmt/modisco/java/discoverer/tests/Java2KdmConverterTest.java b/org.eclipse.gmt.modisco.java.discoverer.tests/src/org/eclipse/gmt/modisco/java/discoverer/tests/Java2KdmConverterTest.java
new file mode 100644
index 000000000..67ab753b8
--- /dev/null
+++ b/org.eclipse.gmt.modisco.java.discoverer.tests/src/org/eclipse/gmt/modisco/java/discoverer/tests/Java2KdmConverterTest.java
@@ -0,0 +1,224 @@
+/**
+ * Copyright (c) 2010 Mia-Software.
+ * 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:
+ * Gabriel Barbier (Mia-Software) - initial API and implementation
+ * Fabien Giquel (Mia-Software) - Bug 339720 : MoDisco Discoverers (infra + techno) API clean
+ */
+
+package org.eclipse.gmt.modisco.java.discoverer.tests;
+
+import java.util.Iterator;
+
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.gmt.modisco.java.actions.TranslateJavaModelToKdm;
+import org.eclipse.gmt.modisco.java.discoverer.tests.utils.JavaProjectFactory;
+import org.eclipse.gmt.modisco.omg.kdm.code.ExportKind;
+import org.eclipse.gmt.modisco.omg.kdm.code.MethodUnit;
+import org.eclipse.gmt.modisco.omg.kdm.code.ClassUnit;
+import org.junit.After;
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Test;
+
+/**
+ * To test result of java model to kdm model.
+ *
+ *
+ * @deprecated use matching org.eclipse.modisco.x.y.z component
+ */
+@Deprecated
+public class Java2KdmConverterTest {
+ private final String referencesFolderPath = "/references/"; //$NON-NLS-1$
+ private final String javaModelExtension = ".javaxmi"; //$NON-NLS-1$
+ private final String kdmModelExtension = ".kdm"; //$NON-NLS-1$
+
+ private final String projectName = "testProject"; //$NON-NLS-1$
+ private final String modelName1 = "bug317835"; //$NON-NLS-1$
+ private final String modelName2 = "bug318469"; //$NON-NLS-1$
+ private final String modelName3 = "bug326584"; //$NON-NLS-1$
+ private final String modelNameBug326944 = "bug326944"; //$NON-NLS-1$
+ private final String modelNameBug318631 = "bug318631"; //$NON-NLS-1$
+
+ private JavaProjectFactory javaProjectFactory;
+
+ /**
+ * @throws java.lang.Exception
+ */
+ @Before
+ public void setUp() throws Exception {
+ this.javaProjectFactory = new JavaProjectFactory(this.projectName);
+ }
+
+ /**
+ * @throws java.lang.Exception
+ */
+ @After
+ public void tearDown() throws Exception {
+ if (this.javaProjectFactory != null) {
+ this.javaProjectFactory.dispose();
+ }
+ }
+
+ /**
+ * bug 317835
+ */
+ @SuppressWarnings("null")
+ @Test
+ public void testInterfaceMethodVisibility() {
+ /*
+ * prepare the target ... we have to create an empty project into the
+ * workspace with a real uri for atl extraction.
+ */
+ final String outputPath = this.projectName + "/BasicConversion"//$NON-NLS-1$
+ + this.kdmModelExtension;
+ final URI outputUri = URI.createPlatformResourceURI(outputPath, false);
+
+ final String javaReferencePath = "/" + Activator.PLUGIN_ID + this.referencesFolderPath + this.modelName1 + this.javaModelExtension; //$NON-NLS-1$
+ final URI javaReferenceUri = URI.createPlatformPluginURI(
+ javaReferencePath, true);
+ Assert.assertNotNull(javaReferenceUri);
+
+ this.basicConversionOfJavaModelToKdmModel(javaReferenceUri, outputUri);
+
+ Resource kdmModel = this.basicConversionOfJavaModelToKdmModel(
+ javaReferenceUri, outputUri);
+
+ MethodUnit mi = null;
+ MethodUnit mc = null;
+ Iterator<EObject> it = kdmModel.getAllContents();
+ while (it.hasNext()) {
+ EObject next = it.next();
+ if (next instanceof MethodUnit) {
+ if (((MethodUnit) next).getName().equalsIgnoreCase(
+ "aMethodWithoutVisibility")) { //$NON-NLS-1$
+ mi = (MethodUnit) next;
+ } else if (((MethodUnit) next).getName().equalsIgnoreCase(
+ "aMethodWithoutVisibility2")) { //$NON-NLS-1$
+ mc = (MethodUnit) next;
+ }
+ }
+ }
+ Assert.assertNotNull(
+ "Interface1.aMethodWithoutVisibility should exist", mi); //$NON-NLS-1$
+ Assert.assertNotNull(
+ "Interface1.aMethodWithoutVisibility2 should exist", mc); //$NON-NLS-1$
+
+ Assert.assertEquals(mi.getExport(), ExportKind.PUBLIC);
+ Assert.assertEquals(mc.getExport(), ExportKind.PROTECTED);
+ }
+
+ /**
+ * bug 318469
+ */
+ @Test
+ public void testArrayAsAnnotationValue() {
+ final String outputPath = this.projectName + "/BasicConversion"//$NON-NLS-1$
+ + this.kdmModelExtension;
+ final URI outputUri = URI.createPlatformResourceURI(outputPath, false);
+ Assert.assertNotNull(outputUri);
+
+ final String javaReferencePath = "/" + Activator.PLUGIN_ID + this.referencesFolderPath + this.modelName2 + this.javaModelExtension; //$NON-NLS-1$
+ final URI javaReferenceUri = URI.createPlatformPluginURI(
+ javaReferencePath, true);
+ Assert.assertNotNull(javaReferenceUri);
+
+ this.basicConversionOfJavaModelToKdmModel(javaReferenceUri, outputUri);
+ }
+
+ /**
+ * bug 326584
+ */
+ @SuppressWarnings("null")
+ @Test
+ public void testKdmComments() {
+ final String outputPath = this.projectName + "/BasicConversion"//$NON-NLS-1$
+ + this.kdmModelExtension;
+ final URI outputUri = URI.createPlatformResourceURI(outputPath, false);
+ Assert.assertNotNull(outputUri);
+
+ final String javaReferencePath = "/" + Activator.PLUGIN_ID + this.referencesFolderPath + this.modelName3 + this.javaModelExtension; //$NON-NLS-1$
+ final URI javaReferenceUri = URI.createPlatformPluginURI(
+ javaReferencePath, true);
+ Assert.assertNotNull(javaReferenceUri);
+
+ Resource kdmModel = this.basicConversionOfJavaModelToKdmModel(
+ javaReferenceUri, outputUri);
+
+ Iterator<EObject> it = kdmModel.getAllContents();
+ ClassUnit cuWithJavaDoc = null;
+ while (it.hasNext()) {
+ EObject next = it.next();
+ if (next instanceof ClassUnit) {
+ ClassUnit cu = (ClassUnit) next;
+ if (cu.getName().equalsIgnoreCase("ASimpleClassWithComments")) { //$NON-NLS-1$
+ cuWithJavaDoc = cu;
+ }
+ }
+ }
+ Assert.assertNotNull(cuWithJavaDoc);
+ Assert.assertFalse(cuWithJavaDoc.getComment().isEmpty());
+ }
+
+ private Resource basicConversionOfJavaModelToKdmModel(final URI inputURI,
+ final URI outputUri) {
+ Resource kdmModel = null;
+ Assert.assertNotNull(this.javaProjectFactory);
+ try {
+ final TranslateJavaModelToKdm kdmTranslater = new TranslateJavaModelToKdm();
+ kdmModel = kdmTranslater
+ .getKDMModelFromJavaModelWithCustomTransformation(inputURI,
+ outputUri);
+ Assert.assertNotNull(kdmModel);
+ } catch (Exception e) {
+ Assert.fail(e.getMessage());
+ }
+ return kdmModel;
+ }
+
+ @Test
+ public void testBug326944_JavaToKdmTransformation() {
+ /*
+ * prepare the target ... we have to create an empty project into the
+ * workspace with a real uri for atl extraction.
+ */
+ final String outputPath = this.projectName + "/"//$NON-NLS-1$
+ + this.modelNameBug326944 + this.kdmModelExtension;
+ final URI outputUri = URI.createPlatformResourceURI(outputPath, false);
+
+ final String javaReferencePath = "/" + Activator.PLUGIN_ID + this.referencesFolderPath + this.modelNameBug326944 + this.javaModelExtension; //$NON-NLS-1$
+ final URI javaReferenceUri = URI.createPlatformPluginURI(
+ javaReferencePath, true);
+ Assert.assertNotNull(javaReferenceUri);
+
+ Resource kdmModel = this.basicConversionOfJavaModelToKdmModel(
+ javaReferenceUri, outputUri);
+ Assert.assertNotNull(kdmModel);
+ }
+
+ @Test
+ public void testBug318631_JavaToKdmTransformation() {
+ /*
+ * prepare the target ... we have to create an empty project into the
+ * workspace with a real uri for atl extraction.
+ */
+ final String outputPath = this.projectName + "/"//$NON-NLS-1$
+ + this.modelNameBug318631 + this.kdmModelExtension;
+ final URI outputUri = URI.createPlatformResourceURI(outputPath, false);
+
+ final String javaReferencePath = "/" + Activator.PLUGIN_ID + this.referencesFolderPath + this.modelNameBug318631 + this.javaModelExtension; //$NON-NLS-1$
+ final URI javaReferenceUri = URI.createPlatformPluginURI(
+ javaReferencePath, true);
+ Assert.assertNotNull(javaReferenceUri);
+
+ Resource kdmModel = this.basicConversionOfJavaModelToKdmModel(
+ javaReferenceUri, outputUri);
+ Assert.assertNotNull(kdmModel);
+ }
+}
diff --git a/org.eclipse.gmt.modisco.java.discoverer.tests/src/org/eclipse/gmt/modisco/java/discoverer/tests/JavaJUnitEMF.java b/org.eclipse.gmt.modisco.java.discoverer.tests/src/org/eclipse/gmt/modisco/java/discoverer/tests/JavaJUnitEMF.java
new file mode 100644
index 000000000..de9bae3eb
--- /dev/null
+++ b/org.eclipse.gmt.modisco.java.discoverer.tests/src/org/eclipse/gmt/modisco/java/discoverer/tests/JavaJUnitEMF.java
@@ -0,0 +1,555 @@
+/*******************************************************************************
+ * Copyright (c) 2009, 2010 Mia-Software.
+ * 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:
+ * Gregoire DUPE (Mia-Software)
+ * Romain Dervaux (Mia-Software)
+ * Fabien Giquel (Mia-Software) - Bug 339720 : MoDisco Discoverers (infra + techno) API clean
+ *******************************************************************************/
+
+package org.eclipse.gmt.modisco.java.discoverer.tests;
+
+import java.util.Iterator;
+
+import org.eclipse.gmt.modisco.java.AbstractMethodDeclaration;
+import org.eclipse.gmt.modisco.java.Annotation;
+import org.eclipse.gmt.modisco.java.AnnotationMemberValuePair;
+import org.eclipse.gmt.modisco.java.BodyDeclaration;
+import org.eclipse.gmt.modisco.java.ClassDeclaration;
+import org.eclipse.gmt.modisco.java.Comment;
+import org.eclipse.gmt.modisco.java.CompilationUnit;
+import org.eclipse.gmt.modisco.java.ConstructorDeclaration;
+import org.eclipse.gmt.modisco.java.FieldDeclaration;
+import org.eclipse.gmt.modisco.java.InheritanceKind;
+import org.eclipse.gmt.modisco.java.Initializer;
+import org.eclipse.gmt.modisco.java.InterfaceDeclaration;
+import org.eclipse.gmt.modisco.java.Javadoc;
+import org.eclipse.gmt.modisco.java.MethodDeclaration;
+import org.eclipse.gmt.modisco.java.MethodRef;
+import org.eclipse.gmt.modisco.java.NamedElement;
+import org.eclipse.gmt.modisco.java.Package;
+import org.eclipse.gmt.modisco.java.PackageAccess;
+import org.eclipse.gmt.modisco.java.SingleVariableDeclaration;
+import org.eclipse.gmt.modisco.java.TagElement;
+import org.eclipse.gmt.modisco.java.TextElement;
+import org.eclipse.gmt.modisco.java.TypeAccess;
+import org.eclipse.gmt.modisco.java.TypeDeclaration;
+import org.eclipse.gmt.modisco.java.TypeParameter;
+import org.eclipse.gmt.modisco.java.VariableDeclarationFragment;
+import org.eclipse.gmt.modisco.java.VisibilityKind;
+import org.eclipse.gmt.modisco.java.discoverer.tests.utils.AbstractDiscoverTest;
+import org.eclipse.gmt.modisco.java.internal.util.JavaUtil;
+import org.junit.Assert;
+import org.junit.Test;
+
+/**
+ * @deprecated use matching org.eclipse.modisco.x.y.z component
+ */
+@Deprecated
+public class JavaJUnitEMF extends AbstractDiscoverTest {
+
+ private static final int MAGIC_NUMBER = 3;
+
+ @Override
+ protected String getTargetProjectName() {
+ return Activator.PLUGIN_ID + "_test001"; //$NON-NLS-1$
+ }
+
+ @Override
+ protected String getSourcesReferencePath() {
+ return "/workspace/test001/"; //$NON-NLS-1$
+ }
+
+ /**
+ * Bug 325108 - Java Discoverer : DanglingHREFException with a block comment
+ * construct
+ */
+ @Test
+ public void testBug325108() {
+ Assert.assertTrue("Resource must not have any errors", getResource() //$NON-NLS-1$
+ .getErrors().size() == 0);
+ }
+
+ @Test
+ public void test001() {
+ Package p1 = (Package) JavaUtil.getNamedElementByQualifiedName(
+ getModel(), "test001.p1"); //$NON-NLS-1$
+ Assert.assertNotNull("test001.p1 should exists", p1); //$NON-NLS-1$
+ Assert.assertTrue("test001.p1 should contain only one element.", p1 //$NON-NLS-1$
+ .getOwnedElements().size() == 1);
+ Package p2 = (Package) JavaUtil.getNamedElementByQualifiedName(
+ getModel(), "test001.p2"); //$NON-NLS-1$
+ Assert.assertNotNull("test001.p2 should exists", p2); //$NON-NLS-1$
+ Assert.assertTrue("test001.p2 should contain only one element.", p2 //$NON-NLS-1$
+ .getOwnedElements().size() == 1);
+ NamedElement class1 = JavaUtil.getNamedElementByQualifiedName(
+ getModel(), "test001.p1.Class1"); //$NON-NLS-1$
+ Assert.assertNotNull("test001.p1.Class1 should exists", class1); //$NON-NLS-1$
+ Assert.assertFalse(
+ "test001.p1.Class1 not must be a proxy", class1.isProxy()); //$NON-NLS-1$
+ NamedElement class2 = JavaUtil.getNamedElementByQualifiedName(
+ getModel(), "test001.p2.Class2"); //$NON-NLS-1$
+ Assert.assertNotNull("java.lang.String should exists", class2); //$NON-NLS-1$
+ Assert.assertFalse(
+ "java.lang.String must not be a proxy", class2.isProxy()); //$NON-NLS-1$
+ }
+
+ @Test
+ public void test002() {
+ NamedElement class1 = JavaUtil.getNamedElementByQualifiedName(
+ getModel(), "test002.Class1"); //$NON-NLS-1$
+ Assert.assertNotNull("test002.Class1 should exists", class1); //$NON-NLS-1$
+ Assert.assertFalse(
+ "test002.Class1 not must be a proxy", class1.isProxy()); //$NON-NLS-1$
+ NamedElement class4 = JavaUtil.getNamedElementByQualifiedName(
+ getModel(), "test002.Class1.Class4"); //$NON-NLS-1$
+ Assert.assertNotNull("test002.Class1.Class4 should exists", class4); //$NON-NLS-1$
+ Assert.assertFalse("test002.Class1.Class4 not must be a proxy", class4 //$NON-NLS-1$
+ .isProxy());
+ NamedElement class2 = JavaUtil.getNamedElementByQualifiedName(
+ getModel(), "test002.Class2"); //$NON-NLS-1$
+ Assert.assertNotNull("test002.Class2 should exists", class2); //$NON-NLS-1$
+ Assert.assertFalse(
+ "test002.Class2 not must be a proxy", class2.isProxy()); //$NON-NLS-1$
+ NamedElement class3 = JavaUtil.getNamedElementByQualifiedName(
+ getModel(), "test002.Class2.Class3"); //$NON-NLS-1$
+ Assert.assertNotNull("test002.Class2.Class3 should exists", class3); //$NON-NLS-1$
+ Assert.assertFalse("test002.Class2.Class3 not must be a proxy", class3 //$NON-NLS-1$
+ .isProxy());
+ }
+
+ @Test
+ public void test003() {
+ NamedElement ne = JavaUtil.getNamedElementByQualifiedName(getModel(),
+ "java.lang.String"); //$NON-NLS-1$
+ Assert.assertNotNull("java.lang.String should exists", ne); //$NON-NLS-1$
+ Assert.assertTrue("java.lang.String must be a proxy", ne.isProxy()); //$NON-NLS-1$
+ ConstructorDeclaration stringConstructor = (ConstructorDeclaration) JavaUtil
+ .getNamedElementByQualifiedName(getModel(),
+ "java.lang.String.String()"); //$NON-NLS-1$
+ Assert.assertTrue("java.lang.String.String() should be proxy", //$NON-NLS-1$
+ stringConstructor.isProxy());
+ }
+
+ @Test
+ public void packageaccess() {
+ NamedElement ne = JavaUtil.getNamedElementByQualifiedName(getModel(),
+ "packageaccess"); //$NON-NLS-1$
+ Assert.assertNotNull("packageaccess should exists", ne); //$NON-NLS-1$
+
+ NamedElement resolvedPckAccess = JavaUtil
+ .getNamedElementByQualifiedName(getModel(),
+ "packageaccess.PackageAccess"); //$NON-NLS-1$
+ Assert.assertNotNull("packageaccess.PackageAccess should exists", //$NON-NLS-1$
+ resolvedPckAccess);
+
+ Assert.assertTrue(
+ "type PackageAccess should have only one super interface", //$NON-NLS-1$
+ ((TypeDeclaration) resolvedPckAccess).getSuperInterfaces()
+ .size() == 1);
+
+ TypeAccess typAcc = ((TypeDeclaration) resolvedPckAccess)
+ .getSuperInterfaces().get(0);
+
+ Assert.assertTrue("super interface should be an interface", //$NON-NLS-1$
+ typAcc.getType() instanceof InterfaceDeclaration);
+ Assert.assertTrue("qualifier should be a PackageAccess", //$NON-NLS-1$
+ typAcc.getQualifier() instanceof PackageAccess);
+
+ PackageAccess qualifier = (PackageAccess) typAcc.getQualifier();
+
+ Assert.assertTrue(
+ "wrong qualified package name ", JavaUtil.getQualifiedName(//$NON-NLS-1$
+ qualifier.getPackage()).equals(
+ "javax.swing.text.html.parser")); //$NON-NLS-1$
+ }
+
+ @Test
+ public void validation() {
+ int nbError = new JavaValidation().validate(getResource(), System.out);
+ Assert.assertEquals("Validation", 0, nbError); //$NON-NLS-1$
+ }
+
+ @Test
+ public void varargs() {
+ ClassDeclaration classDecl = (ClassDeclaration) JavaUtil
+ .getNamedElementByQualifiedName(getModel(), "varargs.VarArgs2"); //$NON-NLS-1$
+ Iterator<BodyDeclaration> bodyDeclarations = classDecl
+ .getBodyDeclarations().iterator();
+ while (bodyDeclarations.hasNext()) {
+ BodyDeclaration bodyDeclaration = bodyDeclarations.next();
+ if (bodyDeclaration.getName().equals("m1")) { //$NON-NLS-1$
+ MethodDeclaration methodDeclaration = (MethodDeclaration) bodyDeclaration;
+ SingleVariableDeclaration singleVariableDeclaration = methodDeclaration
+ .getParameters().get(0);
+ Assert.assertTrue("The parameter must be a varargs.", //$NON-NLS-1$
+ singleVariableDeclaration.isVarargs());
+ }
+ }
+
+ }
+
+ @Test
+ public void annotations() {
+ // the annotation on the class
+ NamedElement ne = JavaUtil.getNamedElementByQualifiedName(getModel(),
+ "annotations.MyAnnotatedClass"); //$NON-NLS-1$
+ Assert.assertNotNull("annotations.MyAnnotatedClass should exists", ne); //$NON-NLS-1$
+ TypeDeclaration klass = (TypeDeclaration) ne;
+ Assert.assertTrue(
+ "MyAnnotatedClass should have only one annotation", klass //$NON-NLS-1$
+ .getAnnotations().size() == 1);
+ Annotation klassAnnotation = klass.getAnnotations().get(0);
+ Assert.assertTrue("wrong qualified name of the annotation", JavaUtil //$NON-NLS-1$
+ .getQualifiedName(klassAnnotation.getType().getType())
+ .equals("java.lang.Deprecated")); //$NON-NLS-1$
+ Assert.assertTrue(
+ "values of the annotation should be empty", klassAnnotation //$NON-NLS-1$
+ .getValues().size() == 0);
+
+ // the annotation on the returnRawList() method
+ NamedElement ne2 = JavaUtil.getNamedElementByQualifiedName(getModel(),
+ "annotations.MyAnnotatedClass.returnRawList()"); //$NON-NLS-1$
+ Assert.assertNotNull(
+ "annotations.MyAnnotatedClass.returnRawList() should exists", //$NON-NLS-1$
+ ne);
+ MethodDeclaration method = (MethodDeclaration) ne2;
+ Assert.assertTrue(
+ "returnRawList() should have only one annotation", method //$NON-NLS-1$
+ .getAnnotations().size() == 1);
+ Annotation methodAnnotation = method.getAnnotations().get(0);
+ Assert.assertTrue(Messages.JavaJUnitEMF_62,
+ JavaUtil.getQualifiedName(methodAnnotation.getType().getType())
+ .equals("java.lang.SuppressWarnings")); //$NON-NLS-1$
+ Assert.assertTrue(
+ "annotation should have only one value", methodAnnotation //$NON-NLS-1$
+ .getValues().size() == 1);
+ AnnotationMemberValuePair ann = methodAnnotation.getValues().get(0);
+ Assert.assertNull(
+ "member of the annotation should be null", ann.getMember()); //$NON-NLS-1$
+ Assert.assertNotNull("value of the annotation should not be null", ann //$NON-NLS-1$
+ .getValue());
+
+ // the annotation on the toString() method
+ NamedElement ne4 = JavaUtil.getNamedElementByQualifiedName(getModel(),
+ "annotations.MyAnnotatedClass.toString()"); //$NON-NLS-1$
+ Assert.assertNotNull(
+ "annotations.MyAnnotatedClass.toString() should exists", //$NON-NLS-1$
+ ne);
+ MethodDeclaration toString = (MethodDeclaration) ne4;
+ Assert.assertTrue(
+ "toString() should have only one annotation", toString //$NON-NLS-1$
+ .getAnnotations().size() == 1);
+ Annotation toStringAnnotation = toString.getAnnotations().get(0);
+ Assert.assertTrue("wrong qualified name of the annotation", JavaUtil //$NON-NLS-1$
+ .getQualifiedName(toStringAnnotation.getType().getType())
+ .equals("java.lang.Override")); //$NON-NLS-1$
+ Assert.assertTrue("values of the annotation should be empty", //$NON-NLS-1$
+ toStringAnnotation.getValues().size() == 0);
+
+ }
+
+ @Test
+ public void duplicateproxy() {
+ NamedElement ne = JavaUtil.getNamedElementByQualifiedName(getModel(),
+ "java.util.ArrayList"); //$NON-NLS-1$
+ Assert.assertNotNull("java.util.ArrayList should exists", ne); //$NON-NLS-1$
+
+ NamedElement ne2 = JavaUtil.getNamedElementByQualifiedName(getModel(),
+ "java.util.ArrayList.ArrayList()"); //$NON-NLS-1$
+ Assert.assertNotNull(
+ "java.util.ArrayList.ArrayList() should exists", ne); //$NON-NLS-1$
+
+ Assert.assertTrue(
+ "method should be a constructor", //$NON-NLS-1$
+ ((AbstractMethodDeclaration) ne2) instanceof ConstructorDeclaration);
+
+ Assert.assertTrue("method should be a proxy", ne2.isProxy()); //$NON-NLS-1$
+
+ Assert.assertTrue(
+ "method should have only 3 usages", //$NON-NLS-1$
+ ((AbstractMethodDeclaration) ne2).getUsages().size() == JavaJUnitEMF.MAGIC_NUMBER);
+ }
+
+ @Test
+ public void initializer() {
+ NamedElement ne = JavaUtil.getNamedElementByQualifiedName(getModel(),
+ "initializer.InitializerTest"); //$NON-NLS-1$
+ Assert.assertNotNull("initializer.InitializerTest should exists", ne); //$NON-NLS-1$
+
+ TypeDeclaration test = (TypeDeclaration) ne;
+ Assert.assertTrue("class should have only 2 body declarations", test //$NON-NLS-1$
+ .getBodyDeclarations().size() == 2);
+ Assert.assertTrue("body declaration should be an Initializer", test //$NON-NLS-1$
+ .getBodyDeclarations().get(0) instanceof Initializer);
+ Assert.assertTrue("body declaration should be an Initializer", test //$NON-NLS-1$
+ .getBodyDeclarations().get(1) instanceof Initializer);
+ }
+
+ @Test
+ public void comments() {
+ NamedElement ne = JavaUtil.getNamedElementByQualifiedName(getModel(),
+ "comments.Comments"); //$NON-NLS-1$
+ Assert.assertNotNull("comments.Comments should exists", ne); //$NON-NLS-1$
+
+ TypeDeclaration type = (TypeDeclaration) ne;
+ CompilationUnit cu = ne.getOriginalCompilationUnit();
+ Assert.assertEquals(
+ "CompilationUnit should have 1 comments", 1, cu.getComments().size()); //$NON-NLS-1$
+
+ Assert.assertTrue(
+ "CompilationUnit comment should be located at the beginning", //$NON-NLS-1$
+ cu.getComments().get(0).isPrefixOfParent());
+ Assert.assertTrue(
+ "CompilationUnit comment should be located at the beginning", //$NON-NLS-1$
+ !cu.getComments().get(0).isEnclosedByParent());
+
+ Assert.assertEquals(
+ "type should have 2 comments", 2, type.getComments().size()); //$NON-NLS-1$
+ Assert.assertTrue(
+ "second comment of type should be located at the end", //$NON-NLS-1$
+ !type.getComments().get(1).isPrefixOfParent());
+ Assert.assertTrue(
+ "second comment of type should be located at the end", //$NON-NLS-1$
+ !type.getComments().get(1).isEnclosedByParent());
+
+ Comment c = type.getComments().get(0);
+ Assert.assertTrue(Messages.JavaJUnitEMF_88, c instanceof Javadoc);
+ Javadoc firstDoc = (Javadoc) c;
+ Assert.assertTrue("first comment should be 3 tags", firstDoc.getTags() //$NON-NLS-1$
+ .size() == JavaJUnitEMF.MAGIC_NUMBER);
+
+ Assert.assertTrue("1st tag should have only 2 fragments", firstDoc //$NON-NLS-1$
+ .getTags().get(0).getFragments().size() == 2);
+
+ Assert.assertTrue(
+ "1st fragment should be a TextElement", //$NON-NLS-1$
+ firstDoc.getTags().get(0).getFragments().get(0) instanceof TextElement);
+ Assert.assertTrue("1st fragment should have no tag name", firstDoc //$NON-NLS-1$
+ .getTags().get(0).getTagName() == null
+ || firstDoc.getTags().get(0).getTagName().length() == 0);
+ Assert.assertTrue(
+ "2nd fragment should be a TagElement", //$NON-NLS-1$
+ firstDoc.getTags().get(0).getFragments().get(1) instanceof TagElement);
+ Assert.assertTrue("2nd fragment should have '@link' as tag name", //$NON-NLS-1$
+ ((TagElement) firstDoc.getTags().get(0).getFragments().get(1))
+ .getTagName().equals("@link")); //$NON-NLS-1$
+
+ Assert.assertTrue("2nd tag should have '@author' as tag name", //$NON-NLS-1$
+ firstDoc.getTags().get(1).getTagName().equals("@author")); //$NON-NLS-1$
+
+ Assert.assertTrue("3rd tag should have '@see' as tag name", firstDoc //$NON-NLS-1$
+ .getTags().get(2).getTagName().equals("@see")); //$NON-NLS-1$
+ Assert.assertTrue("3rd tag should have one fragment", firstDoc //$NON-NLS-1$
+ .getTags().get(2).getFragments().size() == 1);
+ Assert.assertTrue(
+ "1st fragment should be a MethodRef", //$NON-NLS-1$
+ firstDoc.getTags().get(2).getFragments().get(0) instanceof MethodRef);
+ MethodRef methodref = (MethodRef) firstDoc.getTags().get(2)
+ .getFragments().get(0);
+ Assert.assertTrue(
+ "wrong qualified name for method", JavaUtil //$NON-NLS-1$
+ .getQualifiedName(methodref.getMethod()).equals(
+ "java.lang.String.toString()")); //$NON-NLS-1$
+ Assert.assertNotNull("qualifier should not be null", methodref //$NON-NLS-1$
+ .getQualifier());
+
+ }
+
+ @Test
+ public void classorifaceproxy() {
+ NamedElement ne1 = JavaUtil.getNamedElementByQualifiedName(getModel(),
+ "classorifaceproxy.p1.Iface1"); //$NON-NLS-1$
+ Assert.assertNotNull("classorifaceproxy.p1.Iface1 should exists", ne1); //$NON-NLS-1$
+
+ NamedElement ne2 = JavaUtil.getNamedElementByQualifiedName(getModel(),
+ "classorifaceproxy.p2.Iface2"); //$NON-NLS-1$
+ Assert.assertNotNull("classorifaceproxy.p2.Iface2 should exists", ne2); //$NON-NLS-1$
+
+ Assert.assertTrue("Iface1 should be an interface", //$NON-NLS-1$
+ ne1 instanceof InterfaceDeclaration);
+ Assert.assertTrue("Iface2 should be an interface", //$NON-NLS-1$
+ ne2 instanceof InterfaceDeclaration);
+ }
+
+ @Test
+ public void parameterizedtypeinmethoddecl() {
+ NamedElement ne = JavaUtil.getNamedElementByQualifiedName(getModel(),
+ "parameterizedtypeinmethoddecl.Class1"); //$NON-NLS-1$
+ Assert.assertNotNull(
+ "parameterizedtypeinmethoddecl.Class1 should exist", ne); //$NON-NLS-1$
+ for (Iterator<BodyDeclaration> iterator = ((TypeDeclaration) ne)
+ .getBodyDeclarations().iterator(); iterator.hasNext();) {
+ BodyDeclaration body = iterator.next();
+ if (body.getName().equals(Messages.JavaJUnitEMF_113)) {
+
+ MethodDeclaration method = (MethodDeclaration) body;
+ Assert.assertTrue(
+ "method accept() should have 2 type parameters", //$NON-NLS-1$
+ method.getTypeParameters().size() == 2);
+ TypeParameter returnType = method.getTypeParameters().get(0);
+ TypeParameter parameter = method.getTypeParameters().get(1);
+ Assert.assertSame(
+ "types should be equals", returnType, method.getReturnType() //$NON-NLS-1$
+ .getType());
+ Assert.assertSame(
+ "types should be equals", parameter, method.getParameters() //$NON-NLS-1$
+ .get(1).getType().getType());
+ }
+ }
+ }
+
+ @Test
+ public void modifiers() {
+ NamedElement ne = JavaUtil.getNamedElementByQualifiedName(getModel(),
+ "modifiers.Modifiers"); //$NON-NLS-1$
+ Assert.assertNotNull("modifiers.Modifiers should exist", ne); //$NON-NLS-1$
+ TypeDeclaration type = (TypeDeclaration) ne;
+ Assert.assertTrue(type.getModifier().getVisibility()
+ .equals(VisibilityKind.PUBLIC));
+ Assert.assertTrue(type.getModifier().getInheritance()
+ .equals(InheritanceKind.ABSTRACT));
+
+ NamedElement ne1 = JavaUtil.getNamedElementByQualifiedName(getModel(),
+ "modifiers.Modifiers.f"); //$NON-NLS-1$
+ Assert.assertNotNull("modifiers.Modifiers.f should exist", ne1); //$NON-NLS-1$
+
+ VariableDeclarationFragment var = (VariableDeclarationFragment) ne1;
+ FieldDeclaration field = (FieldDeclaration) var.getVariablesContainer();
+ Assert.assertTrue(field.getModifier().getInheritance()
+ .equals(InheritanceKind.NONE));
+ Assert.assertTrue(field.getModifier().getVisibility()
+ .equals(VisibilityKind.PRIVATE));
+ Assert.assertTrue(field.getModifier().isStatic());
+ Assert.assertTrue(field.getModifier().isTransient());
+ Assert.assertTrue(field.getModifier().isVolatile());
+ Assert.assertFalse(field.getModifier().isNative());
+ Assert.assertFalse(field.getModifier().isStrictfp());
+ Assert.assertFalse(field.getModifier().isSynchronized());
+
+ NamedElement ne2 = JavaUtil.getNamedElementByQualifiedName(getModel(),
+ "modifiers.Modifiers.method()"); //$NON-NLS-1$
+ Assert.assertNotNull("modifiers.Modifiers.method() should exist", ne2); //$NON-NLS-1$
+ MethodDeclaration method = (MethodDeclaration) ne2;
+ Assert.assertTrue(method.getModifier().getInheritance()
+ .equals(InheritanceKind.FINAL));
+ Assert.assertTrue(method.getModifier().getVisibility()
+ .equals(VisibilityKind.PROTECTED));
+ Assert.assertTrue(method.getModifier().isSynchronized());
+ Assert.assertTrue(method.getModifier().isNative());
+ Assert.assertFalse(method.getModifier().isStatic());
+ Assert.assertFalse(method.getModifier().isStrictfp());
+ Assert.assertFalse(method.getModifier().isTransient());
+ Assert.assertFalse(method.getModifier().isVolatile());
+ }
+
+ @Test
+ public void proxyField() {
+ // PFClass1
+ NamedElement ne1 = JavaUtil.getNamedElementByQualifiedName(getModel(),
+ "proxyField.p1.PFClass1.s1"); //$NON-NLS-1$
+ Assert.assertNotNull("proxyField.p1.PFClass1.s1 should exist", ne1); //$NON-NLS-1$
+ Assert.assertFalse(
+ "proxyField.p1.PFClass1.s1 should not be a proxy", ne1 //$NON-NLS-1$
+ .isProxy());
+
+ NamedElement ne2 = JavaUtil.getNamedElementByQualifiedName(getModel(),
+ "proxyField.p1.PFClass1.s2"); //$NON-NLS-1$
+ Assert.assertNotNull("proxyField.p1.PFClass1.s2 should exist", ne2); //$NON-NLS-1$
+ Assert.assertFalse(
+ "proxyField.p1.PFClass1.s2 should not be a proxy", ne2 //$NON-NLS-1$
+ .isProxy());
+
+ NamedElement ne3 = JavaUtil.getNamedElementByQualifiedName(getModel(),
+ "proxyField.p1.PFClass1"); //$NON-NLS-1$
+ Assert.assertNotNull("proxyField.p1.PFClass1 should exist", ne3); //$NON-NLS-1$
+ TypeDeclaration pfClass1 = (TypeDeclaration) ne3;
+
+ for (Iterator<BodyDeclaration> iterator = pfClass1
+ .getBodyDeclarations().iterator(); iterator.hasNext();) {
+ BodyDeclaration body = iterator.next();
+ if (body instanceof FieldDeclaration) {
+ Assert.assertTrue("field should have 2 fragments", //$NON-NLS-1$
+ ((FieldDeclaration) body).getFragments().size() == 2);
+ Assert.assertSame(ne1, ((FieldDeclaration) body).getFragments()
+ .get(0));
+ Assert.assertSame(ne2, ((FieldDeclaration) body).getFragments()
+ .get(1));
+ }
+ }
+
+ // PFClass2
+ NamedElement ne5 = JavaUtil.getNamedElementByQualifiedName(getModel(),
+ "proxyField.p2.PFClass2.a1"); //$NON-NLS-1$
+ Assert.assertNotNull("proxyField.p2.PFClass2.a1 should exist", ne5); //$NON-NLS-1$
+ Assert.assertFalse(
+ "proxyField.p2.PFClass2.a1 should not be a proxy", ne5 //$NON-NLS-1$
+ .isProxy());
+
+ NamedElement ne6 = JavaUtil.getNamedElementByQualifiedName(getModel(),
+ "proxyField.p2.PFClass2.a2"); //$NON-NLS-1$
+ Assert.assertNotNull("proxyField.p2.PFClass2.a2 should exist", ne6); //$NON-NLS-1$
+ Assert.assertFalse(
+ "proxyField.p2.PFClass2.a2 should not be a proxy", ne6 //$NON-NLS-1$
+ .isProxy());
+
+ Assert.assertSame(
+ "fragments should have the same fieldDeclaration", ne5 //$NON-NLS-1$
+ .eContainer(), ne6.eContainer());
+
+ NamedElement ne7 = JavaUtil.getNamedElementByQualifiedName(getModel(),
+ "proxyField.p2.PFClass2.b1"); //$NON-NLS-1$
+ Assert.assertNotNull("proxyField.p2.PFClass2.b1 should exist", ne7); //$NON-NLS-1$
+ Assert.assertFalse(
+ "proxyField.p2.PFClass2.b1 should not be a proxy", ne7 //$NON-NLS-1$
+ .isProxy());
+
+ NamedElement ne8 = JavaUtil.getNamedElementByQualifiedName(getModel(),
+ "proxyField.p2.PFClass2.b2"); //$NON-NLS-1$
+ Assert.assertNotNull("proxyField.p2.PFClass2.b2 should exist", ne8); //$NON-NLS-1$
+ Assert.assertFalse(
+ "proxyField.p2.PFClass2.b2 should not be a proxy", ne8 //$NON-NLS-1$
+ .isProxy());
+
+ Assert.assertSame(
+ "fragments should have the same fieldDeclaration", ne7 //$NON-NLS-1$
+ .eContainer(), ne8.eContainer());
+
+ NamedElement ne9 = JavaUtil.getNamedElementByQualifiedName(getModel(),
+ "proxyField.p2.PFClass2.c1"); //$NON-NLS-1$
+ Assert.assertNotNull("proxyField.p2.PFClass2.c1 should exist", ne9); //$NON-NLS-1$
+ Assert.assertFalse(
+ "proxyField.p2.PFClass2.c1 should not be a proxy", ne9 //$NON-NLS-1$
+ .isProxy());
+
+ NamedElement ne10 = JavaUtil.getNamedElementByQualifiedName(getModel(),
+ "proxyField.p2.PFClass2.c2"); //$NON-NLS-1$
+ Assert.assertNotNull("proxyField.p2.PFClass2.c2 should exist", ne10); //$NON-NLS-1$
+ Assert.assertFalse(
+ "proxyField.p2.PFClass2.c2 should not be a proxy", ne10 //$NON-NLS-1$
+ .isProxy());
+
+ Assert.assertSame(
+ "fragments should have the same fieldDeclaration", ne9 //$NON-NLS-1$
+ .eContainer(), ne10.eContainer());
+
+ NamedElement ne11 = JavaUtil.getNamedElementByQualifiedName(getModel(),
+ "proxyField.p2.PFClass2"); //$NON-NLS-1$
+ Assert.assertNotNull("proxyField.p2.PFClass2 should exist", ne11); //$NON-NLS-1$
+ TypeDeclaration pfClass2 = (TypeDeclaration) ne11;
+
+ for (Iterator<BodyDeclaration> iterator = pfClass2
+ .getBodyDeclarations().iterator(); iterator.hasNext();) {
+ BodyDeclaration body = iterator.next();
+ if (body instanceof FieldDeclaration) {
+ Assert.assertTrue("field should have 2 fragments", //$NON-NLS-1$
+ ((FieldDeclaration) body).getFragments().size() == 2);
+ }
+ }
+ }
+
+}
diff --git a/org.eclipse.gmt.modisco.java.discoverer.tests/src/org/eclipse/gmt/modisco/java/discoverer/tests/JavaJUnitEMFJunit3.java b/org.eclipse.gmt.modisco.java.discoverer.tests/src/org/eclipse/gmt/modisco/java/discoverer/tests/JavaJUnitEMFJunit3.java
new file mode 100644
index 000000000..1a4d4edbe
--- /dev/null
+++ b/org.eclipse.gmt.modisco.java.discoverer.tests/src/org/eclipse/gmt/modisco/java/discoverer/tests/JavaJUnitEMFJunit3.java
@@ -0,0 +1,181 @@
+/*******************************************************************************
+ * Copyright (c) 2009, 2010 Mia-Software.
+ * 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:
+ * Gregoire DUPE (Mia-Software) - initial API and implementation
+ * Fabien Giquel (Mia-Software) - Bug 339720 : MoDisco Discoverers (infra + techno) API clean
+ *******************************************************************************/
+package org.eclipse.gmt.modisco.java.discoverer.tests;
+
+import org.junit.Assert;
+
+import junit.framework.Test;
+import junit.framework.TestCase;
+import junit.framework.TestSuite;
+
+/**
+ * @generated
+ *
+ * @deprecated use matching org.eclipse.modisco.x.y.z component
+ */
+@Deprecated
+public class JavaJUnitEMFJunit3 extends TestCase {
+
+ /**
+ * @generated
+ */
+ public static Test suite() {
+ TestSuite suite = new TestSuite("JavaJUnitEMFJunit3"); //$NON-NLS-1$
+ suite.addTestSuite(JavaJUnitEMFJunit3.class);
+ return suite;
+ }
+
+ /**
+ * @generated
+ */
+ public void testtest001() throws Exception {
+ JavaJUnitEMF test = new JavaJUnitEMF();
+ test.initResource();
+ test.test001();
+ }
+
+ /**
+ * @generated
+ */
+ public void testtest002() throws Exception {
+ JavaJUnitEMF test = new JavaJUnitEMF();
+ test.initResource();
+ test.test002();
+ }
+
+ /**
+ * @generated
+ */
+ public void testtest003() throws Exception {
+ JavaJUnitEMF test = new JavaJUnitEMF();
+ test.initResource();
+ test.test003();
+ }
+
+ /**
+ * @generated
+ */
+ public void testpackageaccess() throws Exception {
+ JavaJUnitEMF test = new JavaJUnitEMF();
+ test.initResource();
+ test.packageaccess();
+ }
+
+ /**
+ * @generated
+ */
+ public void testvalidation() throws Exception {
+ JavaJUnitEMF test = new JavaJUnitEMF();
+ test.initResource();
+ test.validation();
+ }
+
+ /**
+ * @generated
+ */
+ public void testvarargs() throws Exception {
+ JavaJUnitEMF test = new JavaJUnitEMF();
+ test.initResource();
+ test.varargs();
+ }
+
+ /**
+ * @generated
+ */
+ public void testannotations() throws Exception {
+ JavaJUnitEMF test = new JavaJUnitEMF();
+ test.initResource();
+ test.annotations();
+ }
+
+ /**
+ * @generated
+ */
+ public void testduplicateproxy() throws Exception {
+ JavaJUnitEMF test = new JavaJUnitEMF();
+ test.initResource();
+ test.duplicateproxy();
+ }
+
+ /**
+ * @generated
+ */
+ public void testinitializer() throws Exception {
+ JavaJUnitEMF test = new JavaJUnitEMF();
+ test.initResource();
+ test.initializer();
+ }
+
+ /**
+ * @generated
+ */
+ public void testcomments() throws Exception {
+ JavaJUnitEMF test = new JavaJUnitEMF();
+ test.initResource();
+ test.comments();
+ }
+
+ /**
+ * @generated
+ */
+ public void testclassorifaceproxy() throws Exception {
+ JavaJUnitEMF test = new JavaJUnitEMF();
+ test.initResource();
+ test.classorifaceproxy();
+ }
+
+ /**
+ * @generated
+ */
+ public void testparameterizedtypeinmethoddecl() throws Exception {
+ JavaJUnitEMF test = new JavaJUnitEMF();
+ test.initResource();
+ test.parameterizedtypeinmethoddecl();
+ }
+
+ /**
+ * @generated
+ */
+ public void testmodifiers() throws Exception {
+ JavaJUnitEMF test = new JavaJUnitEMF();
+ test.initResource();
+ test.modifiers();
+ }
+
+ /**
+ * @generated
+ */
+ public void testproxyField() throws Exception {
+ JavaJUnitEMF test = new JavaJUnitEMF();
+ test.initResource();
+ test.proxyField();
+ }
+
+ /**
+ * @generated NOT
+ */
+ public void testJavaDiscovererAsBlackBox() {
+ SimpleBlackBoxDiscovery test = new SimpleBlackBoxDiscovery();
+ try {
+ test.setUp();
+ test.testJavaModelDiscoveryFromJavaProject();
+ } catch (Exception e) {
+ Assert.fail(e.getMessage());
+ } finally {
+ try {
+ test.tearDown();
+ } catch (Exception e) {
+ Assert.fail(e.getMessage());
+ }
+ }
+ }
+}
diff --git a/org.eclipse.gmt.modisco.java.discoverer.tests/src/org/eclipse/gmt/modisco/java/discoverer/tests/JavaProject2KdmTest.java b/org.eclipse.gmt.modisco.java.discoverer.tests/src/org/eclipse/gmt/modisco/java/discoverer/tests/JavaProject2KdmTest.java
new file mode 100644
index 000000000..7d95a5a05
--- /dev/null
+++ b/org.eclipse.gmt.modisco.java.discoverer.tests/src/org/eclipse/gmt/modisco/java/discoverer/tests/JavaProject2KdmTest.java
@@ -0,0 +1,213 @@
+/**
+ * Copyright (c) 2010 Mia-Software.
+ * 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:
+ * Gabriel Barbier (Mia-Software) - initial API and implementation
+ * Fabien Giquel (Mia-Software) - Bug 338874
+ * Fabien Giquel (Mia-Software) - Bug 339720 : MoDisco Discoverers (infra + techno) API clean
+ */
+
+package org.eclipse.gmt.modisco.java.discoverer.tests;
+
+import java.net.URL;
+import java.util.HashMap;
+import java.util.Map;
+
+import org.eclipse.emf.common.util.TreeIterator;
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.gmt.modisco.infra.discoverymanager.DiscoveryParameter;
+import org.eclipse.gmt.modisco.java.Expression;
+import org.eclipse.gmt.modisco.java.InfixExpression;
+import org.eclipse.gmt.modisco.java.SingleVariableAccess;
+import org.eclipse.gmt.modisco.java.actions.DefaultDiscoverer;
+import org.eclipse.gmt.modisco.java.actions.DiscoverJavaModelFromJavaProject;
+import org.eclipse.gmt.modisco.java.actions.TranslateJavaModelToKdm;
+import org.eclipse.gmt.modisco.java.discoverer.tests.utils.JavaProjectFactory;
+import org.eclipse.gmt.modisco.omg.kdm.action.ActionElement;
+import org.eclipse.jdt.core.IJavaProject;
+import org.junit.After;
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Test;
+
+/**
+ * To test result of java model to kdm model.
+ *
+ *
+ * @deprecated use matching org.eclipse.modisco.x.y.z component
+ */
+@Deprecated
+public class JavaProject2KdmTest {
+ // To be able to export reference model after a change in java discovery
+ private final boolean export = false;
+
+ private final String rootSourcesPath = "/workspace/"; //$NON-NLS-1$
+ private final String javaModelExtension = ".javaxmi"; //$NON-NLS-1$
+ private final String kdmModelExtension = ".kdm"; //$NON-NLS-1$
+
+ private final String projectName = "testProject"; //$NON-NLS-1$
+ private final String modelNameBug338874 = "bug338874"; //$NON-NLS-1$
+
+ private JavaProjectFactory javaProjectFactory;
+
+ /**
+ * @throws java.lang.Exception
+ */
+ @Before
+ public void setUp() throws Exception {
+ this.javaProjectFactory = new JavaProjectFactory(this.projectName);
+ }
+
+ /**
+ * @throws java.lang.Exception
+ */
+ @After
+ public void tearDown() throws Exception {
+ if (this.javaProjectFactory != null) {
+ this.javaProjectFactory.dispose();
+ }
+ }
+
+ private Resource basicConversionOfJavaModelToKdmModel(final URI inputURI,
+ final URI outputUri) {
+ Resource kdmModel = null;
+ /*
+ * prepare the target ... we have to create an empty project into the
+ * workspace with a real uri for atl extraction.
+ */
+ Assert.assertNotNull(this.javaProjectFactory);
+ try {
+ final TranslateJavaModelToKdm kdmTranslater = new TranslateJavaModelToKdm();
+ kdmModel = kdmTranslater
+ .getKDMModelFromJavaModelWithCustomTransformation(inputURI,
+ outputUri);
+ Assert.assertNotNull(kdmModel);
+
+ if (this.export) {
+ URI tmpUri = kdmModel.getURI();
+ kdmModel.setURI(URI
+ .createFileURI("c:/referenceModel" + this.kdmModelExtension)); //$NON-NLS-1$
+ kdmModel.save(null);
+ kdmModel.setURI(tmpUri);
+ }
+ } catch (Exception e) {
+ Assert.fail(e.getMessage());
+ }
+ return kdmModel;
+ }
+
+ private Resource basicDiscoveryOfJavaProject(final String sourceFolderPath) {
+ Resource javaModel = null;
+
+ Assert.assertNotNull(this.javaProjectFactory);
+
+ try {
+ /*
+ * prepare the target ... we have to create an empty project into
+ * the workspace with a real uri for atl extraction. We have to fill
+ * this project with sources from our test context.
+ */
+ IJavaProject javaProject = this.javaProjectFactory.getJavaProject();
+ Assert.assertNotNull(javaProject);
+
+ URL src = Activator.getDefault().getBundle()
+ .getEntry(sourceFolderPath);
+ Assert.assertNotNull(src);
+ this.javaProjectFactory.populateSourceFolder(sourceFolderPath,
+ Activator.getDefault());
+
+ DiscoverJavaModelFromJavaProject javaDiscoverer = new DiscoverJavaModelFromJavaProject();
+ Assert.assertNotNull(javaDiscoverer);
+ Map<DiscoveryParameter, Object> parameters = new HashMap<DiscoveryParameter, Object>();
+ parameters.put(DefaultDiscoverer.PARAMETER_SILENT_MODE, true);
+ javaDiscoverer.discoverElement(javaProject, parameters);
+
+ javaModel = (Resource) parameters
+ .get(DefaultDiscoverer.PARAMETER_TARGET_RESOURCE);
+ Assert.assertNotNull(javaModel);
+
+ if (this.export) {
+ URI tmpUri = javaModel.getURI();
+ javaModel
+ .setURI(URI
+ .createFileURI("c:/referenceModel" + this.javaModelExtension)); //$NON-NLS-1$
+ javaModel.save(null);
+ javaModel.setURI(tmpUri);
+ }
+
+ } catch (Exception e) {
+ Assert.fail(e.getMessage());
+ }
+ return javaModel;
+ }
+
+ @SuppressWarnings("null")
+ @Test
+ public void testBug338874_InfixExpressionWithVariables() {
+ /*
+ * This bug happens when user code contains an infix expression with two
+ * variable access. In this case, java model contains everything,
+ * however corresponding kdm model lack variable access information.
+ *
+ * To test, we will use a specific project, then we will check that
+ * leftHandSide and rightHandSide of InfixExpression are not empty.
+ */
+ final String sourceFolderPath = this.rootSourcesPath
+ + this.modelNameBug338874 + "/src"; //$NON-NLS-1$
+
+ Resource javaModel = this.basicDiscoveryOfJavaProject(sourceFolderPath);
+ Assert.assertNotNull(javaModel);
+ // check the InfixExpression (there is only one in this model)
+ InfixExpression infixExpression = null;
+ TreeIterator<EObject> iterator = javaModel.getAllContents();
+ while (iterator.hasNext()) {
+ EObject eObject = iterator.next();
+ if (eObject instanceof InfixExpression) {
+ infixExpression = (InfixExpression) eObject;
+ }
+ }
+ Assert.assertNotNull(infixExpression);
+
+ Expression left = infixExpression.getLeftOperand();
+ Assert.assertNotNull(left);
+ Assert.assertTrue(left instanceof SingleVariableAccess);
+
+ Expression right = infixExpression.getRightOperand();
+ Assert.assertNotNull(right);
+ Assert.assertTrue(right instanceof SingleVariableAccess);
+
+ /*
+ * kdm translation
+ */
+ final String outputPath = this.projectName + "/"//$NON-NLS-1$
+ + this.modelNameBug338874 + this.kdmModelExtension;
+ final URI outputUri = URI.createPlatformResourceURI(outputPath, true);
+ Resource kdmModel = this.basicConversionOfJavaModelToKdmModel(
+ javaModel.getURI(), outputUri);
+ Assert.assertNotNull(kdmModel);
+ // check the InfixExpression (there is only one in this model)
+ ActionElement infixElement = null;
+ iterator = kdmModel.getAllContents();
+ while (iterator.hasNext()) {
+ EObject eObject = iterator.next();
+ if (eObject instanceof ActionElement) {
+ ActionElement actionElement = (ActionElement) eObject;
+ if ((actionElement.getKind() != null)
+ && (actionElement.getKind().equals("infix expression"))) { //$NON-NLS-1$
+ infixElement = actionElement;
+ }
+ }
+ }
+ Assert.assertNotNull(infixElement);
+ Assert.assertNotNull(infixElement.getActionRelation());
+ Assert.assertEquals(2, infixElement.getActionRelation().size());
+ // we should test type of action relations (Reads or Addresses for
+ // variable access ...)
+ }
+}
diff --git a/org.eclipse.gmt.modisco.java.discoverer.tests/src/org/eclipse/gmt/modisco/java/discoverer/tests/JavaValidation.java b/org.eclipse.gmt.modisco.java.discoverer.tests/src/org/eclipse/gmt/modisco/java/discoverer/tests/JavaValidation.java
new file mode 100644
index 000000000..5173d47ef
--- /dev/null
+++ b/org.eclipse.gmt.modisco.java.discoverer.tests/src/org/eclipse/gmt/modisco/java/discoverer/tests/JavaValidation.java
@@ -0,0 +1,571 @@
+/*******************************************************************************
+ * Copyright (c) 2009, 2010 Mia-Software.
+ * 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:
+ * Gregoire DUPE (Mia-Software)
+ * Romain Dervaux (Mia-Software)
+ * Fabien Giquel (Mia-Software) - Bug 339720 : MoDisco Discoverers (infra + techno) API clean
+ *******************************************************************************/
+package org.eclipse.gmt.modisco.java.discoverer.tests;
+
+import java.io.PrintStream;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.Map;
+
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.emf.common.util.TreeIterator;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.gmt.modisco.java.AbstractMethodDeclaration;
+import org.eclipse.gmt.modisco.java.AbstractMethodInvocation;
+import org.eclipse.gmt.modisco.java.AbstractTypeDeclaration;
+import org.eclipse.gmt.modisco.java.AnonymousClassDeclaration;
+import org.eclipse.gmt.modisco.java.BodyDeclaration;
+import org.eclipse.gmt.modisco.java.ClassDeclaration;
+import org.eclipse.gmt.modisco.java.ClassInstanceCreation;
+import org.eclipse.gmt.modisco.java.CompilationUnit;
+import org.eclipse.gmt.modisco.java.FieldDeclaration;
+import org.eclipse.gmt.modisco.java.ImportDeclaration;
+import org.eclipse.gmt.modisco.java.Initializer;
+import org.eclipse.gmt.modisco.java.InterfaceDeclaration;
+import org.eclipse.gmt.modisco.java.JavaActivator;
+import org.eclipse.gmt.modisco.java.MemberRef;
+import org.eclipse.gmt.modisco.java.MethodDeclaration;
+import org.eclipse.gmt.modisco.java.MethodRef;
+import org.eclipse.gmt.modisco.java.Model;
+import org.eclipse.gmt.modisco.java.NamedElement;
+import org.eclipse.gmt.modisco.java.Package;
+import org.eclipse.gmt.modisco.java.PackageAccess;
+import org.eclipse.gmt.modisco.java.PrimitiveType;
+import org.eclipse.gmt.modisco.java.SingleVariableAccess;
+import org.eclipse.gmt.modisco.java.SingleVariableDeclaration;
+import org.eclipse.gmt.modisco.java.TagElement;
+import org.eclipse.gmt.modisco.java.Type;
+import org.eclipse.gmt.modisco.java.TypeAccess;
+import org.eclipse.gmt.modisco.java.UnresolvedItem;
+import org.eclipse.gmt.modisco.java.UnresolvedItemAccess;
+import org.eclipse.gmt.modisco.java.VariableDeclarationExpression;
+import org.eclipse.gmt.modisco.java.VariableDeclarationFragment;
+import org.eclipse.gmt.modisco.java.VariableDeclarationStatement;
+import org.eclipse.gmt.modisco.java.internal.util.JavaUtil;
+
+/**
+ * @deprecated use matching org.eclipse.modisco.x.y.z component
+ */
+@Deprecated
+public class JavaValidation {
+
+ public int validate(final Resource resource,
+ @SuppressWarnings("unused") final PrintStream ps) {
+ Status status = new Status(IStatus.INFO, JavaActivator.PLUGIN_ID,
+ "Begin validation"); //$NON-NLS-1$
+ JavaActivator.getDefault().getLog().log(status);
+ int nbError = 0;
+ TreeIterator<EObject> treeIterator = resource.getAllContents();
+ while (treeIterator.hasNext()) {
+ EObject eObject = treeIterator.next();
+ try {
+ validate(eObject);
+ } catch (Exception e) {
+ Status status3 = new Status(IStatus.INFO,
+ JavaActivator.PLUGIN_ID, e.getMessage(), e);
+ JavaActivator.getDefault().getLog().log(status3);
+ nbError++;
+ }
+ }
+ Status status2 = new Status(IStatus.INFO, JavaActivator.PLUGIN_ID,
+ "End validation"); //$NON-NLS-1$
+ JavaActivator.getDefault().getLog().log(status2);
+ return nbError;
+ }
+
+ private void validate(final EObject eobject) {
+ if (eobject instanceof BodyDeclaration) {
+ BodyDeclaration typedObject = (BodyDeclaration) eobject;
+ validate(typedObject);
+ }
+ if (eobject instanceof ClassDeclaration) {
+ ClassDeclaration typedObject = (ClassDeclaration) eobject;
+ validate(typedObject);
+ }
+ if (eobject instanceof Package) {
+ Package typedObject = (Package) eobject;
+ validate(typedObject);
+ }
+ if (eobject instanceof CompilationUnit) {
+ CompilationUnit typedObject = (CompilationUnit) eobject;
+ validate(typedObject);
+ }
+ if (eobject instanceof FieldDeclaration) {
+ FieldDeclaration typedObject = (FieldDeclaration) eobject;
+ validate(typedObject);
+ }
+ if (eobject instanceof NamedElement) {
+ NamedElement typedObject = (NamedElement) eobject;
+ validate(typedObject);
+ }
+ if (eobject instanceof VariableDeclarationFragment) {
+ VariableDeclarationFragment typedObject = (VariableDeclarationFragment) eobject;
+ validate(typedObject);
+ }
+ if (eobject instanceof MethodDeclaration) {
+ MethodDeclaration typedObject = (MethodDeclaration) eobject;
+ validate(typedObject);
+ }
+ if (eobject instanceof VariableDeclarationStatement) {
+ VariableDeclarationStatement typedObject = (VariableDeclarationStatement) eobject;
+ validate(typedObject);
+ }
+ if (eobject instanceof VariableDeclarationExpression) {
+ VariableDeclarationExpression typedObject = (VariableDeclarationExpression) eobject;
+ validate(typedObject);
+ }
+ if (eobject instanceof PrimitiveType) {
+ PrimitiveType typedObject = (PrimitiveType) eobject;
+ validate(typedObject);
+ }
+ if (eobject instanceof Model) {
+ Model typedObject = (Model) eobject;
+ validate(typedObject);
+ }
+ if (eobject instanceof InterfaceDeclaration) {
+ InterfaceDeclaration typedObject = (InterfaceDeclaration) eobject;
+ validate(typedObject);
+ }
+ if (eobject instanceof SingleVariableDeclaration) {
+ SingleVariableDeclaration singleVariableDeclaration = (SingleVariableDeclaration) eobject;
+ validate(singleVariableDeclaration);
+ }
+ if (eobject instanceof AbstractMethodDeclaration) {
+ AbstractMethodDeclaration abstractMethodDeclaration = (AbstractMethodDeclaration) eobject;
+ validate(abstractMethodDeclaration);
+ }
+ if (eobject instanceof TypeAccess) {
+ TypeAccess typeAccess = (TypeAccess) eobject;
+ validate(typeAccess);
+ }
+ if (eobject instanceof PackageAccess) {
+ PackageAccess pckAccess = (PackageAccess) eobject;
+ validate(pckAccess);
+ }
+ if (eobject instanceof SingleVariableAccess) {
+ SingleVariableAccess varAccess = (SingleVariableAccess) eobject;
+ validate(varAccess);
+ }
+ if (eobject instanceof UnresolvedItemAccess) {
+ UnresolvedItemAccess unrAccess = (UnresolvedItemAccess) eobject;
+ validate(unrAccess);
+ }
+ if (eobject instanceof AbstractMethodInvocation) {
+ AbstractMethodInvocation methodInvocation = (AbstractMethodInvocation) eobject;
+ validate(methodInvocation);
+ }
+ if (eobject instanceof MethodRef) {
+ MethodRef methodRef = (MethodRef) eobject;
+ validate(methodRef);
+ }
+ if (eobject instanceof MemberRef) {
+ MemberRef memberRef = (MemberRef) eobject;
+ validate(memberRef);
+ }
+ if (eobject instanceof TagElement) {
+ TagElement tagElement = (TagElement) eobject;
+ validate(tagElement);
+ }
+ if (eobject instanceof ImportDeclaration) {
+ ImportDeclaration importDecl = (ImportDeclaration) eobject;
+ validate(importDecl);
+ }
+ }
+
+ private void validate(
+ final org.eclipse.gmt.modisco.java.ClassDeclaration classDeclaration) {
+ if (classDeclaration.getName() == null) {
+ throw new ValidationException("Null class name: " //$NON-NLS-1$
+ + JavaUtil.getQualifiedName(classDeclaration));
+ }
+ if (classDeclaration.getName().length() == 0) {
+ throw new ValidationException("Empty class name: " //$NON-NLS-1$
+ + JavaUtil.getQualifiedName(classDeclaration));
+ }
+ Iterator<BodyDeclaration> bodyDeclarations = classDeclaration
+ .getBodyDeclarations().iterator();
+ Map<String, Object> map = new HashMap<String, Object>();
+ while (bodyDeclarations.hasNext()) {
+ BodyDeclaration bodyDeclaration = bodyDeclarations.next();
+ if (!(bodyDeclaration instanceof FieldDeclaration)
+ && !(bodyDeclaration instanceof Initializer)) {
+ String qualifiedName = JavaUtil
+ .getQualifiedName(bodyDeclaration);
+ boolean exists = map.containsKey(qualifiedName);
+ if (exists) {
+ throw new ValidationException("Duplicate name: " //$NON-NLS-1$
+ + qualifiedName);
+ }
+ map.put(qualifiedName, null);
+ }
+ }
+ if (classDeclaration.eContainer() instanceof Package
+ && (!classDeclaration.isProxy())
+ && classDeclaration.getOriginalCompilationUnit() == null) {
+ throw new ValidationException(
+ "Non proxy root class must refers its compilation units: " //$NON-NLS-1$
+ + JavaUtil.getQualifiedName(classDeclaration));
+ }
+ }
+
+ private boolean isOrphanType(final Type type) {
+ boolean isOrphanResult;
+ EObject container = type.eContainer();
+ if (container instanceof Model) {
+ Model model = (Model) container;
+ isOrphanResult = model.getOrphanTypes().contains(type);
+ } else {
+ isOrphanResult = false;
+ }
+ return isOrphanResult;
+ }
+
+ private void validate(
+ final org.eclipse.gmt.modisco.java.InterfaceDeclaration interfaceDeclaration) {
+ EObject container = interfaceDeclaration.eContainer();
+ if ((!isOrphanType(interfaceDeclaration))
+ && (!interfaceDeclaration.isProxy())
+ && (container instanceof Package || container instanceof Model)
+ && interfaceDeclaration.getOriginalCompilationUnit() == null) {
+ throw new ValidationException(
+ "Non proxy Root interface must refers its compilation units: " //$NON-NLS-1$
+ + JavaUtil.getQualifiedName(interfaceDeclaration));
+ }
+ }
+
+ private void validate(final org.eclipse.gmt.modisco.java.Package aPackage) {
+ if (aPackage.getName() == null) {
+ throw new ValidationException("Null package name: " //$NON-NLS-1$
+ + JavaUtil.getQualifiedName(aPackage));
+ }
+ if (aPackage.getName().length() == 0) {
+ throw new ValidationException("Empty package name: " //$NON-NLS-1$
+ + JavaUtil.getQualifiedName(aPackage));
+ }
+ Iterator<AbstractTypeDeclaration> abstractTypeDeclarations = aPackage
+ .getOwnedElements().iterator();
+ Map<String, Object> map = new HashMap<String, Object>();
+ while (abstractTypeDeclarations.hasNext()) {
+ AbstractTypeDeclaration abstractTypeDeclaration = abstractTypeDeclarations
+ .next();
+ boolean exists = map.containsKey(abstractTypeDeclaration.getName());
+ if (exists) {
+ throw new ValidationException("Duplicate name:" //$NON-NLS-1$
+ + abstractTypeDeclaration.getName());
+ }
+ map.put(abstractTypeDeclaration.getName(), null);
+ }
+ if (aPackage.getOriginalCompilationUnit() != null) {
+ throw new ValidationException(
+ "Package orginal compilcation unit must be null: " //$NON-NLS-1$
+ + JavaUtil.getQualifiedName(aPackage));
+ }
+ }
+
+ private void validate(
+ final org.eclipse.gmt.modisco.java.BodyDeclaration bodyDeclaration) {
+ if (!(bodyDeclaration instanceof FieldDeclaration)
+ && !(bodyDeclaration instanceof Initializer)) {
+ if (bodyDeclaration.getName() == null) {
+ throw new ValidationException("Null BodyDeclaration name: " //$NON-NLS-1$
+ + JavaUtil.getQualifiedName(bodyDeclaration));
+ }
+ if (bodyDeclaration.getName().length() == 0) {
+ if (bodyDeclaration.eContainer().eContainer() instanceof ClassInstanceCreation) {
+ ClassInstanceCreation classInstanceCreation = (ClassInstanceCreation) bodyDeclaration
+ .eContainer().eContainer();
+ if (classInstanceCreation.getMethod() != bodyDeclaration) {
+ throw new ValidationException(
+ "Empty BodyDeclaration name: " //$NON-NLS-1$
+ + JavaUtil
+ .getQualifiedName(bodyDeclaration)
+ + " type=" //$NON-NLS-1$
+ + bodyDeclaration.getClass().getName());
+ }
+ } else {
+ throw new ValidationException(
+ "Empty BodyDeclaration name: " //$NON-NLS-1$
+ + JavaUtil
+ .getQualifiedName(bodyDeclaration)
+ + " type=" //$NON-NLS-1$
+ + bodyDeclaration.getClass().getName());
+ }
+ }
+ }
+ }
+
+ private void validate(
+ final org.eclipse.gmt.modisco.java.CompilationUnit compilationUnit) {
+ if (compilationUnit.getName() == null) {
+ throw new ValidationException("Null compilation unit name"); //$NON-NLS-1$
+ }
+ if (compilationUnit.getName().length() == 0) {
+ throw new ValidationException("Empty compilation unit name"); //$NON-NLS-1$
+ }
+ }
+
+ private void validate(
+ final org.eclipse.gmt.modisco.java.FieldDeclaration fieldDeclaration) {
+ if (fieldDeclaration.getFragments().size() == 0) {
+ throw new ValidationException(
+ "FieldDeclaration must have one or more fragment"); //$NON-NLS-1$
+ }
+ }
+
+ private void validate(
+ final org.eclipse.gmt.modisco.java.VariableDeclarationFragment variableDeclarationFragment) {
+ if (variableDeclarationFragment.getName() == null) {
+ throw new ValidationException("Null FieldDeclaration name: " //$NON-NLS-1$
+ + JavaUtil.getQualifiedName(variableDeclarationFragment));
+ }
+ if (variableDeclarationFragment.getName().length() == 0) {
+ throw new ValidationException("Empty FieldDeclaration name" //$NON-NLS-1$
+ + JavaUtil.getQualifiedName(variableDeclarationFragment));
+ }
+ }
+
+ private void validate(
+ final org.eclipse.gmt.modisco.java.NamedElement namedElement) {
+ if (!namedElement.isProxy()) {
+ EObject container = namedElement.eContainer();
+ while (container != null) {
+ if (container instanceof NamedElement) {
+ NamedElement neConainter = (NamedElement) container;
+ if (neConainter.isProxy()) {
+ throw new ValidationException(
+ "A non proxy element could not be contained into a proxy element: " //$NON-NLS-1$
+ + JavaUtil
+ .getQualifiedName(namedElement));
+ }
+ }
+ container = container.eContainer();
+ }
+ } else {
+ if (namedElement.getOriginalCompilationUnit() != null) {
+ throw new ValidationException(
+ "A proxy elememt should not have an orignal compilation unit: " //$NON-NLS-1$
+ + JavaUtil.getQualifiedName(namedElement));
+ }
+ }
+ }
+
+ private Model getModel(final NamedElement namedElement) {
+ Model resultModel = null;
+ Iterator<EObject> roots = namedElement.eResource().getContents()
+ .iterator();
+ while (roots.hasNext()) {
+ EObject root = roots.next();
+ if (root instanceof Model) {
+ resultModel = (Model) root;
+ }
+ }
+ return resultModel;
+ }
+
+ private void validate(
+ final org.eclipse.gmt.modisco.java.AbstractMethodDeclaration abstractMethodDeclaration) {
+ if (abstractMethodDeclaration.getName().indexOf('>') != -1
+ || abstractMethodDeclaration.getName().indexOf('<') != -1) {
+ throw new ValidationException("Invalide methode name " //$NON-NLS-1$
+ + JavaUtil.getQualifiedName(abstractMethodDeclaration));
+ }
+ }
+
+ private void validate(
+ final org.eclipse.gmt.modisco.java.AbstractMethodInvocation abstractMethodInvocation) {
+ if (abstractMethodInvocation.getMethod() == null) {
+ throw new ValidationException(
+ "null method on method invocation : " + abstractMethodInvocation); //$NON-NLS-1$
+ }
+ }
+
+ private void validate(final org.eclipse.gmt.modisco.java.MethodRef methodref) {
+ if (methodref.getMethod() == null) {
+ throw new ValidationException(
+ "null method on method ref : " + methodref); //$NON-NLS-1$
+ }
+ }
+
+ private void validate(final org.eclipse.gmt.modisco.java.MemberRef memberref) {
+ if (memberref.getMember() == null) {
+ throw new ValidationException(
+ "null member on member ref : " + memberref); //$NON-NLS-1$
+ }
+ }
+
+ private void validate(final org.eclipse.gmt.modisco.java.TagElement tag) {
+ if (tag.getFragments().size() == 0) {
+ throw new ValidationException(
+ "tag element should have at least one element : " + tag); //$NON-NLS-1$
+ }
+ }
+
+ private void validate(
+ final org.eclipse.gmt.modisco.java.MethodDeclaration methodDeclaration) {
+ String classDeclarationName;
+ if (methodDeclaration.eContainer() instanceof AbstractTypeDeclaration) {
+ AbstractTypeDeclaration abstractTypeDeclaration = (AbstractTypeDeclaration) methodDeclaration
+ .eContainer();
+ classDeclarationName = abstractTypeDeclaration.getName();
+ } else if (methodDeclaration.eContainer() instanceof AnonymousClassDeclaration) {
+ classDeclarationName = ""; //$NON-NLS-1$
+ } else if (methodDeclaration.eContainer() instanceof Model) {
+ Model model = (Model) methodDeclaration.eContainer();
+ if (!model.getUnresolvedItems().contains(methodDeclaration)) {
+ throw new ValidationException("Unexpected container:" //$NON-NLS-1$
+ + JavaUtil.getQualifiedName(methodDeclaration)
+ + " is contained by" //$NON-NLS-1$
+ + methodDeclaration.eContainer().getClass().getName());
+ }
+ classDeclarationName = ""; //$NON-NLS-1$
+ } else {
+ throw new ValidationException("Unexpected container:" //$NON-NLS-1$
+ + JavaUtil.getQualifiedName(methodDeclaration)
+ + " is contained by" //$NON-NLS-1$
+ + methodDeclaration.eContainer().getClass().getName());
+ }
+ if (methodDeclaration.getName().equals(classDeclarationName)) {
+ throw new ValidationException("The method " //$NON-NLS-1$
+ + JavaUtil.getQualifiedName(methodDeclaration)
+ + " should be a constructor."); //$NON-NLS-1$
+ }
+ }
+
+ private void validate(
+ final VariableDeclarationStatement variableDeclarationStatement) {
+ if (variableDeclarationStatement.getOriginalCompilationUnit() == null) {
+ throw new ValidationException(
+ "A variable declaration statement should have an original compilation unit : " //$NON-NLS-1$
+ + variableDeclarationStatement);
+ }
+ if (variableDeclarationStatement.getFragments().size() == 0) {
+ throw new ValidationException(
+ "A variable declaration statement should have at least one fragment : " + //$NON-NLS-1$
+ variableDeclarationStatement);
+ }
+ }
+
+ private void validate(
+ final VariableDeclarationExpression variableDeclarationExpression) {
+ if (variableDeclarationExpression.getOriginalCompilationUnit() == null) {
+ throw new ValidationException(
+ "A variable declaration expression should have an original compilation unit : " //$NON-NLS-1$
+ + variableDeclarationExpression);
+ }
+ if (variableDeclarationExpression.getFragments().size() == 0) {
+ throw new ValidationException(
+ "A variable declaration expression should have at least one fragment : " + //$NON-NLS-1$
+ variableDeclarationExpression);
+ }
+ }
+
+ private void validate(final PrimitiveType primitiveType) {
+ if (!getModel(primitiveType).getOrphanTypes().contains(primitiveType)) {
+ throw new ValidationException(
+ "A primitive type must be contained in to the model's orphan types"); //$NON-NLS-1$
+ }
+ }
+
+ private void validate(final Model model) {
+ if (model.eResource().getContents().size() != 1) {
+ throw new ValidationException("Only one resource root is expected"); //$NON-NLS-1$
+ }
+ }
+
+ private class ValidationException extends RuntimeException {
+
+ private static final long serialVersionUID = 3105718445594551708L;
+
+ // public ValidationExeption(String message, Throwable cause) {
+ // super(message, cause);
+ // }
+
+ public ValidationException(final String message) {
+ super(message);
+ }
+ }
+
+ private void validate(
+ final SingleVariableDeclaration singleVariableDeclaration) {
+ EObject container = singleVariableDeclaration.eContainer();
+ if (container instanceof AbstractMethodDeclaration) {
+ AbstractMethodDeclaration abstractMethodDeclaration = (AbstractMethodDeclaration) container;
+ if (abstractMethodDeclaration.isProxy()) {
+ if (!singleVariableDeclaration.isProxy()) {
+ throw new ValidationException(
+ "Parameters of proxy methods must be proxies:" //$NON-NLS-1$
+ + JavaUtil
+ .getQualifiedName(singleVariableDeclaration));
+ }
+ } else {
+ if (singleVariableDeclaration.isProxy()) {
+ throw new ValidationException(
+ "Parameters of non-proxy methods must be non-proxies:" //$NON-NLS-1$
+ + JavaUtil
+ .getQualifiedName(singleVariableDeclaration));
+ }
+ if (singleVariableDeclaration.getName() == null
+ || singleVariableDeclaration.getName().length() == 0) {
+ throw new ValidationException(
+ "Non-proxy parameters must be named:" //$NON-NLS-1$
+ + JavaUtil
+ .getQualifiedName(singleVariableDeclaration));
+ }
+ }
+ }
+ }
+
+ private void validate(final TypeAccess typeAccess) {
+ if (typeAccess.getType() == null) {
+ throw new ValidationException("typeAccess.getType() == null"); //$NON-NLS-1$
+ }
+ }
+
+ private void validate(final PackageAccess pckAccess) {
+ if (pckAccess.getPackage() == null) {
+ throw new ValidationException("pckAccess.getPackage() == null"); //$NON-NLS-1$
+ }
+ }
+
+ private void validate(final SingleVariableAccess varAccess) {
+ if (varAccess.getVariable() == null) {
+ throw new ValidationException("varAccess.getVariable() == null"); //$NON-NLS-1$
+ }
+ }
+
+ private void validate(final UnresolvedItemAccess unrAccess) {
+ if (unrAccess.getElement() == null) {
+ throw new ValidationException("unrAccess.getElement() == null"); //$NON-NLS-1$
+ }
+ }
+
+ private void validate(final ImportDeclaration importDecl) {
+ if (importDecl.getOriginalCompilationUnit() == null) {
+ throw new ValidationException(
+ "This import declaration should have an original compilation unit : " + importDecl); //$NON-NLS-1$
+ }
+ if (importDecl.getImportedElement() == null) {
+ throw new ValidationException(
+ "This import declaration should import something : " + importDecl); //$NON-NLS-1$
+ }
+ if (importDecl.getImportedElement() instanceof UnresolvedItem
+ && importDecl.getImportedElement().getName() == null
+ || importDecl.getImportedElement().getName().length() == 0) {
+ throw new ValidationException(
+ "This unresolved imported element should have a name : " + importDecl); //$NON-NLS-1$
+ }
+ }
+
+}
diff --git a/org.eclipse.gmt.modisco.java.discoverer.tests/src/org/eclipse/gmt/modisco/java/discoverer/tests/Messages.java b/org.eclipse.gmt.modisco.java.discoverer.tests/src/org/eclipse/gmt/modisco/java/discoverer/tests/Messages.java
new file mode 100644
index 000000000..39db992ab
--- /dev/null
+++ b/org.eclipse.gmt.modisco.java.discoverer.tests/src/org/eclipse/gmt/modisco/java/discoverer/tests/Messages.java
@@ -0,0 +1,33 @@
+/**
+ * Copyright (c) 2009, 2010 Mia-Software.
+ * 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:
+ * Gregoire DUPE (Mia-Software) - initial API and implementation
+ * Fabien Giquel (Mia-Software) - Bug 339720 : MoDisco Discoverers (infra + techno) API clean
+ *******************************************************************************/
+package org.eclipse.gmt.modisco.java.discoverer.tests;
+
+import org.eclipse.osgi.util.NLS;
+
+/**
+ * @deprecated use matching org.eclipse.modisco.x.y.z component
+ */
+@Deprecated
+public class Messages extends NLS {
+ private static final String BUNDLE_NAME = "org.eclipse.gmt.modisco.java.discoverer.tests.messages"; //$NON-NLS-1$
+ public static String JavaJUnitEMF_113;
+ public static String JavaJUnitEMF_62;
+ public static String JavaJUnitEMF_88;
+ static {
+ // initialize resource bundle
+ NLS.initializeMessages(BUNDLE_NAME, Messages.class);
+ }
+
+ private Messages() {
+ // Nothing
+ }
+}
diff --git a/org.eclipse.gmt.modisco.java.discoverer.tests/src/org/eclipse/gmt/modisco/java/discoverer/tests/ModelElementStats.java b/org.eclipse.gmt.modisco.java.discoverer.tests/src/org/eclipse/gmt/modisco/java/discoverer/tests/ModelElementStats.java
new file mode 100644
index 000000000..68822cccb
--- /dev/null
+++ b/org.eclipse.gmt.modisco.java.discoverer.tests/src/org/eclipse/gmt/modisco/java/discoverer/tests/ModelElementStats.java
@@ -0,0 +1,107 @@
+/*******************************************************************************
+ * Copyright (c) 2009, 2010 Mia-Software.
+ * 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:
+ * Gregoire DUPE (Mia-Software)
+ * Romain Dervaux (Mia-Software)
+ * Fabien Giquel (Mia-Software) - Bug 339720 : MoDisco Discoverers (infra + techno) API clean
+ *******************************************************************************/
+package org.eclipse.gmt.modisco.java.discoverer.tests;
+
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.io.PrintStream;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.Map;
+
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.NullProgressMonitor;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.emf.common.util.TreeIterator;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.gmt.modisco.infra.discoverymanager.DiscoveryParameter;
+import org.eclipse.gmt.modisco.java.JavaActivator;
+import org.eclipse.gmt.modisco.java.actions.DefaultDiscoverer;
+import org.eclipse.gmt.modisco.java.internal.actions.DiscoverSimpleJavaModelFromJavaProject;
+import org.eclipse.jdt.core.IJavaProject;
+
+/**
+ * @deprecated use matching org.eclipse.modisco.x.y.z component
+ */
+@Deprecated
+@SuppressWarnings("deprecation")
+public class ModelElementStats extends DiscoverSimpleJavaModelFromJavaProject {
+
+ private final HashMap<Class<?>, Long> modelElementStat = new HashMap<Class<?>, Long>();
+ private PrintStream ps;
+
+ @Override
+ public void discoverElement(final Object source,
+ final Map<DiscoveryParameter, Object> parameters) {
+ super.discoverElement(source, parameters);
+ Resource resource = (Resource) parameters
+ .get(DefaultDiscoverer.PARAMETER_TARGET_RESOURCE);
+ getModelElementStats(resource);
+ initPS((IJavaProject) source);
+ print((IJavaProject) source);
+ }
+
+ private void print(final IJavaProject javaProject) {
+ Iterator<Class<?>> classes = this.modelElementStat.keySet().iterator();
+ while (classes.hasNext()) {
+ Class<?> eObjectClass = classes.next();
+ Long nbModelElement = this.modelElementStat.get(eObjectClass);
+ this.ps.println(eObjectClass.getSimpleName() + "\t" //$NON-NLS-1$
+ + nbModelElement.toString());
+ }
+ try {
+ javaProject.getProject().refreshLocal(IResource.DEPTH_INFINITE,
+ new NullProgressMonitor());
+ } catch (CoreException e) {
+ Status status2 = new Status(IStatus.ERROR, JavaActivator.PLUGIN_ID,
+ e.getMessage(), e);
+ Activator.getDefault().getLog().log(status2);
+ }
+ }
+
+ private void getModelElementStats(final Resource resource) {
+ TreeIterator<EObject> treeIterator = resource.getAllContents();
+ while (treeIterator.hasNext()) {
+ EObject eObject = treeIterator.next();
+ Class<?> eObjectClass = eObject.getClass();
+ System.out.println(eObjectClass.toString());
+ Long nbElement = this.modelElementStat.get(eObjectClass);
+ if (nbElement != null) {
+ this.modelElementStat.put(eObjectClass,
+ new Long(nbElement.longValue() + 1));
+ } else {
+ this.modelElementStat.put(eObjectClass, new Long(1));
+ }
+ }
+ }
+
+ public void initPS(final IJavaProject javaProject) {
+ File statisticsDir = javaProject.getProject().getLocation().toFile();
+ File f = new File(statisticsDir, "modelElementStats-" //$NON-NLS-1$
+ + System.currentTimeMillis() + ".tsv"); //$NON-NLS-1$
+ Status status = new Status(IStatus.INFO, JavaActivator.PLUGIN_ID,
+ "Statistic file= " + f.toString()); //$NON-NLS-1$
+ Activator.getDefault().getLog().log(status);
+ try {
+ this.ps = new PrintStream(f);
+ } catch (FileNotFoundException e) {
+ Status status2 = new Status(IStatus.ERROR, JavaActivator.PLUGIN_ID,
+ e.getMessage(), e);
+ Activator.getDefault().getLog().log(status2);
+ }
+ }
+
+}
diff --git a/org.eclipse.gmt.modisco.java.discoverer.tests/src/org/eclipse/gmt/modisco/java/discoverer/tests/ParameterizedDiscovery.java b/org.eclipse.gmt.modisco.java.discoverer.tests/src/org/eclipse/gmt/modisco/java/discoverer/tests/ParameterizedDiscovery.java
new file mode 100644
index 000000000..425d88c8a
--- /dev/null
+++ b/org.eclipse.gmt.modisco.java.discoverer.tests/src/org/eclipse/gmt/modisco/java/discoverer/tests/ParameterizedDiscovery.java
@@ -0,0 +1,124 @@
+/**
+ * Copyright (c) 2010 Mia-Software.
+ * 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:
+ * Fabien Giquel (Mia-Software) - initial API and implementation
+ * Fabien Giquel (Mia-Software) - Bug 339720 : MoDisco Discoverers (infra + techno) API clean
+ */
+package org.eclipse.gmt.modisco.java.discoverer.tests;
+
+import java.net.URL;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.Map;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.gmt.modisco.infra.discoverymanager.DiscoveryParameter;
+import org.eclipse.gmt.modisco.java.Model;
+import org.eclipse.gmt.modisco.java.NamedElement;
+import org.eclipse.gmt.modisco.java.actions.DefaultDiscoverer;
+import org.eclipse.gmt.modisco.java.actions.DiscoverJavaModelFromJavaProject;
+import org.eclipse.gmt.modisco.java.actions.DiscoveryParametersBean;
+import org.eclipse.gmt.modisco.java.discoverer.tests.utils.JavaProjectFactory;
+import org.eclipse.gmt.modisco.java.internal.util.JavaUtil;
+import org.eclipse.jdt.core.IJavaProject;
+import org.junit.After;
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Test;
+
+/**
+ * @deprecated use matching org.eclipse.modisco.x.y.z component
+ */
+@Deprecated
+public class ParameterizedDiscovery {
+
+ private final String rootSourcesPath = "/workspace/"; //$NON-NLS-1$
+ private final String projectName = "test001"; //$NON-NLS-1$
+ private JavaProjectFactory javaProjectFactory;
+
+ /**
+ * @throws java.lang.Exception
+ */
+ @Before
+ public void setUp() throws Exception {
+ this.javaProjectFactory = new JavaProjectFactory(this.projectName);
+ }
+
+ @After
+ public void tearDown() throws Exception {
+ if (this.javaProjectFactory != null) {
+ this.javaProjectFactory.dispose();
+ }
+ }
+
+ private Model getJavaModel(final Resource javaResource) {
+ Model aModel = null;
+ EList<EObject> i = javaResource.getContents();
+ for (Iterator<EObject> iterator = i.iterator(); iterator.hasNext()
+ && aModel == null;) {
+ EObject eobject = iterator.next();
+ if (eobject instanceof Model) {
+ aModel = (Model) eobject;
+ }
+ }
+ return aModel;
+ }
+
+ /**
+ * Test exclusion/inclusion regex parameter
+ */
+ @Test
+ public void testBug319606() {
+ Assert.assertNotNull(this.javaProjectFactory);
+
+ try {
+
+ IJavaProject javaProject = this.javaProjectFactory.getJavaProject();
+ Assert.assertNotNull(javaProject);
+
+ String sourceFolderPath = this.rootSourcesPath + this.projectName
+ + "/src"; //$NON-NLS-1$
+ URL src = Activator.getDefault().getBundle()
+ .getEntry(sourceFolderPath);
+ Assert.assertNotNull(src);
+ this.javaProjectFactory.populateSourceFolder(sourceFolderPath,
+ Activator.getDefault());
+
+ DiscoverJavaModelFromJavaProject javaDiscoverer = new DiscoverJavaModelFromJavaProject();
+ Assert.assertNotNull(javaDiscoverer);
+ Map<DiscoveryParameter, Object> parameters = new HashMap<DiscoveryParameter, Object>();
+ parameters.put(DefaultDiscoverer.PARAMETER_SILENT_MODE, true);
+
+ DiscoveryParametersBean parametersBean = new DiscoveryParametersBean();
+ parametersBean.setExcludedElementsRegEx("annotat[a-z]*"); //$NON-NLS-1$
+ parametersBean.addElementToDiscover(javaProject);
+ parameters.put(DiscoverJavaModelFromJavaProject.PARAMETERS_BEAN,
+ parametersBean);
+
+ javaDiscoverer.discoverElement(javaProject, parameters);
+
+ Resource output = (Resource) parameters
+ .get(DefaultDiscoverer.PARAMETER_TARGET_RESOURCE);
+ Assert.assertNotNull(output);
+
+ Model javaModel = getJavaModel(output);
+ NamedElement classAnnotation = JavaUtil
+ .getNamedElementByQualifiedName(javaModel,
+ "annotations.MyAnnotatedClass"); //$NON-NLS-1$
+ Assert.assertNull(classAnnotation);
+
+ Assert.assertTrue(!javaModel.getOwnedElements().isEmpty());
+
+ } catch (Exception e) {
+ Assert.fail(e.getMessage());
+ }
+ }
+
+}
diff --git a/org.eclipse.gmt.modisco.java.discoverer.tests/src/org/eclipse/gmt/modisco/java/discoverer/tests/SimpleBlackBoxConverter.java b/org.eclipse.gmt.modisco.java.discoverer.tests/src/org/eclipse/gmt/modisco/java/discoverer/tests/SimpleBlackBoxConverter.java
new file mode 100644
index 000000000..4af8f9ae4
--- /dev/null
+++ b/org.eclipse.gmt.modisco.java.discoverer.tests/src/org/eclipse/gmt/modisco/java/discoverer/tests/SimpleBlackBoxConverter.java
@@ -0,0 +1,168 @@
+/**
+ * Copyright (c) 2010 Mia-Software.
+ * 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:
+ * Gabriel Barbier (Mia-Software) - initial API and implementation
+ * Fabien Giquel (Mia-Software) - Bug 339720 : MoDisco Discoverers (infra + techno) API clean
+ * Nicolas Bros (Mia-Software) - Bug 378965 - Tests disabled due to EMF Compare API change
+ */
+
+package org.eclipse.gmt.modisco.java.discoverer.tests;
+
+import java.util.List;
+
+import org.eclipse.emf.common.util.BasicDiagnostic;
+import org.eclipse.emf.common.util.Diagnostic;
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.util.Diagnostician;
+import org.eclipse.gmt.modisco.infra.common.core.internal.utils.ModelUtils;
+import org.eclipse.gmt.modisco.java.actions.TranslateJavaModelToKdm;
+import org.eclipse.gmt.modisco.java.discoverer.tests.utils.JavaProjectFactory;
+import org.eclipse.modisco.common.tests.TestModelUtils;
+import org.junit.After;
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Ignore;
+import org.junit.Test;
+
+/**
+ * To test conversion of java model to kdm model.
+ *
+ *
+ * @deprecated use matching org.eclipse.modisco.x.y.z component
+ */
+@Deprecated
+public class SimpleBlackBoxConverter {
+ // To be able to export reference model after a change in atl transformation
+ private final boolean export = false;
+
+ private final String referencesFolderPath = "/references/"; //$NON-NLS-1$
+ private final String javaModelExtension = ".javaxmi"; //$NON-NLS-1$
+ private final String kdmModelExtension = ".kdm"; //$NON-NLS-1$
+ private final String projectName = "test001"; //$NON-NLS-1$
+
+ private JavaProjectFactory javaProjectFactory;
+
+ /**
+ * @throws java.lang.Exception
+ */
+ @Before
+ public void setUp() throws Exception {
+ this.javaProjectFactory = new JavaProjectFactory(this.projectName);
+ }
+
+ /**
+ * @throws java.lang.Exception
+ */
+ @After
+ public void tearDown() throws Exception {
+ if (this.javaProjectFactory != null) {
+ this.javaProjectFactory.dispose();
+ }
+ }
+
+ @Test
+ @Ignore
+ // @Ignore : FIXME TestModelUtils#compareModels must be rewritten for EMF Compare 2.0
+ public void testConversionOfJavaModelToKdmModel() {
+ /*
+ * prepare the target ... we have to create an empty project into the
+ * workspace with a real uri for atl extraction.
+ */
+ final String outputPath = this.projectName + "/BasicConversion"//$NON-NLS-1$
+ + this.kdmModelExtension;
+ final URI outputUri = URI.createPlatformResourceURI(outputPath, false);
+ Assert.assertNotNull(outputUri);
+ basicConversionOfJavaModelToKdmModel(outputUri);
+ }
+
+ private void basicConversionOfJavaModelToKdmModel(final URI outputUri) {
+ Assert.assertNotNull(this.javaProjectFactory);
+ /*
+ * load the java model from references
+ */
+ final String javaReferencePath = "/" + Activator.PLUGIN_ID + this.referencesFolderPath + this.projectName + this.javaModelExtension; //$NON-NLS-1$
+ final URI javaReferenceUri = URI.createPlatformPluginURI(
+ javaReferencePath, true);
+ Assert.assertNotNull(javaReferenceUri);
+ try {
+ final TranslateJavaModelToKdm kdmTranslater = new TranslateJavaModelToKdm();
+ final Resource output = kdmTranslater
+ .getKDMModelFromJavaModelWithCustomTransformation(
+ javaReferenceUri, outputUri);
+ Assert.assertNotNull(output);
+
+ /*
+ * Because everything looks great, well we have to test model
+ * content. In details we will compare current resource with a
+ * reference (checked manually)
+ */
+ String referencePath = "/" + Activator.PLUGIN_ID + this.referencesFolderPath + this.projectName + this.kdmModelExtension; //$NON-NLS-1$
+ URI referenceUri = URI.createPlatformPluginURI(referencePath, true);
+ Assert.assertNotNull(referenceUri);
+ Resource referenceModel = ModelUtils.loadModel(referenceUri);
+ Assert.assertNotNull(referenceModel);
+ boolean result = TestModelUtils.compareModels(output,
+ referenceModel, true);
+
+ if (this.export) {
+ output.setURI(URI
+ .createFileURI("c:/referenceModel" + this.kdmModelExtension)); //$NON-NLS-1$
+ output.save(null);
+ }
+ Assert.assertTrue("Comparison of UML models has failed !", result); //$NON-NLS-1$
+
+ } catch (Exception e) {
+ Assert.fail(e.getMessage());
+ }
+ }
+
+ @Test
+ @Ignore
+ // @Ignore : FIXME TestModelUtils#compareModels must be rewritten for EMF Compare 2.0
+ public void testValidationOfKdmModelConvertedFromJavaModel() {
+ try {
+ /*
+ * prepare the target ... we have to create an empty project into
+ * the workspace with a real uri for atl extraction.
+ */
+ final String outputPath = this.projectName + "/ConversionValidated"//$NON-NLS-1$
+ + this.kdmModelExtension;
+ final URI outputUri = URI.createPlatformResourceURI(outputPath,
+ false);
+ Assert.assertNotNull(outputUri);
+ basicConversionOfJavaModelToKdmModel(outputUri);
+
+ final Resource outputModel = ModelUtils.loadModel(outputUri);
+ Assert.assertNotNull(outputModel);
+
+ Diagnostician diagnostician = new Diagnostician();
+ BasicDiagnostic diagnosticChain = new BasicDiagnostic();
+ /*
+ * For one of the root object, we expect a failure in validation,
+ * with two errors (one for System.out field which have no type, and
+ * one for a parameterized type which have currently no type, ie.
+ * which is a wildcard.
+ */
+ for (EObject eObject : outputModel.getContents()) {
+ boolean result = diagnostician.validate(eObject,
+ diagnosticChain);
+ if (!result) {
+ Assert.assertNotNull(diagnosticChain);
+ List<Diagnostic> diagnostics = diagnosticChain
+ .getChildren();
+ Assert.assertNotNull(diagnostics);
+ Assert.assertEquals(2, diagnostics.size());
+ }
+ }
+ } catch (Exception e) {
+ Assert.fail(e.getMessage());
+ }
+ }
+}
diff --git a/org.eclipse.gmt.modisco.java.discoverer.tests/src/org/eclipse/gmt/modisco/java/discoverer/tests/SimpleBlackBoxDiscovery.java b/org.eclipse.gmt.modisco.java.discoverer.tests/src/org/eclipse/gmt/modisco/java/discoverer/tests/SimpleBlackBoxDiscovery.java
new file mode 100644
index 000000000..60249dd09
--- /dev/null
+++ b/org.eclipse.gmt.modisco.java.discoverer.tests/src/org/eclipse/gmt/modisco/java/discoverer/tests/SimpleBlackBoxDiscovery.java
@@ -0,0 +1,329 @@
+/**
+ * Copyright (c) 2010 Mia-Software.
+ * 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:
+ * Gabriel Barbier (Mia-Software) - initial API and implementation
+ * Fabien Giquel (Mia-Software) - Bug 339720 : MoDisco Discoverers (infra + techno) API clean
+ */
+
+package org.eclipse.gmt.modisco.java.discoverer.tests;
+
+import java.net.URL;
+import java.util.HashMap;
+import java.util.Map;
+
+import org.eclipse.emf.common.util.DiagnosticChain;
+import org.eclipse.emf.common.util.TreeIterator;
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.util.Diagnostician;
+import org.eclipse.gmt.modisco.infra.common.core.internal.utils.ModelUtils;
+import org.eclipse.gmt.modisco.infra.discoverymanager.DiscoveryParameter;
+import org.eclipse.gmt.modisco.java.Assignment;
+import org.eclipse.gmt.modisco.java.Expression;
+import org.eclipse.gmt.modisco.java.FieldAccess;
+import org.eclipse.gmt.modisco.java.SingleVariableAccess;
+import org.eclipse.gmt.modisco.java.UnresolvedItem;
+import org.eclipse.gmt.modisco.java.UnresolvedItemAccess;
+import org.eclipse.gmt.modisco.java.UnresolvedVariableDeclarationFragment;
+import org.eclipse.gmt.modisco.java.VariableDeclaration;
+import org.eclipse.gmt.modisco.java.actions.DefaultDiscoverer;
+import org.eclipse.gmt.modisco.java.actions.DiscoverJavaModelFromJavaProject;
+import org.eclipse.gmt.modisco.java.discoverer.tests.utils.JavaProjectFactory;
+import org.eclipse.jdt.core.IJavaProject;
+import org.eclipse.modisco.common.tests.TestModelUtils;
+import org.junit.After;
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Test;
+
+/**
+ * @author Gabriel Barbier
+ *
+ *
+ * @deprecated use matching org.eclipse.modisco.x.y.z component
+ */
+@Deprecated
+public class SimpleBlackBoxDiscovery {
+ // To be able to export reference model after a change in java discovery
+ private final boolean export = false;
+
+ private final String rootSourcesPath = "/workspace/"; //$NON-NLS-1$
+ private final String referencesFolderPath = "/references/"; //$NON-NLS-1$
+ private final String javaModelExtension = ".javaxmi"; //$NON-NLS-1$
+ private final String projectName = "test001"; //$NON-NLS-1$
+
+ private JavaProjectFactory javaProjectFactory;
+
+ /**
+ * @throws java.lang.Exception
+ */
+ @Before
+ public void setUp() throws Exception {
+ this.javaProjectFactory = new JavaProjectFactory(this.projectName);
+ }
+
+ /**
+ * @throws java.lang.Exception
+ */
+ @After
+ public void tearDown() throws Exception {
+ if (this.javaProjectFactory != null) {
+ this.javaProjectFactory.dispose();
+ }
+ }
+
+ @Test
+ public void testJavaModelDiscoveryFromJavaProject() {
+ Assert.assertNotNull(this.javaProjectFactory);
+
+ try {
+
+ IJavaProject javaProject = this.javaProjectFactory.getJavaProject();
+ Assert.assertNotNull(javaProject);
+
+ String sourceFolderPath = this.rootSourcesPath + this.projectName
+ + "/src"; //$NON-NLS-1$
+ URL src = Activator.getDefault().getBundle()
+ .getEntry(sourceFolderPath);
+ Assert.assertNotNull(src);
+ this.javaProjectFactory.populateSourceFolder(sourceFolderPath,
+ Activator.getDefault());
+
+ DiscoverJavaModelFromJavaProject javaDiscoverer = new DiscoverJavaModelFromJavaProject();
+ Assert.assertNotNull(javaDiscoverer);
+ Map<DiscoveryParameter, Object> parameters = new HashMap<DiscoveryParameter, Object>();
+ parameters.put(DefaultDiscoverer.PARAMETER_SILENT_MODE, true);
+ javaDiscoverer.discoverElement(javaProject, parameters);
+ Resource output = (Resource) parameters
+ .get(DefaultDiscoverer.PARAMETER_TARGET_RESOURCE);
+ Assert.assertNotNull(output);
+
+ if (this.export) {
+ output.setURI(URI
+ .createFileURI("c:/referenceModel" + this.javaModelExtension)); //$NON-NLS-1$
+ output.save(null);
+ }
+ } catch (Exception e) {
+ Assert.fail(e.getMessage());
+ }
+ }
+
+ // @Test
+ public void testJavaModelFromJavaProjectWithReferenceModel() {
+ Assert.assertNotNull(this.javaProjectFactory);
+ try {
+ IJavaProject javaProject = this.javaProjectFactory.getJavaProject();
+ Assert.assertNotNull(javaProject);
+
+ String sourceFolderPath = this.rootSourcesPath + this.projectName
+ + "/src"; //$NON-NLS-1$
+ URL src = Activator.getDefault().getBundle()
+ .getEntry(sourceFolderPath);
+ Assert.assertNotNull(src);
+ this.javaProjectFactory.populateSourceFolder(sourceFolderPath,
+ Activator.getDefault());
+
+ DiscoverJavaModelFromJavaProject javaDiscoverer = new DiscoverJavaModelFromJavaProject();
+ Assert.assertNotNull(javaDiscoverer);
+ Map<DiscoveryParameter, Object> parameters = new HashMap<DiscoveryParameter, Object>();
+ parameters.put(DefaultDiscoverer.PARAMETER_SILENT_MODE, true);
+ javaDiscoverer.discoverElement(javaProject, parameters);
+ Resource output = (Resource) parameters
+ .get(DefaultDiscoverer.PARAMETER_TARGET_RESOURCE);
+ Assert.assertNotNull(output);
+
+ /*
+ * Because everything looks great, well we have to test model
+ * content. In details we will compare current resource with a
+ * reference (checked manually)
+ *
+ * Warning, because the java model store the "filepath" of
+ * discovered java code, the compilation units elements could not be
+ * the same !!!!
+ */
+ String referencePath = "/" + Activator.PLUGIN_ID + this.referencesFolderPath + this.projectName + this.javaModelExtension; //$NON-NLS-1$
+ URI referenceUri = URI.createPlatformPluginURI(referencePath, true);
+ Assert.assertNotNull(referenceUri);
+ Resource referenceModel = ModelUtils.loadModel(referenceUri);
+ Assert.assertNotNull(referenceModel);
+ boolean result = TestModelUtils.compareModels(output,
+ referenceModel, true);
+ Assert.assertTrue("Comparison of Java models has failed !", result); //$NON-NLS-1$
+ } catch (Exception e) {
+ Assert.fail(e.getMessage());
+ }
+ }
+
+ @Test
+ public void testValidationOfJavaModelDiscoveryFromJavaProject() {
+ Assert.assertNotNull(this.javaProjectFactory);
+
+ try {
+
+ IJavaProject javaProject = this.javaProjectFactory.getJavaProject();
+ Assert.assertNotNull(javaProject);
+
+ String sourceFolderPath = this.rootSourcesPath + this.projectName
+ + "/src"; //$NON-NLS-1$
+ URL src = Activator.getDefault().getBundle()
+ .getEntry(sourceFolderPath);
+ Assert.assertNotNull(src);
+ this.javaProjectFactory.populateSourceFolder(sourceFolderPath,
+ Activator.getDefault());
+
+ DiscoverJavaModelFromJavaProject javaDiscoverer = new DiscoverJavaModelFromJavaProject();
+ Assert.assertNotNull(javaDiscoverer);
+ Map<DiscoveryParameter, Object> parameters = new HashMap<DiscoveryParameter, Object>();
+ parameters.put(DefaultDiscoverer.PARAMETER_SILENT_MODE, true);
+ javaDiscoverer.discoverElement(javaProject, parameters);
+ Resource outputModel = (Resource) parameters
+ .get(DefaultDiscoverer.PARAMETER_TARGET_RESOURCE);
+ Assert.assertNotNull(outputModel);
+
+ Diagnostician diagnostician = new Diagnostician();
+ for (EObject eObject : outputModel.getContents()) {
+ boolean result = diagnostician.validate(eObject,
+ (DiagnosticChain) null);
+ Assert.assertTrue(result);
+ }
+ } catch (Exception e) {
+ Assert.fail(e.getMessage());
+ }
+ }
+
+ @Test
+ public void testBug328143_unboundVM() {
+ /*
+ * This bug happens when a java project try to set an unbound vm for its
+ * execution environment. For instance, if it try to use a jvm 1.6 and
+ * there is only an install of jvm 1.5
+ */
+ Assert.assertNotNull(this.javaProjectFactory);
+
+ try {
+
+ IJavaProject javaProject = this.javaProjectFactory.getJavaProject();
+ Assert.assertNotNull(javaProject);
+
+ String sourceFolderPath = this.rootSourcesPath + this.projectName
+ + "/src"; //$NON-NLS-1$
+ URL src = Activator.getDefault().getBundle()
+ .getEntry(sourceFolderPath);
+ Assert.assertNotNull(src);
+ this.javaProjectFactory.populateSourceFolder(sourceFolderPath,
+ Activator.getDefault());
+
+ // set the execution environment with an unbound vm
+ this.javaProjectFactory.setExecutionEnvironmentWithUnboundVm();
+
+ DiscoverJavaModelFromJavaProject javaDiscoverer = new DiscoverJavaModelFromJavaProject();
+ Assert.assertNotNull(javaDiscoverer);
+ Map<DiscoveryParameter, Object> parameters = new HashMap<DiscoveryParameter, Object>();
+ parameters.put(DefaultDiscoverer.PARAMETER_SILENT_MODE, true);
+ javaDiscoverer.discoverElement(javaProject, parameters);
+ Resource output = (Resource) parameters
+ .get(DefaultDiscoverer.PARAMETER_TARGET_RESOURCE);
+ Assert.assertNotNull(output);
+ // because, every exceptions have been caught in the discoverer,
+ // a way to check if every element has been attached to the resource
+ // is to save the resource.
+ output.save(null);
+
+ if (this.export) {
+ output.setURI(URI
+ .createFileURI("c:/referenceModel" + this.javaModelExtension)); //$NON-NLS-1$
+ output.save(null);
+ }
+ } catch (Exception e) {
+ Assert.fail(e.getMessage());
+ }
+ }
+
+ @SuppressWarnings("null")
+ @Test
+ public void testBug312080_unresolvedFields() {
+ /*
+ * This bug happens when user code contains a field use with no field
+ * declaration (there is a compiler error). If a field has the same name
+ * as the declared package in the file, Modisco Java Discoverer does not
+ * handle the field, but creates an expression with both leftHandSide
+ * and rightHandSide with empty elements.
+ *
+ * To test, we will use a specific project, then we will check that
+ * leftHandSide and rightHandSide of Assignment are not empty. Actually,
+ * for the leftHandSide, we have a FieldAccess which references a
+ * SingleVariableAccess which references nothing, it should be an
+ * UnresolvedSingleVariableDeclaration. For the rightHandSide, we have
+ * an UnresolvedItemAccess which references nothing, it should be an
+ * UnresolvedItem.
+ */
+ Assert.assertNotNull(this.javaProjectFactory);
+
+ try {
+
+ IJavaProject javaProject = this.javaProjectFactory.getJavaProject();
+ Assert.assertNotNull(javaProject);
+
+ String sourceFolderPath = this.rootSourcesPath + "bug312080/src"; //$NON-NLS-1$
+ URL src = Activator.getDefault().getBundle()
+ .getEntry(sourceFolderPath);
+ Assert.assertNotNull(src);
+ this.javaProjectFactory.populateSourceFolder(sourceFolderPath,
+ Activator.getDefault());
+
+ DiscoverJavaModelFromJavaProject javaDiscoverer = new DiscoverJavaModelFromJavaProject();
+ Assert.assertNotNull(javaDiscoverer);
+ Map<DiscoveryParameter, Object> parameters = new HashMap<DiscoveryParameter, Object>();
+ parameters.put(DefaultDiscoverer.PARAMETER_SILENT_MODE, true);
+ javaDiscoverer.discoverElement(javaProject, parameters);
+ Resource output = (Resource) parameters
+ .get(DefaultDiscoverer.PARAMETER_TARGET_RESOURCE);
+ Assert.assertNotNull(output);
+
+ if (this.export) {
+ output.setURI(URI
+ .createFileURI("c:/referenceModel" + this.javaModelExtension)); //$NON-NLS-1$
+ output.save(null);
+ }
+
+ // check the Assignment (there is only one in this model)
+ Assignment assignment = null;
+ TreeIterator<EObject> iterator = output.getAllContents();
+ while (iterator.hasNext()) {
+ EObject eObject = iterator.next();
+ if (eObject instanceof Assignment) {
+ assignment = (Assignment) eObject;
+ }
+ }
+ Assert.assertNotNull(assignment);
+
+ Expression left = assignment.getLeftHandSide();
+ Assert.assertNotNull(left);
+ Assert.assertTrue(left instanceof FieldAccess);
+ FieldAccess fieldAccess = (FieldAccess) left;
+ SingleVariableAccess singleVariableAccess = fieldAccess.getField();
+ Assert.assertNotNull(singleVariableAccess);
+ VariableDeclaration variableDeclaration = singleVariableAccess
+ .getVariable();
+ Assert.assertNotNull(variableDeclaration);
+ Assert.assertTrue(variableDeclaration instanceof UnresolvedVariableDeclarationFragment);
+
+ Expression right = assignment.getRightHandSide();
+ Assert.assertNotNull(right);
+ Assert.assertTrue(right instanceof UnresolvedItemAccess);
+ UnresolvedItemAccess unresolvedItemAccess = (UnresolvedItemAccess) right;
+ UnresolvedItem unresolvedItem = unresolvedItemAccess.getElement();
+ Assert.assertNotNull(unresolvedItem);
+ Assert.assertTrue(unresolvedItem instanceof UnresolvedVariableDeclarationFragment);
+
+ } catch (Exception e) {
+ Assert.fail(e.getMessage());
+ }
+ }
+}
diff --git a/org.eclipse.gmt.modisco.java.discoverer.tests/src/org/eclipse/gmt/modisco/java/discoverer/tests/messages.properties b/org.eclipse.gmt.modisco.java.discoverer.tests/src/org/eclipse/gmt/modisco/java/discoverer/tests/messages.properties
new file mode 100644
index 000000000..8b0b28e91
--- /dev/null
+++ b/org.eclipse.gmt.modisco.java.discoverer.tests/src/org/eclipse/gmt/modisco/java/discoverer/tests/messages.properties
@@ -0,0 +1,13 @@
+###############################################################################
+# Copyright (c) 2009, 2010 Mia-Software.
+# 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:
+# Gregoire DUPE (Mia-Software) - initial API and implementation
+###############################################################################
+JavaJUnitEMF_113=accept
+JavaJUnitEMF_62=wrong qualified name of the annotation
+JavaJUnitEMF_88=first comment should be a Javadoc
diff --git a/org.eclipse.gmt.modisco.java.discoverer.tests/src/org/eclipse/gmt/modisco/java/discoverer/tests/utils/AbstractDiscoverTest.java b/org.eclipse.gmt.modisco.java.discoverer.tests/src/org/eclipse/gmt/modisco/java/discoverer/tests/utils/AbstractDiscoverTest.java
new file mode 100644
index 000000000..e38a6517f
--- /dev/null
+++ b/org.eclipse.gmt.modisco.java.discoverer.tests/src/org/eclipse/gmt/modisco/java/discoverer/tests/utils/AbstractDiscoverTest.java
@@ -0,0 +1,217 @@
+/*******************************************************************************
+ * Copyright (c) 2010 Mia-Software.
+ * 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:
+ * Fabien Giquel - initial API and implementation
+ * Fabien Giquel (Mia-Software) - Bug 339720 : MoDisco Discoverers (infra + techno) API clean
+ *******************************************************************************/
+package org.eclipse.gmt.modisco.java.discoverer.tests.utils;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.Enumeration;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.Map;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IFolder;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.NullProgressMonitor;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.core.runtime.jobs.Job;
+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.Resource;
+import org.eclipse.emf.ecore.resource.ResourceSet;
+import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
+import org.eclipse.gmt.modisco.infra.discoverymanager.DiscoveryParameter;
+import org.eclipse.gmt.modisco.java.JavaActivator;
+import org.eclipse.gmt.modisco.java.Model;
+import org.eclipse.gmt.modisco.java.actions.DefaultDiscoverer;
+import org.eclipse.gmt.modisco.java.discoverer.tests.Activator;
+import org.eclipse.gmt.modisco.java.internal.actions.DiscoverSimpleJavaModelFromJavaProject;
+import org.eclipse.jdt.core.IClasspathEntry;
+import org.eclipse.jdt.core.IJavaProject;
+import org.eclipse.jdt.core.JavaCore;
+import org.eclipse.jdt.core.JavaModelException;
+import org.eclipse.jdt.launching.JavaRuntime;
+import org.junit.Before;
+import org.osgi.framework.Bundle;
+
+/**
+ * TODO merge with JavaProjectFactory.
+ *
+ *
+ * @deprecated use matching org.eclipse.modisco.x.y.z component
+ */
+@Deprecated
+@SuppressWarnings("deprecation")
+public abstract class AbstractDiscoverTest {
+
+ private Resource resource;
+ private Model model;
+
+ public AbstractDiscoverTest() {
+ super();
+ }
+
+ protected abstract String getTargetProjectName();
+
+ protected abstract String getSourcesReferencePath();
+
+ @Before
+ public void initResource() throws CoreException, IOException,
+ InterruptedException {
+ if (this.resource == null) {
+
+ IProject project = ResourcesPlugin.getWorkspace().getRoot()
+ .getProject(getTargetProjectName());
+ if (project.exists()) {
+ project.delete(true, true, new NullProgressMonitor());
+ }
+ project.create(new NullProgressMonitor());
+ project.open(new NullProgressMonitor());
+ deepCopy(getSourcesReferencePath(), project, "/"); //$NON-NLS-1$
+ IJavaProject javaProject = JavaCore.create(project);
+ addSystemLibraries(javaProject);
+ project.refreshLocal(IResource.DEPTH_INFINITE,
+ new NullProgressMonitor());
+ Job.getJobManager().join(ResourcesPlugin.FAMILY_MANUAL_BUILD, null);
+ Job.getJobManager().join(ResourcesPlugin.FAMILY_AUTO_BUILD, null);
+ Job.getJobManager().join(ResourcesPlugin.FAMILY_MANUAL_REFRESH,
+ null);
+ Job.getJobManager().join(ResourcesPlugin.FAMILY_MANUAL_BUILD, null);
+ loadResource(javaProject);
+ EList<EObject> i = this.resource.getContents();
+ for (Iterator<EObject> iterator = i.iterator(); iterator.hasNext()
+ && this.model == null;) {
+ EObject eobject = iterator.next();
+ if (eobject instanceof Model) {
+ this.model = (Model) eobject;
+ }
+ }
+
+ }
+ }
+
+ private final void addSystemLibraries(final IJavaProject javaProject)
+ throws JavaModelException {
+ IClasspathEntry[] oldEntries = javaProject.getRawClasspath();
+ IClasspathEntry[] newEntries = new IClasspathEntry[oldEntries.length + 1];
+ System.arraycopy(oldEntries, 0, newEntries, 0, oldEntries.length);
+ newEntries[oldEntries.length] = JavaRuntime
+ .getDefaultJREContainerEntry();
+ javaProject.setRawClasspath(newEntries, null);
+ }
+
+ /**
+ * @param path
+ * @param project
+ * @param destinationPath
+ * @throws CoreException
+ * @throws IOException
+ */
+ private void deepCopy(final String path, final IProject project,
+ final String destinationPath) throws CoreException, IOException {
+ // System.out.println("Deep copy: " + path + " -> " + destinationPath);
+ Bundle bundle = Activator.getDefault().getBundle();
+ Enumeration<?> e = bundle.getEntryPaths(path);
+ if (e == null) {
+ try {
+ // System.out.println("Try: " + path + " -> " +
+ // destinationPath);
+ InputStream source = bundle.getEntry(path).openStream();
+ IFile javaFile = project.getFile(destinationPath);
+ if (javaFile.exists()) {
+ javaFile.delete(true, new NullProgressMonitor());
+ }
+ javaFile.create(source, true, new NullProgressMonitor());
+ // System.out.println("Success: " + path + " -> "
+ // + destinationPath);
+ } catch (Exception e1) {
+ Status status2 = new Status(IStatus.ERROR,
+ JavaActivator.PLUGIN_ID, e1.getMessage(), e1);
+ Activator.getDefault().getLog().log(status2);
+ }
+ } else {
+ // System.out.println("Create folder: " + destinationPath);
+ String subDestinationPath = "/"; //$NON-NLS-1$
+ if (!destinationPath.equals("/")) { //$NON-NLS-1$
+ IFolder folder = project.getFolder(destinationPath);
+ if (!folder.exists()) {
+ try {
+ folder.create(true, true, new NullProgressMonitor());
+ } catch (Exception e1) {
+ Status status2 = new Status(IStatus.ERROR,
+ JavaActivator.PLUGIN_ID, e1.getMessage(), e1);
+ Activator.getDefault().getLog().log(status2);
+ }
+ }
+ subDestinationPath = folder.getProjectRelativePath().toString();
+ }
+ while (e.hasMoreElements()) {
+ Object object = e.nextElement();
+ if (object instanceof String) {
+ String subpath = (String) object;
+ if (!subpath.matches(".*/\\.svn/")) { //$NON-NLS-1$
+ String dest = subDestinationPath
+ + subpath.substring(path.length() - 1);
+ deepCopy(subpath, project, dest);
+ }
+ } else {
+ throw new RuntimeException("Unexpected element type"); //$NON-NLS-1$
+ }
+ }
+ }
+
+ }
+
+ protected void loadResource(final IJavaProject javaProject) {
+ DiscoverSimpleJavaModelFromJavaProject discoverer = new DiscoverSimpleJavaModelFromJavaProject() {
+ @Override
+ public Resource getResource(final String resourceName,
+ final IJavaProject javaProject1) {
+ ResourceSet resourceSet = new ResourceSetImpl();
+ Resource localResource = resourceSet.createResource(URI
+ .createURI("file:///" //$NON-NLS-1$
+ + javaProject1.getProject().getLocation()
+ .toString() + "/" + resourceName //$NON-NLS-1$
+ + ".javaxmi")); //$NON-NLS-1$
+ return localResource;
+ }
+ };
+ Map<DiscoveryParameter, Object> parameters = new HashMap<DiscoveryParameter, Object>();
+ parameters.put(DefaultDiscoverer.PARAMETER_SILENT_MODE, true);
+ discoverer.discoverElement(javaProject, parameters);
+
+ this.resource = (Resource) parameters
+ .get(DefaultDiscoverer.PARAMETER_TARGET_RESOURCE);
+ }
+
+ protected Resource getResource() {
+ return this.resource;
+ }
+
+ protected void setResource(final Resource resource) {
+ this.resource = resource;
+ }
+
+ protected Model getModel() {
+ return this.model;
+ }
+
+ protected void setModel(final Model model) {
+ this.model = model;
+ }
+
+} \ No newline at end of file
diff --git a/org.eclipse.gmt.modisco.java.discoverer.tests/src/org/eclipse/gmt/modisco/java/discoverer/tests/utils/JavaProjectFactory.java b/org.eclipse.gmt.modisco.java.discoverer.tests/src/org/eclipse/gmt/modisco/java/discoverer/tests/utils/JavaProjectFactory.java
new file mode 100644
index 000000000..e1fea3553
--- /dev/null
+++ b/org.eclipse.gmt.modisco.java.discoverer.tests/src/org/eclipse/gmt/modisco/java/discoverer/tests/utils/JavaProjectFactory.java
@@ -0,0 +1,181 @@
+/*******************************************************************************
+ * Copyright (c) 2010 Mia-Software.
+ * 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:
+ * Gabriel Barbier (Mia-Software) - initial API and implementation
+ * Fabien Giquel (Mia-Software) - Bug 339720 : MoDisco Discoverers (infra + techno) API clean
+ *******************************************************************************/
+
+package org.eclipse.gmt.modisco.java.discoverer.tests.utils;
+
+import java.io.IOException;
+
+import org.eclipse.core.resources.IFolder;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IProjectDescription;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.resources.IWorkspaceRoot;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.NullProgressMonitor;
+import org.eclipse.core.runtime.OperationCanceledException;
+import org.eclipse.core.runtime.Plugin;
+import org.eclipse.core.runtime.jobs.Job;
+import org.eclipse.gmt.modisco.infra.common.core.internal.utils.FolderUtils;
+import org.eclipse.gmt.modisco.infra.common.core.logging.MoDiscoLogger;
+import org.eclipse.jdt.core.IClasspathEntry;
+import org.eclipse.jdt.core.IJavaProject;
+import org.eclipse.jdt.core.IPackageFragmentRoot;
+import org.eclipse.jdt.core.JavaCore;
+import org.eclipse.jdt.core.JavaModelException;
+import org.eclipse.jdt.launching.JavaRuntime;
+
+/**
+ * @author Gabriel Barbier
+ *
+ *
+ * @deprecated use matching org.eclipse.modisco.x.y.z component
+ */
+@Deprecated
+public class JavaProjectFactory {
+
+ private IProject project;
+ private IJavaProject javaProject;
+ private IPackageFragmentRoot sourceFolder;
+
+ private final String srcPath = "src"; //$NON-NLS-1$
+
+ public JavaProjectFactory(final String projectName) throws CoreException {
+ IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();
+ this.project = root.getProject(projectName);
+ if (!this.project.exists()) {
+ this.project.create(null);
+ this.project.open(null);
+ }
+ this.javaProject = JavaCore.create(this.project);
+ IFolder binFolder = this.createBinFolder();
+ this.setJavaNature();
+ this.javaProject.setRawClasspath(new IClasspathEntry[0], null);
+ this.createOutputFolder(binFolder);
+ this.addSystemLibraries(null);
+
+ this.project.refreshLocal(IResource.DEPTH_INFINITE, null);
+ }
+
+ public IJavaProject getJavaProject() {
+ return this.javaProject;
+ }
+
+ public void populateSourceFolder(final String src, Plugin plugin)
+ throws CoreException {
+ if (this.sourceFolder == null) {
+ this.sourceFolder = createSourceFolder();
+ }
+
+ try {
+ FolderUtils.copyFolderFromBundle(src, plugin,
+ "/" + this.srcPath, this.project); //$NON-NLS-1$
+ } catch (IOException e) {
+ MoDiscoLogger.logError(e, plugin);
+ }
+
+ // refresh will perform also the compilation ...
+ this.project.refreshLocal(IResource.DEPTH_INFINITE,
+ new NullProgressMonitor());
+ try {
+ Job.getJobManager().join(ResourcesPlugin.FAMILY_MANUAL_BUILD,
+ new NullProgressMonitor());
+ Job.getJobManager().join(ResourcesPlugin.FAMILY_AUTO_BUILD,
+ new NullProgressMonitor());
+ Job.getJobManager().join(ResourcesPlugin.FAMILY_MANUAL_REFRESH,
+ new NullProgressMonitor());
+ Job.getJobManager().join(ResourcesPlugin.FAMILY_MANUAL_BUILD,
+ new NullProgressMonitor());
+ } catch (OperationCanceledException e) {
+ MoDiscoLogger.logError(e, plugin);
+ } catch (InterruptedException e) {
+ MoDiscoLogger.logError(e, plugin);
+ }
+
+ }
+
+ public void dispose() throws CoreException {
+ this.project.delete(true, true, null);
+ this.project.getParent().refreshLocal(IResource.DEPTH_INFINITE, null);
+ }
+
+ private final IFolder createBinFolder() throws CoreException {
+ IFolder binFolder = this.project.getFolder("bin"); //$NON-NLS-1$
+ if (!binFolder.exists()) {
+ binFolder.create(false, true, null);
+ }
+ return binFolder;
+ }
+
+ private final void setJavaNature() throws CoreException {
+ IProjectDescription description = this.project.getDescription();
+ description.setNatureIds(new String[] { JavaCore.NATURE_ID });
+ this.project.setDescription(description, null);
+ }
+
+ private final void createOutputFolder(final IFolder binFolder)
+ throws JavaModelException {
+ IPath outputLocation = binFolder.getFullPath();
+ this.javaProject.setOutputLocation(outputLocation, null);
+ }
+
+ private final IPackageFragmentRoot createSourceFolder()
+ throws CoreException {
+ IFolder folder = this.project.getFolder(this.srcPath);
+ if (!folder.exists()) {
+ folder.create(false, true, null);
+ }
+ IPackageFragmentRoot root = this.javaProject
+ .getPackageFragmentRoot(folder);
+
+ IClasspathEntry[] oldEntries = this.javaProject.getRawClasspath();
+ IClasspathEntry[] newEntries = new IClasspathEntry[oldEntries.length + 1];
+ System.arraycopy(oldEntries, 0, newEntries, 0, oldEntries.length);
+ newEntries[oldEntries.length] = JavaCore.newSourceEntry(root.getPath());
+ this.javaProject.setRawClasspath(newEntries, null);
+ return root;
+ }
+
+ private final void addSystemLibraries(String vmId)
+ throws JavaModelException {
+ IClasspathEntry[] oldEntries = this.javaProject.getRawClasspath();
+ IClasspathEntry[] newEntries = new IClasspathEntry[oldEntries.length + 1];
+ System.arraycopy(oldEntries, 0, newEntries, 0, oldEntries.length);
+ if (vmId == null) {
+ newEntries[oldEntries.length] = JavaRuntime
+ .getDefaultJREContainerEntry();
+ } else {
+ newEntries[oldEntries.length] = JavaCore
+ .newContainerEntry(JavaRuntime.newJREContainerPath(vmId,
+ vmId));
+ }
+ this.javaProject.setRawClasspath(newEntries, null);
+ }
+
+ /**
+ * when a java project try to set an unbound vm for its execution
+ * environment. For instance, if it try to use a jvm 1.6 and there is only
+ * an install of jvm 1.5
+ *
+ * @throws CoreException
+ */
+ public void setExecutionEnvironmentWithUnboundVm() throws CoreException {
+ IPath oldOutput = this.javaProject.getOutputLocation();
+ this.javaProject.setRawClasspath(new IClasspathEntry[0], null);
+ this.createSourceFolder();
+ this.javaProject.setOutputLocation(oldOutput, null);
+ this.addSystemLibraries("bug328143"); //$NON-NLS-1$
+ this.project.refreshLocal(IResource.DEPTH_INFINITE, null);
+ }
+
+}
diff --git a/org.eclipse.gmt.modisco.java.discoverer.tests/workspace/bug312080/src/x/y/myClass.java b/org.eclipse.gmt.modisco.java.discoverer.tests/workspace/bug312080/src/x/y/myClass.java
new file mode 100644
index 000000000..02ebcad61
--- /dev/null
+++ b/org.eclipse.gmt.modisco.java.discoverer.tests/workspace/bug312080/src/x/y/myClass.java
@@ -0,0 +1,9 @@
+package x.y;
+
+public class myClass{
+
+ public myClass() {
+ this.x = x;
+ }
+}
+
diff --git a/org.eclipse.gmt.modisco.java.discoverer.tests/workspace/bug318469/src/annotations/AnnotatedField.java b/org.eclipse.gmt.modisco.java.discoverer.tests/workspace/bug318469/src/annotations/AnnotatedField.java
new file mode 100644
index 000000000..8dfba3b76
--- /dev/null
+++ b/org.eclipse.gmt.modisco.java.discoverer.tests/workspace/bug318469/src/annotations/AnnotatedField.java
@@ -0,0 +1,27 @@
+/*******************************************************************************
+ * Copyright (c) 2010 Mia-Software.
+ * 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:
+ * Fabien Giquel - initial API and implementation
+ *******************************************************************************/
+package annotations;
+
+import java.util.List;
+
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlElements;
+
+public class AnnotatedField {
+
+
+ private static final long serialVersionUID = 1L;
+
+ @XmlElements({
+ @XmlElement(name="XXX", type=AnnotatedField.class)
+ })
+ private List<Object> objects;
+}
diff --git a/org.eclipse.gmt.modisco.java.discoverer.tests/workspace/bug318631/src/annotations/AnnotatedField.java b/org.eclipse.gmt.modisco.java.discoverer.tests/workspace/bug318631/src/annotations/AnnotatedField.java
new file mode 100644
index 000000000..8dfba3b76
--- /dev/null
+++ b/org.eclipse.gmt.modisco.java.discoverer.tests/workspace/bug318631/src/annotations/AnnotatedField.java
@@ -0,0 +1,27 @@
+/*******************************************************************************
+ * Copyright (c) 2010 Mia-Software.
+ * 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:
+ * Fabien Giquel - initial API and implementation
+ *******************************************************************************/
+package annotations;
+
+import java.util.List;
+
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlElements;
+
+public class AnnotatedField {
+
+
+ private static final long serialVersionUID = 1L;
+
+ @XmlElements({
+ @XmlElement(name="XXX", type=AnnotatedField.class)
+ })
+ private List<Object> objects;
+}
diff --git a/org.eclipse.gmt.modisco.java.discoverer.tests/workspace/bug318631/src/anonymousclass/IBug318631.java b/org.eclipse.gmt.modisco.java.discoverer.tests/workspace/bug318631/src/anonymousclass/IBug318631.java
new file mode 100644
index 000000000..928cadd1b
--- /dev/null
+++ b/org.eclipse.gmt.modisco.java.discoverer.tests/workspace/bug318631/src/anonymousclass/IBug318631.java
@@ -0,0 +1,20 @@
+/*
+ * Copyright (c) 2010 Mia-Software.
+ * 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:
+ * Gabriel Barbier (Mia-Software) - initial API and implementation
+ */
+package anonymousclass;
+
+/**
+ * @author GBarbier
+ *
+ */
+public interface IBug318631 {
+
+ public void testBug318631(String parameter);
+}
diff --git a/org.eclipse.gmt.modisco.java.discoverer.tests/workspace/bug318631/src/anonymousclass/RootClass.java b/org.eclipse.gmt.modisco.java.discoverer.tests/workspace/bug318631/src/anonymousclass/RootClass.java
new file mode 100644
index 000000000..58680086d
--- /dev/null
+++ b/org.eclipse.gmt.modisco.java.discoverer.tests/workspace/bug318631/src/anonymousclass/RootClass.java
@@ -0,0 +1,28 @@
+/*
+ * Copyright (c) 2010 Mia-Software.
+ * 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:
+ * Gabriel Barbier (Mia-Software) - initial API and implementation
+ */
+package anonymousclass;
+
+/**
+ * @author GBarbier
+ *
+ */
+public class RootClass {
+
+ public void aMethod() {
+ IBug318631 variable = new IBug318631() {
+
+ @Override
+ public void testBug318631(String parameter) {
+
+ }
+ };
+ }
+}
diff --git a/org.eclipse.gmt.modisco.java.discoverer.tests/workspace/bug318631/src/supercontructorinvocation/Child.java b/org.eclipse.gmt.modisco.java.discoverer.tests/workspace/bug318631/src/supercontructorinvocation/Child.java
new file mode 100644
index 000000000..623b092e8
--- /dev/null
+++ b/org.eclipse.gmt.modisco.java.discoverer.tests/workspace/bug318631/src/supercontructorinvocation/Child.java
@@ -0,0 +1,26 @@
+/*
+ * Copyright (c) 2010 Mia-Software.
+ * 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:
+ * Gabriel Barbier (Mia-Software) - initial API and implementation
+ */
+package supercontructorinvocation;
+
+/**
+ * @author GBarbier
+ *
+ */
+public class Child extends Parent {
+
+ /**
+ * @param name
+ */
+ public Child(String name) {
+ super(name);
+ }
+
+}
diff --git a/org.eclipse.gmt.modisco.java.discoverer.tests/workspace/bug318631/src/supercontructorinvocation/Parent.java b/org.eclipse.gmt.modisco.java.discoverer.tests/workspace/bug318631/src/supercontructorinvocation/Parent.java
new file mode 100644
index 000000000..9f1d203d9
--- /dev/null
+++ b/org.eclipse.gmt.modisco.java.discoverer.tests/workspace/bug318631/src/supercontructorinvocation/Parent.java
@@ -0,0 +1,22 @@
+/*
+ * Copyright (c) 2010 Mia-Software.
+ * 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:
+ * Gabriel Barbier (Mia-Software) - initial API and implementation
+ */
+package supercontructorinvocation;
+
+/**
+ * @author GBarbier
+ *
+ */
+public class Parent {
+
+ public Parent(String name) {
+
+ }
+}
diff --git a/org.eclipse.gmt.modisco.java.discoverer.tests/workspace/bug326944/src/supermethodinvocation/Child.java b/org.eclipse.gmt.modisco.java.discoverer.tests/workspace/bug326944/src/supermethodinvocation/Child.java
new file mode 100644
index 000000000..a25370714
--- /dev/null
+++ b/org.eclipse.gmt.modisco.java.discoverer.tests/workspace/bug326944/src/supermethodinvocation/Child.java
@@ -0,0 +1,20 @@
+/*
+ * Copyright (c) 2010 Mia-Software.
+ * 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:
+ * Gabriel Barbier (Mia-Software) - initial API and implementation
+ */
+package supermethodinvocation;
+
+public class Child extends Parent {
+
+ public void aMethod() {
+ Child.super.aMethod();
+
+ this.aMethod();
+ }
+}
diff --git a/org.eclipse.gmt.modisco.java.discoverer.tests/workspace/bug326944/src/supermethodinvocation/Parent.java b/org.eclipse.gmt.modisco.java.discoverer.tests/workspace/bug326944/src/supermethodinvocation/Parent.java
new file mode 100644
index 000000000..a404f1692
--- /dev/null
+++ b/org.eclipse.gmt.modisco.java.discoverer.tests/workspace/bug326944/src/supermethodinvocation/Parent.java
@@ -0,0 +1,18 @@
+/*
+ * Copyright (c) 2010 Mia-Software.
+ * 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:
+ * Gabriel Barbier (Mia-Software) - initial API and implementation
+ */
+package supermethodinvocation;
+
+public class Parent {
+
+ public void aMethod() {
+
+ }
+}
diff --git a/org.eclipse.gmt.modisco.java.discoverer.tests/workspace/bug329423/.classpath b/org.eclipse.gmt.modisco.java.discoverer.tests/workspace/bug329423/.classpath
new file mode 100644
index 000000000..789484af6
--- /dev/null
+++ b/org.eclipse.gmt.modisco.java.discoverer.tests/workspace/bug329423/.classpath
@@ -0,0 +1,6 @@
+<?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="output" path="bin"/>
+</classpath>
diff --git a/org.eclipse.gmt.modisco.java.discoverer.tests/workspace/bug329423/.project b/org.eclipse.gmt.modisco.java.discoverer.tests/workspace/bug329423/.project
new file mode 100644
index 000000000..23b637b69
--- /dev/null
+++ b/org.eclipse.gmt.modisco.java.discoverer.tests/workspace/bug329423/.project
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>bug329423</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
diff --git a/org.eclipse.gmt.modisco.java.discoverer.tests/workspace/bug329423/src/comments/IsolatedComment.java b/org.eclipse.gmt.modisco.java.discoverer.tests/workspace/bug329423/src/comments/IsolatedComment.java
new file mode 100644
index 000000000..1d7dc4eeb
--- /dev/null
+++ b/org.eclipse.gmt.modisco.java.discoverer.tests/workspace/bug329423/src/comments/IsolatedComment.java
@@ -0,0 +1,23 @@
+/*******************************************************************************
+ * Copyright (c) 2010 Mia-Software.
+ * 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:
+ * Fabien Giquel - initial API and implementation
+ *******************************************************************************/
+package comments;
+
+public class IsolatedComment {
+
+ public static void main(String[] args) {
+ int i = 1;
+
+ /* a Comment */
+
+ int j = 0;
+ }
+
+}
diff --git a/org.eclipse.gmt.modisco.java.discoverer.tests/workspace/bug338874/src/test.java b/org.eclipse.gmt.modisco.java.discoverer.tests/workspace/bug338874/src/test.java
new file mode 100644
index 000000000..0ad249f3b
--- /dev/null
+++ b/org.eclipse.gmt.modisco.java.discoverer.tests/workspace/bug338874/src/test.java
@@ -0,0 +1,19 @@
+/*
+ * Copyright (c) 2011 Mia-Software.
+ * 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:
+ * Gabriel Barbier (Mia-Software) - initial API and implementation
+ */
+
+public class test {
+
+ public void echo() {
+ String message = "hello";
+ String newMessage = "world";
+ System.out.println(message + newMessage);
+ }
+}
diff --git a/org.eclipse.gmt.modisco.java.discoverer.tests/workspace/test001/.classpath b/org.eclipse.gmt.modisco.java.discoverer.tests/workspace/test001/.classpath
new file mode 100644
index 000000000..789484af6
--- /dev/null
+++ b/org.eclipse.gmt.modisco.java.discoverer.tests/workspace/test001/.classpath
@@ -0,0 +1,6 @@
+<?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="output" path="bin"/>
+</classpath>
diff --git a/org.eclipse.gmt.modisco.java.discoverer.tests/workspace/test001/.project b/org.eclipse.gmt.modisco.java.discoverer.tests/workspace/test001/.project
new file mode 100644
index 000000000..dcaf2250f
--- /dev/null
+++ b/org.eclipse.gmt.modisco.java.discoverer.tests/workspace/test001/.project
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>test001</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
diff --git a/org.eclipse.gmt.modisco.java.discoverer.tests/workspace/test001/.settings/org.eclipse.jdt.core.prefs b/org.eclipse.gmt.modisco.java.discoverer.tests/workspace/test001/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 000000000..ecbe1c808
--- /dev/null
+++ b/org.eclipse.gmt.modisco.java.discoverer.tests/workspace/test001/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,12 @@
+#Wed Jun 24 13:43:08 CEST 2009
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
+org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
+org.eclipse.jdt.core.compiler.compliance=1.6
+org.eclipse.jdt.core.compiler.debug.lineNumber=generate
+org.eclipse.jdt.core.compiler.debug.localVariable=generate
+org.eclipse.jdt.core.compiler.debug.sourceFile=generate
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.6
diff --git a/org.eclipse.gmt.modisco.java.discoverer.tests/workspace/test001/src/annotations/MyAnnotatedClass.java b/org.eclipse.gmt.modisco.java.discoverer.tests/workspace/test001/src/annotations/MyAnnotatedClass.java
new file mode 100644
index 000000000..b0b2bcfc5
--- /dev/null
+++ b/org.eclipse.gmt.modisco.java.discoverer.tests/workspace/test001/src/annotations/MyAnnotatedClass.java
@@ -0,0 +1,34 @@
+/**
+ * Copyright (c) 2009 Mia-Software.
+ * 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:
+ * Gregoire DUPE (Mia-Software)
+ * Romain Dervaux (Mia-Software)
+ */
+package annotations;
+
+import java.util.List;
+
+@Deprecated
+public class MyAnnotatedClass {
+
+ public void myMethod(){
+
+ @SuppressWarnings("unchecked")
+ List<Integer> lst = returnRawList();
+
+ }
+
+ @SuppressWarnings("unchecked")
+ public List returnRawList(){
+ return null;
+ }
+
+ @Override
+ public String toString(){
+ return "";
+ }
+}
diff --git a/org.eclipse.gmt.modisco.java.discoverer.tests/workspace/test001/src/annotations/MyAnnotatedClass2.java b/org.eclipse.gmt.modisco.java.discoverer.tests/workspace/test001/src/annotations/MyAnnotatedClass2.java
new file mode 100644
index 000000000..b83724b6b
--- /dev/null
+++ b/org.eclipse.gmt.modisco.java.discoverer.tests/workspace/test001/src/annotations/MyAnnotatedClass2.java
@@ -0,0 +1,37 @@
+/*******************************************************************************
+ * Copyright (c) 2009 Mia-Software.
+ * 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:
+ * Fabien Giquel (Mia-Software)
+ *******************************************************************************/
+package annotations;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+@Deprecated
+@MyAnnotation(numero = 2, valeur = "ok")
+public class MyAnnotatedClass2 {
+ @Deprecated
+ int j;
+
+ public @interface MonInnerAnnotation {
+ String value() default "ok";
+
+ String maV = "";
+ }
+
+ @Deprecated
+ @MonInnerAnnotation("ok")
+ @MyAnnotation(numero = 2, valeur = "ok")
+ public void MaMethode(java.io.File aFile) {
+ @SuppressWarnings("unused")
+ String v;
+ }
+
+}
diff --git a/org.eclipse.gmt.modisco.java.discoverer.tests/workspace/test001/src/annotations/MyAnnotation.java b/org.eclipse.gmt.modisco.java.discoverer.tests/workspace/test001/src/annotations/MyAnnotation.java
new file mode 100644
index 000000000..db101746e
--- /dev/null
+++ b/org.eclipse.gmt.modisco.java.discoverer.tests/workspace/test001/src/annotations/MyAnnotation.java
@@ -0,0 +1,19 @@
+/*******************************************************************************
+ * Copyright (c) 2009 Mia-Software.
+ * 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:
+ * Fabien Giquel (Mia-Software)
+ *******************************************************************************/
+package annotations;
+
+public @interface MyAnnotation {
+ int numero();
+
+ String valeur();
+
+ boolean monAttributNormal = true;
+}
diff --git a/org.eclipse.gmt.modisco.java.discoverer.tests/workspace/test001/src/bug325108/Bug325108.java b/org.eclipse.gmt.modisco.java.discoverer.tests/workspace/test001/src/bug325108/Bug325108.java
new file mode 100644
index 000000000..818378d7a
--- /dev/null
+++ b/org.eclipse.gmt.modisco.java.discoverer.tests/workspace/test001/src/bug325108/Bug325108.java
@@ -0,0 +1,7 @@
+package bug325108;
+
+import com.mia.core.console.Console;
+
+public class Bug325108 {
+ private Console console = /* console */Console.NULL_CONSOLE/* end console */;
+}
diff --git a/org.eclipse.gmt.modisco.java.discoverer.tests/workspace/test001/src/classorifaceproxy/README.txt b/org.eclipse.gmt.modisco.java.discoverer.tests/workspace/test001/src/classorifaceproxy/README.txt
new file mode 100644
index 000000000..8d008def8
--- /dev/null
+++ b/org.eclipse.gmt.modisco.java.discoverer.tests/workspace/test001/src/classorifaceproxy/README.txt
@@ -0,0 +1,12 @@
+/*******************************************************************************
+ * Copyright (c) 2009 Mia-Software.
+ * 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:
+ * Gregoire DUPE (Mia-Software)
+ * Romain Dervaux (Mia-Software)
+ *******************************************************************************/
+To check that an interface is created when a proxy to an interface field is created.
diff --git a/org.eclipse.gmt.modisco.java.discoverer.tests/workspace/test001/src/classorifaceproxy/p1/Iface1.java b/org.eclipse.gmt.modisco.java.discoverer.tests/workspace/test001/src/classorifaceproxy/p1/Iface1.java
new file mode 100644
index 000000000..a72cf43fb
--- /dev/null
+++ b/org.eclipse.gmt.modisco.java.discoverer.tests/workspace/test001/src/classorifaceproxy/p1/Iface1.java
@@ -0,0 +1,18 @@
+/**
+ * Copyright (c) 2009 Mia-Software.
+ * 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:
+ * Gregoire DUPE (Mia-Software)
+ * Romain Dervaux (Mia-Software)
+ */
+package classorifaceproxy.p1;
+
+import classorifaceproxy.p2.Iface2;
+
+public interface Iface1 {
+ Iface2 if2 = null;
+
+}
diff --git a/org.eclipse.gmt.modisco.java.discoverer.tests/workspace/test001/src/classorifaceproxy/p2/Iface2.java b/org.eclipse.gmt.modisco.java.discoverer.tests/workspace/test001/src/classorifaceproxy/p2/Iface2.java
new file mode 100644
index 000000000..9f4298614
--- /dev/null
+++ b/org.eclipse.gmt.modisco.java.discoverer.tests/workspace/test001/src/classorifaceproxy/p2/Iface2.java
@@ -0,0 +1,18 @@
+/**
+ * Copyright (c) 2009 Mia-Software.
+ * 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:
+ * Gregoire DUPE (Mia-Software)
+ * Romain Dervaux (Mia-Software)
+ *******************************************************************************/
+package classorifaceproxy.p2;
+
+import classorifaceproxy.p1.Iface1;
+
+public interface Iface2 {
+ Iface1 if1 = null;
+}
diff --git a/org.eclipse.gmt.modisco.java.discoverer.tests/workspace/test001/src/comments/Comments.java b/org.eclipse.gmt.modisco.java.discoverer.tests/workspace/test001/src/comments/Comments.java
new file mode 100644
index 000000000..5f65e89ca
--- /dev/null
+++ b/org.eclipse.gmt.modisco.java.discoverer.tests/workspace/test001/src/comments/Comments.java
@@ -0,0 +1,37 @@
+/**
+ * Copyright (c) 2009 Mia-Software.
+ * 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:
+ * Gregoire DUPE (Mia-Software)
+ * Romain Dervaux (Mia-Software)
+ *******************************************************************************/
+package comments;
+
+
+/**
+ * This class doesn't subclass {@link java.lang.String}
+ * @author me
+ * @see java.lang.String#toString()
+ */
+public class Comments {
+
+ /**
+ * javadoc on field
+ */
+ public String s;
+
+ /**
+ * javadoc on method
+ */
+ public void method(){
+ //in method
+ }
+
+}
+/*
+ * after class
+ */ \ No newline at end of file
diff --git a/org.eclipse.gmt.modisco.java.discoverer.tests/workspace/test001/src/duplicateproxy/DuplicateProxy1.java b/org.eclipse.gmt.modisco.java.discoverer.tests/workspace/test001/src/duplicateproxy/DuplicateProxy1.java
new file mode 100644
index 000000000..71a64ca63
--- /dev/null
+++ b/org.eclipse.gmt.modisco.java.discoverer.tests/workspace/test001/src/duplicateproxy/DuplicateProxy1.java
@@ -0,0 +1,20 @@
+/*******************************************************************************
+ * Copyright (c) 2009 Mia-Software.
+ * 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:
+ * Gregoire DUPE (Mia-Software)
+ * Romain Dervaux (Mia-Software)
+ *******************************************************************************/
+package duplicateproxy;
+
+import java.util.ArrayList;
+
+public class DuplicateProxy1 {
+public static void main(String[] args) {
+ new ArrayList<String>().size();
+}
+}
diff --git a/org.eclipse.gmt.modisco.java.discoverer.tests/workspace/test001/src/duplicateproxy/DuplicateProxy2.java b/org.eclipse.gmt.modisco.java.discoverer.tests/workspace/test001/src/duplicateproxy/DuplicateProxy2.java
new file mode 100644
index 000000000..8b96600f3
--- /dev/null
+++ b/org.eclipse.gmt.modisco.java.discoverer.tests/workspace/test001/src/duplicateproxy/DuplicateProxy2.java
@@ -0,0 +1,20 @@
+/*******************************************************************************
+ * Copyright (c) 2009 Mia-Software.
+ * 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:
+ * Gregoire DUPE (Mia-Software)
+ * Romain Dervaux (Mia-Software)
+ *******************************************************************************/
+package duplicateproxy;
+
+import java.util.ArrayList;
+
+public class DuplicateProxy2 {
+ public static void main(String[] args) {
+ new ArrayList<Integer>().size();
+ }
+}
diff --git a/org.eclipse.gmt.modisco.java.discoverer.tests/workspace/test001/src/duplicateproxy/DuplicateProxy3.java b/org.eclipse.gmt.modisco.java.discoverer.tests/workspace/test001/src/duplicateproxy/DuplicateProxy3.java
new file mode 100644
index 000000000..848a2e8b2
--- /dev/null
+++ b/org.eclipse.gmt.modisco.java.discoverer.tests/workspace/test001/src/duplicateproxy/DuplicateProxy3.java
@@ -0,0 +1,20 @@
+/*******************************************************************************
+ * Copyright (c) 2009 Mia-Software.
+ * 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:
+ * Gregoire DUPE (Mia-Software)
+ * Romain Dervaux (Mia-Software)
+ *******************************************************************************/
+package duplicateproxy;
+
+import java.util.ArrayList;
+
+public class DuplicateProxy3 {
+ public static void main(String[] args) {
+ new ArrayList<Long>().size();
+ }
+}
diff --git a/org.eclipse.gmt.modisco.java.discoverer.tests/workspace/test001/src/duplicateproxy/Readme.txt b/org.eclipse.gmt.modisco.java.discoverer.tests/workspace/test001/src/duplicateproxy/Readme.txt
new file mode 100644
index 000000000..6ad6fb393
--- /dev/null
+++ b/org.eclipse.gmt.modisco.java.discoverer.tests/workspace/test001/src/duplicateproxy/Readme.txt
@@ -0,0 +1,13 @@
+/*******************************************************************************
+ * Copyright (c) 2009 Mia-Software.
+ * 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:
+ * Gregoire DUPE (Mia-Software)
+ * Romain Dervaux (Mia-Software)
+ *******************************************************************************/
+To check the number of proxy created for ArrayList.size().
+Checked by the model validator. \ No newline at end of file
diff --git a/org.eclipse.gmt.modisco.java.discoverer.tests/workspace/test001/src/enumerations/p1/EnumUse.java b/org.eclipse.gmt.modisco.java.discoverer.tests/workspace/test001/src/enumerations/p1/EnumUse.java
new file mode 100644
index 000000000..82eb38c6f
--- /dev/null
+++ b/org.eclipse.gmt.modisco.java.discoverer.tests/workspace/test001/src/enumerations/p1/EnumUse.java
@@ -0,0 +1,25 @@
+/*******************************************************************************
+ * Copyright (c) 2009 Mia-Software.
+ * 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:
+ * Gregoire DUPE (Mia-Software)
+ * Romain Dervaux (Mia-Software)
+ *******************************************************************************/
+package enumerations.p1;
+
+import enumerations.Planet;
+
+public class EnumUse {
+
+ /**
+ * @param args
+ */
+ public static void main(String[] args) {
+ double ux = Planet.URANUS.x;
+ }
+
+}
diff --git a/org.eclipse.gmt.modisco.java.discoverer.tests/workspace/test001/src/enumerations/p1/MyEnumeration.java b/org.eclipse.gmt.modisco.java.discoverer.tests/workspace/test001/src/enumerations/p1/MyEnumeration.java
new file mode 100644
index 000000000..26f8754f1
--- /dev/null
+++ b/org.eclipse.gmt.modisco.java.discoverer.tests/workspace/test001/src/enumerations/p1/MyEnumeration.java
@@ -0,0 +1,25 @@
+/*******************************************************************************
+ * Copyright (c) 2009 Mia-Software.
+ * 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:
+ * Fabien Giquel (Mia-Software)
+ *******************************************************************************/
+package enumerations.p1;
+
+import java.util.*;
+
+public enum MyEnumeration {
+
+ MA_CONSTANTE_ENUM1("Element", "monLibelle"),
+ MA_CONSTANTE_ENUM2("Document", "monLibelle"),
+ MA_CONSTANTE_ENUM3("Workzone", "monLibelle"),
+ MA_CONSTANTE_ENUM4("Box", "monLibelle");
+ MyEnumeration(String code, String libelle) {
+ }
+
+
+}
diff --git a/org.eclipse.gmt.modisco.java.discoverer.tests/workspace/test001/src/initializer/InitializerTest.java b/org.eclipse.gmt.modisco.java.discoverer.tests/workspace/test001/src/initializer/InitializerTest.java
new file mode 100644
index 000000000..b0ba79041
--- /dev/null
+++ b/org.eclipse.gmt.modisco.java.discoverer.tests/workspace/test001/src/initializer/InitializerTest.java
@@ -0,0 +1,21 @@
+/*******************************************************************************
+ * Copyright (c) 2009 Mia-Software.
+ * 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:
+ * Gregoire DUPE (Mia-Software)
+ * Romain Dervaux (Mia-Software)
+ *******************************************************************************/
+package initializer;
+
+public class InitializerTest {
+ static {
+
+ }
+ {
+
+ }
+}
diff --git a/org.eclipse.gmt.modisco.java.discoverer.tests/workspace/test001/src/initializer/Readme.txt b/org.eclipse.gmt.modisco.java.discoverer.tests/workspace/test001/src/initializer/Readme.txt
new file mode 100644
index 000000000..d2214d97e
--- /dev/null
+++ b/org.eclipse.gmt.modisco.java.discoverer.tests/workspace/test001/src/initializer/Readme.txt
@@ -0,0 +1,12 @@
+/*******************************************************************************
+ * Copyright (c) 2009 Mia-Software.
+ * 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:
+ * Gregoire DUPE (Mia-Software)
+ * Romain Dervaux (Mia-Software)
+ *******************************************************************************/
+To check initializer discovery. \ No newline at end of file
diff --git a/org.eclipse.gmt.modisco.java.discoverer.tests/workspace/test001/src/innerclass/InnerClass.java b/org.eclipse.gmt.modisco.java.discoverer.tests/workspace/test001/src/innerclass/InnerClass.java
new file mode 100644
index 000000000..3718b437a
--- /dev/null
+++ b/org.eclipse.gmt.modisco.java.discoverer.tests/workspace/test001/src/innerclass/InnerClass.java
@@ -0,0 +1,26 @@
+/*******************************************************************************
+ * Copyright (c) 2009 Mia-Software.
+ * 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:
+ * Gregoire DUPE (Mia-Software)
+ * Romain Dervaux (Mia-Software)
+ *******************************************************************************/
+package innerclass;
+
+public class InnerClass {
+ public class InnerClass2 {
+ public class InnerClass3 {
+ public class InnerClass4 {
+ public class InnerClass5 {
+
+ }
+
+ }
+ }
+ }
+}
+
diff --git a/org.eclipse.gmt.modisco.java.discoverer.tests/workspace/test001/src/innerclass/InnerClassB.java b/org.eclipse.gmt.modisco.java.discoverer.tests/workspace/test001/src/innerclass/InnerClassB.java
new file mode 100644
index 000000000..a6a4d1ed1
--- /dev/null
+++ b/org.eclipse.gmt.modisco.java.discoverer.tests/workspace/test001/src/innerclass/InnerClassB.java
@@ -0,0 +1,26 @@
+/*******************************************************************************
+ * Copyright (c) 2009 Mia-Software.
+ * 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:
+ * Gregoire DUPE (Mia-Software)
+ * Romain Dervaux (Mia-Software)
+ *******************************************************************************/
+package innerclass;
+
+import innerclass.InnerClass.InnerClass2;
+import innerclass.InnerClass.InnerClass2.InnerClass3;
+
+public class InnerClassB {
+ public static void main(String[] args) {
+ InnerClass ic = new InnerClass();
+ InnerClass2 ic2 = ic.new InnerClass2();
+ InnerClass.InnerClass2 ic22 = ic.new InnerClass2();
+ innerclass.InnerClass.InnerClass2 ic222 = ic.new InnerClass2();
+ InnerClass2.InnerClass3 ic3 = ic2.new InnerClass3();
+ }
+}
+
diff --git a/org.eclipse.gmt.modisco.java.discoverer.tests/workspace/test001/src/methodefromanonymousclassdeclaration/AnonymousClass.java b/org.eclipse.gmt.modisco.java.discoverer.tests/workspace/test001/src/methodefromanonymousclassdeclaration/AnonymousClass.java
new file mode 100644
index 000000000..d4f8e4a5f
--- /dev/null
+++ b/org.eclipse.gmt.modisco.java.discoverer.tests/workspace/test001/src/methodefromanonymousclassdeclaration/AnonymousClass.java
@@ -0,0 +1,23 @@
+/*******************************************************************************
+ * Copyright (c) 2009 Mia-Software.
+ * 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:
+ * Gregoire DUPE (Mia-Software)
+ * Romain Dervaux (Mia-Software)
+ *******************************************************************************/
+package methodefromanonymousclassdeclaration;
+
+public class AnonymousClass {
+ public static void main(String[] args) {
+ new Thread() {
+ @Override
+ public void run() {
+ System.out.println("Hello");
+ }
+ };
+ }
+}
diff --git a/org.eclipse.gmt.modisco.java.discoverer.tests/workspace/test001/src/modifiers/Modifiers.java b/org.eclipse.gmt.modisco.java.discoverer.tests/workspace/test001/src/modifiers/Modifiers.java
new file mode 100644
index 000000000..a7eb7082b
--- /dev/null
+++ b/org.eclipse.gmt.modisco.java.discoverer.tests/workspace/test001/src/modifiers/Modifiers.java
@@ -0,0 +1,20 @@
+/*******************************************************************************
+ * Copyright (c) 2009 Mia-Software.
+ * 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:
+ * Gregoire DUPE (Mia-Software)
+ * Romain Dervaux (Mia-Software)
+ *******************************************************************************/
+package modifiers;
+
+public abstract class Modifiers {
+
+ private static transient volatile int f;
+
+ protected final synchronized native int method();
+
+}
diff --git a/org.eclipse.gmt.modisco.java.discoverer.tests/workspace/test001/src/packageaccess/PackageAccess.java b/org.eclipse.gmt.modisco.java.discoverer.tests/workspace/test001/src/packageaccess/PackageAccess.java
new file mode 100644
index 000000000..10e6b2e88
--- /dev/null
+++ b/org.eclipse.gmt.modisco.java.discoverer.tests/workspace/test001/src/packageaccess/PackageAccess.java
@@ -0,0 +1,17 @@
+/*******************************************************************************
+ * Copyright (c) 2009 Mia-Software.
+ * 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:
+ * Gregoire DUPE (Mia-Software)
+ * Romain Dervaux (Mia-Software)
+ *******************************************************************************/
+package packageaccess;
+
+public class PackageAccess
+ implements javax.swing.text.html.parser.DTDConstants {
+
+}
diff --git a/org.eclipse.gmt.modisco.java.discoverer.tests/workspace/test001/src/parameterizedtype/ParameterizedType.java b/org.eclipse.gmt.modisco.java.discoverer.tests/workspace/test001/src/parameterizedtype/ParameterizedType.java
new file mode 100644
index 000000000..b5fe38470
--- /dev/null
+++ b/org.eclipse.gmt.modisco.java.discoverer.tests/workspace/test001/src/parameterizedtype/ParameterizedType.java
@@ -0,0 +1,36 @@
+/*******************************************************************************
+ * Copyright (c) 2009 Mia-Software.
+ * 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:
+ * Gregoire DUPE (Mia-Software)
+ * Romain Dervaux (Mia-Software)
+ *******************************************************************************/
+package parameterizedtype;
+
+import javax.lang.model.type.ArrayType;
+
+
+public class ParameterizedType<P extends String> {
+ public <X extends String> P first(X x) {
+ {
+ return null;
+ }
+ }
+
+ public <X extends Integer> P first(X x) {
+ {
+ return null;
+ }
+ }
+
+ public <X extends Integer & ArrayType, Y extends String> P second(X x) {
+ {
+ return null;
+ }
+ }
+}
+
diff --git a/org.eclipse.gmt.modisco.java.discoverer.tests/workspace/test001/src/parameterizedtype/ParameterizedType2.java b/org.eclipse.gmt.modisco.java.discoverer.tests/workspace/test001/src/parameterizedtype/ParameterizedType2.java
new file mode 100644
index 000000000..053e248df
--- /dev/null
+++ b/org.eclipse.gmt.modisco.java.discoverer.tests/workspace/test001/src/parameterizedtype/ParameterizedType2.java
@@ -0,0 +1,28 @@
+/*******************************************************************************
+ * Copyright (c) 2009 Mia-Software.
+ * 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:
+ * Fabien Giquel (Mia-Software)
+ *******************************************************************************/
+package parameterizedtype;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+public class ParameterizedType2<T1 extends Thread & List, T2 extends List<? extends Boolean>>
+ extends ArrayList {
+ private Map<String, ? super String> aMap = null;
+
+ public <T3> void MaMethodeParametree(T2 aT, List<? extends T1> aP) {
+ System.out.println(aT.toString());
+ }
+
+ public void MaMethodeParametree2(List<?> aP) {
+ }
+
+}
diff --git a/org.eclipse.gmt.modisco.java.discoverer.tests/workspace/test001/src/parameterizedtypeinmethoddecl/Class1.java b/org.eclipse.gmt.modisco.java.discoverer.tests/workspace/test001/src/parameterizedtypeinmethoddecl/Class1.java
new file mode 100644
index 000000000..a74405835
--- /dev/null
+++ b/org.eclipse.gmt.modisco.java.discoverer.tests/workspace/test001/src/parameterizedtypeinmethoddecl/Class1.java
@@ -0,0 +1,21 @@
+/*******************************************************************************
+ * Copyright (c) 2009 Mia-Software.
+ * 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:
+ * Gregoire DUPE (Mia-Software)
+ * Romain Dervaux (Mia-Software)
+ *******************************************************************************/
+package parameterizedtypeinmethoddecl;
+
+import java.util.HashMap;
+
+public class Class1 {
+ public <R, P> R accept(HashMap<R, P> v, P p)
+ {
+ return v.keySet().iterator().next();
+ }
+}
diff --git a/org.eclipse.gmt.modisco.java.discoverer.tests/workspace/test001/src/proxyField/p1/PFClass1.java b/org.eclipse.gmt.modisco.java.discoverer.tests/workspace/test001/src/proxyField/p1/PFClass1.java
new file mode 100644
index 000000000..38d43ed51
--- /dev/null
+++ b/org.eclipse.gmt.modisco.java.discoverer.tests/workspace/test001/src/proxyField/p1/PFClass1.java
@@ -0,0 +1,24 @@
+/*******************************************************************************
+ * Copyright (c) 2009 Mia-Software.
+ * 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:
+ * Gregoire DUPE (Mia-Software)
+ * Romain Dervaux (Mia-Software)
+ *******************************************************************************/
+package proxyField.p1;
+
+import proxyField.p2.PFClass2;
+
+public class PFClass1 {
+ public String s1, s2;
+
+ public static void main(String[] args) {
+ new PFClass2().b1 = "hello";
+ new PFClass2().b2 = "hello";
+ }
+
+}
diff --git a/org.eclipse.gmt.modisco.java.discoverer.tests/workspace/test001/src/proxyField/p2/PFClass2.java b/org.eclipse.gmt.modisco.java.discoverer.tests/workspace/test001/src/proxyField/p2/PFClass2.java
new file mode 100644
index 000000000..267c61803
--- /dev/null
+++ b/org.eclipse.gmt.modisco.java.discoverer.tests/workspace/test001/src/proxyField/p2/PFClass2.java
@@ -0,0 +1,25 @@
+/*******************************************************************************
+ * Copyright (c) 2009 Mia-Software.
+ * 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:
+ * Gregoire DUPE (Mia-Software)
+ * Romain Dervaux (Mia-Software)
+ *******************************************************************************/
+package proxyField.p2;
+
+import proxyField.p1.PFClass1;
+
+public class PFClass2 {
+ public String a1, a2;
+ public String b1, b2;
+ public String c1, c2;
+
+ public static void main(String[] args) {
+ new PFClass1().s1 = "hello";
+ new PFClass1().s2 = "hello";
+ }
+} \ No newline at end of file
diff --git a/org.eclipse.gmt.modisco.java.discoverer.tests/workspace/test001/src/proxyparameters/Readme.txt b/org.eclipse.gmt.modisco.java.discoverer.tests/workspace/test001/src/proxyparameters/Readme.txt
new file mode 100644
index 000000000..67043dc05
--- /dev/null
+++ b/org.eclipse.gmt.modisco.java.discoverer.tests/workspace/test001/src/proxyparameters/Readme.txt
@@ -0,0 +1,14 @@
+/*******************************************************************************
+ * Copyright (c) 2009 Mia-Software.
+ * 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:
+ * Gregoire DUPE (Mia-Software)
+ * Romain Dervaux (Mia-Software)
+ *******************************************************************************/
+To check that parameters that are created as proxy before to
+be discovered, are set as non-proxy at the end of the discover
+execution. \ No newline at end of file
diff --git a/org.eclipse.gmt.modisco.java.discoverer.tests/workspace/test001/src/proxyparameters/p1/ProxyParameters1.java b/org.eclipse.gmt.modisco.java.discoverer.tests/workspace/test001/src/proxyparameters/p1/ProxyParameters1.java
new file mode 100644
index 000000000..970e3e195
--- /dev/null
+++ b/org.eclipse.gmt.modisco.java.discoverer.tests/workspace/test001/src/proxyparameters/p1/ProxyParameters1.java
@@ -0,0 +1,23 @@
+/*******************************************************************************
+ * Copyright (c) 2009 Mia-Software.
+ * 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:
+ * Gregoire DUPE (Mia-Software)
+ * Romain Dervaux (Mia-Software)
+ *******************************************************************************/
+package proxyparameters.p1;
+
+import proxyparameters.p2.ProxyParameters2;
+
+public class ProxyParameters1 {
+ public static void main(String[] args) {
+ new ProxyParameters2().test(0);
+ }
+ public void test(int param1) {
+
+ }
+}
diff --git a/org.eclipse.gmt.modisco.java.discoverer.tests/workspace/test001/src/proxyparameters/p2/ProxyParameters2.java b/org.eclipse.gmt.modisco.java.discoverer.tests/workspace/test001/src/proxyparameters/p2/ProxyParameters2.java
new file mode 100644
index 000000000..acdc75ad2
--- /dev/null
+++ b/org.eclipse.gmt.modisco.java.discoverer.tests/workspace/test001/src/proxyparameters/p2/ProxyParameters2.java
@@ -0,0 +1,18 @@
+/*******************************************************************************
+ * Copyright (c) 2009 Mia-Software.
+ * 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:
+ * Gregoire DUPE (Mia-Software)
+ * Romain Dervaux (Mia-Software)
+ *******************************************************************************/
+package proxyparameters.p2;
+
+public class ProxyParameters2 {
+ public void test(int param1) {
+
+ }
+}
diff --git a/org.eclipse.gmt.modisco.java.discoverer.tests/workspace/test001/src/resolvebinding/Readme.txt b/org.eclipse.gmt.modisco.java.discoverer.tests/workspace/test001/src/resolvebinding/Readme.txt
new file mode 100644
index 000000000..df75174ae
--- /dev/null
+++ b/org.eclipse.gmt.modisco.java.discoverer.tests/workspace/test001/src/resolvebinding/Readme.txt
@@ -0,0 +1,40 @@
+/*******************************************************************************
+ * Copyright (c) 2009 Mia-Software.
+ * 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:
+ * Gregoire DUPE (Mia-Software)
+ * Romain Dervaux (Mia-Software)
+ *******************************************************************************/
+This data set has be created to produce the following error :
+
+--------------------
+eclipse.buildId=unknown
+java.version=1.6.0_13
+java.vendor=Sun Microsystems Inc.
+BootLoader constants: OS=win32, ARCH=x86, WS=win32, NL=fr_FR
+Framework arguments: -product org.eclipse.sdk.ide
+Command-line arguments: -product org.eclipse.sdk.ide -data C:\gregoire_dupe\wokspaces\modisco_java\org.eclipse.gmt.modisco.java.discoverer.tests\workspace -dev file:C:/gregoire_dupe/wokspaces/modisco_java/.metadata/.plugins/org.eclipse.pde.core/junit_workspace/dev.properties -debug C:\gregoire_dupe\wokspaces\modisco_java\.metadata\.plugins\org.eclipse.pde.core\junit_workspace/.options -os win32 -ws win32 -arch x86
+
+
+Warning
+Wed Jul 15 12:26:49 CEST 2009
+Failed to compute qualifiedName:resolvebinding.p1.ResolveBindind1.m1(<<null>>) ; searchedQualifiedName= resolvebinding.p1.ResolveBindind1.SubResolveBinding1.SubResolveBinding1()
+
+java.lang.Exception
+ at org.eclipse.gmt.modisco.java.JavaDiscovererUtils.getNamedElementByQualifiedName(JavaDiscovererUtils.java:191)
+ at org.eclipse.gmt.modisco.java.io.java.binding.BindingManager.searchQNInModel(BindingManager.java:296)
+ at org.eclipse.gmt.modisco.java.io.java.binding.BindingManager.getTarget(BindingManager.java:199)
+ at org.eclipse.gmt.modisco.java.io.java.binding.BindingManager.resolveBindings(BindingManager.java:261)
+ at org.eclipse.gmt.modisco.java.discoverer.cdo.cdo2.JavaReaderCDO2.reset(JavaReaderCDO2.java:20)
+ at org.eclipse.gmt.modisco.java.discoverer.tests.emfstat.JavaReaderEMFStat.readModel(JavaReaderEMFStat.java:89)
+ at org.eclipse.gmt.modisco.java.discoverer.cdo.cdo2.JavaDiscovererCDO2.getJ2SE5ModelFromJavaSource(JavaDiscovererCDO2.java:15)
+ at org.eclipse.gmt.modisco.java.discoverer.tests.emfstat.DiscoverJ2se5ModelFromJavaProjectEMFStat$1.run(DiscoverJ2se5ModelFromJavaProjectEMFStat.java:66)
+ at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55)
+
+
+--------------------
+Happen only with CDO \ No newline at end of file
diff --git a/org.eclipse.gmt.modisco.java.discoverer.tests/workspace/test001/src/resolvebinding/p1/ResolveBindind1.java b/org.eclipse.gmt.modisco.java.discoverer.tests/workspace/test001/src/resolvebinding/p1/ResolveBindind1.java
new file mode 100644
index 000000000..329360c0c
--- /dev/null
+++ b/org.eclipse.gmt.modisco.java.discoverer.tests/workspace/test001/src/resolvebinding/p1/ResolveBindind1.java
@@ -0,0 +1,29 @@
+/*******************************************************************************
+ * Copyright (c) 2009 Mia-Software.
+ * 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:
+ * Gregoire DUPE (Mia-Software)
+ * Romain Dervaux (Mia-Software)
+ *******************************************************************************/
+package resolvebinding.p1;
+
+
+public class ResolveBindind1 {
+
+ public static void main(String[] args) {
+// new ResolveBindind2().new SubResolveBinding2();
+ new ResolveBindind1().new SubResolveBinding1();
+ }
+
+ public void m1(ResolveBindind1 rb2) {
+
+ }
+
+ public class SubResolveBinding1{
+
+ }
+}
diff --git a/org.eclipse.gmt.modisco.java.discoverer.tests/workspace/test001/src/test001/p1/Class1.java b/org.eclipse.gmt.modisco.java.discoverer.tests/workspace/test001/src/test001/p1/Class1.java
new file mode 100644
index 000000000..8c4b73604
--- /dev/null
+++ b/org.eclipse.gmt.modisco.java.discoverer.tests/workspace/test001/src/test001/p1/Class1.java
@@ -0,0 +1,20 @@
+/*******************************************************************************
+ * Copyright (c) 2009 Mia-Software.
+ * 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:
+ * Gregoire DUPE (Mia-Software)
+ * Romain Dervaux (Mia-Software)
+ *******************************************************************************/
+package test001.p1;
+
+import test001.p2.Class2;
+
+public class Class1 {
+ public static void main(String[] args) {
+ Class2 c2 = new Class2();
+ }
+}
diff --git a/org.eclipse.gmt.modisco.java.discoverer.tests/workspace/test001/src/test001/p2/Class2.java b/org.eclipse.gmt.modisco.java.discoverer.tests/workspace/test001/src/test001/p2/Class2.java
new file mode 100644
index 000000000..5e8ae896e
--- /dev/null
+++ b/org.eclipse.gmt.modisco.java.discoverer.tests/workspace/test001/src/test001/p2/Class2.java
@@ -0,0 +1,20 @@
+/*******************************************************************************
+ * Copyright (c) 2009 Mia-Software.
+ * 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:
+ * Gregoire DUPE (Mia-Software)
+ * Romain Dervaux (Mia-Software)
+ *******************************************************************************/
+package test001.p2;
+
+import test001.p1.Class1;
+
+public class Class2 {
+ public static void main(String[] args) {
+ Class1 c2 = new Class1();
+ }
+}
diff --git a/org.eclipse.gmt.modisco.java.discoverer.tests/workspace/test001/src/test002/Class1.java b/org.eclipse.gmt.modisco.java.discoverer.tests/workspace/test001/src/test002/Class1.java
new file mode 100644
index 000000000..72af758a2
--- /dev/null
+++ b/org.eclipse.gmt.modisco.java.discoverer.tests/workspace/test001/src/test002/Class1.java
@@ -0,0 +1,25 @@
+/*******************************************************************************
+ * Copyright (c) 2009 Mia-Software.
+ * 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:
+ * Gregoire DUPE (Mia-Software)
+ * Romain Dervaux (Mia-Software)
+ *******************************************************************************/
+package test002;
+
+import test002.Class2.Class3;
+
+public class Class1 {
+ public static void main(String[] args) {
+ Class2 c2 = new Class2();
+ Class3 c3 = c2.new Class3();
+ }
+
+ public class Class4 {
+
+ }
+}
diff --git a/org.eclipse.gmt.modisco.java.discoverer.tests/workspace/test001/src/test002/Class2.java b/org.eclipse.gmt.modisco.java.discoverer.tests/workspace/test001/src/test002/Class2.java
new file mode 100644
index 000000000..58cd12bcd
--- /dev/null
+++ b/org.eclipse.gmt.modisco.java.discoverer.tests/workspace/test001/src/test002/Class2.java
@@ -0,0 +1,25 @@
+/*******************************************************************************
+ * Copyright (c) 2009 Mia-Software.
+ * 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:
+ * Gregoire DUPE (Mia-Software)
+ * Romain Dervaux (Mia-Software)
+ *******************************************************************************/
+package test002;
+
+import test002.Class1.Class4;
+
+public class Class2 {
+ public static void main(String[] args) {
+ Class1 c1 = new Class1();
+ Class4 c4 = c1.new Class4();
+ }
+
+ public class Class3 {
+
+ }
+}
diff --git a/org.eclipse.gmt.modisco.java.discoverer.tests/workspace/test001/src/test003/Test003.java b/org.eclipse.gmt.modisco.java.discoverer.tests/workspace/test001/src/test003/Test003.java
new file mode 100644
index 000000000..057058333
--- /dev/null
+++ b/org.eclipse.gmt.modisco.java.discoverer.tests/workspace/test001/src/test003/Test003.java
@@ -0,0 +1,18 @@
+/*******************************************************************************
+ * Copyright (c) 2009 Mia-Software.
+ * 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:
+ * Gregoire DUPE (Mia-Software)
+ * Romain Dervaux (Mia-Software)
+ *******************************************************************************/
+package test003;
+public class Test003 {
+ public static void main(String[] args) {
+ String s = new String();
+ String s2 = new String();
+ }
+}
diff --git a/org.eclipse.gmt.modisco.java.discoverer.tests/workspace/test001/src/test004/Test004.java b/org.eclipse.gmt.modisco.java.discoverer.tests/workspace/test001/src/test004/Test004.java
new file mode 100644
index 000000000..8b0e3de1c
--- /dev/null
+++ b/org.eclipse.gmt.modisco.java.discoverer.tests/workspace/test001/src/test004/Test004.java
@@ -0,0 +1,19 @@
+/*******************************************************************************
+ * Copyright (c) 2009 Mia-Software.
+ * 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:
+ * Gregoire DUPE (Mia-Software)
+ * Romain Dervaux (Mia-Software)
+ *******************************************************************************/
+package test004;
+
+public class Test004 {
+ public static void main(String[] args) {
+ java.util.HashMap<java.lang.String, java.lang.Iterable<? extends java.io.File>> x;
+ x = new java.util.HashMap<java.lang.String, java.lang.Iterable<? extends java.io.File>>();
+ }
+}
diff --git a/org.eclipse.gmt.modisco.java.discoverer.tests/workspace/test001/src/unresolved/Unresolved.java b/org.eclipse.gmt.modisco.java.discoverer.tests/workspace/test001/src/unresolved/Unresolved.java
new file mode 100644
index 000000000..3f1f0ff2c
--- /dev/null
+++ b/org.eclipse.gmt.modisco.java.discoverer.tests/workspace/test001/src/unresolved/Unresolved.java
@@ -0,0 +1,27 @@
+/*******************************************************************************
+ * Copyright (c) 2009 Mia-Software.
+ * 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:
+ * Gregoire DUPE (Mia-Software)
+ * Romain Dervaux (Mia-Software)
+ *******************************************************************************/
+package unresolved;
+
+public class Unresolved extends unrPkg1.Bob {
+
+ public Bobette main(BobMan boby) {
+ Bob b = new SuperBob();
+
+ Bobette b2 = b.getBobette();
+
+ if(b > b2){
+ throw new BobException();
+ }
+ return null;
+ }
+
+}
diff --git a/org.eclipse.gmt.modisco.java.discoverer.tests/workspace/test001/src/varargs/VarArgs1.java b/org.eclipse.gmt.modisco.java.discoverer.tests/workspace/test001/src/varargs/VarArgs1.java
new file mode 100644
index 000000000..a1769b1c5
--- /dev/null
+++ b/org.eclipse.gmt.modisco.java.discoverer.tests/workspace/test001/src/varargs/VarArgs1.java
@@ -0,0 +1,31 @@
+/*******************************************************************************
+ * Copyright (c) 2009 Mia-Software.
+ * 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:
+ * Gregoire DUPE (Mia-Software)
+ * Romain Dervaux (Mia-Software)
+ *******************************************************************************/
+package varargs;
+
+public class VarArgs1 {
+
+ public static void main(String[] args) {
+ int passed = 0;
+ int failed = 0;
+ for (String className : args) {
+ try {
+ Class c = Class.forName(className);
+ c.getMethod("test").invoke(c.newInstance());
+ passed++;
+ } catch (Exception ex) {
+ System.out.printf("%s failed: %s%n", className, ex);
+ failed++;
+ }
+ }
+ System.out.printf("passed=%d; failed=%d%n", passed, failed);
+ }
+}
diff --git a/org.eclipse.gmt.modisco.java.discoverer.tests/workspace/test001/src/varargs/VarArgs2.java b/org.eclipse.gmt.modisco.java.discoverer.tests/workspace/test001/src/varargs/VarArgs2.java
new file mode 100644
index 000000000..7a84d2f55
--- /dev/null
+++ b/org.eclipse.gmt.modisco.java.discoverer.tests/workspace/test001/src/varargs/VarArgs2.java
@@ -0,0 +1,30 @@
+/*******************************************************************************
+ * Copyright (c) 2009 Mia-Software.
+ * 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:
+ * Gregoire DUPE (Mia-Software)
+ * Romain Dervaux (Mia-Software)
+ *******************************************************************************/
+package varargs;
+
+import java.text.MessageFormat;
+import java.util.Date;
+
+public class VarArgs2 {
+
+ public static void main(String[] args) {
+ String result = MessageFormat.format(
+ "At {1,time} on {1,date}, there was {2} on planet "
+ + "{0,number,integer}.",
+ 7, new Date(), "a disturbance in the Force");
+
+ }
+
+ public void m1(Object... objects) {
+ int i = objects.length;
+ }
+}

Back to the top