diff options
Diffstat (limited to 'Metrics/Metrics-Calculation/SocialNetwork_plugin')
109 files changed, 12223 insertions, 0 deletions
diff --git a/Metrics/Metrics-Calculation/SocialNetwork_plugin/.classpath b/Metrics/Metrics-Calculation/SocialNetwork_plugin/.classpath new file mode 100644 index 00000000..4f2afbc9 --- /dev/null +++ b/Metrics/Metrics-Calculation/SocialNetwork_plugin/.classpath | |||
@@ -0,0 +1,11 @@ | |||
1 | <?xml version="1.0" encoding="UTF-8"?> | ||
2 | <classpath> | ||
3 | <classpathentry kind="src" path="encore_gen"/> | ||
4 | <classpathentry kind="src" path="queries"/> | ||
5 | <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/> | ||
6 | <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/> | ||
7 | <classpathentry kind="src" path="src"/> | ||
8 | <classpathentry kind="src" path="model"/> | ||
9 | <classpathentry kind="src" path="src-gen"/> | ||
10 | <classpathentry kind="output" path="bin"/> | ||
11 | </classpath> | ||
diff --git a/Metrics/Metrics-Calculation/SocialNetwork_plugin/.project b/Metrics/Metrics-Calculation/SocialNetwork_plugin/.project new file mode 100644 index 00000000..decac49c --- /dev/null +++ b/Metrics/Metrics-Calculation/SocialNetwork_plugin/.project | |||
@@ -0,0 +1,40 @@ | |||
1 | <?xml version="1.0" encoding="UTF-8"?> | ||
2 | <projectDescription> | ||
3 | <name>SocialNetwork_plugin</name> | ||
4 | <comment></comment> | ||
5 | <projects> | ||
6 | </projects> | ||
7 | <buildSpec> | ||
8 | <buildCommand> | ||
9 | <name>org.eclipse.viatra.query.tooling.ui.projectbuilder</name> | ||
10 | <arguments> | ||
11 | </arguments> | ||
12 | </buildCommand> | ||
13 | <buildCommand> | ||
14 | <name>org.eclipse.xtext.ui.shared.xtextBuilder</name> | ||
15 | <arguments> | ||
16 | </arguments> | ||
17 | </buildCommand> | ||
18 | <buildCommand> | ||
19 | <name>org.eclipse.jdt.core.javabuilder</name> | ||
20 | <arguments> | ||
21 | </arguments> | ||
22 | </buildCommand> | ||
23 | <buildCommand> | ||
24 | <name>org.eclipse.pde.ManifestBuilder</name> | ||
25 | <arguments> | ||
26 | </arguments> | ||
27 | </buildCommand> | ||
28 | <buildCommand> | ||
29 | <name>org.eclipse.pde.SchemaBuilder</name> | ||
30 | <arguments> | ||
31 | </arguments> | ||
32 | </buildCommand> | ||
33 | </buildSpec> | ||
34 | <natures> | ||
35 | <nature>org.eclipse.pde.PluginNature</nature> | ||
36 | <nature>org.eclipse.jdt.core.javanature</nature> | ||
37 | <nature>org.eclipse.viatra.query.projectnature</nature> | ||
38 | <nature>org.eclipse.xtext.ui.shared.xtextNature</nature> | ||
39 | </natures> | ||
40 | </projectDescription> | ||
diff --git a/Metrics/Metrics-Calculation/SocialNetwork_plugin/.settings/org.eclipse.jdt.core.prefs b/Metrics/Metrics-Calculation/SocialNetwork_plugin/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 00000000..0c68a61d --- /dev/null +++ b/Metrics/Metrics-Calculation/SocialNetwork_plugin/.settings/org.eclipse.jdt.core.prefs | |||
@@ -0,0 +1,7 @@ | |||
1 | eclipse.preferences.version=1 | ||
2 | org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled | ||
3 | org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8 | ||
4 | org.eclipse.jdt.core.compiler.compliance=1.8 | ||
5 | org.eclipse.jdt.core.compiler.problem.assertIdentifier=error | ||
6 | org.eclipse.jdt.core.compiler.problem.enumIdentifier=error | ||
7 | org.eclipse.jdt.core.compiler.source=1.8 | ||
diff --git a/Metrics/Metrics-Calculation/SocialNetwork_plugin/1.csv b/Metrics/Metrics-Calculation/SocialNetwork_plugin/1.csv new file mode 100644 index 00000000..b7f73ed2 --- /dev/null +++ b/Metrics/Metrics-Calculation/SocialNetwork_plugin/1.csv | |||
@@ -0,0 +1 @@ | |||
Time,0 : 0.0 | |||
diff --git a/Metrics/Metrics-Calculation/SocialNetwork_plugin/META-INF/MANIFEST.MF b/Metrics/Metrics-Calculation/SocialNetwork_plugin/META-INF/MANIFEST.MF new file mode 100644 index 00000000..833b6fd8 --- /dev/null +++ b/Metrics/Metrics-Calculation/SocialNetwork_plugin/META-INF/MANIFEST.MF | |||
@@ -0,0 +1,35 @@ | |||
1 | Manifest-Version: 1.0 | ||
2 | Bundle-ManifestVersion: 2 | ||
3 | Bundle-Name: %pluginName | ||
4 | Bundle-SymbolicName: SocialNetwork_plugin;singleton:=true | ||
5 | Bundle-Version: 1.0.0.qualifier | ||
6 | Bundle-ClassPath: . | ||
7 | Bundle-Vendor: %providerName | ||
8 | Bundle-Localization: plugin | ||
9 | Export-Package: ca.mcgill.ecse.socialnetwork.plugin, | ||
10 | ca.mcgill.ecse.socialnetwork.runner, | ||
11 | constraints.ecore, | ||
12 | ecore, | ||
13 | queries, | ||
14 | socialnetwork, | ||
15 | socialnetwork.impl, | ||
16 | socialnetwork.util | ||
17 | Require-Bundle: org.eclipse.viatra.query.runtime.rete, | ||
18 | org.eclipse.viatra.query.runtime.localsearch, | ||
19 | org.eclipse.xtext.xbase.lib, | ||
20 | org.eclipse.viatra.query.runtime, | ||
21 | org.eclipse.core.runtime, | ||
22 | org.eclipse.emf.ecore;visibility:=reexport, | ||
23 | org.eclipse.emf.ecore.xmi;bundle-version="2.15.0", | ||
24 | hu.bme.mit.inf.dslreasoner.application;bundle-version="1.0.0", | ||
25 | org.junit;bundle-version="4.12.0", | ||
26 | org.eclipse.collections;bundle-version="9.2.0", | ||
27 | hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph;bundle-version="1.0.0", | ||
28 | ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator;bundle-version="1.0.0", | ||
29 | hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph.validation;bundle-version="0.0.1" | ||
30 | Bundle-RequiredExecutionEnvironment: JavaSE-1.8 | ||
31 | Bundle-ActivationPolicy: lazy | ||
32 | Main-Class: ca.mcgill.ecse.socialnetwork.runner.Main | ||
33 | Automatic-Module-Name: SocialNetwork_plugin | ||
34 | Import-Package: org.apache.log4j, | ||
35 | org.junit;version="4.12.0" | ||
diff --git a/Metrics/Metrics-Calculation/SocialNetwork_plugin/Measurement_Runner_yakindu.launch b/Metrics/Metrics-Calculation/SocialNetwork_plugin/Measurement_Runner_yakindu.launch new file mode 100644 index 00000000..a1c0488e --- /dev/null +++ b/Metrics/Metrics-Calculation/SocialNetwork_plugin/Measurement_Runner_yakindu.launch | |||
@@ -0,0 +1,17 @@ | |||
1 | <?xml version="1.0" encoding="UTF-8" standalone="no"?> | ||
2 | <launchConfiguration type="org.eclipse.jdt.launching.localJavaApplication"> | ||
3 | <listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS"> | ||
4 | <listEntry value="/SocialNetwork_plugin/src/ca/mcgill/ecse/socialnetwork/runner/Main.java"/> | ||
5 | </listAttribute> | ||
6 | <listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES"> | ||
7 | <listEntry value="1"/> | ||
8 | </listAttribute> | ||
9 | <stringAttribute key="org.eclipse.debug.core.source_locator_id" value="org.eclipse.jdt.launching.sourceLocator.JavaAdvancedSourceLookupDirector"/> | ||
10 | <stringAttribute key="org.eclipse.debug.core.source_locator_memento" value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <sourceLookupDirector> <sourceContainers duplicates="false"> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;javaProject name=&quot;hu.bme.mit.inf.dslreasoner.viatra2logic&quot;/&gt;&#13;&#10;" typeId="org.eclipse.jdt.launching.sourceContainer.javaProject"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;javaProject name=&quot;ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator&quot;/&gt;&#13;&#10;" typeId="org.eclipse.jdt.launching.sourceContainer.javaProject"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;directory nest=&quot;false&quot; path=&quot;C:\Users\chenp\eclipse-workspace\VIATRA-Generator\Solvers\VIATRA-Solver\hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra\src\hu\bme\mit\inf\dslreasoner\viatrasolver&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.directory"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;directory nest=&quot;false&quot; path=&quot;C:\Users\chenp\eclipse-workspace\VIATRA-Generator\Solvers\VIATRA-Solver\hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra\src\hu\bme\mit\inf\dslreasoner\viatrasolver\logic2viatra&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.directory"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;directory nest=&quot;false&quot; path=&quot;C:\Users\chenp\eclipse-workspace\VIATRA-Generator\Solvers\VIATRA-Solver\hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra\src\hu\bme\mit\inf\dslreasoner\viatrasolver\logic2viatra\rules&quot;/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.directory"/> <container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;default/&gt;&#13;&#10;" typeId="org.eclipse.debug.core.containerType.default"/> </sourceContainers> </sourceLookupDirector> "/> | ||
11 | <booleanAttribute key="org.eclipse.jdt.launching.ATTR_EXCLUDE_TEST_CODE" value="true"/> | ||
12 | <stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="ca.mcgill.ecse.socialnetwork.runner.Main"/> | ||
13 | <stringAttribute key="org.eclipse.jdt.launching.MODULE_NAME" value="SocialNetwork_plugin"/> | ||
14 | <stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="github.vsconfig"/> | ||
15 | <stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="SocialNetwork_plugin"/> | ||
16 | <stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Xmx8G -Djava.library.path="D:\Program Files\z3-4.8.8-x64-win\z3-4.8.8-x64-win\bin""/> | ||
17 | </launchConfiguration> | ||
diff --git a/Metrics/Metrics-Calculation/SocialNetwork_plugin/SocialNetworkGeneration.vsconfig b/Metrics/Metrics-Calculation/SocialNetwork_plugin/SocialNetworkGeneration.vsconfig new file mode 100644 index 00000000..e051c659 --- /dev/null +++ b/Metrics/Metrics-Calculation/SocialNetwork_plugin/SocialNetworkGeneration.vsconfig | |||
@@ -0,0 +1,24 @@ | |||
1 | import epackage "model/socialnetwork.ecore" | ||
2 | import viatra "src/ca/mcgill/ecse/socialnetwork/plugin/Queries.vql" | ||
3 | |||
4 | generate { | ||
5 | metamodel = { package socialnetwork } | ||
6 | //constraints = { package ca.mcgill.ecse.socialnetwork.plugin } | ||
7 | partial-model = { "inputs/280nodes.xmi"} | ||
8 | |||
9 | solver = ViatraSolver | ||
10 | |||
11 | scope = { | ||
12 | #node = 301 | ||
13 | } | ||
14 | |||
15 | number = 1 | ||
16 | runs = 1 | ||
17 | config = { | ||
18 | log-level = normal | ||
19 | } | ||
20 | |||
21 | debug = "output/debug" | ||
22 | output = "output" | ||
23 | log = "output/log.txt" | ||
24 | } \ No newline at end of file | ||
diff --git a/Metrics/Metrics-Calculation/SocialNetwork_plugin/bin/ca/mcgill/ecse/socialnetwork/plugin/.gitignore b/Metrics/Metrics-Calculation/SocialNetwork_plugin/bin/ca/mcgill/ecse/socialnetwork/plugin/.gitignore new file mode 100644 index 00000000..f2558cf5 --- /dev/null +++ b/Metrics/Metrics-Calculation/SocialNetwork_plugin/bin/ca/mcgill/ecse/socialnetwork/plugin/.gitignore | |||
@@ -0,0 +1,10 @@ | |||
1 | /.Friendship.java._trace | ||
2 | /.NoFriend.java._trace | ||
3 | /.Queries.java._trace | ||
4 | /.SelfFriend.java._trace | ||
5 | /.SingleFriendship.java._trace | ||
6 | /Friendship.java | ||
7 | /NoFriend.java | ||
8 | /Queries.java | ||
9 | /SelfFriend.java | ||
10 | /SingleFriendship.java | ||
diff --git a/Metrics/Metrics-Calculation/SocialNetwork_plugin/bin/ca/mcgill/ecse/socialnetwork/plugin/Queries.vql b/Metrics/Metrics-Calculation/SocialNetwork_plugin/bin/ca/mcgill/ecse/socialnetwork/plugin/Queries.vql new file mode 100644 index 00000000..3e7fc68c --- /dev/null +++ b/Metrics/Metrics-Calculation/SocialNetwork_plugin/bin/ca/mcgill/ecse/socialnetwork/plugin/Queries.vql | |||
@@ -0,0 +1,54 @@ | |||
1 | package ca.mcgill.ecse.socialnetwork.plugin | ||
2 | |||
3 | import epackage "http://ecse.mcgill.ca/socialnetwork" | ||
4 | |||
5 | //@Constraint(message="terminatorAndInformation", severity="error", key={T}) | ||
6 | //pattern terminatorAndInformation(T : FAMTerminator, I : InformationLink) = { | ||
7 | // FunctionalOutput.outgoingLinks(Out,I); | ||
8 | // FunctionalOutput.terminator(Out,T); | ||
9 | //} or { | ||
10 | // InformationLink.to(I,In); | ||
11 | // FunctionalInput.terminator(In,T); | ||
12 | //} | ||
13 | |||
14 | @Constraint(message="singleFriendship", severity="error", key={p1}) | ||
15 | pattern singleFriendship(p1: Person) { | ||
16 | find friendship(p1, p); | ||
17 | neg find friendship(p, p1); | ||
18 | } | ||
19 | |||
20 | //@Constraint(message="cycle", severity="error", key={p}) | ||
21 | //pattern cycleInParenthood(p: Person) { | ||
22 | // find isAncestor(p, p); | ||
23 | //} | ||
24 | |||
25 | @Constraint(message="noFriend", severity="error", key={p}) | ||
26 | pattern noFriend(p: Person){ | ||
27 | neg find friendship(p, _); | ||
28 | } | ||
29 | |||
30 | //@Constraint(message="brothhoodParent", severity="error", key={p1,p2}) | ||
31 | //pattern brothhoodParent(p1: Person, p2: Person){ | ||
32 | // Person.parents(p1, parent1); | ||
33 | // Person.parents(p2, parent2); | ||
34 | // parent1 == parent2; | ||
35 | // find isAncestor(p1, p2); | ||
36 | //} | ||
37 | @Constraint(message="selfFriend", severity="error", key={p}) | ||
38 | pattern selfFriend(p: Person){ | ||
39 | Person.friends(p,p); | ||
40 | } | ||
41 | |||
42 | pattern friendship(p1: Person, p2: Person){ | ||
43 | Person.friends(p1,p2); | ||
44 | } | ||
45 | |||
46 | //pattern isAncestor(person : Person, ancestor : Person){ | ||
47 | // Person.parents(person, ancestor); | ||
48 | //} or { | ||
49 | // Person.parents(person, parent); | ||
50 | // find isAncestor(parent, ancestor); | ||
51 | //} | ||
52 | |||
53 | |||
54 | |||
diff --git a/Metrics/Metrics-Calculation/SocialNetwork_plugin/bin/constraints/ecore/.gitignore b/Metrics/Metrics-Calculation/SocialNetwork_plugin/bin/constraints/ecore/.gitignore new file mode 100644 index 00000000..c42ca056 --- /dev/null +++ b/Metrics/Metrics-Calculation/SocialNetwork_plugin/bin/constraints/ecore/.gitignore | |||
@@ -0,0 +1,8 @@ | |||
1 | /.Ecore_pattern.java._trace | ||
2 | /.MoreThenFiveSuperTypes.java._trace | ||
3 | /.DirectSupertype.java._trace | ||
4 | /.Ecore.java._trace | ||
5 | /.LoopInInheritence.java._trace | ||
6 | /.NonSymmetricOpposite.java._trace | ||
7 | /.Opposite.java._trace | ||
8 | /.OppositeDifferentClass.java._trace | ||
diff --git a/Metrics/Metrics-Calculation/SocialNetwork_plugin/bin/ecore.ecore b/Metrics/Metrics-Calculation/SocialNetwork_plugin/bin/ecore.ecore new file mode 100644 index 00000000..eaaf3d11 --- /dev/null +++ b/Metrics/Metrics-Calculation/SocialNetwork_plugin/bin/ecore.ecore | |||
@@ -0,0 +1,1023 @@ | |||
1 | <?xml version="1.0" encoding="UTF-8"?> | ||
2 | <ecore:EPackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" | ||
3 | xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="ecore" nsURI="http://www.eclipse.org/emf/2002/Ecore" nsPrefix="ecore"> | ||
4 | <eClassifiers xsi:type="ecore:EClass" name="EAnnotation" eSuperTypes="#//EModelElement"> | ||
5 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
6 | <details key="name" value="EAnnotation"/> | ||
7 | <details key="kind" value="elementOnly"/> | ||
8 | </eAnnotations> | ||
9 | <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore"> | ||
10 | <details key="constraints" value="WellFormedSourceURI"/> | ||
11 | </eAnnotations> | ||
12 | <eStructuralFeatures xsi:type="ecore:EReference" name="details" upperBound="-1" | ||
13 | eType="#//EStringToStringMapEntry" containment="true" resolveProxies="false"> | ||
14 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
15 | <details key="kind" value="element"/> | ||
16 | <details key="name" value="details"/> | ||
17 | </eAnnotations> | ||
18 | </eStructuralFeatures> | ||
19 | <eStructuralFeatures xsi:type="ecore:EReference" name="contents" upperBound="-1" | ||
20 | eType="ecore:EClass http://www.eclipse.org/emf/2002/Ecore#//EObject" containment="true" | ||
21 | resolveProxies="false"> | ||
22 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
23 | <details key="kind" value="element"/> | ||
24 | <details key="name" value="contents"/> | ||
25 | </eAnnotations> | ||
26 | </eStructuralFeatures> | ||
27 | <eStructuralFeatures xsi:type="ecore:EReference" name="references" upperBound="-1" | ||
28 | eType="ecore:EClass http://www.eclipse.org/emf/2002/Ecore#//EObject"> | ||
29 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
30 | <details key="kind" value="attribute"/> | ||
31 | <details key="name" value="references"/> | ||
32 | </eAnnotations> | ||
33 | </eStructuralFeatures> | ||
34 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="source" eType="#//EString"> | ||
35 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
36 | <details key="kind" value="attribute"/> | ||
37 | <details key="name" value="source"/> | ||
38 | </eAnnotations> | ||
39 | </eStructuralFeatures> | ||
40 | <eStructuralFeatures xsi:type="ecore:EReference" name="eModelElement" eType="#//EModelElement" | ||
41 | transient="true" eOpposite="#//EModelElement/eAnnotations"/> | ||
42 | </eClassifiers> | ||
43 | <eClassifiers xsi:type="ecore:EClass" name="EAttribute" eSuperTypes="#//EStructuralFeature"> | ||
44 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
45 | <details key="name" value="EAttribute"/> | ||
46 | <details key="kind" value="elementOnly"/> | ||
47 | </eAnnotations> | ||
48 | <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore"> | ||
49 | <details key="constraints" value="ConsistentTransient"/> | ||
50 | </eAnnotations> | ||
51 | <eStructuralFeatures xsi:type="ecore:EReference" name="eAttributeType" lowerBound="1" | ||
52 | eType="#//EDataType" changeable="false" volatile="true" transient="true" derived="true"> | ||
53 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
54 | <details key="kind" value="attribute"/> | ||
55 | <details key="name" value="eAttributeType"/> | ||
56 | </eAnnotations> | ||
57 | </eStructuralFeatures> | ||
58 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="iD" eType="#//EBoolean"> | ||
59 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
60 | <details key="kind" value="attribute"/> | ||
61 | <details key="name" value="iD"/> | ||
62 | </eAnnotations> | ||
63 | </eStructuralFeatures> | ||
64 | </eClassifiers> | ||
65 | <eClassifiers xsi:type="ecore:EDataType" name="EBigDecimal" instanceClassName="java.math.BigDecimal"> | ||
66 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
67 | <details key="name" value="EBigDecimal"/> | ||
68 | <details key="baseType" value="http://www.eclipse.org/emf/2003/XMLType#decimal"/> | ||
69 | </eAnnotations> | ||
70 | </eClassifiers> | ||
71 | <eClassifiers xsi:type="ecore:EDataType" name="EBigInteger" instanceClassName="java.math.BigInteger"> | ||
72 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
73 | <details key="name" value="EBigInteger"/> | ||
74 | <details key="baseType" value="http://www.eclipse.org/emf/2003/XMLType#integer"/> | ||
75 | </eAnnotations> | ||
76 | </eClassifiers> | ||
77 | <eClassifiers xsi:type="ecore:EDataType" name="EBoolean" instanceClassName="boolean"> | ||
78 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
79 | <details key="name" value="EBoolean"/> | ||
80 | </eAnnotations> | ||
81 | </eClassifiers> | ||
82 | <eClassifiers xsi:type="ecore:EDataType" name="EBooleanObject" instanceClassName="java.lang.Boolean"> | ||
83 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
84 | <details key="name" value="EBoolean:Object"/> | ||
85 | <details key="baseType" value="EBoolean"/> | ||
86 | </eAnnotations> | ||
87 | </eClassifiers> | ||
88 | <eClassifiers xsi:type="ecore:EDataType" name="EByte" instanceClassName="byte"> | ||
89 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
90 | <details key="name" value="EByte"/> | ||
91 | <details key="baseType" value="http://www.eclipse.org/emf/2003/XMLType#byte"/> | ||
92 | </eAnnotations> | ||
93 | </eClassifiers> | ||
94 | <eClassifiers xsi:type="ecore:EDataType" name="EByteArray" instanceClassName="byte[]"> | ||
95 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
96 | <details key="name" value="EByteArray"/> | ||
97 | <details key="baseType" value="http://www.eclipse.org/emf/2003/XMLType#hexBinary"/> | ||
98 | </eAnnotations> | ||
99 | </eClassifiers> | ||
100 | <eClassifiers xsi:type="ecore:EDataType" name="EByteObject" instanceClassName="java.lang.Byte"> | ||
101 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
102 | <details key="name" value="EByte:Object"/> | ||
103 | <details key="baseType" value="EByte"/> | ||
104 | </eAnnotations> | ||
105 | </eClassifiers> | ||
106 | <eClassifiers xsi:type="ecore:EDataType" name="EChar" instanceClassName="char"> | ||
107 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
108 | <details key="name" value="EChar"/> | ||
109 | </eAnnotations> | ||
110 | </eClassifiers> | ||
111 | <eClassifiers xsi:type="ecore:EDataType" name="ECharacterObject" instanceClassName="java.lang.Character"> | ||
112 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
113 | <details key="name" value="EChar:Object"/> | ||
114 | <details key="baseType" value="EChar"/> | ||
115 | </eAnnotations> | ||
116 | </eClassifiers> | ||
117 | <eClassifiers xsi:type="ecore:EClass" name="EClass" eSuperTypes="#//EClassifier"> | ||
118 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
119 | <details key="name" value="EClass"/> | ||
120 | <details key="kind" value="elementOnly"/> | ||
121 | </eAnnotations> | ||
122 | <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore"> | ||
123 | <details key="constraints" value="InterfaceIsAbstract AtMostOneID UniqueFeatureNames UniqueOperationSignatures NoCircularSuperTypes WellFormedMapEntryClass ConsistentSuperTypes DisjointFeatureAndOperationSignatures"/> | ||
124 | </eAnnotations> | ||
125 | <eOperations name="isSuperTypeOf" eType="#//EBoolean"> | ||
126 | <eParameters name="someClass" eType="#//EClass"/> | ||
127 | </eOperations> | ||
128 | <eOperations name="getFeatureCount" eType="#//EInt"/> | ||
129 | <eOperations name="getEStructuralFeature" eType="#//EStructuralFeature"> | ||
130 | <eParameters name="featureID" eType="#//EInt"/> | ||
131 | </eOperations> | ||
132 | <eOperations name="getFeatureID" eType="#//EInt"> | ||
133 | <eParameters name="feature" eType="#//EStructuralFeature"/> | ||
134 | </eOperations> | ||
135 | <eOperations name="getEStructuralFeature" eType="#//EStructuralFeature"> | ||
136 | <eParameters name="featureName" eType="#//EString"/> | ||
137 | </eOperations> | ||
138 | <eOperations name="getOperationCount" eType="#//EInt"/> | ||
139 | <eOperations name="getEOperation" eType="#//EOperation"> | ||
140 | <eParameters name="operationID" eType="#//EInt"/> | ||
141 | </eOperations> | ||
142 | <eOperations name="getOperationID" eType="#//EInt"> | ||
143 | <eParameters name="operation" eType="#//EOperation"/> | ||
144 | </eOperations> | ||
145 | <eOperations name="getOverride" eType="#//EOperation"> | ||
146 | <eParameters name="operation" eType="#//EOperation"/> | ||
147 | </eOperations> | ||
148 | <eStructuralFeatures xsi:type="ecore:EReference" name="eOperations" upperBound="-1" | ||
149 | eType="#//EOperation" containment="true" resolveProxies="false" eOpposite="#//EOperation/eContainingClass"> | ||
150 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
151 | <details key="kind" value="element"/> | ||
152 | <details key="name" value="eOperations"/> | ||
153 | </eAnnotations> | ||
154 | </eStructuralFeatures> | ||
155 | <eStructuralFeatures xsi:type="ecore:EReference" name="eStructuralFeatures" upperBound="-1" | ||
156 | eType="#//EStructuralFeature" containment="true" resolveProxies="false" eOpposite="#//EStructuralFeature/eContainingClass"> | ||
157 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
158 | <details key="kind" value="element"/> | ||
159 | <details key="name" value="eStructuralFeatures"/> | ||
160 | </eAnnotations> | ||
161 | </eStructuralFeatures> | ||
162 | <eStructuralFeatures xsi:type="ecore:EReference" name="eGenericSuperTypes" upperBound="-1" | ||
163 | eType="#//EGenericType" unsettable="true" containment="true" resolveProxies="false"> | ||
164 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
165 | <details key="kind" value="element"/> | ||
166 | <details key="name" value="eGenericSuperTypes"/> | ||
167 | </eAnnotations> | ||
168 | <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> | ||
169 | <details key="suppressedIsSetVisibility" value="true"/> | ||
170 | <details key="suppressedUnsetVisibility" value="true"/> | ||
171 | </eAnnotations> | ||
172 | </eStructuralFeatures> | ||
173 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="abstract" eType="#//EBoolean"> | ||
174 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
175 | <details key="kind" value="attribute"/> | ||
176 | <details key="name" value="abstract"/> | ||
177 | </eAnnotations> | ||
178 | </eStructuralFeatures> | ||
179 | <eStructuralFeatures xsi:type="ecore:EReference" name="eAllAttributes" upperBound="-1" | ||
180 | eType="#//EAttribute" changeable="false" volatile="true" transient="true" | ||
181 | derived="true"> | ||
182 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
183 | <details key="kind" value="attribute"/> | ||
184 | <details key="name" value="eAllAttributes"/> | ||
185 | </eAnnotations> | ||
186 | </eStructuralFeatures> | ||
187 | <eStructuralFeatures xsi:type="ecore:EReference" name="eAllContainments" upperBound="-1" | ||
188 | eType="#//EReference" changeable="false" volatile="true" transient="true" | ||
189 | derived="true"> | ||
190 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
191 | <details key="kind" value="attribute"/> | ||
192 | <details key="name" value="eAllContainments"/> | ||
193 | </eAnnotations> | ||
194 | </eStructuralFeatures> | ||
195 | <eStructuralFeatures xsi:type="ecore:EReference" name="eAllGenericSuperTypes" | ||
196 | upperBound="-1" eType="#//EGenericType" changeable="false" volatile="true" | ||
197 | transient="true" derived="true"> | ||
198 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
199 | <details key="kind" value="attribute"/> | ||
200 | <details key="name" value="eAllGenericSuperTypes"/> | ||
201 | </eAnnotations> | ||
202 | </eStructuralFeatures> | ||
203 | <eStructuralFeatures xsi:type="ecore:EReference" name="eAllOperations" upperBound="-1" | ||
204 | eType="#//EOperation" changeable="false" volatile="true" transient="true" | ||
205 | derived="true"> | ||
206 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
207 | <details key="kind" value="attribute"/> | ||
208 | <details key="name" value="eAllOperations"/> | ||
209 | </eAnnotations> | ||
210 | </eStructuralFeatures> | ||
211 | <eStructuralFeatures xsi:type="ecore:EReference" name="eAllReferences" upperBound="-1" | ||
212 | eType="#//EReference" changeable="false" volatile="true" transient="true" | ||
213 | derived="true"> | ||
214 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
215 | <details key="kind" value="attribute"/> | ||
216 | <details key="name" value="eAllReferences"/> | ||
217 | </eAnnotations> | ||
218 | </eStructuralFeatures> | ||
219 | <eStructuralFeatures xsi:type="ecore:EReference" name="eAllStructuralFeatures" | ||
220 | upperBound="-1" eType="#//EStructuralFeature" changeable="false" volatile="true" | ||
221 | transient="true" derived="true"> | ||
222 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
223 | <details key="kind" value="attribute"/> | ||
224 | <details key="name" value="eAllStructuralFeatures"/> | ||
225 | </eAnnotations> | ||
226 | </eStructuralFeatures> | ||
227 | <eStructuralFeatures xsi:type="ecore:EReference" name="eAllSuperTypes" upperBound="-1" | ||
228 | eType="#//EClass" changeable="false" volatile="true" transient="true" derived="true"> | ||
229 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
230 | <details key="kind" value="attribute"/> | ||
231 | <details key="name" value="eAllSuperTypes"/> | ||
232 | </eAnnotations> | ||
233 | </eStructuralFeatures> | ||
234 | <eStructuralFeatures xsi:type="ecore:EReference" name="eAttributes" upperBound="-1" | ||
235 | eType="#//EAttribute" changeable="false" volatile="true" transient="true" | ||
236 | derived="true"> | ||
237 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
238 | <details key="kind" value="attribute"/> | ||
239 | <details key="name" value="eAttributes"/> | ||
240 | </eAnnotations> | ||
241 | </eStructuralFeatures> | ||
242 | <eStructuralFeatures xsi:type="ecore:EReference" name="eIDAttribute" eType="#//EAttribute" | ||
243 | changeable="false" volatile="true" transient="true" derived="true" resolveProxies="false"> | ||
244 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
245 | <details key="kind" value="attribute"/> | ||
246 | <details key="name" value="eIDAttribute"/> | ||
247 | </eAnnotations> | ||
248 | </eStructuralFeatures> | ||
249 | <eStructuralFeatures xsi:type="ecore:EReference" name="eReferences" upperBound="-1" | ||
250 | eType="#//EReference" changeable="false" volatile="true" transient="true" | ||
251 | derived="true"> | ||
252 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
253 | <details key="kind" value="attribute"/> | ||
254 | <details key="name" value="eReferences"/> | ||
255 | </eAnnotations> | ||
256 | </eStructuralFeatures> | ||
257 | <eStructuralFeatures xsi:type="ecore:EReference" name="eSuperTypes" upperBound="-1" | ||
258 | eType="#//EClass" unsettable="true"> | ||
259 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
260 | <details key="kind" value="attribute"/> | ||
261 | <details key="name" value="eSuperTypes"/> | ||
262 | </eAnnotations> | ||
263 | <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> | ||
264 | <details key="suppressedIsSetVisibility" value="true"/> | ||
265 | <details key="suppressedUnsetVisibility" value="true"/> | ||
266 | </eAnnotations> | ||
267 | </eStructuralFeatures> | ||
268 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="interface" eType="#//EBoolean"> | ||
269 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
270 | <details key="kind" value="attribute"/> | ||
271 | <details key="name" value="interface"/> | ||
272 | </eAnnotations> | ||
273 | </eStructuralFeatures> | ||
274 | </eClassifiers> | ||
275 | <eClassifiers xsi:type="ecore:EClass" name="EClassifier" abstract="true" eSuperTypes="#//ENamedElement"> | ||
276 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
277 | <details key="name" value="EClassifier"/> | ||
278 | <details key="kind" value="elementOnly"/> | ||
279 | </eAnnotations> | ||
280 | <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore"> | ||
281 | <details key="constraints" value="WellFormedInstanceTypeName UniqueTypeParameterNames"/> | ||
282 | </eAnnotations> | ||
283 | <eOperations name="isInstance" eType="#//EBoolean"> | ||
284 | <eParameters name="object" eType="#//EJavaObject"/> | ||
285 | </eOperations> | ||
286 | <eOperations name="getClassifierID" eType="#//EInt"/> | ||
287 | <eStructuralFeatures xsi:type="ecore:EReference" name="eTypeParameters" upperBound="-1" | ||
288 | eType="#//ETypeParameter" containment="true"> | ||
289 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
290 | <details key="kind" value="element"/> | ||
291 | <details key="name" value="eTypeParameters"/> | ||
292 | </eAnnotations> | ||
293 | </eStructuralFeatures> | ||
294 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="defaultValue" eType="#//EJavaObject" | ||
295 | changeable="false" volatile="true" transient="true" derived="true"> | ||
296 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
297 | <details key="kind" value="attribute"/> | ||
298 | <details key="name" value="defaultValue"/> | ||
299 | </eAnnotations> | ||
300 | </eStructuralFeatures> | ||
301 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="instanceClass" changeable="false" | ||
302 | volatile="true" transient="true" derived="true"> | ||
303 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
304 | <details key="kind" value="attribute"/> | ||
305 | <details key="name" value="instanceClass"/> | ||
306 | </eAnnotations> | ||
307 | <eGenericType eClassifier="#//EJavaClass"> | ||
308 | <eTypeArguments/> | ||
309 | </eGenericType> | ||
310 | </eStructuralFeatures> | ||
311 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="instanceClassName" eType="#//EString" | ||
312 | volatile="true" unsettable="true"> | ||
313 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
314 | <details key="kind" value="attribute"/> | ||
315 | <details key="name" value="instanceClassName"/> | ||
316 | </eAnnotations> | ||
317 | <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> | ||
318 | <details key="suppressedIsSetVisibility" value="true"/> | ||
319 | <details key="suppressedUnsetVisibility" value="true"/> | ||
320 | </eAnnotations> | ||
321 | </eStructuralFeatures> | ||
322 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="instanceTypeName" eType="#//EString" | ||
323 | volatile="true" unsettable="true"> | ||
324 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
325 | <details key="kind" value="attribute"/> | ||
326 | <details key="name" value="instanceTypeName"/> | ||
327 | </eAnnotations> | ||
328 | <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> | ||
329 | <details key="suppressedIsSetVisibility" value="true"/> | ||
330 | <details key="suppressedUnsetVisibility" value="true"/> | ||
331 | </eAnnotations> | ||
332 | </eStructuralFeatures> | ||
333 | <eStructuralFeatures xsi:type="ecore:EReference" name="ePackage" eType="#//EPackage" | ||
334 | transient="true" eOpposite="#//EPackage/eClassifiers"/> | ||
335 | </eClassifiers> | ||
336 | <eClassifiers xsi:type="ecore:EClass" name="EDataType" eSuperTypes="#//EClassifier"> | ||
337 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
338 | <details key="name" value="EDataType"/> | ||
339 | <details key="kind" value="elementOnly"/> | ||
340 | </eAnnotations> | ||
341 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="serializable" eType="#//EBoolean" | ||
342 | defaultValueLiteral="true"> | ||
343 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
344 | <details key="kind" value="attribute"/> | ||
345 | <details key="name" value="serializable"/> | ||
346 | </eAnnotations> | ||
347 | </eStructuralFeatures> | ||
348 | </eClassifiers> | ||
349 | <eClassifiers xsi:type="ecore:EDataType" name="EDate" instanceClassName="java.util.Date"> | ||
350 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
351 | <details key="name" value="EDate"/> | ||
352 | </eAnnotations> | ||
353 | </eClassifiers> | ||
354 | <eClassifiers xsi:type="ecore:EDataType" name="EDiagnosticChain" instanceClassName="org.eclipse.emf.common.util.DiagnosticChain" | ||
355 | serializable="false"> | ||
356 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
357 | <details key="name" value="EDiagnosticChain"/> | ||
358 | </eAnnotations> | ||
359 | </eClassifiers> | ||
360 | <eClassifiers xsi:type="ecore:EDataType" name="EDouble" instanceClassName="double"> | ||
361 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
362 | <details key="name" value="EDouble"/> | ||
363 | <details key="baseType" value="http://www.eclipse.org/emf/2003/XMLType#double"/> | ||
364 | </eAnnotations> | ||
365 | </eClassifiers> | ||
366 | <eClassifiers xsi:type="ecore:EDataType" name="EDoubleObject" instanceClassName="java.lang.Double"> | ||
367 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
368 | <details key="name" value="EDouble:Object"/> | ||
369 | <details key="baseType" value="EDouble"/> | ||
370 | </eAnnotations> | ||
371 | </eClassifiers> | ||
372 | <eClassifiers xsi:type="ecore:EDataType" name="EEList" instanceClassName="org.eclipse.emf.common.util.EList" | ||
373 | serializable="false"> | ||
374 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
375 | <details key="name" value="EEList"/> | ||
376 | </eAnnotations> | ||
377 | <eTypeParameters name="E"/> | ||
378 | </eClassifiers> | ||
379 | <eClassifiers xsi:type="ecore:EClass" name="EEnum" eSuperTypes="#//EDataType"> | ||
380 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
381 | <details key="name" value="EEnum"/> | ||
382 | <details key="kind" value="elementOnly"/> | ||
383 | </eAnnotations> | ||
384 | <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore"> | ||
385 | <details key="constraints" value="UniqueEnumeratorNames UniqueEnumeratorLiterals"/> | ||
386 | </eAnnotations> | ||
387 | <eOperations name="getEEnumLiteral" eType="#//EEnumLiteral"> | ||
388 | <eParameters name="name" eType="#//EString"/> | ||
389 | </eOperations> | ||
390 | <eOperations name="getEEnumLiteral" eType="#//EEnumLiteral"> | ||
391 | <eParameters name="value" eType="#//EInt"/> | ||
392 | </eOperations> | ||
393 | <eOperations name="getEEnumLiteralByLiteral" eType="#//EEnumLiteral"> | ||
394 | <eParameters name="literal" eType="#//EString"/> | ||
395 | </eOperations> | ||
396 | <eStructuralFeatures xsi:type="ecore:EReference" name="eLiterals" upperBound="-1" | ||
397 | eType="#//EEnumLiteral" containment="true" resolveProxies="false" eOpposite="#//EEnumLiteral/eEnum"> | ||
398 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
399 | <details key="kind" value="element"/> | ||
400 | <details key="name" value="eLiterals"/> | ||
401 | </eAnnotations> | ||
402 | </eStructuralFeatures> | ||
403 | </eClassifiers> | ||
404 | <eClassifiers xsi:type="ecore:EDataType" name="EEnumerator" instanceClassName="org.eclipse.emf.common.util.Enumerator" | ||
405 | serializable="false"> | ||
406 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
407 | <details key="name" value="EEnumerator"/> | ||
408 | </eAnnotations> | ||
409 | </eClassifiers> | ||
410 | <eClassifiers xsi:type="ecore:EClass" name="EEnumLiteral" eSuperTypes="#//ENamedElement"> | ||
411 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
412 | <details key="name" value="EEnumLiteral"/> | ||
413 | <details key="kind" value="elementOnly"/> | ||
414 | </eAnnotations> | ||
415 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="instance" eType="#//EEnumerator" | ||
416 | transient="true"> | ||
417 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
418 | <details key="kind" value="attribute"/> | ||
419 | <details key="name" value="instance"/> | ||
420 | </eAnnotations> | ||
421 | </eStructuralFeatures> | ||
422 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="literal" eType="#//EString"> | ||
423 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
424 | <details key="kind" value="attribute"/> | ||
425 | <details key="name" value="literal"/> | ||
426 | </eAnnotations> | ||
427 | </eStructuralFeatures> | ||
428 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" eType="#//EInt"> | ||
429 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
430 | <details key="kind" value="attribute"/> | ||
431 | <details key="name" value="value"/> | ||
432 | </eAnnotations> | ||
433 | </eStructuralFeatures> | ||
434 | <eStructuralFeatures xsi:type="ecore:EReference" name="eEnum" eType="#//EEnum" | ||
435 | transient="true" eOpposite="#//EEnum/eLiterals"/> | ||
436 | </eClassifiers> | ||
437 | <eClassifiers xsi:type="ecore:EClass" name="EFactory" eSuperTypes="#//EModelElement"> | ||
438 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
439 | <details key="name" value="EFactory"/> | ||
440 | <details key="kind" value="elementOnly"/> | ||
441 | </eAnnotations> | ||
442 | <eOperations name="create" eType="ecore:EClass http://www.eclipse.org/emf/2002/Ecore#//EObject"> | ||
443 | <eParameters name="eClass" eType="#//EClass"/> | ||
444 | </eOperations> | ||
445 | <eOperations name="createFromString" eType="#//EJavaObject"> | ||
446 | <eParameters name="eDataType" eType="#//EDataType"/> | ||
447 | <eParameters name="literalValue" eType="#//EString"/> | ||
448 | </eOperations> | ||
449 | <eOperations name="convertToString" eType="#//EString"> | ||
450 | <eParameters name="eDataType" eType="#//EDataType"/> | ||
451 | <eParameters name="instanceValue" eType="#//EJavaObject"/> | ||
452 | </eOperations> | ||
453 | <eStructuralFeatures xsi:type="ecore:EReference" name="ePackage" lowerBound="1" | ||
454 | eType="#//EPackage" transient="true" resolveProxies="false" eOpposite="#//EPackage/eFactoryInstance"> | ||
455 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
456 | <details key="kind" value="attribute"/> | ||
457 | <details key="name" value="ePackage"/> | ||
458 | </eAnnotations> | ||
459 | </eStructuralFeatures> | ||
460 | </eClassifiers> | ||
461 | <eClassifiers xsi:type="ecore:EDataType" name="EFeatureMap" instanceClassName="org.eclipse.emf.ecore.util.FeatureMap" | ||
462 | serializable="false"> | ||
463 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
464 | <details key="name" value="EFeatureMap"/> | ||
465 | </eAnnotations> | ||
466 | </eClassifiers> | ||
467 | <eClassifiers xsi:type="ecore:EDataType" name="EFeatureMapEntry" instanceClassName="org.eclipse.emf.ecore.util.FeatureMap$Entry" | ||
468 | serializable="false"> | ||
469 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
470 | <details key="name" value="EFeatureMapEntry"/> | ||
471 | </eAnnotations> | ||
472 | </eClassifiers> | ||
473 | <eClassifiers xsi:type="ecore:EDataType" name="EFloat" instanceClassName="float"> | ||
474 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
475 | <details key="name" value="EFloat"/> | ||
476 | <details key="baseType" value="http://www.eclipse.org/emf/2003/XMLType#float"/> | ||
477 | </eAnnotations> | ||
478 | </eClassifiers> | ||
479 | <eClassifiers xsi:type="ecore:EDataType" name="EFloatObject" instanceClassName="java.lang.Float"> | ||
480 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
481 | <details key="name" value="EFloat:Object"/> | ||
482 | <details key="baseType" value="EFloat"/> | ||
483 | </eAnnotations> | ||
484 | </eClassifiers> | ||
485 | <eClassifiers xsi:type="ecore:EClass" name="EGenericType"> | ||
486 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
487 | <details key="name" value="EGenericType"/> | ||
488 | <details key="kind" value="elementOnly"/> | ||
489 | </eAnnotations> | ||
490 | <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore"> | ||
491 | <details key="constraints" value="ConsistentType ConsistentBounds ConsistentArguments"/> | ||
492 | </eAnnotations> | ||
493 | <eStructuralFeatures xsi:type="ecore:EReference" name="eUpperBound" eType="#//EGenericType" | ||
494 | containment="true" resolveProxies="false"> | ||
495 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
496 | <details key="kind" value="element"/> | ||
497 | <details key="name" value="eUpperBound"/> | ||
498 | </eAnnotations> | ||
499 | </eStructuralFeatures> | ||
500 | <eStructuralFeatures xsi:type="ecore:EReference" name="eTypeArguments" upperBound="-1" | ||
501 | eType="#//EGenericType" containment="true" resolveProxies="false"> | ||
502 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
503 | <details key="kind" value="element"/> | ||
504 | <details key="name" value="eTypeArguments"/> | ||
505 | </eAnnotations> | ||
506 | </eStructuralFeatures> | ||
507 | <eStructuralFeatures xsi:type="ecore:EReference" name="eLowerBound" eType="#//EGenericType" | ||
508 | containment="true" resolveProxies="false"> | ||
509 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
510 | <details key="kind" value="element"/> | ||
511 | <details key="name" value="eLowerBound"/> | ||
512 | </eAnnotations> | ||
513 | </eStructuralFeatures> | ||
514 | <eStructuralFeatures xsi:type="ecore:EReference" name="eClassifier" eType="#//EClassifier"> | ||
515 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
516 | <details key="kind" value="attribute"/> | ||
517 | <details key="name" value="eClassifier"/> | ||
518 | </eAnnotations> | ||
519 | </eStructuralFeatures> | ||
520 | <eStructuralFeatures xsi:type="ecore:EReference" name="eRawType" lowerBound="1" | ||
521 | eType="#//EClassifier" changeable="false" transient="true" derived="true"> | ||
522 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
523 | <details key="kind" value="attribute"/> | ||
524 | <details key="name" value="eRawType"/> | ||
525 | </eAnnotations> | ||
526 | </eStructuralFeatures> | ||
527 | <eStructuralFeatures xsi:type="ecore:EReference" name="eTypeParameter" eType="#//ETypeParameter" | ||
528 | resolveProxies="false"> | ||
529 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
530 | <details key="kind" value="attribute"/> | ||
531 | <details key="name" value="eTypeParameter"/> | ||
532 | </eAnnotations> | ||
533 | </eStructuralFeatures> | ||
534 | </eClassifiers> | ||
535 | <eClassifiers xsi:type="ecore:EDataType" name="EInt" instanceClassName="int"> | ||
536 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
537 | <details key="name" value="EInt"/> | ||
538 | </eAnnotations> | ||
539 | </eClassifiers> | ||
540 | <eClassifiers xsi:type="ecore:EDataType" name="EIntegerObject" instanceClassName="java.lang.Integer"> | ||
541 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
542 | <details key="name" value="EInt:Object"/> | ||
543 | <details key="baseType" value="EInt"/> | ||
544 | </eAnnotations> | ||
545 | </eClassifiers> | ||
546 | <eClassifiers xsi:type="ecore:EDataType" name="EInvocationTargetException" instanceClassName="java.lang.reflect.InvocationTargetException" | ||
547 | serializable="false"> | ||
548 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
549 | <details key="name" value="EInvocationTargetException"/> | ||
550 | </eAnnotations> | ||
551 | </eClassifiers> | ||
552 | <eClassifiers xsi:type="ecore:EDataType" name="EJavaClass" instanceClassName="java.lang.Class"> | ||
553 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
554 | <details key="name" value="EJavaClass"/> | ||
555 | </eAnnotations> | ||
556 | <eTypeParameters name="T"/> | ||
557 | </eClassifiers> | ||
558 | <eClassifiers xsi:type="ecore:EDataType" name="EJavaObject" instanceClassName="java.lang.Object"> | ||
559 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
560 | <details key="name" value="EJavaObject"/> | ||
561 | </eAnnotations> | ||
562 | </eClassifiers> | ||
563 | <eClassifiers xsi:type="ecore:EDataType" name="ELong" instanceClassName="long"> | ||
564 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
565 | <details key="name" value="ELong"/> | ||
566 | <details key="baseType" value="http://www.eclipse.org/emf/2003/XMLType#long"/> | ||
567 | </eAnnotations> | ||
568 | </eClassifiers> | ||
569 | <eClassifiers xsi:type="ecore:EDataType" name="ELongObject" instanceClassName="java.lang.Long"> | ||
570 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
571 | <details key="name" value="ELong:Object"/> | ||
572 | <details key="baseType" value="ELong"/> | ||
573 | </eAnnotations> | ||
574 | </eClassifiers> | ||
575 | <eClassifiers xsi:type="ecore:EDataType" name="EMap" instanceClassName="java.util.Map" | ||
576 | serializable="false"> | ||
577 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
578 | <details key="name" value="EMap"/> | ||
579 | </eAnnotations> | ||
580 | <eTypeParameters name="K"/> | ||
581 | <eTypeParameters name="V"/> | ||
582 | </eClassifiers> | ||
583 | <eClassifiers xsi:type="ecore:EClass" name="EModelElement" abstract="true"> | ||
584 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
585 | <details key="name" value="EModelElement"/> | ||
586 | <details key="kind" value="elementOnly"/> | ||
587 | </eAnnotations> | ||
588 | <eOperations name="getEAnnotation" eType="#//EAnnotation"> | ||
589 | <eParameters name="source" eType="#//EString"/> | ||
590 | </eOperations> | ||
591 | <eStructuralFeatures xsi:type="ecore:EReference" name="eAnnotations" upperBound="-1" | ||
592 | eType="#//EAnnotation" containment="true" resolveProxies="false" eOpposite="#//EAnnotation/eModelElement"> | ||
593 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
594 | <details key="kind" value="element"/> | ||
595 | <details key="name" value="eAnnotations"/> | ||
596 | </eAnnotations> | ||
597 | </eStructuralFeatures> | ||
598 | </eClassifiers> | ||
599 | <eClassifiers xsi:type="ecore:EClass" name="ENamedElement" abstract="true" eSuperTypes="#//EModelElement"> | ||
600 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
601 | <details key="name" value="ENamedElement"/> | ||
602 | <details key="kind" value="elementOnly"/> | ||
603 | </eAnnotations> | ||
604 | <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore"> | ||
605 | <details key="constraints" value="WellFormedName"/> | ||
606 | </eAnnotations> | ||
607 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="#//EString"> | ||
608 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
609 | <details key="kind" value="attribute"/> | ||
610 | <details key="name" value="name"/> | ||
611 | </eAnnotations> | ||
612 | </eStructuralFeatures> | ||
613 | </eClassifiers> | ||
614 | <eClassifiers xsi:type="ecore:EClass" name="EObject"> | ||
615 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
616 | <details key="name" value="EObject"/> | ||
617 | <details key="kind" value="empty"/> | ||
618 | </eAnnotations> | ||
619 | <eOperations name="eClass" eType="#//EClass"/> | ||
620 | <eOperations name="eIsProxy" eType="#//EBoolean"/> | ||
621 | <eOperations name="eResource" eType="#//EResource"/> | ||
622 | <eOperations name="eContainer" eType="ecore:EClass http://www.eclipse.org/emf/2002/Ecore#//EObject"/> | ||
623 | <eOperations name="eContainingFeature" eType="#//EStructuralFeature"/> | ||
624 | <eOperations name="eContainmentFeature" eType="#//EReference"/> | ||
625 | <eOperations name="eContents"> | ||
626 | <eGenericType eClassifier="#//EEList"> | ||
627 | <eTypeArguments eClassifier="ecore:EClass http://www.eclipse.org/emf/2002/Ecore#//EObject"/> | ||
628 | </eGenericType> | ||
629 | </eOperations> | ||
630 | <eOperations name="eAllContents"> | ||
631 | <eGenericType eClassifier="#//ETreeIterator"> | ||
632 | <eTypeArguments eClassifier="ecore:EClass http://www.eclipse.org/emf/2002/Ecore#//EObject"/> | ||
633 | </eGenericType> | ||
634 | </eOperations> | ||
635 | <eOperations name="eCrossReferences"> | ||
636 | <eGenericType eClassifier="#//EEList"> | ||
637 | <eTypeArguments eClassifier="ecore:EClass http://www.eclipse.org/emf/2002/Ecore#//EObject"/> | ||
638 | </eGenericType> | ||
639 | </eOperations> | ||
640 | <eOperations name="eGet" eType="#//EJavaObject"> | ||
641 | <eParameters name="feature" eType="#//EStructuralFeature"/> | ||
642 | </eOperations> | ||
643 | <eOperations name="eGet" eType="#//EJavaObject"> | ||
644 | <eParameters name="feature" eType="#//EStructuralFeature"/> | ||
645 | <eParameters name="resolve" eType="#//EBoolean"/> | ||
646 | </eOperations> | ||
647 | <eOperations name="eSet"> | ||
648 | <eParameters name="feature" eType="#//EStructuralFeature"/> | ||
649 | <eParameters name="newValue" eType="#//EJavaObject"/> | ||
650 | </eOperations> | ||
651 | <eOperations name="eIsSet" eType="#//EBoolean"> | ||
652 | <eParameters name="feature" eType="#//EStructuralFeature"/> | ||
653 | </eOperations> | ||
654 | <eOperations name="eUnset"> | ||
655 | <eParameters name="feature" eType="#//EStructuralFeature"/> | ||
656 | </eOperations> | ||
657 | <eOperations name="eInvoke" eType="#//EJavaObject" eExceptions="#//EInvocationTargetException"> | ||
658 | <eParameters name="operation" eType="#//EOperation"/> | ||
659 | <eParameters name="arguments"> | ||
660 | <eGenericType eClassifier="#//EEList"> | ||
661 | <eTypeArguments/> | ||
662 | </eGenericType> | ||
663 | </eParameters> | ||
664 | </eOperations> | ||
665 | </eClassifiers> | ||
666 | <eClassifiers xsi:type="ecore:EClass" name="EOperation" eSuperTypes="#//ETypedElement"> | ||
667 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
668 | <details key="name" value="EOperation"/> | ||
669 | <details key="kind" value="elementOnly"/> | ||
670 | </eAnnotations> | ||
671 | <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore"> | ||
672 | <details key="constraints" value="UniqueParameterNames UniqueTypeParameterNames NoRepeatingVoid"/> | ||
673 | </eAnnotations> | ||
674 | <eOperations name="getOperationID" eType="#//EInt"/> | ||
675 | <eOperations name="isOverrideOf" eType="#//EBoolean"> | ||
676 | <eParameters name="someOperation" eType="#//EOperation"/> | ||
677 | </eOperations> | ||
678 | <eStructuralFeatures xsi:type="ecore:EReference" name="eTypeParameters" upperBound="-1" | ||
679 | eType="#//ETypeParameter" containment="true"> | ||
680 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
681 | <details key="kind" value="element"/> | ||
682 | <details key="name" value="eTypeParameters"/> | ||
683 | </eAnnotations> | ||
684 | </eStructuralFeatures> | ||
685 | <eStructuralFeatures xsi:type="ecore:EReference" name="eParameters" upperBound="-1" | ||
686 | eType="#//EParameter" containment="true" resolveProxies="false" eOpposite="#//EParameter/eOperation"> | ||
687 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
688 | <details key="kind" value="element"/> | ||
689 | <details key="name" value="eParameters"/> | ||
690 | </eAnnotations> | ||
691 | </eStructuralFeatures> | ||
692 | <eStructuralFeatures xsi:type="ecore:EReference" name="eGenericExceptions" upperBound="-1" | ||
693 | eType="#//EGenericType" unsettable="true" containment="true" resolveProxies="false"> | ||
694 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
695 | <details key="kind" value="element"/> | ||
696 | <details key="name" value="eGenericExceptions"/> | ||
697 | </eAnnotations> | ||
698 | <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> | ||
699 | <details key="suppressedIsSetVisibility" value="true"/> | ||
700 | <details key="suppressedUnsetVisibility" value="true"/> | ||
701 | </eAnnotations> | ||
702 | </eStructuralFeatures> | ||
703 | <eStructuralFeatures xsi:type="ecore:EReference" name="eExceptions" upperBound="-1" | ||
704 | eType="#//EClassifier" unsettable="true"> | ||
705 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
706 | <details key="kind" value="attribute"/> | ||
707 | <details key="name" value="eExceptions"/> | ||
708 | </eAnnotations> | ||
709 | <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> | ||
710 | <details key="suppressedIsSetVisibility" value="true"/> | ||
711 | <details key="suppressedUnsetVisibility" value="true"/> | ||
712 | </eAnnotations> | ||
713 | </eStructuralFeatures> | ||
714 | <eStructuralFeatures xsi:type="ecore:EReference" name="eContainingClass" eType="#//EClass" | ||
715 | transient="true" eOpposite="#//EClass/eOperations"/> | ||
716 | </eClassifiers> | ||
717 | <eClassifiers xsi:type="ecore:EClass" name="EPackage" eSuperTypes="#//ENamedElement"> | ||
718 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
719 | <details key="name" value="EPackage"/> | ||
720 | <details key="kind" value="elementOnly"/> | ||
721 | </eAnnotations> | ||
722 | <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore"> | ||
723 | <details key="constraints" value="WellFormedNsURI WellFormedNsPrefix UniqueSubpackageNames UniqueClassifierNames UniqueNsURIs"/> | ||
724 | </eAnnotations> | ||
725 | <eOperations name="getEClassifier" eType="#//EClassifier"> | ||
726 | <eParameters name="name" eType="#//EString"/> | ||
727 | </eOperations> | ||
728 | <eStructuralFeatures xsi:type="ecore:EReference" name="eClassifiers" upperBound="-1" | ||
729 | eType="#//EClassifier" containment="true" eOpposite="#//EClassifier/ePackage"> | ||
730 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
731 | <details key="kind" value="element"/> | ||
732 | <details key="name" value="eClassifiers"/> | ||
733 | </eAnnotations> | ||
734 | </eStructuralFeatures> | ||
735 | <eStructuralFeatures xsi:type="ecore:EReference" name="eSubpackages" upperBound="-1" | ||
736 | eType="#//EPackage" containment="true" eOpposite="#//EPackage/eSuperPackage"> | ||
737 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
738 | <details key="kind" value="element"/> | ||
739 | <details key="name" value="eSubpackages"/> | ||
740 | </eAnnotations> | ||
741 | </eStructuralFeatures> | ||
742 | <eStructuralFeatures xsi:type="ecore:EReference" name="eFactoryInstance" lowerBound="1" | ||
743 | eType="#//EFactory" transient="true" resolveProxies="false" eOpposite="#//EFactory/ePackage"> | ||
744 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
745 | <details key="kind" value="attribute"/> | ||
746 | <details key="name" value="eFactoryInstance"/> | ||
747 | </eAnnotations> | ||
748 | </eStructuralFeatures> | ||
749 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="nsPrefix" eType="#//EString"> | ||
750 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
751 | <details key="kind" value="attribute"/> | ||
752 | <details key="name" value="nsPrefix"/> | ||
753 | </eAnnotations> | ||
754 | </eStructuralFeatures> | ||
755 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="nsURI" eType="#//EString"> | ||
756 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
757 | <details key="kind" value="attribute"/> | ||
758 | <details key="name" value="nsURI"/> | ||
759 | </eAnnotations> | ||
760 | </eStructuralFeatures> | ||
761 | <eStructuralFeatures xsi:type="ecore:EReference" name="eSuperPackage" eType="#//EPackage" | ||
762 | transient="true" eOpposite="#//EPackage/eSubpackages"/> | ||
763 | </eClassifiers> | ||
764 | <eClassifiers xsi:type="ecore:EClass" name="EParameter" eSuperTypes="#//ETypedElement"> | ||
765 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
766 | <details key="name" value="EParameter"/> | ||
767 | <details key="kind" value="elementOnly"/> | ||
768 | </eAnnotations> | ||
769 | <eStructuralFeatures xsi:type="ecore:EReference" name="eOperation" eType="#//EOperation" | ||
770 | transient="true" eOpposite="#//EOperation/eParameters"/> | ||
771 | </eClassifiers> | ||
772 | <eClassifiers xsi:type="ecore:EClass" name="EReference" eSuperTypes="#//EStructuralFeature"> | ||
773 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
774 | <details key="name" value="EReference"/> | ||
775 | <details key="kind" value="elementOnly"/> | ||
776 | </eAnnotations> | ||
777 | <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore"> | ||
778 | <details key="constraints" value="ConsistentOpposite SingleContainer ConsistentKeys ConsistentUnique ConsistentContainer"/> | ||
779 | </eAnnotations> | ||
780 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="container" eType="#//EBoolean" | ||
781 | changeable="false" volatile="true" transient="true" derived="true"> | ||
782 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
783 | <details key="kind" value="attribute"/> | ||
784 | <details key="name" value="container"/> | ||
785 | </eAnnotations> | ||
786 | </eStructuralFeatures> | ||
787 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="containment" eType="#//EBoolean"> | ||
788 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
789 | <details key="kind" value="attribute"/> | ||
790 | <details key="name" value="containment"/> | ||
791 | </eAnnotations> | ||
792 | </eStructuralFeatures> | ||
793 | <eStructuralFeatures xsi:type="ecore:EReference" name="eKeys" upperBound="-1" | ||
794 | eType="#//EAttribute"> | ||
795 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
796 | <details key="kind" value="attribute"/> | ||
797 | <details key="name" value="eKeys"/> | ||
798 | </eAnnotations> | ||
799 | </eStructuralFeatures> | ||
800 | <eStructuralFeatures xsi:type="ecore:EReference" name="eOpposite" eType="#//EReference"> | ||
801 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
802 | <details key="kind" value="attribute"/> | ||
803 | <details key="name" value="eOpposite"/> | ||
804 | </eAnnotations> | ||
805 | </eStructuralFeatures> | ||
806 | <eStructuralFeatures xsi:type="ecore:EReference" name="eReferenceType" lowerBound="1" | ||
807 | eType="#//EClass" changeable="false" volatile="true" transient="true" derived="true"> | ||
808 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
809 | <details key="kind" value="attribute"/> | ||
810 | <details key="name" value="eReferenceType"/> | ||
811 | </eAnnotations> | ||
812 | </eStructuralFeatures> | ||
813 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="resolveProxies" eType="#//EBoolean" | ||
814 | defaultValueLiteral="true"> | ||
815 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
816 | <details key="kind" value="attribute"/> | ||
817 | <details key="name" value="resolveProxies"/> | ||
818 | </eAnnotations> | ||
819 | </eStructuralFeatures> | ||
820 | </eClassifiers> | ||
821 | <eClassifiers xsi:type="ecore:EDataType" name="EResource" instanceClassName="org.eclipse.emf.ecore.resource.Resource" | ||
822 | serializable="false"> | ||
823 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
824 | <details key="name" value="EResource"/> | ||
825 | </eAnnotations> | ||
826 | </eClassifiers> | ||
827 | <eClassifiers xsi:type="ecore:EDataType" name="EResourceSet" instanceClassName="org.eclipse.emf.ecore.resource.ResourceSet" | ||
828 | serializable="false"> | ||
829 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
830 | <details key="name" value="EResourceSet"/> | ||
831 | </eAnnotations> | ||
832 | </eClassifiers> | ||
833 | <eClassifiers xsi:type="ecore:EDataType" name="EShort" instanceClassName="short"> | ||
834 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
835 | <details key="name" value="EShort"/> | ||
836 | <details key="baseType" value="http://www.eclipse.org/emf/2003/XMLType#short"/> | ||
837 | </eAnnotations> | ||
838 | </eClassifiers> | ||
839 | <eClassifiers xsi:type="ecore:EDataType" name="EShortObject" instanceClassName="java.lang.Short"> | ||
840 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
841 | <details key="name" value="EShort:Object"/> | ||
842 | <details key="baseType" value="EShort"/> | ||
843 | </eAnnotations> | ||
844 | </eClassifiers> | ||
845 | <eClassifiers xsi:type="ecore:EDataType" name="EString" instanceClassName="java.lang.String"> | ||
846 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
847 | <details key="name" value="EString"/> | ||
848 | <details key="baseType" value="http://www.eclipse.org/emf/2003/XMLType#string"/> | ||
849 | </eAnnotations> | ||
850 | </eClassifiers> | ||
851 | <eClassifiers xsi:type="ecore:EClass" name="EStringToStringMapEntry" instanceClassName="java.util.Map$Entry"> | ||
852 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
853 | <details key="name" value="EStringToStringMapEntry"/> | ||
854 | <details key="kind" value="empty"/> | ||
855 | </eAnnotations> | ||
856 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="key" eType="#//EString"> | ||
857 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
858 | <details key="kind" value="attribute"/> | ||
859 | <details key="name" value="key"/> | ||
860 | </eAnnotations> | ||
861 | </eStructuralFeatures> | ||
862 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" eType="#//EString"> | ||
863 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
864 | <details key="kind" value="attribute"/> | ||
865 | <details key="name" value="value"/> | ||
866 | </eAnnotations> | ||
867 | </eStructuralFeatures> | ||
868 | </eClassifiers> | ||
869 | <eClassifiers xsi:type="ecore:EClass" name="EStructuralFeature" abstract="true" | ||
870 | eSuperTypes="#//ETypedElement"> | ||
871 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
872 | <details key="name" value="EStructuralFeature"/> | ||
873 | <details key="kind" value="elementOnly"/> | ||
874 | </eAnnotations> | ||
875 | <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore"> | ||
876 | <details key="constraints" value="ValidDefaultValueLiteral"/> | ||
877 | </eAnnotations> | ||
878 | <eOperations name="getFeatureID" eType="#//EInt"/> | ||
879 | <eOperations name="getContainerClass"> | ||
880 | <eGenericType eClassifier="#//EJavaClass"> | ||
881 | <eTypeArguments/> | ||
882 | </eGenericType> | ||
883 | </eOperations> | ||
884 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="changeable" eType="#//EBoolean" | ||
885 | defaultValueLiteral="true"> | ||
886 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
887 | <details key="kind" value="attribute"/> | ||
888 | <details key="name" value="changeable"/> | ||
889 | </eAnnotations> | ||
890 | </eStructuralFeatures> | ||
891 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="defaultValue" eType="#//EJavaObject" | ||
892 | changeable="false" volatile="true" transient="true" derived="true"> | ||
893 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
894 | <details key="kind" value="attribute"/> | ||
895 | <details key="name" value="defaultValue"/> | ||
896 | </eAnnotations> | ||
897 | </eStructuralFeatures> | ||
898 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="defaultValueLiteral" eType="#//EString"> | ||
899 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
900 | <details key="kind" value="attribute"/> | ||
901 | <details key="name" value="defaultValueLiteral"/> | ||
902 | </eAnnotations> | ||
903 | </eStructuralFeatures> | ||
904 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="derived" eType="#//EBoolean"> | ||
905 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
906 | <details key="kind" value="attribute"/> | ||
907 | <details key="name" value="derived"/> | ||
908 | </eAnnotations> | ||
909 | </eStructuralFeatures> | ||
910 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="transient" eType="#//EBoolean"> | ||
911 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
912 | <details key="kind" value="attribute"/> | ||
913 | <details key="name" value="transient"/> | ||
914 | </eAnnotations> | ||
915 | </eStructuralFeatures> | ||
916 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="unsettable" eType="#//EBoolean"> | ||
917 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
918 | <details key="kind" value="attribute"/> | ||
919 | <details key="name" value="unsettable"/> | ||
920 | </eAnnotations> | ||
921 | </eStructuralFeatures> | ||
922 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="volatile" eType="#//EBoolean"> | ||
923 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
924 | <details key="kind" value="attribute"/> | ||
925 | <details key="name" value="volatile"/> | ||
926 | </eAnnotations> | ||
927 | </eStructuralFeatures> | ||
928 | <eStructuralFeatures xsi:type="ecore:EReference" name="eContainingClass" eType="#//EClass" | ||
929 | transient="true" eOpposite="#//EClass/eStructuralFeatures"/> | ||
930 | </eClassifiers> | ||
931 | <eClassifiers xsi:type="ecore:EDataType" name="ETreeIterator" instanceClassName="org.eclipse.emf.common.util.TreeIterator" | ||
932 | serializable="false"> | ||
933 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
934 | <details key="name" value="ETreeIterator"/> | ||
935 | </eAnnotations> | ||
936 | <eTypeParameters name="E"/> | ||
937 | </eClassifiers> | ||
938 | <eClassifiers xsi:type="ecore:EClass" name="ETypedElement" abstract="true" eSuperTypes="#//ENamedElement"> | ||
939 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
940 | <details key="name" value="ETypedElement"/> | ||
941 | <details key="kind" value="elementOnly"/> | ||
942 | </eAnnotations> | ||
943 | <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore"> | ||
944 | <details key="constraints" value="ValidLowerBound ValidUpperBound ConsistentBounds ValidType"/> | ||
945 | </eAnnotations> | ||
946 | <eStructuralFeatures xsi:type="ecore:EReference" name="eGenericType" eType="#//EGenericType" | ||
947 | volatile="true" unsettable="true" containment="true" resolveProxies="false"> | ||
948 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
949 | <details key="kind" value="element"/> | ||
950 | <details key="name" value="eGenericType"/> | ||
951 | </eAnnotations> | ||
952 | <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> | ||
953 | <details key="suppressedIsSetVisibility" value="true"/> | ||
954 | <details key="suppressedUnsetVisibility" value="true"/> | ||
955 | </eAnnotations> | ||
956 | </eStructuralFeatures> | ||
957 | <eStructuralFeatures xsi:type="ecore:EReference" name="eType" eType="#//EClassifier" | ||
958 | volatile="true" unsettable="true"> | ||
959 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
960 | <details key="kind" value="attribute"/> | ||
961 | <details key="name" value="eType"/> | ||
962 | </eAnnotations> | ||
963 | <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> | ||
964 | <details key="suppressedIsSetVisibility" value="true"/> | ||
965 | <details key="suppressedUnsetVisibility" value="true"/> | ||
966 | </eAnnotations> | ||
967 | </eStructuralFeatures> | ||
968 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="lowerBound" eType="#//EInt"> | ||
969 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
970 | <details key="kind" value="attribute"/> | ||
971 | <details key="name" value="lowerBound"/> | ||
972 | </eAnnotations> | ||
973 | </eStructuralFeatures> | ||
974 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="many" eType="#//EBoolean" | ||
975 | changeable="false" volatile="true" transient="true" derived="true"> | ||
976 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
977 | <details key="kind" value="attribute"/> | ||
978 | <details key="name" value="many"/> | ||
979 | </eAnnotations> | ||
980 | </eStructuralFeatures> | ||
981 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="ordered" eType="#//EBoolean" | ||
982 | defaultValueLiteral="true"> | ||
983 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
984 | <details key="kind" value="attribute"/> | ||
985 | <details key="name" value="ordered"/> | ||
986 | </eAnnotations> | ||
987 | </eStructuralFeatures> | ||
988 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="required" eType="#//EBoolean" | ||
989 | changeable="false" volatile="true" transient="true" derived="true"> | ||
990 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
991 | <details key="kind" value="attribute"/> | ||
992 | <details key="name" value="required"/> | ||
993 | </eAnnotations> | ||
994 | </eStructuralFeatures> | ||
995 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="unique" eType="#//EBoolean" | ||
996 | defaultValueLiteral="true"> | ||
997 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
998 | <details key="kind" value="attribute"/> | ||
999 | <details key="name" value="unique"/> | ||
1000 | </eAnnotations> | ||
1001 | </eStructuralFeatures> | ||
1002 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="upperBound" eType="#//EInt" | ||
1003 | defaultValueLiteral="1"> | ||
1004 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
1005 | <details key="kind" value="attribute"/> | ||
1006 | <details key="name" value="upperBound"/> | ||
1007 | </eAnnotations> | ||
1008 | </eStructuralFeatures> | ||
1009 | </eClassifiers> | ||
1010 | <eClassifiers xsi:type="ecore:EClass" name="ETypeParameter" eSuperTypes="#//ENamedElement"> | ||
1011 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
1012 | <details key="name" value="ETypeParameter"/> | ||
1013 | <details key="kind" value="elementOnly"/> | ||
1014 | </eAnnotations> | ||
1015 | <eStructuralFeatures xsi:type="ecore:EReference" name="eBounds" upperBound="-1" | ||
1016 | eType="#//EGenericType" containment="true" resolveProxies="false"> | ||
1017 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
1018 | <details key="kind" value="element"/> | ||
1019 | <details key="name" value="eBounds"/> | ||
1020 | </eAnnotations> | ||
1021 | </eStructuralFeatures> | ||
1022 | </eClassifiers> | ||
1023 | </ecore:EPackage> | ||
diff --git a/Metrics/Metrics-Calculation/SocialNetwork_plugin/bin/ecore/.gitignore b/Metrics/Metrics-Calculation/SocialNetwork_plugin/bin/ecore/.gitignore new file mode 100644 index 00000000..c42ca056 --- /dev/null +++ b/Metrics/Metrics-Calculation/SocialNetwork_plugin/bin/ecore/.gitignore | |||
@@ -0,0 +1,8 @@ | |||
1 | /.Ecore_pattern.java._trace | ||
2 | /.MoreThenFiveSuperTypes.java._trace | ||
3 | /.DirectSupertype.java._trace | ||
4 | /.Ecore.java._trace | ||
5 | /.LoopInInheritence.java._trace | ||
6 | /.NonSymmetricOpposite.java._trace | ||
7 | /.Opposite.java._trace | ||
8 | /.OppositeDifferentClass.java._trace | ||
diff --git a/Metrics/Metrics-Calculation/SocialNetwork_plugin/bin/queries/.gitignore b/Metrics/Metrics-Calculation/SocialNetwork_plugin/bin/queries/.gitignore new file mode 100644 index 00000000..e9d711d4 --- /dev/null +++ b/Metrics/Metrics-Calculation/SocialNetwork_plugin/bin/queries/.gitignore | |||
@@ -0,0 +1,9 @@ | |||
1 | /.Ecore_pattern.java._trace | ||
2 | /.MoreThenFiveSuperTypes.java._trace | ||
3 | /.DirectSupertype.java._trace | ||
4 | /.Ecore.java._trace | ||
5 | /.LoopInInheritence.java._trace | ||
6 | /.NonSymmetricOpposite.java._trace | ||
7 | /.Opposite.java._trace | ||
8 | /.OppositeDifferentClass.java._trace | ||
9 | /.SuperTypes.java._trace | ||
diff --git a/Metrics/Metrics-Calculation/SocialNetwork_plugin/bin/queries/Ecore.vql b/Metrics/Metrics-Calculation/SocialNetwork_plugin/bin/queries/Ecore.vql new file mode 100644 index 00000000..9ddb64c9 --- /dev/null +++ b/Metrics/Metrics-Calculation/SocialNetwork_plugin/bin/queries/Ecore.vql | |||
@@ -0,0 +1,33 @@ | |||
1 | package queries | ||
2 | |||
3 | import epackage "http://www.eclipse.org/emf/2002/Ecore" | ||
4 | |||
5 | pattern directSupertype(a: EClass, b:EClass) { | ||
6 | EClass.eSuperTypes(a,b); | ||
7 | } | ||
8 | |||
9 | @Constraint(key={a}, severity="error", message="error") | ||
10 | pattern loopInInheritence(a: EClass) { | ||
11 | find directSupertype+(a,a); | ||
12 | } | ||
13 | |||
14 | pattern opposite(a:EReference, b: EReference) { | ||
15 | EReference.eOpposite(a,b); | ||
16 | } | ||
17 | @Constraint(key={a}, severity="error", message="error") | ||
18 | pattern oppositeDifferentClass(a:EReference) { | ||
19 | EReference.eOpposite(a,b); | ||
20 | EReference.eContainingClass(a,aContaining); | ||
21 | EReference.eType(b,bTarget); | ||
22 | aContaining != bTarget; | ||
23 | } | ||
24 | |||
25 | @Constraint(key={a}, severity="error", message="error") | ||
26 | pattern nonSymmetricOpposite(a:EReference, b:EReference) { | ||
27 | find opposite(a,b); | ||
28 | neg find opposite(b,a); | ||
29 | } | ||
30 | |||
31 | pattern superTypes(c1:EClass, c2:EClass){ | ||
32 | EClass.eSuperTypes(c1,c2); | ||
33 | } | ||
diff --git a/Metrics/Metrics-Calculation/SocialNetwork_plugin/bin/socialnetwork.aird b/Metrics/Metrics-Calculation/SocialNetwork_plugin/bin/socialnetwork.aird new file mode 100644 index 00000000..e7e28ecd --- /dev/null +++ b/Metrics/Metrics-Calculation/SocialNetwork_plugin/bin/socialnetwork.aird | |||
@@ -0,0 +1,183 @@ | |||
1 | <?xml version="1.0" encoding="UTF-8"?> | ||
2 | <xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:description="http://www.eclipse.org/sirius/description/1.1.0" xmlns:description_1="http://www.eclipse.org/sirius/diagram/description/1.1.0" xmlns:diagram="http://www.eclipse.org/sirius/diagram/1.1.0" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmlns:style="http://www.eclipse.org/sirius/diagram/description/style/1.1.0" xmlns:viewpoint="http://www.eclipse.org/sirius/1.1.0" xsi:schemaLocation="http://www.eclipse.org/sirius/description/1.1.0 http://www.eclipse.org/sirius/1.1.0#//description http://www.eclipse.org/sirius/diagram/description/1.1.0 http://www.eclipse.org/sirius/diagram/1.1.0#//description http://www.eclipse.org/sirius/diagram/description/style/1.1.0 http://www.eclipse.org/sirius/diagram/1.1.0#//description/style"> | ||
3 | <viewpoint:DAnalysis uid="_TZr30HA1EemKP426GDjFOg" selectedViews="_Ta8cEHA1EemKP426GDjFOg" version="14.1.0.201810161215"> | ||
4 | <semanticResources>socialnetwork.ecore</semanticResources> | ||
5 | <semanticResources>socialnetwork.genmodel</semanticResources> | ||
6 | <ownedViews xmi:type="viewpoint:DView" uid="_Ta8cEHA1EemKP426GDjFOg"> | ||
7 | <viewpoint xmi:type="description:Viewpoint" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']"/> | ||
8 | <ownedRepresentationDescriptors xmi:type="viewpoint:DRepresentationDescriptor" uid="_TbTBZXA1EemKP426GDjFOg" name="socialnetwork" repPath="#_TbTBYHA1EemKP426GDjFOg"> | ||
9 | <description xmi:type="description_1:DiagramDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']"/> | ||
10 | <target xmi:type="ecore:EPackage" href="socialnetwork.ecore#/"/> | ||
11 | </ownedRepresentationDescriptors> | ||
12 | </ownedViews> | ||
13 | </viewpoint:DAnalysis> | ||
14 | <diagram:DSemanticDiagram uid="_TbTBYHA1EemKP426GDjFOg" name="socialnetwork"> | ||
15 | <ownedAnnotationEntries xmi:type="description:AnnotationEntry" uid="_TbTBYXA1EemKP426GDjFOg" source="DANNOTATION_CUSTOMIZATION_KEY"> | ||
16 | <data xmi:type="diagram:ComputedStyleDescriptionRegistry" uid="_TbTBYnA1EemKP426GDjFOg"> | ||
17 | <computedStyleDescriptions xmi:type="style:EdgeStyleDescription" xmi:id="_ZZkWoHA1EemKP426GDjFOg" sourceArrow="FillDiamond" routingStyle="manhattan"> | ||
18 | <strokeColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> | ||
19 | <centerLabelStyleDescription xmi:type="style:CenterLabelStyleDescription" xmi:id="_ZZkWoXA1EemKP426GDjFOg" showIcon="false" labelExpression="service:render"> | ||
20 | <labelColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> | ||
21 | </centerLabelStyleDescription> | ||
22 | <endLabelStyleDescription xmi:type="style:EndLabelStyleDescription" xmi:id="_ZZkWonA1EemKP426GDjFOg" labelSize="6" showIcon="false" labelExpression="service:eKeysLabel"> | ||
23 | <labelColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='dark_blue']"/> | ||
24 | </endLabelStyleDescription> | ||
25 | </computedStyleDescriptions> | ||
26 | </data> | ||
27 | </ownedAnnotationEntries> | ||
28 | <ownedAnnotationEntries xmi:type="description:AnnotationEntry" uid="_TbTBZnA1EemKP426GDjFOg" source="GMF_DIAGRAMS"> | ||
29 | <data xmi:type="notation:Diagram" xmi:id="_TbTBZ3A1EemKP426GDjFOg" type="Sirius" element="_TbTBYHA1EemKP426GDjFOg" measurementUnit="Pixel"> | ||
30 | <children xmi:type="notation:Node" xmi:id="_Ur9YAHA1EemKP426GDjFOg" type="2003" element="_Ur5GkHA1EemKP426GDjFOg"> | ||
31 | <children xmi:type="notation:Node" xmi:id="_Ur9YA3A1EemKP426GDjFOg" type="5007"/> | ||
32 | <children xmi:type="notation:Node" xmi:id="_Ur9YBHA1EemKP426GDjFOg" type="7004"> | ||
33 | <children xmi:type="notation:Node" xmi:id="_W_L-4HA1EemKP426GDjFOg" type="3010" element="_W_DcAHA1EemKP426GDjFOg"> | ||
34 | <styles xmi:type="notation:FontStyle" xmi:id="_W_L-4XA1EemKP426GDjFOg" fontColor="2697711" fontName="Segoe UI" fontHeight="8"/> | ||
35 | <layoutConstraint xmi:type="notation:Location" xmi:id="_W_L-4nA1EemKP426GDjFOg"/> | ||
36 | </children> | ||
37 | <styles xmi:type="notation:SortingStyle" xmi:id="_Ur9YBXA1EemKP426GDjFOg"/> | ||
38 | <styles xmi:type="notation:FilteringStyle" xmi:id="_Ur9YBnA1EemKP426GDjFOg"/> | ||
39 | </children> | ||
40 | <styles xmi:type="notation:ShapeStyle" xmi:id="_Ur9YAXA1EemKP426GDjFOg" fontName="Segoe UI" fontHeight="8"/> | ||
41 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Ur9YAnA1EemKP426GDjFOg" x="285" y="165" width="120" height="100"/> | ||
42 | </children> | ||
43 | <children xmi:type="notation:Node" xmi:id="_X2ASIHA1EemKP426GDjFOg" type="2003" element="_X14WUHA1EemKP426GDjFOg"> | ||
44 | <children xmi:type="notation:Node" xmi:id="_X2A5MHA1EemKP426GDjFOg" type="5007"/> | ||
45 | <children xmi:type="notation:Node" xmi:id="_X2A5MXA1EemKP426GDjFOg" type="7004"> | ||
46 | <children xmi:type="notation:Node" xmi:id="_jitw4HA1EemKP426GDjFOg" type="3010" element="_jirUoHA1EemKP426GDjFOg"> | ||
47 | <styles xmi:type="notation:FontStyle" xmi:id="_jitw4XA1EemKP426GDjFOg" fontColor="2697711" fontName="Segoe UI" fontHeight="8"/> | ||
48 | <layoutConstraint xmi:type="notation:Location" xmi:id="_jitw4nA1EemKP426GDjFOg"/> | ||
49 | </children> | ||
50 | <styles xmi:type="notation:SortingStyle" xmi:id="_X2A5MnA1EemKP426GDjFOg"/> | ||
51 | <styles xmi:type="notation:FilteringStyle" xmi:id="_X2A5M3A1EemKP426GDjFOg"/> | ||
52 | </children> | ||
53 | <styles xmi:type="notation:ShapeStyle" xmi:id="_X2ASIXA1EemKP426GDjFOg" fontName="Segoe UI" fontHeight="8"/> | ||
54 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_X2ASInA1EemKP426GDjFOg" x="690" y="180" width="120" height="100"/> | ||
55 | </children> | ||
56 | <styles xmi:type="notation:DiagramStyle" xmi:id="_TbTBaHA1EemKP426GDjFOg"/> | ||
57 | <edges xmi:type="notation:Edge" xmi:id="_ZZnZ8HA1EemKP426GDjFOg" type="4001" element="_ZZjvkHA1EemKP426GDjFOg" source="_Ur9YAHA1EemKP426GDjFOg" target="_X2ASIHA1EemKP426GDjFOg"> | ||
58 | <children xmi:type="notation:Node" xmi:id="_ZZnZ9HA1EemKP426GDjFOg" type="6001"> | ||
59 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZZnZ9XA1EemKP426GDjFOg" x="6" y="10"/> | ||
60 | </children> | ||
61 | <children xmi:type="notation:Node" xmi:id="_ZZnZ9nA1EemKP426GDjFOg" type="6002"> | ||
62 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZZnZ93A1EemKP426GDjFOg" x="1" y="10"/> | ||
63 | </children> | ||
64 | <children xmi:type="notation:Node" xmi:id="_ZZnZ-HA1EemKP426GDjFOg" type="6003"> | ||
65 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZZnZ-XA1EemKP426GDjFOg" x="-1" y="10"/> | ||
66 | </children> | ||
67 | <styles xmi:type="notation:ConnectorStyle" xmi:id="_ZZnZ8XA1EemKP426GDjFOg" routing="Rectilinear"/> | ||
68 | <styles xmi:type="notation:FontStyle" xmi:id="_ZZnZ8nA1EemKP426GDjFOg" fontColor="7490599" fontName="Segoe UI" fontHeight="8"/> | ||
69 | <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_ZZnZ83A1EemKP426GDjFOg" points="[0, 0, -287, 4]$[143, 0, -144, 4]$[143, -4, -144, 0]$[287, -4, 0, 0]"/> | ||
70 | <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_ZZnZ-nA1EemKP426GDjFOg" id="(1.0,0.5)"/> | ||
71 | <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_ZZnZ-3A1EemKP426GDjFOg" id="(0.0,0.30612244897959184)"/> | ||
72 | </edges> | ||
73 | <edges xmi:type="notation:Edge" xmi:id="_f8gfMHA1EemKP426GDjFOg" type="4001" element="_f8eC8HA1EemKP426GDjFOg" source="_X2ASIHA1EemKP426GDjFOg" target="_X2ASIHA1EemKP426GDjFOg"> | ||
74 | <children xmi:type="notation:Node" xmi:id="_f8gfNHA1EemKP426GDjFOg" type="6001"> | ||
75 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_f8gfNXA1EemKP426GDjFOg" x="-8" y="7"/> | ||
76 | </children> | ||
77 | <children xmi:type="notation:Node" xmi:id="_f8hGQHA1EemKP426GDjFOg" type="6002"> | ||
78 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_f8hGQXA1EemKP426GDjFOg" x="12" y="10"/> | ||
79 | </children> | ||
80 | <children xmi:type="notation:Node" xmi:id="_f8hGQnA1EemKP426GDjFOg" type="6003"> | ||
81 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_f8hGQ3A1EemKP426GDjFOg" y="-10"/> | ||
82 | </children> | ||
83 | <styles xmi:type="notation:ConnectorStyle" xmi:id="_f8gfMXA1EemKP426GDjFOg" routing="Rectilinear"/> | ||
84 | <styles xmi:type="notation:FontStyle" xmi:id="_f8gfMnA1EemKP426GDjFOg" fontColor="7490599" fontName="Segoe UI" fontHeight="8"/> | ||
85 | <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_f8gfM3A1EemKP426GDjFOg" points="[4, 1, 0, -21]$[51, 1, 47, -21]$[51, -53, 47, -75]$[-25, -53, -29, -75]$[-25, -8, -29, -30]"/> | ||
86 | <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_f8hGRHA1EemKP426GDjFOg" id="(0.9666666666666667,0.09)"/> | ||
87 | <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_f8hGRXA1EemKP426GDjFOg" id="(1.0,0.30612244897959184)"/> | ||
88 | </edges> | ||
89 | <edges xmi:type="notation:Edge" xmi:id="_eUOggHA6EemKP426GDjFOg" type="4001" element="_eULdMHA6EemKP426GDjFOg" source="_X2ASIHA1EemKP426GDjFOg" target="_X2ASIHA1EemKP426GDjFOg"> | ||
90 | <children xmi:type="notation:Node" xmi:id="_eUOghHA6EemKP426GDjFOg" type="6001"> | ||
91 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_eUOghXA6EemKP426GDjFOg" y="-10"/> | ||
92 | </children> | ||
93 | <children xmi:type="notation:Node" xmi:id="_eUOghnA6EemKP426GDjFOg" type="6002"> | ||
94 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_eUOgh3A6EemKP426GDjFOg" y="10"/> | ||
95 | </children> | ||
96 | <children xmi:type="notation:Node" xmi:id="_eUOgiHA6EemKP426GDjFOg" type="6003"> | ||
97 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_eUOgiXA6EemKP426GDjFOg" y="10"/> | ||
98 | </children> | ||
99 | <styles xmi:type="notation:ConnectorStyle" xmi:id="_eUOggXA6EemKP426GDjFOg" routing="Rectilinear"/> | ||
100 | <styles xmi:type="notation:FontStyle" xmi:id="_eUOggnA6EemKP426GDjFOg" fontName="Segoe UI" fontHeight="8"/> | ||
101 | <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_eUOgg3A6EemKP426GDjFOg" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/> | ||
102 | <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_eUOginA6EemKP426GDjFOg" id="(0.5,0.5)"/> | ||
103 | <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_eUOgi3A6EemKP426GDjFOg" id="(0.5,0.5)"/> | ||
104 | </edges> | ||
105 | </data> | ||
106 | </ownedAnnotationEntries> | ||
107 | <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_Ur5GkHA1EemKP426GDjFOg" name="SocialNetwork" tooltipText="" outgoingEdges="_ZZjvkHA1EemKP426GDjFOg" width="12" height="10"> | ||
108 | <target xmi:type="ecore:EClass" href="socialnetwork.ecore#//SocialNetwork"/> | ||
109 | <semanticElements xmi:type="ecore:EClass" href="socialnetwork.ecore#//SocialNetwork"/> | ||
110 | <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_XY_mAHA1EemKP426GDjFOg" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216"> | ||
111 | <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/> | ||
112 | </ownedStyle> | ||
113 | <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/> | ||
114 | <ownedElements xmi:type="diagram:DNodeListElement" uid="_W_DcAHA1EemKP426GDjFOg" name="name : EString" tooltipText=""> | ||
115 | <target xmi:type="ecore:EAttribute" href="socialnetwork.ecore#//SocialNetwork/name"/> | ||
116 | <semanticElements xmi:type="ecore:EAttribute" href="socialnetwork.ecore#//SocialNetwork/name"/> | ||
117 | <ownedStyle xmi:type="diagram:BundledImage" uid="_XZANEHA1EemKP426GDjFOg" labelAlignment="LEFT"> | ||
118 | <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/> | ||
119 | </ownedStyle> | ||
120 | <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/> | ||
121 | </ownedElements> | ||
122 | </ownedDiagramElements> | ||
123 | <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_X14WUHA1EemKP426GDjFOg" name="Person" tooltipText="" outgoingEdges="_f8eC8HA1EemKP426GDjFOg _eULdMHA6EemKP426GDjFOg" incomingEdges="_ZZjvkHA1EemKP426GDjFOg _f8eC8HA1EemKP426GDjFOg _eULdMHA6EemKP426GDjFOg" width="12" height="10"> | ||
124 | <target xmi:type="ecore:EClass" href="socialnetwork.ecore#//Person"/> | ||
125 | <semanticElements xmi:type="ecore:EClass" href="socialnetwork.ecore#//Person"/> | ||
126 | <arrangeConstraints>KEEP_LOCATION</arrangeConstraints> | ||
127 | <arrangeConstraints>KEEP_SIZE</arrangeConstraints> | ||
128 | <arrangeConstraints>KEEP_RATIO</arrangeConstraints> | ||
129 | <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_kAhuQHA1EemKP426GDjFOg" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216"> | ||
130 | <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/> | ||
131 | </ownedStyle> | ||
132 | <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/> | ||
133 | <ownedElements xmi:type="diagram:DNodeListElement" uid="_jirUoHA1EemKP426GDjFOg" name="name : EString" tooltipText=""> | ||
134 | <target xmi:type="ecore:EAttribute" href="socialnetwork.ecore#//Person/name"/> | ||
135 | <semanticElements xmi:type="ecore:EAttribute" href="socialnetwork.ecore#//Person/name"/> | ||
136 | <ownedStyle xmi:type="diagram:BundledImage" uid="_kAiVUHA1EemKP426GDjFOg" labelAlignment="LEFT"> | ||
137 | <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/> | ||
138 | </ownedStyle> | ||
139 | <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/> | ||
140 | </ownedElements> | ||
141 | </ownedDiagramElements> | ||
142 | <ownedDiagramElements xmi:type="diagram:DEdge" uid="_ZZjvkHA1EemKP426GDjFOg" name="[0..*] persons" sourceNode="_Ur5GkHA1EemKP426GDjFOg" targetNode="_X14WUHA1EemKP426GDjFOg"> | ||
143 | <target xmi:type="ecore:EReference" href="socialnetwork.ecore#//SocialNetwork/persons"/> | ||
144 | <semanticElements xmi:type="ecore:EReference" href="socialnetwork.ecore#//SocialNetwork/persons"/> | ||
145 | <ownedStyle xmi:type="diagram:EdgeStyle" uid="_ZZkWo3A1EemKP426GDjFOg" description="_ZZkWoHA1EemKP426GDjFOg" sourceArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0"> | ||
146 | <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_ZZkWpHA1EemKP426GDjFOg" showIcon="false"> | ||
147 | <customFeatures>labelSize</customFeatures> | ||
148 | </centerLabelStyle> | ||
149 | <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_ZZkWpXA1EemKP426GDjFOg" showIcon="false" labelColor="39,76,114"> | ||
150 | <customFeatures>labelSize</customFeatures> | ||
151 | </endLabelStyle> | ||
152 | </ownedStyle> | ||
153 | <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/> | ||
154 | </ownedDiagramElements> | ||
155 | <ownedDiagramElements xmi:type="diagram:DEdge" uid="_f8eC8HA1EemKP426GDjFOg" name="[0..*] friends" sourceNode="_X14WUHA1EemKP426GDjFOg" targetNode="_X14WUHA1EemKP426GDjFOg"> | ||
156 | <target xmi:type="ecore:EReference" href="socialnetwork.ecore#//Person/friends"/> | ||
157 | <semanticElements xmi:type="ecore:EReference" href="socialnetwork.ecore#//Person/friends"/> | ||
158 | <ownedStyle xmi:type="diagram:EdgeStyle" uid="_erMusHA9EemKP426GDjFOg" routingStyle="manhattan" strokeColor="0,0,0"> | ||
159 | <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']/@style"/> | ||
160 | <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_erMusXA9EemKP426GDjFOg" showIcon="false"/> | ||
161 | <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_erMusnA9EemKP426GDjFOg" labelSize="6" showIcon="false" labelColor="39,76,114"/> | ||
162 | </ownedStyle> | ||
163 | <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/> | ||
164 | </ownedDiagramElements> | ||
165 | <ownedDiagramElements xmi:type="diagram:DEdge" uid="_eULdMHA6EemKP426GDjFOg" sourceNode="_X14WUHA1EemKP426GDjFOg" targetNode="_X14WUHA1EemKP426GDjFOg" beginLabel="[0..*] children" endLabel="[0..2] parents"> | ||
166 | <target xmi:type="ecore:EReference" href="socialnetwork.ecore#//Person/parents"/> | ||
167 | <semanticElements xmi:type="ecore:EReference" href="socialnetwork.ecore#//Person/children"/> | ||
168 | <semanticElements xmi:type="ecore:EReference" href="socialnetwork.ecore#//Person/parents"/> | ||
169 | <ownedStyle xmi:type="diagram:EdgeStyle" uid="_eUMEQHA6EemKP426GDjFOg" sourceArrow="InputArrow" routingStyle="manhattan" strokeColor="0,0,0"> | ||
170 | <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='Bi-directional%20EC_EReference%20']/@style"/> | ||
171 | <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_eUMEQXA6EemKP426GDjFOg" showIcon="false"/> | ||
172 | <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_eUMEQnA6EemKP426GDjFOg" showIcon="false"/> | ||
173 | </ownedStyle> | ||
174 | <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='Bi-directional%20EC_EReference%20']"/> | ||
175 | </ownedDiagramElements> | ||
176 | <description xmi:type="description_1:DiagramDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']"/> | ||
177 | <filterVariableHistory xmi:type="diagram:FilterVariableHistory" uid="_TbTBZHA1EemKP426GDjFOg"/> | ||
178 | <activatedLayers xmi:type="description_1:Layer" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer"/> | ||
179 | <activatedLayers xmi:type="description_1:AdditionalLayer" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@additionalLayers[name='Package']"/> | ||
180 | <activatedLayers xmi:type="description_1:AdditionalLayer" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@additionalLayers[name='Validation']"/> | ||
181 | <target xmi:type="ecore:EPackage" href="socialnetwork.ecore#/"/> | ||
182 | </diagram:DSemanticDiagram> | ||
183 | </xmi:XMI> | ||
diff --git a/Metrics/Metrics-Calculation/SocialNetwork_plugin/bin/socialnetwork.ecore b/Metrics/Metrics-Calculation/SocialNetwork_plugin/bin/socialnetwork.ecore new file mode 100644 index 00000000..cacf9921 --- /dev/null +++ b/Metrics/Metrics-Calculation/SocialNetwork_plugin/bin/socialnetwork.ecore | |||
@@ -0,0 +1,17 @@ | |||
1 | <?xml version="1.0" encoding="UTF-8"?> | ||
2 | <ecore:EPackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" | ||
3 | xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="socialnetwork" nsURI="http://ecse.mcgill.ca/socialnetwork" nsPrefix="socialnetwork"> | ||
4 | <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore"/> | ||
5 | <eClassifiers xsi:type="ecore:EClass" name="SocialNetwork"> | ||
6 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString" | ||
7 | defaultValueLiteral="SocialNetwork"/> | ||
8 | <eStructuralFeatures xsi:type="ecore:EReference" name="persons" upperBound="-1" | ||
9 | eType="#//Person" containment="true"/> | ||
10 | </eClassifiers> | ||
11 | <eClassifiers xsi:type="ecore:EClass" name="Person"> | ||
12 | <eStructuralFeatures xsi:type="ecore:EReference" name="friends" upperBound="-1" | ||
13 | eType="#//Person"/> | ||
14 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString" | ||
15 | defaultValueLiteral="Name"/> | ||
16 | </eClassifiers> | ||
17 | </ecore:EPackage> | ||
diff --git a/Metrics/Metrics-Calculation/SocialNetwork_plugin/bin/socialnetwork.genmodel b/Metrics/Metrics-Calculation/SocialNetwork_plugin/bin/socialnetwork.genmodel new file mode 100644 index 00000000..c9515653 --- /dev/null +++ b/Metrics/Metrics-Calculation/SocialNetwork_plugin/bin/socialnetwork.genmodel | |||
@@ -0,0 +1,21 @@ | |||
1 | <?xml version="1.0" encoding="UTF-8"?> | ||
2 | <genmodel:GenModel xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" | ||
3 | xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:genmodel="http://www.eclipse.org/emf/2002/GenModel" | ||
4 | modelDirectory="/SocialNetwork_plugin/encore_gen" creationIcons="false" | ||
5 | editDirectory="/ca.mcgill.ecse.socialnetwork.edit/src-gen" editorDirectory="/ca.mcgill.ecse.socialnetwork.editor/src-gen" | ||
6 | modelPluginID="SocialNetwork_plugin" modelName="Socialnetwork" rootExtendsClass="org.eclipse.emf.ecore.impl.MinimalEObjectImpl$Container" | ||
7 | codeFormatting="true" importerID="org.eclipse.emf.importer.ecore" complianceLevel="8.0" | ||
8 | copyrightFields="false" operationReflection="true" importOrganizing="true"> | ||
9 | <foreignModel>socialnetwork.ecore</foreignModel> | ||
10 | <testsDirectory xsi:nil="true"/> | ||
11 | <genPackages prefix="Socialnetwork" disposableProviderFactory="true" ecorePackage="socialnetwork.ecore#/"> | ||
12 | <genClasses ecoreClass="socialnetwork.ecore#//SocialNetwork"> | ||
13 | <genFeatures createChild="false" ecoreFeature="ecore:EAttribute socialnetwork.ecore#//SocialNetwork/name"/> | ||
14 | <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference socialnetwork.ecore#//SocialNetwork/persons"/> | ||
15 | </genClasses> | ||
16 | <genClasses ecoreClass="socialnetwork.ecore#//Person"> | ||
17 | <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference socialnetwork.ecore#//Person/friends"/> | ||
18 | <genFeatures createChild="false" ecoreFeature="ecore:EAttribute socialnetwork.ecore#//Person/name"/> | ||
19 | </genClasses> | ||
20 | </genPackages> | ||
21 | </genmodel:GenModel> | ||
diff --git a/Metrics/Metrics-Calculation/SocialNetwork_plugin/bin/statistics/200_nodes.jpg b/Metrics/Metrics-Calculation/SocialNetwork_plugin/bin/statistics/200_nodes.jpg new file mode 100644 index 00000000..a35c291b --- /dev/null +++ b/Metrics/Metrics-Calculation/SocialNetwork_plugin/bin/statistics/200_nodes.jpg | |||
Binary files differ | |||
diff --git a/Metrics/Metrics-Calculation/SocialNetwork_plugin/bin/statistics/220_nodes.jpg b/Metrics/Metrics-Calculation/SocialNetwork_plugin/bin/statistics/220_nodes.jpg new file mode 100644 index 00000000..4d41dff7 --- /dev/null +++ b/Metrics/Metrics-Calculation/SocialNetwork_plugin/bin/statistics/220_nodes.jpg | |||
Binary files differ | |||
diff --git a/Metrics/Metrics-Calculation/SocialNetwork_plugin/bin/statistics/260_nodes.jpg b/Metrics/Metrics-Calculation/SocialNetwork_plugin/bin/statistics/260_nodes.jpg new file mode 100644 index 00000000..b16cdfb2 --- /dev/null +++ b/Metrics/Metrics-Calculation/SocialNetwork_plugin/bin/statistics/260_nodes.jpg | |||
Binary files differ | |||
diff --git a/Metrics/Metrics-Calculation/SocialNetwork_plugin/bin/statistics/280_nodes.jpg b/Metrics/Metrics-Calculation/SocialNetwork_plugin/bin/statistics/280_nodes.jpg new file mode 100644 index 00000000..16c0ee23 --- /dev/null +++ b/Metrics/Metrics-Calculation/SocialNetwork_plugin/bin/statistics/280_nodes.jpg | |||
Binary files differ | |||
diff --git a/Metrics/Metrics-Calculation/SocialNetwork_plugin/bin/statistics/output.txt b/Metrics/Metrics-Calculation/SocialNetwork_plugin/bin/statistics/output.txt new file mode 100644 index 00000000..35158e20 --- /dev/null +++ b/Metrics/Metrics-Calculation/SocialNetwork_plugin/bin/statistics/output.txt | |||
@@ -0,0 +1,300 @@ | |||
1 | 1 | ||
2 | 9 | ||
3 | 7 | ||
4 | 0 | ||
5 | 4 | ||
6 | 6 | ||
7 | 16 | ||
8 | 0 | ||
9 | 2 | ||
10 | 4 | ||
11 | 17 | ||
12 | 20 | ||
13 | 1 | ||
14 | 5 | ||
15 | 2 | ||
16 | 3 | ||
17 | 11 | ||
18 | 6 | ||
19 | 4 | ||
20 | 0 | ||
21 | 2 | ||
22 | 1 | ||
23 | 3 | ||
24 | 5 | ||
25 | 9 | ||
26 | 13 | ||
27 | 11 | ||
28 | 0 | ||
29 | 1 | ||
30 | 10 | ||
31 | 3 | ||
32 | 0 | ||
33 | 1 | ||
34 | 1 | ||
35 | 0 | ||
36 | 17 | ||
37 | 0 | ||
38 | 4 | ||
39 | 2 | ||
40 | 0 | ||
41 | 1 | ||
42 | 10 | ||
43 | 10 | ||
44 | 0 | ||
45 | 24 | ||
46 | 9 | ||
47 | 0 | ||
48 | 14 | ||
49 | 1 | ||
50 | 11 | ||
51 | 2 | ||
52 | 17 | ||
53 | 3 | ||
54 | 3 | ||
55 | 3 | ||
56 | 0 | ||
57 | 3 | ||
58 | 1 | ||
59 | 3 | ||
60 | 2 | ||
61 | 2 | ||
62 | 1 | ||
63 | 0 | ||
64 | 3 | ||
65 | 6 | ||
66 | 3 | ||
67 | 16 | ||
68 | 3 | ||
69 | 10 | ||
70 | 6 | ||
71 | 6 | ||
72 | 6 | ||
73 | 11 | ||
74 | 6 | ||
75 | 10 | ||
76 | 20 | ||
77 | 1 | ||
78 | 4 | ||
79 | 13 | ||
80 | 0 | ||
81 | 0 | ||
82 | 3 | ||
83 | 2 | ||
84 | 0 | ||
85 | 12 | ||
86 | 0 | ||
87 | 0 | ||
88 | 22 | ||
89 | 4 | ||
90 | 0 | ||
91 | 0 | ||
92 | 20 | ||
93 | 1 | ||
94 | 10 | ||
95 | 9 | ||
96 | 11 | ||
97 | 5 | ||
98 | 27 | ||
99 | 1 | ||
100 | 3 | ||
101 | 9 | ||
102 | 0 | ||
103 | 23 | ||
104 | 10 | ||
105 | 9 | ||
106 | 23 | ||
107 | 0 | ||
108 | 3 | ||
109 | 7 | ||
110 | 2 | ||
111 | 0 | ||
112 | 9 | ||
113 | 3 | ||
114 | 0 | ||
115 | 12 | ||
116 | 11 | ||
117 | 7 | ||
118 | 6 | ||
119 | 9 | ||
120 | 2 | ||
121 | 0 | ||
122 | 3 | ||
123 | 4 | ||
124 | 3 | ||
125 | 9 | ||
126 | 3 | ||
127 | 0 | ||
128 | 7 | ||
129 | 2 | ||
130 | 1 | ||
131 | 9 | ||
132 | 1 | ||
133 | 11 | ||
134 | 6 | ||
135 | 5 | ||
136 | 16 | ||
137 | 0 | ||
138 | 19 | ||
139 | 14 | ||
140 | 9 | ||
141 | 13 | ||
142 | 2 | ||
143 | 8 | ||
144 | 0 | ||
145 | 6 | ||
146 | 1 | ||
147 | 1 | ||
148 | 2 | ||
149 | 0 | ||
150 | 3 | ||
151 | 15 | ||
152 | 3 | ||
153 | 0 | ||
154 | 3 | ||
155 | 17 | ||
156 | 1 | ||
157 | 15 | ||
158 | 5 | ||
159 | 1 | ||
160 | 21 | ||
161 | 8 | ||
162 | 2 | ||
163 | 7 | ||
164 | 3 | ||
165 | 16 | ||
166 | 11 | ||
167 | 1 | ||
168 | 5 | ||
169 | 1 | ||
170 | 5 | ||
171 | 1 | ||
172 | 6 | ||
173 | 3 | ||
174 | 16 | ||
175 | 6 | ||
176 | 17 | ||
177 | 3 | ||
178 | 5 | ||
179 | 7 | ||
180 | 2 | ||
181 | 9 | ||
182 | 2 | ||
183 | 1 | ||
184 | 11 | ||
185 | 1 | ||
186 | 0 | ||
187 | 3 | ||
188 | 5 | ||
189 | 6 | ||
190 | 2 | ||
191 | 5 | ||
192 | 1 | ||
193 | 4 | ||
194 | 9 | ||
195 | 0 | ||
196 | 11 | ||
197 | 1 | ||
198 | 10 | ||
199 | 13 | ||
200 | 6 | ||
201 | 2 | ||
202 | 1 | ||
203 | 3 | ||
204 | 4 | ||
205 | 0 | ||
206 | 1 | ||
207 | 2 | ||
208 | 10 | ||
209 | 12 | ||
210 | 3 | ||
211 | 3 | ||
212 | 3 | ||
213 | 0 | ||
214 | 2 | ||
215 | 4 | ||
216 | 2 | ||
217 | 18 | ||
218 | 3 | ||
219 | 8 | ||
220 | 7 | ||
221 | 5 | ||
222 | 3 | ||
223 | 16 | ||
224 | 1 | ||
225 | 4 | ||
226 | 8 | ||
227 | 15 | ||
228 | 1 | ||
229 | 11 | ||
230 | 15 | ||
231 | 1 | ||
232 | 8 | ||
233 | 7 | ||
234 | 1 | ||
235 | 2 | ||
236 | 0 | ||
237 | 9 | ||
238 | 5 | ||
239 | 2 | ||
240 | 1 | ||
241 | 3 | ||
242 | 6 | ||
243 | 4 | ||
244 | 8 | ||
245 | 3 | ||
246 | 12 | ||
247 | 4 | ||
248 | 21 | ||
249 | 9 | ||
250 | 2 | ||
251 | 3 | ||
252 | 2 | ||
253 | 1 | ||
254 | 3 | ||
255 | 11 | ||
256 | 2 | ||
257 | 9 | ||
258 | 0 | ||
259 | 10 | ||
260 | 6 | ||
261 | 1 | ||
262 | 2 | ||
263 | 0 | ||
264 | 8 | ||
265 | 5 | ||
266 | 2 | ||
267 | 3 | ||
268 | 8 | ||
269 | 1 | ||
270 | 13 | ||
271 | 8 | ||
272 | 2 | ||
273 | 2 | ||
274 | 11 | ||
275 | 4 | ||
276 | 21 | ||
277 | 6 | ||
278 | 5 | ||
279 | 0 | ||
280 | 8 | ||
281 | 8 | ||
282 | 12 | ||
283 | 0 | ||
284 | 0 | ||
285 | 4 | ||
286 | 1 | ||
287 | 19 | ||
288 | 5 | ||
289 | 3 | ||
290 | 1 | ||
291 | 3 | ||
292 | 12 | ||
293 | 2 | ||
294 | 6 | ||
295 | 11 | ||
296 | 8 | ||
297 | 8 | ||
298 | 2 | ||
299 | 18 | ||
300 | 0 | ||
diff --git a/Metrics/Metrics-Calculation/SocialNetwork_plugin/bin/statistics/plot_distribution.m b/Metrics/Metrics-Calculation/SocialNetwork_plugin/bin/statistics/plot_distribution.m new file mode 100644 index 00000000..4c67a191 --- /dev/null +++ b/Metrics/Metrics-Calculation/SocialNetwork_plugin/bin/statistics/plot_distribution.m | |||
@@ -0,0 +1,11 @@ | |||
1 | clear; | ||
2 | clc; | ||
3 | |||
4 | matrix = load('-ascii', "output.txt"); | ||
5 | hist(matrix,unique(matrix)); | ||
6 | hold on; | ||
7 | [a,b] = hist(matrix,unique(matrix)) | ||
8 | plot(b, a) | ||
9 | hold off; | ||
10 | sum(matrix) | ||
11 | average = sum(matrix) / length(matrix) \ No newline at end of file | ||
diff --git a/Metrics/Metrics-Calculation/SocialNetwork_plugin/build.properties b/Metrics/Metrics-Calculation/SocialNetwork_plugin/build.properties new file mode 100644 index 00000000..b91f214f --- /dev/null +++ b/Metrics/Metrics-Calculation/SocialNetwork_plugin/build.properties | |||
@@ -0,0 +1,10 @@ | |||
1 | bin.includes = .,\ | ||
2 | model/,\ | ||
3 | META-INF/,\ | ||
4 | plugin.xml,\ | ||
5 | plugin.properties,\ | ||
6 | src/ | ||
7 | jars.compile.order = . | ||
8 | source.. = encore_gen/,\ | ||
9 | src-gen/ | ||
10 | output.. = bin/ | ||
diff --git a/Metrics/Metrics-Calculation/SocialNetwork_plugin/data/Ecore/mpc_rep/Sql.ecore b/Metrics/Metrics-Calculation/SocialNetwork_plugin/data/Ecore/mpc_rep/Sql.ecore new file mode 100644 index 00000000..65d72135 --- /dev/null +++ b/Metrics/Metrics-Calculation/SocialNetwork_plugin/data/Ecore/mpc_rep/Sql.ecore | |||
@@ -0,0 +1,549 @@ | |||
1 | <?xml version="1.0" encoding="UTF-8"?> | ||
2 | <ecore:EPackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" | ||
3 | xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="sql" nsURI="http://www.com.jaspersoft.studio.data.Sql" nsPrefix="sql"> | ||
4 | <eClassifiers xsi:type="ecore:EClass" name="Model"> | ||
5 | <eStructuralFeatures xsi:type="ecore:EReference" name="wq" eType="#//WithQuery" | ||
6 | containment="true"/> | ||
7 | <eStructuralFeatures xsi:type="ecore:EReference" name="query" eType="#//SelectQuery" | ||
8 | containment="true"/> | ||
9 | </eClassifiers> | ||
10 | <eClassifiers xsi:type="ecore:EClass" name="WithQuery"> | ||
11 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="w" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> | ||
12 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="wname" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> | ||
13 | <eStructuralFeatures xsi:type="ecore:EReference" name="withCols" eType="#//WithColumns" | ||
14 | containment="true"/> | ||
15 | <eStructuralFeatures xsi:type="ecore:EReference" name="query" eType="#//SelectQuery" | ||
16 | containment="true"/> | ||
17 | </eClassifiers> | ||
18 | <eClassifiers xsi:type="ecore:EClass" name="WithColumns"/> | ||
19 | <eClassifiers xsi:type="ecore:EClass" name="FetchFirst"> | ||
20 | <eStructuralFeatures xsi:type="ecore:EReference" name="fetchFirst" eType="#//UnsignedValue" | ||
21 | containment="true"/> | ||
22 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="row" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> | ||
23 | </eClassifiers> | ||
24 | <eClassifiers xsi:type="ecore:EClass" name="Offset"> | ||
25 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="offset" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//ELongObject"/> | ||
26 | </eClassifiers> | ||
27 | <eClassifiers xsi:type="ecore:EClass" name="Limit"> | ||
28 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="l1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//ELongObject"/> | ||
29 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="l2" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//ELongObject"/> | ||
30 | </eClassifiers> | ||
31 | <eClassifiers xsi:type="ecore:EClass" name="SelectQuery"/> | ||
32 | <eClassifiers xsi:type="ecore:EClass" name="SelectSubSet"> | ||
33 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="op" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> | ||
34 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="all" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> | ||
35 | <eStructuralFeatures xsi:type="ecore:EReference" name="query" eType="#//Select" | ||
36 | containment="true"/> | ||
37 | </eClassifiers> | ||
38 | <eClassifiers xsi:type="ecore:EClass" name="Select" eSuperTypes="#//SelectQuery"> | ||
39 | <eStructuralFeatures xsi:type="ecore:EReference" name="op" upperBound="-1" eType="#//SelectSubSet" | ||
40 | containment="true"/> | ||
41 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="select" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> | ||
42 | <eStructuralFeatures xsi:type="ecore:EReference" name="cols" eType="#//OrColumn" | ||
43 | containment="true"/> | ||
44 | <eStructuralFeatures xsi:type="ecore:EReference" name="tbl" eType="#//OrTable" | ||
45 | containment="true"/> | ||
46 | <eStructuralFeatures xsi:type="ecore:EReference" name="whereExpression" eType="#//OrExpr" | ||
47 | containment="true"/> | ||
48 | <eStructuralFeatures xsi:type="ecore:EReference" name="groupByEntry" eType="#//OrGroupByColumn" | ||
49 | containment="true"/> | ||
50 | <eStructuralFeatures xsi:type="ecore:EReference" name="havingEntry" eType="#//OrExpr" | ||
51 | containment="true"/> | ||
52 | <eStructuralFeatures xsi:type="ecore:EReference" name="orderByEntry" eType="#//OrOrderByColumn" | ||
53 | containment="true"/> | ||
54 | <eStructuralFeatures xsi:type="ecore:EReference" name="lim" eType="#//Limit" containment="true"/> | ||
55 | <eStructuralFeatures xsi:type="ecore:EReference" name="offset" eType="#//Offset" | ||
56 | containment="true"/> | ||
57 | <eStructuralFeatures xsi:type="ecore:EReference" name="fetchFirst" eType="#//FetchFirst" | ||
58 | containment="true"/> | ||
59 | </eClassifiers> | ||
60 | <eClassifiers xsi:type="ecore:EClass" name="OrColumn" eSuperTypes="#//PivotForClause"> | ||
61 | <eStructuralFeatures xsi:type="ecore:EReference" name="entries" upperBound="-1" | ||
62 | eType="#//ColumnOrAlias" containment="true"/> | ||
63 | </eClassifiers> | ||
64 | <eClassifiers xsi:type="ecore:EClass" name="ColumnOrAlias" eSuperTypes="#//OrColumn"> | ||
65 | <eStructuralFeatures xsi:type="ecore:EReference" name="ce" eType="#//Operands" | ||
66 | containment="true"/> | ||
67 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="alias" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> | ||
68 | <eStructuralFeatures xsi:type="ecore:EReference" name="colAlias" eType="#//DbObjectName" | ||
69 | containment="true"/> | ||
70 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="allCols" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> | ||
71 | <eStructuralFeatures xsi:type="ecore:EReference" name="dbAllCols" eType="#//DbObjectNameAll" | ||
72 | containment="true"/> | ||
73 | </eClassifiers> | ||
74 | <eClassifiers xsi:type="ecore:EClass" name="ColumnFull" eSuperTypes="#//PivotForClause"/> | ||
75 | <eClassifiers xsi:type="ecore:EClass" name="OrTable"> | ||
76 | <eStructuralFeatures xsi:type="ecore:EReference" name="entries" upperBound="-1" | ||
77 | eType="#//FromTable" containment="true"/> | ||
78 | </eClassifiers> | ||
79 | <eClassifiers xsi:type="ecore:EClass" name="FromTable" eSuperTypes="#//OrTable"> | ||
80 | <eStructuralFeatures xsi:type="ecore:EReference" name="table" eType="#//TableOrAlias" | ||
81 | containment="true"/> | ||
82 | <eStructuralFeatures xsi:type="ecore:EReference" name="fjoin" upperBound="-1" | ||
83 | eType="#//FromTableJoin" containment="true"/> | ||
84 | </eClassifiers> | ||
85 | <eClassifiers xsi:type="ecore:EClass" name="FromTableJoin"> | ||
86 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="join" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> | ||
87 | <eStructuralFeatures xsi:type="ecore:EReference" name="onTable" eType="#//TableOrAlias" | ||
88 | containment="true"/> | ||
89 | <eStructuralFeatures xsi:type="ecore:EReference" name="joinExpr" eType="#//OrExpr" | ||
90 | containment="true"/> | ||
91 | <eStructuralFeatures xsi:type="ecore:EReference" name="joinCond" eType="#//JoinCondition" | ||
92 | containment="true"/> | ||
93 | </eClassifiers> | ||
94 | <eClassifiers xsi:type="ecore:EClass" name="JoinCondition"> | ||
95 | <eStructuralFeatures xsi:type="ecore:EReference" name="useCols" eType="#//UsingCols" | ||
96 | containment="true"/> | ||
97 | </eClassifiers> | ||
98 | <eClassifiers xsi:type="ecore:EClass" name="UsingCols" eSuperTypes="#//WithColumns"> | ||
99 | <eStructuralFeatures xsi:type="ecore:EReference" name="entries" upperBound="-1" | ||
100 | eType="#//DbObjectName" containment="true"/> | ||
101 | </eClassifiers> | ||
102 | <eClassifiers xsi:type="ecore:EClass" name="TableOrAlias"> | ||
103 | <eStructuralFeatures xsi:type="ecore:EReference" name="tfull" eType="#//TableFull" | ||
104 | containment="true"/> | ||
105 | <eStructuralFeatures xsi:type="ecore:EReference" name="sq" eType="#//SubQueryOperand" | ||
106 | containment="true"/> | ||
107 | <eStructuralFeatures xsi:type="ecore:EReference" name="values" eType="#//FromValues" | ||
108 | containment="true"/> | ||
109 | <eStructuralFeatures xsi:type="ecore:EReference" name="pivot" eType="#//PivotTable" | ||
110 | containment="true"/> | ||
111 | <eStructuralFeatures xsi:type="ecore:EReference" name="unpivot" eType="#//UnpivotTable" | ||
112 | containment="true"/> | ||
113 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="alias" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> | ||
114 | <eStructuralFeatures xsi:type="ecore:EReference" name="tblAlias" eType="#//DbObjectName" | ||
115 | containment="true"/> | ||
116 | </eClassifiers> | ||
117 | <eClassifiers xsi:type="ecore:EClass" name="FromValues"> | ||
118 | <eStructuralFeatures xsi:type="ecore:EReference" name="values" eType="#//Values" | ||
119 | containment="true"/> | ||
120 | <eStructuralFeatures xsi:type="ecore:EReference" name="c" eType="#//FromValuesColumns" | ||
121 | containment="true"/> | ||
122 | </eClassifiers> | ||
123 | <eClassifiers xsi:type="ecore:EClass" name="FromValuesColumns"> | ||
124 | <eStructuralFeatures xsi:type="ecore:EReference" name="fvCols" eType="#//FromValuesColumnNames" | ||
125 | containment="true"/> | ||
126 | </eClassifiers> | ||
127 | <eClassifiers xsi:type="ecore:EClass" name="FromValuesColumnNames"/> | ||
128 | <eClassifiers xsi:type="ecore:EClass" name="ColumnNames" eSuperTypes="#//FromValuesColumnNames"> | ||
129 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="colName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> | ||
130 | </eClassifiers> | ||
131 | <eClassifiers xsi:type="ecore:EClass" name="Values"> | ||
132 | <eStructuralFeatures xsi:type="ecore:EReference" name="rows" eType="#//Rows" containment="true"/> | ||
133 | </eClassifiers> | ||
134 | <eClassifiers xsi:type="ecore:EClass" name="Rows"> | ||
135 | <eStructuralFeatures xsi:type="ecore:EReference" name="entries" upperBound="-1" | ||
136 | eType="#//Row" containment="true"/> | ||
137 | </eClassifiers> | ||
138 | <eClassifiers xsi:type="ecore:EClass" name="Row" eSuperTypes="#//Rows"> | ||
139 | <eStructuralFeatures xsi:type="ecore:EReference" name="rowValues" eType="#//RowValues" | ||
140 | containment="true"/> | ||
141 | </eClassifiers> | ||
142 | <eClassifiers xsi:type="ecore:EClass" name="RowValues"> | ||
143 | <eStructuralFeatures xsi:type="ecore:EReference" name="entries" upperBound="-1" | ||
144 | eType="#//RowValue" containment="true"/> | ||
145 | </eClassifiers> | ||
146 | <eClassifiers xsi:type="ecore:EClass" name="RowValue" eSuperTypes="#//RowValues"> | ||
147 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="null" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> | ||
148 | </eClassifiers> | ||
149 | <eClassifiers xsi:type="ecore:EClass" name="PivotTable"> | ||
150 | <eStructuralFeatures xsi:type="ecore:EReference" name="pfun" eType="#//PivotFunctions" | ||
151 | containment="true"/> | ||
152 | <eStructuralFeatures xsi:type="ecore:EReference" name="pfor" eType="#//PivotForClause" | ||
153 | containment="true"/> | ||
154 | <eStructuralFeatures xsi:type="ecore:EReference" name="pin" eType="#//PivotInClause" | ||
155 | containment="true"/> | ||
156 | </eClassifiers> | ||
157 | <eClassifiers xsi:type="ecore:EClass" name="PivotFunctions"> | ||
158 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="abc" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> | ||
159 | </eClassifiers> | ||
160 | <eClassifiers xsi:type="ecore:EClass" name="PivotFunction"/> | ||
161 | <eClassifiers xsi:type="ecore:EClass" name="PivotInClause"> | ||
162 | <eStructuralFeatures xsi:type="ecore:EReference" name="sq" eType="#//SubQueryOperand" | ||
163 | containment="true"/> | ||
164 | <eStructuralFeatures xsi:type="ecore:EReference" name="args" eType="#//UnpivotInClauseArgs" | ||
165 | containment="true"/> | ||
166 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="pinany" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> | ||
167 | </eClassifiers> | ||
168 | <eClassifiers xsi:type="ecore:EClass" name="UnpivotTable"> | ||
169 | <eStructuralFeatures xsi:type="ecore:EReference" name="pcols" eType="#//PivotColumns" | ||
170 | containment="true"/> | ||
171 | <eStructuralFeatures xsi:type="ecore:EReference" name="pfor" eType="#//PivotForClause" | ||
172 | containment="true"/> | ||
173 | <eStructuralFeatures xsi:type="ecore:EReference" name="inop" eType="#//UnpivotInClause" | ||
174 | containment="true"/> | ||
175 | </eClassifiers> | ||
176 | <eClassifiers xsi:type="ecore:EClass" name="UnpivotInClause"/> | ||
177 | <eClassifiers xsi:type="ecore:EClass" name="UnpivotInClauseArgs"/> | ||
178 | <eClassifiers xsi:type="ecore:EClass" name="UnpivotInClauseArg" eSuperTypes="#//UnpivotInClauseArgs"> | ||
179 | <eStructuralFeatures xsi:type="ecore:EReference" name="pcols" eType="#//PivotColumns" | ||
180 | containment="true"/> | ||
181 | <eStructuralFeatures xsi:type="ecore:EReference" name="cfuls" eType="#//PivotColumns" | ||
182 | containment="true"/> | ||
183 | </eClassifiers> | ||
184 | <eClassifiers xsi:type="ecore:EClass" name="PivotForClause"/> | ||
185 | <eClassifiers xsi:type="ecore:EClass" name="PivotColumns"/> | ||
186 | <eClassifiers xsi:type="ecore:EClass" name="Pivots" eSuperTypes="#//PivotColumns"/> | ||
187 | <eClassifiers xsi:type="ecore:EClass" name="PivotCol" eSuperTypes="#//PivotFunction #//PivotColumns #//Pivots"/> | ||
188 | <eClassifiers xsi:type="ecore:EClass" name="TableFull"/> | ||
189 | <eClassifiers xsi:type="ecore:EClass" name="DbObjectNameAll"> | ||
190 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="dbname" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> | ||
191 | </eClassifiers> | ||
192 | <eClassifiers xsi:type="ecore:EClass" name="DbObjectName" eSuperTypes="#//ColumnFull #//UsingCols #//PivotCol #//TableFull"> | ||
193 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="dbname" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> | ||
194 | </eClassifiers> | ||
195 | <eClassifiers xsi:type="ecore:EClass" name="OrOrderByColumn"> | ||
196 | <eStructuralFeatures xsi:type="ecore:EReference" name="entries" upperBound="-1" | ||
197 | eType="#//OrderByColumnFull" containment="true"/> | ||
198 | </eClassifiers> | ||
199 | <eClassifiers xsi:type="ecore:EClass" name="OrderByColumnFull" eSuperTypes="#//OrOrderByColumn"> | ||
200 | <eStructuralFeatures xsi:type="ecore:EReference" name="colOrder" eType="#//ColumnFull" | ||
201 | containment="true"/> | ||
202 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="colOrderInt" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//ELongObject"/> | ||
203 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="direction" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> | ||
204 | </eClassifiers> | ||
205 | <eClassifiers xsi:type="ecore:EClass" name="OrGroupByColumn"> | ||
206 | <eStructuralFeatures xsi:type="ecore:EReference" name="entries" upperBound="-1" | ||
207 | eType="#//GroupByColumnFull" containment="true"/> | ||
208 | </eClassifiers> | ||
209 | <eClassifiers xsi:type="ecore:EClass" name="GroupByColumnFull" eSuperTypes="#//OrGroupByColumn"> | ||
210 | <eStructuralFeatures xsi:type="ecore:EReference" name="colGrBy" eType="#//ColumnFull" | ||
211 | containment="true"/> | ||
212 | <eStructuralFeatures xsi:type="ecore:EReference" name="gbFunction" eType="#//OpFunction" | ||
213 | containment="true"/> | ||
214 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="grByInt" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//ELongObject"/> | ||
215 | </eClassifiers> | ||
216 | <eClassifiers xsi:type="ecore:EClass" name="OrExpr"> | ||
217 | <eStructuralFeatures xsi:type="ecore:EReference" name="entries" upperBound="-1" | ||
218 | eType="#//FullExpression" containment="true"/> | ||
219 | </eClassifiers> | ||
220 | <eClassifiers xsi:type="ecore:EClass" name="FullExpression" eSuperTypes="#//OrExpr"> | ||
221 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="c" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> | ||
222 | <eStructuralFeatures xsi:type="ecore:EReference" name="efrag" eType="#//FullExpression" | ||
223 | containment="true"/> | ||
224 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="notPrm" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> | ||
225 | <eStructuralFeatures xsi:type="ecore:EReference" name="expgroup" eType="#//ExprGroup" | ||
226 | containment="true"/> | ||
227 | <eStructuralFeatures xsi:type="ecore:EReference" name="exp" eType="#//FullExpression" | ||
228 | containment="true"/> | ||
229 | <eStructuralFeatures xsi:type="ecore:EReference" name="xexp" eType="#//XExpr" | ||
230 | containment="true"/> | ||
231 | <eStructuralFeatures xsi:type="ecore:EReference" name="in" eType="#//InOper" containment="true"/> | ||
232 | <eStructuralFeatures xsi:type="ecore:EReference" name="exists" eType="#//ExistsOper" | ||
233 | containment="true"/> | ||
234 | <eStructuralFeatures xsi:type="ecore:EReference" name="op1" eType="#//Operands" | ||
235 | containment="true"/> | ||
236 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="isnull" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> | ||
237 | <eStructuralFeatures xsi:type="ecore:EReference" name="between" eType="#//Between" | ||
238 | containment="true"/> | ||
239 | <eStructuralFeatures xsi:type="ecore:EReference" name="like" eType="#//Like" containment="true"/> | ||
240 | <eStructuralFeatures xsi:type="ecore:EReference" name="comp" eType="#//Comparison" | ||
241 | containment="true"/> | ||
242 | </eClassifiers> | ||
243 | <eClassifiers xsi:type="ecore:EClass" name="ExprGroup"> | ||
244 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="isnot" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> | ||
245 | <eStructuralFeatures xsi:type="ecore:EReference" name="expr" eType="#//OrExpr" | ||
246 | containment="true"/> | ||
247 | </eClassifiers> | ||
248 | <eClassifiers xsi:type="ecore:EClass" name="XExpr"> | ||
249 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="xf" eType="#//XFunction"/> | ||
250 | <eStructuralFeatures xsi:type="ecore:EReference" name="col" eType="#//Operands" | ||
251 | containment="true"/> | ||
252 | <eStructuralFeatures xsi:type="ecore:EReference" name="prm" eType="#//Prms" containment="true"/> | ||
253 | </eClassifiers> | ||
254 | <eClassifiers xsi:type="ecore:EEnum" name="XFunction"> | ||
255 | <eLiterals name="xin" literal="{IN"/> | ||
256 | <eLiterals name="xnotin" value="1" literal="{NOTIN"/> | ||
257 | <eLiterals name="xeq" value="2" literal="{EQUAL"/> | ||
258 | <eLiterals name="xnoteq" value="3" literal="{NOTEQUAL"/> | ||
259 | <eLiterals name="xls" value="4" literal="{LESS"/> | ||
260 | <eLiterals name="xlsr" value="5" literal="{LESS]"/> | ||
261 | <eLiterals name="xgtl" value="6" literal="{[GREATER"/> | ||
262 | <eLiterals name="xgt" value="7" literal="{GREATER"/> | ||
263 | <eLiterals name="xbwn" value="8" literal="{BETWEEN"/> | ||
264 | <eLiterals name="xbwnc" value="9" literal="{[BETWEEN]"/> | ||
265 | <eLiterals name="xbwnl" value="10" literal="{[BETWEEN"/> | ||
266 | <eLiterals name="xbwnr" value="11" literal="{BETWEEN]"/> | ||
267 | </eClassifiers> | ||
268 | <eClassifiers xsi:type="ecore:EClass" name="Prms"> | ||
269 | <eStructuralFeatures xsi:type="ecore:EReference" name="entries" upperBound="-1" | ||
270 | eType="#//JRParameter" containment="true"/> | ||
271 | </eClassifiers> | ||
272 | <eClassifiers xsi:type="ecore:EClass" name="JRParameter" eSuperTypes="#//Prms"> | ||
273 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="jrprm" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> | ||
274 | </eClassifiers> | ||
275 | <eClassifiers xsi:type="ecore:EClass" name="Comparison"> | ||
276 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="operator" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> | ||
277 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="subOperator" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> | ||
278 | <eStructuralFeatures xsi:type="ecore:EReference" name="op2" eType="#//Operands" | ||
279 | containment="true"/> | ||
280 | </eClassifiers> | ||
281 | <eClassifiers xsi:type="ecore:EClass" name="Like"> | ||
282 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="opLike" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> | ||
283 | <eStructuralFeatures xsi:type="ecore:EReference" name="op2" eType="#//LikeOperand" | ||
284 | containment="true"/> | ||
285 | </eClassifiers> | ||
286 | <eClassifiers xsi:type="ecore:EClass" name="LikeOperand"> | ||
287 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="op2" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> | ||
288 | <eStructuralFeatures xsi:type="ecore:EReference" name="fop2" eType="#//OpFunction" | ||
289 | containment="true"/> | ||
290 | <eStructuralFeatures xsi:type="ecore:EReference" name="fcast" eType="#//OpFunctionCast" | ||
291 | containment="true"/> | ||
292 | <eStructuralFeatures xsi:type="ecore:EReference" name="fparam" eType="#//POperand" | ||
293 | containment="true"/> | ||
294 | </eClassifiers> | ||
295 | <eClassifiers xsi:type="ecore:EClass" name="Between"> | ||
296 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="opBetween" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> | ||
297 | <eStructuralFeatures xsi:type="ecore:EReference" name="op2" eType="#//Operands" | ||
298 | containment="true"/> | ||
299 | <eStructuralFeatures xsi:type="ecore:EReference" name="op3" eType="#//Operands" | ||
300 | containment="true"/> | ||
301 | </eClassifiers> | ||
302 | <eClassifiers xsi:type="ecore:EClass" name="InOper"> | ||
303 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="op" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> | ||
304 | <eStructuralFeatures xsi:type="ecore:EReference" name="subquery" eType="#//SubQueryOperand" | ||
305 | containment="true"/> | ||
306 | <eStructuralFeatures xsi:type="ecore:EReference" name="opList" eType="#//OperandListGroup" | ||
307 | containment="true"/> | ||
308 | </eClassifiers> | ||
309 | <eClassifiers xsi:type="ecore:EClass" name="ExistsOper"> | ||
310 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="op" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> | ||
311 | <eStructuralFeatures xsi:type="ecore:EReference" name="subquery" eType="#//SubQueryOperand" | ||
312 | containment="true"/> | ||
313 | <eStructuralFeatures xsi:type="ecore:EReference" name="opList" eType="#//OperandListGroup" | ||
314 | containment="true"/> | ||
315 | </eClassifiers> | ||
316 | <eClassifiers xsi:type="ecore:EClass" name="OperandListGroup"> | ||
317 | <eStructuralFeatures xsi:type="ecore:EReference" name="opGroup" eType="#//OperandList" | ||
318 | containment="true"/> | ||
319 | </eClassifiers> | ||
320 | <eClassifiers xsi:type="ecore:EClass" name="OperandList"/> | ||
321 | <eClassifiers xsi:type="ecore:EClass" name="Operands" eSuperTypes="#//OpFunctionArgAgregate"> | ||
322 | <eStructuralFeatures xsi:type="ecore:EReference" name="op1" eType="#//Operand" | ||
323 | containment="true"/> | ||
324 | <eStructuralFeatures xsi:type="ecore:EReference" name="left" eType="#//Operands" | ||
325 | containment="true"/> | ||
326 | <eStructuralFeatures xsi:type="ecore:EReference" name="right" eType="#//Operand" | ||
327 | containment="true"/> | ||
328 | </eClassifiers> | ||
329 | <eClassifiers xsi:type="ecore:EClass" name="Operand"> | ||
330 | <eStructuralFeatures xsi:type="ecore:EReference" name="column" eType="#//ColumnOperand" | ||
331 | containment="true"/> | ||
332 | <eStructuralFeatures xsi:type="ecore:EReference" name="xop" eType="#//Operand" | ||
333 | containment="true"/> | ||
334 | <eStructuralFeatures xsi:type="ecore:EReference" name="subq" eType="#//SubQueryOperand" | ||
335 | containment="true"/> | ||
336 | <eStructuralFeatures xsi:type="ecore:EReference" name="fcast" eType="#//OpFunctionCast" | ||
337 | containment="true"/> | ||
338 | <eStructuralFeatures xsi:type="ecore:EReference" name="fext" eType="#//FunctionExtract" | ||
339 | containment="true"/> | ||
340 | <eStructuralFeatures xsi:type="ecore:EReference" name="func" eType="#//OpFunction" | ||
341 | containment="true"/> | ||
342 | <eStructuralFeatures xsi:type="ecore:EReference" name="sqlcase" eType="#//SQLCaseOperand" | ||
343 | containment="true"/> | ||
344 | <eStructuralFeatures xsi:type="ecore:EReference" name="param" eType="#//POperand" | ||
345 | containment="true"/> | ||
346 | <eStructuralFeatures xsi:type="ecore:EReference" name="eparam" eType="#//ExpOperand" | ||
347 | containment="true"/> | ||
348 | <eStructuralFeatures xsi:type="ecore:EReference" name="scalar" eType="#//ScalarOperand" | ||
349 | containment="true"/> | ||
350 | </eClassifiers> | ||
351 | <eClassifiers xsi:type="ecore:EClass" name="OpFunction"> | ||
352 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="fname" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> | ||
353 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="star" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> | ||
354 | <eStructuralFeatures xsi:type="ecore:EReference" name="args" eType="#//OpFunctionArg" | ||
355 | containment="true"/> | ||
356 | <eStructuralFeatures xsi:type="ecore:EReference" name="fan" eType="#//FunctionAnalytical" | ||
357 | containment="true"/> | ||
358 | </eClassifiers> | ||
359 | <eClassifiers xsi:type="ecore:EClass" name="FunctionExtract"> | ||
360 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="v" eType="#//EXTRACT_VALUES"/> | ||
361 | <eStructuralFeatures xsi:type="ecore:EReference" name="operand" eType="#//Operands" | ||
362 | containment="true"/> | ||
363 | </eClassifiers> | ||
364 | <eClassifiers xsi:type="ecore:EClass" name="FunctionAnalytical"> | ||
365 | <eStructuralFeatures xsi:type="ecore:EReference" name="anClause" eType="#//AnalyticClause" | ||
366 | containment="true"/> | ||
367 | </eClassifiers> | ||
368 | <eClassifiers xsi:type="ecore:EClass" name="AnalyticClause"> | ||
369 | <eStructuralFeatures xsi:type="ecore:EReference" name="abc" eType="#//QueryPartitionClause" | ||
370 | containment="true"/> | ||
371 | <eStructuralFeatures xsi:type="ecore:EReference" name="obc" eType="#//OrderByClause" | ||
372 | containment="true"/> | ||
373 | <eStructuralFeatures xsi:type="ecore:EReference" name="winc" eType="#//WindowingClause" | ||
374 | containment="true"/> | ||
375 | </eClassifiers> | ||
376 | <eClassifiers xsi:type="ecore:EClass" name="WindowingClause"/> | ||
377 | <eClassifiers xsi:type="ecore:EClass" name="WindowingClauseBetween" eSuperTypes="#//WindowingClause"> | ||
378 | <eStructuralFeatures xsi:type="ecore:EReference" name="wcoP" eType="#//WindowingClauseOperandPreceding" | ||
379 | containment="true"/> | ||
380 | <eStructuralFeatures xsi:type="ecore:EReference" name="wcoF" eType="#//WindowingClauseOperandFollowing" | ||
381 | containment="true"/> | ||
382 | </eClassifiers> | ||
383 | <eClassifiers xsi:type="ecore:EClass" name="WindowingClauseOperandFollowing"> | ||
384 | <eStructuralFeatures xsi:type="ecore:EReference" name="exp" eType="#//AnalyticExprArg" | ||
385 | containment="true"/> | ||
386 | </eClassifiers> | ||
387 | <eClassifiers xsi:type="ecore:EClass" name="WindowingClauseOperandPreceding" eSuperTypes="#//WindowingClause"> | ||
388 | <eStructuralFeatures xsi:type="ecore:EReference" name="expr" eType="#//AnalyticExprArg" | ||
389 | containment="true"/> | ||
390 | </eClassifiers> | ||
391 | <eClassifiers xsi:type="ecore:EClass" name="OrderByClause"> | ||
392 | <eStructuralFeatures xsi:type="ecore:EReference" name="args" eType="#//OrderByClauseArgs" | ||
393 | containment="true"/> | ||
394 | </eClassifiers> | ||
395 | <eClassifiers xsi:type="ecore:EClass" name="OrderByClauseArgs"/> | ||
396 | <eClassifiers xsi:type="ecore:EClass" name="OrderByClauseArg" eSuperTypes="#//OrderByClauseArgs"> | ||
397 | <eStructuralFeatures xsi:type="ecore:EReference" name="col" eType="#//AnalyticExprArg" | ||
398 | containment="true"/> | ||
399 | </eClassifiers> | ||
400 | <eClassifiers xsi:type="ecore:EClass" name="QueryPartitionClause"> | ||
401 | <eStructuralFeatures xsi:type="ecore:EReference" name="args" eType="#//AnalyticExprArgs" | ||
402 | containment="true"/> | ||
403 | </eClassifiers> | ||
404 | <eClassifiers xsi:type="ecore:EClass" name="AnalyticExprArgs" eSuperTypes="#//QueryPartitionClause"/> | ||
405 | <eClassifiers xsi:type="ecore:EClass" name="AnalyticExprArg" eSuperTypes="#//AnalyticExprArgs"> | ||
406 | <eStructuralFeatures xsi:type="ecore:EReference" name="ce" eType="#//Operands" | ||
407 | containment="true"/> | ||
408 | <eStructuralFeatures xsi:type="ecore:EReference" name="colAlias" eType="#//DbObjectName" | ||
409 | containment="true"/> | ||
410 | </eClassifiers> | ||
411 | <eClassifiers xsi:type="ecore:EClass" name="OpFunctionArg"/> | ||
412 | <eClassifiers xsi:type="ecore:EClass" name="OpFunctionArgOperand" eSuperTypes="#//OpFunctionArg"> | ||
413 | <eStructuralFeatures xsi:type="ecore:EReference" name="op" eType="#//OpFunctionArgAgregate" | ||
414 | containment="true"/> | ||
415 | </eClassifiers> | ||
416 | <eClassifiers xsi:type="ecore:EClass" name="OpFunctionCast"> | ||
417 | <eStructuralFeatures xsi:type="ecore:EReference" name="op" eType="#//Operands" | ||
418 | containment="true"/> | ||
419 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="type" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> | ||
420 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="p" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//ELongObject"/> | ||
421 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="p2" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//ELongObject"/> | ||
422 | </eClassifiers> | ||
423 | <eClassifiers xsi:type="ecore:EClass" name="OpFunctionArgAgregate"/> | ||
424 | <eClassifiers xsi:type="ecore:EClass" name="POperand"> | ||
425 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="prm" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> | ||
426 | </eClassifiers> | ||
427 | <eClassifiers xsi:type="ecore:EClass" name="ExpOperand"> | ||
428 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="prm" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> | ||
429 | </eClassifiers> | ||
430 | <eClassifiers xsi:type="ecore:EClass" name="ColumnOperand"> | ||
431 | <eStructuralFeatures xsi:type="ecore:EReference" name="cfull" eType="#//ColumnFull" | ||
432 | containment="true"/> | ||
433 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="ora" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> | ||
434 | </eClassifiers> | ||
435 | <eClassifiers xsi:type="ecore:EClass" name="SubQueryOperand"> | ||
436 | <eStructuralFeatures xsi:type="ecore:EReference" name="sel" eType="#//SelectQuery" | ||
437 | containment="true"/> | ||
438 | </eClassifiers> | ||
439 | <eClassifiers xsi:type="ecore:EClass" name="ScalarOperand" eSuperTypes="#//RowValue #//OperandList"> | ||
440 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="sostr" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> | ||
441 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="sodbl" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBigDecimal"/> | ||
442 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="sodate" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> | ||
443 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="sotime" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> | ||
444 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="sodt" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> | ||
445 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="soUInt" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//ELongObject"/> | ||
446 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="soint" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//ELongObject"/> | ||
447 | </eClassifiers> | ||
448 | <eClassifiers xsi:type="ecore:EClass" name="SQLCaseOperand"> | ||
449 | <eStructuralFeatures xsi:type="ecore:EReference" name="wop" eType="#//Operands" | ||
450 | containment="true"/> | ||
451 | <eStructuralFeatures xsi:type="ecore:EReference" name="expr" eType="#//OrExpr" | ||
452 | containment="true"/> | ||
453 | <eStructuralFeatures xsi:type="ecore:EReference" name="when" eType="#//SQLCaseWhens" | ||
454 | containment="true"/> | ||
455 | </eClassifiers> | ||
456 | <eClassifiers xsi:type="ecore:EClass" name="SQLCaseWhens"/> | ||
457 | <eClassifiers xsi:type="ecore:EClass" name="SqlCaseWhen" eSuperTypes="#//SQLCaseWhens"> | ||
458 | <eStructuralFeatures xsi:type="ecore:EReference" name="wop" eType="#//Operands" | ||
459 | containment="true"/> | ||
460 | <eStructuralFeatures xsi:type="ecore:EReference" name="expr" eType="#//OrExpr" | ||
461 | containment="true"/> | ||
462 | <eStructuralFeatures xsi:type="ecore:EReference" name="texp" eType="#//Operands" | ||
463 | containment="true"/> | ||
464 | <eStructuralFeatures xsi:type="ecore:EReference" name="eexp" eType="#//Operands" | ||
465 | containment="true"/> | ||
466 | </eClassifiers> | ||
467 | <eClassifiers xsi:type="ecore:EEnum" name="EXTRACT_VALUES"> | ||
468 | <eLiterals name="ms" literal="MICROSECOND"/> | ||
469 | <eLiterals name="s" value="1" literal="SECOND"/> | ||
470 | <eLiterals name="m" value="2" literal="MINUTE"/> | ||
471 | <eLiterals name="h" value="3" literal="HOUR"/> | ||
472 | <eLiterals name="day" value="4" literal="DAY"/> | ||
473 | <eLiterals name="week" value="5" literal="WEEK"/> | ||
474 | <eLiterals name="month" value="6" literal="MONTH"/> | ||
475 | <eLiterals name="quart" value="7" literal="QUARTER"/> | ||
476 | <eLiterals name="year" value="8" literal="YEAR"/> | ||
477 | <eLiterals name="micros" value="9" literal="SECOND_MICROSECOND"/> | ||
478 | <eLiterals name="minMicro" value="10" literal="MINUTE_MICROSECOND"/> | ||
479 | <eLiterals name="minSec" value="11" literal="MINUTE_SECOND"/> | ||
480 | <eLiterals name="hms" value="12" literal="HOUR_MICROSECOND"/> | ||
481 | <eLiterals name="hs" value="13" literal="HOUR_SECOND"/> | ||
482 | <eLiterals name="hmin" value="14" literal="HOUR_MINUTE"/> | ||
483 | <eLiterals name="dms" value="15" literal="DAY_MICROSECOND"/> | ||
484 | <eLiterals name="ds" value="16" literal="DAY_SECOND"/> | ||
485 | <eLiterals name="daymin" value="17" literal="DAY_MINUTE"/> | ||
486 | <eLiterals name="dayh" value="18" literal="DAY_HOUR"/> | ||
487 | <eLiterals name="yearMonth" value="19" literal="YEAR_MONTH"/> | ||
488 | </eClassifiers> | ||
489 | <eClassifiers xsi:type="ecore:EClass" name="IntegerValue"> | ||
490 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="integer" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//ELongObject"/> | ||
491 | </eClassifiers> | ||
492 | <eClassifiers xsi:type="ecore:EClass" name="UnsignedValue"> | ||
493 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="integer" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//ELongObject"/> | ||
494 | </eClassifiers> | ||
495 | <eClassifiers xsi:type="ecore:EClass" name="Col" eSuperTypes="#//ColumnFull"> | ||
496 | <eStructuralFeatures xsi:type="ecore:EReference" name="entries" upperBound="-1" | ||
497 | eType="#//DbObjectName" containment="true"/> | ||
498 | </eClassifiers> | ||
499 | <eClassifiers xsi:type="ecore:EClass" name="abc" eSuperTypes="#//FromValuesColumnNames"> | ||
500 | <eStructuralFeatures xsi:type="ecore:EReference" name="entries" upperBound="-1" | ||
501 | eType="#//ColumnNames" containment="true"/> | ||
502 | </eClassifiers> | ||
503 | <eClassifiers xsi:type="ecore:EClass" name="UnipivotInClause" eSuperTypes="#//UnpivotInClause"> | ||
504 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="op" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> | ||
505 | <eStructuralFeatures xsi:type="ecore:EReference" name="args" eType="#//UnpivotInClauseArgs" | ||
506 | containment="true"/> | ||
507 | </eClassifiers> | ||
508 | <eClassifiers xsi:type="ecore:EClass" name="uicargs" eSuperTypes="#//UnpivotInClauseArgs"> | ||
509 | <eStructuralFeatures xsi:type="ecore:EReference" name="entries" upperBound="-1" | ||
510 | eType="#//UnpivotInClauseArg" containment="true"/> | ||
511 | </eClassifiers> | ||
512 | <eClassifiers xsi:type="ecore:EClass" name="pvcs" eSuperTypes="#//Pivots"> | ||
513 | <eStructuralFeatures xsi:type="ecore:EReference" name="entries" upperBound="-1" | ||
514 | eType="#//PivotCol" containment="true"/> | ||
515 | </eClassifiers> | ||
516 | <eClassifiers xsi:type="ecore:EClass" name="pcols" eSuperTypes="#//PivotCol"> | ||
517 | <eStructuralFeatures xsi:type="ecore:EReference" name="entries" upperBound="-1" | ||
518 | eType="#//DbObjectName" containment="true"/> | ||
519 | </eClassifiers> | ||
520 | <eClassifiers xsi:type="ecore:EClass" name="tbls" eSuperTypes="#//TableFull"> | ||
521 | <eStructuralFeatures xsi:type="ecore:EReference" name="entries" upperBound="-1" | ||
522 | eType="#//DbObjectName" containment="true"/> | ||
523 | </eClassifiers> | ||
524 | <eClassifiers xsi:type="ecore:EClass" name="OpList" eSuperTypes="#//OperandList"> | ||
525 | <eStructuralFeatures xsi:type="ecore:EReference" name="entries" upperBound="-1" | ||
526 | eType="#//ScalarOperand" containment="true"/> | ||
527 | </eClassifiers> | ||
528 | <eClassifiers xsi:type="ecore:EClass" name="Plus" eSuperTypes="#//Operands"/> | ||
529 | <eClassifiers xsi:type="ecore:EClass" name="Minus" eSuperTypes="#//Operands"/> | ||
530 | <eClassifiers xsi:type="ecore:EClass" name="Concat" eSuperTypes="#//Operands"/> | ||
531 | <eClassifiers xsi:type="ecore:EClass" name="Multiply" eSuperTypes="#//Operands"/> | ||
532 | <eClassifiers xsi:type="ecore:EClass" name="Division" eSuperTypes="#//Operands"/> | ||
533 | <eClassifiers xsi:type="ecore:EClass" name="OBCArgs" eSuperTypes="#//OrderByClauseArgs"> | ||
534 | <eStructuralFeatures xsi:type="ecore:EReference" name="entries" upperBound="-1" | ||
535 | eType="#//OrderByClauseArg" containment="true"/> | ||
536 | </eClassifiers> | ||
537 | <eClassifiers xsi:type="ecore:EClass" name="AExpArgs" eSuperTypes="#//AnalyticExprArgs"> | ||
538 | <eStructuralFeatures xsi:type="ecore:EReference" name="entries" upperBound="-1" | ||
539 | eType="#//AnalyticExprArg" containment="true"/> | ||
540 | </eClassifiers> | ||
541 | <eClassifiers xsi:type="ecore:EClass" name="OpFList" eSuperTypes="#//OpFunctionArg"> | ||
542 | <eStructuralFeatures xsi:type="ecore:EReference" name="entries" upperBound="-1" | ||
543 | eType="#//OpFunctionArgOperand" containment="true"/> | ||
544 | </eClassifiers> | ||
545 | <eClassifiers xsi:type="ecore:EClass" name="WhenList" eSuperTypes="#//SQLCaseWhens"> | ||
546 | <eStructuralFeatures xsi:type="ecore:EReference" name="entries" upperBound="-1" | ||
547 | eType="#//SqlCaseWhen" containment="true"/> | ||
548 | </eClassifiers> | ||
549 | </ecore:EPackage> | ||
diff --git a/Metrics/Metrics-Calculation/SocialNetwork_plugin/data/Ecore/na_rep/XSHMLMT.ecore b/Metrics/Metrics-Calculation/SocialNetwork_plugin/data/Ecore/na_rep/XSHMLMT.ecore new file mode 100644 index 00000000..f741662e --- /dev/null +++ b/Metrics/Metrics-Calculation/SocialNetwork_plugin/data/Ecore/na_rep/XSHMLMT.ecore | |||
@@ -0,0 +1,203 @@ | |||
1 | <?xml version="1.0" encoding="ASCII"?> | ||
2 | <ecore:EPackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="shml" nsURI="http://ecnu.models.xshml.xshmlmt/shml/" nsPrefix="shml"> | ||
3 | <eClassifiers xsi:type="ecore:EClass" name="System"> | ||
4 | <eOperations name="main"> | ||
5 | <eAnnotations source="aspect"/> | ||
6 | </eOperations> | ||
7 | <eOperations name="doprintconfiguration"> | ||
8 | <eAnnotations source="aspect"/> | ||
9 | </eOperations> | ||
10 | <eOperations name="dojump"> | ||
11 | <eAnnotations source="aspect"/> | ||
12 | </eOperations> | ||
13 | <eOperations name="callscilab"> | ||
14 | <eAnnotations source="aspect"/> | ||
15 | </eOperations> | ||
16 | <eOperations name="RealizeInitializeModel"> | ||
17 | <eAnnotations source="aspect"/> | ||
18 | <eParameters name="arguments" upperBound="-1"> | ||
19 | <eType xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/> | ||
20 | </eParameters> | ||
21 | </eOperations> | ||
22 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="name"> | ||
23 | <eType xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/> | ||
24 | </eStructuralFeatures> | ||
25 | <eStructuralFeatures xsi:type="ecore:EReference" name="tshss" upperBound="-1" eType="//TSHS" containment="true"/> | ||
26 | <eStructuralFeatures xsi:type="ecore:EReference" name="globalvariables" upperBound="-1" eType="//Variable" containment="true"/> | ||
27 | <eStructuralFeatures xsi:type="ecore:EReference" name="globalclocks" upperBound="-1" eType="//Clock" containment="true"/> | ||
28 | <eStructuralFeatures xsi:type="ecore:EReference" name="globalevents" upperBound="-1" eType="//Event" containment="true"/> | ||
29 | </eClassifiers> | ||
30 | <eClassifiers xsi:type="ecore:EClass" name="TSHS"> | ||
31 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="name"> | ||
32 | <eType xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/> | ||
33 | </eStructuralFeatures> | ||
34 | <eStructuralFeatures xsi:type="ecore:EReference" name="ownedodes" upperBound="-1" eType="//ODE" containment="true"/> | ||
35 | <eStructuralFeatures xsi:type="ecore:EReference" name="ownedstates" upperBound="-1" eType="//State" containment="true"/> | ||
36 | <eStructuralFeatures xsi:type="ecore:EReference" name="ownedtransitions" upperBound="-1" eType="//Transition" containment="true"/> | ||
37 | <eStructuralFeatures xsi:type="ecore:EReference" name="localvariables" upperBound="-1" eType="//Variable" containment="true"/> | ||
38 | <eStructuralFeatures xsi:type="ecore:EReference" name="localclocks" upperBound="-1" eType="//Clock" containment="true"/> | ||
39 | <eStructuralFeatures xsi:type="ecore:EReference" name="localevents" upperBound="-1" eType="//Event" containment="true"/> | ||
40 | <eStructuralFeatures xsi:type="ecore:EReference" name="initialstate" lowerBound="1" eType="//State"/> | ||
41 | <eStructuralFeatures xsi:type="ecore:EReference" name="ownedexpos" upperBound="-1" eType="//ExpoDistribution" containment="true"/> | ||
42 | <eStructuralFeatures xsi:type="ecore:EReference" name="ownedactions" upperBound="-1" eType="//Action" containment="true"/> | ||
43 | <eStructuralFeatures xsi:type="ecore:EReference" name="ownedguards" upperBound="-1" eType="//Guard" containment="true"/> | ||
44 | <eStructuralFeatures xsi:type="ecore:EReference" name="ownedunifs" upperBound="-1" eType="//UnifDistribution" containment="true"/> | ||
45 | </eClassifiers> | ||
46 | <eClassifiers xsi:type="ecore:EClass" name="Variable"> | ||
47 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="name"> | ||
48 | <eType xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/> | ||
49 | </eStructuralFeatures> | ||
50 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="value"> | ||
51 | <eType xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EFloat"/> | ||
52 | </eStructuralFeatures> | ||
53 | </eClassifiers> | ||
54 | <eClassifiers xsi:type="ecore:EClass" name="Clock"> | ||
55 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="name"> | ||
56 | <eType xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/> | ||
57 | </eStructuralFeatures> | ||
58 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="time"> | ||
59 | <eType xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EFloat"/> | ||
60 | </eStructuralFeatures> | ||
61 | </eClassifiers> | ||
62 | <eClassifiers xsi:type="ecore:EClass" name="Event"> | ||
63 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="name"> | ||
64 | <eType xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/> | ||
65 | </eStructuralFeatures> | ||
66 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="send"> | ||
67 | <eType xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EInt"/> | ||
68 | </eStructuralFeatures> | ||
69 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="receive"> | ||
70 | <eType xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EInt"/> | ||
71 | </eStructuralFeatures> | ||
72 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="active"> | ||
73 | <eType xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EInt"/> | ||
74 | </eStructuralFeatures> | ||
75 | </eClassifiers> | ||
76 | <eClassifiers xsi:type="ecore:EClass" name="Transition" abstract="true"> | ||
77 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="name"> | ||
78 | <eType xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/> | ||
79 | </eStructuralFeatures> | ||
80 | <eStructuralFeatures xsi:type="ecore:EReference" name="triggerevent" lowerBound="1" eType="//Event"/> | ||
81 | <eStructuralFeatures xsi:type="ecore:EReference" name="taction" lowerBound="1" eType="//Action"/> | ||
82 | <eStructuralFeatures xsi:type="ecore:EReference" name="evaluateguard" lowerBound="1" eType="//EvaluateGuard"/> | ||
83 | <eStructuralFeatures xsi:type="ecore:EReference" name="temporalguard" lowerBound="1" eType="//TemporalGuard"/> | ||
84 | </eClassifiers> | ||
85 | <eClassifiers xsi:type="ecore:EClass" name="Guard" abstract="true"> | ||
86 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="name"> | ||
87 | <eType xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/> | ||
88 | </eStructuralFeatures> | ||
89 | </eClassifiers> | ||
90 | <eClassifiers xsi:type="ecore:EClass" name="TemporalGuard" eSuperTypes="//Guard"> | ||
91 | <eOperations name="holdstg"> | ||
92 | <eAnnotations source="aspect"/> | ||
93 | <eType xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/> | ||
94 | </eOperations> | ||
95 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="tcondition"> | ||
96 | <eType xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/> | ||
97 | </eStructuralFeatures> | ||
98 | <eStructuralFeatures xsi:type="ecore:EReference" name="onclock" lowerBound="1" eType="//Clock"/> | ||
99 | </eClassifiers> | ||
100 | <eClassifiers xsi:type="ecore:EClass" name="EvaluateGuard" eSuperTypes="//Guard"> | ||
101 | <eOperations name="holdseg"> | ||
102 | <eAnnotations source="aspect"/> | ||
103 | <eType xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/> | ||
104 | </eOperations> | ||
105 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="vcondition"> | ||
106 | <eType xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/> | ||
107 | </eStructuralFeatures> | ||
108 | <eStructuralFeatures xsi:type="ecore:EReference" name="onvariable" lowerBound="1" eType="//Variable"/> | ||
109 | </eClassifiers> | ||
110 | <eClassifiers xsi:type="ecore:EClass" name="State"> | ||
111 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="name"> | ||
112 | <eType xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/> | ||
113 | </eStructuralFeatures> | ||
114 | <eStructuralFeatures xsi:type="ecore:EReference" name="slaveode" lowerBound="1" eType="//ODE"/> | ||
115 | <eStructuralFeatures xsi:type="ecore:EReference" name="outgoingct" upperBound="-1" eType="//ComTransition" eOpposite="//ComTransition/csrc"/> | ||
116 | <eStructuralFeatures xsi:type="ecore:EReference" name="incomingct" upperBound="-1" eType="//ComTransition" eOpposite="//ComTransition/ctgt"/> | ||
117 | <eStructuralFeatures xsi:type="ecore:EReference" name="outgoingpt" upperBound="-1" eType="//ProbTransition" eOpposite="//ProbTransition/psrc"/> | ||
118 | <eStructuralFeatures xsi:type="ecore:EReference" name="incomingpt" upperBound="-1" eType="//ProbTransition" eOpposite="//ProbTransition/ptgt"/> | ||
119 | <eStructuralFeatures xsi:type="ecore:EReference" name="subdiagram" lowerBound="1" eType="//TSHS"/> | ||
120 | <eStructuralFeatures xsi:type="ecore:EReference" name="fatherstate" lowerBound="1" eType="//State"/> | ||
121 | <eStructuralFeatures xsi:type="ecore:EReference" name="slavelambda" lowerBound="1" eType="//ExpoDistribution"/> | ||
122 | <eStructuralFeatures xsi:type="ecore:EReference" name="slaveunif" lowerBound="1" eType="//UnifDistribution"/> | ||
123 | </eClassifiers> | ||
124 | <eClassifiers xsi:type="ecore:EClass" name="ComTransition" eSuperTypes="//Transition"> | ||
125 | <eStructuralFeatures xsi:type="ecore:EReference" name="csrc" lowerBound="1" eType="//State" eOpposite="//State/outgoingct"/> | ||
126 | <eStructuralFeatures xsi:type="ecore:EReference" name="ctgt" eType="//State" eOpposite="//State/incomingct"/> | ||
127 | </eClassifiers> | ||
128 | <eClassifiers xsi:type="ecore:EClass" name="ProbTransition" eSuperTypes="//Transition"> | ||
129 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="probability"> | ||
130 | <eType xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EFloat"/> | ||
131 | </eStructuralFeatures> | ||
132 | <eStructuralFeatures xsi:type="ecore:EReference" name="psrc" lowerBound="1" eType="//State" eOpposite="//State/outgoingpt"/> | ||
133 | <eStructuralFeatures xsi:type="ecore:EReference" name="ptgt" lowerBound="1" eType="//State" eOpposite="//State/incomingpt"/> | ||
134 | </eClassifiers> | ||
135 | <eClassifiers xsi:type="ecore:EClass" name="Function"> | ||
136 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="name"> | ||
137 | <eType xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/> | ||
138 | </eStructuralFeatures> | ||
139 | <eStructuralFeatures xsi:type="ecore:EReference" name="indevariable" lowerBound="1" eType="//IndeVariable" containment="true"/> | ||
140 | <eStructuralFeatures xsi:type="ecore:EReference" name="devariable" lowerBound="1" eType="//DeVariable" containment="true"/> | ||
141 | <eStructuralFeatures xsi:type="ecore:EReference" name="fright" lowerBound="1" eType="//Fright" containment="true"/> | ||
142 | </eClassifiers> | ||
143 | <eClassifiers xsi:type="ecore:EClass" name="IndeVariable"> | ||
144 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="name"> | ||
145 | <eType xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/> | ||
146 | </eStructuralFeatures> | ||
147 | </eClassifiers> | ||
148 | <eClassifiers xsi:type="ecore:EClass" name="DeVariable"> | ||
149 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="name"> | ||
150 | <eType xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/> | ||
151 | </eStructuralFeatures> | ||
152 | </eClassifiers> | ||
153 | <eClassifiers xsi:type="ecore:EClass" name="Fright"> | ||
154 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="name"> | ||
155 | <eType xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/> | ||
156 | </eStructuralFeatures> | ||
157 | </eClassifiers> | ||
158 | <eClassifiers xsi:type="ecore:EClass" name="ODE"> | ||
159 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="name"> | ||
160 | <eType xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/> | ||
161 | </eStructuralFeatures> | ||
162 | <eStructuralFeatures xsi:type="ecore:EReference" name="condition" lowerBound="1" eType="//Condition" containment="true"/> | ||
163 | <eStructuralFeatures xsi:type="ecore:EReference" name="interval" lowerBound="1" eType="//Interval" containment="true"/> | ||
164 | <eStructuralFeatures xsi:type="ecore:EReference" name="function" lowerBound="1" eType="//Function" containment="true"/> | ||
165 | </eClassifiers> | ||
166 | <eClassifiers xsi:type="ecore:EClass" name="Condition"> | ||
167 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="name"> | ||
168 | <eType xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/> | ||
169 | </eStructuralFeatures> | ||
170 | </eClassifiers> | ||
171 | <eClassifiers xsi:type="ecore:EClass" name="Interval"> | ||
172 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="name"> | ||
173 | <eType xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/> | ||
174 | </eStructuralFeatures> | ||
175 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="left"> | ||
176 | <eType xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EFloat"/> | ||
177 | </eStructuralFeatures> | ||
178 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="right"> | ||
179 | <eType xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EFloat"/> | ||
180 | </eStructuralFeatures> | ||
181 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="subinterval"> | ||
182 | <eType xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EFloat"/> | ||
183 | </eStructuralFeatures> | ||
184 | </eClassifiers> | ||
185 | <eClassifiers xsi:type="ecore:EClass" name="ExpoDistribution"> | ||
186 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="lambda"> | ||
187 | <eType xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EFloat"/> | ||
188 | </eStructuralFeatures> | ||
189 | </eClassifiers> | ||
190 | <eClassifiers xsi:type="ecore:EClass" name="Action"> | ||
191 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="action"> | ||
192 | <eType xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/> | ||
193 | </eStructuralFeatures> | ||
194 | </eClassifiers> | ||
195 | <eClassifiers xsi:type="ecore:EClass" name="UnifDistribution"> | ||
196 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="a"> | ||
197 | <eType xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EFloat"/> | ||
198 | </eStructuralFeatures> | ||
199 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="b"> | ||
200 | <eType xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EFloat"/> | ||
201 | </eStructuralFeatures> | ||
202 | </eClassifiers> | ||
203 | </ecore:EPackage> | ||
diff --git a/Metrics/Metrics-Calculation/SocialNetwork_plugin/data/Ecore/out_d_rep/rdm.ecore b/Metrics/Metrics-Calculation/SocialNetwork_plugin/data/Ecore/out_d_rep/rdm.ecore new file mode 100644 index 00000000..5c01ab01 --- /dev/null +++ b/Metrics/Metrics-Calculation/SocialNetwork_plugin/data/Ecore/out_d_rep/rdm.ecore | |||
@@ -0,0 +1,178 @@ | |||
1 | <?xml version="1.0" encoding="ISO-8859-1"?> | ||
2 | <xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore"> | ||
3 | <ecore:EPackage name="PrimitiveTypes"> | ||
4 | <eClassifiers xsi:type="ecore:EDataType" name="Integer"/> | ||
5 | <eClassifiers xsi:type="ecore:EDataType" name="Long"/> | ||
6 | <eClassifiers xsi:type="ecore:EDataType" name="Float"/> | ||
7 | <eClassifiers xsi:type="ecore:EDataType" name="Double"/> | ||
8 | <eClassifiers xsi:type="ecore:EDataType" name="Boolean"/> | ||
9 | <eClassifiers xsi:type="ecore:EDataType" name="String"/> | ||
10 | </ecore:EPackage> | ||
11 | <ecore:EPackage name="RDM"> | ||
12 | <eClassifiers xsi:type="ecore:EClass" name="DifferentFrom" eSuperTypes="/1/PredicateSymbol"/> | ||
13 | <eClassifiers xsi:type="ecore:EClass" name="SameAs" eSuperTypes="/1/PredicateSymbol"/> | ||
14 | <eClassifiers xsi:type="ecore:EClass" name="IndividualVariable" eSuperTypes="/1/Variable"> | ||
15 | <eStructuralFeatures xsi:type="ecore:EReference" name="classRef" ordered="false" eType="/1/ODM/Class"/> | ||
16 | </eClassifiers> | ||
17 | <eClassifiers xsi:type="ecore:EClass" name="DataVariable" eSuperTypes="/1/Variable"/> | ||
18 | <eClassifiers xsi:type="ecore:EClass" name="Constant" eSuperTypes="/1/Term"/> | ||
19 | <eClassifiers xsi:type="ecore:EClass" name="Variable" eSuperTypes="/1/Term"> | ||
20 | <eStructuralFeatures xsi:type="ecore:EReference" name="type" ordered="false" eType="/1/ODM/Datatype"/> | ||
21 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" ordered="false" unique="false" lowerBound="1" eType="/0/String"/> | ||
22 | </eClassifiers> | ||
23 | <eClassifiers xsi:type="ecore:EClass" name="Term" abstract="true"/> | ||
24 | <eClassifiers xsi:type="ecore:EClass" name="BuiltIn" eSuperTypes="/1/PredicateSymbol"> | ||
25 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="buildInID" ordered="false" unique="false" lowerBound="1" eType="/0/String"/> | ||
26 | </eClassifiers> | ||
27 | <eClassifiers xsi:type="ecore:EClass" name="PredicateSymbol"/> | ||
28 | <eClassifiers xsi:type="ecore:EClass" name="Atom"> | ||
29 | <eStructuralFeatures xsi:type="ecore:EReference" name="hasPredicateSymbol" ordered="false" lowerBound="1" eType="/1/PredicateSymbol"/> | ||
30 | <eStructuralFeatures xsi:type="ecore:EReference" name="terms" upperBound="-1" eType="/1/Term"/> | ||
31 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" ordered="false" unique="false" lowerBound="1" eType="/0/String"/> | ||
32 | </eClassifiers> | ||
33 | <eClassifiers xsi:type="ecore:EClass" name="Consequent"> | ||
34 | <eStructuralFeatures xsi:type="ecore:EReference" name="containsAtom" ordered="false" upperBound="-1" eType="/1/Atom"/> | ||
35 | </eClassifiers> | ||
36 | <eClassifiers xsi:type="ecore:EClass" name="Antecedent"> | ||
37 | <eStructuralFeatures xsi:type="ecore:EReference" name="containsAtom" ordered="false" upperBound="-1" eType="/1/Atom"/> | ||
38 | </eClassifiers> | ||
39 | <eClassifiers xsi:type="ecore:EClass" name="Rule" eSuperTypes="/1/ODM/OntologyElement"> | ||
40 | <eStructuralFeatures xsi:type="ecore:EReference" name="hasAntecedent" ordered="false" lowerBound="1" eType="/1/Antecedent"/> | ||
41 | <eStructuralFeatures xsi:type="ecore:EReference" name="hasConsequent" ordered="false" lowerBound="1" eType="/1/Consequent"/> | ||
42 | </eClassifiers> | ||
43 | <eSubpackages name="ODM"> | ||
44 | <eClassifiers xsi:type="ecore:EClass" name="MinCardinalityRestriction" eSuperTypes="/1/ODM/Restriction"> | ||
45 | <eStructuralFeatures xsi:type="ecore:EReference" name="minCardinality" ordered="false" lowerBound="1" eType="/1/ODM/TypedLiteral"/> | ||
46 | </eClassifiers> | ||
47 | <eClassifiers xsi:type="ecore:EClass" name="MaxCardinalityRestriction" eSuperTypes="/1/ODM/Restriction"> | ||
48 | <eStructuralFeatures xsi:type="ecore:EReference" name="maxCardinality" ordered="false" lowerBound="1" eType="/1/ODM/TypedLiteral"/> | ||
49 | </eClassifiers> | ||
50 | <eClassifiers xsi:type="ecore:EClass" name="CardinalityRestriction" eSuperTypes="/1/ODM/Restriction"> | ||
51 | <eStructuralFeatures xsi:type="ecore:EReference" name="cardinality" ordered="false" lowerBound="1" eType="/1/ODM/TypedLiteral"/> | ||
52 | </eClassifiers> | ||
53 | <eClassifiers xsi:type="ecore:EClass" name="TransitiveProperty" eSuperTypes="/1/ODM/ObjectProperty"/> | ||
54 | <eClassifiers xsi:type="ecore:EClass" name="SymmetricProperty" eSuperTypes="/1/ODM/ObjectProperty"/> | ||
55 | <eClassifiers xsi:type="ecore:EClass" name="InverseFunctionalProperty" eSuperTypes="/1/ODM/ObjectProperty"/> | ||
56 | <eClassifiers xsi:type="ecore:EClass" name="FunctionalProperty" eSuperTypes="/1/ODM/Property"/> | ||
57 | <eClassifiers xsi:type="ecore:EClass" name="PlainLiteral" eSuperTypes="/1/ODM/Literal"> | ||
58 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="language" ordered="false" unique="false" lowerBound="1" eType="/0/String"/> | ||
59 | </eClassifiers> | ||
60 | <eClassifiers xsi:type="ecore:EClass" name="TypedLiteral" eSuperTypes="/1/ODM/Literal"> | ||
61 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="theType" ordered="false" unique="false" lowerBound="1" eType="/0/String"/> | ||
62 | </eClassifiers> | ||
63 | <eClassifiers xsi:type="ecore:EClass" name="Literal" abstract="true" eSuperTypes="/1/ODM/Datatype"> | ||
64 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="lexicalForm" ordered="false" unique="false" lowerBound="1" eType="/0/String"/> | ||
65 | </eClassifiers> | ||
66 | <eClassifiers xsi:type="ecore:EClass" name="Datatype" abstract="true" eSuperTypes="/1/ODM/OntologyElement"/> | ||
67 | <eClassifiers xsi:type="ecore:EClass" name="DataRange" eSuperTypes="/1/ODM/Class"> | ||
68 | <eStructuralFeatures xsi:type="ecore:EReference" name="datatype" ordered="false" eType="/1/ODM/Datatype"/> | ||
69 | <eStructuralFeatures xsi:type="ecore:EReference" name="oneOf" ordered="false" upperBound="-1" eType="/1/ODM/Literal"/> | ||
70 | </eClassifiers> | ||
71 | <eClassifiers xsi:type="ecore:EClass" name="AllValuesFromRestriction" eSuperTypes="/1/ODM/Restriction"> | ||
72 | <eStructuralFeatures xsi:type="ecore:EReference" name="allValuesFromRange" ordered="false" eType="/1/ODM/DataRange"/> | ||
73 | <eStructuralFeatures xsi:type="ecore:EReference" name="allValuesFromClass" ordered="false" eType="/1/ODM/Class"/> | ||
74 | </eClassifiers> | ||
75 | <eClassifiers xsi:type="ecore:EClass" name="SomeValuesFromRestriction" eSuperTypes="/1/ODM/Restriction"> | ||
76 | <eStructuralFeatures xsi:type="ecore:EReference" name="someValuesFromClass" ordered="false" eType="/1/ODM/Class"/> | ||
77 | <eStructuralFeatures xsi:type="ecore:EReference" name="someValuesFromRange" ordered="false" eType="/1/ODM/DataRange"/> | ||
78 | </eClassifiers> | ||
79 | <eClassifiers xsi:type="ecore:EClass" name="OntologyPropertyValue" eSuperTypes="/1/ODM/OntologyProperty"/> | ||
80 | <eClassifiers xsi:type="ecore:EClass" name="URI" eSuperTypes="/1/ODM/Annotation"/> | ||
81 | <eClassifiers xsi:type="ecore:EClass" name="Annotation" abstract="true"/> | ||
82 | <eClassifiers xsi:type="ecore:EClass" name="AnnotationPropertyValue"> | ||
83 | <eStructuralFeatures xsi:type="ecore:EReference" name="object" ordered="false" lowerBound="1" eType="/1/ODM/Annotation"/> | ||
84 | <eStructuralFeatures xsi:type="ecore:EReference" name="subject" ordered="false" lowerBound="1" eType="/1/ODM/AnnotatableElement"/> | ||
85 | <eStructuralFeatures xsi:type="ecore:EReference" name="type" ordered="false" lowerBound="1" eType="/1/ODM/AnnotationProperty"/> | ||
86 | </eClassifiers> | ||
87 | <eClassifiers xsi:type="ecore:EClass" name="EnumeratedDatatype" eSuperTypes="/1/ODM/Datatype"> | ||
88 | <eStructuralFeatures xsi:type="ecore:EReference" name="collectionOf" ordered="false" upperBound="-1" eType="/1/ODM/DataValue"/> | ||
89 | </eClassifiers> | ||
90 | <eClassifiers xsi:type="ecore:EClass" name="PrimitiveType" eSuperTypes="/1/ODM/Datatype"/> | ||
91 | <eClassifiers xsi:type="ecore:EClass" name="HasValueRestriction" eSuperTypes="/1/ODM/Restriction"> | ||
92 | <eStructuralFeatures xsi:type="ecore:EReference" name="hasLiteralValue" ordered="false" eType="/1/ODM/Literal"/> | ||
93 | <eStructuralFeatures xsi:type="ecore:EReference" name="hasValue" ordered="false" eType="/1/ODM/Individual"/> | ||
94 | </eClassifiers> | ||
95 | <eClassifiers xsi:type="ecore:EClass" name="Restriction" abstract="true" eSuperTypes="/1/ODM/Class"> | ||
96 | <eStructuralFeatures xsi:type="ecore:EReference" name="onProperty" ordered="false" upperBound="-1" eType="/1/ODM/Property"/> | ||
97 | <eStructuralFeatures xsi:type="ecore:EReference" name="toDatatype" ordered="false" eType="/1/ODM/Datatype"/> | ||
98 | </eClassifiers> | ||
99 | <eClassifiers xsi:type="ecore:EClass" name="AllDiferent" eSuperTypes="/1/ODM/Class"> | ||
100 | <eStructuralFeatures xsi:type="ecore:EReference" name="distinctMembers" ordered="false" upperBound="-1" eType="/1/ODM/Individual"/> | ||
101 | </eClassifiers> | ||
102 | <eClassifiers xsi:type="ecore:EClass" name="DataValue" eSuperTypes="/1/Constant /1/ODM/Annotation"> | ||
103 | <eStructuralFeatures xsi:type="ecore:EReference" name="type" ordered="false" lowerBound="1" eType="/1/ODM/Datatype"/> | ||
104 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" ordered="false" unique="false" lowerBound="1" eType="/0/String"/> | ||
105 | </eClassifiers> | ||
106 | <eClassifiers xsi:type="ecore:EClass" name="DatatypePropertyValue" eSuperTypes="/1/ODM/PropertyValue"> | ||
107 | <eStructuralFeatures xsi:type="ecore:EReference" name="object" ordered="false" lowerBound="1" eType="/1/ODM/DataValue"/> | ||
108 | </eClassifiers> | ||
109 | <eClassifiers xsi:type="ecore:EClass" name="ObjectPropertyValue" eSuperTypes="/1/ODM/PropertyValue"> | ||
110 | <eStructuralFeatures xsi:type="ecore:EReference" name="object" ordered="false" lowerBound="1" eType="/1/ODM/Individual"/> | ||
111 | </eClassifiers> | ||
112 | <eClassifiers xsi:type="ecore:EClass" name="PropertyValue" abstract="true"> | ||
113 | <eStructuralFeatures xsi:type="ecore:EReference" name="subject" ordered="false" lowerBound="1" eType="/1/ODM/Individual"/> | ||
114 | </eClassifiers> | ||
115 | <eClassifiers xsi:type="ecore:EClass" name="UnionClass" eSuperTypes="/1/ODM/Class"> | ||
116 | <eStructuralFeatures xsi:type="ecore:EReference" name="unionOf" ordered="false" upperBound="-1" eType="/1/ODM/Class"/> | ||
117 | </eClassifiers> | ||
118 | <eClassifiers xsi:type="ecore:EClass" name="IntersectionClass" eSuperTypes="/1/ODM/Class"> | ||
119 | <eStructuralFeatures xsi:type="ecore:EReference" name="intersectionOf" ordered="false" upperBound="-1" eType="/1/ODM/Class"/> | ||
120 | </eClassifiers> | ||
121 | <eClassifiers xsi:type="ecore:EClass" name="ComplementClass" eSuperTypes="/1/ODM/Class"> | ||
122 | <eStructuralFeatures xsi:type="ecore:EReference" name="complementOf" ordered="false" lowerBound="1" eType="/1/ODM/Class"/> | ||
123 | </eClassifiers> | ||
124 | <eClassifiers xsi:type="ecore:EClass" name="EnumeratedClass" eSuperTypes="/1/ODM/Class"> | ||
125 | <eStructuralFeatures xsi:type="ecore:EReference" name="oneOf" ordered="false" upperBound="-1" eType="/1/ODM/Individual"/> | ||
126 | </eClassifiers> | ||
127 | <eClassifiers xsi:type="ecore:EClass" name="Namespace"> | ||
128 | <eStructuralFeatures xsi:type="ecore:EReference" name="members" ordered="false" upperBound="-1" eType="/1/ODM/NamedElement" containment="true"/> | ||
129 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" ordered="false" unique="false" lowerBound="1" eType="/0/String"/> | ||
130 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="uri" ordered="false" unique="false" lowerBound="1" eType="/0/String"/> | ||
131 | </eClassifiers> | ||
132 | <eClassifiers xsi:type="ecore:EClass" name="DatatypeProperty" eSuperTypes="/1/ODM/Property"> | ||
133 | <eStructuralFeatures xsi:type="ecore:EReference" name="range" ordered="false" upperBound="-1" eType="/1/ODM/DataRange"/> | ||
134 | </eClassifiers> | ||
135 | <eClassifiers xsi:type="ecore:EClass" name="ObjectProperty" eSuperTypes="/1/ODM/Property"> | ||
136 | <eStructuralFeatures xsi:type="ecore:EReference" name="range" ordered="false" upperBound="-1" eType="/1/ODM/Class"/> | ||
137 | <eStructuralFeatures xsi:type="ecore:EReference" name="inverseOf" ordered="false" upperBound="-1" eType="/1/ODM/ObjectProperty"/> | ||
138 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="transitive" ordered="false" unique="false" lowerBound="1" eType="/0/Boolean"/> | ||
139 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="symmetric" ordered="false" unique="false" lowerBound="1" eType="/0/Boolean"/> | ||
140 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="inverseFunctional" ordered="false" unique="false" lowerBound="1" eType="/0/Boolean"/> | ||
141 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="complex" ordered="false" unique="false" lowerBound="1" eType="/0/Boolean"/> | ||
142 | </eClassifiers> | ||
143 | <eClassifiers xsi:type="ecore:EClass" name="Individual" eSuperTypes="/1/Constant /1/ODM/Annotation /1/ODM/Class"> | ||
144 | <eStructuralFeatures xsi:type="ecore:EReference" name="sameAs" ordered="false" upperBound="-1" eType="/1/ODM/Individual"/> | ||
145 | <eStructuralFeatures xsi:type="ecore:EReference" name="differentFrom" ordered="false" upperBound="-1" eType="/1/ODM/Individual"/> | ||
146 | <eStructuralFeatures xsi:type="ecore:EReference" name="type" ordered="false" lowerBound="1" eType="/1/ODM/Class"/> | ||
147 | </eClassifiers> | ||
148 | <eClassifiers xsi:type="ecore:EClass" name="Class" eSuperTypes="/1/PredicateSymbol /1/ODM/OntologyElement"> | ||
149 | <eStructuralFeatures xsi:type="ecore:EReference" name="disjointWith" ordered="false" upperBound="-1" eType="/1/ODM/Class"/> | ||
150 | <eStructuralFeatures xsi:type="ecore:EReference" name="subClassOf" ordered="false" upperBound="-1" eType="/1/ODM/Class"/> | ||
151 | <eStructuralFeatures xsi:type="ecore:EReference" name="equivalentClass" ordered="false" upperBound="-1" eType="/1/ODM/Class"/> | ||
152 | </eClassifiers> | ||
153 | <eClassifiers xsi:type="ecore:EClass" name="Property" abstract="true" eSuperTypes="/1/PredicateSymbol /1/ODM/OntologyElement"> | ||
154 | <eStructuralFeatures xsi:type="ecore:EReference" name="domain" ordered="false" upperBound="-1" eType="/1/ODM/Class"/> | ||
155 | <eStructuralFeatures xsi:type="ecore:EReference" name="equivalentProperty" ordered="false" upperBound="-1" eType="/1/ODM/Property"/> | ||
156 | <eStructuralFeatures xsi:type="ecore:EReference" name="subPropertyOf" ordered="false" upperBound="-1" eType="/1/ODM/Property"/> | ||
157 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="deprecated" ordered="false" unique="false" lowerBound="1" eType="/0/Boolean"/> | ||
158 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="functional" ordered="false" unique="false" lowerBound="1" eType="/0/Boolean"/> | ||
159 | </eClassifiers> | ||
160 | <eClassifiers xsi:type="ecore:EClass" name="AnnotationProperty" eSuperTypes="/1/ODM/OntologyElement"/> | ||
161 | <eClassifiers xsi:type="ecore:EClass" name="OntologyProperty" abstract="true" eSuperTypes="/1/ODM/OntologyElement"/> | ||
162 | <eClassifiers xsi:type="ecore:EClass" name="OntologyElement" eSuperTypes="/1/ODM/NamedElement /1/ODM/AnnotatableElement"/> | ||
163 | <eClassifiers xsi:type="ecore:EClass" name="Ontology" eSuperTypes="/1/ODM/AnnotatableElement"> | ||
164 | <eStructuralFeatures xsi:type="ecore:EReference" name="imports" ordered="false" upperBound="-1" eType="/1/ODM/Ontology"/> | ||
165 | <eStructuralFeatures xsi:type="ecore:EReference" name="priorVersion" ordered="false" eType="/1/ODM/Ontology"/> | ||
166 | <eStructuralFeatures xsi:type="ecore:EReference" name="elements" ordered="false" upperBound="-1" eType="/1/ODM/NamedElement" containment="true"/> | ||
167 | <eStructuralFeatures xsi:type="ecore:EReference" name="incompatibleWith" ordered="false" upperBound="-1" eType="/1/ODM/Ontology"/> | ||
168 | <eStructuralFeatures xsi:type="ecore:EReference" name="reference" ordered="false" upperBound="-1" eType="/1/ODM/OntologyPropertyValue"/> | ||
169 | </eClassifiers> | ||
170 | <eClassifiers xsi:type="ecore:EClass" name="AnnotatableElement" abstract="true"/> | ||
171 | <eClassifiers xsi:type="ecore:EClass" name="NamedElement"> | ||
172 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="uri" ordered="false" unique="false" lowerBound="1" eType="/0/String"/> | ||
173 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" ordered="false" unique="false" lowerBound="1" eType="/0/String"/> | ||
174 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="qualifiedName" ordered="false" unique="false" lowerBound="1" eType="/0/String"/> | ||
175 | </eClassifiers> | ||
176 | </eSubpackages> | ||
177 | </ecore:EPackage> | ||
178 | </xmi:XMI> | ||
diff --git a/Metrics/Metrics-Calculation/SocialNetwork_plugin/data/Github/.DS_Store b/Metrics/Metrics-Calculation/SocialNetwork_plugin/data/Github/.DS_Store new file mode 100644 index 00000000..85929cb0 --- /dev/null +++ b/Metrics/Metrics-Calculation/SocialNetwork_plugin/data/Github/.DS_Store | |||
Binary files differ | |||
diff --git a/Metrics/Metrics-Calculation/SocialNetwork_plugin/data/Github/mpc_rep/2samplemodel41.githubmodel b/Metrics/Metrics-Calculation/SocialNetwork_plugin/data/Github/mpc_rep/2samplemodel41.githubmodel new file mode 100644 index 00000000..f4a3233c --- /dev/null +++ b/Metrics/Metrics-Calculation/SocialNetwork_plugin/data/Github/mpc_rep/2samplemodel41.githubmodel | |||
@@ -0,0 +1,105 @@ | |||
1 | <?xml version="1.0" encoding="ASCII"?> | ||
2 | <github:Project xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:github="sure.ghtorrent.github" creatd_at="2013-05-14T03:07:04.000-0400" updated_at="2016-11-02T06:05:30.000-0400" url="https://github.com/vert-x/mod-rxvertx"> | ||
3 | <issue created_at="2015-08-14T02:12:18.000-0400" url="https://api.github.com/repos/vert-x/mod-rxvertx/issues/42"/> | ||
4 | <issue created_at="2015-06-22T09:29:32.000-0400" url="https://api.github.com/repos/vert-x/mod-rxvertx/issues/41"/> | ||
5 | <issue created_at="2015-06-16T15:27:39.000-0400" url="https://api.github.com/repos/vert-x/mod-rxvertx/issues/40"/> | ||
6 | <issue created_at="2015-06-16T15:19:14.000-0400" url="https://api.github.com/repos/vert-x/mod-rxvertx/issues/39"/> | ||
7 | <issue created_at="2015-04-08T09:17:37.000-0400" url="https://api.github.com/repos/vert-x/mod-rxvertx/issues/36"/> | ||
8 | <issue created_at="2015-03-02T15:41:55.000-0500" url="https://api.github.com/repos/vert-x/mod-rxvertx/issues/34"/> | ||
9 | <issue created_at="2014-11-21T17:36:28.000-0500" url="https://api.github.com/repos/vert-x/mod-rxvertx/issues/29"/> | ||
10 | <issue created_at="2014-11-19T09:48:31.000-0500" url="https://api.github.com/repos/vert-x/mod-rxvertx/issues/26"/> | ||
11 | <issue created_at="2014-06-06T13:52:26.000-0400" url="https://api.github.com/repos/vert-x/mod-rxvertx/issues/18"/> | ||
12 | <issue created_at="2013-12-07T04:02:36.000-0500" url="https://api.github.com/repos/vert-x/mod-rxvertx/issues/10"/> | ||
13 | <issue created_at="2016-01-24T04:58:48.000-0500" url="https://api.github.com/repos/vert-x/mod-rxvertx/issues/43"> | ||
14 | <pullrequest url="https://api.github.com/repos/vert-x/mod-rxvertx/pulls/43"/> | ||
15 | </issue> | ||
16 | <issue created_at="2015-06-16T15:27:39.000-0400" url="https://api.github.com/repos/vert-x/mod-rxvertx/issues/40"> | ||
17 | <pullrequest url="https://api.github.com/repos/vert-x/mod-rxvertx/pulls/40"/> | ||
18 | </issue> | ||
19 | <issue created_at="2015-03-06T11:23:22.000-0500" url="https://api.github.com/repos/vert-x/mod-rxvertx/issues/35"> | ||
20 | <pullrequest commit="//@commits.42" url="https://api.github.com/repos/vert-x/mod-rxvertx/pulls/35"/> | ||
21 | </issue> | ||
22 | <issue created_at="2014-11-21T17:40:46.000-0500" url="https://api.github.com/repos/vert-x/mod-rxvertx/issues/30"> | ||
23 | <pullrequest url="https://api.github.com/repos/vert-x/mod-rxvertx/pulls/30"/> | ||
24 | </issue> | ||
25 | <issue created_at="2014-08-28T07:38:52.000-0400" url="https://api.github.com/repos/vert-x/mod-rxvertx/issues/21"> | ||
26 | <pullrequest url="https://api.github.com/repos/vert-x/mod-rxvertx/pulls/21"/> | ||
27 | </issue> | ||
28 | <issue created_at="2014-06-19T15:01:09.000-0400" url="https://api.github.com/repos/vert-x/mod-rxvertx/issues/19"> | ||
29 | <pullrequest commit="//@commits.46" url="https://api.github.com/repos/vert-x/mod-rxvertx/pulls/19"/> | ||
30 | </issue> | ||
31 | <issue created_at="2014-05-11T00:43:58.000-0400" url="https://api.github.com/repos/vert-x/mod-rxvertx/issues/17"> | ||
32 | <pullrequest commit="//@commits.47" url="https://api.github.com/repos/vert-x/mod-rxvertx/pulls/17"/> | ||
33 | </issue> | ||
34 | <issue created_at="2014-05-09T05:21:01.000-0400" url="https://api.github.com/repos/vert-x/mod-rxvertx/issues/15"> | ||
35 | <pullrequest commit="//@commits.51" url="https://api.github.com/repos/vert-x/mod-rxvertx/pulls/15"/> | ||
36 | </issue> | ||
37 | <issue created_at="2013-07-07T20:58:26.000-0400" url="https://api.github.com/repos/vert-x/mod-rxvertx/issues/3"> | ||
38 | <pullrequest commit="//@commits.20" url="https://api.github.com/repos/vert-x/mod-rxvertx/pulls/3"/> | ||
39 | </issue> | ||
40 | <issue created_at="2013-06-26T11:44:08.000-0400" url="https://api.github.com/repos/vert-x/mod-rxvertx/issues/2"> | ||
41 | <pullrequest url="https://api.github.com/repos/vert-x/mod-rxvertx/pulls/2"/> | ||
42 | </issue> | ||
43 | <issue created_at="2013-06-16T00:13:08.000-0400" url="https://api.github.com/repos/vert-x/mod-rxvertx/issues/1"> | ||
44 | <pullrequest commit="//@commits.24" url="https://api.github.com/repos/vert-x/mod-rxvertx/pulls/1"/> | ||
45 | </issue> | ||
46 | <projectMembers url="https://api.github.com/users/petermd" name="petermd"/> | ||
47 | <projectMembers url="https://api.github.com/users/purplefox" name="purplefox"/> | ||
48 | <projectMembers url="https://api.github.com/users/sharathp" name="sharathp"/> | ||
49 | <projectMembers url="https://api.github.com/users/squaredfinancialit" name="squaredfinancialit"/> | ||
50 | <projectMembers url="https://api.github.com/users/ddossot" name="ddossot"/> | ||
51 | <projectMembers url="https://api.github.com/users/tavisrudd" name="tavisrudd"/> | ||
52 | <projectMembers url="https://api.github.com/users/vihangd" name="vihangd"/> | ||
53 | <commits committer="//@projectMembers.0" parents="//@commits.1" created_at="2013-12-02T05:47:09.000-0500" sha="ed99912edfd9f6f9e908a5325d2ab07d6e65e869" parents_sha="9a90507caa12d77bb7fc97514c9016e8c9d41676"/> | ||
54 | <commits committer="//@projectMembers.0" parents="//@commits.2 //@commits.5" created_at="2013-12-01T20:08:01.000-0500" sha="9a90507caa12d77bb7fc97514c9016e8c9d41676" parents_sha="dddb6bbe532afaf0983b9b2affea87d700c788fc ad41e6a602de2e145d1ba2b0da9bd046fb3e2467"/> | ||
55 | <commits committer="//@projectMembers.0" parents="//@commits.3" created_at="2013-12-01T20:06:25.000-0500" sha="dddb6bbe532afaf0983b9b2affea87d700c788fc" parents_sha="e704894753ef8f06f144071c493ae5ee0f077f33"/> | ||
56 | <commits committer="//@projectMembers.0" parents="//@commits.4" created_at="2013-12-01T20:05:38.000-0500" sha="e704894753ef8f06f144071c493ae5ee0f077f33" parents_sha="f6b983b4b88731f38fe1080a4235d2e6091107b0"/> | ||
57 | <commits committer="//@projectMembers.0" parents="//@commits.6" created_at="2013-12-01T20:05:12.000-0500" sha="f6b983b4b88731f38fe1080a4235d2e6091107b0" parents_sha="9298780fca8e25a33f49867f3025890fa7c7d7f2"/> | ||
58 | <commits committer="//@projectMembers.1" parents="//@commits.6" created_at="2013-12-01T05:58:35.000-0500" sha="ad41e6a602de2e145d1ba2b0da9bd046fb3e2467" parents_sha="9298780fca8e25a33f49867f3025890fa7c7d7f2"/> | ||
59 | <commits committer="//@projectMembers.0" parents="//@commits.7" created_at="2013-11-27T05:39:40.000-0500" sha="9298780fca8e25a33f49867f3025890fa7c7d7f2" parents_sha="6cd3659869c4b786e55640d2d137b12d18fb49a7"/> | ||
60 | <commits committer="//@projectMembers.0" parents="//@commits.8" created_at="2013-11-27T05:28:59.000-0500" sha="6cd3659869c4b786e55640d2d137b12d18fb49a7" parents_sha="937af378cf31503b77d0ce6ab011e5d022d57265"/> | ||
61 | <commits committer="//@projectMembers.0" parents="//@commits.9" created_at="2013-11-27T05:26:59.000-0500" sha="937af378cf31503b77d0ce6ab011e5d022d57265" parents_sha="f777d37b7fa1091c278848166dd7635728ac2a2f"/> | ||
62 | <commits committer="//@projectMembers.0" parents="//@commits.10" created_at="2013-11-19T08:26:58.000-0500" sha="f777d37b7fa1091c278848166dd7635728ac2a2f" parents_sha="bd3e62a14633df39d7124577126f5087b989db73"/> | ||
63 | <commits committer="//@projectMembers.0" parents="//@commits.11" created_at="2013-11-19T07:59:40.000-0500" sha="bd3e62a14633df39d7124577126f5087b989db73" parents_sha="b61d0a341119990de69b9fe4a8bfd468c6bddfef"/> | ||
64 | <commits committer="//@projectMembers.0" parents="//@commits.12" created_at="2013-11-19T07:55:41.000-0500" sha="b61d0a341119990de69b9fe4a8bfd468c6bddfef" parents_sha="3c98cc0a6e45fd558b1f808c76613c3eb2b0b936"/> | ||
65 | <commits committer="//@projectMembers.0" parents="//@commits.13" created_at="2013-11-19T07:54:46.000-0500" sha="3c98cc0a6e45fd558b1f808c76613c3eb2b0b936" parents_sha="049801ae6cedb220c2dfdf0fdaf4b6ba9339e1ad"/> | ||
66 | <commits committer="//@projectMembers.0" parents="//@commits.14" created_at="2013-11-14T19:17:38.000-0500" sha="049801ae6cedb220c2dfdf0fdaf4b6ba9339e1ad" parents_sha="80b5503fa7d92d6fc9d75ec9e0637e144b4b79e2"/> | ||
67 | <commits committer="//@projectMembers.0" parents="//@commits.15" created_at="2013-11-14T18:18:38.000-0500" sha="80b5503fa7d92d6fc9d75ec9e0637e144b4b79e2" parents_sha="063311036a271c4f51aab1e16cb01a273af40d59"/> | ||
68 | <commits committer="//@projectMembers.0" parents="//@commits.16" created_at="2013-11-14T18:18:12.000-0500" sha="063311036a271c4f51aab1e16cb01a273af40d59" parents_sha="d6a755666b19fb84f3ed3322abf4799e4e103401"/> | ||
69 | <commits committer="//@projectMembers.0" parents="//@commits.17" created_at="2013-11-07T22:29:23.000-0500" sha="d6a755666b19fb84f3ed3322abf4799e4e103401" parents_sha="1c07c332a76eb90b653c5a09e558fd0a1ded853a"/> | ||
70 | <commits committer="//@projectMembers.0" parents="//@commits.18" created_at="2013-08-03T19:29:42.000-0400" sha="1c07c332a76eb90b653c5a09e558fd0a1ded853a" parents_sha="2335b065397316f33f731f32904561f0565df822"/> | ||
71 | <commits committer="//@projectMembers.0" parents="//@commits.19 //@commits.20" created_at="2013-07-18T10:43:04.000-0400" sha="2335b065397316f33f731f32904561f0565df822" parents_sha="dcc26065160056d933cdf76281cdad6b3b287b0a 2bf992bcc00fec604758228eb73303a33184b188"/> | ||
72 | <commits committer="//@projectMembers.1" parents="//@commits.21" created_at="2013-07-09T08:56:55.000-0400" sha="dcc26065160056d933cdf76281cdad6b3b287b0a" parents_sha="846c3196db3a62e342ec84ac67edb172d37a8527"/> | ||
73 | <commits committer="//@projectMembers.2" parents="//@commits.24" pullrequest="//@issue.18/@pullrequest" created_at="2013-07-07T20:53:18.000-0400" sha="2bf992bcc00fec604758228eb73303a33184b188" parents_sha="5b8c63daa5c13c42dc8d46c0df099289abc8f3a3"/> | ||
74 | <commits committer="//@projectMembers.1" parents="//@commits.22" created_at="2013-06-28T07:59:05.000-0400" sha="846c3196db3a62e342ec84ac67edb172d37a8527" parents_sha="dd7f5a22e9e653d44906f17a8d2c8fe48213cc12"/> | ||
75 | <commits committer="//@projectMembers.1" parents="//@commits.23" created_at="2013-06-28T07:42:26.000-0400" sha="dd7f5a22e9e653d44906f17a8d2c8fe48213cc12" parents_sha="19558d07c7961aaf357828601d0efef0cf4e308e"/> | ||
76 | <commits committer="//@projectMembers.1" parents="//@commits.26" created_at="2013-06-28T07:34:41.000-0400" sha="19558d07c7961aaf357828601d0efef0cf4e308e" parents_sha="c7b0726d521b12a314d59d8a3fa6fa48415793d1"/> | ||
77 | <commits committer="//@projectMembers.2" parents="//@commits.25" pullrequest="//@issue.20/@pullrequest" created_at="2013-06-26T11:32:27.000-0400" sha="5b8c63daa5c13c42dc8d46c0df099289abc8f3a3" parents_sha="8668d48ce79bce03e04acc58dbff9bf578247f52"/> | ||
78 | <commits committer="//@projectMembers.2" parents="//@commits.26" created_at="2013-06-16T00:12:20.000-0400" sha="8668d48ce79bce03e04acc58dbff9bf578247f52" parents_sha="c7b0726d521b12a314d59d8a3fa6fa48415793d1"/> | ||
79 | <commits committer="//@projectMembers.1" parents="//@commits.27" created_at="2013-06-15T04:30:10.000-0400" sha="c7b0726d521b12a314d59d8a3fa6fa48415793d1" parents_sha="f9ddb55396f9ff2b14a8f8e66f15e31dd45ba07a"/> | ||
80 | <commits committer="//@projectMembers.1" parents="//@commits.28" created_at="2013-06-14T11:54:17.000-0400" sha="f9ddb55396f9ff2b14a8f8e66f15e31dd45ba07a" parents_sha="30413422c03344dc3683c0cfdefda2ede0891dbc"/> | ||
81 | <commits committer="//@projectMembers.0" parents="//@commits.29" created_at="2013-05-21T06:27:09.000-0400" sha="30413422c03344dc3683c0cfdefda2ede0891dbc" parents_sha="19f65f97a3cbdb466548e8c39310ed565d51991d"/> | ||
82 | <commits committer="//@projectMembers.0" parents="//@commits.30" created_at="2013-05-21T06:21:13.000-0400" sha="19f65f97a3cbdb466548e8c39310ed565d51991d" parents_sha="bf725977ceb0530cb439822cc3ec507595d0673b"/> | ||
83 | <commits committer="//@projectMembers.0" parents="//@commits.31" created_at="2013-05-21T06:19:38.000-0400" sha="bf725977ceb0530cb439822cc3ec507595d0673b" parents_sha="7da36f0b8423d24ad0c0fd82bb9a296bcd2731d4"/> | ||
84 | <commits committer="//@projectMembers.1" parents="//@commits.32" created_at="2013-05-21T05:18:23.000-0400" sha="7da36f0b8423d24ad0c0fd82bb9a296bcd2731d4" parents_sha="9d9ec8a1a0de65698deed0b7ce1e36e74960e410"/> | ||
85 | <commits committer="//@projectMembers.1" parents="//@commits.33" created_at="2013-05-21T05:16:17.000-0400" sha="9d9ec8a1a0de65698deed0b7ce1e36e74960e410" parents_sha="167cd263f39437ac197d0d75336b0e24cb590efa"/> | ||
86 | <commits committer="//@projectMembers.1" parents="//@commits.34" created_at="2013-05-20T09:24:04.000-0400" sha="167cd263f39437ac197d0d75336b0e24cb590efa" parents_sha="0ccd822e51126740fad7c7f7191127b99de663b6"/> | ||
87 | <commits committer="//@projectMembers.1" parents="//@commits.35" created_at="2013-05-20T06:21:45.000-0400" sha="0ccd822e51126740fad7c7f7191127b99de663b6" parents_sha="19036c7a96b1f71bc697a2f1a6def218267a0242"/> | ||
88 | <commits committer="//@projectMembers.1" parents="//@commits.36" created_at="2013-05-17T07:32:23.000-0400" sha="19036c7a96b1f71bc697a2f1a6def218267a0242" parents_sha="1f22c21855b7b161521f242ff1115ae8d8ab9313"/> | ||
89 | <commits committer="//@projectMembers.1" parents="//@commits.37" created_at="2013-05-16T16:30:51.000-0400" sha="1f22c21855b7b161521f242ff1115ae8d8ab9313" parents_sha="dd0f1a68e52e54b3ee10f3f429278369dd0975e6"/> | ||
90 | <commits committer="//@projectMembers.1" parents="//@commits.38" created_at="2013-05-15T05:04:15.000-0400" sha="dd0f1a68e52e54b3ee10f3f429278369dd0975e6" parents_sha="c9f01eaff5abcdce46788e9ed105829b2a063b40"/> | ||
91 | <commits committer="//@projectMembers.1" parents="//@commits.39" created_at="2013-05-14T13:07:02.000-0400" sha="c9f01eaff5abcdce46788e9ed105829b2a063b40" parents_sha="52f479adb604f6e5a373260a3acbe374afc52f25"/> | ||
92 | <commits committer="//@projectMembers.1" parents="//@commits.40" created_at="2013-05-14T08:48:12.000-0400" sha="52f479adb604f6e5a373260a3acbe374afc52f25" parents_sha="5d9e6dc68ff8f7de070bdfa3f897b1554caf2166"/> | ||
93 | <commits committer="//@projectMembers.1" created_at="2013-05-14T08:26:22.000-0400" sha="5d9e6dc68ff8f7de070bdfa3f897b1554caf2166" parents_sha="46109bd2797b2e80758056728ab371ec4339b5b5 0873fda3c6bd19363319a1f5d248ad60d24316e6"/> | ||
94 | <commits committer="//@projectMembers.3" created_at="2015-03-06T11:19:17.000-0500" sha="d22ad4be7c6bdab5d442155fa5fe4d79a0a60856" parents_sha="0de3f78d04a04612ab0f128eff9b6657ccf6d1b1"/> | ||
95 | <commits committer="//@projectMembers.3" pullrequest="//@issue.12/@pullrequest" created_at="2015-03-18T16:21:13.000-0400" sha="33a9c426bd04eba72cc3be3921c583beff2261b9" parents_sha="d22ad4be7c6bdab5d442155fa5fe4d79a0a60856"/> | ||
96 | <commits committer="//@projectMembers.4" created_at="2014-06-19T14:54:24.000-0400" sha="d34d78848522df8a43509ec206f18e8300cfa9ee" parents_sha="80562e9d30ecce390bd58a2077841a708bd2095f"/> | ||
97 | <commits committer="//@projectMembers.4" created_at="2014-06-19T14:56:28.000-0400" sha="a6ebd5a7acfcea32f09ff6dee5b020cefa11ad22" parents_sha="d34d78848522df8a43509ec206f18e8300cfa9ee"/> | ||
98 | <commits committer="//@projectMembers.4" created_at="2014-06-19T14:56:31.000-0400" sha="b3eed2ef580ee66c47f41e10b4da0257115ae684" parents_sha="a6ebd5a7acfcea32f09ff6dee5b020cefa11ad22"/> | ||
99 | <commits committer="//@projectMembers.4" pullrequest="//@issue.15/@pullrequest" created_at="2014-06-19T14:56:31.000-0400" sha="781c5e3d674b2e987b7affb3d6f3c24a3c54675a" parents_sha="b3eed2ef580ee66c47f41e10b4da0257115ae684"/> | ||
100 | <commits committer="//@projectMembers.5" pullrequest="//@issue.16/@pullrequest" created_at="2014-05-11T00:43:45.000-0400" sha="80562e9d30ecce390bd58a2077841a708bd2095f" parents_sha="8311666daccb78568071a8d835c8d5798f0808de"/> | ||
101 | <commits committer="//@projectMembers.0" created_at="2014-03-15T20:56:49.000-0400" sha="01a536a72c1b062da11b9ebf0610b5a628008163" parents_sha="ed99912edfd9f6f9e908a5325d2ab07d6e65e869"/> | ||
102 | <commits committer="//@projectMembers.0" created_at="2014-03-15T21:00:03.000-0400" sha="210c0ec94da299867167c1b8eaf58bb8f2342140" parents_sha="01a536a72c1b062da11b9ebf0610b5a628008163"/> | ||
103 | <commits committer="//@projectMembers.0" created_at="2014-03-18T11:52:38.000-0400" sha="8b511989e21d5fdd6be893c7320719d8a99c4834" parents_sha="210c0ec94da299867167c1b8eaf58bb8f2342140"/> | ||
104 | <commits committer="//@projectMembers.6" pullrequest="//@issue.17/@pullrequest" created_at="2014-05-09T05:07:45.000-0400" sha="e4131b497ffabbb03d71ac577d75add5c00caa41" parents_sha="8b511989e21d5fdd6be893c7320719d8a99c4834"/> | ||
105 | </github:Project> | ||
diff --git a/Metrics/Metrics-Calculation/SocialNetwork_plugin/data/Github/na_rep/.DS_Store b/Metrics/Metrics-Calculation/SocialNetwork_plugin/data/Github/na_rep/.DS_Store new file mode 100644 index 00000000..5008ddfc --- /dev/null +++ b/Metrics/Metrics-Calculation/SocialNetwork_plugin/data/Github/na_rep/.DS_Store | |||
Binary files differ | |||
diff --git a/Metrics/Metrics-Calculation/SocialNetwork_plugin/data/Github/na_rep/2samplemodel65.githubmodel b/Metrics/Metrics-Calculation/SocialNetwork_plugin/data/Github/na_rep/2samplemodel65.githubmodel new file mode 100644 index 00000000..c78f0175 --- /dev/null +++ b/Metrics/Metrics-Calculation/SocialNetwork_plugin/data/Github/na_rep/2samplemodel65.githubmodel | |||
@@ -0,0 +1,38 @@ | |||
1 | <?xml version="1.0" encoding="ASCII"?> | ||
2 | <github:Project xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:github="sure.ghtorrent.github" creatd_at="2012-01-15T22:30:37.000-0500" updated_at="2013-05-10T16:37:30.000-0400" url="https://github.com/i8ramin/fb-menu"> | ||
3 | <issue created_at="2013-08-05T20:37:26.000-0400" url="https://api.github.com/repos/i8ramin/fb-menu/issues/9"/> | ||
4 | <issue created_at="2012-10-24T03:46:19.000-0400" url="https://api.github.com/repos/i8ramin/fb-menu/issues/5"> | ||
5 | <pullrequest url="https://api.github.com/repos/i8ramin/fb-menu/pulls/5"/> | ||
6 | <issueevent user="//@projectMembers.0" action="CLOSED" created_at="2012-10-24T10:12:29.000-0400" actor_url="https://api.github.com/users/i8ramin"/> | ||
7 | </issue> | ||
8 | <issue created_at="2012-10-23T14:15:11.000-0400" url="https://api.github.com/repos/i8ramin/fb-menu/issues/4"> | ||
9 | <pullrequest url="https://api.github.com/repos/i8ramin/fb-menu/pulls/4"/> | ||
10 | <issueevent user="//@projectMembers.0" action="CLOSED" created_at="2012-10-23T15:02:06.000-0400" actor_url="https://api.github.com/users/i8ramin"/> | ||
11 | <issueevent user="//@projectMembers.0" action="MERGED" created_at="2012-10-23T15:02:06.000-0400" actor_url="https://api.github.com/users/i8ramin"/> | ||
12 | <issueevent user="//@projectMembers.0" action="REFERENCED" created_at="2012-10-23T15:02:06.000-0400" actor_url="https://api.github.com/users/i8ramin"/> | ||
13 | </issue> | ||
14 | <issue created_at="2012-10-19T20:17:40.000-0400" url="https://api.github.com/repos/i8ramin/fb-menu/issues/3"> | ||
15 | <pullrequest url="https://api.github.com/repos/i8ramin/fb-menu/pulls/3"/> | ||
16 | <issueevent user="//@projectMembers.0" action="CLOSED" created_at="2012-10-23T13:55:51.000-0400" actor_url="https://api.github.com/users/i8ramin"/> | ||
17 | <issueevent user="//@projectMembers.0" action="MERGED" created_at="2012-10-23T13:55:51.000-0400" actor_url="https://api.github.com/users/i8ramin"/> | ||
18 | <issueevent user="//@projectMembers.0" action="REFERENCED" created_at="2012-10-23T13:55:51.000-0400" actor_url="https://api.github.com/users/i8ramin"/> | ||
19 | </issue> | ||
20 | <issue created_at="2012-10-08T18:07:12.000-0400" url="https://api.github.com/repos/i8ramin/fb-menu/issues/2"> | ||
21 | <pullrequest commit="//@commits.9" url="https://api.github.com/repos/i8ramin/fb-menu/pulls/2"/> | ||
22 | <issueevent user="//@projectMembers.0" action="CLOSED" created_at="2012-10-09T16:31:04.000-0400" actor_url="https://api.github.com/users/i8ramin"/> | ||
23 | <issueevent user="//@projectMembers.0" action="MERGED" created_at="2012-10-09T16:31:04.000-0400" actor_url="https://api.github.com/users/i8ramin"/> | ||
24 | <issueevent user="//@projectMembers.0" action="REFERENCED" created_at="2012-10-09T16:31:04.000-0400" actor_url="https://api.github.com/users/i8ramin"/> | ||
25 | </issue> | ||
26 | <projectMembers url="https://api.github.com/users/i8ramin" name="i8ramin"/> | ||
27 | <projectMembers url="https://api.github.com/users/jpbellona" name="jpbellona"/> | ||
28 | <commits committer="//@projectMembers.0" parents="//@commits.1" created_at="2012-04-22T13:06:09.000-0400" sha="edac411699e093ae17bb8e252801d169cf63386b" parents_sha="0c5479209926ba6e76531191c5cb0c49f124c573"/> | ||
29 | <commits committer="//@projectMembers.0" parents="//@commits.2" created_at="2012-01-16T00:05:29.000-0500" sha="0c5479209926ba6e76531191c5cb0c49f124c573" parents_sha="501c513efa4c4b58229004c9804320af218bc9c6"/> | ||
30 | <commits committer="//@projectMembers.0" parents="//@commits.3" created_at="2012-01-15T23:47:46.000-0500" sha="501c513efa4c4b58229004c9804320af218bc9c6" parents_sha="bc83b9b4e0bcf2e1d4fcc7f9129bba2976c05d66"/> | ||
31 | <commits committer="//@projectMembers.0" parents="//@commits.4" created_at="2012-01-15T23:26:24.000-0500" sha="bc83b9b4e0bcf2e1d4fcc7f9129bba2976c05d66" parents_sha="294bc004162f404b49ea3e336b1e17c16354c85f"/> | ||
32 | <commits committer="//@projectMembers.0" parents="//@commits.5" created_at="2012-01-15T23:17:32.000-0500" sha="294bc004162f404b49ea3e336b1e17c16354c85f" parents_sha="8a3b5f6c8e052638e97e42fd2a1e49141fe8b862"/> | ||
33 | <commits committer="//@projectMembers.0" parents="//@commits.6" created_at="2012-01-15T23:08:00.000-0500" sha="8a3b5f6c8e052638e97e42fd2a1e49141fe8b862" parents_sha="a84b34c420016181971a2512c38afcc5215c2b5a"/> | ||
34 | <commits committer="//@projectMembers.0" parents="//@commits.7" created_at="2012-01-15T23:00:14.000-0500" sha="a84b34c420016181971a2512c38afcc5215c2b5a" parents_sha="32a6f8d140ac6db5ee37a89082804ef57cbb12bb"/> | ||
35 | <commits committer="//@projectMembers.0" parents="//@commits.8" created_at="2012-01-15T22:48:36.000-0500" sha="32a6f8d140ac6db5ee37a89082804ef57cbb12bb" parents_sha="74aefd366c55ae8de122e20794a00b8c49b584cb"/> | ||
36 | <commits committer="//@projectMembers.0" created_at="2012-01-15T22:31:19.000-0500" sha="74aefd366c55ae8de122e20794a00b8c49b584cb" parents_sha=""/> | ||
37 | <commits committer="//@projectMembers.1" pullrequest="//@issue.4/@pullrequest" created_at="2012-10-08T18:05:07.000-0400" sha="dfd5c4d9818c405cc262870515c6e5d8f71ba4a9" parents_sha="edac411699e093ae17bb8e252801d169cf63386b"/> | ||
38 | </github:Project> | ||
diff --git a/Metrics/Metrics-Calculation/SocialNetwork_plugin/data/Github/out_d_rep/.DS_Store b/Metrics/Metrics-Calculation/SocialNetwork_plugin/data/Github/out_d_rep/.DS_Store new file mode 100644 index 00000000..5008ddfc --- /dev/null +++ b/Metrics/Metrics-Calculation/SocialNetwork_plugin/data/Github/out_d_rep/.DS_Store | |||
Binary files differ | |||
diff --git a/Metrics/Metrics-Calculation/SocialNetwork_plugin/data/Github/out_d_rep/samplemodel62.githubmodel b/Metrics/Metrics-Calculation/SocialNetwork_plugin/data/Github/out_d_rep/samplemodel62.githubmodel new file mode 100644 index 00000000..c78f0175 --- /dev/null +++ b/Metrics/Metrics-Calculation/SocialNetwork_plugin/data/Github/out_d_rep/samplemodel62.githubmodel | |||
@@ -0,0 +1,38 @@ | |||
1 | <?xml version="1.0" encoding="ASCII"?> | ||
2 | <github:Project xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:github="sure.ghtorrent.github" creatd_at="2012-01-15T22:30:37.000-0500" updated_at="2013-05-10T16:37:30.000-0400" url="https://github.com/i8ramin/fb-menu"> | ||
3 | <issue created_at="2013-08-05T20:37:26.000-0400" url="https://api.github.com/repos/i8ramin/fb-menu/issues/9"/> | ||
4 | <issue created_at="2012-10-24T03:46:19.000-0400" url="https://api.github.com/repos/i8ramin/fb-menu/issues/5"> | ||
5 | <pullrequest url="https://api.github.com/repos/i8ramin/fb-menu/pulls/5"/> | ||
6 | <issueevent user="//@projectMembers.0" action="CLOSED" created_at="2012-10-24T10:12:29.000-0400" actor_url="https://api.github.com/users/i8ramin"/> | ||
7 | </issue> | ||
8 | <issue created_at="2012-10-23T14:15:11.000-0400" url="https://api.github.com/repos/i8ramin/fb-menu/issues/4"> | ||
9 | <pullrequest url="https://api.github.com/repos/i8ramin/fb-menu/pulls/4"/> | ||
10 | <issueevent user="//@projectMembers.0" action="CLOSED" created_at="2012-10-23T15:02:06.000-0400" actor_url="https://api.github.com/users/i8ramin"/> | ||
11 | <issueevent user="//@projectMembers.0" action="MERGED" created_at="2012-10-23T15:02:06.000-0400" actor_url="https://api.github.com/users/i8ramin"/> | ||
12 | <issueevent user="//@projectMembers.0" action="REFERENCED" created_at="2012-10-23T15:02:06.000-0400" actor_url="https://api.github.com/users/i8ramin"/> | ||
13 | </issue> | ||
14 | <issue created_at="2012-10-19T20:17:40.000-0400" url="https://api.github.com/repos/i8ramin/fb-menu/issues/3"> | ||
15 | <pullrequest url="https://api.github.com/repos/i8ramin/fb-menu/pulls/3"/> | ||
16 | <issueevent user="//@projectMembers.0" action="CLOSED" created_at="2012-10-23T13:55:51.000-0400" actor_url="https://api.github.com/users/i8ramin"/> | ||
17 | <issueevent user="//@projectMembers.0" action="MERGED" created_at="2012-10-23T13:55:51.000-0400" actor_url="https://api.github.com/users/i8ramin"/> | ||
18 | <issueevent user="//@projectMembers.0" action="REFERENCED" created_at="2012-10-23T13:55:51.000-0400" actor_url="https://api.github.com/users/i8ramin"/> | ||
19 | </issue> | ||
20 | <issue created_at="2012-10-08T18:07:12.000-0400" url="https://api.github.com/repos/i8ramin/fb-menu/issues/2"> | ||
21 | <pullrequest commit="//@commits.9" url="https://api.github.com/repos/i8ramin/fb-menu/pulls/2"/> | ||
22 | <issueevent user="//@projectMembers.0" action="CLOSED" created_at="2012-10-09T16:31:04.000-0400" actor_url="https://api.github.com/users/i8ramin"/> | ||
23 | <issueevent user="//@projectMembers.0" action="MERGED" created_at="2012-10-09T16:31:04.000-0400" actor_url="https://api.github.com/users/i8ramin"/> | ||
24 | <issueevent user="//@projectMembers.0" action="REFERENCED" created_at="2012-10-09T16:31:04.000-0400" actor_url="https://api.github.com/users/i8ramin"/> | ||
25 | </issue> | ||
26 | <projectMembers url="https://api.github.com/users/i8ramin" name="i8ramin"/> | ||
27 | <projectMembers url="https://api.github.com/users/jpbellona" name="jpbellona"/> | ||
28 | <commits committer="//@projectMembers.0" parents="//@commits.1" created_at="2012-04-22T13:06:09.000-0400" sha="edac411699e093ae17bb8e252801d169cf63386b" parents_sha="0c5479209926ba6e76531191c5cb0c49f124c573"/> | ||
29 | <commits committer="//@projectMembers.0" parents="//@commits.2" created_at="2012-01-16T00:05:29.000-0500" sha="0c5479209926ba6e76531191c5cb0c49f124c573" parents_sha="501c513efa4c4b58229004c9804320af218bc9c6"/> | ||
30 | <commits committer="//@projectMembers.0" parents="//@commits.3" created_at="2012-01-15T23:47:46.000-0500" sha="501c513efa4c4b58229004c9804320af218bc9c6" parents_sha="bc83b9b4e0bcf2e1d4fcc7f9129bba2976c05d66"/> | ||
31 | <commits committer="//@projectMembers.0" parents="//@commits.4" created_at="2012-01-15T23:26:24.000-0500" sha="bc83b9b4e0bcf2e1d4fcc7f9129bba2976c05d66" parents_sha="294bc004162f404b49ea3e336b1e17c16354c85f"/> | ||
32 | <commits committer="//@projectMembers.0" parents="//@commits.5" created_at="2012-01-15T23:17:32.000-0500" sha="294bc004162f404b49ea3e336b1e17c16354c85f" parents_sha="8a3b5f6c8e052638e97e42fd2a1e49141fe8b862"/> | ||
33 | <commits committer="//@projectMembers.0" parents="//@commits.6" created_at="2012-01-15T23:08:00.000-0500" sha="8a3b5f6c8e052638e97e42fd2a1e49141fe8b862" parents_sha="a84b34c420016181971a2512c38afcc5215c2b5a"/> | ||
34 | <commits committer="//@projectMembers.0" parents="//@commits.7" created_at="2012-01-15T23:00:14.000-0500" sha="a84b34c420016181971a2512c38afcc5215c2b5a" parents_sha="32a6f8d140ac6db5ee37a89082804ef57cbb12bb"/> | ||
35 | <commits committer="//@projectMembers.0" parents="//@commits.8" created_at="2012-01-15T22:48:36.000-0500" sha="32a6f8d140ac6db5ee37a89082804ef57cbb12bb" parents_sha="74aefd366c55ae8de122e20794a00b8c49b584cb"/> | ||
36 | <commits committer="//@projectMembers.0" created_at="2012-01-15T22:31:19.000-0500" sha="74aefd366c55ae8de122e20794a00b8c49b584cb" parents_sha=""/> | ||
37 | <commits committer="//@projectMembers.1" pullrequest="//@issue.4/@pullrequest" created_at="2012-10-08T18:05:07.000-0400" sha="dfd5c4d9818c405cc262870515c6e5d8f71ba4a9" parents_sha="edac411699e093ae17bb8e252801d169cf63386b"/> | ||
38 | </github:Project> | ||
diff --git a/Metrics/Metrics-Calculation/SocialNetwork_plugin/data/Yakindumm/mpc_rep.csv b/Metrics/Metrics-Calculation/SocialNetwork_plugin/data/Yakindumm/mpc_rep.csv new file mode 100644 index 00000000..fc39ac54 --- /dev/null +++ b/Metrics/Metrics-Calculation/SocialNetwork_plugin/data/Yakindumm/mpc_rep.csv | |||
@@ -0,0 +1,9 @@ | |||
1 | Meta Mode,yakindumm | ||
2 | Number of Edge types,6 | ||
3 | Number Of Nodes,67 | ||
4 | OutDegreeValue,1,2,3,4,6,8,9 | ||
5 | OutDegreeCount,4,45,9,1,1,2,5 | ||
6 | NAValue,1,2,3,4,5,6 | ||
7 | NACount,1,3,4,42,15,2 | ||
8 | MPCValue,0.00000,0.21600,0.45000,0.76800,0.80000,0.89751,0.90000,0.91349,0.92410,0.93061,0.93728,0.96000,0.97500,1.00000 | ||
9 | MPCCount,1,2,1,1,3,1,42,2,2,7,1,2,1,1 | ||
diff --git a/Metrics/Metrics-Calculation/SocialNetwork_plugin/data/Yakindumm/mpc_rep/R_2016324.xmi b/Metrics/Metrics-Calculation/SocialNetwork_plugin/data/Yakindumm/mpc_rep/R_2016324.xmi new file mode 100644 index 00000000..493a1731 --- /dev/null +++ b/Metrics/Metrics-Calculation/SocialNetwork_plugin/data/Yakindumm/mpc_rep/R_2016324.xmi | |||
@@ -0,0 +1,128 @@ | |||
1 | <?xml version="1.0" encoding="ASCII"?> | ||
2 | <hu.bme.mit.inf.yakindumm:Statechart xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:hu.bme.mit.inf.yakindumm="hu.bme.mit.inf.yakindumm"> | ||
3 | <regions> | ||
4 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.2/@outgoingTransitions.0 //@regions.0/@vertices.1/@outgoingTransitions.0"> | ||
5 | <outgoingTransitions target="//@regions.0/@vertices.2/@regions.0/@vertices.0"/> | ||
6 | <regions> | ||
7 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.0/@regions.0/@vertices.1/@outgoingTransitions.2"> | ||
8 | <regions> | ||
9 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Entry"> | ||
10 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.0/@regions.0/@vertices.1"/> | ||
11 | </vertices> | ||
12 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.0/@regions.0/@vertices.0/@regions.0/@vertices.0/@outgoingTransitions.0"> | ||
13 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.0/@regions.0/@vertices.3"/> | ||
14 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.0/@regions.0/@vertices.2"/> | ||
15 | </vertices> | ||
16 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.0/@regions.0/@vertices.0/@regions.0/@vertices.3/@outgoingTransitions.0 //@regions.0/@vertices.0/@regions.0/@vertices.0/@regions.0/@vertices.1/@outgoingTransitions.1"> | ||
17 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.0/@regions.0/@vertices.3"/> | ||
18 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.3"/> | ||
19 | </vertices> | ||
20 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.0/@regions.0/@vertices.0/@regions.0/@vertices.1/@outgoingTransitions.0 //@regions.0/@vertices.0/@regions.0/@vertices.0/@regions.0/@vertices.2/@outgoingTransitions.0"> | ||
21 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.0/@regions.0/@vertices.2"/> | ||
22 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.3"/> | ||
23 | </vertices> | ||
24 | </regions> | ||
25 | </vertices> | ||
26 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.0/@regions.0/@vertices.11/@outgoingTransitions.0 //@regions.0/@vertices.0/@regions.0/@vertices.11/@outgoingTransitions.1 //@regions.0/@vertices.0/@regions.0/@vertices.12/@outgoingTransitions.0 //@regions.0/@vertices.0/@regions.0/@vertices.12/@outgoingTransitions.1 //@regions.0/@vertices.0/@regions.0/@vertices.2/@outgoingTransitions.2"> | ||
27 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.12"/> | ||
28 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.11"/> | ||
29 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.0"/> | ||
30 | </vertices> | ||
31 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.0/@regions.0/@vertices.4/@outgoingTransitions.1 //@regions.0/@vertices.0/@regions.0/@vertices.7/@outgoingTransitions.0 //@regions.0/@vertices.0/@regions.0/@vertices.13/@outgoingTransitions.0 //@regions.0/@vertices.0/@regions.0/@vertices.7/@outgoingTransitions.1 //@regions.0/@vertices.0/@regions.0/@vertices.13/@outgoingTransitions.1"> | ||
32 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.13"/> | ||
33 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.7"/> | ||
34 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.1"/> | ||
35 | </vertices> | ||
36 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.0/@regions.0/@vertices.10/@outgoingTransitions.0 //@regions.0/@vertices.0/@regions.0/@vertices.10/@outgoingTransitions.1 //@regions.0/@vertices.0/@regions.0/@vertices.6/@outgoingTransitions.1 //@regions.0/@vertices.0/@regions.0/@vertices.5/@outgoingTransitions.0 //@regions.0/@vertices.0/@regions.0/@vertices.6/@outgoingTransitions.0 //@regions.0/@vertices.0/@regions.0/@vertices.0/@regions.0/@vertices.2/@outgoingTransitions.1 //@regions.0/@vertices.0/@regions.0/@vertices.0/@regions.0/@vertices.3/@outgoingTransitions.1"> | ||
37 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.4"/> | ||
38 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.10"/> | ||
39 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.6"/> | ||
40 | </vertices> | ||
41 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.0/@regions.0/@vertices.8/@outgoingTransitions.0 //@regions.0/@vertices.0/@regions.0/@vertices.9/@outgoingTransitions.0 //@regions.0/@vertices.0/@regions.0/@vertices.8/@outgoingTransitions.1 //@regions.0/@vertices.0/@regions.0/@vertices.3/@outgoingTransitions.0 //@regions.0/@vertices.0/@regions.0/@vertices.9/@outgoingTransitions.1"> | ||
42 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.8"/> | ||
43 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.2"/> | ||
44 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.9"/> | ||
45 | </vertices> | ||
46 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Entry"> | ||
47 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.3"/> | ||
48 | </vertices> | ||
49 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.0/@regions.0/@vertices.3/@outgoingTransitions.2"> | ||
50 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.3"/> | ||
51 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.3"/> | ||
52 | </vertices> | ||
53 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.0/@regions.0/@vertices.2/@outgoingTransitions.1"> | ||
54 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.2"/> | ||
55 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.2"/> | ||
56 | </vertices> | ||
57 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.0/@regions.0/@vertices.4/@outgoingTransitions.0"> | ||
58 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.4"/> | ||
59 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.4"/> | ||
60 | </vertices> | ||
61 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.0/@regions.0/@vertices.4/@outgoingTransitions.2"> | ||
62 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.4"/> | ||
63 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.4"/> | ||
64 | </vertices> | ||
65 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.0/@regions.0/@vertices.3/@outgoingTransitions.1"> | ||
66 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.3"/> | ||
67 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.3"/> | ||
68 | </vertices> | ||
69 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.0/@regions.0/@vertices.1/@outgoingTransitions.1"> | ||
70 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.1"/> | ||
71 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.1"/> | ||
72 | </vertices> | ||
73 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.0/@regions.0/@vertices.1/@outgoingTransitions.0"> | ||
74 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.1"/> | ||
75 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.1"/> | ||
76 | </vertices> | ||
77 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.0/@regions.0/@vertices.2/@outgoingTransitions.0"> | ||
78 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.2"/> | ||
79 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.2"/> | ||
80 | </vertices> | ||
81 | </regions> | ||
82 | </vertices> | ||
83 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Entry"> | ||
84 | <outgoingTransitions target="//@regions.0/@vertices.0"/> | ||
85 | </vertices> | ||
86 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State"> | ||
87 | <outgoingTransitions target="//@regions.0/@vertices.0"/> | ||
88 | <regions> | ||
89 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Entry" incomingTransitions="//@regions.0/@vertices.0/@outgoingTransitions.0"> | ||
90 | <outgoingTransitions target="//@regions.0/@vertices.2/@regions.0/@vertices.1"/> | ||
91 | </vertices> | ||
92 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.2/@regions.0/@vertices.0/@outgoingTransitions.0"> | ||
93 | <outgoingTransitions target="//@regions.0/@vertices.2/@regions.0/@vertices.2"/> | ||
94 | <outgoingTransitions target="//@regions.0/@vertices.2/@regions.0/@vertices.3"/> | ||
95 | </vertices> | ||
96 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.2/@regions.0/@vertices.4/@outgoingTransitions.0 //@regions.0/@vertices.2/@regions.0/@vertices.9/@outgoingTransitions.0 //@regions.0/@vertices.2/@regions.0/@vertices.1/@outgoingTransitions.0 //@regions.0/@vertices.2/@regions.0/@vertices.9/@outgoingTransitions.1"> | ||
97 | <outgoingTransitions target="//@regions.0/@vertices.2/@regions.0/@vertices.8"/> | ||
98 | <outgoingTransitions target="//@regions.0/@vertices.2/@regions.0/@vertices.10"/> | ||
99 | <outgoingTransitions target="//@regions.0/@vertices.2/@regions.0/@vertices.4"/> | ||
100 | </vertices> | ||
101 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.2/@regions.0/@vertices.8/@outgoingTransitions.0 //@regions.0/@vertices.2/@regions.0/@vertices.1/@outgoingTransitions.1 //@regions.0/@vertices.2/@regions.0/@vertices.7/@outgoingTransitions.0 //@regions.0/@vertices.2/@regions.0/@vertices.8/@outgoingTransitions.1"> | ||
102 | <outgoingTransitions target="//@regions.0/@vertices.2/@regions.0/@vertices.7"/> | ||
103 | <outgoingTransitions target="//@regions.0/@vertices.2/@regions.0/@vertices.9"/> | ||
104 | <outgoingTransitions target="//@regions.0/@vertices.2/@regions.0/@vertices.10"/> | ||
105 | </vertices> | ||
106 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.2/@regions.0/@vertices.2/@outgoingTransitions.2"> | ||
107 | <outgoingTransitions target="//@regions.0/@vertices.2/@regions.0/@vertices.2"/> | ||
108 | <outgoingTransitions target="//@regions.0/@vertices.2/@regions.0/@vertices.5"/> | ||
109 | </vertices> | ||
110 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.2/@regions.0/@vertices.4/@outgoingTransitions.1"/> | ||
111 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.2/@regions.0/@vertices.7/@outgoingTransitions.1"/> | ||
112 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.2/@regions.0/@vertices.3/@outgoingTransitions.0"> | ||
113 | <outgoingTransitions target="//@regions.0/@vertices.2/@regions.0/@vertices.3"/> | ||
114 | <outgoingTransitions target="//@regions.0/@vertices.2/@regions.0/@vertices.6"/> | ||
115 | </vertices> | ||
116 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.2/@regions.0/@vertices.2/@outgoingTransitions.0"> | ||
117 | <outgoingTransitions target="//@regions.0/@vertices.2/@regions.0/@vertices.3"/> | ||
118 | <outgoingTransitions target="//@regions.0/@vertices.2/@regions.0/@vertices.3"/> | ||
119 | </vertices> | ||
120 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.2/@regions.0/@vertices.3/@outgoingTransitions.1"> | ||
121 | <outgoingTransitions target="//@regions.0/@vertices.2/@regions.0/@vertices.2"/> | ||
122 | <outgoingTransitions target="//@regions.0/@vertices.2/@regions.0/@vertices.2"/> | ||
123 | </vertices> | ||
124 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.2/@regions.0/@vertices.3/@outgoingTransitions.2 //@regions.0/@vertices.2/@regions.0/@vertices.2/@outgoingTransitions.1"/> | ||
125 | </regions> | ||
126 | </vertices> | ||
127 | </regions> | ||
128 | </hu.bme.mit.inf.yakindumm:Statechart> | ||
diff --git a/Metrics/Metrics-Calculation/SocialNetwork_plugin/data/Yakindumm/na_rep.csv b/Metrics/Metrics-Calculation/SocialNetwork_plugin/data/Yakindumm/na_rep.csv new file mode 100644 index 00000000..43d411e4 --- /dev/null +++ b/Metrics/Metrics-Calculation/SocialNetwork_plugin/data/Yakindumm/na_rep.csv | |||
@@ -0,0 +1,9 @@ | |||
1 | Meta Mode,yakindumm | ||
2 | Number of Edge types,6 | ||
3 | Number Of Nodes,98 | ||
4 | OutDegreeValue,1,2,3,4,5,6,10,15 | ||
5 | OutDegreeCount,7,61,17,2,3,2,5,1 | ||
6 | NAValue,1,2,3,4,5,6 | ||
7 | NACount,1,4,6,62,23,2 | ||
8 | MPCValue,0.00000,0.14062,0.19835,0.38400,0.45000,0.80000,0.86667,0.90000,0.90888,0.91429,0.93061,0.93223,0.94815,0.98400,1.00000 | ||
9 | MPCCount,1,1,1,1,1,6,1,61,2,4,14,2,1,1,1 | ||
diff --git a/Metrics/Metrics-Calculation/SocialNetwork_plugin/data/Yakindumm/na_rep/R_2017419.xmi b/Metrics/Metrics-Calculation/SocialNetwork_plugin/data/Yakindumm/na_rep/R_2017419.xmi new file mode 100644 index 00000000..369760bf --- /dev/null +++ b/Metrics/Metrics-Calculation/SocialNetwork_plugin/data/Yakindumm/na_rep/R_2017419.xmi | |||
@@ -0,0 +1,138 @@ | |||
1 | <?xml version="1.0" encoding="ASCII"?> | ||
2 | <hu.bme.mit.inf.yakindumm:Statechart xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:hu.bme.mit.inf.yakindumm="hu.bme.mit.inf.yakindumm"> | ||
3 | <regions> | ||
4 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.1/@outgoingTransitions.0 //@regions.0/@vertices.2/@outgoingTransitions.0 //@regions.0/@vertices.5/@outgoingTransitions.0"> | ||
5 | <regions> | ||
6 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.0/@regions.0/@vertices.2/@outgoingTransitions.0 //@regions.0/@vertices.0/@regions.0/@vertices.8/@outgoingTransitions.2 //@regions.0/@vertices.0/@regions.0/@vertices.5/@outgoingTransitions.2 //@regions.0/@vertices.0/@regions.0/@vertices.1/@outgoingTransitions.2 //@regions.0/@vertices.0/@regions.0/@vertices.8/@outgoingTransitions.3"> | ||
7 | <outgoingTransitions target="//@regions.0/@vertices.1"/> | ||
8 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.1"/> | ||
9 | </vertices> | ||
10 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.0/@regions.0/@vertices.4/@outgoingTransitions.1 //@regions.0/@vertices.0/@regions.0/@vertices.3/@outgoingTransitions.0 //@regions.0/@vertices.0/@regions.0/@vertices.3/@outgoingTransitions.1 //@regions.0/@vertices.0/@regions.0/@vertices.4/@outgoingTransitions.0 //@regions.0/@vertices.0/@regions.0/@vertices.0/@outgoingTransitions.1"> | ||
11 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.5"/> | ||
12 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.4"/> | ||
13 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.0"/> | ||
14 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.3"/> | ||
15 | </vertices> | ||
16 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Entry"> | ||
17 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.0"/> | ||
18 | </vertices> | ||
19 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.0/@regions.0/@vertices.1/@outgoingTransitions.3"> | ||
20 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.1"/> | ||
21 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.1"/> | ||
22 | </vertices> | ||
23 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.0/@regions.0/@vertices.1/@outgoingTransitions.1"> | ||
24 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.1"/> | ||
25 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.1"/> | ||
26 | </vertices> | ||
27 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.0/@regions.0/@vertices.6/@outgoingTransitions.1 //@regions.0/@vertices.0/@regions.0/@vertices.1/@outgoingTransitions.0 //@regions.0/@vertices.0/@regions.0/@vertices.7/@outgoingTransitions.1 //@regions.0/@vertices.0/@regions.0/@vertices.6/@outgoingTransitions.0 //@regions.0/@vertices.0/@regions.0/@vertices.7/@outgoingTransitions.0"> | ||
28 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.6"/> | ||
29 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.7"/> | ||
30 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.0"/> | ||
31 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.8"/> | ||
32 | </vertices> | ||
33 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.0/@regions.0/@vertices.5/@outgoingTransitions.0"> | ||
34 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.5"/> | ||
35 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.5"/> | ||
36 | </vertices> | ||
37 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.0/@regions.0/@vertices.5/@outgoingTransitions.1"> | ||
38 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.5"/> | ||
39 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.5"/> | ||
40 | </vertices> | ||
41 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.0/@regions.0/@vertices.10/@outgoingTransitions.0 //@regions.0/@vertices.0/@regions.0/@vertices.9/@outgoingTransitions.0 //@regions.0/@vertices.0/@regions.0/@vertices.5/@outgoingTransitions.3 //@regions.0/@vertices.0/@regions.0/@vertices.10/@outgoingTransitions.1 //@regions.0/@vertices.0/@regions.0/@vertices.9/@outgoingTransitions.1"> | ||
42 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.10"/> | ||
43 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.9"/> | ||
44 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.0"/> | ||
45 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.0"/> | ||
46 | </vertices> | ||
47 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.0/@regions.0/@vertices.8/@outgoingTransitions.1"> | ||
48 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.8"/> | ||
49 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.8"/> | ||
50 | </vertices> | ||
51 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.0/@regions.0/@vertices.8/@outgoingTransitions.0"> | ||
52 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.8"/> | ||
53 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.8"/> | ||
54 | </vertices> | ||
55 | </regions> | ||
56 | </vertices> | ||
57 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.4/@outgoingTransitions.0 //@regions.0/@vertices.0/@regions.0/@vertices.0/@outgoingTransitions.0 //@regions.0/@vertices.4/@outgoingTransitions.1"> | ||
58 | <outgoingTransitions target="//@regions.0/@vertices.0"/> | ||
59 | <regions> | ||
60 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.1/@regions.0/@vertices.7/@outgoingTransitions.1 //@regions.0/@vertices.1/@regions.0/@vertices.7/@outgoingTransitions.0"> | ||
61 | <outgoingTransitions target="//@regions.0/@vertices.3"/> | ||
62 | </vertices> | ||
63 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.1/@regions.0/@vertices.4/@outgoingTransitions.0 //@regions.0/@vertices.1/@regions.0/@vertices.5/@outgoingTransitions.1"> | ||
64 | <outgoingTransitions target="//@regions.0/@vertices.1/@regions.0/@vertices.3"/> | ||
65 | <outgoingTransitions target="//@regions.0/@vertices.3"/> | ||
66 | <outgoingTransitions target="//@regions.0/@vertices.1/@regions.0/@vertices.5"/> | ||
67 | </vertices> | ||
68 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.1/@regions.0/@vertices.5/@outgoingTransitions.0 //@regions.0/@vertices.1/@regions.0/@vertices.6/@outgoingTransitions.0"/> | ||
69 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.1/@regions.0/@vertices.1/@outgoingTransitions.0 //@regions.0/@vertices.1/@regions.0/@vertices.6/@outgoingTransitions.1"> | ||
70 | <outgoingTransitions target="//@regions.0/@vertices.1/@regions.0/@vertices.7"/> | ||
71 | <outgoingTransitions target="//@regions.0/@vertices.1/@regions.0/@vertices.6"/> | ||
72 | </vertices> | ||
73 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Entry"> | ||
74 | <outgoingTransitions target="//@regions.0/@vertices.1/@regions.0/@vertices.1"/> | ||
75 | </vertices> | ||
76 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.1/@regions.0/@vertices.1/@outgoingTransitions.2"> | ||
77 | <outgoingTransitions target="//@regions.0/@vertices.1/@regions.0/@vertices.2"/> | ||
78 | <outgoingTransitions target="//@regions.0/@vertices.1/@regions.0/@vertices.1"/> | ||
79 | </vertices> | ||
80 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.1/@regions.0/@vertices.3/@outgoingTransitions.1"> | ||
81 | <outgoingTransitions target="//@regions.0/@vertices.1/@regions.0/@vertices.2"/> | ||
82 | <outgoingTransitions target="//@regions.0/@vertices.1/@regions.0/@vertices.3"/> | ||
83 | </vertices> | ||
84 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.1/@regions.0/@vertices.3/@outgoingTransitions.0"> | ||
85 | <outgoingTransitions target="//@regions.0/@vertices.1/@regions.0/@vertices.0"/> | ||
86 | <outgoingTransitions target="//@regions.0/@vertices.1/@regions.0/@vertices.0"/> | ||
87 | </vertices> | ||
88 | </regions> | ||
89 | </vertices> | ||
90 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.3/@outgoingTransitions.1 //@regions.0/@vertices.3/@outgoingTransitions.0"> | ||
91 | <outgoingTransitions target="//@regions.0/@vertices.0"/> | ||
92 | <regions> | ||
93 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.2/@regions.0/@vertices.7/@outgoingTransitions.0 //@regions.0/@vertices.2/@regions.0/@vertices.7/@outgoingTransitions.1"> | ||
94 | <outgoingTransitions target="//@regions.0/@vertices.4"/> | ||
95 | </vertices> | ||
96 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.2/@regions.0/@vertices.4/@outgoingTransitions.0 //@regions.0/@vertices.2/@regions.0/@vertices.5/@outgoingTransitions.1"> | ||
97 | <outgoingTransitions target="//@regions.0/@vertices.2/@regions.0/@vertices.3"/> | ||
98 | <outgoingTransitions target="//@regions.0/@vertices.4"/> | ||
99 | <outgoingTransitions target="//@regions.0/@vertices.2/@regions.0/@vertices.5"/> | ||
100 | </vertices> | ||
101 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.2/@regions.0/@vertices.6/@outgoingTransitions.0 //@regions.0/@vertices.2/@regions.0/@vertices.5/@outgoingTransitions.0"/> | ||
102 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.2/@regions.0/@vertices.1/@outgoingTransitions.0 //@regions.0/@vertices.2/@regions.0/@vertices.6/@outgoingTransitions.1"> | ||
103 | <outgoingTransitions target="//@regions.0/@vertices.2/@regions.0/@vertices.6"/> | ||
104 | <outgoingTransitions target="//@regions.0/@vertices.2/@regions.0/@vertices.7"/> | ||
105 | </vertices> | ||
106 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Entry"> | ||
107 | <outgoingTransitions target="//@regions.0/@vertices.2/@regions.0/@vertices.1"/> | ||
108 | </vertices> | ||
109 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.2/@regions.0/@vertices.1/@outgoingTransitions.2"> | ||
110 | <outgoingTransitions target="//@regions.0/@vertices.2/@regions.0/@vertices.2"/> | ||
111 | <outgoingTransitions target="//@regions.0/@vertices.2/@regions.0/@vertices.1"/> | ||
112 | </vertices> | ||
113 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.2/@regions.0/@vertices.3/@outgoingTransitions.0"> | ||
114 | <outgoingTransitions target="//@regions.0/@vertices.2/@regions.0/@vertices.2"/> | ||
115 | <outgoingTransitions target="//@regions.0/@vertices.2/@regions.0/@vertices.3"/> | ||
116 | </vertices> | ||
117 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.2/@regions.0/@vertices.3/@outgoingTransitions.1"> | ||
118 | <outgoingTransitions target="//@regions.0/@vertices.2/@regions.0/@vertices.0"/> | ||
119 | <outgoingTransitions target="//@regions.0/@vertices.2/@regions.0/@vertices.0"/> | ||
120 | </vertices> | ||
121 | </regions> | ||
122 | </vertices> | ||
123 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.1/@regions.0/@vertices.0/@outgoingTransitions.0 //@regions.0/@vertices.1/@regions.0/@vertices.1/@outgoingTransitions.1"> | ||
124 | <outgoingTransitions target="//@regions.0/@vertices.2"/> | ||
125 | <outgoingTransitions target="//@regions.0/@vertices.2"/> | ||
126 | </vertices> | ||
127 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.2/@regions.0/@vertices.0/@outgoingTransitions.0 //@regions.0/@vertices.2/@regions.0/@vertices.1/@outgoingTransitions.1"> | ||
128 | <outgoingTransitions target="//@regions.0/@vertices.1"/> | ||
129 | <outgoingTransitions target="//@regions.0/@vertices.1"/> | ||
130 | </vertices> | ||
131 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.6/@outgoingTransitions.0"> | ||
132 | <outgoingTransitions target="//@regions.0/@vertices.0"/> | ||
133 | </vertices> | ||
134 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Entry"> | ||
135 | <outgoingTransitions target="//@regions.0/@vertices.5"/> | ||
136 | </vertices> | ||
137 | </regions> | ||
138 | </hu.bme.mit.inf.yakindumm:Statechart> | ||
diff --git a/Metrics/Metrics-Calculation/SocialNetwork_plugin/data/Yakindumm/new/mpc_rep/R_2015194.xmi b/Metrics/Metrics-Calculation/SocialNetwork_plugin/data/Yakindumm/new/mpc_rep/R_2015194.xmi new file mode 100644 index 00000000..25ff5ce0 --- /dev/null +++ b/Metrics/Metrics-Calculation/SocialNetwork_plugin/data/Yakindumm/new/mpc_rep/R_2015194.xmi | |||
@@ -0,0 +1,132 @@ | |||
1 | <?xml version="1.0" encoding="ASCII"?> | ||
2 | <hu.bme.mit.inf.yakindumm:Statechart xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:hu.bme.mit.inf.yakindumm="hu.bme.mit.inf.yakindumm"> | ||
3 | <regions> | ||
4 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.1/@outgoingTransitions.0 //@regions.0/@vertices.2/@outgoingTransitions.0"> | ||
5 | <outgoingTransitions target="//@regions.0/@vertices.1"/> | ||
6 | <regions> | ||
7 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.0/@regions.0/@vertices.5/@outgoingTransitions.0 //@regions.0/@vertices.0/@regions.0/@vertices.13/@outgoingTransitions.0 //@regions.0/@vertices.0/@regions.0/@vertices.12/@outgoingTransitions.0 //@regions.0/@vertices.0/@regions.0/@vertices.12/@outgoingTransitions.1 //@regions.0/@vertices.0/@regions.0/@vertices.13/@outgoingTransitions.1"> | ||
8 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.12"/> | ||
9 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.1"/> | ||
10 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.13"/> | ||
11 | </vertices> | ||
12 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.0/@regions.0/@vertices.14/@outgoingTransitions.0 //@regions.0/@vertices.0/@regions.0/@vertices.15/@outgoingTransitions.1 //@regions.0/@vertices.0/@regions.0/@vertices.0/@outgoingTransitions.1 //@regions.0/@vertices.0/@regions.0/@vertices.15/@outgoingTransitions.0 //@regions.0/@vertices.0/@regions.0/@vertices.14/@outgoingTransitions.1"> | ||
13 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.7"/> | ||
14 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.14"/> | ||
15 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.15"/> | ||
16 | </vertices> | ||
17 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.0/@regions.0/@vertices.7/@outgoingTransitions.0 //@regions.0/@vertices.0/@regions.0/@vertices.3/@outgoingTransitions.1"> | ||
18 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.4"/> | ||
19 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.3"/> | ||
20 | </vertices> | ||
21 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.0/@regions.0/@vertices.7/@outgoingTransitions.1 //@regions.0/@vertices.0/@regions.0/@vertices.2/@outgoingTransitions.1"> | ||
22 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.4"/> | ||
23 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.2"/> | ||
24 | </vertices> | ||
25 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.0/@regions.0/@vertices.9/@outgoingTransitions.0 //@regions.0/@vertices.0/@regions.0/@vertices.8/@outgoingTransitions.0 //@regions.0/@vertices.0/@regions.0/@vertices.6/@outgoingTransitions.0 //@regions.0/@vertices.0/@regions.0/@vertices.3/@outgoingTransitions.0 //@regions.0/@vertices.0/@regions.0/@vertices.2/@outgoingTransitions.0 //@regions.0/@vertices.0/@regions.0/@vertices.8/@outgoingTransitions.1 //@regions.0/@vertices.0/@regions.0/@vertices.9/@outgoingTransitions.1"> | ||
26 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.5"/> | ||
27 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.8"/> | ||
28 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.9"/> | ||
29 | </vertices> | ||
30 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.0/@regions.0/@vertices.11/@outgoingTransitions.0 //@regions.0/@vertices.0/@regions.0/@vertices.4/@outgoingTransitions.0 //@regions.0/@vertices.0/@regions.0/@vertices.10/@outgoingTransitions.0 //@regions.0/@vertices.0/@regions.0/@vertices.10/@outgoingTransitions.1 //@regions.0/@vertices.0/@regions.0/@vertices.11/@outgoingTransitions.1"> | ||
31 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.0"/> | ||
32 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.10"/> | ||
33 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.11"/> | ||
34 | </vertices> | ||
35 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Entry"> | ||
36 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.4"/> | ||
37 | </vertices> | ||
38 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.0/@regions.0/@vertices.1/@outgoingTransitions.0"> | ||
39 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.2"/> | ||
40 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.3"/> | ||
41 | </vertices> | ||
42 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.0/@regions.0/@vertices.4/@outgoingTransitions.1"> | ||
43 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.4"/> | ||
44 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.4"/> | ||
45 | </vertices> | ||
46 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.0/@regions.0/@vertices.4/@outgoingTransitions.2"> | ||
47 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.4"/> | ||
48 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.4"/> | ||
49 | </vertices> | ||
50 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.0/@regions.0/@vertices.5/@outgoingTransitions.1"> | ||
51 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.5"/> | ||
52 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.5"/> | ||
53 | </vertices> | ||
54 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.0/@regions.0/@vertices.5/@outgoingTransitions.2"> | ||
55 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.5"/> | ||
56 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.5"/> | ||
57 | </vertices> | ||
58 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.0/@regions.0/@vertices.0/@outgoingTransitions.0"> | ||
59 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.0"/> | ||
60 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.0"/> | ||
61 | </vertices> | ||
62 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.0/@regions.0/@vertices.0/@outgoingTransitions.2"> | ||
63 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.0"/> | ||
64 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.0"/> | ||
65 | </vertices> | ||
66 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.0/@regions.0/@vertices.1/@outgoingTransitions.1"> | ||
67 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.1"/> | ||
68 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.1"/> | ||
69 | </vertices> | ||
70 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.0/@regions.0/@vertices.1/@outgoingTransitions.2"> | ||
71 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.1"/> | ||
72 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.1"/> | ||
73 | </vertices> | ||
74 | </regions> | ||
75 | </vertices> | ||
76 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.0/@outgoingTransitions.0"> | ||
77 | <outgoingTransitions target="//@regions.0/@vertices.0"/> | ||
78 | <regions> | ||
79 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Entry"> | ||
80 | <outgoingTransitions target="//@regions.0/@vertices.1/@regions.0/@vertices.2"/> | ||
81 | </vertices> | ||
82 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.1/@regions.0/@vertices.2/@outgoingTransitions.0"/> | ||
83 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.1/@regions.0/@vertices.0/@outgoingTransitions.0"> | ||
84 | <outgoingTransitions target="//@regions.0/@vertices.1/@regions.0/@vertices.1"/> | ||
85 | <outgoingTransitions target="//@regions.0/@vertices.1/@regions.0/@vertices.3"/> | ||
86 | <outgoingTransitions target="//@regions.0/@vertices.1/@regions.0/@vertices.3"/> | ||
87 | <regions> | ||
88 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.1/@regions.0/@vertices.2/@regions.0/@vertices.2/@outgoingTransitions.0 //@regions.0/@vertices.1/@regions.0/@vertices.2/@regions.0/@vertices.5/@outgoingTransitions.0 //@regions.0/@vertices.1/@regions.0/@vertices.2/@regions.0/@vertices.0/@outgoingTransitions.1 //@regions.0/@vertices.1/@regions.0/@vertices.2/@regions.0/@vertices.5/@outgoingTransitions.1"> | ||
89 | <outgoingTransitions target="//@regions.0/@vertices.1/@regions.0/@vertices.2/@regions.0/@vertices.4"/> | ||
90 | <outgoingTransitions target="//@regions.0/@vertices.1/@regions.0/@vertices.2/@regions.0/@vertices.0"/> | ||
91 | </vertices> | ||
92 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.1/@regions.0/@vertices.2/@regions.0/@vertices.2/@outgoingTransitions.1 //@regions.0/@vertices.1/@regions.0/@vertices.2/@regions.0/@vertices.4/@outgoingTransitions.0 //@regions.0/@vertices.1/@regions.0/@vertices.2/@regions.0/@vertices.1/@outgoingTransitions.0 //@regions.0/@vertices.1/@regions.0/@vertices.2/@regions.0/@vertices.4/@outgoingTransitions.1"> | ||
93 | <outgoingTransitions target="//@regions.0/@vertices.1/@regions.0/@vertices.2/@regions.0/@vertices.1"/> | ||
94 | <outgoingTransitions target="//@regions.0/@vertices.1/@regions.0/@vertices.2/@regions.0/@vertices.5"/> | ||
95 | </vertices> | ||
96 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.1/@regions.0/@vertices.2/@regions.0/@vertices.3/@outgoingTransitions.0"> | ||
97 | <outgoingTransitions target="//@regions.0/@vertices.1/@regions.0/@vertices.2/@regions.0/@vertices.0"/> | ||
98 | <outgoingTransitions target="//@regions.0/@vertices.1/@regions.0/@vertices.2/@regions.0/@vertices.1"/> | ||
99 | </vertices> | ||
100 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Entry"> | ||
101 | <outgoingTransitions target="//@regions.0/@vertices.1/@regions.0/@vertices.2/@regions.0/@vertices.2"/> | ||
102 | </vertices> | ||
103 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.1/@regions.0/@vertices.2/@regions.0/@vertices.0/@outgoingTransitions.0"> | ||
104 | <outgoingTransitions target="//@regions.0/@vertices.1/@regions.0/@vertices.2/@regions.0/@vertices.1"/> | ||
105 | <outgoingTransitions target="//@regions.0/@vertices.1/@regions.0/@vertices.2/@regions.0/@vertices.1"/> | ||
106 | </vertices> | ||
107 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.1/@regions.0/@vertices.2/@regions.0/@vertices.1/@outgoingTransitions.1"> | ||
108 | <outgoingTransitions target="//@regions.0/@vertices.1/@regions.0/@vertices.2/@regions.0/@vertices.0"/> | ||
109 | <outgoingTransitions target="//@regions.0/@vertices.1/@regions.0/@vertices.2/@regions.0/@vertices.0"/> | ||
110 | </vertices> | ||
111 | </regions> | ||
112 | </vertices> | ||
113 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.1/@regions.0/@vertices.2/@outgoingTransitions.1 //@regions.0/@vertices.1/@regions.0/@vertices.2/@outgoingTransitions.2"> | ||
114 | <regions> | ||
115 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.1/@regions.0/@vertices.3/@regions.0/@vertices.2/@outgoingTransitions.1"/> | ||
116 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.1/@regions.0/@vertices.3/@regions.0/@vertices.2/@outgoingTransitions.0"/> | ||
117 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.1/@regions.0/@vertices.3/@regions.0/@vertices.3/@outgoingTransitions.0"> | ||
118 | <outgoingTransitions target="//@regions.0/@vertices.1/@regions.0/@vertices.3/@regions.0/@vertices.1"/> | ||
119 | <outgoingTransitions target="//@regions.0/@vertices.1/@regions.0/@vertices.3/@regions.0/@vertices.0"/> | ||
120 | </vertices> | ||
121 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Entry"> | ||
122 | <outgoingTransitions target="//@regions.0/@vertices.1/@regions.0/@vertices.3/@regions.0/@vertices.2"/> | ||
123 | </vertices> | ||
124 | </regions> | ||
125 | </vertices> | ||
126 | </regions> | ||
127 | </vertices> | ||
128 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Entry"> | ||
129 | <outgoingTransitions target="//@regions.0/@vertices.0"/> | ||
130 | </vertices> | ||
131 | </regions> | ||
132 | </hu.bme.mit.inf.yakindumm:Statechart> | ||
diff --git a/Metrics/Metrics-Calculation/SocialNetwork_plugin/data/Yakindumm/new/na_rep/R_2017131.xmi b/Metrics/Metrics-Calculation/SocialNetwork_plugin/data/Yakindumm/new/na_rep/R_2017131.xmi new file mode 100644 index 00000000..39780f72 --- /dev/null +++ b/Metrics/Metrics-Calculation/SocialNetwork_plugin/data/Yakindumm/new/na_rep/R_2017131.xmi | |||
@@ -0,0 +1,149 @@ | |||
1 | <?xml version="1.0" encoding="ASCII"?> | ||
2 | <hu.bme.mit.inf.yakindumm:Statechart xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:hu.bme.mit.inf.yakindumm="hu.bme.mit.inf.yakindumm"> | ||
3 | <regions> | ||
4 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.5/@outgoingTransitions.0 //@regions.0/@vertices.2/@outgoingTransitions.0 //@regions.0/@vertices.1/@outgoingTransitions.0"> | ||
5 | <outgoingTransitions target="//@regions.0/@vertices.1"/> | ||
6 | <regions> | ||
7 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.0/@regions.0/@vertices.4/@outgoingTransitions.0 //@regions.0/@vertices.0/@regions.0/@vertices.2/@outgoingTransitions.0 //@regions.0/@vertices.0/@regions.0/@vertices.5/@outgoingTransitions.0 //@regions.0/@vertices.0/@regions.0/@vertices.5/@outgoingTransitions.1 //@regions.0/@vertices.0/@regions.0/@vertices.4/@outgoingTransitions.1 //@regions.0/@vertices.0/@regions.0/@vertices.8/@outgoingTransitions.0"> | ||
8 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.5"/> | ||
9 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.1"/> | ||
10 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.4"/> | ||
11 | </vertices> | ||
12 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.0/@regions.0/@vertices.10/@outgoingTransitions.0 //@regions.0/@vertices.0/@regions.0/@vertices.0/@outgoingTransitions.1 //@regions.0/@vertices.0/@regions.0/@vertices.9/@outgoingTransitions.0 //@regions.0/@vertices.0/@regions.0/@vertices.9/@outgoingTransitions.1 //@regions.0/@vertices.0/@regions.0/@vertices.10/@outgoingTransitions.1"> | ||
13 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.10"/> | ||
14 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.3"/> | ||
15 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.9"/> | ||
16 | </vertices> | ||
17 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.0/@regions.0/@vertices.11/@outgoingTransitions.0 //@regions.0/@vertices.0/@regions.0/@vertices.3/@outgoingTransitions.0 //@regions.0/@vertices.0/@regions.0/@vertices.11/@outgoingTransitions.1 //@regions.0/@vertices.0/@regions.0/@vertices.12/@outgoingTransitions.0 //@regions.0/@vertices.0/@regions.0/@vertices.12/@outgoingTransitions.1"> | ||
18 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.0"/> | ||
19 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.12"/> | ||
20 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.11"/> | ||
21 | </vertices> | ||
22 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.0/@regions.0/@vertices.1/@outgoingTransitions.1 //@regions.0/@vertices.0/@regions.0/@vertices.7/@outgoingTransitions.0 //@regions.0/@vertices.0/@regions.0/@vertices.6/@outgoingTransitions.0 //@regions.0/@vertices.0/@regions.0/@vertices.7/@outgoingTransitions.1 //@regions.0/@vertices.0/@regions.0/@vertices.6/@outgoingTransitions.1"> | ||
23 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.2"/> | ||
24 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.7"/> | ||
25 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.6"/> | ||
26 | </vertices> | ||
27 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.0/@regions.0/@vertices.0/@outgoingTransitions.2"> | ||
28 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.0"/> | ||
29 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.0"/> | ||
30 | </vertices> | ||
31 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.0/@regions.0/@vertices.0/@outgoingTransitions.0"> | ||
32 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.0"/> | ||
33 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.0"/> | ||
34 | </vertices> | ||
35 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.0/@regions.0/@vertices.3/@outgoingTransitions.2"> | ||
36 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.3"/> | ||
37 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.3"/> | ||
38 | </vertices> | ||
39 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.0/@regions.0/@vertices.3/@outgoingTransitions.1"> | ||
40 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.3"/> | ||
41 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.3"/> | ||
42 | </vertices> | ||
43 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Entry"> | ||
44 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.0"/> | ||
45 | </vertices> | ||
46 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.0/@regions.0/@vertices.1/@outgoingTransitions.2"> | ||
47 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.1"/> | ||
48 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.1"/> | ||
49 | </vertices> | ||
50 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.0/@regions.0/@vertices.1/@outgoingTransitions.0"> | ||
51 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.1"/> | ||
52 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.1"/> | ||
53 | </vertices> | ||
54 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.0/@regions.0/@vertices.2/@outgoingTransitions.2"> | ||
55 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.2"/> | ||
56 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.2"/> | ||
57 | </vertices> | ||
58 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.0/@regions.0/@vertices.2/@outgoingTransitions.1"> | ||
59 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.2"/> | ||
60 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.2"/> | ||
61 | </vertices> | ||
62 | </regions> | ||
63 | </vertices> | ||
64 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.0/@outgoingTransitions.0 //@regions.0/@vertices.4/@outgoingTransitions.0 //@regions.0/@vertices.4/@outgoingTransitions.1 //@regions.0/@vertices.2/@regions.0/@vertices.5/@outgoingTransitions.0"> | ||
65 | <outgoingTransitions target="//@regions.0/@vertices.0"/> | ||
66 | <regions> | ||
67 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Entry"> | ||
68 | <outgoingTransitions target="//@regions.0/@vertices.1/@regions.0/@vertices.1"/> | ||
69 | </vertices> | ||
70 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.1/@regions.0/@vertices.2/@outgoingTransitions.0 //@regions.0/@vertices.1/@regions.0/@vertices.0/@outgoingTransitions.0 //@regions.0/@vertices.1/@regions.0/@vertices.2/@outgoingTransitions.2"> | ||
71 | <outgoingTransitions target="//@regions.0/@vertices.1/@regions.0/@vertices.2"/> | ||
72 | <outgoingTransitions target="//@regions.0/@vertices.1/@regions.0/@vertices.4"/> | ||
73 | <outgoingTransitions target="//@regions.0/@vertices.3"/> | ||
74 | </vertices> | ||
75 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.1/@regions.0/@vertices.1/@outgoingTransitions.0"> | ||
76 | <outgoingTransitions target="//@regions.0/@vertices.1/@regions.0/@vertices.1"/> | ||
77 | <outgoingTransitions target="//@regions.0/@vertices.1/@regions.0/@vertices.3"/> | ||
78 | <outgoingTransitions target="//@regions.0/@vertices.1/@regions.0/@vertices.1"/> | ||
79 | </vertices> | ||
80 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.1/@regions.0/@vertices.5/@outgoingTransitions.1 //@regions.0/@vertices.1/@regions.0/@vertices.2/@outgoingTransitions.1"/> | ||
81 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.1/@regions.0/@vertices.1/@outgoingTransitions.1 //@regions.0/@vertices.1/@regions.0/@vertices.5/@outgoingTransitions.0 //@regions.0/@vertices.1/@regions.0/@vertices.5/@outgoingTransitions.2"> | ||
82 | <outgoingTransitions target="//@regions.0/@vertices.1/@regions.0/@vertices.7"/> | ||
83 | <outgoingTransitions target="//@regions.0/@vertices.1/@regions.0/@vertices.5"/> | ||
84 | </vertices> | ||
85 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.1/@regions.0/@vertices.4/@outgoingTransitions.1"> | ||
86 | <outgoingTransitions target="//@regions.0/@vertices.1/@regions.0/@vertices.4"/> | ||
87 | <outgoingTransitions target="//@regions.0/@vertices.1/@regions.0/@vertices.3"/> | ||
88 | <outgoingTransitions target="//@regions.0/@vertices.1/@regions.0/@vertices.4"/> | ||
89 | </vertices> | ||
90 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.1/@regions.0/@vertices.7/@outgoingTransitions.1 //@regions.0/@vertices.1/@regions.0/@vertices.7/@outgoingTransitions.0"> | ||
91 | <outgoingTransitions target="//@regions.0/@vertices.2"/> | ||
92 | </vertices> | ||
93 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.1/@regions.0/@vertices.4/@outgoingTransitions.0"> | ||
94 | <outgoingTransitions target="//@regions.0/@vertices.1/@regions.0/@vertices.6"/> | ||
95 | <outgoingTransitions target="//@regions.0/@vertices.1/@regions.0/@vertices.6"/> | ||
96 | </vertices> | ||
97 | </regions> | ||
98 | </vertices> | ||
99 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.3/@outgoingTransitions.0 //@regions.0/@vertices.3/@outgoingTransitions.1 //@regions.0/@vertices.1/@regions.0/@vertices.6/@outgoingTransitions.0"> | ||
100 | <outgoingTransitions target="//@regions.0/@vertices.0"/> | ||
101 | <regions> | ||
102 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.2/@regions.0/@vertices.7/@outgoingTransitions.0 //@regions.0/@vertices.2/@regions.0/@vertices.2/@outgoingTransitions.1 //@regions.0/@vertices.2/@regions.0/@vertices.2/@outgoingTransitions.0"> | ||
103 | <outgoingTransitions target="//@regions.0/@vertices.2/@regions.0/@vertices.2"/> | ||
104 | <outgoingTransitions target="//@regions.0/@vertices.2/@regions.0/@vertices.3"/> | ||
105 | <outgoingTransitions target="//@regions.0/@vertices.4"/> | ||
106 | </vertices> | ||
107 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.2/@regions.0/@vertices.2/@outgoingTransitions.2 //@regions.0/@vertices.2/@regions.0/@vertices.4/@outgoingTransitions.2"/> | ||
108 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.2/@regions.0/@vertices.0/@outgoingTransitions.0"> | ||
109 | <outgoingTransitions target="//@regions.0/@vertices.2/@regions.0/@vertices.0"/> | ||
110 | <outgoingTransitions target="//@regions.0/@vertices.2/@regions.0/@vertices.0"/> | ||
111 | <outgoingTransitions target="//@regions.0/@vertices.2/@regions.0/@vertices.1"/> | ||
112 | </vertices> | ||
113 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.2/@regions.0/@vertices.0/@outgoingTransitions.1 //@regions.0/@vertices.2/@regions.0/@vertices.4/@outgoingTransitions.0 //@regions.0/@vertices.2/@regions.0/@vertices.4/@outgoingTransitions.1"> | ||
114 | <outgoingTransitions target="//@regions.0/@vertices.2/@regions.0/@vertices.4"/> | ||
115 | <outgoingTransitions target="//@regions.0/@vertices.2/@regions.0/@vertices.6"/> | ||
116 | </vertices> | ||
117 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.2/@regions.0/@vertices.3/@outgoingTransitions.0"> | ||
118 | <outgoingTransitions target="//@regions.0/@vertices.2/@regions.0/@vertices.3"/> | ||
119 | <outgoingTransitions target="//@regions.0/@vertices.2/@regions.0/@vertices.3"/> | ||
120 | <outgoingTransitions target="//@regions.0/@vertices.2/@regions.0/@vertices.1"/> | ||
121 | </vertices> | ||
122 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.2/@regions.0/@vertices.6/@outgoingTransitions.0 //@regions.0/@vertices.2/@regions.0/@vertices.6/@outgoingTransitions.1"> | ||
123 | <outgoingTransitions target="//@regions.0/@vertices.1"/> | ||
124 | </vertices> | ||
125 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.2/@regions.0/@vertices.3/@outgoingTransitions.1"> | ||
126 | <outgoingTransitions target="//@regions.0/@vertices.2/@regions.0/@vertices.5"/> | ||
127 | <outgoingTransitions target="//@regions.0/@vertices.2/@regions.0/@vertices.5"/> | ||
128 | </vertices> | ||
129 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Entry"> | ||
130 | <outgoingTransitions target="//@regions.0/@vertices.2/@regions.0/@vertices.0"/> | ||
131 | </vertices> | ||
132 | </regions> | ||
133 | </vertices> | ||
134 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.1/@regions.0/@vertices.1/@outgoingTransitions.2"> | ||
135 | <outgoingTransitions target="//@regions.0/@vertices.2"/> | ||
136 | <outgoingTransitions target="//@regions.0/@vertices.2"/> | ||
137 | </vertices> | ||
138 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.2/@regions.0/@vertices.0/@outgoingTransitions.2"> | ||
139 | <outgoingTransitions target="//@regions.0/@vertices.1"/> | ||
140 | <outgoingTransitions target="//@regions.0/@vertices.1"/> | ||
141 | </vertices> | ||
142 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.6/@outgoingTransitions.0"> | ||
143 | <outgoingTransitions target="//@regions.0/@vertices.0"/> | ||
144 | </vertices> | ||
145 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Entry"> | ||
146 | <outgoingTransitions target="//@regions.0/@vertices.5"/> | ||
147 | </vertices> | ||
148 | </regions> | ||
149 | </hu.bme.mit.inf.yakindumm:Statechart> | ||
diff --git a/Metrics/Metrics-Calculation/SocialNetwork_plugin/data/Yakindumm/new/out_d_rep/R_2015248.xmi b/Metrics/Metrics-Calculation/SocialNetwork_plugin/data/Yakindumm/new/out_d_rep/R_2015248.xmi new file mode 100644 index 00000000..e7fe8114 --- /dev/null +++ b/Metrics/Metrics-Calculation/SocialNetwork_plugin/data/Yakindumm/new/out_d_rep/R_2015248.xmi | |||
@@ -0,0 +1,125 @@ | |||
1 | <?xml version="1.0" encoding="ASCII"?> | ||
2 | <hu.bme.mit.inf.yakindumm:Statechart xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:hu.bme.mit.inf.yakindumm="hu.bme.mit.inf.yakindumm"> | ||
3 | <regions> | ||
4 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Entry"> | ||
5 | <outgoingTransitions target="//@regions.0/@vertices.1"/> | ||
6 | </vertices> | ||
7 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.12/@outgoingTransitions.0 //@regions.0/@vertices.0/@outgoingTransitions.0 //@regions.0/@vertices.6/@outgoingTransitions.0"> | ||
8 | <outgoingTransitions target="//@regions.0/@vertices.2"/> | ||
9 | <outgoingTransitions target="//@regions.0/@vertices.6"/> | ||
10 | </vertices> | ||
11 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.1/@outgoingTransitions.0 //@regions.0/@vertices.4/@outgoingTransitions.0 //@regions.0/@vertices.4/@outgoingTransitions.1 //@regions.0/@vertices.7/@outgoingTransitions.0 //@regions.0/@vertices.7/@outgoingTransitions.1"> | ||
12 | <outgoingTransitions target="//@regions.0/@vertices.3"/> | ||
13 | <outgoingTransitions target="//@regions.0/@vertices.4"/> | ||
14 | <outgoingTransitions target="//@regions.0/@vertices.7"/> | ||
15 | </vertices> | ||
16 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.8/@outgoingTransitions.0 //@regions.0/@vertices.8/@outgoingTransitions.1 //@regions.0/@vertices.2/@outgoingTransitions.0 //@regions.0/@vertices.9/@outgoingTransitions.0 //@regions.0/@vertices.9/@outgoingTransitions.1"> | ||
17 | <outgoingTransitions target="//@regions.0/@vertices.8"/> | ||
18 | <outgoingTransitions target="//@regions.0/@vertices.5"/> | ||
19 | <outgoingTransitions target="//@regions.0/@vertices.9"/> | ||
20 | </vertices> | ||
21 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.2/@outgoingTransitions.1"> | ||
22 | <outgoingTransitions target="//@regions.0/@vertices.2"/> | ||
23 | <outgoingTransitions target="//@regions.0/@vertices.2"/> | ||
24 | </vertices> | ||
25 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.11/@outgoingTransitions.0 //@regions.0/@vertices.10/@outgoingTransitions.0 //@regions.0/@vertices.10/@outgoingTransitions.1 //@regions.0/@vertices.3/@outgoingTransitions.1 //@regions.0/@vertices.11/@outgoingTransitions.1"> | ||
26 | <outgoingTransitions target="//@regions.0/@vertices.12"/> | ||
27 | <outgoingTransitions target="//@regions.0/@vertices.11"/> | ||
28 | <outgoingTransitions target="//@regions.0/@vertices.10"/> | ||
29 | </vertices> | ||
30 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.1/@outgoingTransitions.1"> | ||
31 | <outgoingTransitions target="//@regions.0/@vertices.1"/> | ||
32 | <regions> | ||
33 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Entry"> | ||
34 | <outgoingTransitions target="//@regions.0/@vertices.6/@regions.0/@vertices.1"/> | ||
35 | </vertices> | ||
36 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.6/@regions.0/@vertices.0/@outgoingTransitions.0"> | ||
37 | <outgoingTransitions target="//@regions.0/@vertices.6/@regions.0/@vertices.3"/> | ||
38 | <outgoingTransitions target="//@regions.0/@vertices.6/@regions.0/@vertices.2"/> | ||
39 | </vertices> | ||
40 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.6/@regions.0/@vertices.10/@outgoingTransitions.0 //@regions.0/@vertices.6/@regions.0/@vertices.2/@outgoingTransitions.1 //@regions.0/@vertices.6/@regions.0/@vertices.1/@outgoingTransitions.1 //@regions.0/@vertices.6/@regions.0/@vertices.10/@outgoingTransitions.2 //@regions.0/@vertices.6/@regions.0/@vertices.9/@outgoingTransitions.0 //@regions.0/@vertices.6/@regions.0/@vertices.13/@outgoingTransitions.1"> | ||
41 | <outgoingTransitions target="//@regions.0/@vertices.6/@regions.0/@vertices.4"/> | ||
42 | <outgoingTransitions target="//@regions.0/@vertices.6/@regions.0/@vertices.2"/> | ||
43 | <outgoingTransitions target="//@regions.0/@vertices.6/@regions.0/@vertices.10"/> | ||
44 | </vertices> | ||
45 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.6/@regions.0/@vertices.1/@outgoingTransitions.0 //@regions.0/@vertices.6/@regions.0/@vertices.11/@outgoingTransitions.2 //@regions.0/@vertices.6/@regions.0/@vertices.11/@outgoingTransitions.0 //@regions.0/@vertices.6/@regions.0/@vertices.3/@outgoingTransitions.2 //@regions.0/@vertices.6/@regions.0/@vertices.12/@outgoingTransitions.0 //@regions.0/@vertices.6/@regions.0/@vertices.8/@outgoingTransitions.0"> | ||
46 | <outgoingTransitions target="//@regions.0/@vertices.6/@regions.0/@vertices.11"/> | ||
47 | <outgoingTransitions target="//@regions.0/@vertices.6/@regions.0/@vertices.5"/> | ||
48 | <outgoingTransitions target="//@regions.0/@vertices.6/@regions.0/@vertices.3"/> | ||
49 | </vertices> | ||
50 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.6/@regions.0/@vertices.2/@outgoingTransitions.0"> | ||
51 | <outgoingTransitions target="//@regions.0/@vertices.6/@regions.0/@vertices.12"/> | ||
52 | <outgoingTransitions target="//@regions.0/@vertices.6/@regions.0/@vertices.12"/> | ||
53 | </vertices> | ||
54 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.6/@regions.0/@vertices.3/@outgoingTransitions.1"> | ||
55 | <outgoingTransitions target="//@regions.0/@vertices.6/@regions.0/@vertices.13"/> | ||
56 | <outgoingTransitions target="//@regions.0/@vertices.6/@regions.0/@vertices.13"/> | ||
57 | </vertices> | ||
58 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.6/@regions.0/@vertices.11/@outgoingTransitions.1"/> | ||
59 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.6/@regions.0/@vertices.10/@outgoingTransitions.1"/> | ||
60 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.6/@regions.0/@vertices.12/@outgoingTransitions.1"> | ||
61 | <outgoingTransitions target="//@regions.0/@vertices.6/@regions.0/@vertices.3"/> | ||
62 | </vertices> | ||
63 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.6/@regions.0/@vertices.13/@outgoingTransitions.0"> | ||
64 | <outgoingTransitions target="//@regions.0/@vertices.6/@regions.0/@vertices.2"/> | ||
65 | </vertices> | ||
66 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.6/@regions.0/@vertices.2/@outgoingTransitions.2"> | ||
67 | <outgoingTransitions target="//@regions.0/@vertices.6/@regions.0/@vertices.2"/> | ||
68 | <outgoingTransitions target="//@regions.0/@vertices.6/@regions.0/@vertices.7"/> | ||
69 | <outgoingTransitions target="//@regions.0/@vertices.6/@regions.0/@vertices.2"/> | ||
70 | </vertices> | ||
71 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.6/@regions.0/@vertices.3/@outgoingTransitions.0"> | ||
72 | <outgoingTransitions target="//@regions.0/@vertices.6/@regions.0/@vertices.3"/> | ||
73 | <outgoingTransitions target="//@regions.0/@vertices.6/@regions.0/@vertices.6"/> | ||
74 | <outgoingTransitions target="//@regions.0/@vertices.6/@regions.0/@vertices.3"/> | ||
75 | </vertices> | ||
76 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.6/@regions.0/@vertices.4/@outgoingTransitions.0 //@regions.0/@vertices.6/@regions.0/@vertices.4/@outgoingTransitions.1"> | ||
77 | <outgoingTransitions target="//@regions.0/@vertices.6/@regions.0/@vertices.3"/> | ||
78 | <outgoingTransitions target="//@regions.0/@vertices.6/@regions.0/@vertices.8"/> | ||
79 | </vertices> | ||
80 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.6/@regions.0/@vertices.5/@outgoingTransitions.0 //@regions.0/@vertices.6/@regions.0/@vertices.5/@outgoingTransitions.1"> | ||
81 | <outgoingTransitions target="//@regions.0/@vertices.6/@regions.0/@vertices.9"/> | ||
82 | <outgoingTransitions target="//@regions.0/@vertices.6/@regions.0/@vertices.2"/> | ||
83 | </vertices> | ||
84 | </regions> | ||
85 | </vertices> | ||
86 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.2/@outgoingTransitions.2"> | ||
87 | <outgoingTransitions target="//@regions.0/@vertices.2"/> | ||
88 | <outgoingTransitions target="//@regions.0/@vertices.2"/> | ||
89 | </vertices> | ||
90 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.3/@outgoingTransitions.0"> | ||
91 | <outgoingTransitions target="//@regions.0/@vertices.3"/> | ||
92 | <outgoingTransitions target="//@regions.0/@vertices.3"/> | ||
93 | </vertices> | ||
94 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.3/@outgoingTransitions.2"> | ||
95 | <outgoingTransitions target="//@regions.0/@vertices.3"/> | ||
96 | <outgoingTransitions target="//@regions.0/@vertices.3"/> | ||
97 | </vertices> | ||
98 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.5/@outgoingTransitions.2"> | ||
99 | <outgoingTransitions target="//@regions.0/@vertices.5"/> | ||
100 | <outgoingTransitions target="//@regions.0/@vertices.5"/> | ||
101 | </vertices> | ||
102 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.5/@outgoingTransitions.1"> | ||
103 | <outgoingTransitions target="//@regions.0/@vertices.5"/> | ||
104 | <outgoingTransitions target="//@regions.0/@vertices.5"/> | ||
105 | </vertices> | ||
106 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.5/@outgoingTransitions.0"> | ||
107 | <outgoingTransitions target="//@regions.0/@vertices.1"/> | ||
108 | <regions> | ||
109 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Entry"> | ||
110 | <outgoingTransitions target="//@regions.0/@vertices.12/@regions.0/@vertices.1"/> | ||
111 | </vertices> | ||
112 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.12/@regions.0/@vertices.0/@outgoingTransitions.0"> | ||
113 | <outgoingTransitions target="//@regions.0/@vertices.12/@regions.0/@vertices.2"/> | ||
114 | <outgoingTransitions target="//@regions.0/@vertices.12/@regions.0/@vertices.3"/> | ||
115 | </vertices> | ||
116 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.12/@regions.0/@vertices.1/@outgoingTransitions.0 //@regions.0/@vertices.12/@regions.0/@vertices.3/@outgoingTransitions.0"> | ||
117 | <outgoingTransitions target="//@regions.0/@vertices.12/@regions.0/@vertices.3"/> | ||
118 | </vertices> | ||
119 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.12/@regions.0/@vertices.1/@outgoingTransitions.1 //@regions.0/@vertices.12/@regions.0/@vertices.2/@outgoingTransitions.0"> | ||
120 | <outgoingTransitions target="//@regions.0/@vertices.12/@regions.0/@vertices.2"/> | ||
121 | </vertices> | ||
122 | </regions> | ||
123 | </vertices> | ||
124 | </regions> | ||
125 | </hu.bme.mit.inf.yakindumm:Statechart> | ||
diff --git a/Metrics/Metrics-Calculation/SocialNetwork_plugin/data/Yakindumm/out_d_rep.csv b/Metrics/Metrics-Calculation/SocialNetwork_plugin/data/Yakindumm/out_d_rep.csv new file mode 100644 index 00000000..17965018 --- /dev/null +++ b/Metrics/Metrics-Calculation/SocialNetwork_plugin/data/Yakindumm/out_d_rep.csv | |||
@@ -0,0 +1,9 @@ | |||
1 | Meta Mode,yakindumm | ||
2 | Number of Edge types,6 | ||
3 | Number Of Nodes,88 | ||
4 | OutDegreeValue,1,2,3,4,5,6,8,10,11,13 | ||
5 | OutDegreeCount,6,57,12,3,1,2,2,3,1,1 | ||
6 | NAValue,1,2,3,4,5,6 | ||
7 | NACount,1,3,6,56,20,2 | ||
8 | MPCValue,0.00000,0.15918,0.18333,0.38400,0.76800,0.80000,0.88889,0.90000,0.90888,0.91349,0.91429,0.93061,0.93223,0.93728,1.00000 | ||
9 | MPCCount,1,1,1,1,1,5,2,56,1,2,3,10,1,1,2 | ||
diff --git a/Metrics/Metrics-Calculation/SocialNetwork_plugin/data/Yakindumm/out_d_rep/R_2015225.xmi b/Metrics/Metrics-Calculation/SocialNetwork_plugin/data/Yakindumm/out_d_rep/R_2015225.xmi new file mode 100644 index 00000000..21fee5a9 --- /dev/null +++ b/Metrics/Metrics-Calculation/SocialNetwork_plugin/data/Yakindumm/out_d_rep/R_2015225.xmi | |||
@@ -0,0 +1,145 @@ | |||
1 | <?xml version="1.0" encoding="ASCII"?> | ||
2 | <hu.bme.mit.inf.yakindumm:Statechart xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:hu.bme.mit.inf.yakindumm="hu.bme.mit.inf.yakindumm"> | ||
3 | <regions> | ||
4 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Entry"> | ||
5 | <outgoingTransitions target="//@regions.0/@vertices.1"/> | ||
6 | </vertices> | ||
7 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.0/@outgoingTransitions.0 //@regions.0/@vertices.2/@regions.0/@vertices.3/@outgoingTransitions.2 //@regions.0/@vertices.2/@outgoingTransitions.0 //@regions.0/@vertices.3/@outgoingTransitions.0"> | ||
8 | <outgoingTransitions target="//@regions.0/@vertices.2"/> | ||
9 | <outgoingTransitions target="//@regions.0/@vertices.3"/> | ||
10 | </vertices> | ||
11 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.1/@outgoingTransitions.0"> | ||
12 | <outgoingTransitions target="//@regions.0/@vertices.1"/> | ||
13 | <regions> | ||
14 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.2/@regions.0/@vertices.4/@outgoingTransitions.0 //@regions.0/@vertices.2/@regions.0/@vertices.0/@outgoingTransitions.0 //@regions.0/@vertices.2/@regions.0/@vertices.0/@outgoingTransitions.2"> | ||
15 | <outgoingTransitions target="//@regions.0/@vertices.2/@regions.0/@vertices.0"/> | ||
16 | <outgoingTransitions target="//@regions.0/@vertices.2/@regions.0/@vertices.1"/> | ||
17 | <outgoingTransitions target="//@regions.0/@vertices.2/@regions.0/@vertices.0"/> | ||
18 | </vertices> | ||
19 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.2/@regions.0/@vertices.10/@outgoingTransitions.0 //@regions.0/@vertices.2/@regions.0/@vertices.9/@outgoingTransitions.1 //@regions.0/@vertices.2/@regions.0/@vertices.0/@outgoingTransitions.1 //@regions.0/@vertices.2/@regions.0/@vertices.10/@outgoingTransitions.1 //@regions.0/@vertices.2/@regions.0/@vertices.9/@outgoingTransitions.0"> | ||
20 | <outgoingTransitions target="//@regions.0/@vertices.2/@regions.0/@vertices.9"/> | ||
21 | <outgoingTransitions target="//@regions.0/@vertices.2/@regions.0/@vertices.2"/> | ||
22 | <outgoingTransitions target="//@regions.0/@vertices.2/@regions.0/@vertices.10"/> | ||
23 | </vertices> | ||
24 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.2/@regions.0/@vertices.1/@outgoingTransitions.1 //@regions.0/@vertices.2/@regions.0/@vertices.7/@outgoingTransitions.0 //@regions.0/@vertices.2/@regions.0/@vertices.7/@outgoingTransitions.1 //@regions.0/@vertices.2/@regions.0/@vertices.8/@outgoingTransitions.0 //@regions.0/@vertices.2/@regions.0/@vertices.8/@outgoingTransitions.1"> | ||
25 | <outgoingTransitions target="//@regions.0/@vertices.2/@regions.0/@vertices.8"/> | ||
26 | <outgoingTransitions target="//@regions.0/@vertices.2/@regions.0/@vertices.3"/> | ||
27 | <outgoingTransitions target="//@regions.0/@vertices.2/@regions.0/@vertices.7"/> | ||
28 | </vertices> | ||
29 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.2/@regions.0/@vertices.6/@outgoingTransitions.0 //@regions.0/@vertices.2/@regions.0/@vertices.5/@outgoingTransitions.0 //@regions.0/@vertices.2/@regions.0/@vertices.6/@outgoingTransitions.1 //@regions.0/@vertices.2/@regions.0/@vertices.2/@outgoingTransitions.1 //@regions.0/@vertices.2/@regions.0/@vertices.5/@outgoingTransitions.1"> | ||
30 | <outgoingTransitions target="//@regions.0/@vertices.2/@regions.0/@vertices.6"/> | ||
31 | <outgoingTransitions target="//@regions.0/@vertices.2/@regions.0/@vertices.5"/> | ||
32 | <outgoingTransitions target="//@regions.0/@vertices.1"/> | ||
33 | </vertices> | ||
34 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Entry"> | ||
35 | <outgoingTransitions target="//@regions.0/@vertices.2/@regions.0/@vertices.0"/> | ||
36 | </vertices> | ||
37 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.2/@regions.0/@vertices.3/@outgoingTransitions.1"> | ||
38 | <outgoingTransitions target="//@regions.0/@vertices.2/@regions.0/@vertices.3"/> | ||
39 | <outgoingTransitions target="//@regions.0/@vertices.2/@regions.0/@vertices.3"/> | ||
40 | </vertices> | ||
41 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.2/@regions.0/@vertices.3/@outgoingTransitions.0"> | ||
42 | <outgoingTransitions target="//@regions.0/@vertices.2/@regions.0/@vertices.3"/> | ||
43 | <outgoingTransitions target="//@regions.0/@vertices.2/@regions.0/@vertices.3"/> | ||
44 | </vertices> | ||
45 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.2/@regions.0/@vertices.2/@outgoingTransitions.2"> | ||
46 | <outgoingTransitions target="//@regions.0/@vertices.2/@regions.0/@vertices.2"/> | ||
47 | <outgoingTransitions target="//@regions.0/@vertices.2/@regions.0/@vertices.2"/> | ||
48 | </vertices> | ||
49 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.2/@regions.0/@vertices.2/@outgoingTransitions.0"> | ||
50 | <outgoingTransitions target="//@regions.0/@vertices.2/@regions.0/@vertices.2"/> | ||
51 | <outgoingTransitions target="//@regions.0/@vertices.2/@regions.0/@vertices.2"/> | ||
52 | </vertices> | ||
53 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.2/@regions.0/@vertices.1/@outgoingTransitions.0"> | ||
54 | <outgoingTransitions target="//@regions.0/@vertices.2/@regions.0/@vertices.1"/> | ||
55 | <outgoingTransitions target="//@regions.0/@vertices.2/@regions.0/@vertices.1"/> | ||
56 | </vertices> | ||
57 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.2/@regions.0/@vertices.1/@outgoingTransitions.2"> | ||
58 | <outgoingTransitions target="//@regions.0/@vertices.2/@regions.0/@vertices.1"/> | ||
59 | <outgoingTransitions target="//@regions.0/@vertices.2/@regions.0/@vertices.1"/> | ||
60 | </vertices> | ||
61 | </regions> | ||
62 | </vertices> | ||
63 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.1/@outgoingTransitions.1 //@regions.0/@vertices.6/@outgoingTransitions.0"> | ||
64 | <outgoingTransitions target="//@regions.0/@vertices.1"/> | ||
65 | <outgoingTransitions target="//@regions.0/@vertices.5"/> | ||
66 | <regions> | ||
67 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Entry"> | ||
68 | <outgoingTransitions target="//@regions.0/@vertices.3/@regions.0/@vertices.1"/> | ||
69 | </vertices> | ||
70 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.3/@regions.0/@vertices.0/@outgoingTransitions.0"> | ||
71 | <outgoingTransitions target="//@regions.0/@vertices.3/@regions.0/@vertices.2"/> | ||
72 | <outgoingTransitions target="//@regions.0/@vertices.3/@regions.0/@vertices.3"/> | ||
73 | </vertices> | ||
74 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.3/@regions.0/@vertices.6/@outgoingTransitions.0 //@regions.0/@vertices.3/@regions.0/@vertices.1/@outgoingTransitions.0 //@regions.0/@vertices.3/@regions.0/@vertices.5/@outgoingTransitions.0 //@regions.0/@vertices.3/@regions.0/@vertices.5/@outgoingTransitions.1"> | ||
75 | <outgoingTransitions target="//@regions.0/@vertices.3/@regions.0/@vertices.4"/> | ||
76 | <outgoingTransitions target="//@regions.0/@vertices.3/@regions.0/@vertices.6"/> | ||
77 | </vertices> | ||
78 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.3/@regions.0/@vertices.4/@outgoingTransitions.0 //@regions.0/@vertices.3/@regions.0/@vertices.8/@outgoingTransitions.0 //@regions.0/@vertices.3/@regions.0/@vertices.1/@outgoingTransitions.1 //@regions.0/@vertices.3/@regions.0/@vertices.4/@outgoingTransitions.1"> | ||
79 | <outgoingTransitions target="//@regions.0/@vertices.3/@regions.0/@vertices.8"/> | ||
80 | <outgoingTransitions target="//@regions.0/@vertices.3/@regions.0/@vertices.5"/> | ||
81 | </vertices> | ||
82 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.3/@regions.0/@vertices.2/@outgoingTransitions.0"> | ||
83 | <outgoingTransitions target="//@regions.0/@vertices.3/@regions.0/@vertices.3"/> | ||
84 | <outgoingTransitions target="//@regions.0/@vertices.3/@regions.0/@vertices.3"/> | ||
85 | </vertices> | ||
86 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.3/@regions.0/@vertices.3/@outgoingTransitions.1"> | ||
87 | <outgoingTransitions target="//@regions.0/@vertices.3/@regions.0/@vertices.2"/> | ||
88 | <outgoingTransitions target="//@regions.0/@vertices.3/@regions.0/@vertices.2"/> | ||
89 | </vertices> | ||
90 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.3/@regions.0/@vertices.2/@outgoingTransitions.1"> | ||
91 | <outgoingTransitions target="//@regions.0/@vertices.3/@regions.0/@vertices.2"/> | ||
92 | <outgoingTransitions target="//@regions.0/@vertices.3/@regions.0/@vertices.7"/> | ||
93 | </vertices> | ||
94 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.5/@outgoingTransitions.1 //@regions.0/@vertices.3/@regions.0/@vertices.6/@outgoingTransitions.1"/> | ||
95 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.3/@regions.0/@vertices.3/@outgoingTransitions.0"> | ||
96 | <outgoingTransitions target="//@regions.0/@vertices.3/@regions.0/@vertices.3"/> | ||
97 | <outgoingTransitions target="//@regions.0/@vertices.3/@regions.0/@vertices.9"/> | ||
98 | </vertices> | ||
99 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.3/@regions.0/@vertices.8/@outgoingTransitions.1 //@regions.0/@vertices.5/@outgoingTransitions.2"/> | ||
100 | </regions> | ||
101 | </vertices> | ||
102 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.5/@outgoingTransitions.0"> | ||
103 | <outgoingTransitions target="//@regions.0/@vertices.6"/> | ||
104 | <regions> | ||
105 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Entry"> | ||
106 | <outgoingTransitions target="//@regions.0/@vertices.4/@regions.0/@vertices.1"/> | ||
107 | </vertices> | ||
108 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.4/@regions.0/@vertices.0/@outgoingTransitions.0"> | ||
109 | <outgoingTransitions target="//@regions.0/@vertices.4/@regions.0/@vertices.3"/> | ||
110 | <outgoingTransitions target="//@regions.0/@vertices.4/@regions.0/@vertices.2"/> | ||
111 | </vertices> | ||
112 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.4/@regions.0/@vertices.4/@outgoingTransitions.0 //@regions.0/@vertices.4/@regions.0/@vertices.1/@outgoingTransitions.1"> | ||
113 | <outgoingTransitions target="//@regions.0/@vertices.4/@regions.0/@vertices.4"/> | ||
114 | <outgoingTransitions target="//@regions.0/@vertices.4/@regions.0/@vertices.8"/> | ||
115 | </vertices> | ||
116 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.4/@regions.0/@vertices.1/@outgoingTransitions.0 //@regions.0/@vertices.4/@regions.0/@vertices.6/@outgoingTransitions.0"> | ||
117 | <outgoingTransitions target="//@regions.0/@vertices.4/@regions.0/@vertices.9"/> | ||
118 | <outgoingTransitions target="//@regions.0/@vertices.4/@regions.0/@vertices.6"/> | ||
119 | </vertices> | ||
120 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.4/@regions.0/@vertices.2/@outgoingTransitions.0"> | ||
121 | <outgoingTransitions target="//@regions.0/@vertices.4/@regions.0/@vertices.2"/> | ||
122 | <outgoingTransitions target="//@regions.0/@vertices.4/@regions.0/@vertices.5"/> | ||
123 | </vertices> | ||
124 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.4/@regions.0/@vertices.4/@outgoingTransitions.1 //@regions.0/@vertices.6/@outgoingTransitions.2"/> | ||
125 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.4/@regions.0/@vertices.3/@outgoingTransitions.1"> | ||
126 | <outgoingTransitions target="//@regions.0/@vertices.4/@regions.0/@vertices.3"/> | ||
127 | <outgoingTransitions target="//@regions.0/@vertices.4/@regions.0/@vertices.7"/> | ||
128 | </vertices> | ||
129 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.4/@regions.0/@vertices.6/@outgoingTransitions.1 //@regions.0/@vertices.6/@outgoingTransitions.1"/> | ||
130 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.4/@regions.0/@vertices.2/@outgoingTransitions.1"/> | ||
131 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.4/@regions.0/@vertices.3/@outgoingTransitions.0"/> | ||
132 | </regions> | ||
133 | </vertices> | ||
134 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.3/@outgoingTransitions.1"> | ||
135 | <outgoingTransitions target="//@regions.0/@vertices.4"/> | ||
136 | <outgoingTransitions target="//@regions.0/@vertices.3/@regions.0/@vertices.7"/> | ||
137 | <outgoingTransitions target="//@regions.0/@vertices.3/@regions.0/@vertices.9"/> | ||
138 | </vertices> | ||
139 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.4/@outgoingTransitions.0"> | ||
140 | <outgoingTransitions target="//@regions.0/@vertices.3"/> | ||
141 | <outgoingTransitions target="//@regions.0/@vertices.4/@regions.0/@vertices.7"/> | ||
142 | <outgoingTransitions target="//@regions.0/@vertices.4/@regions.0/@vertices.5"/> | ||
143 | </vertices> | ||
144 | </regions> | ||
145 | </hu.bme.mit.inf.yakindumm:Statechart> | ||
diff --git a/Metrics/Metrics-Calculation/SocialNetwork_plugin/debug/errors.txt b/Metrics/Metrics-Calculation/SocialNetwork_plugin/debug/errors.txt new file mode 100644 index 00000000..cbbf6c0f --- /dev/null +++ b/Metrics/Metrics-Calculation/SocialNetwork_plugin/debug/errors.txt | |||
@@ -0,0 +1,14 @@ | |||
1 | Error occured (NullPointerException): | ||
2 | hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner.ViatraReasoner.lambda$23(ViatraReasoner.java:447) | ||
3 | org.eclipse.xtext.xbase.lib.ObjectExtensions.operator_doubleArrow(ObjectExtensions.java:140) | ||
4 | hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner.ViatraReasoner.lambda$1(ViatraReasoner.java:451) | ||
5 | org.eclipse.xtext.xbase.lib.ObjectExtensions.operator_doubleArrow(ObjectExtensions.java:140) | ||
6 | hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner.ViatraReasoner.solve(ViatraReasoner.java:531) | ||
7 | hu.bme.mit.inf.dslreasoner.application.execution.GenerationTaskExecutor.executeGenerationTask(GenerationTaskExecutor.java:329) | ||
8 | hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor._execute(ScriptExecutor.java:141) | ||
9 | hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor.execute(ScriptExecutor.java:382) | ||
10 | hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor.executeScript(ScriptExecutor.java:122) | ||
11 | hu.bme.mit.inf.dslreasoner.application.execution.StandaloneScriptExecutor.executeScript(StandaloneScriptExecutor.java:155) | ||
12 | hu.bme.mit.inf.dslreasoner.application.execution.StandaloneScriptExecutor.executeScript(StandaloneScriptExecutor.java:147) | ||
13 | ca.mcgill.ecse.socialnetwork.runner.Main.runWithPath(Main.java:24) | ||
14 | ca.mcgill.ecse.socialnetwork.runner.Main.main(Main.java:40) | ||
diff --git a/Metrics/Metrics-Calculation/SocialNetwork_plugin/ecore.vsconfig b/Metrics/Metrics-Calculation/SocialNetwork_plugin/ecore.vsconfig new file mode 100644 index 00000000..9d3dd0e9 --- /dev/null +++ b/Metrics/Metrics-Calculation/SocialNetwork_plugin/ecore.vsconfig | |||
@@ -0,0 +1,51 @@ | |||
1 | import viatra "./queries/queries/Ecore.vql" | ||
2 | import epackage "http://www.eclipse.org/emf/2002/Ecore" | ||
3 | |||
4 | // Copy this for different model sizes | ||
5 | generate { | ||
6 | metamodel = {package ecore excluding{EClassifier.instanceClass, EClassifier.defaultValue, | ||
7 | EEnumLiteral.instance, EStructuralFeature.defaultValue, EStructuralFeature.changeable, | ||
8 | EStructuralFeature.derived, ENamedElement.name, EClass.interface, EClass.abstract, EClassifier.instanceTypeName, | ||
9 | EClassifier.instanceClassName, EPackage.nsPrefix, EPackage.nsURI, EAnnotation.source, | ||
10 | EAttribute.iD, EDataType.serializable, EEnumLiteral.literal, EEnumLiteral.value, | ||
11 | EReference.resolveProxies, EReference.container, EReference.containment, EStringToStringMapEntry.key, | ||
12 | EStringToStringMapEntry.value, EStructuralFeature.defaultValueLiteral, EStructuralFeature.transient, | ||
13 | EStructuralFeature.unsettable, EStructuralFeature.volatile, ETypedElement.lowerBound, | ||
14 | ETypedElement.many, ETypedElement.ordered, ETypedElement.required, ETypedElement.unique,ETypedElement.upperBound, | ||
15 | // cannot generate eFactoryInstance | ||
16 | EPackage.eFactoryInstance, | ||
17 | //Derived edges | ||
18 | EClass.eAllSuperTypes, EClass.eAllAttributes, EClass.eAllReferences, EClass.eAllContainments, EClass.eAllGenericSuperTypes, | ||
19 | EClass. eAllOperations, EClass.eAllStructuralFeatures, EClass.eAttributes, EClass.eIDAttribute, EClass.eReferences, | ||
20 | EAttribute.eAttributeType, EGenericType.eRawType, EReference.eReferenceType, | ||
21 | //Generic Types | ||
22 | EClass.eGenericSuperTypes, ETypedElement.eGenericType, EOperation.eGenericExceptions, EObject, EAnnotation.references, EAnnotation.contents | ||
23 | |||
24 | }} | ||
25 | partial-model = { "inputs/ecore.xmi"} | ||
26 | constraints = { package queries } | ||
27 | |||
28 | |||
29 | solver = ViatraSolver | ||
30 | |||
31 | //median run time | ||
32 | scope = { | ||
33 | #node = 30 // (warm-up: 10) 30, 50, 80, 100, 120 .... | ||
34 | } | ||
35 | |||
36 | number = 1 | ||
37 | runs = 1 | ||
38 | config = { | ||
39 | log-level = none, | ||
40 | runtime = 300, // the runtime is in seconds, want to set is to 5 mins | ||
41 | "optional-wf" = "false", | ||
42 | "realistic-guidance" = "Composite", | ||
43 | "allow-must-violations" = "false", | ||
44 | "domain" = "Ecore", | ||
45 | "scopePropagator" = "typeHierarchy" | ||
46 | } | ||
47 | |||
48 | debug = "debug" | ||
49 | statistics = "statistics/Ecore/warmup.csv" //give different set up different filenames | ||
50 | output = "output/Ecore/run_time/" | ||
51 | } | ||
diff --git a/Metrics/Metrics-Calculation/SocialNetwork_plugin/encore_gen/socialnetwork/Person.java b/Metrics/Metrics-Calculation/SocialNetwork_plugin/encore_gen/socialnetwork/Person.java new file mode 100644 index 00000000..b1e0a041 --- /dev/null +++ b/Metrics/Metrics-Calculation/SocialNetwork_plugin/encore_gen/socialnetwork/Person.java | |||
@@ -0,0 +1,62 @@ | |||
1 | /** | ||
2 | */ | ||
3 | package socialnetwork; | ||
4 | |||
5 | import org.eclipse.emf.common.util.EList; | ||
6 | |||
7 | import org.eclipse.emf.ecore.EObject; | ||
8 | |||
9 | /** | ||
10 | * <!-- begin-user-doc --> | ||
11 | * A representation of the model object '<em><b>Person</b></em>'. | ||
12 | * <!-- end-user-doc --> | ||
13 | * | ||
14 | * <p> | ||
15 | * The following features are supported: | ||
16 | * </p> | ||
17 | * <ul> | ||
18 | * <li>{@link socialnetwork.Person#getFriends <em>Friends</em>}</li> | ||
19 | * <li>{@link socialnetwork.Person#getName <em>Name</em>}</li> | ||
20 | * </ul> | ||
21 | * | ||
22 | * @see socialnetwork.SocialnetworkPackage#getPerson() | ||
23 | * @model | ||
24 | * @generated | ||
25 | */ | ||
26 | public interface Person extends EObject { | ||
27 | /** | ||
28 | * Returns the value of the '<em><b>Friends</b></em>' reference list. | ||
29 | * The list contents are of type {@link socialnetwork.Person}. | ||
30 | * <!-- begin-user-doc --> | ||
31 | * <!-- end-user-doc --> | ||
32 | * @return the value of the '<em>Friends</em>' reference list. | ||
33 | * @see socialnetwork.SocialnetworkPackage#getPerson_Friends() | ||
34 | * @model | ||
35 | * @generated | ||
36 | */ | ||
37 | EList<Person> getFriends(); | ||
38 | |||
39 | /** | ||
40 | * Returns the value of the '<em><b>Name</b></em>' attribute. | ||
41 | * The default value is <code>"Name"</code>. | ||
42 | * <!-- begin-user-doc --> | ||
43 | * <!-- end-user-doc --> | ||
44 | * @return the value of the '<em>Name</em>' attribute. | ||
45 | * @see #setName(String) | ||
46 | * @see socialnetwork.SocialnetworkPackage#getPerson_Name() | ||
47 | * @model default="Name" | ||
48 | * @generated | ||
49 | */ | ||
50 | String getName(); | ||
51 | |||
52 | /** | ||
53 | * Sets the value of the '{@link socialnetwork.Person#getName <em>Name</em>}' attribute. | ||
54 | * <!-- begin-user-doc --> | ||
55 | * <!-- end-user-doc --> | ||
56 | * @param value the new value of the '<em>Name</em>' attribute. | ||
57 | * @see #getName() | ||
58 | * @generated | ||
59 | */ | ||
60 | void setName(String value); | ||
61 | |||
62 | } // Person | ||
diff --git a/Metrics/Metrics-Calculation/SocialNetwork_plugin/encore_gen/socialnetwork/SocialNetwork.java b/Metrics/Metrics-Calculation/SocialNetwork_plugin/encore_gen/socialnetwork/SocialNetwork.java new file mode 100644 index 00000000..4653f6dd --- /dev/null +++ b/Metrics/Metrics-Calculation/SocialNetwork_plugin/encore_gen/socialnetwork/SocialNetwork.java | |||
@@ -0,0 +1,62 @@ | |||
1 | /** | ||
2 | */ | ||
3 | package socialnetwork; | ||
4 | |||
5 | import org.eclipse.emf.common.util.EList; | ||
6 | |||
7 | import org.eclipse.emf.ecore.EObject; | ||
8 | |||
9 | /** | ||
10 | * <!-- begin-user-doc --> | ||
11 | * A representation of the model object '<em><b>Social Network</b></em>'. | ||
12 | * <!-- end-user-doc --> | ||
13 | * | ||
14 | * <p> | ||
15 | * The following features are supported: | ||
16 | * </p> | ||
17 | * <ul> | ||
18 | * <li>{@link socialnetwork.SocialNetwork#getName <em>Name</em>}</li> | ||
19 | * <li>{@link socialnetwork.SocialNetwork#getPersons <em>Persons</em>}</li> | ||
20 | * </ul> | ||
21 | * | ||
22 | * @see socialnetwork.SocialnetworkPackage#getSocialNetwork() | ||
23 | * @model | ||
24 | * @generated | ||
25 | */ | ||
26 | public interface SocialNetwork extends EObject { | ||
27 | /** | ||
28 | * Returns the value of the '<em><b>Name</b></em>' attribute. | ||
29 | * The default value is <code>"SocialNetwork"</code>. | ||
30 | * <!-- begin-user-doc --> | ||
31 | * <!-- end-user-doc --> | ||
32 | * @return the value of the '<em>Name</em>' attribute. | ||
33 | * @see #setName(String) | ||
34 | * @see socialnetwork.SocialnetworkPackage#getSocialNetwork_Name() | ||
35 | * @model default="SocialNetwork" | ||
36 | * @generated | ||
37 | */ | ||
38 | String getName(); | ||
39 | |||
40 | /** | ||
41 | * Sets the value of the '{@link socialnetwork.SocialNetwork#getName <em>Name</em>}' attribute. | ||
42 | * <!-- begin-user-doc --> | ||
43 | * <!-- end-user-doc --> | ||
44 | * @param value the new value of the '<em>Name</em>' attribute. | ||
45 | * @see #getName() | ||
46 | * @generated | ||
47 | */ | ||
48 | void setName(String value); | ||
49 | |||
50 | /** | ||
51 | * Returns the value of the '<em><b>Persons</b></em>' containment reference list. | ||
52 | * The list contents are of type {@link socialnetwork.Person}. | ||
53 | * <!-- begin-user-doc --> | ||
54 | * <!-- end-user-doc --> | ||
55 | * @return the value of the '<em>Persons</em>' containment reference list. | ||
56 | * @see socialnetwork.SocialnetworkPackage#getSocialNetwork_Persons() | ||
57 | * @model containment="true" | ||
58 | * @generated | ||
59 | */ | ||
60 | EList<Person> getPersons(); | ||
61 | |||
62 | } // SocialNetwork | ||
diff --git a/Metrics/Metrics-Calculation/SocialNetwork_plugin/encore_gen/socialnetwork/SocialnetworkFactory.java b/Metrics/Metrics-Calculation/SocialNetwork_plugin/encore_gen/socialnetwork/SocialnetworkFactory.java new file mode 100644 index 00000000..cf7a4250 --- /dev/null +++ b/Metrics/Metrics-Calculation/SocialNetwork_plugin/encore_gen/socialnetwork/SocialnetworkFactory.java | |||
@@ -0,0 +1,51 @@ | |||
1 | /** | ||
2 | */ | ||
3 | package socialnetwork; | ||
4 | |||
5 | import org.eclipse.emf.ecore.EFactory; | ||
6 | |||
7 | /** | ||
8 | * <!-- begin-user-doc --> | ||
9 | * The <b>Factory</b> for the model. | ||
10 | * It provides a create method for each non-abstract class of the model. | ||
11 | * <!-- end-user-doc --> | ||
12 | * @see socialnetwork.SocialnetworkPackage | ||
13 | * @generated | ||
14 | */ | ||
15 | public interface SocialnetworkFactory extends EFactory { | ||
16 | /** | ||
17 | * The singleton instance of the factory. | ||
18 | * <!-- begin-user-doc --> | ||
19 | * <!-- end-user-doc --> | ||
20 | * @generated | ||
21 | */ | ||
22 | SocialnetworkFactory eINSTANCE = socialnetwork.impl.SocialnetworkFactoryImpl.init(); | ||
23 | |||
24 | /** | ||
25 | * Returns a new object of class '<em>Social Network</em>'. | ||
26 | * <!-- begin-user-doc --> | ||
27 | * <!-- end-user-doc --> | ||
28 | * @return a new object of class '<em>Social Network</em>'. | ||
29 | * @generated | ||
30 | */ | ||
31 | SocialNetwork createSocialNetwork(); | ||
32 | |||
33 | /** | ||
34 | * Returns a new object of class '<em>Person</em>'. | ||
35 | * <!-- begin-user-doc --> | ||
36 | * <!-- end-user-doc --> | ||
37 | * @return a new object of class '<em>Person</em>'. | ||
38 | * @generated | ||
39 | */ | ||
40 | Person createPerson(); | ||
41 | |||
42 | /** | ||
43 | * Returns the package supported by this factory. | ||
44 | * <!-- begin-user-doc --> | ||
45 | * <!-- end-user-doc --> | ||
46 | * @return the package supported by this factory. | ||
47 | * @generated | ||
48 | */ | ||
49 | SocialnetworkPackage getSocialnetworkPackage(); | ||
50 | |||
51 | } //SocialnetworkFactory | ||
diff --git a/Metrics/Metrics-Calculation/SocialNetwork_plugin/encore_gen/socialnetwork/SocialnetworkPackage.java b/Metrics/Metrics-Calculation/SocialNetwork_plugin/encore_gen/socialnetwork/SocialnetworkPackage.java new file mode 100644 index 00000000..f215f469 --- /dev/null +++ b/Metrics/Metrics-Calculation/SocialNetwork_plugin/encore_gen/socialnetwork/SocialnetworkPackage.java | |||
@@ -0,0 +1,293 @@ | |||
1 | /** | ||
2 | */ | ||
3 | package socialnetwork; | ||
4 | |||
5 | import org.eclipse.emf.ecore.EAttribute; | ||
6 | import org.eclipse.emf.ecore.EClass; | ||
7 | import org.eclipse.emf.ecore.EPackage; | ||
8 | import org.eclipse.emf.ecore.EReference; | ||
9 | |||
10 | /** | ||
11 | * <!-- begin-user-doc --> | ||
12 | * The <b>Package</b> for the model. | ||
13 | * It contains accessors for the meta objects to represent | ||
14 | * <ul> | ||
15 | * <li>each class,</li> | ||
16 | * <li>each feature of each class,</li> | ||
17 | * <li>each operation of each class,</li> | ||
18 | * <li>each enum,</li> | ||
19 | * <li>and each data type</li> | ||
20 | * </ul> | ||
21 | * <!-- end-user-doc --> | ||
22 | * @see socialnetwork.SocialnetworkFactory | ||
23 | * @model kind="package" | ||
24 | * annotation="http://www.eclipse.org/emf/2002/Ecore" | ||
25 | * @generated | ||
26 | */ | ||
27 | public interface SocialnetworkPackage extends EPackage { | ||
28 | /** | ||
29 | * The package name. | ||
30 | * <!-- begin-user-doc --> | ||
31 | * <!-- end-user-doc --> | ||
32 | * @generated | ||
33 | */ | ||
34 | String eNAME = "socialnetwork"; | ||
35 | |||
36 | /** | ||
37 | * The package namespace URI. | ||
38 | * <!-- begin-user-doc --> | ||
39 | * <!-- end-user-doc --> | ||
40 | * @generated | ||
41 | */ | ||
42 | String eNS_URI = "http://ecse.mcgill.ca/socialnetwork"; | ||
43 | |||
44 | /** | ||
45 | * The package namespace name. | ||
46 | * <!-- begin-user-doc --> | ||
47 | * <!-- end-user-doc --> | ||
48 | * @generated | ||
49 | */ | ||
50 | String eNS_PREFIX = "socialnetwork"; | ||
51 | |||
52 | /** | ||
53 | * The singleton instance of the package. | ||
54 | * <!-- begin-user-doc --> | ||
55 | * <!-- end-user-doc --> | ||
56 | * @generated | ||
57 | */ | ||
58 | SocialnetworkPackage eINSTANCE = socialnetwork.impl.SocialnetworkPackageImpl.init(); | ||
59 | |||
60 | /** | ||
61 | * The meta object id for the '{@link socialnetwork.impl.SocialNetworkImpl <em>Social Network</em>}' class. | ||
62 | * <!-- begin-user-doc --> | ||
63 | * <!-- end-user-doc --> | ||
64 | * @see socialnetwork.impl.SocialNetworkImpl | ||
65 | * @see socialnetwork.impl.SocialnetworkPackageImpl#getSocialNetwork() | ||
66 | * @generated | ||
67 | */ | ||
68 | int SOCIAL_NETWORK = 0; | ||
69 | |||
70 | /** | ||
71 | * The feature id for the '<em><b>Name</b></em>' attribute. | ||
72 | * <!-- begin-user-doc --> | ||
73 | * <!-- end-user-doc --> | ||
74 | * @generated | ||
75 | * @ordered | ||
76 | */ | ||
77 | int SOCIAL_NETWORK__NAME = 0; | ||
78 | |||
79 | /** | ||
80 | * The feature id for the '<em><b>Persons</b></em>' containment reference list. | ||
81 | * <!-- begin-user-doc --> | ||
82 | * <!-- end-user-doc --> | ||
83 | * @generated | ||
84 | * @ordered | ||
85 | */ | ||
86 | int SOCIAL_NETWORK__PERSONS = 1; | ||
87 | |||
88 | /** | ||
89 | * The number of structural features of the '<em>Social Network</em>' class. | ||
90 | * <!-- begin-user-doc --> | ||
91 | * <!-- end-user-doc --> | ||
92 | * @generated | ||
93 | * @ordered | ||
94 | */ | ||
95 | int SOCIAL_NETWORK_FEATURE_COUNT = 2; | ||
96 | |||
97 | /** | ||
98 | * The number of operations of the '<em>Social Network</em>' class. | ||
99 | * <!-- begin-user-doc --> | ||
100 | * <!-- end-user-doc --> | ||
101 | * @generated | ||
102 | * @ordered | ||
103 | */ | ||
104 | int SOCIAL_NETWORK_OPERATION_COUNT = 0; | ||
105 | |||
106 | /** | ||
107 | * The meta object id for the '{@link socialnetwork.impl.PersonImpl <em>Person</em>}' class. | ||
108 | * <!-- begin-user-doc --> | ||
109 | * <!-- end-user-doc --> | ||
110 | * @see socialnetwork.impl.PersonImpl | ||
111 | * @see socialnetwork.impl.SocialnetworkPackageImpl#getPerson() | ||
112 | * @generated | ||
113 | */ | ||
114 | int PERSON = 1; | ||
115 | |||
116 | /** | ||
117 | * The feature id for the '<em><b>Friends</b></em>' reference list. | ||
118 | * <!-- begin-user-doc --> | ||
119 | * <!-- end-user-doc --> | ||
120 | * @generated | ||
121 | * @ordered | ||
122 | */ | ||
123 | int PERSON__FRIENDS = 0; | ||
124 | |||
125 | /** | ||
126 | * The feature id for the '<em><b>Name</b></em>' attribute. | ||
127 | * <!-- begin-user-doc --> | ||
128 | * <!-- end-user-doc --> | ||
129 | * @generated | ||
130 | * @ordered | ||
131 | */ | ||
132 | int PERSON__NAME = 1; | ||
133 | |||
134 | /** | ||
135 | * The number of structural features of the '<em>Person</em>' class. | ||
136 | * <!-- begin-user-doc --> | ||
137 | * <!-- end-user-doc --> | ||
138 | * @generated | ||
139 | * @ordered | ||
140 | */ | ||
141 | int PERSON_FEATURE_COUNT = 2; | ||
142 | |||
143 | /** | ||
144 | * The number of operations of the '<em>Person</em>' class. | ||
145 | * <!-- begin-user-doc --> | ||
146 | * <!-- end-user-doc --> | ||
147 | * @generated | ||
148 | * @ordered | ||
149 | */ | ||
150 | int PERSON_OPERATION_COUNT = 0; | ||
151 | |||
152 | /** | ||
153 | * Returns the meta object for class '{@link socialnetwork.SocialNetwork <em>Social Network</em>}'. | ||
154 | * <!-- begin-user-doc --> | ||
155 | * <!-- end-user-doc --> | ||
156 | * @return the meta object for class '<em>Social Network</em>'. | ||
157 | * @see socialnetwork.SocialNetwork | ||
158 | * @generated | ||
159 | */ | ||
160 | EClass getSocialNetwork(); | ||
161 | |||
162 | /** | ||
163 | * Returns the meta object for the attribute '{@link socialnetwork.SocialNetwork#getName <em>Name</em>}'. | ||
164 | * <!-- begin-user-doc --> | ||
165 | * <!-- end-user-doc --> | ||
166 | * @return the meta object for the attribute '<em>Name</em>'. | ||
167 | * @see socialnetwork.SocialNetwork#getName() | ||
168 | * @see #getSocialNetwork() | ||
169 | * @generated | ||
170 | */ | ||
171 | EAttribute getSocialNetwork_Name(); | ||
172 | |||
173 | /** | ||
174 | * Returns the meta object for the containment reference list '{@link socialnetwork.SocialNetwork#getPersons <em>Persons</em>}'. | ||
175 | * <!-- begin-user-doc --> | ||
176 | * <!-- end-user-doc --> | ||
177 | * @return the meta object for the containment reference list '<em>Persons</em>'. | ||
178 | * @see socialnetwork.SocialNetwork#getPersons() | ||
179 | * @see #getSocialNetwork() | ||
180 | * @generated | ||
181 | */ | ||
182 | EReference getSocialNetwork_Persons(); | ||
183 | |||
184 | /** | ||
185 | * Returns the meta object for class '{@link socialnetwork.Person <em>Person</em>}'. | ||
186 | * <!-- begin-user-doc --> | ||
187 | * <!-- end-user-doc --> | ||
188 | * @return the meta object for class '<em>Person</em>'. | ||
189 | * @see socialnetwork.Person | ||
190 | * @generated | ||
191 | */ | ||
192 | EClass getPerson(); | ||
193 | |||
194 | /** | ||
195 | * Returns the meta object for the reference list '{@link socialnetwork.Person#getFriends <em>Friends</em>}'. | ||
196 | * <!-- begin-user-doc --> | ||
197 | * <!-- end-user-doc --> | ||
198 | * @return the meta object for the reference list '<em>Friends</em>'. | ||
199 | * @see socialnetwork.Person#getFriends() | ||
200 | * @see #getPerson() | ||
201 | * @generated | ||
202 | */ | ||
203 | EReference getPerson_Friends(); | ||
204 | |||
205 | /** | ||
206 | * Returns the meta object for the attribute '{@link socialnetwork.Person#getName <em>Name</em>}'. | ||
207 | * <!-- begin-user-doc --> | ||
208 | * <!-- end-user-doc --> | ||
209 | * @return the meta object for the attribute '<em>Name</em>'. | ||
210 | * @see socialnetwork.Person#getName() | ||
211 | * @see #getPerson() | ||
212 | * @generated | ||
213 | */ | ||
214 | EAttribute getPerson_Name(); | ||
215 | |||
216 | /** | ||
217 | * Returns the factory that creates the instances of the model. | ||
218 | * <!-- begin-user-doc --> | ||
219 | * <!-- end-user-doc --> | ||
220 | * @return the factory that creates the instances of the model. | ||
221 | * @generated | ||
222 | */ | ||
223 | SocialnetworkFactory getSocialnetworkFactory(); | ||
224 | |||
225 | /** | ||
226 | * <!-- begin-user-doc --> | ||
227 | * Defines literals for the meta objects that represent | ||
228 | * <ul> | ||
229 | * <li>each class,</li> | ||
230 | * <li>each feature of each class,</li> | ||
231 | * <li>each operation of each class,</li> | ||
232 | * <li>each enum,</li> | ||
233 | * <li>and each data type</li> | ||
234 | * </ul> | ||
235 | * <!-- end-user-doc --> | ||
236 | * @generated | ||
237 | */ | ||
238 | interface Literals { | ||
239 | /** | ||
240 | * The meta object literal for the '{@link socialnetwork.impl.SocialNetworkImpl <em>Social Network</em>}' class. | ||
241 | * <!-- begin-user-doc --> | ||
242 | * <!-- end-user-doc --> | ||
243 | * @see socialnetwork.impl.SocialNetworkImpl | ||
244 | * @see socialnetwork.impl.SocialnetworkPackageImpl#getSocialNetwork() | ||
245 | * @generated | ||
246 | */ | ||
247 | EClass SOCIAL_NETWORK = eINSTANCE.getSocialNetwork(); | ||
248 | |||
249 | /** | ||
250 | * The meta object literal for the '<em><b>Name</b></em>' attribute feature. | ||
251 | * <!-- begin-user-doc --> | ||
252 | * <!-- end-user-doc --> | ||
253 | * @generated | ||
254 | */ | ||
255 | EAttribute SOCIAL_NETWORK__NAME = eINSTANCE.getSocialNetwork_Name(); | ||
256 | |||
257 | /** | ||
258 | * The meta object literal for the '<em><b>Persons</b></em>' containment reference list feature. | ||
259 | * <!-- begin-user-doc --> | ||
260 | * <!-- end-user-doc --> | ||
261 | * @generated | ||
262 | */ | ||
263 | EReference SOCIAL_NETWORK__PERSONS = eINSTANCE.getSocialNetwork_Persons(); | ||
264 | |||
265 | /** | ||
266 | * The meta object literal for the '{@link socialnetwork.impl.PersonImpl <em>Person</em>}' class. | ||
267 | * <!-- begin-user-doc --> | ||
268 | * <!-- end-user-doc --> | ||
269 | * @see socialnetwork.impl.PersonImpl | ||
270 | * @see socialnetwork.impl.SocialnetworkPackageImpl#getPerson() | ||
271 | * @generated | ||
272 | */ | ||
273 | EClass PERSON = eINSTANCE.getPerson(); | ||
274 | |||
275 | /** | ||
276 | * The meta object literal for the '<em><b>Friends</b></em>' reference list feature. | ||
277 | * <!-- begin-user-doc --> | ||
278 | * <!-- end-user-doc --> | ||
279 | * @generated | ||
280 | */ | ||
281 | EReference PERSON__FRIENDS = eINSTANCE.getPerson_Friends(); | ||
282 | |||
283 | /** | ||
284 | * The meta object literal for the '<em><b>Name</b></em>' attribute feature. | ||
285 | * <!-- begin-user-doc --> | ||
286 | * <!-- end-user-doc --> | ||
287 | * @generated | ||
288 | */ | ||
289 | EAttribute PERSON__NAME = eINSTANCE.getPerson_Name(); | ||
290 | |||
291 | } | ||
292 | |||
293 | } //SocialnetworkPackage | ||
diff --git a/Metrics/Metrics-Calculation/SocialNetwork_plugin/encore_gen/socialnetwork/impl/PersonImpl.java b/Metrics/Metrics-Calculation/SocialNetwork_plugin/encore_gen/socialnetwork/impl/PersonImpl.java new file mode 100644 index 00000000..d8bab731 --- /dev/null +++ b/Metrics/Metrics-Calculation/SocialNetwork_plugin/encore_gen/socialnetwork/impl/PersonImpl.java | |||
@@ -0,0 +1,208 @@ | |||
1 | /** | ||
2 | */ | ||
3 | package socialnetwork.impl; | ||
4 | |||
5 | import java.util.Collection; | ||
6 | |||
7 | import org.eclipse.emf.common.notify.Notification; | ||
8 | |||
9 | import org.eclipse.emf.common.util.EList; | ||
10 | |||
11 | import org.eclipse.emf.ecore.EClass; | ||
12 | |||
13 | import org.eclipse.emf.ecore.impl.ENotificationImpl; | ||
14 | import org.eclipse.emf.ecore.impl.MinimalEObjectImpl; | ||
15 | |||
16 | import org.eclipse.emf.ecore.util.EObjectResolvingEList; | ||
17 | |||
18 | import socialnetwork.Person; | ||
19 | import socialnetwork.SocialnetworkPackage; | ||
20 | |||
21 | /** | ||
22 | * <!-- begin-user-doc --> | ||
23 | * An implementation of the model object '<em><b>Person</b></em>'. | ||
24 | * <!-- end-user-doc --> | ||
25 | * <p> | ||
26 | * The following features are implemented: | ||
27 | * </p> | ||
28 | * <ul> | ||
29 | * <li>{@link socialnetwork.impl.PersonImpl#getFriends <em>Friends</em>}</li> | ||
30 | * <li>{@link socialnetwork.impl.PersonImpl#getName <em>Name</em>}</li> | ||
31 | * </ul> | ||
32 | * | ||
33 | * @generated | ||
34 | */ | ||
35 | public class PersonImpl extends MinimalEObjectImpl.Container implements Person { | ||
36 | /** | ||
37 | * The cached value of the '{@link #getFriends() <em>Friends</em>}' reference list. | ||
38 | * <!-- begin-user-doc --> | ||
39 | * <!-- end-user-doc --> | ||
40 | * @see #getFriends() | ||
41 | * @generated | ||
42 | * @ordered | ||
43 | */ | ||
44 | protected EList<Person> friends; | ||
45 | |||
46 | /** | ||
47 | * The default value of the '{@link #getName() <em>Name</em>}' attribute. | ||
48 | * <!-- begin-user-doc --> | ||
49 | * <!-- end-user-doc --> | ||
50 | * @see #getName() | ||
51 | * @generated | ||
52 | * @ordered | ||
53 | */ | ||
54 | protected static final String NAME_EDEFAULT = "Name"; | ||
55 | |||
56 | /** | ||
57 | * The cached value of the '{@link #getName() <em>Name</em>}' attribute. | ||
58 | * <!-- begin-user-doc --> | ||
59 | * <!-- end-user-doc --> | ||
60 | * @see #getName() | ||
61 | * @generated | ||
62 | * @ordered | ||
63 | */ | ||
64 | protected String name = NAME_EDEFAULT; | ||
65 | |||
66 | /** | ||
67 | * <!-- begin-user-doc --> | ||
68 | * <!-- end-user-doc --> | ||
69 | * @generated | ||
70 | */ | ||
71 | protected PersonImpl() { | ||
72 | super(); | ||
73 | } | ||
74 | |||
75 | /** | ||
76 | * <!-- begin-user-doc --> | ||
77 | * <!-- end-user-doc --> | ||
78 | * @generated | ||
79 | */ | ||
80 | @Override | ||
81 | protected EClass eStaticClass() { | ||
82 | return SocialnetworkPackage.Literals.PERSON; | ||
83 | } | ||
84 | |||
85 | /** | ||
86 | * <!-- begin-user-doc --> | ||
87 | * <!-- end-user-doc --> | ||
88 | * @generated | ||
89 | */ | ||
90 | @Override | ||
91 | public EList<Person> getFriends() { | ||
92 | if (friends == null) { | ||
93 | friends = new EObjectResolvingEList<Person>(Person.class, this, SocialnetworkPackage.PERSON__FRIENDS); | ||
94 | } | ||
95 | return friends; | ||
96 | } | ||
97 | |||
98 | /** | ||
99 | * <!-- begin-user-doc --> | ||
100 | * <!-- end-user-doc --> | ||
101 | * @generated | ||
102 | */ | ||
103 | @Override | ||
104 | public String getName() { | ||
105 | return name; | ||
106 | } | ||
107 | |||
108 | /** | ||
109 | * <!-- begin-user-doc --> | ||
110 | * <!-- end-user-doc --> | ||
111 | * @generated | ||
112 | */ | ||
113 | @Override | ||
114 | public void setName(String newName) { | ||
115 | String oldName = name; | ||
116 | name = newName; | ||
117 | if (eNotificationRequired()) | ||
118 | eNotify(new ENotificationImpl(this, Notification.SET, SocialnetworkPackage.PERSON__NAME, oldName, name)); | ||
119 | } | ||
120 | |||
121 | /** | ||
122 | * <!-- begin-user-doc --> | ||
123 | * <!-- end-user-doc --> | ||
124 | * @generated | ||
125 | */ | ||
126 | @Override | ||
127 | public Object eGet(int featureID, boolean resolve, boolean coreType) { | ||
128 | switch (featureID) { | ||
129 | case SocialnetworkPackage.PERSON__FRIENDS: | ||
130 | return getFriends(); | ||
131 | case SocialnetworkPackage.PERSON__NAME: | ||
132 | return getName(); | ||
133 | } | ||
134 | return super.eGet(featureID, resolve, coreType); | ||
135 | } | ||
136 | |||
137 | /** | ||
138 | * <!-- begin-user-doc --> | ||
139 | * <!-- end-user-doc --> | ||
140 | * @generated | ||
141 | */ | ||
142 | @SuppressWarnings("unchecked") | ||
143 | @Override | ||
144 | public void eSet(int featureID, Object newValue) { | ||
145 | switch (featureID) { | ||
146 | case SocialnetworkPackage.PERSON__FRIENDS: | ||
147 | getFriends().clear(); | ||
148 | getFriends().addAll((Collection<? extends Person>) newValue); | ||
149 | return; | ||
150 | case SocialnetworkPackage.PERSON__NAME: | ||
151 | setName((String) newValue); | ||
152 | return; | ||
153 | } | ||
154 | super.eSet(featureID, newValue); | ||
155 | } | ||
156 | |||
157 | /** | ||
158 | * <!-- begin-user-doc --> | ||
159 | * <!-- end-user-doc --> | ||
160 | * @generated | ||
161 | */ | ||
162 | @Override | ||
163 | public void eUnset(int featureID) { | ||
164 | switch (featureID) { | ||
165 | case SocialnetworkPackage.PERSON__FRIENDS: | ||
166 | getFriends().clear(); | ||
167 | return; | ||
168 | case SocialnetworkPackage.PERSON__NAME: | ||
169 | setName(NAME_EDEFAULT); | ||
170 | return; | ||
171 | } | ||
172 | super.eUnset(featureID); | ||
173 | } | ||
174 | |||
175 | /** | ||
176 | * <!-- begin-user-doc --> | ||
177 | * <!-- end-user-doc --> | ||
178 | * @generated | ||
179 | */ | ||
180 | @Override | ||
181 | public boolean eIsSet(int featureID) { | ||
182 | switch (featureID) { | ||
183 | case SocialnetworkPackage.PERSON__FRIENDS: | ||
184 | return friends != null && !friends.isEmpty(); | ||
185 | case SocialnetworkPackage.PERSON__NAME: | ||
186 | return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name); | ||
187 | } | ||
188 | return super.eIsSet(featureID); | ||
189 | } | ||
190 | |||
191 | /** | ||
192 | * <!-- begin-user-doc --> | ||
193 | * <!-- end-user-doc --> | ||
194 | * @generated | ||
195 | */ | ||
196 | @Override | ||
197 | public String toString() { | ||
198 | if (eIsProxy()) | ||
199 | return super.toString(); | ||
200 | |||
201 | StringBuilder result = new StringBuilder(super.toString()); | ||
202 | result.append(" (name: "); | ||
203 | result.append(name); | ||
204 | result.append(')'); | ||
205 | return result.toString(); | ||
206 | } | ||
207 | |||
208 | } //PersonImpl | ||
diff --git a/Metrics/Metrics-Calculation/SocialNetwork_plugin/encore_gen/socialnetwork/impl/SocialNetworkImpl.java b/Metrics/Metrics-Calculation/SocialNetwork_plugin/encore_gen/socialnetwork/impl/SocialNetworkImpl.java new file mode 100644 index 00000000..cb28b749 --- /dev/null +++ b/Metrics/Metrics-Calculation/SocialNetwork_plugin/encore_gen/socialnetwork/impl/SocialNetworkImpl.java | |||
@@ -0,0 +1,228 @@ | |||
1 | /** | ||
2 | */ | ||
3 | package socialnetwork.impl; | ||
4 | |||
5 | import java.util.Collection; | ||
6 | |||
7 | import org.eclipse.emf.common.notify.Notification; | ||
8 | import org.eclipse.emf.common.notify.NotificationChain; | ||
9 | |||
10 | import org.eclipse.emf.common.util.EList; | ||
11 | |||
12 | import org.eclipse.emf.ecore.EClass; | ||
13 | import org.eclipse.emf.ecore.InternalEObject; | ||
14 | |||
15 | import org.eclipse.emf.ecore.impl.ENotificationImpl; | ||
16 | import org.eclipse.emf.ecore.impl.MinimalEObjectImpl; | ||
17 | |||
18 | import org.eclipse.emf.ecore.util.EObjectContainmentEList; | ||
19 | import org.eclipse.emf.ecore.util.InternalEList; | ||
20 | |||
21 | import socialnetwork.Person; | ||
22 | import socialnetwork.SocialNetwork; | ||
23 | import socialnetwork.SocialnetworkPackage; | ||
24 | |||
25 | /** | ||
26 | * <!-- begin-user-doc --> | ||
27 | * An implementation of the model object '<em><b>Social Network</b></em>'. | ||
28 | * <!-- end-user-doc --> | ||
29 | * <p> | ||
30 | * The following features are implemented: | ||
31 | * </p> | ||
32 | * <ul> | ||
33 | * <li>{@link socialnetwork.impl.SocialNetworkImpl#getName <em>Name</em>}</li> | ||
34 | * <li>{@link socialnetwork.impl.SocialNetworkImpl#getPersons <em>Persons</em>}</li> | ||
35 | * </ul> | ||
36 | * | ||
37 | * @generated | ||
38 | */ | ||
39 | public class SocialNetworkImpl extends MinimalEObjectImpl.Container implements SocialNetwork { | ||
40 | /** | ||
41 | * The default value of the '{@link #getName() <em>Name</em>}' attribute. | ||
42 | * <!-- begin-user-doc --> | ||
43 | * <!-- end-user-doc --> | ||
44 | * @see #getName() | ||
45 | * @generated | ||
46 | * @ordered | ||
47 | */ | ||
48 | protected static final String NAME_EDEFAULT = "SocialNetwork"; | ||
49 | |||
50 | /** | ||
51 | * The cached value of the '{@link #getName() <em>Name</em>}' attribute. | ||
52 | * <!-- begin-user-doc --> | ||
53 | * <!-- end-user-doc --> | ||
54 | * @see #getName() | ||
55 | * @generated | ||
56 | * @ordered | ||
57 | */ | ||
58 | protected String name = NAME_EDEFAULT; | ||
59 | |||
60 | /** | ||
61 | * The cached value of the '{@link #getPersons() <em>Persons</em>}' containment reference list. | ||
62 | * <!-- begin-user-doc --> | ||
63 | * <!-- end-user-doc --> | ||
64 | * @see #getPersons() | ||
65 | * @generated | ||
66 | * @ordered | ||
67 | */ | ||
68 | protected EList<Person> persons; | ||
69 | |||
70 | /** | ||
71 | * <!-- begin-user-doc --> | ||
72 | * <!-- end-user-doc --> | ||
73 | * @generated | ||
74 | */ | ||
75 | protected SocialNetworkImpl() { | ||
76 | super(); | ||
77 | } | ||
78 | |||
79 | /** | ||
80 | * <!-- begin-user-doc --> | ||
81 | * <!-- end-user-doc --> | ||
82 | * @generated | ||
83 | */ | ||
84 | @Override | ||
85 | protected EClass eStaticClass() { | ||
86 | return SocialnetworkPackage.Literals.SOCIAL_NETWORK; | ||
87 | } | ||
88 | |||
89 | /** | ||
90 | * <!-- begin-user-doc --> | ||
91 | * <!-- end-user-doc --> | ||
92 | * @generated | ||
93 | */ | ||
94 | @Override | ||
95 | public String getName() { | ||
96 | return name; | ||
97 | } | ||
98 | |||
99 | /** | ||
100 | * <!-- begin-user-doc --> | ||
101 | * <!-- end-user-doc --> | ||
102 | * @generated | ||
103 | */ | ||
104 | @Override | ||
105 | public void setName(String newName) { | ||
106 | String oldName = name; | ||
107 | name = newName; | ||
108 | if (eNotificationRequired()) | ||
109 | eNotify(new ENotificationImpl(this, Notification.SET, SocialnetworkPackage.SOCIAL_NETWORK__NAME, oldName, | ||
110 | name)); | ||
111 | } | ||
112 | |||
113 | /** | ||
114 | * <!-- begin-user-doc --> | ||
115 | * <!-- end-user-doc --> | ||
116 | * @generated | ||
117 | */ | ||
118 | @Override | ||
119 | public EList<Person> getPersons() { | ||
120 | if (persons == null) { | ||
121 | persons = new EObjectContainmentEList<Person>(Person.class, this, | ||
122 | SocialnetworkPackage.SOCIAL_NETWORK__PERSONS); | ||
123 | } | ||
124 | return persons; | ||
125 | } | ||
126 | |||
127 | /** | ||
128 | * <!-- begin-user-doc --> | ||
129 | * <!-- end-user-doc --> | ||
130 | * @generated | ||
131 | */ | ||
132 | @Override | ||
133 | public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) { | ||
134 | switch (featureID) { | ||
135 | case SocialnetworkPackage.SOCIAL_NETWORK__PERSONS: | ||
136 | return ((InternalEList<?>) getPersons()).basicRemove(otherEnd, msgs); | ||
137 | } | ||
138 | return super.eInverseRemove(otherEnd, featureID, msgs); | ||
139 | } | ||
140 | |||
141 | /** | ||
142 | * <!-- begin-user-doc --> | ||
143 | * <!-- end-user-doc --> | ||
144 | * @generated | ||
145 | */ | ||
146 | @Override | ||
147 | public Object eGet(int featureID, boolean resolve, boolean coreType) { | ||
148 | switch (featureID) { | ||
149 | case SocialnetworkPackage.SOCIAL_NETWORK__NAME: | ||
150 | return getName(); | ||
151 | case SocialnetworkPackage.SOCIAL_NETWORK__PERSONS: | ||
152 | return getPersons(); | ||
153 | } | ||
154 | return super.eGet(featureID, resolve, coreType); | ||
155 | } | ||
156 | |||
157 | /** | ||
158 | * <!-- begin-user-doc --> | ||
159 | * <!-- end-user-doc --> | ||
160 | * @generated | ||
161 | */ | ||
162 | @SuppressWarnings("unchecked") | ||
163 | @Override | ||
164 | public void eSet(int featureID, Object newValue) { | ||
165 | switch (featureID) { | ||
166 | case SocialnetworkPackage.SOCIAL_NETWORK__NAME: | ||
167 | setName((String) newValue); | ||
168 | return; | ||
169 | case SocialnetworkPackage.SOCIAL_NETWORK__PERSONS: | ||
170 | getPersons().clear(); | ||
171 | getPersons().addAll((Collection<? extends Person>) newValue); | ||
172 | return; | ||
173 | } | ||
174 | super.eSet(featureID, newValue); | ||
175 | } | ||
176 | |||
177 | /** | ||
178 | * <!-- begin-user-doc --> | ||
179 | * <!-- end-user-doc --> | ||
180 | * @generated | ||
181 | */ | ||
182 | @Override | ||
183 | public void eUnset(int featureID) { | ||
184 | switch (featureID) { | ||
185 | case SocialnetworkPackage.SOCIAL_NETWORK__NAME: | ||
186 | setName(NAME_EDEFAULT); | ||
187 | return; | ||
188 | case SocialnetworkPackage.SOCIAL_NETWORK__PERSONS: | ||
189 | getPersons().clear(); | ||
190 | return; | ||
191 | } | ||
192 | super.eUnset(featureID); | ||
193 | } | ||
194 | |||
195 | /** | ||
196 | * <!-- begin-user-doc --> | ||
197 | * <!-- end-user-doc --> | ||
198 | * @generated | ||
199 | */ | ||
200 | @Override | ||
201 | public boolean eIsSet(int featureID) { | ||
202 | switch (featureID) { | ||
203 | case SocialnetworkPackage.SOCIAL_NETWORK__NAME: | ||
204 | return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name); | ||
205 | case SocialnetworkPackage.SOCIAL_NETWORK__PERSONS: | ||
206 | return persons != null && !persons.isEmpty(); | ||
207 | } | ||
208 | return super.eIsSet(featureID); | ||
209 | } | ||
210 | |||
211 | /** | ||
212 | * <!-- begin-user-doc --> | ||
213 | * <!-- end-user-doc --> | ||
214 | * @generated | ||
215 | */ | ||
216 | @Override | ||
217 | public String toString() { | ||
218 | if (eIsProxy()) | ||
219 | return super.toString(); | ||
220 | |||
221 | StringBuilder result = new StringBuilder(super.toString()); | ||
222 | result.append(" (name: "); | ||
223 | result.append(name); | ||
224 | result.append(')'); | ||
225 | return result.toString(); | ||
226 | } | ||
227 | |||
228 | } //SocialNetworkImpl | ||
diff --git a/Metrics/Metrics-Calculation/SocialNetwork_plugin/encore_gen/socialnetwork/impl/SocialnetworkFactoryImpl.java b/Metrics/Metrics-Calculation/SocialNetwork_plugin/encore_gen/socialnetwork/impl/SocialnetworkFactoryImpl.java new file mode 100644 index 00000000..87fa3a87 --- /dev/null +++ b/Metrics/Metrics-Calculation/SocialNetwork_plugin/encore_gen/socialnetwork/impl/SocialnetworkFactoryImpl.java | |||
@@ -0,0 +1,111 @@ | |||
1 | /** | ||
2 | */ | ||
3 | package socialnetwork.impl; | ||
4 | |||
5 | import org.eclipse.emf.ecore.EClass; | ||
6 | import org.eclipse.emf.ecore.EObject; | ||
7 | import org.eclipse.emf.ecore.EPackage; | ||
8 | |||
9 | import org.eclipse.emf.ecore.impl.EFactoryImpl; | ||
10 | |||
11 | import org.eclipse.emf.ecore.plugin.EcorePlugin; | ||
12 | |||
13 | import socialnetwork.*; | ||
14 | |||
15 | /** | ||
16 | * <!-- begin-user-doc --> | ||
17 | * An implementation of the model <b>Factory</b>. | ||
18 | * <!-- end-user-doc --> | ||
19 | * @generated | ||
20 | */ | ||
21 | public class SocialnetworkFactoryImpl extends EFactoryImpl implements SocialnetworkFactory { | ||
22 | /** | ||
23 | * Creates the default factory implementation. | ||
24 | * <!-- begin-user-doc --> | ||
25 | * <!-- end-user-doc --> | ||
26 | * @generated | ||
27 | */ | ||
28 | public static SocialnetworkFactory init() { | ||
29 | try { | ||
30 | SocialnetworkFactory theSocialnetworkFactory = (SocialnetworkFactory) EPackage.Registry.INSTANCE | ||
31 | .getEFactory(SocialnetworkPackage.eNS_URI); | ||
32 | if (theSocialnetworkFactory != null) { | ||
33 | return theSocialnetworkFactory; | ||
34 | } | ||
35 | } catch (Exception exception) { | ||
36 | EcorePlugin.INSTANCE.log(exception); | ||
37 | } | ||
38 | return new SocialnetworkFactoryImpl(); | ||
39 | } | ||
40 | |||
41 | /** | ||
42 | * Creates an instance of the factory. | ||
43 | * <!-- begin-user-doc --> | ||
44 | * <!-- end-user-doc --> | ||
45 | * @generated | ||
46 | */ | ||
47 | public SocialnetworkFactoryImpl() { | ||
48 | super(); | ||
49 | } | ||
50 | |||
51 | /** | ||
52 | * <!-- begin-user-doc --> | ||
53 | * <!-- end-user-doc --> | ||
54 | * @generated | ||
55 | */ | ||
56 | @Override | ||
57 | public EObject create(EClass eClass) { | ||
58 | switch (eClass.getClassifierID()) { | ||
59 | case SocialnetworkPackage.SOCIAL_NETWORK: | ||
60 | return createSocialNetwork(); | ||
61 | case SocialnetworkPackage.PERSON: | ||
62 | return createPerson(); | ||
63 | default: | ||
64 | throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier"); | ||
65 | } | ||
66 | } | ||
67 | |||
68 | /** | ||
69 | * <!-- begin-user-doc --> | ||
70 | * <!-- end-user-doc --> | ||
71 | * @generated | ||
72 | */ | ||
73 | @Override | ||
74 | public SocialNetwork createSocialNetwork() { | ||
75 | SocialNetworkImpl socialNetwork = new SocialNetworkImpl(); | ||
76 | return socialNetwork; | ||
77 | } | ||
78 | |||
79 | /** | ||
80 | * <!-- begin-user-doc --> | ||
81 | * <!-- end-user-doc --> | ||
82 | * @generated | ||
83 | */ | ||
84 | @Override | ||
85 | public Person createPerson() { | ||
86 | PersonImpl person = new PersonImpl(); | ||
87 | return person; | ||
88 | } | ||
89 | |||
90 | /** | ||
91 | * <!-- begin-user-doc --> | ||
92 | * <!-- end-user-doc --> | ||
93 | * @generated | ||
94 | */ | ||
95 | @Override | ||
96 | public SocialnetworkPackage getSocialnetworkPackage() { | ||
97 | return (SocialnetworkPackage) getEPackage(); | ||
98 | } | ||
99 | |||
100 | /** | ||
101 | * <!-- begin-user-doc --> | ||
102 | * <!-- end-user-doc --> | ||
103 | * @deprecated | ||
104 | * @generated | ||
105 | */ | ||
106 | @Deprecated | ||
107 | public static SocialnetworkPackage getPackage() { | ||
108 | return SocialnetworkPackage.eINSTANCE; | ||
109 | } | ||
110 | |||
111 | } //SocialnetworkFactoryImpl | ||
diff --git a/Metrics/Metrics-Calculation/SocialNetwork_plugin/encore_gen/socialnetwork/impl/SocialnetworkPackageImpl.java b/Metrics/Metrics-Calculation/SocialNetwork_plugin/encore_gen/socialnetwork/impl/SocialnetworkPackageImpl.java new file mode 100644 index 00000000..7588df50 --- /dev/null +++ b/Metrics/Metrics-Calculation/SocialNetwork_plugin/encore_gen/socialnetwork/impl/SocialnetworkPackageImpl.java | |||
@@ -0,0 +1,267 @@ | |||
1 | /** | ||
2 | */ | ||
3 | package socialnetwork.impl; | ||
4 | |||
5 | import org.eclipse.emf.ecore.EAttribute; | ||
6 | import org.eclipse.emf.ecore.EClass; | ||
7 | import org.eclipse.emf.ecore.EPackage; | ||
8 | import org.eclipse.emf.ecore.EReference; | ||
9 | |||
10 | import org.eclipse.emf.ecore.impl.EPackageImpl; | ||
11 | |||
12 | import socialnetwork.Person; | ||
13 | import socialnetwork.SocialNetwork; | ||
14 | import socialnetwork.SocialnetworkFactory; | ||
15 | import socialnetwork.SocialnetworkPackage; | ||
16 | |||
17 | /** | ||
18 | * <!-- begin-user-doc --> | ||
19 | * An implementation of the model <b>Package</b>. | ||
20 | * <!-- end-user-doc --> | ||
21 | * @generated | ||
22 | */ | ||
23 | public class SocialnetworkPackageImpl extends EPackageImpl implements SocialnetworkPackage { | ||
24 | /** | ||
25 | * <!-- begin-user-doc --> | ||
26 | * <!-- end-user-doc --> | ||
27 | * @generated | ||
28 | */ | ||
29 | private EClass socialNetworkEClass = null; | ||
30 | |||
31 | /** | ||
32 | * <!-- begin-user-doc --> | ||
33 | * <!-- end-user-doc --> | ||
34 | * @generated | ||
35 | */ | ||
36 | private EClass personEClass = null; | ||
37 | |||
38 | /** | ||
39 | * Creates an instance of the model <b>Package</b>, registered with | ||
40 | * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package | ||
41 | * package URI value. | ||
42 | * <p>Note: the correct way to create the package is via the static | ||
43 | * factory method {@link #init init()}, which also performs | ||
44 | * initialization of the package, or returns the registered package, | ||
45 | * if one already exists. | ||
46 | * <!-- begin-user-doc --> | ||
47 | * <!-- end-user-doc --> | ||
48 | * @see org.eclipse.emf.ecore.EPackage.Registry | ||
49 | * @see socialnetwork.SocialnetworkPackage#eNS_URI | ||
50 | * @see #init() | ||
51 | * @generated | ||
52 | */ | ||
53 | private SocialnetworkPackageImpl() { | ||
54 | super(eNS_URI, SocialnetworkFactory.eINSTANCE); | ||
55 | } | ||
56 | |||
57 | /** | ||
58 | * <!-- begin-user-doc --> | ||
59 | * <!-- end-user-doc --> | ||
60 | * @generated | ||
61 | */ | ||
62 | private static boolean isInited = false; | ||
63 | |||
64 | /** | ||
65 | * Creates, registers, and initializes the <b>Package</b> for this model, and for any others upon which it depends. | ||
66 | * | ||
67 | * <p>This method is used to initialize {@link SocialnetworkPackage#eINSTANCE} when that field is accessed. | ||
68 | * Clients should not invoke it directly. Instead, they should simply access that field to obtain the package. | ||
69 | * <!-- begin-user-doc --> | ||
70 | * <!-- end-user-doc --> | ||
71 | * @see #eNS_URI | ||
72 | * @see #createPackageContents() | ||
73 | * @see #initializePackageContents() | ||
74 | * @generated | ||
75 | */ | ||
76 | public static SocialnetworkPackage init() { | ||
77 | if (isInited) | ||
78 | return (SocialnetworkPackage) EPackage.Registry.INSTANCE.getEPackage(SocialnetworkPackage.eNS_URI); | ||
79 | |||
80 | // Obtain or create and register package | ||
81 | Object registeredSocialnetworkPackage = EPackage.Registry.INSTANCE.get(eNS_URI); | ||
82 | SocialnetworkPackageImpl theSocialnetworkPackage = registeredSocialnetworkPackage instanceof SocialnetworkPackageImpl | ||
83 | ? (SocialnetworkPackageImpl) registeredSocialnetworkPackage | ||
84 | : new SocialnetworkPackageImpl(); | ||
85 | |||
86 | isInited = true; | ||
87 | |||
88 | // Create package meta-data objects | ||
89 | theSocialnetworkPackage.createPackageContents(); | ||
90 | |||
91 | // Initialize created meta-data | ||
92 | theSocialnetworkPackage.initializePackageContents(); | ||
93 | |||
94 | // Mark meta-data to indicate it can't be changed | ||
95 | theSocialnetworkPackage.freeze(); | ||
96 | |||
97 | // Update the registry and return the package | ||
98 | EPackage.Registry.INSTANCE.put(SocialnetworkPackage.eNS_URI, theSocialnetworkPackage); | ||
99 | return theSocialnetworkPackage; | ||
100 | } | ||
101 | |||
102 | /** | ||
103 | * <!-- begin-user-doc --> | ||
104 | * <!-- end-user-doc --> | ||
105 | * @generated | ||
106 | */ | ||
107 | @Override | ||
108 | public EClass getSocialNetwork() { | ||
109 | return socialNetworkEClass; | ||
110 | } | ||
111 | |||
112 | /** | ||
113 | * <!-- begin-user-doc --> | ||
114 | * <!-- end-user-doc --> | ||
115 | * @generated | ||
116 | */ | ||
117 | @Override | ||
118 | public EAttribute getSocialNetwork_Name() { | ||
119 | return (EAttribute) socialNetworkEClass.getEStructuralFeatures().get(0); | ||
120 | } | ||
121 | |||
122 | /** | ||
123 | * <!-- begin-user-doc --> | ||
124 | * <!-- end-user-doc --> | ||
125 | * @generated | ||
126 | */ | ||
127 | @Override | ||
128 | public EReference getSocialNetwork_Persons() { | ||
129 | return (EReference) socialNetworkEClass.getEStructuralFeatures().get(1); | ||
130 | } | ||
131 | |||
132 | /** | ||
133 | * <!-- begin-user-doc --> | ||
134 | * <!-- end-user-doc --> | ||
135 | * @generated | ||
136 | */ | ||
137 | @Override | ||
138 | public EClass getPerson() { | ||
139 | return personEClass; | ||
140 | } | ||
141 | |||
142 | /** | ||
143 | * <!-- begin-user-doc --> | ||
144 | * <!-- end-user-doc --> | ||
145 | * @generated | ||
146 | */ | ||
147 | @Override | ||
148 | public EReference getPerson_Friends() { | ||
149 | return (EReference) personEClass.getEStructuralFeatures().get(0); | ||
150 | } | ||
151 | |||
152 | /** | ||
153 | * <!-- begin-user-doc --> | ||
154 | * <!-- end-user-doc --> | ||
155 | * @generated | ||
156 | */ | ||
157 | @Override | ||
158 | public EAttribute getPerson_Name() { | ||
159 | return (EAttribute) personEClass.getEStructuralFeatures().get(1); | ||
160 | } | ||
161 | |||
162 | /** | ||
163 | * <!-- begin-user-doc --> | ||
164 | * <!-- end-user-doc --> | ||
165 | * @generated | ||
166 | */ | ||
167 | @Override | ||
168 | public SocialnetworkFactory getSocialnetworkFactory() { | ||
169 | return (SocialnetworkFactory) getEFactoryInstance(); | ||
170 | } | ||
171 | |||
172 | /** | ||
173 | * <!-- begin-user-doc --> | ||
174 | * <!-- end-user-doc --> | ||
175 | * @generated | ||
176 | */ | ||
177 | private boolean isCreated = false; | ||
178 | |||
179 | /** | ||
180 | * Creates the meta-model objects for the package. This method is | ||
181 | * guarded to have no affect on any invocation but its first. | ||
182 | * <!-- begin-user-doc --> | ||
183 | * <!-- end-user-doc --> | ||
184 | * @generated | ||
185 | */ | ||
186 | public void createPackageContents() { | ||
187 | if (isCreated) | ||
188 | return; | ||
189 | isCreated = true; | ||
190 | |||
191 | // Create classes and their features | ||
192 | socialNetworkEClass = createEClass(SOCIAL_NETWORK); | ||
193 | createEAttribute(socialNetworkEClass, SOCIAL_NETWORK__NAME); | ||
194 | createEReference(socialNetworkEClass, SOCIAL_NETWORK__PERSONS); | ||
195 | |||
196 | personEClass = createEClass(PERSON); | ||
197 | createEReference(personEClass, PERSON__FRIENDS); | ||
198 | createEAttribute(personEClass, PERSON__NAME); | ||
199 | } | ||
200 | |||
201 | /** | ||
202 | * <!-- begin-user-doc --> | ||
203 | * <!-- end-user-doc --> | ||
204 | * @generated | ||
205 | */ | ||
206 | private boolean isInitialized = false; | ||
207 | |||
208 | /** | ||
209 | * Complete the initialization of the package and its meta-model. This | ||
210 | * method is guarded to have no affect on any invocation but its first. | ||
211 | * <!-- begin-user-doc --> | ||
212 | * <!-- end-user-doc --> | ||
213 | * @generated | ||
214 | */ | ||
215 | public void initializePackageContents() { | ||
216 | if (isInitialized) | ||
217 | return; | ||
218 | isInitialized = true; | ||
219 | |||
220 | // Initialize package | ||
221 | setName(eNAME); | ||
222 | setNsPrefix(eNS_PREFIX); | ||
223 | setNsURI(eNS_URI); | ||
224 | |||
225 | // Create type parameters | ||
226 | |||
227 | // Set bounds for type parameters | ||
228 | |||
229 | // Add supertypes to classes | ||
230 | |||
231 | // Initialize classes, features, and operations; add parameters | ||
232 | initEClass(socialNetworkEClass, SocialNetwork.class, "SocialNetwork", !IS_ABSTRACT, !IS_INTERFACE, | ||
233 | IS_GENERATED_INSTANCE_CLASS); | ||
234 | initEAttribute(getSocialNetwork_Name(), ecorePackage.getEString(), "name", "SocialNetwork", 0, 1, | ||
235 | SocialNetwork.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, | ||
236 | !IS_DERIVED, IS_ORDERED); | ||
237 | initEReference(getSocialNetwork_Persons(), this.getPerson(), null, "persons", null, 0, -1, SocialNetwork.class, | ||
238 | !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, | ||
239 | IS_UNIQUE, !IS_DERIVED, IS_ORDERED); | ||
240 | |||
241 | initEClass(personEClass, Person.class, "Person", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); | ||
242 | initEReference(getPerson_Friends(), this.getPerson(), null, "friends", null, 0, -1, Person.class, !IS_TRANSIENT, | ||
243 | !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, | ||
244 | IS_ORDERED); | ||
245 | initEAttribute(getPerson_Name(), ecorePackage.getEString(), "name", "Name", 0, 1, Person.class, !IS_TRANSIENT, | ||
246 | !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); | ||
247 | |||
248 | // Create resource | ||
249 | createResource(eNS_URI); | ||
250 | |||
251 | // Create annotations | ||
252 | // http://www.eclipse.org/emf/2002/Ecore | ||
253 | createEcoreAnnotations(); | ||
254 | } | ||
255 | |||
256 | /** | ||
257 | * Initializes the annotations for <b>http://www.eclipse.org/emf/2002/Ecore</b>. | ||
258 | * <!-- begin-user-doc --> | ||
259 | * <!-- end-user-doc --> | ||
260 | * @generated | ||
261 | */ | ||
262 | protected void createEcoreAnnotations() { | ||
263 | String source = "http://www.eclipse.org/emf/2002/Ecore"; | ||
264 | addAnnotation(this, source, new String[] {}); | ||
265 | } | ||
266 | |||
267 | } //SocialnetworkPackageImpl | ||
diff --git a/Metrics/Metrics-Calculation/SocialNetwork_plugin/encore_gen/socialnetwork/util/SocialnetworkAdapterFactory.java b/Metrics/Metrics-Calculation/SocialNetwork_plugin/encore_gen/socialnetwork/util/SocialnetworkAdapterFactory.java new file mode 100644 index 00000000..0dd30975 --- /dev/null +++ b/Metrics/Metrics-Calculation/SocialNetwork_plugin/encore_gen/socialnetwork/util/SocialnetworkAdapterFactory.java | |||
@@ -0,0 +1,138 @@ | |||
1 | /** | ||
2 | */ | ||
3 | package socialnetwork.util; | ||
4 | |||
5 | import org.eclipse.emf.common.notify.Adapter; | ||
6 | import org.eclipse.emf.common.notify.Notifier; | ||
7 | |||
8 | import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl; | ||
9 | |||
10 | import org.eclipse.emf.ecore.EObject; | ||
11 | |||
12 | import socialnetwork.*; | ||
13 | |||
14 | /** | ||
15 | * <!-- begin-user-doc --> | ||
16 | * The <b>Adapter Factory</b> for the model. | ||
17 | * It provides an adapter <code>createXXX</code> method for each class of the model. | ||
18 | * <!-- end-user-doc --> | ||
19 | * @see socialnetwork.SocialnetworkPackage | ||
20 | * @generated | ||
21 | */ | ||
22 | public class SocialnetworkAdapterFactory extends AdapterFactoryImpl { | ||
23 | /** | ||
24 | * The cached model package. | ||
25 | * <!-- begin-user-doc --> | ||
26 | * <!-- end-user-doc --> | ||
27 | * @generated | ||
28 | */ | ||
29 | protected static SocialnetworkPackage modelPackage; | ||
30 | |||
31 | /** | ||
32 | * Creates an instance of the adapter factory. | ||
33 | * <!-- begin-user-doc --> | ||
34 | * <!-- end-user-doc --> | ||
35 | * @generated | ||
36 | */ | ||
37 | public SocialnetworkAdapterFactory() { | ||
38 | if (modelPackage == null) { | ||
39 | modelPackage = SocialnetworkPackage.eINSTANCE; | ||
40 | } | ||
41 | } | ||
42 | |||
43 | /** | ||
44 | * Returns whether this factory is applicable for the type of the object. | ||
45 | * <!-- begin-user-doc --> | ||
46 | * This implementation returns <code>true</code> if the object is either the model's package or is an instance object of the model. | ||
47 | * <!-- end-user-doc --> | ||
48 | * @return whether this factory is applicable for the type of the object. | ||
49 | * @generated | ||
50 | */ | ||
51 | @Override | ||
52 | public boolean isFactoryForType(Object object) { | ||
53 | if (object == modelPackage) { | ||
54 | return true; | ||
55 | } | ||
56 | if (object instanceof EObject) { | ||
57 | return ((EObject) object).eClass().getEPackage() == modelPackage; | ||
58 | } | ||
59 | return false; | ||
60 | } | ||
61 | |||
62 | /** | ||
63 | * The switch that delegates to the <code>createXXX</code> methods. | ||
64 | * <!-- begin-user-doc --> | ||
65 | * <!-- end-user-doc --> | ||
66 | * @generated | ||
67 | */ | ||
68 | protected SocialnetworkSwitch<Adapter> modelSwitch = new SocialnetworkSwitch<Adapter>() { | ||
69 | @Override | ||
70 | public Adapter caseSocialNetwork(SocialNetwork object) { | ||
71 | return createSocialNetworkAdapter(); | ||
72 | } | ||
73 | |||
74 | @Override | ||
75 | public Adapter casePerson(Person object) { | ||
76 | return createPersonAdapter(); | ||
77 | } | ||
78 | |||
79 | @Override | ||
80 | public Adapter defaultCase(EObject object) { | ||
81 | return createEObjectAdapter(); | ||
82 | } | ||
83 | }; | ||
84 | |||
85 | /** | ||
86 | * Creates an adapter for the <code>target</code>. | ||
87 | * <!-- begin-user-doc --> | ||
88 | * <!-- end-user-doc --> | ||
89 | * @param target the object to adapt. | ||
90 | * @return the adapter for the <code>target</code>. | ||
91 | * @generated | ||
92 | */ | ||
93 | @Override | ||
94 | public Adapter createAdapter(Notifier target) { | ||
95 | return modelSwitch.doSwitch((EObject) target); | ||
96 | } | ||
97 | |||
98 | /** | ||
99 | * Creates a new adapter for an object of class '{@link socialnetwork.SocialNetwork <em>Social Network</em>}'. | ||
100 | * <!-- begin-user-doc --> | ||
101 | * This default implementation returns null so that we can easily ignore cases; | ||
102 | * it's useful to ignore a case when inheritance will catch all the cases anyway. | ||
103 | * <!-- end-user-doc --> | ||
104 | * @return the new adapter. | ||
105 | * @see socialnetwork.SocialNetwork | ||
106 | * @generated | ||
107 | */ | ||
108 | public Adapter createSocialNetworkAdapter() { | ||
109 | return null; | ||
110 | } | ||
111 | |||
112 | /** | ||
113 | * Creates a new adapter for an object of class '{@link socialnetwork.Person <em>Person</em>}'. | ||
114 | * <!-- begin-user-doc --> | ||
115 | * This default implementation returns null so that we can easily ignore cases; | ||
116 | * it's useful to ignore a case when inheritance will catch all the cases anyway. | ||
117 | * <!-- end-user-doc --> | ||
118 | * @return the new adapter. | ||
119 | * @see socialnetwork.Person | ||
120 | * @generated | ||
121 | */ | ||
122 | public Adapter createPersonAdapter() { | ||
123 | return null; | ||
124 | } | ||
125 | |||
126 | /** | ||
127 | * Creates a new adapter for the default case. | ||
128 | * <!-- begin-user-doc --> | ||
129 | * This default implementation returns null. | ||
130 | * <!-- end-user-doc --> | ||
131 | * @return the new adapter. | ||
132 | * @generated | ||
133 | */ | ||
134 | public Adapter createEObjectAdapter() { | ||
135 | return null; | ||
136 | } | ||
137 | |||
138 | } //SocialnetworkAdapterFactory | ||
diff --git a/Metrics/Metrics-Calculation/SocialNetwork_plugin/encore_gen/socialnetwork/util/SocialnetworkSwitch.java b/Metrics/Metrics-Calculation/SocialNetwork_plugin/encore_gen/socialnetwork/util/SocialnetworkSwitch.java new file mode 100644 index 00000000..00d7955c --- /dev/null +++ b/Metrics/Metrics-Calculation/SocialNetwork_plugin/encore_gen/socialnetwork/util/SocialnetworkSwitch.java | |||
@@ -0,0 +1,134 @@ | |||
1 | /** | ||
2 | */ | ||
3 | package socialnetwork.util; | ||
4 | |||
5 | import org.eclipse.emf.ecore.EObject; | ||
6 | import org.eclipse.emf.ecore.EPackage; | ||
7 | |||
8 | import org.eclipse.emf.ecore.util.Switch; | ||
9 | |||
10 | import socialnetwork.*; | ||
11 | |||
12 | /** | ||
13 | * <!-- begin-user-doc --> | ||
14 | * The <b>Switch</b> for the model's inheritance hierarchy. | ||
15 | * It supports the call {@link #doSwitch(EObject) doSwitch(object)} | ||
16 | * to invoke the <code>caseXXX</code> method for each class of the model, | ||
17 | * starting with the actual class of the object | ||
18 | * and proceeding up the inheritance hierarchy | ||
19 | * until a non-null result is returned, | ||
20 | * which is the result of the switch. | ||
21 | * <!-- end-user-doc --> | ||
22 | * @see socialnetwork.SocialnetworkPackage | ||
23 | * @generated | ||
24 | */ | ||
25 | public class SocialnetworkSwitch<T> extends Switch<T> { | ||
26 | /** | ||
27 | * The cached model package | ||
28 | * <!-- begin-user-doc --> | ||
29 | * <!-- end-user-doc --> | ||
30 | * @generated | ||
31 | */ | ||
32 | protected static SocialnetworkPackage modelPackage; | ||
33 | |||
34 | /** | ||
35 | * Creates an instance of the switch. | ||
36 | * <!-- begin-user-doc --> | ||
37 | * <!-- end-user-doc --> | ||
38 | * @generated | ||
39 | */ | ||
40 | public SocialnetworkSwitch() { | ||
41 | if (modelPackage == null) { | ||
42 | modelPackage = SocialnetworkPackage.eINSTANCE; | ||
43 | } | ||
44 | } | ||
45 | |||
46 | /** | ||
47 | * Checks whether this is a switch for the given package. | ||
48 | * <!-- begin-user-doc --> | ||
49 | * <!-- end-user-doc --> | ||
50 | * @param ePackage the package in question. | ||
51 | * @return whether this is a switch for the given package. | ||
52 | * @generated | ||
53 | */ | ||
54 | @Override | ||
55 | protected boolean isSwitchFor(EPackage ePackage) { | ||
56 | return ePackage == modelPackage; | ||
57 | } | ||
58 | |||
59 | /** | ||
60 | * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result. | ||
61 | * <!-- begin-user-doc --> | ||
62 | * <!-- end-user-doc --> | ||
63 | * @return the first non-null result returned by a <code>caseXXX</code> call. | ||
64 | * @generated | ||
65 | */ | ||
66 | @Override | ||
67 | protected T doSwitch(int classifierID, EObject theEObject) { | ||
68 | switch (classifierID) { | ||
69 | case SocialnetworkPackage.SOCIAL_NETWORK: { | ||
70 | SocialNetwork socialNetwork = (SocialNetwork) theEObject; | ||
71 | T result = caseSocialNetwork(socialNetwork); | ||
72 | if (result == null) | ||
73 | result = defaultCase(theEObject); | ||
74 | return result; | ||
75 | } | ||
76 | case SocialnetworkPackage.PERSON: { | ||
77 | Person person = (Person) theEObject; | ||
78 | T result = casePerson(person); | ||
79 | if (result == null) | ||
80 | result = defaultCase(theEObject); | ||
81 | return result; | ||
82 | } | ||
83 | default: | ||
84 | return defaultCase(theEObject); | ||
85 | } | ||
86 | } | ||
87 | |||
88 | /** | ||
89 | * Returns the result of interpreting the object as an instance of '<em>Social Network</em>'. | ||
90 | * <!-- begin-user-doc --> | ||
91 | * This implementation returns null; | ||
92 | * returning a non-null result will terminate the switch. | ||
93 | * <!-- end-user-doc --> | ||
94 | * @param object the target of the switch. | ||
95 | * @return the result of interpreting the object as an instance of '<em>Social Network</em>'. | ||
96 | * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) | ||
97 | * @generated | ||
98 | */ | ||
99 | public T caseSocialNetwork(SocialNetwork object) { | ||
100 | return null; | ||
101 | } | ||
102 | |||
103 | /** | ||
104 | * Returns the result of interpreting the object as an instance of '<em>Person</em>'. | ||
105 | * <!-- begin-user-doc --> | ||
106 | * This implementation returns null; | ||
107 | * returning a non-null result will terminate the switch. | ||
108 | * <!-- end-user-doc --> | ||
109 | * @param object the target of the switch. | ||
110 | * @return the result of interpreting the object as an instance of '<em>Person</em>'. | ||
111 | * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) | ||
112 | * @generated | ||
113 | */ | ||
114 | public T casePerson(Person object) { | ||
115 | return null; | ||
116 | } | ||
117 | |||
118 | /** | ||
119 | * Returns the result of interpreting the object as an instance of '<em>EObject</em>'. | ||
120 | * <!-- begin-user-doc --> | ||
121 | * This implementation returns null; | ||
122 | * returning a non-null result will terminate the switch, but this is the last case anyway. | ||
123 | * <!-- end-user-doc --> | ||
124 | * @param object the target of the switch. | ||
125 | * @return the result of interpreting the object as an instance of '<em>EObject</em>'. | ||
126 | * @see #doSwitch(org.eclipse.emf.ecore.EObject) | ||
127 | * @generated | ||
128 | */ | ||
129 | @Override | ||
130 | public T defaultCase(EObject object) { | ||
131 | return null; | ||
132 | } | ||
133 | |||
134 | } //SocialnetworkSwitch | ||
diff --git a/Metrics/Metrics-Calculation/SocialNetwork_plugin/generator.vqgen b/Metrics/Metrics-Calculation/SocialNetwork_plugin/generator.vqgen new file mode 100644 index 00000000..902285d1 --- /dev/null +++ b/Metrics/Metrics-Calculation/SocialNetwork_plugin/generator.vqgen | |||
@@ -0,0 +1 @@ | |||
genmodel "platform:/resource/SocialNetwork_plugin/model/socialnetwork.genmodel" \ No newline at end of file | |||
diff --git a/Metrics/Metrics-Calculation/SocialNetwork_plugin/github.vsconfig b/Metrics/Metrics-Calculation/SocialNetwork_plugin/github.vsconfig new file mode 100644 index 00000000..e9f9a8d5 --- /dev/null +++ b/Metrics/Metrics-Calculation/SocialNetwork_plugin/github.vsconfig | |||
@@ -0,0 +1,213 @@ | |||
1 | import epackage "../../../Domains/github-graph/model/github.ecore" | ||
2 | import viatra "../../../Domains/github-graph/queries/queries/github.vql" | ||
3 | |||
4 | generate { | ||
5 | metamodel = {package github excluding{ Project.creatd_at, Project.updated_at, Project.url, User.name, User.url, | ||
6 | Commit.created_at, Commit.sha, Commit.parents_sha, Issue.created_at, Issue.url, PullRequest.url, IssueEvent.created_at, | ||
7 | IssueEvent.actor_url, Action, IssueEvent.action, Project.deleted}} | ||
8 | partial-model = { "inputs/github.xmi"} | ||
9 | constraints = { package queries } | ||
10 | |||
11 | |||
12 | solver = ViatraSolver | ||
13 | |||
14 | scope = { | ||
15 | #node = 30 | ||
16 | } | ||
17 | |||
18 | number = 1 | ||
19 | runs = 5 | ||
20 | config = { | ||
21 | log-level = none, | ||
22 | runtime = 300, | ||
23 | "optional-wf" = "false", | ||
24 | "realistic-guidance" = "Composite", | ||
25 | "allow-must-violations" = "false", | ||
26 | "domain" = "Github", | ||
27 | "scopePropagator" = "typeHierarchy" | ||
28 | } | ||
29 | |||
30 | debug = "debug" | ||
31 | statistics = "statistics/Github/warmup.csv" | ||
32 | output = "output/Github/Composite" | ||
33 | } | ||
34 | |||
35 | // generate { | ||
36 | // metamodel = {package github excluding{ Project.creatd_at, Project.updated_at, Project.url, User.name, User.url, | ||
37 | // Commit.created_at, Commit.sha, Commit.parents_sha, Issue.created_at, Issue.url, PullRequest.url, IssueEvent.created_at, | ||
38 | // IssueEvent.actor_url, Action, IssueEvent.action, Project.deleted}} | ||
39 | // partial-model = { "inputs/github.xmi"} | ||
40 | // constraints = { package queries } | ||
41 | |||
42 | |||
43 | // solver = ViatraSolver | ||
44 | |||
45 | // scope = { | ||
46 | // #node = 30 | ||
47 | // } | ||
48 | |||
49 | // number = 1 | ||
50 | // runs = 20 | ||
51 | // config = { | ||
52 | // log-level = none, | ||
53 | // runtime = 300, | ||
54 | // "optional-wf" = "true", | ||
55 | // "realistic-guidance" = "Composite", | ||
56 | // "allow-must-violations" = "true", | ||
57 | // "domain" = "Github" | ||
58 | // } | ||
59 | |||
60 | // debug = "debug" | ||
61 | // statistics = "statistics/Github/30.csv" | ||
62 | // output = "output/Github/Composite" | ||
63 | // } | ||
64 | |||
65 | // generate { | ||
66 | // metamodel = {package github excluding{ Project.creatd_at, Project.updated_at, Project.url, User.name, User.url, | ||
67 | // Commit.created_at, Commit.sha, Commit.parents_sha, Issue.created_at, Issue.url, PullRequest.url, IssueEvent.created_at, | ||
68 | // IssueEvent.actor_url, Action, IssueEvent.action, Project.deleted}} | ||
69 | // partial-model = { "inputs/github.xmi"} | ||
70 | // constraints = { package queries } | ||
71 | |||
72 | |||
73 | // solver = ViatraSolver | ||
74 | |||
75 | // scope = { | ||
76 | // #node = 50 | ||
77 | // } | ||
78 | |||
79 | // number = 1 | ||
80 | // runs = 20 | ||
81 | // config = { | ||
82 | // log-level = none, | ||
83 | // runtime = 300, | ||
84 | // "optional-wf" = "true", | ||
85 | // "realistic-guidance" = "Composite", | ||
86 | // "allow-must-violations" = "true", | ||
87 | // "domain" = "Github" | ||
88 | // } | ||
89 | |||
90 | // debug = "debug" | ||
91 | // statistics = "statistics/Github/50.csv" | ||
92 | // output = "output/Github/Composite" | ||
93 | // } | ||
94 | |||
95 | // generate { | ||
96 | // metamodel = {package github excluding{ Project.creatd_at, Project.updated_at, Project.url, User.name, User.url, | ||
97 | // Commit.created_at, Commit.sha, Commit.parents_sha, Issue.created_at, Issue.url, PullRequest.url, IssueEvent.created_at, | ||
98 | // IssueEvent.actor_url, Action, IssueEvent.action, Project.deleted}} | ||
99 | // partial-model = { "inputs/github.xmi"} | ||
100 | // constraints = { package queries } | ||
101 | |||
102 | |||
103 | // solver = ViatraSolver | ||
104 | |||
105 | // scope = { | ||
106 | // #node = 80 | ||
107 | // } | ||
108 | |||
109 | // number = 1 | ||
110 | // runs = 20 | ||
111 | // config = { | ||
112 | // log-level = none, | ||
113 | // runtime = 300, | ||
114 | // "optional-wf" = "true", | ||
115 | // "realistic-guidance" = "Composite", | ||
116 | // "allow-must-violations" = "true", | ||
117 | // "domain" = "Github" | ||
118 | // } | ||
119 | |||
120 | // debug = "debug" | ||
121 | // statistics = "statistics/Github/80.csv" | ||
122 | // output = "output/Github/Composite" | ||
123 | // } | ||
124 | |||
125 | // generate { | ||
126 | // metamodel = {package github excluding{ Project.creatd_at, Project.updated_at, Project.url, User.name, User.url, | ||
127 | // Commit.created_at, Commit.sha, Commit.parents_sha, Issue.created_at, Issue.url, PullRequest.url, IssueEvent.created_at, | ||
128 | // IssueEvent.actor_url, Action, IssueEvent.action, Project.deleted}} | ||
129 | // partial-model = { "inputs/github.xmi"} | ||
130 | // constraints = { package queries } | ||
131 | |||
132 | |||
133 | // solver = ViatraSolver | ||
134 | |||
135 | // scope = { | ||
136 | // #node = 100 | ||
137 | // } | ||
138 | |||
139 | // number = 1 | ||
140 | // runs = 20 | ||
141 | // config = { | ||
142 | // log-level = none, | ||
143 | // runtime = 300, | ||
144 | // "optional-wf" = "true", | ||
145 | // "realistic-guidance" = "Composite", | ||
146 | // "allow-must-violations" = "true", | ||
147 | // "domain" = "Github" | ||
148 | // } | ||
149 | |||
150 | // debug = "debug" | ||
151 | // statistics = "statistics/Github/100.csv" | ||
152 | // output = "output/Github/Composite" | ||
153 | // } | ||
154 | |||
155 | // generate { | ||
156 | // metamodel = {package github excluding{ Project.creatd_at, Project.updated_at, Project.url, User.name, User.url, | ||
157 | // Commit.created_at, Commit.sha, Commit.parents_sha, Issue.created_at, Issue.url, PullRequest.url, IssueEvent.created_at, | ||
158 | // IssueEvent.actor_url, Action, IssueEvent.action, Project.deleted}} | ||
159 | // partial-model = { "inputs/github.xmi"} | ||
160 | // constraints = { package queries } | ||
161 | |||
162 | |||
163 | // solver = ViatraSolver | ||
164 | |||
165 | // scope = { | ||
166 | // #node = 120 | ||
167 | // } | ||
168 | |||
169 | // number = 1 | ||
170 | // runs = 20 | ||
171 | // config = { | ||
172 | // log-level = none, | ||
173 | // runtime = 300, | ||
174 | // "optional-wf" = "true", | ||
175 | // "realistic-guidance" = "Composite", | ||
176 | // "allow-must-violations" = "true", | ||
177 | // "domain" = "Github" | ||
178 | // } | ||
179 | |||
180 | // debug = "debug" | ||
181 | // statistics = "statistics/Github/120.csv" | ||
182 | // output = "output/Github/Composite" | ||
183 | // } | ||
184 | |||
185 | // generate { | ||
186 | // metamodel = {package github excluding{ Project.creatd_at, Project.updated_at, Project.url, User.name, User.url, | ||
187 | // Commit.created_at, Commit.sha, Commit.parents_sha, Issue.created_at, Issue.url, PullRequest.url, IssueEvent.created_at, | ||
188 | // IssueEvent.actor_url, Action, IssueEvent.action, Project.deleted}} | ||
189 | // partial-model = { "inputs/github.xmi"} | ||
190 | // constraints = { package queries } | ||
191 | |||
192 | |||
193 | // solver = ViatraSolver | ||
194 | |||
195 | // scope = { | ||
196 | // #node = 140 | ||
197 | // } | ||
198 | |||
199 | // number = 1 | ||
200 | // runs = 20 | ||
201 | // config = { | ||
202 | // log-level = none, | ||
203 | // runtime = 300, | ||
204 | // "optional-wf" = "true", | ||
205 | // "realistic-guidance" = "Composite", | ||
206 | // "allow-must-violations" = "true", | ||
207 | // "domain" = "Github" | ||
208 | // } | ||
209 | |||
210 | // debug = "debug" | ||
211 | // statistics = "statistics/Github/140.csv" | ||
212 | // output = "output/Github/Composite" | ||
213 | // } \ No newline at end of file | ||
diff --git a/Metrics/Metrics-Calculation/SocialNetwork_plugin/inputs/ecore.xmi b/Metrics/Metrics-Calculation/SocialNetwork_plugin/inputs/ecore.xmi new file mode 100644 index 00000000..c5721309 --- /dev/null +++ b/Metrics/Metrics-Calculation/SocialNetwork_plugin/inputs/ecore.xmi | |||
@@ -0,0 +1,5 @@ | |||
1 | <?xml version="1.0" encoding="UTF-8"?> | ||
2 | <ecore:EPackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" | ||
3 | xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore"> | ||
4 | |||
5 | </ecore:EPackage> | ||
diff --git a/Metrics/Metrics-Calculation/SocialNetwork_plugin/inputs/github.xmi b/Metrics/Metrics-Calculation/SocialNetwork_plugin/inputs/github.xmi new file mode 100644 index 00000000..ad497607 --- /dev/null +++ b/Metrics/Metrics-Calculation/SocialNetwork_plugin/inputs/github.xmi | |||
@@ -0,0 +1,3 @@ | |||
1 | <?xml version="1.0" encoding="ASCII"?> | ||
2 | <github:Project xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:github="sure.ghtorrent.github"> | ||
3 | </github:Project> | ||
diff --git a/Metrics/Metrics-Calculation/SocialNetwork_plugin/inputs/start.xmi b/Metrics/Metrics-Calculation/SocialNetwork_plugin/inputs/start.xmi new file mode 100644 index 00000000..f9a2a185 --- /dev/null +++ b/Metrics/Metrics-Calculation/SocialNetwork_plugin/inputs/start.xmi | |||
@@ -0,0 +1,2 @@ | |||
1 | <?xml version="1.0" encoding="ASCII"?> | ||
2 | <hu.bme.mit.inf.yakindumm:Statechart xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:hu.bme.mit.inf.yakindumm="hu.bme.mit.inf.yakindumm" xsi:schemaLocation="hu.bme.mit.inf.yakindumm ../VIATRA-Generator/Domains/hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph/model/yakindu_simplified.ecore"/> | ||
diff --git a/Metrics/Metrics-Calculation/SocialNetwork_plugin/model/ecore.ecore b/Metrics/Metrics-Calculation/SocialNetwork_plugin/model/ecore.ecore new file mode 100644 index 00000000..eaaf3d11 --- /dev/null +++ b/Metrics/Metrics-Calculation/SocialNetwork_plugin/model/ecore.ecore | |||
@@ -0,0 +1,1023 @@ | |||
1 | <?xml version="1.0" encoding="UTF-8"?> | ||
2 | <ecore:EPackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" | ||
3 | xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="ecore" nsURI="http://www.eclipse.org/emf/2002/Ecore" nsPrefix="ecore"> | ||
4 | <eClassifiers xsi:type="ecore:EClass" name="EAnnotation" eSuperTypes="#//EModelElement"> | ||
5 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
6 | <details key="name" value="EAnnotation"/> | ||
7 | <details key="kind" value="elementOnly"/> | ||
8 | </eAnnotations> | ||
9 | <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore"> | ||
10 | <details key="constraints" value="WellFormedSourceURI"/> | ||
11 | </eAnnotations> | ||
12 | <eStructuralFeatures xsi:type="ecore:EReference" name="details" upperBound="-1" | ||
13 | eType="#//EStringToStringMapEntry" containment="true" resolveProxies="false"> | ||
14 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
15 | <details key="kind" value="element"/> | ||
16 | <details key="name" value="details"/> | ||
17 | </eAnnotations> | ||
18 | </eStructuralFeatures> | ||
19 | <eStructuralFeatures xsi:type="ecore:EReference" name="contents" upperBound="-1" | ||
20 | eType="ecore:EClass http://www.eclipse.org/emf/2002/Ecore#//EObject" containment="true" | ||
21 | resolveProxies="false"> | ||
22 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
23 | <details key="kind" value="element"/> | ||
24 | <details key="name" value="contents"/> | ||
25 | </eAnnotations> | ||
26 | </eStructuralFeatures> | ||
27 | <eStructuralFeatures xsi:type="ecore:EReference" name="references" upperBound="-1" | ||
28 | eType="ecore:EClass http://www.eclipse.org/emf/2002/Ecore#//EObject"> | ||
29 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
30 | <details key="kind" value="attribute"/> | ||
31 | <details key="name" value="references"/> | ||
32 | </eAnnotations> | ||
33 | </eStructuralFeatures> | ||
34 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="source" eType="#//EString"> | ||
35 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
36 | <details key="kind" value="attribute"/> | ||
37 | <details key="name" value="source"/> | ||
38 | </eAnnotations> | ||
39 | </eStructuralFeatures> | ||
40 | <eStructuralFeatures xsi:type="ecore:EReference" name="eModelElement" eType="#//EModelElement" | ||
41 | transient="true" eOpposite="#//EModelElement/eAnnotations"/> | ||
42 | </eClassifiers> | ||
43 | <eClassifiers xsi:type="ecore:EClass" name="EAttribute" eSuperTypes="#//EStructuralFeature"> | ||
44 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
45 | <details key="name" value="EAttribute"/> | ||
46 | <details key="kind" value="elementOnly"/> | ||
47 | </eAnnotations> | ||
48 | <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore"> | ||
49 | <details key="constraints" value="ConsistentTransient"/> | ||
50 | </eAnnotations> | ||
51 | <eStructuralFeatures xsi:type="ecore:EReference" name="eAttributeType" lowerBound="1" | ||
52 | eType="#//EDataType" changeable="false" volatile="true" transient="true" derived="true"> | ||
53 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
54 | <details key="kind" value="attribute"/> | ||
55 | <details key="name" value="eAttributeType"/> | ||
56 | </eAnnotations> | ||
57 | </eStructuralFeatures> | ||
58 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="iD" eType="#//EBoolean"> | ||
59 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
60 | <details key="kind" value="attribute"/> | ||
61 | <details key="name" value="iD"/> | ||
62 | </eAnnotations> | ||
63 | </eStructuralFeatures> | ||
64 | </eClassifiers> | ||
65 | <eClassifiers xsi:type="ecore:EDataType" name="EBigDecimal" instanceClassName="java.math.BigDecimal"> | ||
66 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
67 | <details key="name" value="EBigDecimal"/> | ||
68 | <details key="baseType" value="http://www.eclipse.org/emf/2003/XMLType#decimal"/> | ||
69 | </eAnnotations> | ||
70 | </eClassifiers> | ||
71 | <eClassifiers xsi:type="ecore:EDataType" name="EBigInteger" instanceClassName="java.math.BigInteger"> | ||
72 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
73 | <details key="name" value="EBigInteger"/> | ||
74 | <details key="baseType" value="http://www.eclipse.org/emf/2003/XMLType#integer"/> | ||
75 | </eAnnotations> | ||
76 | </eClassifiers> | ||
77 | <eClassifiers xsi:type="ecore:EDataType" name="EBoolean" instanceClassName="boolean"> | ||
78 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
79 | <details key="name" value="EBoolean"/> | ||
80 | </eAnnotations> | ||
81 | </eClassifiers> | ||
82 | <eClassifiers xsi:type="ecore:EDataType" name="EBooleanObject" instanceClassName="java.lang.Boolean"> | ||
83 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
84 | <details key="name" value="EBoolean:Object"/> | ||
85 | <details key="baseType" value="EBoolean"/> | ||
86 | </eAnnotations> | ||
87 | </eClassifiers> | ||
88 | <eClassifiers xsi:type="ecore:EDataType" name="EByte" instanceClassName="byte"> | ||
89 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
90 | <details key="name" value="EByte"/> | ||
91 | <details key="baseType" value="http://www.eclipse.org/emf/2003/XMLType#byte"/> | ||
92 | </eAnnotations> | ||
93 | </eClassifiers> | ||
94 | <eClassifiers xsi:type="ecore:EDataType" name="EByteArray" instanceClassName="byte[]"> | ||
95 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
96 | <details key="name" value="EByteArray"/> | ||
97 | <details key="baseType" value="http://www.eclipse.org/emf/2003/XMLType#hexBinary"/> | ||
98 | </eAnnotations> | ||
99 | </eClassifiers> | ||
100 | <eClassifiers xsi:type="ecore:EDataType" name="EByteObject" instanceClassName="java.lang.Byte"> | ||
101 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
102 | <details key="name" value="EByte:Object"/> | ||
103 | <details key="baseType" value="EByte"/> | ||
104 | </eAnnotations> | ||
105 | </eClassifiers> | ||
106 | <eClassifiers xsi:type="ecore:EDataType" name="EChar" instanceClassName="char"> | ||
107 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
108 | <details key="name" value="EChar"/> | ||
109 | </eAnnotations> | ||
110 | </eClassifiers> | ||
111 | <eClassifiers xsi:type="ecore:EDataType" name="ECharacterObject" instanceClassName="java.lang.Character"> | ||
112 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
113 | <details key="name" value="EChar:Object"/> | ||
114 | <details key="baseType" value="EChar"/> | ||
115 | </eAnnotations> | ||
116 | </eClassifiers> | ||
117 | <eClassifiers xsi:type="ecore:EClass" name="EClass" eSuperTypes="#//EClassifier"> | ||
118 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
119 | <details key="name" value="EClass"/> | ||
120 | <details key="kind" value="elementOnly"/> | ||
121 | </eAnnotations> | ||
122 | <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore"> | ||
123 | <details key="constraints" value="InterfaceIsAbstract AtMostOneID UniqueFeatureNames UniqueOperationSignatures NoCircularSuperTypes WellFormedMapEntryClass ConsistentSuperTypes DisjointFeatureAndOperationSignatures"/> | ||
124 | </eAnnotations> | ||
125 | <eOperations name="isSuperTypeOf" eType="#//EBoolean"> | ||
126 | <eParameters name="someClass" eType="#//EClass"/> | ||
127 | </eOperations> | ||
128 | <eOperations name="getFeatureCount" eType="#//EInt"/> | ||
129 | <eOperations name="getEStructuralFeature" eType="#//EStructuralFeature"> | ||
130 | <eParameters name="featureID" eType="#//EInt"/> | ||
131 | </eOperations> | ||
132 | <eOperations name="getFeatureID" eType="#//EInt"> | ||
133 | <eParameters name="feature" eType="#//EStructuralFeature"/> | ||
134 | </eOperations> | ||
135 | <eOperations name="getEStructuralFeature" eType="#//EStructuralFeature"> | ||
136 | <eParameters name="featureName" eType="#//EString"/> | ||
137 | </eOperations> | ||
138 | <eOperations name="getOperationCount" eType="#//EInt"/> | ||
139 | <eOperations name="getEOperation" eType="#//EOperation"> | ||
140 | <eParameters name="operationID" eType="#//EInt"/> | ||
141 | </eOperations> | ||
142 | <eOperations name="getOperationID" eType="#//EInt"> | ||
143 | <eParameters name="operation" eType="#//EOperation"/> | ||
144 | </eOperations> | ||
145 | <eOperations name="getOverride" eType="#//EOperation"> | ||
146 | <eParameters name="operation" eType="#//EOperation"/> | ||
147 | </eOperations> | ||
148 | <eStructuralFeatures xsi:type="ecore:EReference" name="eOperations" upperBound="-1" | ||
149 | eType="#//EOperation" containment="true" resolveProxies="false" eOpposite="#//EOperation/eContainingClass"> | ||
150 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
151 | <details key="kind" value="element"/> | ||
152 | <details key="name" value="eOperations"/> | ||
153 | </eAnnotations> | ||
154 | </eStructuralFeatures> | ||
155 | <eStructuralFeatures xsi:type="ecore:EReference" name="eStructuralFeatures" upperBound="-1" | ||
156 | eType="#//EStructuralFeature" containment="true" resolveProxies="false" eOpposite="#//EStructuralFeature/eContainingClass"> | ||
157 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
158 | <details key="kind" value="element"/> | ||
159 | <details key="name" value="eStructuralFeatures"/> | ||
160 | </eAnnotations> | ||
161 | </eStructuralFeatures> | ||
162 | <eStructuralFeatures xsi:type="ecore:EReference" name="eGenericSuperTypes" upperBound="-1" | ||
163 | eType="#//EGenericType" unsettable="true" containment="true" resolveProxies="false"> | ||
164 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
165 | <details key="kind" value="element"/> | ||
166 | <details key="name" value="eGenericSuperTypes"/> | ||
167 | </eAnnotations> | ||
168 | <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> | ||
169 | <details key="suppressedIsSetVisibility" value="true"/> | ||
170 | <details key="suppressedUnsetVisibility" value="true"/> | ||
171 | </eAnnotations> | ||
172 | </eStructuralFeatures> | ||
173 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="abstract" eType="#//EBoolean"> | ||
174 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
175 | <details key="kind" value="attribute"/> | ||
176 | <details key="name" value="abstract"/> | ||
177 | </eAnnotations> | ||
178 | </eStructuralFeatures> | ||
179 | <eStructuralFeatures xsi:type="ecore:EReference" name="eAllAttributes" upperBound="-1" | ||
180 | eType="#//EAttribute" changeable="false" volatile="true" transient="true" | ||
181 | derived="true"> | ||
182 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
183 | <details key="kind" value="attribute"/> | ||
184 | <details key="name" value="eAllAttributes"/> | ||
185 | </eAnnotations> | ||
186 | </eStructuralFeatures> | ||
187 | <eStructuralFeatures xsi:type="ecore:EReference" name="eAllContainments" upperBound="-1" | ||
188 | eType="#//EReference" changeable="false" volatile="true" transient="true" | ||
189 | derived="true"> | ||
190 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
191 | <details key="kind" value="attribute"/> | ||
192 | <details key="name" value="eAllContainments"/> | ||
193 | </eAnnotations> | ||
194 | </eStructuralFeatures> | ||
195 | <eStructuralFeatures xsi:type="ecore:EReference" name="eAllGenericSuperTypes" | ||
196 | upperBound="-1" eType="#//EGenericType" changeable="false" volatile="true" | ||
197 | transient="true" derived="true"> | ||
198 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
199 | <details key="kind" value="attribute"/> | ||
200 | <details key="name" value="eAllGenericSuperTypes"/> | ||
201 | </eAnnotations> | ||
202 | </eStructuralFeatures> | ||
203 | <eStructuralFeatures xsi:type="ecore:EReference" name="eAllOperations" upperBound="-1" | ||
204 | eType="#//EOperation" changeable="false" volatile="true" transient="true" | ||
205 | derived="true"> | ||
206 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
207 | <details key="kind" value="attribute"/> | ||
208 | <details key="name" value="eAllOperations"/> | ||
209 | </eAnnotations> | ||
210 | </eStructuralFeatures> | ||
211 | <eStructuralFeatures xsi:type="ecore:EReference" name="eAllReferences" upperBound="-1" | ||
212 | eType="#//EReference" changeable="false" volatile="true" transient="true" | ||
213 | derived="true"> | ||
214 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
215 | <details key="kind" value="attribute"/> | ||
216 | <details key="name" value="eAllReferences"/> | ||
217 | </eAnnotations> | ||
218 | </eStructuralFeatures> | ||
219 | <eStructuralFeatures xsi:type="ecore:EReference" name="eAllStructuralFeatures" | ||
220 | upperBound="-1" eType="#//EStructuralFeature" changeable="false" volatile="true" | ||
221 | transient="true" derived="true"> | ||
222 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
223 | <details key="kind" value="attribute"/> | ||
224 | <details key="name" value="eAllStructuralFeatures"/> | ||
225 | </eAnnotations> | ||
226 | </eStructuralFeatures> | ||
227 | <eStructuralFeatures xsi:type="ecore:EReference" name="eAllSuperTypes" upperBound="-1" | ||
228 | eType="#//EClass" changeable="false" volatile="true" transient="true" derived="true"> | ||
229 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
230 | <details key="kind" value="attribute"/> | ||
231 | <details key="name" value="eAllSuperTypes"/> | ||
232 | </eAnnotations> | ||
233 | </eStructuralFeatures> | ||
234 | <eStructuralFeatures xsi:type="ecore:EReference" name="eAttributes" upperBound="-1" | ||
235 | eType="#//EAttribute" changeable="false" volatile="true" transient="true" | ||
236 | derived="true"> | ||
237 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
238 | <details key="kind" value="attribute"/> | ||
239 | <details key="name" value="eAttributes"/> | ||
240 | </eAnnotations> | ||
241 | </eStructuralFeatures> | ||
242 | <eStructuralFeatures xsi:type="ecore:EReference" name="eIDAttribute" eType="#//EAttribute" | ||
243 | changeable="false" volatile="true" transient="true" derived="true" resolveProxies="false"> | ||
244 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
245 | <details key="kind" value="attribute"/> | ||
246 | <details key="name" value="eIDAttribute"/> | ||
247 | </eAnnotations> | ||
248 | </eStructuralFeatures> | ||
249 | <eStructuralFeatures xsi:type="ecore:EReference" name="eReferences" upperBound="-1" | ||
250 | eType="#//EReference" changeable="false" volatile="true" transient="true" | ||
251 | derived="true"> | ||
252 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
253 | <details key="kind" value="attribute"/> | ||
254 | <details key="name" value="eReferences"/> | ||
255 | </eAnnotations> | ||
256 | </eStructuralFeatures> | ||
257 | <eStructuralFeatures xsi:type="ecore:EReference" name="eSuperTypes" upperBound="-1" | ||
258 | eType="#//EClass" unsettable="true"> | ||
259 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
260 | <details key="kind" value="attribute"/> | ||
261 | <details key="name" value="eSuperTypes"/> | ||
262 | </eAnnotations> | ||
263 | <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> | ||
264 | <details key="suppressedIsSetVisibility" value="true"/> | ||
265 | <details key="suppressedUnsetVisibility" value="true"/> | ||
266 | </eAnnotations> | ||
267 | </eStructuralFeatures> | ||
268 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="interface" eType="#//EBoolean"> | ||
269 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
270 | <details key="kind" value="attribute"/> | ||
271 | <details key="name" value="interface"/> | ||
272 | </eAnnotations> | ||
273 | </eStructuralFeatures> | ||
274 | </eClassifiers> | ||
275 | <eClassifiers xsi:type="ecore:EClass" name="EClassifier" abstract="true" eSuperTypes="#//ENamedElement"> | ||
276 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
277 | <details key="name" value="EClassifier"/> | ||
278 | <details key="kind" value="elementOnly"/> | ||
279 | </eAnnotations> | ||
280 | <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore"> | ||
281 | <details key="constraints" value="WellFormedInstanceTypeName UniqueTypeParameterNames"/> | ||
282 | </eAnnotations> | ||
283 | <eOperations name="isInstance" eType="#//EBoolean"> | ||
284 | <eParameters name="object" eType="#//EJavaObject"/> | ||
285 | </eOperations> | ||
286 | <eOperations name="getClassifierID" eType="#//EInt"/> | ||
287 | <eStructuralFeatures xsi:type="ecore:EReference" name="eTypeParameters" upperBound="-1" | ||
288 | eType="#//ETypeParameter" containment="true"> | ||
289 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
290 | <details key="kind" value="element"/> | ||
291 | <details key="name" value="eTypeParameters"/> | ||
292 | </eAnnotations> | ||
293 | </eStructuralFeatures> | ||
294 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="defaultValue" eType="#//EJavaObject" | ||
295 | changeable="false" volatile="true" transient="true" derived="true"> | ||
296 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
297 | <details key="kind" value="attribute"/> | ||
298 | <details key="name" value="defaultValue"/> | ||
299 | </eAnnotations> | ||
300 | </eStructuralFeatures> | ||
301 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="instanceClass" changeable="false" | ||
302 | volatile="true" transient="true" derived="true"> | ||
303 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
304 | <details key="kind" value="attribute"/> | ||
305 | <details key="name" value="instanceClass"/> | ||
306 | </eAnnotations> | ||
307 | <eGenericType eClassifier="#//EJavaClass"> | ||
308 | <eTypeArguments/> | ||
309 | </eGenericType> | ||
310 | </eStructuralFeatures> | ||
311 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="instanceClassName" eType="#//EString" | ||
312 | volatile="true" unsettable="true"> | ||
313 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
314 | <details key="kind" value="attribute"/> | ||
315 | <details key="name" value="instanceClassName"/> | ||
316 | </eAnnotations> | ||
317 | <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> | ||
318 | <details key="suppressedIsSetVisibility" value="true"/> | ||
319 | <details key="suppressedUnsetVisibility" value="true"/> | ||
320 | </eAnnotations> | ||
321 | </eStructuralFeatures> | ||
322 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="instanceTypeName" eType="#//EString" | ||
323 | volatile="true" unsettable="true"> | ||
324 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
325 | <details key="kind" value="attribute"/> | ||
326 | <details key="name" value="instanceTypeName"/> | ||
327 | </eAnnotations> | ||
328 | <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> | ||
329 | <details key="suppressedIsSetVisibility" value="true"/> | ||
330 | <details key="suppressedUnsetVisibility" value="true"/> | ||
331 | </eAnnotations> | ||
332 | </eStructuralFeatures> | ||
333 | <eStructuralFeatures xsi:type="ecore:EReference" name="ePackage" eType="#//EPackage" | ||
334 | transient="true" eOpposite="#//EPackage/eClassifiers"/> | ||
335 | </eClassifiers> | ||
336 | <eClassifiers xsi:type="ecore:EClass" name="EDataType" eSuperTypes="#//EClassifier"> | ||
337 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
338 | <details key="name" value="EDataType"/> | ||
339 | <details key="kind" value="elementOnly"/> | ||
340 | </eAnnotations> | ||
341 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="serializable" eType="#//EBoolean" | ||
342 | defaultValueLiteral="true"> | ||
343 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
344 | <details key="kind" value="attribute"/> | ||
345 | <details key="name" value="serializable"/> | ||
346 | </eAnnotations> | ||
347 | </eStructuralFeatures> | ||
348 | </eClassifiers> | ||
349 | <eClassifiers xsi:type="ecore:EDataType" name="EDate" instanceClassName="java.util.Date"> | ||
350 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
351 | <details key="name" value="EDate"/> | ||
352 | </eAnnotations> | ||
353 | </eClassifiers> | ||
354 | <eClassifiers xsi:type="ecore:EDataType" name="EDiagnosticChain" instanceClassName="org.eclipse.emf.common.util.DiagnosticChain" | ||
355 | serializable="false"> | ||
356 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
357 | <details key="name" value="EDiagnosticChain"/> | ||
358 | </eAnnotations> | ||
359 | </eClassifiers> | ||
360 | <eClassifiers xsi:type="ecore:EDataType" name="EDouble" instanceClassName="double"> | ||
361 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
362 | <details key="name" value="EDouble"/> | ||
363 | <details key="baseType" value="http://www.eclipse.org/emf/2003/XMLType#double"/> | ||
364 | </eAnnotations> | ||
365 | </eClassifiers> | ||
366 | <eClassifiers xsi:type="ecore:EDataType" name="EDoubleObject" instanceClassName="java.lang.Double"> | ||
367 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
368 | <details key="name" value="EDouble:Object"/> | ||
369 | <details key="baseType" value="EDouble"/> | ||
370 | </eAnnotations> | ||
371 | </eClassifiers> | ||
372 | <eClassifiers xsi:type="ecore:EDataType" name="EEList" instanceClassName="org.eclipse.emf.common.util.EList" | ||
373 | serializable="false"> | ||
374 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
375 | <details key="name" value="EEList"/> | ||
376 | </eAnnotations> | ||
377 | <eTypeParameters name="E"/> | ||
378 | </eClassifiers> | ||
379 | <eClassifiers xsi:type="ecore:EClass" name="EEnum" eSuperTypes="#//EDataType"> | ||
380 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
381 | <details key="name" value="EEnum"/> | ||
382 | <details key="kind" value="elementOnly"/> | ||
383 | </eAnnotations> | ||
384 | <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore"> | ||
385 | <details key="constraints" value="UniqueEnumeratorNames UniqueEnumeratorLiterals"/> | ||
386 | </eAnnotations> | ||
387 | <eOperations name="getEEnumLiteral" eType="#//EEnumLiteral"> | ||
388 | <eParameters name="name" eType="#//EString"/> | ||
389 | </eOperations> | ||
390 | <eOperations name="getEEnumLiteral" eType="#//EEnumLiteral"> | ||
391 | <eParameters name="value" eType="#//EInt"/> | ||
392 | </eOperations> | ||
393 | <eOperations name="getEEnumLiteralByLiteral" eType="#//EEnumLiteral"> | ||
394 | <eParameters name="literal" eType="#//EString"/> | ||
395 | </eOperations> | ||
396 | <eStructuralFeatures xsi:type="ecore:EReference" name="eLiterals" upperBound="-1" | ||
397 | eType="#//EEnumLiteral" containment="true" resolveProxies="false" eOpposite="#//EEnumLiteral/eEnum"> | ||
398 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
399 | <details key="kind" value="element"/> | ||
400 | <details key="name" value="eLiterals"/> | ||
401 | </eAnnotations> | ||
402 | </eStructuralFeatures> | ||
403 | </eClassifiers> | ||
404 | <eClassifiers xsi:type="ecore:EDataType" name="EEnumerator" instanceClassName="org.eclipse.emf.common.util.Enumerator" | ||
405 | serializable="false"> | ||
406 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
407 | <details key="name" value="EEnumerator"/> | ||
408 | </eAnnotations> | ||
409 | </eClassifiers> | ||
410 | <eClassifiers xsi:type="ecore:EClass" name="EEnumLiteral" eSuperTypes="#//ENamedElement"> | ||
411 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
412 | <details key="name" value="EEnumLiteral"/> | ||
413 | <details key="kind" value="elementOnly"/> | ||
414 | </eAnnotations> | ||
415 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="instance" eType="#//EEnumerator" | ||
416 | transient="true"> | ||
417 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
418 | <details key="kind" value="attribute"/> | ||
419 | <details key="name" value="instance"/> | ||
420 | </eAnnotations> | ||
421 | </eStructuralFeatures> | ||
422 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="literal" eType="#//EString"> | ||
423 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
424 | <details key="kind" value="attribute"/> | ||
425 | <details key="name" value="literal"/> | ||
426 | </eAnnotations> | ||
427 | </eStructuralFeatures> | ||
428 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" eType="#//EInt"> | ||
429 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
430 | <details key="kind" value="attribute"/> | ||
431 | <details key="name" value="value"/> | ||
432 | </eAnnotations> | ||
433 | </eStructuralFeatures> | ||
434 | <eStructuralFeatures xsi:type="ecore:EReference" name="eEnum" eType="#//EEnum" | ||
435 | transient="true" eOpposite="#//EEnum/eLiterals"/> | ||
436 | </eClassifiers> | ||
437 | <eClassifiers xsi:type="ecore:EClass" name="EFactory" eSuperTypes="#//EModelElement"> | ||
438 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
439 | <details key="name" value="EFactory"/> | ||
440 | <details key="kind" value="elementOnly"/> | ||
441 | </eAnnotations> | ||
442 | <eOperations name="create" eType="ecore:EClass http://www.eclipse.org/emf/2002/Ecore#//EObject"> | ||
443 | <eParameters name="eClass" eType="#//EClass"/> | ||
444 | </eOperations> | ||
445 | <eOperations name="createFromString" eType="#//EJavaObject"> | ||
446 | <eParameters name="eDataType" eType="#//EDataType"/> | ||
447 | <eParameters name="literalValue" eType="#//EString"/> | ||
448 | </eOperations> | ||
449 | <eOperations name="convertToString" eType="#//EString"> | ||
450 | <eParameters name="eDataType" eType="#//EDataType"/> | ||
451 | <eParameters name="instanceValue" eType="#//EJavaObject"/> | ||
452 | </eOperations> | ||
453 | <eStructuralFeatures xsi:type="ecore:EReference" name="ePackage" lowerBound="1" | ||
454 | eType="#//EPackage" transient="true" resolveProxies="false" eOpposite="#//EPackage/eFactoryInstance"> | ||
455 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
456 | <details key="kind" value="attribute"/> | ||
457 | <details key="name" value="ePackage"/> | ||
458 | </eAnnotations> | ||
459 | </eStructuralFeatures> | ||
460 | </eClassifiers> | ||
461 | <eClassifiers xsi:type="ecore:EDataType" name="EFeatureMap" instanceClassName="org.eclipse.emf.ecore.util.FeatureMap" | ||
462 | serializable="false"> | ||
463 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
464 | <details key="name" value="EFeatureMap"/> | ||
465 | </eAnnotations> | ||
466 | </eClassifiers> | ||
467 | <eClassifiers xsi:type="ecore:EDataType" name="EFeatureMapEntry" instanceClassName="org.eclipse.emf.ecore.util.FeatureMap$Entry" | ||
468 | serializable="false"> | ||
469 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
470 | <details key="name" value="EFeatureMapEntry"/> | ||
471 | </eAnnotations> | ||
472 | </eClassifiers> | ||
473 | <eClassifiers xsi:type="ecore:EDataType" name="EFloat" instanceClassName="float"> | ||
474 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
475 | <details key="name" value="EFloat"/> | ||
476 | <details key="baseType" value="http://www.eclipse.org/emf/2003/XMLType#float"/> | ||
477 | </eAnnotations> | ||
478 | </eClassifiers> | ||
479 | <eClassifiers xsi:type="ecore:EDataType" name="EFloatObject" instanceClassName="java.lang.Float"> | ||
480 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
481 | <details key="name" value="EFloat:Object"/> | ||
482 | <details key="baseType" value="EFloat"/> | ||
483 | </eAnnotations> | ||
484 | </eClassifiers> | ||
485 | <eClassifiers xsi:type="ecore:EClass" name="EGenericType"> | ||
486 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
487 | <details key="name" value="EGenericType"/> | ||
488 | <details key="kind" value="elementOnly"/> | ||
489 | </eAnnotations> | ||
490 | <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore"> | ||
491 | <details key="constraints" value="ConsistentType ConsistentBounds ConsistentArguments"/> | ||
492 | </eAnnotations> | ||
493 | <eStructuralFeatures xsi:type="ecore:EReference" name="eUpperBound" eType="#//EGenericType" | ||
494 | containment="true" resolveProxies="false"> | ||
495 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
496 | <details key="kind" value="element"/> | ||
497 | <details key="name" value="eUpperBound"/> | ||
498 | </eAnnotations> | ||
499 | </eStructuralFeatures> | ||
500 | <eStructuralFeatures xsi:type="ecore:EReference" name="eTypeArguments" upperBound="-1" | ||
501 | eType="#//EGenericType" containment="true" resolveProxies="false"> | ||
502 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
503 | <details key="kind" value="element"/> | ||
504 | <details key="name" value="eTypeArguments"/> | ||
505 | </eAnnotations> | ||
506 | </eStructuralFeatures> | ||
507 | <eStructuralFeatures xsi:type="ecore:EReference" name="eLowerBound" eType="#//EGenericType" | ||
508 | containment="true" resolveProxies="false"> | ||
509 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
510 | <details key="kind" value="element"/> | ||
511 | <details key="name" value="eLowerBound"/> | ||
512 | </eAnnotations> | ||
513 | </eStructuralFeatures> | ||
514 | <eStructuralFeatures xsi:type="ecore:EReference" name="eClassifier" eType="#//EClassifier"> | ||
515 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
516 | <details key="kind" value="attribute"/> | ||
517 | <details key="name" value="eClassifier"/> | ||
518 | </eAnnotations> | ||
519 | </eStructuralFeatures> | ||
520 | <eStructuralFeatures xsi:type="ecore:EReference" name="eRawType" lowerBound="1" | ||
521 | eType="#//EClassifier" changeable="false" transient="true" derived="true"> | ||
522 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
523 | <details key="kind" value="attribute"/> | ||
524 | <details key="name" value="eRawType"/> | ||
525 | </eAnnotations> | ||
526 | </eStructuralFeatures> | ||
527 | <eStructuralFeatures xsi:type="ecore:EReference" name="eTypeParameter" eType="#//ETypeParameter" | ||
528 | resolveProxies="false"> | ||
529 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
530 | <details key="kind" value="attribute"/> | ||
531 | <details key="name" value="eTypeParameter"/> | ||
532 | </eAnnotations> | ||
533 | </eStructuralFeatures> | ||
534 | </eClassifiers> | ||
535 | <eClassifiers xsi:type="ecore:EDataType" name="EInt" instanceClassName="int"> | ||
536 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
537 | <details key="name" value="EInt"/> | ||
538 | </eAnnotations> | ||
539 | </eClassifiers> | ||
540 | <eClassifiers xsi:type="ecore:EDataType" name="EIntegerObject" instanceClassName="java.lang.Integer"> | ||
541 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
542 | <details key="name" value="EInt:Object"/> | ||
543 | <details key="baseType" value="EInt"/> | ||
544 | </eAnnotations> | ||
545 | </eClassifiers> | ||
546 | <eClassifiers xsi:type="ecore:EDataType" name="EInvocationTargetException" instanceClassName="java.lang.reflect.InvocationTargetException" | ||
547 | serializable="false"> | ||
548 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
549 | <details key="name" value="EInvocationTargetException"/> | ||
550 | </eAnnotations> | ||
551 | </eClassifiers> | ||
552 | <eClassifiers xsi:type="ecore:EDataType" name="EJavaClass" instanceClassName="java.lang.Class"> | ||
553 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
554 | <details key="name" value="EJavaClass"/> | ||
555 | </eAnnotations> | ||
556 | <eTypeParameters name="T"/> | ||
557 | </eClassifiers> | ||
558 | <eClassifiers xsi:type="ecore:EDataType" name="EJavaObject" instanceClassName="java.lang.Object"> | ||
559 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
560 | <details key="name" value="EJavaObject"/> | ||
561 | </eAnnotations> | ||
562 | </eClassifiers> | ||
563 | <eClassifiers xsi:type="ecore:EDataType" name="ELong" instanceClassName="long"> | ||
564 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
565 | <details key="name" value="ELong"/> | ||
566 | <details key="baseType" value="http://www.eclipse.org/emf/2003/XMLType#long"/> | ||
567 | </eAnnotations> | ||
568 | </eClassifiers> | ||
569 | <eClassifiers xsi:type="ecore:EDataType" name="ELongObject" instanceClassName="java.lang.Long"> | ||
570 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
571 | <details key="name" value="ELong:Object"/> | ||
572 | <details key="baseType" value="ELong"/> | ||
573 | </eAnnotations> | ||
574 | </eClassifiers> | ||
575 | <eClassifiers xsi:type="ecore:EDataType" name="EMap" instanceClassName="java.util.Map" | ||
576 | serializable="false"> | ||
577 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
578 | <details key="name" value="EMap"/> | ||
579 | </eAnnotations> | ||
580 | <eTypeParameters name="K"/> | ||
581 | <eTypeParameters name="V"/> | ||
582 | </eClassifiers> | ||
583 | <eClassifiers xsi:type="ecore:EClass" name="EModelElement" abstract="true"> | ||
584 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
585 | <details key="name" value="EModelElement"/> | ||
586 | <details key="kind" value="elementOnly"/> | ||
587 | </eAnnotations> | ||
588 | <eOperations name="getEAnnotation" eType="#//EAnnotation"> | ||
589 | <eParameters name="source" eType="#//EString"/> | ||
590 | </eOperations> | ||
591 | <eStructuralFeatures xsi:type="ecore:EReference" name="eAnnotations" upperBound="-1" | ||
592 | eType="#//EAnnotation" containment="true" resolveProxies="false" eOpposite="#//EAnnotation/eModelElement"> | ||
593 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
594 | <details key="kind" value="element"/> | ||
595 | <details key="name" value="eAnnotations"/> | ||
596 | </eAnnotations> | ||
597 | </eStructuralFeatures> | ||
598 | </eClassifiers> | ||
599 | <eClassifiers xsi:type="ecore:EClass" name="ENamedElement" abstract="true" eSuperTypes="#//EModelElement"> | ||
600 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
601 | <details key="name" value="ENamedElement"/> | ||
602 | <details key="kind" value="elementOnly"/> | ||
603 | </eAnnotations> | ||
604 | <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore"> | ||
605 | <details key="constraints" value="WellFormedName"/> | ||
606 | </eAnnotations> | ||
607 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="#//EString"> | ||
608 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
609 | <details key="kind" value="attribute"/> | ||
610 | <details key="name" value="name"/> | ||
611 | </eAnnotations> | ||
612 | </eStructuralFeatures> | ||
613 | </eClassifiers> | ||
614 | <eClassifiers xsi:type="ecore:EClass" name="EObject"> | ||
615 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
616 | <details key="name" value="EObject"/> | ||
617 | <details key="kind" value="empty"/> | ||
618 | </eAnnotations> | ||
619 | <eOperations name="eClass" eType="#//EClass"/> | ||
620 | <eOperations name="eIsProxy" eType="#//EBoolean"/> | ||
621 | <eOperations name="eResource" eType="#//EResource"/> | ||
622 | <eOperations name="eContainer" eType="ecore:EClass http://www.eclipse.org/emf/2002/Ecore#//EObject"/> | ||
623 | <eOperations name="eContainingFeature" eType="#//EStructuralFeature"/> | ||
624 | <eOperations name="eContainmentFeature" eType="#//EReference"/> | ||
625 | <eOperations name="eContents"> | ||
626 | <eGenericType eClassifier="#//EEList"> | ||
627 | <eTypeArguments eClassifier="ecore:EClass http://www.eclipse.org/emf/2002/Ecore#//EObject"/> | ||
628 | </eGenericType> | ||
629 | </eOperations> | ||
630 | <eOperations name="eAllContents"> | ||
631 | <eGenericType eClassifier="#//ETreeIterator"> | ||
632 | <eTypeArguments eClassifier="ecore:EClass http://www.eclipse.org/emf/2002/Ecore#//EObject"/> | ||
633 | </eGenericType> | ||
634 | </eOperations> | ||
635 | <eOperations name="eCrossReferences"> | ||
636 | <eGenericType eClassifier="#//EEList"> | ||
637 | <eTypeArguments eClassifier="ecore:EClass http://www.eclipse.org/emf/2002/Ecore#//EObject"/> | ||
638 | </eGenericType> | ||
639 | </eOperations> | ||
640 | <eOperations name="eGet" eType="#//EJavaObject"> | ||
641 | <eParameters name="feature" eType="#//EStructuralFeature"/> | ||
642 | </eOperations> | ||
643 | <eOperations name="eGet" eType="#//EJavaObject"> | ||
644 | <eParameters name="feature" eType="#//EStructuralFeature"/> | ||
645 | <eParameters name="resolve" eType="#//EBoolean"/> | ||
646 | </eOperations> | ||
647 | <eOperations name="eSet"> | ||
648 | <eParameters name="feature" eType="#//EStructuralFeature"/> | ||
649 | <eParameters name="newValue" eType="#//EJavaObject"/> | ||
650 | </eOperations> | ||
651 | <eOperations name="eIsSet" eType="#//EBoolean"> | ||
652 | <eParameters name="feature" eType="#//EStructuralFeature"/> | ||
653 | </eOperations> | ||
654 | <eOperations name="eUnset"> | ||
655 | <eParameters name="feature" eType="#//EStructuralFeature"/> | ||
656 | </eOperations> | ||
657 | <eOperations name="eInvoke" eType="#//EJavaObject" eExceptions="#//EInvocationTargetException"> | ||
658 | <eParameters name="operation" eType="#//EOperation"/> | ||
659 | <eParameters name="arguments"> | ||
660 | <eGenericType eClassifier="#//EEList"> | ||
661 | <eTypeArguments/> | ||
662 | </eGenericType> | ||
663 | </eParameters> | ||
664 | </eOperations> | ||
665 | </eClassifiers> | ||
666 | <eClassifiers xsi:type="ecore:EClass" name="EOperation" eSuperTypes="#//ETypedElement"> | ||
667 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
668 | <details key="name" value="EOperation"/> | ||
669 | <details key="kind" value="elementOnly"/> | ||
670 | </eAnnotations> | ||
671 | <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore"> | ||
672 | <details key="constraints" value="UniqueParameterNames UniqueTypeParameterNames NoRepeatingVoid"/> | ||
673 | </eAnnotations> | ||
674 | <eOperations name="getOperationID" eType="#//EInt"/> | ||
675 | <eOperations name="isOverrideOf" eType="#//EBoolean"> | ||
676 | <eParameters name="someOperation" eType="#//EOperation"/> | ||
677 | </eOperations> | ||
678 | <eStructuralFeatures xsi:type="ecore:EReference" name="eTypeParameters" upperBound="-1" | ||
679 | eType="#//ETypeParameter" containment="true"> | ||
680 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
681 | <details key="kind" value="element"/> | ||
682 | <details key="name" value="eTypeParameters"/> | ||
683 | </eAnnotations> | ||
684 | </eStructuralFeatures> | ||
685 | <eStructuralFeatures xsi:type="ecore:EReference" name="eParameters" upperBound="-1" | ||
686 | eType="#//EParameter" containment="true" resolveProxies="false" eOpposite="#//EParameter/eOperation"> | ||
687 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
688 | <details key="kind" value="element"/> | ||
689 | <details key="name" value="eParameters"/> | ||
690 | </eAnnotations> | ||
691 | </eStructuralFeatures> | ||
692 | <eStructuralFeatures xsi:type="ecore:EReference" name="eGenericExceptions" upperBound="-1" | ||
693 | eType="#//EGenericType" unsettable="true" containment="true" resolveProxies="false"> | ||
694 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
695 | <details key="kind" value="element"/> | ||
696 | <details key="name" value="eGenericExceptions"/> | ||
697 | </eAnnotations> | ||
698 | <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> | ||
699 | <details key="suppressedIsSetVisibility" value="true"/> | ||
700 | <details key="suppressedUnsetVisibility" value="true"/> | ||
701 | </eAnnotations> | ||
702 | </eStructuralFeatures> | ||
703 | <eStructuralFeatures xsi:type="ecore:EReference" name="eExceptions" upperBound="-1" | ||
704 | eType="#//EClassifier" unsettable="true"> | ||
705 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
706 | <details key="kind" value="attribute"/> | ||
707 | <details key="name" value="eExceptions"/> | ||
708 | </eAnnotations> | ||
709 | <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> | ||
710 | <details key="suppressedIsSetVisibility" value="true"/> | ||
711 | <details key="suppressedUnsetVisibility" value="true"/> | ||
712 | </eAnnotations> | ||
713 | </eStructuralFeatures> | ||
714 | <eStructuralFeatures xsi:type="ecore:EReference" name="eContainingClass" eType="#//EClass" | ||
715 | transient="true" eOpposite="#//EClass/eOperations"/> | ||
716 | </eClassifiers> | ||
717 | <eClassifiers xsi:type="ecore:EClass" name="EPackage" eSuperTypes="#//ENamedElement"> | ||
718 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
719 | <details key="name" value="EPackage"/> | ||
720 | <details key="kind" value="elementOnly"/> | ||
721 | </eAnnotations> | ||
722 | <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore"> | ||
723 | <details key="constraints" value="WellFormedNsURI WellFormedNsPrefix UniqueSubpackageNames UniqueClassifierNames UniqueNsURIs"/> | ||
724 | </eAnnotations> | ||
725 | <eOperations name="getEClassifier" eType="#//EClassifier"> | ||
726 | <eParameters name="name" eType="#//EString"/> | ||
727 | </eOperations> | ||
728 | <eStructuralFeatures xsi:type="ecore:EReference" name="eClassifiers" upperBound="-1" | ||
729 | eType="#//EClassifier" containment="true" eOpposite="#//EClassifier/ePackage"> | ||
730 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
731 | <details key="kind" value="element"/> | ||
732 | <details key="name" value="eClassifiers"/> | ||
733 | </eAnnotations> | ||
734 | </eStructuralFeatures> | ||
735 | <eStructuralFeatures xsi:type="ecore:EReference" name="eSubpackages" upperBound="-1" | ||
736 | eType="#//EPackage" containment="true" eOpposite="#//EPackage/eSuperPackage"> | ||
737 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
738 | <details key="kind" value="element"/> | ||
739 | <details key="name" value="eSubpackages"/> | ||
740 | </eAnnotations> | ||
741 | </eStructuralFeatures> | ||
742 | <eStructuralFeatures xsi:type="ecore:EReference" name="eFactoryInstance" lowerBound="1" | ||
743 | eType="#//EFactory" transient="true" resolveProxies="false" eOpposite="#//EFactory/ePackage"> | ||
744 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
745 | <details key="kind" value="attribute"/> | ||
746 | <details key="name" value="eFactoryInstance"/> | ||
747 | </eAnnotations> | ||
748 | </eStructuralFeatures> | ||
749 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="nsPrefix" eType="#//EString"> | ||
750 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
751 | <details key="kind" value="attribute"/> | ||
752 | <details key="name" value="nsPrefix"/> | ||
753 | </eAnnotations> | ||
754 | </eStructuralFeatures> | ||
755 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="nsURI" eType="#//EString"> | ||
756 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
757 | <details key="kind" value="attribute"/> | ||
758 | <details key="name" value="nsURI"/> | ||
759 | </eAnnotations> | ||
760 | </eStructuralFeatures> | ||
761 | <eStructuralFeatures xsi:type="ecore:EReference" name="eSuperPackage" eType="#//EPackage" | ||
762 | transient="true" eOpposite="#//EPackage/eSubpackages"/> | ||
763 | </eClassifiers> | ||
764 | <eClassifiers xsi:type="ecore:EClass" name="EParameter" eSuperTypes="#//ETypedElement"> | ||
765 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
766 | <details key="name" value="EParameter"/> | ||
767 | <details key="kind" value="elementOnly"/> | ||
768 | </eAnnotations> | ||
769 | <eStructuralFeatures xsi:type="ecore:EReference" name="eOperation" eType="#//EOperation" | ||
770 | transient="true" eOpposite="#//EOperation/eParameters"/> | ||
771 | </eClassifiers> | ||
772 | <eClassifiers xsi:type="ecore:EClass" name="EReference" eSuperTypes="#//EStructuralFeature"> | ||
773 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
774 | <details key="name" value="EReference"/> | ||
775 | <details key="kind" value="elementOnly"/> | ||
776 | </eAnnotations> | ||
777 | <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore"> | ||
778 | <details key="constraints" value="ConsistentOpposite SingleContainer ConsistentKeys ConsistentUnique ConsistentContainer"/> | ||
779 | </eAnnotations> | ||
780 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="container" eType="#//EBoolean" | ||
781 | changeable="false" volatile="true" transient="true" derived="true"> | ||
782 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
783 | <details key="kind" value="attribute"/> | ||
784 | <details key="name" value="container"/> | ||
785 | </eAnnotations> | ||
786 | </eStructuralFeatures> | ||
787 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="containment" eType="#//EBoolean"> | ||
788 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
789 | <details key="kind" value="attribute"/> | ||
790 | <details key="name" value="containment"/> | ||
791 | </eAnnotations> | ||
792 | </eStructuralFeatures> | ||
793 | <eStructuralFeatures xsi:type="ecore:EReference" name="eKeys" upperBound="-1" | ||
794 | eType="#//EAttribute"> | ||
795 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
796 | <details key="kind" value="attribute"/> | ||
797 | <details key="name" value="eKeys"/> | ||
798 | </eAnnotations> | ||
799 | </eStructuralFeatures> | ||
800 | <eStructuralFeatures xsi:type="ecore:EReference" name="eOpposite" eType="#//EReference"> | ||
801 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
802 | <details key="kind" value="attribute"/> | ||
803 | <details key="name" value="eOpposite"/> | ||
804 | </eAnnotations> | ||
805 | </eStructuralFeatures> | ||
806 | <eStructuralFeatures xsi:type="ecore:EReference" name="eReferenceType" lowerBound="1" | ||
807 | eType="#//EClass" changeable="false" volatile="true" transient="true" derived="true"> | ||
808 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
809 | <details key="kind" value="attribute"/> | ||
810 | <details key="name" value="eReferenceType"/> | ||
811 | </eAnnotations> | ||
812 | </eStructuralFeatures> | ||
813 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="resolveProxies" eType="#//EBoolean" | ||
814 | defaultValueLiteral="true"> | ||
815 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
816 | <details key="kind" value="attribute"/> | ||
817 | <details key="name" value="resolveProxies"/> | ||
818 | </eAnnotations> | ||
819 | </eStructuralFeatures> | ||
820 | </eClassifiers> | ||
821 | <eClassifiers xsi:type="ecore:EDataType" name="EResource" instanceClassName="org.eclipse.emf.ecore.resource.Resource" | ||
822 | serializable="false"> | ||
823 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
824 | <details key="name" value="EResource"/> | ||
825 | </eAnnotations> | ||
826 | </eClassifiers> | ||
827 | <eClassifiers xsi:type="ecore:EDataType" name="EResourceSet" instanceClassName="org.eclipse.emf.ecore.resource.ResourceSet" | ||
828 | serializable="false"> | ||
829 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
830 | <details key="name" value="EResourceSet"/> | ||
831 | </eAnnotations> | ||
832 | </eClassifiers> | ||
833 | <eClassifiers xsi:type="ecore:EDataType" name="EShort" instanceClassName="short"> | ||
834 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
835 | <details key="name" value="EShort"/> | ||
836 | <details key="baseType" value="http://www.eclipse.org/emf/2003/XMLType#short"/> | ||
837 | </eAnnotations> | ||
838 | </eClassifiers> | ||
839 | <eClassifiers xsi:type="ecore:EDataType" name="EShortObject" instanceClassName="java.lang.Short"> | ||
840 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
841 | <details key="name" value="EShort:Object"/> | ||
842 | <details key="baseType" value="EShort"/> | ||
843 | </eAnnotations> | ||
844 | </eClassifiers> | ||
845 | <eClassifiers xsi:type="ecore:EDataType" name="EString" instanceClassName="java.lang.String"> | ||
846 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
847 | <details key="name" value="EString"/> | ||
848 | <details key="baseType" value="http://www.eclipse.org/emf/2003/XMLType#string"/> | ||
849 | </eAnnotations> | ||
850 | </eClassifiers> | ||
851 | <eClassifiers xsi:type="ecore:EClass" name="EStringToStringMapEntry" instanceClassName="java.util.Map$Entry"> | ||
852 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
853 | <details key="name" value="EStringToStringMapEntry"/> | ||
854 | <details key="kind" value="empty"/> | ||
855 | </eAnnotations> | ||
856 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="key" eType="#//EString"> | ||
857 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
858 | <details key="kind" value="attribute"/> | ||
859 | <details key="name" value="key"/> | ||
860 | </eAnnotations> | ||
861 | </eStructuralFeatures> | ||
862 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" eType="#//EString"> | ||
863 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
864 | <details key="kind" value="attribute"/> | ||
865 | <details key="name" value="value"/> | ||
866 | </eAnnotations> | ||
867 | </eStructuralFeatures> | ||
868 | </eClassifiers> | ||
869 | <eClassifiers xsi:type="ecore:EClass" name="EStructuralFeature" abstract="true" | ||
870 | eSuperTypes="#//ETypedElement"> | ||
871 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
872 | <details key="name" value="EStructuralFeature"/> | ||
873 | <details key="kind" value="elementOnly"/> | ||
874 | </eAnnotations> | ||
875 | <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore"> | ||
876 | <details key="constraints" value="ValidDefaultValueLiteral"/> | ||
877 | </eAnnotations> | ||
878 | <eOperations name="getFeatureID" eType="#//EInt"/> | ||
879 | <eOperations name="getContainerClass"> | ||
880 | <eGenericType eClassifier="#//EJavaClass"> | ||
881 | <eTypeArguments/> | ||
882 | </eGenericType> | ||
883 | </eOperations> | ||
884 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="changeable" eType="#//EBoolean" | ||
885 | defaultValueLiteral="true"> | ||
886 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
887 | <details key="kind" value="attribute"/> | ||
888 | <details key="name" value="changeable"/> | ||
889 | </eAnnotations> | ||
890 | </eStructuralFeatures> | ||
891 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="defaultValue" eType="#//EJavaObject" | ||
892 | changeable="false" volatile="true" transient="true" derived="true"> | ||
893 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
894 | <details key="kind" value="attribute"/> | ||
895 | <details key="name" value="defaultValue"/> | ||
896 | </eAnnotations> | ||
897 | </eStructuralFeatures> | ||
898 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="defaultValueLiteral" eType="#//EString"> | ||
899 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
900 | <details key="kind" value="attribute"/> | ||
901 | <details key="name" value="defaultValueLiteral"/> | ||
902 | </eAnnotations> | ||
903 | </eStructuralFeatures> | ||
904 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="derived" eType="#//EBoolean"> | ||
905 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
906 | <details key="kind" value="attribute"/> | ||
907 | <details key="name" value="derived"/> | ||
908 | </eAnnotations> | ||
909 | </eStructuralFeatures> | ||
910 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="transient" eType="#//EBoolean"> | ||
911 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
912 | <details key="kind" value="attribute"/> | ||
913 | <details key="name" value="transient"/> | ||
914 | </eAnnotations> | ||
915 | </eStructuralFeatures> | ||
916 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="unsettable" eType="#//EBoolean"> | ||
917 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
918 | <details key="kind" value="attribute"/> | ||
919 | <details key="name" value="unsettable"/> | ||
920 | </eAnnotations> | ||
921 | </eStructuralFeatures> | ||
922 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="volatile" eType="#//EBoolean"> | ||
923 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
924 | <details key="kind" value="attribute"/> | ||
925 | <details key="name" value="volatile"/> | ||
926 | </eAnnotations> | ||
927 | </eStructuralFeatures> | ||
928 | <eStructuralFeatures xsi:type="ecore:EReference" name="eContainingClass" eType="#//EClass" | ||
929 | transient="true" eOpposite="#//EClass/eStructuralFeatures"/> | ||
930 | </eClassifiers> | ||
931 | <eClassifiers xsi:type="ecore:EDataType" name="ETreeIterator" instanceClassName="org.eclipse.emf.common.util.TreeIterator" | ||
932 | serializable="false"> | ||
933 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
934 | <details key="name" value="ETreeIterator"/> | ||
935 | </eAnnotations> | ||
936 | <eTypeParameters name="E"/> | ||
937 | </eClassifiers> | ||
938 | <eClassifiers xsi:type="ecore:EClass" name="ETypedElement" abstract="true" eSuperTypes="#//ENamedElement"> | ||
939 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
940 | <details key="name" value="ETypedElement"/> | ||
941 | <details key="kind" value="elementOnly"/> | ||
942 | </eAnnotations> | ||
943 | <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore"> | ||
944 | <details key="constraints" value="ValidLowerBound ValidUpperBound ConsistentBounds ValidType"/> | ||
945 | </eAnnotations> | ||
946 | <eStructuralFeatures xsi:type="ecore:EReference" name="eGenericType" eType="#//EGenericType" | ||
947 | volatile="true" unsettable="true" containment="true" resolveProxies="false"> | ||
948 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
949 | <details key="kind" value="element"/> | ||
950 | <details key="name" value="eGenericType"/> | ||
951 | </eAnnotations> | ||
952 | <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> | ||
953 | <details key="suppressedIsSetVisibility" value="true"/> | ||
954 | <details key="suppressedUnsetVisibility" value="true"/> | ||
955 | </eAnnotations> | ||
956 | </eStructuralFeatures> | ||
957 | <eStructuralFeatures xsi:type="ecore:EReference" name="eType" eType="#//EClassifier" | ||
958 | volatile="true" unsettable="true"> | ||
959 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
960 | <details key="kind" value="attribute"/> | ||
961 | <details key="name" value="eType"/> | ||
962 | </eAnnotations> | ||
963 | <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> | ||
964 | <details key="suppressedIsSetVisibility" value="true"/> | ||
965 | <details key="suppressedUnsetVisibility" value="true"/> | ||
966 | </eAnnotations> | ||
967 | </eStructuralFeatures> | ||
968 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="lowerBound" eType="#//EInt"> | ||
969 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
970 | <details key="kind" value="attribute"/> | ||
971 | <details key="name" value="lowerBound"/> | ||
972 | </eAnnotations> | ||
973 | </eStructuralFeatures> | ||
974 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="many" eType="#//EBoolean" | ||
975 | changeable="false" volatile="true" transient="true" derived="true"> | ||
976 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
977 | <details key="kind" value="attribute"/> | ||
978 | <details key="name" value="many"/> | ||
979 | </eAnnotations> | ||
980 | </eStructuralFeatures> | ||
981 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="ordered" eType="#//EBoolean" | ||
982 | defaultValueLiteral="true"> | ||
983 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
984 | <details key="kind" value="attribute"/> | ||
985 | <details key="name" value="ordered"/> | ||
986 | </eAnnotations> | ||
987 | </eStructuralFeatures> | ||
988 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="required" eType="#//EBoolean" | ||
989 | changeable="false" volatile="true" transient="true" derived="true"> | ||
990 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
991 | <details key="kind" value="attribute"/> | ||
992 | <details key="name" value="required"/> | ||
993 | </eAnnotations> | ||
994 | </eStructuralFeatures> | ||
995 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="unique" eType="#//EBoolean" | ||
996 | defaultValueLiteral="true"> | ||
997 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
998 | <details key="kind" value="attribute"/> | ||
999 | <details key="name" value="unique"/> | ||
1000 | </eAnnotations> | ||
1001 | </eStructuralFeatures> | ||
1002 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="upperBound" eType="#//EInt" | ||
1003 | defaultValueLiteral="1"> | ||
1004 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
1005 | <details key="kind" value="attribute"/> | ||
1006 | <details key="name" value="upperBound"/> | ||
1007 | </eAnnotations> | ||
1008 | </eStructuralFeatures> | ||
1009 | </eClassifiers> | ||
1010 | <eClassifiers xsi:type="ecore:EClass" name="ETypeParameter" eSuperTypes="#//ENamedElement"> | ||
1011 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
1012 | <details key="name" value="ETypeParameter"/> | ||
1013 | <details key="kind" value="elementOnly"/> | ||
1014 | </eAnnotations> | ||
1015 | <eStructuralFeatures xsi:type="ecore:EReference" name="eBounds" upperBound="-1" | ||
1016 | eType="#//EGenericType" containment="true" resolveProxies="false"> | ||
1017 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
1018 | <details key="kind" value="element"/> | ||
1019 | <details key="name" value="eBounds"/> | ||
1020 | </eAnnotations> | ||
1021 | </eStructuralFeatures> | ||
1022 | </eClassifiers> | ||
1023 | </ecore:EPackage> | ||
diff --git a/Metrics/Metrics-Calculation/SocialNetwork_plugin/model/socialnetwork.aird b/Metrics/Metrics-Calculation/SocialNetwork_plugin/model/socialnetwork.aird new file mode 100644 index 00000000..e7e28ecd --- /dev/null +++ b/Metrics/Metrics-Calculation/SocialNetwork_plugin/model/socialnetwork.aird | |||
@@ -0,0 +1,183 @@ | |||
1 | <?xml version="1.0" encoding="UTF-8"?> | ||
2 | <xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:description="http://www.eclipse.org/sirius/description/1.1.0" xmlns:description_1="http://www.eclipse.org/sirius/diagram/description/1.1.0" xmlns:diagram="http://www.eclipse.org/sirius/diagram/1.1.0" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmlns:style="http://www.eclipse.org/sirius/diagram/description/style/1.1.0" xmlns:viewpoint="http://www.eclipse.org/sirius/1.1.0" xsi:schemaLocation="http://www.eclipse.org/sirius/description/1.1.0 http://www.eclipse.org/sirius/1.1.0#//description http://www.eclipse.org/sirius/diagram/description/1.1.0 http://www.eclipse.org/sirius/diagram/1.1.0#//description http://www.eclipse.org/sirius/diagram/description/style/1.1.0 http://www.eclipse.org/sirius/diagram/1.1.0#//description/style"> | ||
3 | <viewpoint:DAnalysis uid="_TZr30HA1EemKP426GDjFOg" selectedViews="_Ta8cEHA1EemKP426GDjFOg" version="14.1.0.201810161215"> | ||
4 | <semanticResources>socialnetwork.ecore</semanticResources> | ||
5 | <semanticResources>socialnetwork.genmodel</semanticResources> | ||
6 | <ownedViews xmi:type="viewpoint:DView" uid="_Ta8cEHA1EemKP426GDjFOg"> | ||
7 | <viewpoint xmi:type="description:Viewpoint" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']"/> | ||
8 | <ownedRepresentationDescriptors xmi:type="viewpoint:DRepresentationDescriptor" uid="_TbTBZXA1EemKP426GDjFOg" name="socialnetwork" repPath="#_TbTBYHA1EemKP426GDjFOg"> | ||
9 | <description xmi:type="description_1:DiagramDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']"/> | ||
10 | <target xmi:type="ecore:EPackage" href="socialnetwork.ecore#/"/> | ||
11 | </ownedRepresentationDescriptors> | ||
12 | </ownedViews> | ||
13 | </viewpoint:DAnalysis> | ||
14 | <diagram:DSemanticDiagram uid="_TbTBYHA1EemKP426GDjFOg" name="socialnetwork"> | ||
15 | <ownedAnnotationEntries xmi:type="description:AnnotationEntry" uid="_TbTBYXA1EemKP426GDjFOg" source="DANNOTATION_CUSTOMIZATION_KEY"> | ||
16 | <data xmi:type="diagram:ComputedStyleDescriptionRegistry" uid="_TbTBYnA1EemKP426GDjFOg"> | ||
17 | <computedStyleDescriptions xmi:type="style:EdgeStyleDescription" xmi:id="_ZZkWoHA1EemKP426GDjFOg" sourceArrow="FillDiamond" routingStyle="manhattan"> | ||
18 | <strokeColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> | ||
19 | <centerLabelStyleDescription xmi:type="style:CenterLabelStyleDescription" xmi:id="_ZZkWoXA1EemKP426GDjFOg" showIcon="false" labelExpression="service:render"> | ||
20 | <labelColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/> | ||
21 | </centerLabelStyleDescription> | ||
22 | <endLabelStyleDescription xmi:type="style:EndLabelStyleDescription" xmi:id="_ZZkWonA1EemKP426GDjFOg" labelSize="6" showIcon="false" labelExpression="service:eKeysLabel"> | ||
23 | <labelColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='dark_blue']"/> | ||
24 | </endLabelStyleDescription> | ||
25 | </computedStyleDescriptions> | ||
26 | </data> | ||
27 | </ownedAnnotationEntries> | ||
28 | <ownedAnnotationEntries xmi:type="description:AnnotationEntry" uid="_TbTBZnA1EemKP426GDjFOg" source="GMF_DIAGRAMS"> | ||
29 | <data xmi:type="notation:Diagram" xmi:id="_TbTBZ3A1EemKP426GDjFOg" type="Sirius" element="_TbTBYHA1EemKP426GDjFOg" measurementUnit="Pixel"> | ||
30 | <children xmi:type="notation:Node" xmi:id="_Ur9YAHA1EemKP426GDjFOg" type="2003" element="_Ur5GkHA1EemKP426GDjFOg"> | ||
31 | <children xmi:type="notation:Node" xmi:id="_Ur9YA3A1EemKP426GDjFOg" type="5007"/> | ||
32 | <children xmi:type="notation:Node" xmi:id="_Ur9YBHA1EemKP426GDjFOg" type="7004"> | ||
33 | <children xmi:type="notation:Node" xmi:id="_W_L-4HA1EemKP426GDjFOg" type="3010" element="_W_DcAHA1EemKP426GDjFOg"> | ||
34 | <styles xmi:type="notation:FontStyle" xmi:id="_W_L-4XA1EemKP426GDjFOg" fontColor="2697711" fontName="Segoe UI" fontHeight="8"/> | ||
35 | <layoutConstraint xmi:type="notation:Location" xmi:id="_W_L-4nA1EemKP426GDjFOg"/> | ||
36 | </children> | ||
37 | <styles xmi:type="notation:SortingStyle" xmi:id="_Ur9YBXA1EemKP426GDjFOg"/> | ||
38 | <styles xmi:type="notation:FilteringStyle" xmi:id="_Ur9YBnA1EemKP426GDjFOg"/> | ||
39 | </children> | ||
40 | <styles xmi:type="notation:ShapeStyle" xmi:id="_Ur9YAXA1EemKP426GDjFOg" fontName="Segoe UI" fontHeight="8"/> | ||
41 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Ur9YAnA1EemKP426GDjFOg" x="285" y="165" width="120" height="100"/> | ||
42 | </children> | ||
43 | <children xmi:type="notation:Node" xmi:id="_X2ASIHA1EemKP426GDjFOg" type="2003" element="_X14WUHA1EemKP426GDjFOg"> | ||
44 | <children xmi:type="notation:Node" xmi:id="_X2A5MHA1EemKP426GDjFOg" type="5007"/> | ||
45 | <children xmi:type="notation:Node" xmi:id="_X2A5MXA1EemKP426GDjFOg" type="7004"> | ||
46 | <children xmi:type="notation:Node" xmi:id="_jitw4HA1EemKP426GDjFOg" type="3010" element="_jirUoHA1EemKP426GDjFOg"> | ||
47 | <styles xmi:type="notation:FontStyle" xmi:id="_jitw4XA1EemKP426GDjFOg" fontColor="2697711" fontName="Segoe UI" fontHeight="8"/> | ||
48 | <layoutConstraint xmi:type="notation:Location" xmi:id="_jitw4nA1EemKP426GDjFOg"/> | ||
49 | </children> | ||
50 | <styles xmi:type="notation:SortingStyle" xmi:id="_X2A5MnA1EemKP426GDjFOg"/> | ||
51 | <styles xmi:type="notation:FilteringStyle" xmi:id="_X2A5M3A1EemKP426GDjFOg"/> | ||
52 | </children> | ||
53 | <styles xmi:type="notation:ShapeStyle" xmi:id="_X2ASIXA1EemKP426GDjFOg" fontName="Segoe UI" fontHeight="8"/> | ||
54 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_X2ASInA1EemKP426GDjFOg" x="690" y="180" width="120" height="100"/> | ||
55 | </children> | ||
56 | <styles xmi:type="notation:DiagramStyle" xmi:id="_TbTBaHA1EemKP426GDjFOg"/> | ||
57 | <edges xmi:type="notation:Edge" xmi:id="_ZZnZ8HA1EemKP426GDjFOg" type="4001" element="_ZZjvkHA1EemKP426GDjFOg" source="_Ur9YAHA1EemKP426GDjFOg" target="_X2ASIHA1EemKP426GDjFOg"> | ||
58 | <children xmi:type="notation:Node" xmi:id="_ZZnZ9HA1EemKP426GDjFOg" type="6001"> | ||
59 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZZnZ9XA1EemKP426GDjFOg" x="6" y="10"/> | ||
60 | </children> | ||
61 | <children xmi:type="notation:Node" xmi:id="_ZZnZ9nA1EemKP426GDjFOg" type="6002"> | ||
62 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZZnZ93A1EemKP426GDjFOg" x="1" y="10"/> | ||
63 | </children> | ||
64 | <children xmi:type="notation:Node" xmi:id="_ZZnZ-HA1EemKP426GDjFOg" type="6003"> | ||
65 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZZnZ-XA1EemKP426GDjFOg" x="-1" y="10"/> | ||
66 | </children> | ||
67 | <styles xmi:type="notation:ConnectorStyle" xmi:id="_ZZnZ8XA1EemKP426GDjFOg" routing="Rectilinear"/> | ||
68 | <styles xmi:type="notation:FontStyle" xmi:id="_ZZnZ8nA1EemKP426GDjFOg" fontColor="7490599" fontName="Segoe UI" fontHeight="8"/> | ||
69 | <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_ZZnZ83A1EemKP426GDjFOg" points="[0, 0, -287, 4]$[143, 0, -144, 4]$[143, -4, -144, 0]$[287, -4, 0, 0]"/> | ||
70 | <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_ZZnZ-nA1EemKP426GDjFOg" id="(1.0,0.5)"/> | ||
71 | <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_ZZnZ-3A1EemKP426GDjFOg" id="(0.0,0.30612244897959184)"/> | ||
72 | </edges> | ||
73 | <edges xmi:type="notation:Edge" xmi:id="_f8gfMHA1EemKP426GDjFOg" type="4001" element="_f8eC8HA1EemKP426GDjFOg" source="_X2ASIHA1EemKP426GDjFOg" target="_X2ASIHA1EemKP426GDjFOg"> | ||
74 | <children xmi:type="notation:Node" xmi:id="_f8gfNHA1EemKP426GDjFOg" type="6001"> | ||
75 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_f8gfNXA1EemKP426GDjFOg" x="-8" y="7"/> | ||
76 | </children> | ||
77 | <children xmi:type="notation:Node" xmi:id="_f8hGQHA1EemKP426GDjFOg" type="6002"> | ||
78 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_f8hGQXA1EemKP426GDjFOg" x="12" y="10"/> | ||
79 | </children> | ||
80 | <children xmi:type="notation:Node" xmi:id="_f8hGQnA1EemKP426GDjFOg" type="6003"> | ||
81 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_f8hGQ3A1EemKP426GDjFOg" y="-10"/> | ||
82 | </children> | ||
83 | <styles xmi:type="notation:ConnectorStyle" xmi:id="_f8gfMXA1EemKP426GDjFOg" routing="Rectilinear"/> | ||
84 | <styles xmi:type="notation:FontStyle" xmi:id="_f8gfMnA1EemKP426GDjFOg" fontColor="7490599" fontName="Segoe UI" fontHeight="8"/> | ||
85 | <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_f8gfM3A1EemKP426GDjFOg" points="[4, 1, 0, -21]$[51, 1, 47, -21]$[51, -53, 47, -75]$[-25, -53, -29, -75]$[-25, -8, -29, -30]"/> | ||
86 | <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_f8hGRHA1EemKP426GDjFOg" id="(0.9666666666666667,0.09)"/> | ||
87 | <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_f8hGRXA1EemKP426GDjFOg" id="(1.0,0.30612244897959184)"/> | ||
88 | </edges> | ||
89 | <edges xmi:type="notation:Edge" xmi:id="_eUOggHA6EemKP426GDjFOg" type="4001" element="_eULdMHA6EemKP426GDjFOg" source="_X2ASIHA1EemKP426GDjFOg" target="_X2ASIHA1EemKP426GDjFOg"> | ||
90 | <children xmi:type="notation:Node" xmi:id="_eUOghHA6EemKP426GDjFOg" type="6001"> | ||
91 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_eUOghXA6EemKP426GDjFOg" y="-10"/> | ||
92 | </children> | ||
93 | <children xmi:type="notation:Node" xmi:id="_eUOghnA6EemKP426GDjFOg" type="6002"> | ||
94 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_eUOgh3A6EemKP426GDjFOg" y="10"/> | ||
95 | </children> | ||
96 | <children xmi:type="notation:Node" xmi:id="_eUOgiHA6EemKP426GDjFOg" type="6003"> | ||
97 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_eUOgiXA6EemKP426GDjFOg" y="10"/> | ||
98 | </children> | ||
99 | <styles xmi:type="notation:ConnectorStyle" xmi:id="_eUOggXA6EemKP426GDjFOg" routing="Rectilinear"/> | ||
100 | <styles xmi:type="notation:FontStyle" xmi:id="_eUOggnA6EemKP426GDjFOg" fontName="Segoe UI" fontHeight="8"/> | ||
101 | <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_eUOgg3A6EemKP426GDjFOg" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/> | ||
102 | <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_eUOginA6EemKP426GDjFOg" id="(0.5,0.5)"/> | ||
103 | <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_eUOgi3A6EemKP426GDjFOg" id="(0.5,0.5)"/> | ||
104 | </edges> | ||
105 | </data> | ||
106 | </ownedAnnotationEntries> | ||
107 | <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_Ur5GkHA1EemKP426GDjFOg" name="SocialNetwork" tooltipText="" outgoingEdges="_ZZjvkHA1EemKP426GDjFOg" width="12" height="10"> | ||
108 | <target xmi:type="ecore:EClass" href="socialnetwork.ecore#//SocialNetwork"/> | ||
109 | <semanticElements xmi:type="ecore:EClass" href="socialnetwork.ecore#//SocialNetwork"/> | ||
110 | <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_XY_mAHA1EemKP426GDjFOg" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216"> | ||
111 | <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/> | ||
112 | </ownedStyle> | ||
113 | <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/> | ||
114 | <ownedElements xmi:type="diagram:DNodeListElement" uid="_W_DcAHA1EemKP426GDjFOg" name="name : EString" tooltipText=""> | ||
115 | <target xmi:type="ecore:EAttribute" href="socialnetwork.ecore#//SocialNetwork/name"/> | ||
116 | <semanticElements xmi:type="ecore:EAttribute" href="socialnetwork.ecore#//SocialNetwork/name"/> | ||
117 | <ownedStyle xmi:type="diagram:BundledImage" uid="_XZANEHA1EemKP426GDjFOg" labelAlignment="LEFT"> | ||
118 | <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/> | ||
119 | </ownedStyle> | ||
120 | <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/> | ||
121 | </ownedElements> | ||
122 | </ownedDiagramElements> | ||
123 | <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_X14WUHA1EemKP426GDjFOg" name="Person" tooltipText="" outgoingEdges="_f8eC8HA1EemKP426GDjFOg _eULdMHA6EemKP426GDjFOg" incomingEdges="_ZZjvkHA1EemKP426GDjFOg _f8eC8HA1EemKP426GDjFOg _eULdMHA6EemKP426GDjFOg" width="12" height="10"> | ||
124 | <target xmi:type="ecore:EClass" href="socialnetwork.ecore#//Person"/> | ||
125 | <semanticElements xmi:type="ecore:EClass" href="socialnetwork.ecore#//Person"/> | ||
126 | <arrangeConstraints>KEEP_LOCATION</arrangeConstraints> | ||
127 | <arrangeConstraints>KEEP_SIZE</arrangeConstraints> | ||
128 | <arrangeConstraints>KEEP_RATIO</arrangeConstraints> | ||
129 | <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_kAhuQHA1EemKP426GDjFOg" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216"> | ||
130 | <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/> | ||
131 | </ownedStyle> | ||
132 | <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/> | ||
133 | <ownedElements xmi:type="diagram:DNodeListElement" uid="_jirUoHA1EemKP426GDjFOg" name="name : EString" tooltipText=""> | ||
134 | <target xmi:type="ecore:EAttribute" href="socialnetwork.ecore#//Person/name"/> | ||
135 | <semanticElements xmi:type="ecore:EAttribute" href="socialnetwork.ecore#//Person/name"/> | ||
136 | <ownedStyle xmi:type="diagram:BundledImage" uid="_kAiVUHA1EemKP426GDjFOg" labelAlignment="LEFT"> | ||
137 | <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/> | ||
138 | </ownedStyle> | ||
139 | <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/> | ||
140 | </ownedElements> | ||
141 | </ownedDiagramElements> | ||
142 | <ownedDiagramElements xmi:type="diagram:DEdge" uid="_ZZjvkHA1EemKP426GDjFOg" name="[0..*] persons" sourceNode="_Ur5GkHA1EemKP426GDjFOg" targetNode="_X14WUHA1EemKP426GDjFOg"> | ||
143 | <target xmi:type="ecore:EReference" href="socialnetwork.ecore#//SocialNetwork/persons"/> | ||
144 | <semanticElements xmi:type="ecore:EReference" href="socialnetwork.ecore#//SocialNetwork/persons"/> | ||
145 | <ownedStyle xmi:type="diagram:EdgeStyle" uid="_ZZkWo3A1EemKP426GDjFOg" description="_ZZkWoHA1EemKP426GDjFOg" sourceArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0"> | ||
146 | <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_ZZkWpHA1EemKP426GDjFOg" showIcon="false"> | ||
147 | <customFeatures>labelSize</customFeatures> | ||
148 | </centerLabelStyle> | ||
149 | <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_ZZkWpXA1EemKP426GDjFOg" showIcon="false" labelColor="39,76,114"> | ||
150 | <customFeatures>labelSize</customFeatures> | ||
151 | </endLabelStyle> | ||
152 | </ownedStyle> | ||
153 | <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/> | ||
154 | </ownedDiagramElements> | ||
155 | <ownedDiagramElements xmi:type="diagram:DEdge" uid="_f8eC8HA1EemKP426GDjFOg" name="[0..*] friends" sourceNode="_X14WUHA1EemKP426GDjFOg" targetNode="_X14WUHA1EemKP426GDjFOg"> | ||
156 | <target xmi:type="ecore:EReference" href="socialnetwork.ecore#//Person/friends"/> | ||
157 | <semanticElements xmi:type="ecore:EReference" href="socialnetwork.ecore#//Person/friends"/> | ||
158 | <ownedStyle xmi:type="diagram:EdgeStyle" uid="_erMusHA9EemKP426GDjFOg" routingStyle="manhattan" strokeColor="0,0,0"> | ||
159 | <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']/@style"/> | ||
160 | <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_erMusXA9EemKP426GDjFOg" showIcon="false"/> | ||
161 | <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_erMusnA9EemKP426GDjFOg" labelSize="6" showIcon="false" labelColor="39,76,114"/> | ||
162 | </ownedStyle> | ||
163 | <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/> | ||
164 | </ownedDiagramElements> | ||
165 | <ownedDiagramElements xmi:type="diagram:DEdge" uid="_eULdMHA6EemKP426GDjFOg" sourceNode="_X14WUHA1EemKP426GDjFOg" targetNode="_X14WUHA1EemKP426GDjFOg" beginLabel="[0..*] children" endLabel="[0..2] parents"> | ||
166 | <target xmi:type="ecore:EReference" href="socialnetwork.ecore#//Person/parents"/> | ||
167 | <semanticElements xmi:type="ecore:EReference" href="socialnetwork.ecore#//Person/children"/> | ||
168 | <semanticElements xmi:type="ecore:EReference" href="socialnetwork.ecore#//Person/parents"/> | ||
169 | <ownedStyle xmi:type="diagram:EdgeStyle" uid="_eUMEQHA6EemKP426GDjFOg" sourceArrow="InputArrow" routingStyle="manhattan" strokeColor="0,0,0"> | ||
170 | <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='Bi-directional%20EC_EReference%20']/@style"/> | ||
171 | <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_eUMEQXA6EemKP426GDjFOg" showIcon="false"/> | ||
172 | <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_eUMEQnA6EemKP426GDjFOg" showIcon="false"/> | ||
173 | </ownedStyle> | ||
174 | <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='Bi-directional%20EC_EReference%20']"/> | ||
175 | </ownedDiagramElements> | ||
176 | <description xmi:type="description_1:DiagramDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']"/> | ||
177 | <filterVariableHistory xmi:type="diagram:FilterVariableHistory" uid="_TbTBZHA1EemKP426GDjFOg"/> | ||
178 | <activatedLayers xmi:type="description_1:Layer" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer"/> | ||
179 | <activatedLayers xmi:type="description_1:AdditionalLayer" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@additionalLayers[name='Package']"/> | ||
180 | <activatedLayers xmi:type="description_1:AdditionalLayer" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@additionalLayers[name='Validation']"/> | ||
181 | <target xmi:type="ecore:EPackage" href="socialnetwork.ecore#/"/> | ||
182 | </diagram:DSemanticDiagram> | ||
183 | </xmi:XMI> | ||
diff --git a/Metrics/Metrics-Calculation/SocialNetwork_plugin/model/socialnetwork.ecore b/Metrics/Metrics-Calculation/SocialNetwork_plugin/model/socialnetwork.ecore new file mode 100644 index 00000000..cacf9921 --- /dev/null +++ b/Metrics/Metrics-Calculation/SocialNetwork_plugin/model/socialnetwork.ecore | |||
@@ -0,0 +1,17 @@ | |||
1 | <?xml version="1.0" encoding="UTF-8"?> | ||
2 | <ecore:EPackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" | ||
3 | xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="socialnetwork" nsURI="http://ecse.mcgill.ca/socialnetwork" nsPrefix="socialnetwork"> | ||
4 | <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore"/> | ||
5 | <eClassifiers xsi:type="ecore:EClass" name="SocialNetwork"> | ||
6 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString" | ||
7 | defaultValueLiteral="SocialNetwork"/> | ||
8 | <eStructuralFeatures xsi:type="ecore:EReference" name="persons" upperBound="-1" | ||
9 | eType="#//Person" containment="true"/> | ||
10 | </eClassifiers> | ||
11 | <eClassifiers xsi:type="ecore:EClass" name="Person"> | ||
12 | <eStructuralFeatures xsi:type="ecore:EReference" name="friends" upperBound="-1" | ||
13 | eType="#//Person"/> | ||
14 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString" | ||
15 | defaultValueLiteral="Name"/> | ||
16 | </eClassifiers> | ||
17 | </ecore:EPackage> | ||
diff --git a/Metrics/Metrics-Calculation/SocialNetwork_plugin/model/socialnetwork.genmodel b/Metrics/Metrics-Calculation/SocialNetwork_plugin/model/socialnetwork.genmodel new file mode 100644 index 00000000..c9515653 --- /dev/null +++ b/Metrics/Metrics-Calculation/SocialNetwork_plugin/model/socialnetwork.genmodel | |||
@@ -0,0 +1,21 @@ | |||
1 | <?xml version="1.0" encoding="UTF-8"?> | ||
2 | <genmodel:GenModel xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" | ||
3 | xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:genmodel="http://www.eclipse.org/emf/2002/GenModel" | ||
4 | modelDirectory="/SocialNetwork_plugin/encore_gen" creationIcons="false" | ||
5 | editDirectory="/ca.mcgill.ecse.socialnetwork.edit/src-gen" editorDirectory="/ca.mcgill.ecse.socialnetwork.editor/src-gen" | ||
6 | modelPluginID="SocialNetwork_plugin" modelName="Socialnetwork" rootExtendsClass="org.eclipse.emf.ecore.impl.MinimalEObjectImpl$Container" | ||
7 | codeFormatting="true" importerID="org.eclipse.emf.importer.ecore" complianceLevel="8.0" | ||
8 | copyrightFields="false" operationReflection="true" importOrganizing="true"> | ||
9 | <foreignModel>socialnetwork.ecore</foreignModel> | ||
10 | <testsDirectory xsi:nil="true"/> | ||
11 | <genPackages prefix="Socialnetwork" disposableProviderFactory="true" ecorePackage="socialnetwork.ecore#/"> | ||
12 | <genClasses ecoreClass="socialnetwork.ecore#//SocialNetwork"> | ||
13 | <genFeatures createChild="false" ecoreFeature="ecore:EAttribute socialnetwork.ecore#//SocialNetwork/name"/> | ||
14 | <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference socialnetwork.ecore#//SocialNetwork/persons"/> | ||
15 | </genClasses> | ||
16 | <genClasses ecoreClass="socialnetwork.ecore#//Person"> | ||
17 | <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference socialnetwork.ecore#//Person/friends"/> | ||
18 | <genFeatures createChild="false" ecoreFeature="ecore:EAttribute socialnetwork.ecore#//Person/name"/> | ||
19 | </genClasses> | ||
20 | </genPackages> | ||
21 | </genmodel:GenModel> | ||
diff --git a/Metrics/Metrics-Calculation/SocialNetwork_plugin/model/statistics/200_nodes.jpg b/Metrics/Metrics-Calculation/SocialNetwork_plugin/model/statistics/200_nodes.jpg new file mode 100644 index 00000000..a35c291b --- /dev/null +++ b/Metrics/Metrics-Calculation/SocialNetwork_plugin/model/statistics/200_nodes.jpg | |||
Binary files differ | |||
diff --git a/Metrics/Metrics-Calculation/SocialNetwork_plugin/model/statistics/220_nodes.jpg b/Metrics/Metrics-Calculation/SocialNetwork_plugin/model/statistics/220_nodes.jpg new file mode 100644 index 00000000..4d41dff7 --- /dev/null +++ b/Metrics/Metrics-Calculation/SocialNetwork_plugin/model/statistics/220_nodes.jpg | |||
Binary files differ | |||
diff --git a/Metrics/Metrics-Calculation/SocialNetwork_plugin/model/statistics/260_nodes.jpg b/Metrics/Metrics-Calculation/SocialNetwork_plugin/model/statistics/260_nodes.jpg new file mode 100644 index 00000000..b16cdfb2 --- /dev/null +++ b/Metrics/Metrics-Calculation/SocialNetwork_plugin/model/statistics/260_nodes.jpg | |||
Binary files differ | |||
diff --git a/Metrics/Metrics-Calculation/SocialNetwork_plugin/model/statistics/280_nodes.jpg b/Metrics/Metrics-Calculation/SocialNetwork_plugin/model/statistics/280_nodes.jpg new file mode 100644 index 00000000..16c0ee23 --- /dev/null +++ b/Metrics/Metrics-Calculation/SocialNetwork_plugin/model/statistics/280_nodes.jpg | |||
Binary files differ | |||
diff --git a/Metrics/Metrics-Calculation/SocialNetwork_plugin/model/statistics/output.txt b/Metrics/Metrics-Calculation/SocialNetwork_plugin/model/statistics/output.txt new file mode 100644 index 00000000..35158e20 --- /dev/null +++ b/Metrics/Metrics-Calculation/SocialNetwork_plugin/model/statistics/output.txt | |||
@@ -0,0 +1,300 @@ | |||
1 | 1 | ||
2 | 9 | ||
3 | 7 | ||
4 | 0 | ||
5 | 4 | ||
6 | 6 | ||
7 | 16 | ||
8 | 0 | ||
9 | 2 | ||
10 | 4 | ||
11 | 17 | ||
12 | 20 | ||
13 | 1 | ||
14 | 5 | ||
15 | 2 | ||
16 | 3 | ||
17 | 11 | ||
18 | 6 | ||
19 | 4 | ||
20 | 0 | ||
21 | 2 | ||
22 | 1 | ||
23 | 3 | ||
24 | 5 | ||
25 | 9 | ||
26 | 13 | ||
27 | 11 | ||
28 | 0 | ||
29 | 1 | ||
30 | 10 | ||
31 | 3 | ||
32 | 0 | ||
33 | 1 | ||
34 | 1 | ||
35 | 0 | ||
36 | 17 | ||
37 | 0 | ||
38 | 4 | ||
39 | 2 | ||
40 | 0 | ||
41 | 1 | ||
42 | 10 | ||
43 | 10 | ||
44 | 0 | ||
45 | 24 | ||
46 | 9 | ||
47 | 0 | ||
48 | 14 | ||
49 | 1 | ||
50 | 11 | ||
51 | 2 | ||
52 | 17 | ||
53 | 3 | ||
54 | 3 | ||
55 | 3 | ||
56 | 0 | ||
57 | 3 | ||
58 | 1 | ||
59 | 3 | ||
60 | 2 | ||
61 | 2 | ||
62 | 1 | ||
63 | 0 | ||
64 | 3 | ||
65 | 6 | ||
66 | 3 | ||
67 | 16 | ||
68 | 3 | ||
69 | 10 | ||
70 | 6 | ||
71 | 6 | ||
72 | 6 | ||
73 | 11 | ||
74 | 6 | ||
75 | 10 | ||
76 | 20 | ||
77 | 1 | ||
78 | 4 | ||
79 | 13 | ||
80 | 0 | ||
81 | 0 | ||
82 | 3 | ||
83 | 2 | ||
84 | 0 | ||
85 | 12 | ||
86 | 0 | ||
87 | 0 | ||
88 | 22 | ||
89 | 4 | ||
90 | 0 | ||
91 | 0 | ||
92 | 20 | ||
93 | 1 | ||
94 | 10 | ||
95 | 9 | ||
96 | 11 | ||
97 | 5 | ||
98 | 27 | ||
99 | 1 | ||
100 | 3 | ||
101 | 9 | ||
102 | 0 | ||
103 | 23 | ||
104 | 10 | ||
105 | 9 | ||
106 | 23 | ||
107 | 0 | ||
108 | 3 | ||
109 | 7 | ||
110 | 2 | ||
111 | 0 | ||
112 | 9 | ||
113 | 3 | ||
114 | 0 | ||
115 | 12 | ||
116 | 11 | ||
117 | 7 | ||
118 | 6 | ||
119 | 9 | ||
120 | 2 | ||
121 | 0 | ||
122 | 3 | ||
123 | 4 | ||
124 | 3 | ||
125 | 9 | ||
126 | 3 | ||
127 | 0 | ||
128 | 7 | ||
129 | 2 | ||
130 | 1 | ||
131 | 9 | ||
132 | 1 | ||
133 | 11 | ||
134 | 6 | ||
135 | 5 | ||
136 | 16 | ||
137 | 0 | ||
138 | 19 | ||
139 | 14 | ||
140 | 9 | ||
141 | 13 | ||
142 | 2 | ||
143 | 8 | ||
144 | 0 | ||
145 | 6 | ||
146 | 1 | ||
147 | 1 | ||
148 | 2 | ||
149 | 0 | ||
150 | 3 | ||
151 | 15 | ||
152 | 3 | ||
153 | 0 | ||
154 | 3 | ||
155 | 17 | ||
156 | 1 | ||
157 | 15 | ||
158 | 5 | ||
159 | 1 | ||
160 | 21 | ||
161 | 8 | ||
162 | 2 | ||
163 | 7 | ||
164 | 3 | ||
165 | 16 | ||
166 | 11 | ||
167 | 1 | ||
168 | 5 | ||
169 | 1 | ||
170 | 5 | ||
171 | 1 | ||
172 | 6 | ||
173 | 3 | ||
174 | 16 | ||
175 | 6 | ||
176 | 17 | ||
177 | 3 | ||
178 | 5 | ||
179 | 7 | ||
180 | 2 | ||
181 | 9 | ||
182 | 2 | ||
183 | 1 | ||
184 | 11 | ||
185 | 1 | ||
186 | 0 | ||
187 | 3 | ||
188 | 5 | ||
189 | 6 | ||
190 | 2 | ||
191 | 5 | ||
192 | 1 | ||
193 | 4 | ||
194 | 9 | ||
195 | 0 | ||
196 | 11 | ||
197 | 1 | ||
198 | 10 | ||
199 | 13 | ||
200 | 6 | ||
201 | 2 | ||
202 | 1 | ||
203 | 3 | ||
204 | 4 | ||
205 | 0 | ||
206 | 1 | ||
207 | 2 | ||
208 | 10 | ||
209 | 12 | ||
210 | 3 | ||
211 | 3 | ||
212 | 3 | ||
213 | 0 | ||
214 | 2 | ||
215 | 4 | ||
216 | 2 | ||
217 | 18 | ||
218 | 3 | ||
219 | 8 | ||
220 | 7 | ||
221 | 5 | ||
222 | 3 | ||
223 | 16 | ||
224 | 1 | ||
225 | 4 | ||
226 | 8 | ||
227 | 15 | ||
228 | 1 | ||
229 | 11 | ||
230 | 15 | ||
231 | 1 | ||
232 | 8 | ||
233 | 7 | ||
234 | 1 | ||
235 | 2 | ||
236 | 0 | ||
237 | 9 | ||
238 | 5 | ||
239 | 2 | ||
240 | 1 | ||
241 | 3 | ||
242 | 6 | ||
243 | 4 | ||
244 | 8 | ||
245 | 3 | ||
246 | 12 | ||
247 | 4 | ||
248 | 21 | ||
249 | 9 | ||
250 | 2 | ||
251 | 3 | ||
252 | 2 | ||
253 | 1 | ||
254 | 3 | ||
255 | 11 | ||
256 | 2 | ||
257 | 9 | ||
258 | 0 | ||
259 | 10 | ||
260 | 6 | ||
261 | 1 | ||
262 | 2 | ||
263 | 0 | ||
264 | 8 | ||
265 | 5 | ||
266 | 2 | ||
267 | 3 | ||
268 | 8 | ||
269 | 1 | ||
270 | 13 | ||
271 | 8 | ||
272 | 2 | ||
273 | 2 | ||
274 | 11 | ||
275 | 4 | ||
276 | 21 | ||
277 | 6 | ||
278 | 5 | ||
279 | 0 | ||
280 | 8 | ||
281 | 8 | ||
282 | 12 | ||
283 | 0 | ||
284 | 0 | ||
285 | 4 | ||
286 | 1 | ||
287 | 19 | ||
288 | 5 | ||
289 | 3 | ||
290 | 1 | ||
291 | 3 | ||
292 | 12 | ||
293 | 2 | ||
294 | 6 | ||
295 | 11 | ||
296 | 8 | ||
297 | 8 | ||
298 | 2 | ||
299 | 18 | ||
300 | 0 | ||
diff --git a/Metrics/Metrics-Calculation/SocialNetwork_plugin/model/statistics/plot_distribution.m b/Metrics/Metrics-Calculation/SocialNetwork_plugin/model/statistics/plot_distribution.m new file mode 100644 index 00000000..4c67a191 --- /dev/null +++ b/Metrics/Metrics-Calculation/SocialNetwork_plugin/model/statistics/plot_distribution.m | |||
@@ -0,0 +1,11 @@ | |||
1 | clear; | ||
2 | clc; | ||
3 | |||
4 | matrix = load('-ascii', "output.txt"); | ||
5 | hist(matrix,unique(matrix)); | ||
6 | hold on; | ||
7 | [a,b] = hist(matrix,unique(matrix)) | ||
8 | plot(b, a) | ||
9 | hold off; | ||
10 | sum(matrix) | ||
11 | average = sum(matrix) / length(matrix) \ No newline at end of file | ||
diff --git a/Metrics/Metrics-Calculation/SocialNetwork_plugin/output/.gitignore b/Metrics/Metrics-Calculation/SocialNetwork_plugin/output/.gitignore new file mode 100644 index 00000000..17126b28 --- /dev/null +++ b/Metrics/Metrics-Calculation/SocialNetwork_plugin/output/.gitignore | |||
@@ -0,0 +1,4 @@ | |||
1 | # ignore everything in this folder except for this folder it self | ||
2 | |||
3 | * | ||
4 | !.gitignore \ No newline at end of file | ||
diff --git a/Metrics/Metrics-Calculation/SocialNetwork_plugin/plugin.properties b/Metrics/Metrics-Calculation/SocialNetwork_plugin/plugin.properties new file mode 100644 index 00000000..a6a0df71 --- /dev/null +++ b/Metrics/Metrics-Calculation/SocialNetwork_plugin/plugin.properties | |||
@@ -0,0 +1,4 @@ | |||
1 | # | ||
2 | |||
3 | pluginName = SocialNetwork_plugin | ||
4 | providerName = www.example.org | ||
diff --git a/Metrics/Metrics-Calculation/SocialNetwork_plugin/plugin.xml b/Metrics/Metrics-Calculation/SocialNetwork_plugin/plugin.xml new file mode 100644 index 00000000..86211808 --- /dev/null +++ b/Metrics/Metrics-Calculation/SocialNetwork_plugin/plugin.xml | |||
@@ -0,0 +1,25 @@ | |||
1 | <?xml version="1.0" encoding="UTF-8"?><?eclipse version="3.0"?><!-- | ||
2 | --><plugin> | ||
3 | <extension point="org.eclipse.emf.ecore.generated_package"> | ||
4 | <!-- @generated socialnetwork --> | ||
5 | <package class="socialnetwork.SocialnetworkPackage" genModel="model/socialnetwork.genmodel" uri="http://ecse.mcgill.ca/socialnetwork"/> | ||
6 | </extension> | ||
7 | <extension id="ca.mcgill.ecse.socialnetwork.plugin.Queries" point="org.eclipse.viatra.query.runtime.queryspecification"> | ||
8 | <group group="org.eclipse.viatra.query.runtime.extensibility.SingletonExtensionFactory:ca.mcgill.ecse.socialnetwork.plugin.Queries" id="ca.mcgill.ecse.socialnetwork.plugin.Queries"> | ||
9 | <query-specification fqn="ca.mcgill.ecse.socialnetwork.plugin.singleFriendship"/> | ||
10 | <query-specification fqn="ca.mcgill.ecse.socialnetwork.plugin.noFriend"/> | ||
11 | <query-specification fqn="ca.mcgill.ecse.socialnetwork.plugin.selfFriend"/> | ||
12 | <query-specification fqn="ca.mcgill.ecse.socialnetwork.plugin.friendship"/> | ||
13 | </group> | ||
14 | </extension> | ||
15 | <extension id="queries.Ecore" point="org.eclipse.viatra.query.runtime.queryspecification"> | ||
16 | <group group="org.eclipse.viatra.query.runtime.extensibility.SingletonExtensionFactory:queries.Ecore" id="queries.Ecore"> | ||
17 | <query-specification fqn="queries.directSupertype"/> | ||
18 | <query-specification fqn="queries.loopInInheritence"/> | ||
19 | <query-specification fqn="queries.opposite"/> | ||
20 | <query-specification fqn="queries.oppositeDifferentClass"/> | ||
21 | <query-specification fqn="queries.nonSymmetricOpposite"/> | ||
22 | <query-specification fqn="queries.superTypes"/> | ||
23 | </group> | ||
24 | </extension> | ||
25 | </plugin> | ||
diff --git a/Metrics/Metrics-Calculation/SocialNetwork_plugin/queries/queries/Ecore.vql b/Metrics/Metrics-Calculation/SocialNetwork_plugin/queries/queries/Ecore.vql new file mode 100644 index 00000000..9ddb64c9 --- /dev/null +++ b/Metrics/Metrics-Calculation/SocialNetwork_plugin/queries/queries/Ecore.vql | |||
@@ -0,0 +1,33 @@ | |||
1 | package queries | ||
2 | |||
3 | import epackage "http://www.eclipse.org/emf/2002/Ecore" | ||
4 | |||
5 | pattern directSupertype(a: EClass, b:EClass) { | ||
6 | EClass.eSuperTypes(a,b); | ||
7 | } | ||
8 | |||
9 | @Constraint(key={a}, severity="error", message="error") | ||
10 | pattern loopInInheritence(a: EClass) { | ||
11 | find directSupertype+(a,a); | ||
12 | } | ||
13 | |||
14 | pattern opposite(a:EReference, b: EReference) { | ||
15 | EReference.eOpposite(a,b); | ||
16 | } | ||
17 | @Constraint(key={a}, severity="error", message="error") | ||
18 | pattern oppositeDifferentClass(a:EReference) { | ||
19 | EReference.eOpposite(a,b); | ||
20 | EReference.eContainingClass(a,aContaining); | ||
21 | EReference.eType(b,bTarget); | ||
22 | aContaining != bTarget; | ||
23 | } | ||
24 | |||
25 | @Constraint(key={a}, severity="error", message="error") | ||
26 | pattern nonSymmetricOpposite(a:EReference, b:EReference) { | ||
27 | find opposite(a,b); | ||
28 | neg find opposite(b,a); | ||
29 | } | ||
30 | |||
31 | pattern superTypes(c1:EClass, c2:EClass){ | ||
32 | EClass.eSuperTypes(c1,c2); | ||
33 | } | ||
diff --git a/Metrics/Metrics-Calculation/SocialNetwork_plugin/src-gen/ca/mcgill/ecse/socialnetwork/plugin/.gitignore b/Metrics/Metrics-Calculation/SocialNetwork_plugin/src-gen/ca/mcgill/ecse/socialnetwork/plugin/.gitignore new file mode 100644 index 00000000..f2558cf5 --- /dev/null +++ b/Metrics/Metrics-Calculation/SocialNetwork_plugin/src-gen/ca/mcgill/ecse/socialnetwork/plugin/.gitignore | |||
@@ -0,0 +1,10 @@ | |||
1 | /.Friendship.java._trace | ||
2 | /.NoFriend.java._trace | ||
3 | /.Queries.java._trace | ||
4 | /.SelfFriend.java._trace | ||
5 | /.SingleFriendship.java._trace | ||
6 | /Friendship.java | ||
7 | /NoFriend.java | ||
8 | /Queries.java | ||
9 | /SelfFriend.java | ||
10 | /SingleFriendship.java | ||
diff --git a/Metrics/Metrics-Calculation/SocialNetwork_plugin/src-gen/constraints/ecore/.gitignore b/Metrics/Metrics-Calculation/SocialNetwork_plugin/src-gen/constraints/ecore/.gitignore new file mode 100644 index 00000000..c42ca056 --- /dev/null +++ b/Metrics/Metrics-Calculation/SocialNetwork_plugin/src-gen/constraints/ecore/.gitignore | |||
@@ -0,0 +1,8 @@ | |||
1 | /.Ecore_pattern.java._trace | ||
2 | /.MoreThenFiveSuperTypes.java._trace | ||
3 | /.DirectSupertype.java._trace | ||
4 | /.Ecore.java._trace | ||
5 | /.LoopInInheritence.java._trace | ||
6 | /.NonSymmetricOpposite.java._trace | ||
7 | /.Opposite.java._trace | ||
8 | /.OppositeDifferentClass.java._trace | ||
diff --git a/Metrics/Metrics-Calculation/SocialNetwork_plugin/src-gen/ecore/.gitignore b/Metrics/Metrics-Calculation/SocialNetwork_plugin/src-gen/ecore/.gitignore new file mode 100644 index 00000000..c42ca056 --- /dev/null +++ b/Metrics/Metrics-Calculation/SocialNetwork_plugin/src-gen/ecore/.gitignore | |||
@@ -0,0 +1,8 @@ | |||
1 | /.Ecore_pattern.java._trace | ||
2 | /.MoreThenFiveSuperTypes.java._trace | ||
3 | /.DirectSupertype.java._trace | ||
4 | /.Ecore.java._trace | ||
5 | /.LoopInInheritence.java._trace | ||
6 | /.NonSymmetricOpposite.java._trace | ||
7 | /.Opposite.java._trace | ||
8 | /.OppositeDifferentClass.java._trace | ||
diff --git a/Metrics/Metrics-Calculation/SocialNetwork_plugin/src-gen/queries/.gitignore b/Metrics/Metrics-Calculation/SocialNetwork_plugin/src-gen/queries/.gitignore new file mode 100644 index 00000000..e9d711d4 --- /dev/null +++ b/Metrics/Metrics-Calculation/SocialNetwork_plugin/src-gen/queries/.gitignore | |||
@@ -0,0 +1,9 @@ | |||
1 | /.Ecore_pattern.java._trace | ||
2 | /.MoreThenFiveSuperTypes.java._trace | ||
3 | /.DirectSupertype.java._trace | ||
4 | /.Ecore.java._trace | ||
5 | /.LoopInInheritence.java._trace | ||
6 | /.NonSymmetricOpposite.java._trace | ||
7 | /.Opposite.java._trace | ||
8 | /.OppositeDifferentClass.java._trace | ||
9 | /.SuperTypes.java._trace | ||
diff --git a/Metrics/Metrics-Calculation/SocialNetwork_plugin/src-gen/queries/DirectSupertype.java b/Metrics/Metrics-Calculation/SocialNetwork_plugin/src-gen/queries/DirectSupertype.java new file mode 100644 index 00000000..a557d865 --- /dev/null +++ b/Metrics/Metrics-Calculation/SocialNetwork_plugin/src-gen/queries/DirectSupertype.java | |||
@@ -0,0 +1,703 @@ | |||
1 | /** | ||
2 | * Generated from platform:/resource/SocialNetwork_plugin/queries/queries/Ecore.vql | ||
3 | */ | ||
4 | package queries; | ||
5 | |||
6 | import java.util.Arrays; | ||
7 | import java.util.Collection; | ||
8 | import java.util.LinkedHashSet; | ||
9 | import java.util.List; | ||
10 | import java.util.Objects; | ||
11 | import java.util.Optional; | ||
12 | import java.util.Set; | ||
13 | import java.util.function.Consumer; | ||
14 | import java.util.stream.Collectors; | ||
15 | import java.util.stream.Stream; | ||
16 | import org.apache.log4j.Logger; | ||
17 | import org.eclipse.emf.ecore.EClass; | ||
18 | import org.eclipse.viatra.query.runtime.api.IPatternMatch; | ||
19 | import org.eclipse.viatra.query.runtime.api.IQuerySpecification; | ||
20 | import org.eclipse.viatra.query.runtime.api.ViatraQueryEngine; | ||
21 | import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFPQuery; | ||
22 | import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFQuerySpecification; | ||
23 | import org.eclipse.viatra.query.runtime.api.impl.BaseMatcher; | ||
24 | import org.eclipse.viatra.query.runtime.api.impl.BasePatternMatch; | ||
25 | import org.eclipse.viatra.query.runtime.emf.types.EClassTransitiveInstancesKey; | ||
26 | import org.eclipse.viatra.query.runtime.emf.types.EStructuralFeatureInstancesKey; | ||
27 | import org.eclipse.viatra.query.runtime.matchers.backend.QueryEvaluationHint; | ||
28 | import org.eclipse.viatra.query.runtime.matchers.psystem.PBody; | ||
29 | import org.eclipse.viatra.query.runtime.matchers.psystem.PVariable; | ||
30 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.Equality; | ||
31 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.ExportedParameter; | ||
32 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.TypeConstraint; | ||
33 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameter; | ||
34 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameterDirection; | ||
35 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PVisibility; | ||
36 | import org.eclipse.viatra.query.runtime.matchers.tuple.Tuple; | ||
37 | import org.eclipse.viatra.query.runtime.matchers.tuple.Tuples; | ||
38 | import org.eclipse.viatra.query.runtime.util.ViatraQueryLoggingUtil; | ||
39 | |||
40 | /** | ||
41 | * A pattern-specific query specification that can instantiate Matcher in a type-safe way. | ||
42 | * | ||
43 | * <p>Original source: | ||
44 | * <code><pre> | ||
45 | * pattern directSupertype(a: EClass, b:EClass) { | ||
46 | * EClass.eSuperTypes(a,b); | ||
47 | * } | ||
48 | * </pre></code> | ||
49 | * | ||
50 | * @see Matcher | ||
51 | * @see Match | ||
52 | * | ||
53 | */ | ||
54 | @SuppressWarnings("all") | ||
55 | public final class DirectSupertype extends BaseGeneratedEMFQuerySpecification<DirectSupertype.Matcher> { | ||
56 | /** | ||
57 | * Pattern-specific match representation of the queries.directSupertype pattern, | ||
58 | * to be used in conjunction with {@link Matcher}. | ||
59 | * | ||
60 | * <p>Class fields correspond to parameters of the pattern. Fields with value null are considered unassigned. | ||
61 | * Each instance is a (possibly partial) substitution of pattern parameters, | ||
62 | * usable to represent a match of the pattern in the result of a query, | ||
63 | * or to specify the bound (fixed) input parameters when issuing a query. | ||
64 | * | ||
65 | * @see Matcher | ||
66 | * | ||
67 | */ | ||
68 | public static abstract class Match extends BasePatternMatch { | ||
69 | private EClass fA; | ||
70 | |||
71 | private EClass fB; | ||
72 | |||
73 | private static List<String> parameterNames = makeImmutableList("a", "b"); | ||
74 | |||
75 | private Match(final EClass pA, final EClass pB) { | ||
76 | this.fA = pA; | ||
77 | this.fB = pB; | ||
78 | } | ||
79 | |||
80 | @Override | ||
81 | public Object get(final String parameterName) { | ||
82 | switch(parameterName) { | ||
83 | case "a": return this.fA; | ||
84 | case "b": return this.fB; | ||
85 | default: return null; | ||
86 | } | ||
87 | } | ||
88 | |||
89 | @Override | ||
90 | public Object get(final int index) { | ||
91 | switch(index) { | ||
92 | case 0: return this.fA; | ||
93 | case 1: return this.fB; | ||
94 | default: return null; | ||
95 | } | ||
96 | } | ||
97 | |||
98 | public EClass getA() { | ||
99 | return this.fA; | ||
100 | } | ||
101 | |||
102 | public EClass getB() { | ||
103 | return this.fB; | ||
104 | } | ||
105 | |||
106 | @Override | ||
107 | public boolean set(final String parameterName, final Object newValue) { | ||
108 | if (!isMutable()) throw new java.lang.UnsupportedOperationException(); | ||
109 | if ("a".equals(parameterName) ) { | ||
110 | this.fA = (EClass) newValue; | ||
111 | return true; | ||
112 | } | ||
113 | if ("b".equals(parameterName) ) { | ||
114 | this.fB = (EClass) newValue; | ||
115 | return true; | ||
116 | } | ||
117 | return false; | ||
118 | } | ||
119 | |||
120 | public void setA(final EClass pA) { | ||
121 | if (!isMutable()) throw new java.lang.UnsupportedOperationException(); | ||
122 | this.fA = pA; | ||
123 | } | ||
124 | |||
125 | public void setB(final EClass pB) { | ||
126 | if (!isMutable()) throw new java.lang.UnsupportedOperationException(); | ||
127 | this.fB = pB; | ||
128 | } | ||
129 | |||
130 | @Override | ||
131 | public String patternName() { | ||
132 | return "queries.directSupertype"; | ||
133 | } | ||
134 | |||
135 | @Override | ||
136 | public List<String> parameterNames() { | ||
137 | return DirectSupertype.Match.parameterNames; | ||
138 | } | ||
139 | |||
140 | @Override | ||
141 | public Object[] toArray() { | ||
142 | return new Object[]{fA, fB}; | ||
143 | } | ||
144 | |||
145 | @Override | ||
146 | public DirectSupertype.Match toImmutable() { | ||
147 | return isMutable() ? newMatch(fA, fB) : this; | ||
148 | } | ||
149 | |||
150 | @Override | ||
151 | public String prettyPrint() { | ||
152 | StringBuilder result = new StringBuilder(); | ||
153 | result.append("\"a\"=" + prettyPrintValue(fA) + ", "); | ||
154 | result.append("\"b\"=" + prettyPrintValue(fB)); | ||
155 | return result.toString(); | ||
156 | } | ||
157 | |||
158 | @Override | ||
159 | public int hashCode() { | ||
160 | return Objects.hash(fA, fB); | ||
161 | } | ||
162 | |||
163 | @Override | ||
164 | public boolean equals(final Object obj) { | ||
165 | if (this == obj) | ||
166 | return true; | ||
167 | if (obj == null) { | ||
168 | return false; | ||
169 | } | ||
170 | if ((obj instanceof DirectSupertype.Match)) { | ||
171 | DirectSupertype.Match other = (DirectSupertype.Match) obj; | ||
172 | return Objects.equals(fA, other.fA) && Objects.equals(fB, other.fB); | ||
173 | } else { | ||
174 | // this should be infrequent | ||
175 | if (!(obj instanceof IPatternMatch)) { | ||
176 | return false; | ||
177 | } | ||
178 | IPatternMatch otherSig = (IPatternMatch) obj; | ||
179 | return Objects.equals(specification(), otherSig.specification()) && Arrays.deepEquals(toArray(), otherSig.toArray()); | ||
180 | } | ||
181 | } | ||
182 | |||
183 | @Override | ||
184 | public DirectSupertype specification() { | ||
185 | return DirectSupertype.instance(); | ||
186 | } | ||
187 | |||
188 | /** | ||
189 | * Returns an empty, mutable match. | ||
190 | * Fields of the mutable match can be filled to create a partial match, usable as matcher input. | ||
191 | * | ||
192 | * @return the empty match. | ||
193 | * | ||
194 | */ | ||
195 | public static DirectSupertype.Match newEmptyMatch() { | ||
196 | return new Mutable(null, null); | ||
197 | } | ||
198 | |||
199 | /** | ||
200 | * Returns a mutable (partial) match. | ||
201 | * Fields of the mutable match can be filled to create a partial match, usable as matcher input. | ||
202 | * | ||
203 | * @param pA the fixed value of pattern parameter a, or null if not bound. | ||
204 | * @param pB the fixed value of pattern parameter b, or null if not bound. | ||
205 | * @return the new, mutable (partial) match object. | ||
206 | * | ||
207 | */ | ||
208 | public static DirectSupertype.Match newMutableMatch(final EClass pA, final EClass pB) { | ||
209 | return new Mutable(pA, pB); | ||
210 | } | ||
211 | |||
212 | /** | ||
213 | * Returns a new (partial) match. | ||
214 | * This can be used e.g. to call the matcher with a partial match. | ||
215 | * <p>The returned match will be immutable. Use {@link #newEmptyMatch()} to obtain a mutable match object. | ||
216 | * @param pA the fixed value of pattern parameter a, or null if not bound. | ||
217 | * @param pB the fixed value of pattern parameter b, or null if not bound. | ||
218 | * @return the (partial) match object. | ||
219 | * | ||
220 | */ | ||
221 | public static DirectSupertype.Match newMatch(final EClass pA, final EClass pB) { | ||
222 | return new Immutable(pA, pB); | ||
223 | } | ||
224 | |||
225 | private static final class Mutable extends DirectSupertype.Match { | ||
226 | Mutable(final EClass pA, final EClass pB) { | ||
227 | super(pA, pB); | ||
228 | } | ||
229 | |||
230 | @Override | ||
231 | public boolean isMutable() { | ||
232 | return true; | ||
233 | } | ||
234 | } | ||
235 | |||
236 | private static final class Immutable extends DirectSupertype.Match { | ||
237 | Immutable(final EClass pA, final EClass pB) { | ||
238 | super(pA, pB); | ||
239 | } | ||
240 | |||
241 | @Override | ||
242 | public boolean isMutable() { | ||
243 | return false; | ||
244 | } | ||
245 | } | ||
246 | } | ||
247 | |||
248 | /** | ||
249 | * Generated pattern matcher API of the queries.directSupertype pattern, | ||
250 | * providing pattern-specific query methods. | ||
251 | * | ||
252 | * <p>Use the pattern matcher on a given model via {@link #on(ViatraQueryEngine)}, | ||
253 | * e.g. in conjunction with {@link ViatraQueryEngine#on(QueryScope)}. | ||
254 | * | ||
255 | * <p>Matches of the pattern will be represented as {@link Match}. | ||
256 | * | ||
257 | * <p>Original source: | ||
258 | * <code><pre> | ||
259 | * pattern directSupertype(a: EClass, b:EClass) { | ||
260 | * EClass.eSuperTypes(a,b); | ||
261 | * } | ||
262 | * </pre></code> | ||
263 | * | ||
264 | * @see Match | ||
265 | * @see DirectSupertype | ||
266 | * | ||
267 | */ | ||
268 | public static class Matcher extends BaseMatcher<DirectSupertype.Match> { | ||
269 | /** | ||
270 | * Initializes the pattern matcher within an existing VIATRA Query engine. | ||
271 | * If the pattern matcher is already constructed in the engine, only a light-weight reference is returned. | ||
272 | * | ||
273 | * @param engine the existing VIATRA Query engine in which this matcher will be created. | ||
274 | * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation | ||
275 | * | ||
276 | */ | ||
277 | public static DirectSupertype.Matcher on(final ViatraQueryEngine engine) { | ||
278 | // check if matcher already exists | ||
279 | Matcher matcher = engine.getExistingMatcher(querySpecification()); | ||
280 | if (matcher == null) { | ||
281 | matcher = (Matcher)engine.getMatcher(querySpecification()); | ||
282 | } | ||
283 | return matcher; | ||
284 | } | ||
285 | |||
286 | /** | ||
287 | * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation | ||
288 | * @return an initialized matcher | ||
289 | * @noreference This method is for internal matcher initialization by the framework, do not call it manually. | ||
290 | * | ||
291 | */ | ||
292 | public static DirectSupertype.Matcher create() { | ||
293 | return new Matcher(); | ||
294 | } | ||
295 | |||
296 | private static final int POSITION_A = 0; | ||
297 | |||
298 | private static final int POSITION_B = 1; | ||
299 | |||
300 | private static final Logger LOGGER = ViatraQueryLoggingUtil.getLogger(DirectSupertype.Matcher.class); | ||
301 | |||
302 | /** | ||
303 | * Initializes the pattern matcher within an existing VIATRA Query engine. | ||
304 | * If the pattern matcher is already constructed in the engine, only a light-weight reference is returned. | ||
305 | * | ||
306 | * @param engine the existing VIATRA Query engine in which this matcher will be created. | ||
307 | * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation | ||
308 | * | ||
309 | */ | ||
310 | private Matcher() { | ||
311 | super(querySpecification()); | ||
312 | } | ||
313 | |||
314 | /** | ||
315 | * Returns the set of all matches of the pattern that conform to the given fixed values of some parameters. | ||
316 | * @param pA the fixed value of pattern parameter a, or null if not bound. | ||
317 | * @param pB the fixed value of pattern parameter b, or null if not bound. | ||
318 | * @return matches represented as a Match object. | ||
319 | * | ||
320 | */ | ||
321 | public Collection<DirectSupertype.Match> getAllMatches(final EClass pA, final EClass pB) { | ||
322 | return rawStreamAllMatches(new Object[]{pA, pB}).collect(Collectors.toSet()); | ||
323 | } | ||
324 | |||
325 | /** | ||
326 | * Returns a stream of all matches of the pattern that conform to the given fixed values of some parameters. | ||
327 | * </p> | ||
328 | * <strong>NOTE</strong>: It is important not to modify the source model while the stream is being processed. | ||
329 | * If the match set of the pattern changes during processing, the contents of the stream is <strong>undefined</strong>. | ||
330 | * In such cases, either rely on {@link #getAllMatches()} or collect the results of the stream in end-user code. | ||
331 | * @param pA the fixed value of pattern parameter a, or null if not bound. | ||
332 | * @param pB the fixed value of pattern parameter b, or null if not bound. | ||
333 | * @return a stream of matches represented as a Match object. | ||
334 | * | ||
335 | */ | ||
336 | public Stream<DirectSupertype.Match> streamAllMatches(final EClass pA, final EClass pB) { | ||
337 | return rawStreamAllMatches(new Object[]{pA, pB}); | ||
338 | } | ||
339 | |||
340 | /** | ||
341 | * Returns an arbitrarily chosen match of the pattern that conforms to the given fixed values of some parameters. | ||
342 | * Neither determinism nor randomness of selection is guaranteed. | ||
343 | * @param pA the fixed value of pattern parameter a, or null if not bound. | ||
344 | * @param pB the fixed value of pattern parameter b, or null if not bound. | ||
345 | * @return a match represented as a Match object, or null if no match is found. | ||
346 | * | ||
347 | */ | ||
348 | public Optional<DirectSupertype.Match> getOneArbitraryMatch(final EClass pA, final EClass pB) { | ||
349 | return rawGetOneArbitraryMatch(new Object[]{pA, pB}); | ||
350 | } | ||
351 | |||
352 | /** | ||
353 | * Indicates whether the given combination of specified pattern parameters constitute a valid pattern match, | ||
354 | * under any possible substitution of the unspecified parameters (if any). | ||
355 | * @param pA the fixed value of pattern parameter a, or null if not bound. | ||
356 | * @param pB the fixed value of pattern parameter b, or null if not bound. | ||
357 | * @return true if the input is a valid (partial) match of the pattern. | ||
358 | * | ||
359 | */ | ||
360 | public boolean hasMatch(final EClass pA, final EClass pB) { | ||
361 | return rawHasMatch(new Object[]{pA, pB}); | ||
362 | } | ||
363 | |||
364 | /** | ||
365 | * Returns the number of all matches of the pattern that conform to the given fixed values of some parameters. | ||
366 | * @param pA the fixed value of pattern parameter a, or null if not bound. | ||
367 | * @param pB the fixed value of pattern parameter b, or null if not bound. | ||
368 | * @return the number of pattern matches found. | ||
369 | * | ||
370 | */ | ||
371 | public int countMatches(final EClass pA, final EClass pB) { | ||
372 | return rawCountMatches(new Object[]{pA, pB}); | ||
373 | } | ||
374 | |||
375 | /** | ||
376 | * Executes the given processor on an arbitrarily chosen match of the pattern that conforms to the given fixed values of some parameters. | ||
377 | * Neither determinism nor randomness of selection is guaranteed. | ||
378 | * @param pA the fixed value of pattern parameter a, or null if not bound. | ||
379 | * @param pB the fixed value of pattern parameter b, or null if not bound. | ||
380 | * @param processor the action that will process the selected match. | ||
381 | * @return true if the pattern has at least one match with the given parameter values, false if the processor was not invoked | ||
382 | * | ||
383 | */ | ||
384 | public boolean forOneArbitraryMatch(final EClass pA, final EClass pB, final Consumer<? super DirectSupertype.Match> processor) { | ||
385 | return rawForOneArbitraryMatch(new Object[]{pA, pB}, processor); | ||
386 | } | ||
387 | |||
388 | /** | ||
389 | * Returns a new (partial) match. | ||
390 | * This can be used e.g. to call the matcher with a partial match. | ||
391 | * <p>The returned match will be immutable. Use {@link #newEmptyMatch()} to obtain a mutable match object. | ||
392 | * @param pA the fixed value of pattern parameter a, or null if not bound. | ||
393 | * @param pB the fixed value of pattern parameter b, or null if not bound. | ||
394 | * @return the (partial) match object. | ||
395 | * | ||
396 | */ | ||
397 | public DirectSupertype.Match newMatch(final EClass pA, final EClass pB) { | ||
398 | return DirectSupertype.Match.newMatch(pA, pB); | ||
399 | } | ||
400 | |||
401 | /** | ||
402 | * Retrieve the set of values that occur in matches for a. | ||
403 | * @return the Set of all values or empty set if there are no matches | ||
404 | * | ||
405 | */ | ||
406 | protected Stream<EClass> rawStreamAllValuesOfa(final Object[] parameters) { | ||
407 | return rawStreamAllValues(POSITION_A, parameters).map(EClass.class::cast); | ||
408 | } | ||
409 | |||
410 | /** | ||
411 | * Retrieve the set of values that occur in matches for a. | ||
412 | * @return the Set of all values or empty set if there are no matches | ||
413 | * | ||
414 | */ | ||
415 | public Set<EClass> getAllValuesOfa() { | ||
416 | return rawStreamAllValuesOfa(emptyArray()).collect(Collectors.toSet()); | ||
417 | } | ||
418 | |||
419 | /** | ||
420 | * Retrieve the set of values that occur in matches for a. | ||
421 | * @return the Set of all values or empty set if there are no matches | ||
422 | * | ||
423 | */ | ||
424 | public Stream<EClass> streamAllValuesOfa() { | ||
425 | return rawStreamAllValuesOfa(emptyArray()); | ||
426 | } | ||
427 | |||
428 | /** | ||
429 | * Retrieve the set of values that occur in matches for a. | ||
430 | * </p> | ||
431 | * <strong>NOTE</strong>: It is important not to modify the source model while the stream is being processed. | ||
432 | * If the match set of the pattern changes during processing, the contents of the stream is <strong>undefined</strong>. | ||
433 | * In such cases, either rely on {@link #getAllMatches()} or collect the results of the stream in end-user code. | ||
434 | * | ||
435 | * @return the Stream of all values or empty set if there are no matches | ||
436 | * | ||
437 | */ | ||
438 | public Stream<EClass> streamAllValuesOfa(final DirectSupertype.Match partialMatch) { | ||
439 | return rawStreamAllValuesOfa(partialMatch.toArray()); | ||
440 | } | ||
441 | |||
442 | /** | ||
443 | * Retrieve the set of values that occur in matches for a. | ||
444 | * </p> | ||
445 | * <strong>NOTE</strong>: It is important not to modify the source model while the stream is being processed. | ||
446 | * If the match set of the pattern changes during processing, the contents of the stream is <strong>undefined</strong>. | ||
447 | * In such cases, either rely on {@link #getAllMatches()} or collect the results of the stream in end-user code. | ||
448 | * | ||
449 | * @return the Stream of all values or empty set if there are no matches | ||
450 | * | ||
451 | */ | ||
452 | public Stream<EClass> streamAllValuesOfa(final EClass pB) { | ||
453 | return rawStreamAllValuesOfa(new Object[]{null, pB}); | ||
454 | } | ||
455 | |||
456 | /** | ||
457 | * Retrieve the set of values that occur in matches for a. | ||
458 | * @return the Set of all values or empty set if there are no matches | ||
459 | * | ||
460 | */ | ||
461 | public Set<EClass> getAllValuesOfa(final DirectSupertype.Match partialMatch) { | ||
462 | return rawStreamAllValuesOfa(partialMatch.toArray()).collect(Collectors.toSet()); | ||
463 | } | ||
464 | |||
465 | /** | ||
466 | * Retrieve the set of values that occur in matches for a. | ||
467 | * @return the Set of all values or empty set if there are no matches | ||
468 | * | ||
469 | */ | ||
470 | public Set<EClass> getAllValuesOfa(final EClass pB) { | ||
471 | return rawStreamAllValuesOfa(new Object[]{null, pB}).collect(Collectors.toSet()); | ||
472 | } | ||
473 | |||
474 | /** | ||
475 | * Retrieve the set of values that occur in matches for b. | ||
476 | * @return the Set of all values or empty set if there are no matches | ||
477 | * | ||
478 | */ | ||
479 | protected Stream<EClass> rawStreamAllValuesOfb(final Object[] parameters) { | ||
480 | return rawStreamAllValues(POSITION_B, parameters).map(EClass.class::cast); | ||
481 | } | ||
482 | |||
483 | /** | ||
484 | * Retrieve the set of values that occur in matches for b. | ||
485 | * @return the Set of all values or empty set if there are no matches | ||
486 | * | ||
487 | */ | ||
488 | public Set<EClass> getAllValuesOfb() { | ||
489 | return rawStreamAllValuesOfb(emptyArray()).collect(Collectors.toSet()); | ||
490 | } | ||
491 | |||
492 | /** | ||
493 | * Retrieve the set of values that occur in matches for b. | ||
494 | * @return the Set of all values or empty set if there are no matches | ||
495 | * | ||
496 | */ | ||
497 | public Stream<EClass> streamAllValuesOfb() { | ||
498 | return rawStreamAllValuesOfb(emptyArray()); | ||
499 | } | ||
500 | |||
501 | /** | ||
502 | * Retrieve the set of values that occur in matches for b. | ||
503 | * </p> | ||
504 | * <strong>NOTE</strong>: It is important not to modify the source model while the stream is being processed. | ||
505 | * If the match set of the pattern changes during processing, the contents of the stream is <strong>undefined</strong>. | ||
506 | * In such cases, either rely on {@link #getAllMatches()} or collect the results of the stream in end-user code. | ||
507 | * | ||
508 | * @return the Stream of all values or empty set if there are no matches | ||
509 | * | ||
510 | */ | ||
511 | public Stream<EClass> streamAllValuesOfb(final DirectSupertype.Match partialMatch) { | ||
512 | return rawStreamAllValuesOfb(partialMatch.toArray()); | ||
513 | } | ||
514 | |||
515 | /** | ||
516 | * Retrieve the set of values that occur in matches for b. | ||
517 | * </p> | ||
518 | * <strong>NOTE</strong>: It is important not to modify the source model while the stream is being processed. | ||
519 | * If the match set of the pattern changes during processing, the contents of the stream is <strong>undefined</strong>. | ||
520 | * In such cases, either rely on {@link #getAllMatches()} or collect the results of the stream in end-user code. | ||
521 | * | ||
522 | * @return the Stream of all values or empty set if there are no matches | ||
523 | * | ||
524 | */ | ||
525 | public Stream<EClass> streamAllValuesOfb(final EClass pA) { | ||
526 | return rawStreamAllValuesOfb(new Object[]{pA, null}); | ||
527 | } | ||
528 | |||
529 | /** | ||
530 | * Retrieve the set of values that occur in matches for b. | ||
531 | * @return the Set of all values or empty set if there are no matches | ||
532 | * | ||
533 | */ | ||
534 | public Set<EClass> getAllValuesOfb(final DirectSupertype.Match partialMatch) { | ||
535 | return rawStreamAllValuesOfb(partialMatch.toArray()).collect(Collectors.toSet()); | ||
536 | } | ||
537 | |||
538 | /** | ||
539 | * Retrieve the set of values that occur in matches for b. | ||
540 | * @return the Set of all values or empty set if there are no matches | ||
541 | * | ||
542 | */ | ||
543 | public Set<EClass> getAllValuesOfb(final EClass pA) { | ||
544 | return rawStreamAllValuesOfb(new Object[]{pA, null}).collect(Collectors.toSet()); | ||
545 | } | ||
546 | |||
547 | @Override | ||
548 | protected DirectSupertype.Match tupleToMatch(final Tuple t) { | ||
549 | try { | ||
550 | return DirectSupertype.Match.newMatch((EClass) t.get(POSITION_A), (EClass) t.get(POSITION_B)); | ||
551 | } catch(ClassCastException e) { | ||
552 | LOGGER.error("Element(s) in tuple not properly typed!",e); | ||
553 | return null; | ||
554 | } | ||
555 | } | ||
556 | |||
557 | @Override | ||
558 | protected DirectSupertype.Match arrayToMatch(final Object[] match) { | ||
559 | try { | ||
560 | return DirectSupertype.Match.newMatch((EClass) match[POSITION_A], (EClass) match[POSITION_B]); | ||
561 | } catch(ClassCastException e) { | ||
562 | LOGGER.error("Element(s) in array not properly typed!",e); | ||
563 | return null; | ||
564 | } | ||
565 | } | ||
566 | |||
567 | @Override | ||
568 | protected DirectSupertype.Match arrayToMatchMutable(final Object[] match) { | ||
569 | try { | ||
570 | return DirectSupertype.Match.newMutableMatch((EClass) match[POSITION_A], (EClass) match[POSITION_B]); | ||
571 | } catch(ClassCastException e) { | ||
572 | LOGGER.error("Element(s) in array not properly typed!",e); | ||
573 | return null; | ||
574 | } | ||
575 | } | ||
576 | |||
577 | /** | ||
578 | * @return the singleton instance of the query specification of this pattern | ||
579 | * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded | ||
580 | * | ||
581 | */ | ||
582 | public static IQuerySpecification<DirectSupertype.Matcher> querySpecification() { | ||
583 | return DirectSupertype.instance(); | ||
584 | } | ||
585 | } | ||
586 | |||
587 | private DirectSupertype() { | ||
588 | super(GeneratedPQuery.INSTANCE); | ||
589 | } | ||
590 | |||
591 | /** | ||
592 | * @return the singleton instance of the query specification | ||
593 | * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded | ||
594 | * | ||
595 | */ | ||
596 | public static DirectSupertype instance() { | ||
597 | try{ | ||
598 | return LazyHolder.INSTANCE; | ||
599 | } catch (ExceptionInInitializerError err) { | ||
600 | throw processInitializerError(err); | ||
601 | } | ||
602 | } | ||
603 | |||
604 | @Override | ||
605 | protected DirectSupertype.Matcher instantiate(final ViatraQueryEngine engine) { | ||
606 | return DirectSupertype.Matcher.on(engine); | ||
607 | } | ||
608 | |||
609 | @Override | ||
610 | public DirectSupertype.Matcher instantiate() { | ||
611 | return DirectSupertype.Matcher.create(); | ||
612 | } | ||
613 | |||
614 | @Override | ||
615 | public DirectSupertype.Match newEmptyMatch() { | ||
616 | return DirectSupertype.Match.newEmptyMatch(); | ||
617 | } | ||
618 | |||
619 | @Override | ||
620 | public DirectSupertype.Match newMatch(final Object... parameters) { | ||
621 | return DirectSupertype.Match.newMatch((org.eclipse.emf.ecore.EClass) parameters[0], (org.eclipse.emf.ecore.EClass) parameters[1]); | ||
622 | } | ||
623 | |||
624 | /** | ||
625 | * Inner class allowing the singleton instance of {@link DirectSupertype} to be created | ||
626 | * <b>not</b> at the class load time of the outer class, | ||
627 | * but rather at the first call to {@link DirectSupertype#instance()}. | ||
628 | * | ||
629 | * <p> This workaround is required e.g. to support recursion. | ||
630 | * | ||
631 | */ | ||
632 | private static class LazyHolder { | ||
633 | private static final DirectSupertype INSTANCE = new DirectSupertype(); | ||
634 | |||
635 | /** | ||
636 | * Statically initializes the query specification <b>after</b> the field {@link #INSTANCE} is assigned. | ||
637 | * This initialization order is required to support indirect recursion. | ||
638 | * | ||
639 | * <p> The static initializer is defined using a helper field to work around limitations of the code generator. | ||
640 | * | ||
641 | */ | ||
642 | private static final Object STATIC_INITIALIZER = ensureInitialized(); | ||
643 | |||
644 | public static Object ensureInitialized() { | ||
645 | INSTANCE.ensureInitializedInternal(); | ||
646 | return null; | ||
647 | } | ||
648 | } | ||
649 | |||
650 | private static class GeneratedPQuery extends BaseGeneratedEMFPQuery { | ||
651 | private static final DirectSupertype.GeneratedPQuery INSTANCE = new GeneratedPQuery(); | ||
652 | |||
653 | private final PParameter parameter_a = new PParameter("a", "org.eclipse.emf.ecore.EClass", new EClassTransitiveInstancesKey((EClass)getClassifierLiteralSafe("http://www.eclipse.org/emf/2002/Ecore", "EClass")), PParameterDirection.INOUT); | ||
654 | |||
655 | private final PParameter parameter_b = new PParameter("b", "org.eclipse.emf.ecore.EClass", new EClassTransitiveInstancesKey((EClass)getClassifierLiteralSafe("http://www.eclipse.org/emf/2002/Ecore", "EClass")), PParameterDirection.INOUT); | ||
656 | |||
657 | private final List<PParameter> parameters = Arrays.asList(parameter_a, parameter_b); | ||
658 | |||
659 | private GeneratedPQuery() { | ||
660 | super(PVisibility.PUBLIC); | ||
661 | } | ||
662 | |||
663 | @Override | ||
664 | public String getFullyQualifiedName() { | ||
665 | return "queries.directSupertype"; | ||
666 | } | ||
667 | |||
668 | @Override | ||
669 | public List<String> getParameterNames() { | ||
670 | return Arrays.asList("a","b"); | ||
671 | } | ||
672 | |||
673 | @Override | ||
674 | public List<PParameter> getParameters() { | ||
675 | return parameters; | ||
676 | } | ||
677 | |||
678 | @Override | ||
679 | public Set<PBody> doGetContainedBodies() { | ||
680 | setEvaluationHints(new QueryEvaluationHint(null, QueryEvaluationHint.BackendRequirement.UNSPECIFIED)); | ||
681 | Set<PBody> bodies = new LinkedHashSet<>(); | ||
682 | { | ||
683 | PBody body = new PBody(this); | ||
684 | PVariable var_a = body.getOrCreateVariableByName("a"); | ||
685 | PVariable var_b = body.getOrCreateVariableByName("b"); | ||
686 | new TypeConstraint(body, Tuples.flatTupleOf(var_a), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.eclipse.org/emf/2002/Ecore", "EClass"))); | ||
687 | new TypeConstraint(body, Tuples.flatTupleOf(var_b), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.eclipse.org/emf/2002/Ecore", "EClass"))); | ||
688 | body.setSymbolicParameters(Arrays.<ExportedParameter>asList( | ||
689 | new ExportedParameter(body, var_a, parameter_a), | ||
690 | new ExportedParameter(body, var_b, parameter_b) | ||
691 | )); | ||
692 | // EClass.eSuperTypes(a,b) | ||
693 | new TypeConstraint(body, Tuples.flatTupleOf(var_a), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.eclipse.org/emf/2002/Ecore", "EClass"))); | ||
694 | PVariable var__virtual_0_ = body.getOrCreateVariableByName(".virtual{0}"); | ||
695 | new TypeConstraint(body, Tuples.flatTupleOf(var_a, var__virtual_0_), new EStructuralFeatureInstancesKey(getFeatureLiteral("http://www.eclipse.org/emf/2002/Ecore", "EClass", "eSuperTypes"))); | ||
696 | new TypeConstraint(body, Tuples.flatTupleOf(var__virtual_0_), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.eclipse.org/emf/2002/Ecore", "EClass"))); | ||
697 | new Equality(body, var__virtual_0_, var_b); | ||
698 | bodies.add(body); | ||
699 | } | ||
700 | return bodies; | ||
701 | } | ||
702 | } | ||
703 | } | ||
diff --git a/Metrics/Metrics-Calculation/SocialNetwork_plugin/src-gen/queries/Ecore.java b/Metrics/Metrics-Calculation/SocialNetwork_plugin/src-gen/queries/Ecore.java new file mode 100644 index 00000000..adfa5cf8 --- /dev/null +++ b/Metrics/Metrics-Calculation/SocialNetwork_plugin/src-gen/queries/Ecore.java | |||
@@ -0,0 +1,108 @@ | |||
1 | /** | ||
2 | * Generated from platform:/resource/SocialNetwork_plugin/queries/queries/Ecore.vql | ||
3 | */ | ||
4 | package queries; | ||
5 | |||
6 | import org.eclipse.viatra.query.runtime.api.ViatraQueryEngine; | ||
7 | import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedPatternGroup; | ||
8 | import queries.DirectSupertype; | ||
9 | import queries.LoopInInheritence; | ||
10 | import queries.NonSymmetricOpposite; | ||
11 | import queries.Opposite; | ||
12 | import queries.OppositeDifferentClass; | ||
13 | import queries.SuperTypes; | ||
14 | |||
15 | /** | ||
16 | * A pattern group formed of all public patterns defined in Ecore.vql. | ||
17 | * | ||
18 | * <p>Use the static instance as any {@link interface org.eclipse.viatra.query.runtime.api.IQueryGroup}, to conveniently prepare | ||
19 | * a VIATRA Query engine for matching all patterns originally defined in file Ecore.vql, | ||
20 | * in order to achieve better performance than one-by-one on-demand matcher initialization. | ||
21 | * | ||
22 | * <p> From package queries, the group contains the definition of the following patterns: <ul> | ||
23 | * <li>directSupertype</li> | ||
24 | * <li>loopInInheritence</li> | ||
25 | * <li>opposite</li> | ||
26 | * <li>oppositeDifferentClass</li> | ||
27 | * <li>nonSymmetricOpposite</li> | ||
28 | * <li>superTypes</li> | ||
29 | * </ul> | ||
30 | * | ||
31 | * @see IQueryGroup | ||
32 | * | ||
33 | */ | ||
34 | @SuppressWarnings("all") | ||
35 | public final class Ecore extends BaseGeneratedPatternGroup { | ||
36 | /** | ||
37 | * Access the pattern group. | ||
38 | * | ||
39 | * @return the singleton instance of the group | ||
40 | * @throws ViatraQueryRuntimeException if there was an error loading the generated code of pattern specifications | ||
41 | * | ||
42 | */ | ||
43 | public static Ecore instance() { | ||
44 | if (INSTANCE == null) { | ||
45 | INSTANCE = new Ecore(); | ||
46 | } | ||
47 | return INSTANCE; | ||
48 | } | ||
49 | |||
50 | private static Ecore INSTANCE; | ||
51 | |||
52 | private Ecore() { | ||
53 | querySpecifications.add(DirectSupertype.instance()); | ||
54 | querySpecifications.add(LoopInInheritence.instance()); | ||
55 | querySpecifications.add(Opposite.instance()); | ||
56 | querySpecifications.add(OppositeDifferentClass.instance()); | ||
57 | querySpecifications.add(NonSymmetricOpposite.instance()); | ||
58 | querySpecifications.add(SuperTypes.instance()); | ||
59 | } | ||
60 | |||
61 | public DirectSupertype getDirectSupertype() { | ||
62 | return DirectSupertype.instance(); | ||
63 | } | ||
64 | |||
65 | public DirectSupertype.Matcher getDirectSupertype(final ViatraQueryEngine engine) { | ||
66 | return DirectSupertype.Matcher.on(engine); | ||
67 | } | ||
68 | |||
69 | public LoopInInheritence getLoopInInheritence() { | ||
70 | return LoopInInheritence.instance(); | ||
71 | } | ||
72 | |||
73 | public LoopInInheritence.Matcher getLoopInInheritence(final ViatraQueryEngine engine) { | ||
74 | return LoopInInheritence.Matcher.on(engine); | ||
75 | } | ||
76 | |||
77 | public Opposite getOpposite() { | ||
78 | return Opposite.instance(); | ||
79 | } | ||
80 | |||
81 | public Opposite.Matcher getOpposite(final ViatraQueryEngine engine) { | ||
82 | return Opposite.Matcher.on(engine); | ||
83 | } | ||
84 | |||
85 | public OppositeDifferentClass getOppositeDifferentClass() { | ||
86 | return OppositeDifferentClass.instance(); | ||
87 | } | ||
88 | |||
89 | public OppositeDifferentClass.Matcher getOppositeDifferentClass(final ViatraQueryEngine engine) { | ||
90 | return OppositeDifferentClass.Matcher.on(engine); | ||
91 | } | ||
92 | |||
93 | public NonSymmetricOpposite getNonSymmetricOpposite() { | ||
94 | return NonSymmetricOpposite.instance(); | ||
95 | } | ||
96 | |||
97 | public NonSymmetricOpposite.Matcher getNonSymmetricOpposite(final ViatraQueryEngine engine) { | ||
98 | return NonSymmetricOpposite.Matcher.on(engine); | ||
99 | } | ||
100 | |||
101 | public SuperTypes getSuperTypes() { | ||
102 | return SuperTypes.instance(); | ||
103 | } | ||
104 | |||
105 | public SuperTypes.Matcher getSuperTypes(final ViatraQueryEngine engine) { | ||
106 | return SuperTypes.Matcher.on(engine); | ||
107 | } | ||
108 | } | ||
diff --git a/Metrics/Metrics-Calculation/SocialNetwork_plugin/src-gen/queries/LoopInInheritence.java b/Metrics/Metrics-Calculation/SocialNetwork_plugin/src-gen/queries/LoopInInheritence.java new file mode 100644 index 00000000..5212e3d2 --- /dev/null +++ b/Metrics/Metrics-Calculation/SocialNetwork_plugin/src-gen/queries/LoopInInheritence.java | |||
@@ -0,0 +1,558 @@ | |||
1 | /** | ||
2 | * Generated from platform:/resource/SocialNetwork_plugin/queries/queries/Ecore.vql | ||
3 | */ | ||
4 | package queries; | ||
5 | |||
6 | import java.util.Arrays; | ||
7 | import java.util.Collection; | ||
8 | import java.util.LinkedHashSet; | ||
9 | import java.util.List; | ||
10 | import java.util.Objects; | ||
11 | import java.util.Optional; | ||
12 | import java.util.Set; | ||
13 | import java.util.function.Consumer; | ||
14 | import java.util.stream.Collectors; | ||
15 | import java.util.stream.Stream; | ||
16 | import org.apache.log4j.Logger; | ||
17 | import org.eclipse.emf.ecore.EClass; | ||
18 | import org.eclipse.viatra.query.runtime.api.IPatternMatch; | ||
19 | import org.eclipse.viatra.query.runtime.api.IQuerySpecification; | ||
20 | import org.eclipse.viatra.query.runtime.api.ViatraQueryEngine; | ||
21 | import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFPQuery; | ||
22 | import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFQuerySpecification; | ||
23 | import org.eclipse.viatra.query.runtime.api.impl.BaseMatcher; | ||
24 | import org.eclipse.viatra.query.runtime.api.impl.BasePatternMatch; | ||
25 | import org.eclipse.viatra.query.runtime.emf.types.EClassTransitiveInstancesKey; | ||
26 | import org.eclipse.viatra.query.runtime.matchers.backend.QueryEvaluationHint; | ||
27 | import org.eclipse.viatra.query.runtime.matchers.psystem.PBody; | ||
28 | import org.eclipse.viatra.query.runtime.matchers.psystem.PVariable; | ||
29 | import org.eclipse.viatra.query.runtime.matchers.psystem.annotations.PAnnotation; | ||
30 | import org.eclipse.viatra.query.runtime.matchers.psystem.annotations.ParameterReference; | ||
31 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.ExportedParameter; | ||
32 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.BinaryTransitiveClosure; | ||
33 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.TypeConstraint; | ||
34 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameter; | ||
35 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameterDirection; | ||
36 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PVisibility; | ||
37 | import org.eclipse.viatra.query.runtime.matchers.tuple.Tuple; | ||
38 | import org.eclipse.viatra.query.runtime.matchers.tuple.Tuples; | ||
39 | import org.eclipse.viatra.query.runtime.util.ViatraQueryLoggingUtil; | ||
40 | import queries.DirectSupertype; | ||
41 | |||
42 | /** | ||
43 | * A pattern-specific query specification that can instantiate Matcher in a type-safe way. | ||
44 | * | ||
45 | * <p>Original source: | ||
46 | * <code><pre> | ||
47 | * {@literal @}Constraint(key={a}, severity="error", message="error") | ||
48 | * pattern loopInInheritence(a: EClass) { | ||
49 | * find directSupertype+(a,a); | ||
50 | * } | ||
51 | * </pre></code> | ||
52 | * | ||
53 | * @see Matcher | ||
54 | * @see Match | ||
55 | * | ||
56 | */ | ||
57 | @SuppressWarnings("all") | ||
58 | public final class LoopInInheritence extends BaseGeneratedEMFQuerySpecification<LoopInInheritence.Matcher> { | ||
59 | /** | ||
60 | * Pattern-specific match representation of the queries.loopInInheritence pattern, | ||
61 | * to be used in conjunction with {@link Matcher}. | ||
62 | * | ||
63 | * <p>Class fields correspond to parameters of the pattern. Fields with value null are considered unassigned. | ||
64 | * Each instance is a (possibly partial) substitution of pattern parameters, | ||
65 | * usable to represent a match of the pattern in the result of a query, | ||
66 | * or to specify the bound (fixed) input parameters when issuing a query. | ||
67 | * | ||
68 | * @see Matcher | ||
69 | * | ||
70 | */ | ||
71 | public static abstract class Match extends BasePatternMatch { | ||
72 | private EClass fA; | ||
73 | |||
74 | private static List<String> parameterNames = makeImmutableList("a"); | ||
75 | |||
76 | private Match(final EClass pA) { | ||
77 | this.fA = pA; | ||
78 | } | ||
79 | |||
80 | @Override | ||
81 | public Object get(final String parameterName) { | ||
82 | switch(parameterName) { | ||
83 | case "a": return this.fA; | ||
84 | default: return null; | ||
85 | } | ||
86 | } | ||
87 | |||
88 | @Override | ||
89 | public Object get(final int index) { | ||
90 | switch(index) { | ||
91 | case 0: return this.fA; | ||
92 | default: return null; | ||
93 | } | ||
94 | } | ||
95 | |||
96 | public EClass getA() { | ||
97 | return this.fA; | ||
98 | } | ||
99 | |||
100 | @Override | ||
101 | public boolean set(final String parameterName, final Object newValue) { | ||
102 | if (!isMutable()) throw new java.lang.UnsupportedOperationException(); | ||
103 | if ("a".equals(parameterName) ) { | ||
104 | this.fA = (EClass) newValue; | ||
105 | return true; | ||
106 | } | ||
107 | return false; | ||
108 | } | ||
109 | |||
110 | public void setA(final EClass pA) { | ||
111 | if (!isMutable()) throw new java.lang.UnsupportedOperationException(); | ||
112 | this.fA = pA; | ||
113 | } | ||
114 | |||
115 | @Override | ||
116 | public String patternName() { | ||
117 | return "queries.loopInInheritence"; | ||
118 | } | ||
119 | |||
120 | @Override | ||
121 | public List<String> parameterNames() { | ||
122 | return LoopInInheritence.Match.parameterNames; | ||
123 | } | ||
124 | |||
125 | @Override | ||
126 | public Object[] toArray() { | ||
127 | return new Object[]{fA}; | ||
128 | } | ||
129 | |||
130 | @Override | ||
131 | public LoopInInheritence.Match toImmutable() { | ||
132 | return isMutable() ? newMatch(fA) : this; | ||
133 | } | ||
134 | |||
135 | @Override | ||
136 | public String prettyPrint() { | ||
137 | StringBuilder result = new StringBuilder(); | ||
138 | result.append("\"a\"=" + prettyPrintValue(fA)); | ||
139 | return result.toString(); | ||
140 | } | ||
141 | |||
142 | @Override | ||
143 | public int hashCode() { | ||
144 | return Objects.hash(fA); | ||
145 | } | ||
146 | |||
147 | @Override | ||
148 | public boolean equals(final Object obj) { | ||
149 | if (this == obj) | ||
150 | return true; | ||
151 | if (obj == null) { | ||
152 | return false; | ||
153 | } | ||
154 | if ((obj instanceof LoopInInheritence.Match)) { | ||
155 | LoopInInheritence.Match other = (LoopInInheritence.Match) obj; | ||
156 | return Objects.equals(fA, other.fA); | ||
157 | } else { | ||
158 | // this should be infrequent | ||
159 | if (!(obj instanceof IPatternMatch)) { | ||
160 | return false; | ||
161 | } | ||
162 | IPatternMatch otherSig = (IPatternMatch) obj; | ||
163 | return Objects.equals(specification(), otherSig.specification()) && Arrays.deepEquals(toArray(), otherSig.toArray()); | ||
164 | } | ||
165 | } | ||
166 | |||
167 | @Override | ||
168 | public LoopInInheritence specification() { | ||
169 | return LoopInInheritence.instance(); | ||
170 | } | ||
171 | |||
172 | /** | ||
173 | * Returns an empty, mutable match. | ||
174 | * Fields of the mutable match can be filled to create a partial match, usable as matcher input. | ||
175 | * | ||
176 | * @return the empty match. | ||
177 | * | ||
178 | */ | ||
179 | public static LoopInInheritence.Match newEmptyMatch() { | ||
180 | return new Mutable(null); | ||
181 | } | ||
182 | |||
183 | /** | ||
184 | * Returns a mutable (partial) match. | ||
185 | * Fields of the mutable match can be filled to create a partial match, usable as matcher input. | ||
186 | * | ||
187 | * @param pA the fixed value of pattern parameter a, or null if not bound. | ||
188 | * @return the new, mutable (partial) match object. | ||
189 | * | ||
190 | */ | ||
191 | public static LoopInInheritence.Match newMutableMatch(final EClass pA) { | ||
192 | return new Mutable(pA); | ||
193 | } | ||
194 | |||
195 | /** | ||
196 | * Returns a new (partial) match. | ||
197 | * This can be used e.g. to call the matcher with a partial match. | ||
198 | * <p>The returned match will be immutable. Use {@link #newEmptyMatch()} to obtain a mutable match object. | ||
199 | * @param pA the fixed value of pattern parameter a, or null if not bound. | ||
200 | * @return the (partial) match object. | ||
201 | * | ||
202 | */ | ||
203 | public static LoopInInheritence.Match newMatch(final EClass pA) { | ||
204 | return new Immutable(pA); | ||
205 | } | ||
206 | |||
207 | private static final class Mutable extends LoopInInheritence.Match { | ||
208 | Mutable(final EClass pA) { | ||
209 | super(pA); | ||
210 | } | ||
211 | |||
212 | @Override | ||
213 | public boolean isMutable() { | ||
214 | return true; | ||
215 | } | ||
216 | } | ||
217 | |||
218 | private static final class Immutable extends LoopInInheritence.Match { | ||
219 | Immutable(final EClass pA) { | ||
220 | super(pA); | ||
221 | } | ||
222 | |||
223 | @Override | ||
224 | public boolean isMutable() { | ||
225 | return false; | ||
226 | } | ||
227 | } | ||
228 | } | ||
229 | |||
230 | /** | ||
231 | * Generated pattern matcher API of the queries.loopInInheritence pattern, | ||
232 | * providing pattern-specific query methods. | ||
233 | * | ||
234 | * <p>Use the pattern matcher on a given model via {@link #on(ViatraQueryEngine)}, | ||
235 | * e.g. in conjunction with {@link ViatraQueryEngine#on(QueryScope)}. | ||
236 | * | ||
237 | * <p>Matches of the pattern will be represented as {@link Match}. | ||
238 | * | ||
239 | * <p>Original source: | ||
240 | * <code><pre> | ||
241 | * {@literal @}Constraint(key={a}, severity="error", message="error") | ||
242 | * pattern loopInInheritence(a: EClass) { | ||
243 | * find directSupertype+(a,a); | ||
244 | * } | ||
245 | * </pre></code> | ||
246 | * | ||
247 | * @see Match | ||
248 | * @see LoopInInheritence | ||
249 | * | ||
250 | */ | ||
251 | public static class Matcher extends BaseMatcher<LoopInInheritence.Match> { | ||
252 | /** | ||
253 | * Initializes the pattern matcher within an existing VIATRA Query engine. | ||
254 | * If the pattern matcher is already constructed in the engine, only a light-weight reference is returned. | ||
255 | * | ||
256 | * @param engine the existing VIATRA Query engine in which this matcher will be created. | ||
257 | * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation | ||
258 | * | ||
259 | */ | ||
260 | public static LoopInInheritence.Matcher on(final ViatraQueryEngine engine) { | ||
261 | // check if matcher already exists | ||
262 | Matcher matcher = engine.getExistingMatcher(querySpecification()); | ||
263 | if (matcher == null) { | ||
264 | matcher = (Matcher)engine.getMatcher(querySpecification()); | ||
265 | } | ||
266 | return matcher; | ||
267 | } | ||
268 | |||
269 | /** | ||
270 | * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation | ||
271 | * @return an initialized matcher | ||
272 | * @noreference This method is for internal matcher initialization by the framework, do not call it manually. | ||
273 | * | ||
274 | */ | ||
275 | public static LoopInInheritence.Matcher create() { | ||
276 | return new Matcher(); | ||
277 | } | ||
278 | |||
279 | private static final int POSITION_A = 0; | ||
280 | |||
281 | private static final Logger LOGGER = ViatraQueryLoggingUtil.getLogger(LoopInInheritence.Matcher.class); | ||
282 | |||
283 | /** | ||
284 | * Initializes the pattern matcher within an existing VIATRA Query engine. | ||
285 | * If the pattern matcher is already constructed in the engine, only a light-weight reference is returned. | ||
286 | * | ||
287 | * @param engine the existing VIATRA Query engine in which this matcher will be created. | ||
288 | * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation | ||
289 | * | ||
290 | */ | ||
291 | private Matcher() { | ||
292 | super(querySpecification()); | ||
293 | } | ||
294 | |||
295 | /** | ||
296 | * Returns the set of all matches of the pattern that conform to the given fixed values of some parameters. | ||
297 | * @param pA the fixed value of pattern parameter a, or null if not bound. | ||
298 | * @return matches represented as a Match object. | ||
299 | * | ||
300 | */ | ||
301 | public Collection<LoopInInheritence.Match> getAllMatches(final EClass pA) { | ||
302 | return rawStreamAllMatches(new Object[]{pA}).collect(Collectors.toSet()); | ||
303 | } | ||
304 | |||
305 | /** | ||
306 | * Returns a stream of all matches of the pattern that conform to the given fixed values of some parameters. | ||
307 | * </p> | ||
308 | * <strong>NOTE</strong>: It is important not to modify the source model while the stream is being processed. | ||
309 | * If the match set of the pattern changes during processing, the contents of the stream is <strong>undefined</strong>. | ||
310 | * In such cases, either rely on {@link #getAllMatches()} or collect the results of the stream in end-user code. | ||
311 | * @param pA the fixed value of pattern parameter a, or null if not bound. | ||
312 | * @return a stream of matches represented as a Match object. | ||
313 | * | ||
314 | */ | ||
315 | public Stream<LoopInInheritence.Match> streamAllMatches(final EClass pA) { | ||
316 | return rawStreamAllMatches(new Object[]{pA}); | ||
317 | } | ||
318 | |||
319 | /** | ||
320 | * Returns an arbitrarily chosen match of the pattern that conforms to the given fixed values of some parameters. | ||
321 | * Neither determinism nor randomness of selection is guaranteed. | ||
322 | * @param pA the fixed value of pattern parameter a, or null if not bound. | ||
323 | * @return a match represented as a Match object, or null if no match is found. | ||
324 | * | ||
325 | */ | ||
326 | public Optional<LoopInInheritence.Match> getOneArbitraryMatch(final EClass pA) { | ||
327 | return rawGetOneArbitraryMatch(new Object[]{pA}); | ||
328 | } | ||
329 | |||
330 | /** | ||
331 | * Indicates whether the given combination of specified pattern parameters constitute a valid pattern match, | ||
332 | * under any possible substitution of the unspecified parameters (if any). | ||
333 | * @param pA the fixed value of pattern parameter a, or null if not bound. | ||
334 | * @return true if the input is a valid (partial) match of the pattern. | ||
335 | * | ||
336 | */ | ||
337 | public boolean hasMatch(final EClass pA) { | ||
338 | return rawHasMatch(new Object[]{pA}); | ||
339 | } | ||
340 | |||
341 | /** | ||
342 | * Returns the number of all matches of the pattern that conform to the given fixed values of some parameters. | ||
343 | * @param pA the fixed value of pattern parameter a, or null if not bound. | ||
344 | * @return the number of pattern matches found. | ||
345 | * | ||
346 | */ | ||
347 | public int countMatches(final EClass pA) { | ||
348 | return rawCountMatches(new Object[]{pA}); | ||
349 | } | ||
350 | |||
351 | /** | ||
352 | * Executes the given processor on an arbitrarily chosen match of the pattern that conforms to the given fixed values of some parameters. | ||
353 | * Neither determinism nor randomness of selection is guaranteed. | ||
354 | * @param pA the fixed value of pattern parameter a, or null if not bound. | ||
355 | * @param processor the action that will process the selected match. | ||
356 | * @return true if the pattern has at least one match with the given parameter values, false if the processor was not invoked | ||
357 | * | ||
358 | */ | ||
359 | public boolean forOneArbitraryMatch(final EClass pA, final Consumer<? super LoopInInheritence.Match> processor) { | ||
360 | return rawForOneArbitraryMatch(new Object[]{pA}, processor); | ||
361 | } | ||
362 | |||
363 | /** | ||
364 | * Returns a new (partial) match. | ||
365 | * This can be used e.g. to call the matcher with a partial match. | ||
366 | * <p>The returned match will be immutable. Use {@link #newEmptyMatch()} to obtain a mutable match object. | ||
367 | * @param pA the fixed value of pattern parameter a, or null if not bound. | ||
368 | * @return the (partial) match object. | ||
369 | * | ||
370 | */ | ||
371 | public LoopInInheritence.Match newMatch(final EClass pA) { | ||
372 | return LoopInInheritence.Match.newMatch(pA); | ||
373 | } | ||
374 | |||
375 | /** | ||
376 | * Retrieve the set of values that occur in matches for a. | ||
377 | * @return the Set of all values or empty set if there are no matches | ||
378 | * | ||
379 | */ | ||
380 | protected Stream<EClass> rawStreamAllValuesOfa(final Object[] parameters) { | ||
381 | return rawStreamAllValues(POSITION_A, parameters).map(EClass.class::cast); | ||
382 | } | ||
383 | |||
384 | /** | ||
385 | * Retrieve the set of values that occur in matches for a. | ||
386 | * @return the Set of all values or empty set if there are no matches | ||
387 | * | ||
388 | */ | ||
389 | public Set<EClass> getAllValuesOfa() { | ||
390 | return rawStreamAllValuesOfa(emptyArray()).collect(Collectors.toSet()); | ||
391 | } | ||
392 | |||
393 | /** | ||
394 | * Retrieve the set of values that occur in matches for a. | ||
395 | * @return the Set of all values or empty set if there are no matches | ||
396 | * | ||
397 | */ | ||
398 | public Stream<EClass> streamAllValuesOfa() { | ||
399 | return rawStreamAllValuesOfa(emptyArray()); | ||
400 | } | ||
401 | |||
402 | @Override | ||
403 | protected LoopInInheritence.Match tupleToMatch(final Tuple t) { | ||
404 | try { | ||
405 | return LoopInInheritence.Match.newMatch((EClass) t.get(POSITION_A)); | ||
406 | } catch(ClassCastException e) { | ||
407 | LOGGER.error("Element(s) in tuple not properly typed!",e); | ||
408 | return null; | ||
409 | } | ||
410 | } | ||
411 | |||
412 | @Override | ||
413 | protected LoopInInheritence.Match arrayToMatch(final Object[] match) { | ||
414 | try { | ||
415 | return LoopInInheritence.Match.newMatch((EClass) match[POSITION_A]); | ||
416 | } catch(ClassCastException e) { | ||
417 | LOGGER.error("Element(s) in array not properly typed!",e); | ||
418 | return null; | ||
419 | } | ||
420 | } | ||
421 | |||
422 | @Override | ||
423 | protected LoopInInheritence.Match arrayToMatchMutable(final Object[] match) { | ||
424 | try { | ||
425 | return LoopInInheritence.Match.newMutableMatch((EClass) match[POSITION_A]); | ||
426 | } catch(ClassCastException e) { | ||
427 | LOGGER.error("Element(s) in array not properly typed!",e); | ||
428 | return null; | ||
429 | } | ||
430 | } | ||
431 | |||
432 | /** | ||
433 | * @return the singleton instance of the query specification of this pattern | ||
434 | * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded | ||
435 | * | ||
436 | */ | ||
437 | public static IQuerySpecification<LoopInInheritence.Matcher> querySpecification() { | ||
438 | return LoopInInheritence.instance(); | ||
439 | } | ||
440 | } | ||
441 | |||
442 | private LoopInInheritence() { | ||
443 | super(GeneratedPQuery.INSTANCE); | ||
444 | } | ||
445 | |||
446 | /** | ||
447 | * @return the singleton instance of the query specification | ||
448 | * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded | ||
449 | * | ||
450 | */ | ||
451 | public static LoopInInheritence instance() { | ||
452 | try{ | ||
453 | return LazyHolder.INSTANCE; | ||
454 | } catch (ExceptionInInitializerError err) { | ||
455 | throw processInitializerError(err); | ||
456 | } | ||
457 | } | ||
458 | |||
459 | @Override | ||
460 | protected LoopInInheritence.Matcher instantiate(final ViatraQueryEngine engine) { | ||
461 | return LoopInInheritence.Matcher.on(engine); | ||
462 | } | ||
463 | |||
464 | @Override | ||
465 | public LoopInInheritence.Matcher instantiate() { | ||
466 | return LoopInInheritence.Matcher.create(); | ||
467 | } | ||
468 | |||
469 | @Override | ||
470 | public LoopInInheritence.Match newEmptyMatch() { | ||
471 | return LoopInInheritence.Match.newEmptyMatch(); | ||
472 | } | ||
473 | |||
474 | @Override | ||
475 | public LoopInInheritence.Match newMatch(final Object... parameters) { | ||
476 | return LoopInInheritence.Match.newMatch((org.eclipse.emf.ecore.EClass) parameters[0]); | ||
477 | } | ||
478 | |||
479 | /** | ||
480 | * Inner class allowing the singleton instance of {@link LoopInInheritence} to be created | ||
481 | * <b>not</b> at the class load time of the outer class, | ||
482 | * but rather at the first call to {@link LoopInInheritence#instance()}. | ||
483 | * | ||
484 | * <p> This workaround is required e.g. to support recursion. | ||
485 | * | ||
486 | */ | ||
487 | private static class LazyHolder { | ||
488 | private static final LoopInInheritence INSTANCE = new LoopInInheritence(); | ||
489 | |||
490 | /** | ||
491 | * Statically initializes the query specification <b>after</b> the field {@link #INSTANCE} is assigned. | ||
492 | * This initialization order is required to support indirect recursion. | ||
493 | * | ||
494 | * <p> The static initializer is defined using a helper field to work around limitations of the code generator. | ||
495 | * | ||
496 | */ | ||
497 | private static final Object STATIC_INITIALIZER = ensureInitialized(); | ||
498 | |||
499 | public static Object ensureInitialized() { | ||
500 | INSTANCE.ensureInitializedInternal(); | ||
501 | return null; | ||
502 | } | ||
503 | } | ||
504 | |||
505 | private static class GeneratedPQuery extends BaseGeneratedEMFPQuery { | ||
506 | private static final LoopInInheritence.GeneratedPQuery INSTANCE = new GeneratedPQuery(); | ||
507 | |||
508 | private final PParameter parameter_a = new PParameter("a", "org.eclipse.emf.ecore.EClass", new EClassTransitiveInstancesKey((EClass)getClassifierLiteralSafe("http://www.eclipse.org/emf/2002/Ecore", "EClass")), PParameterDirection.INOUT); | ||
509 | |||
510 | private final List<PParameter> parameters = Arrays.asList(parameter_a); | ||
511 | |||
512 | private GeneratedPQuery() { | ||
513 | super(PVisibility.PUBLIC); | ||
514 | } | ||
515 | |||
516 | @Override | ||
517 | public String getFullyQualifiedName() { | ||
518 | return "queries.loopInInheritence"; | ||
519 | } | ||
520 | |||
521 | @Override | ||
522 | public List<String> getParameterNames() { | ||
523 | return Arrays.asList("a"); | ||
524 | } | ||
525 | |||
526 | @Override | ||
527 | public List<PParameter> getParameters() { | ||
528 | return parameters; | ||
529 | } | ||
530 | |||
531 | @Override | ||
532 | public Set<PBody> doGetContainedBodies() { | ||
533 | setEvaluationHints(new QueryEvaluationHint(null, QueryEvaluationHint.BackendRequirement.UNSPECIFIED)); | ||
534 | Set<PBody> bodies = new LinkedHashSet<>(); | ||
535 | { | ||
536 | PBody body = new PBody(this); | ||
537 | PVariable var_a = body.getOrCreateVariableByName("a"); | ||
538 | new TypeConstraint(body, Tuples.flatTupleOf(var_a), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.eclipse.org/emf/2002/Ecore", "EClass"))); | ||
539 | body.setSymbolicParameters(Arrays.<ExportedParameter>asList( | ||
540 | new ExportedParameter(body, var_a, parameter_a) | ||
541 | )); | ||
542 | // find directSupertype+(a,a) | ||
543 | new BinaryTransitiveClosure(body, Tuples.flatTupleOf(var_a, var_a), DirectSupertype.instance().getInternalQueryRepresentation()); | ||
544 | bodies.add(body); | ||
545 | } | ||
546 | { | ||
547 | PAnnotation annotation = new PAnnotation("Constraint"); | ||
548 | annotation.addAttribute("key", Arrays.asList(new Object[] { | ||
549 | new ParameterReference("a") | ||
550 | })); | ||
551 | annotation.addAttribute("severity", "error"); | ||
552 | annotation.addAttribute("message", "error"); | ||
553 | addAnnotation(annotation); | ||
554 | } | ||
555 | return bodies; | ||
556 | } | ||
557 | } | ||
558 | } | ||
diff --git a/Metrics/Metrics-Calculation/SocialNetwork_plugin/src-gen/queries/NonSymmetricOpposite.java b/Metrics/Metrics-Calculation/SocialNetwork_plugin/src-gen/queries/NonSymmetricOpposite.java new file mode 100644 index 00000000..c98014f5 --- /dev/null +++ b/Metrics/Metrics-Calculation/SocialNetwork_plugin/src-gen/queries/NonSymmetricOpposite.java | |||
@@ -0,0 +1,718 @@ | |||
1 | /** | ||
2 | * Generated from platform:/resource/SocialNetwork_plugin/queries/queries/Ecore.vql | ||
3 | */ | ||
4 | package queries; | ||
5 | |||
6 | import java.util.Arrays; | ||
7 | import java.util.Collection; | ||
8 | import java.util.LinkedHashSet; | ||
9 | import java.util.List; | ||
10 | import java.util.Objects; | ||
11 | import java.util.Optional; | ||
12 | import java.util.Set; | ||
13 | import java.util.function.Consumer; | ||
14 | import java.util.stream.Collectors; | ||
15 | import java.util.stream.Stream; | ||
16 | import org.apache.log4j.Logger; | ||
17 | import org.eclipse.emf.ecore.EClass; | ||
18 | import org.eclipse.emf.ecore.EReference; | ||
19 | import org.eclipse.viatra.query.runtime.api.IPatternMatch; | ||
20 | import org.eclipse.viatra.query.runtime.api.IQuerySpecification; | ||
21 | import org.eclipse.viatra.query.runtime.api.ViatraQueryEngine; | ||
22 | import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFPQuery; | ||
23 | import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFQuerySpecification; | ||
24 | import org.eclipse.viatra.query.runtime.api.impl.BaseMatcher; | ||
25 | import org.eclipse.viatra.query.runtime.api.impl.BasePatternMatch; | ||
26 | import org.eclipse.viatra.query.runtime.emf.types.EClassTransitiveInstancesKey; | ||
27 | import org.eclipse.viatra.query.runtime.matchers.backend.QueryEvaluationHint; | ||
28 | import org.eclipse.viatra.query.runtime.matchers.psystem.PBody; | ||
29 | import org.eclipse.viatra.query.runtime.matchers.psystem.PVariable; | ||
30 | import org.eclipse.viatra.query.runtime.matchers.psystem.annotations.PAnnotation; | ||
31 | import org.eclipse.viatra.query.runtime.matchers.psystem.annotations.ParameterReference; | ||
32 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.ExportedParameter; | ||
33 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.NegativePatternCall; | ||
34 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.PositivePatternCall; | ||
35 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.TypeConstraint; | ||
36 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameter; | ||
37 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameterDirection; | ||
38 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PVisibility; | ||
39 | import org.eclipse.viatra.query.runtime.matchers.tuple.Tuple; | ||
40 | import org.eclipse.viatra.query.runtime.matchers.tuple.Tuples; | ||
41 | import org.eclipse.viatra.query.runtime.util.ViatraQueryLoggingUtil; | ||
42 | import queries.Opposite; | ||
43 | |||
44 | /** | ||
45 | * A pattern-specific query specification that can instantiate Matcher in a type-safe way. | ||
46 | * | ||
47 | * <p>Original source: | ||
48 | * <code><pre> | ||
49 | * {@literal @}Constraint(key={a}, severity="error", message="error") | ||
50 | * pattern nonSymmetricOpposite(a:EReference, b:EReference) { | ||
51 | * find opposite(a,b); | ||
52 | * neg find opposite(b,a); | ||
53 | * } | ||
54 | * </pre></code> | ||
55 | * | ||
56 | * @see Matcher | ||
57 | * @see Match | ||
58 | * | ||
59 | */ | ||
60 | @SuppressWarnings("all") | ||
61 | public final class NonSymmetricOpposite extends BaseGeneratedEMFQuerySpecification<NonSymmetricOpposite.Matcher> { | ||
62 | /** | ||
63 | * Pattern-specific match representation of the queries.nonSymmetricOpposite pattern, | ||
64 | * to be used in conjunction with {@link Matcher}. | ||
65 | * | ||
66 | * <p>Class fields correspond to parameters of the pattern. Fields with value null are considered unassigned. | ||
67 | * Each instance is a (possibly partial) substitution of pattern parameters, | ||
68 | * usable to represent a match of the pattern in the result of a query, | ||
69 | * or to specify the bound (fixed) input parameters when issuing a query. | ||
70 | * | ||
71 | * @see Matcher | ||
72 | * | ||
73 | */ | ||
74 | public static abstract class Match extends BasePatternMatch { | ||
75 | private EReference fA; | ||
76 | |||
77 | private EReference fB; | ||
78 | |||
79 | private static List<String> parameterNames = makeImmutableList("a", "b"); | ||
80 | |||
81 | private Match(final EReference pA, final EReference pB) { | ||
82 | this.fA = pA; | ||
83 | this.fB = pB; | ||
84 | } | ||
85 | |||
86 | @Override | ||
87 | public Object get(final String parameterName) { | ||
88 | switch(parameterName) { | ||
89 | case "a": return this.fA; | ||
90 | case "b": return this.fB; | ||
91 | default: return null; | ||
92 | } | ||
93 | } | ||
94 | |||
95 | @Override | ||
96 | public Object get(final int index) { | ||
97 | switch(index) { | ||
98 | case 0: return this.fA; | ||
99 | case 1: return this.fB; | ||
100 | default: return null; | ||
101 | } | ||
102 | } | ||
103 | |||
104 | public EReference getA() { | ||
105 | return this.fA; | ||
106 | } | ||
107 | |||
108 | public EReference getB() { | ||
109 | return this.fB; | ||
110 | } | ||
111 | |||
112 | @Override | ||
113 | public boolean set(final String parameterName, final Object newValue) { | ||
114 | if (!isMutable()) throw new java.lang.UnsupportedOperationException(); | ||
115 | if ("a".equals(parameterName) ) { | ||
116 | this.fA = (EReference) newValue; | ||
117 | return true; | ||
118 | } | ||
119 | if ("b".equals(parameterName) ) { | ||
120 | this.fB = (EReference) newValue; | ||
121 | return true; | ||
122 | } | ||
123 | return false; | ||
124 | } | ||
125 | |||
126 | public void setA(final EReference pA) { | ||
127 | if (!isMutable()) throw new java.lang.UnsupportedOperationException(); | ||
128 | this.fA = pA; | ||
129 | } | ||
130 | |||
131 | public void setB(final EReference pB) { | ||
132 | if (!isMutable()) throw new java.lang.UnsupportedOperationException(); | ||
133 | this.fB = pB; | ||
134 | } | ||
135 | |||
136 | @Override | ||
137 | public String patternName() { | ||
138 | return "queries.nonSymmetricOpposite"; | ||
139 | } | ||
140 | |||
141 | @Override | ||
142 | public List<String> parameterNames() { | ||
143 | return NonSymmetricOpposite.Match.parameterNames; | ||
144 | } | ||
145 | |||
146 | @Override | ||
147 | public Object[] toArray() { | ||
148 | return new Object[]{fA, fB}; | ||
149 | } | ||
150 | |||
151 | @Override | ||
152 | public NonSymmetricOpposite.Match toImmutable() { | ||
153 | return isMutable() ? newMatch(fA, fB) : this; | ||
154 | } | ||
155 | |||
156 | @Override | ||
157 | public String prettyPrint() { | ||
158 | StringBuilder result = new StringBuilder(); | ||
159 | result.append("\"a\"=" + prettyPrintValue(fA) + ", "); | ||
160 | result.append("\"b\"=" + prettyPrintValue(fB)); | ||
161 | return result.toString(); | ||
162 | } | ||
163 | |||
164 | @Override | ||
165 | public int hashCode() { | ||
166 | return Objects.hash(fA, fB); | ||
167 | } | ||
168 | |||
169 | @Override | ||
170 | public boolean equals(final Object obj) { | ||
171 | if (this == obj) | ||
172 | return true; | ||
173 | if (obj == null) { | ||
174 | return false; | ||
175 | } | ||
176 | if ((obj instanceof NonSymmetricOpposite.Match)) { | ||
177 | NonSymmetricOpposite.Match other = (NonSymmetricOpposite.Match) obj; | ||
178 | return Objects.equals(fA, other.fA) && Objects.equals(fB, other.fB); | ||
179 | } else { | ||
180 | // this should be infrequent | ||
181 | if (!(obj instanceof IPatternMatch)) { | ||
182 | return false; | ||
183 | } | ||
184 | IPatternMatch otherSig = (IPatternMatch) obj; | ||
185 | return Objects.equals(specification(), otherSig.specification()) && Arrays.deepEquals(toArray(), otherSig.toArray()); | ||
186 | } | ||
187 | } | ||
188 | |||
189 | @Override | ||
190 | public NonSymmetricOpposite specification() { | ||
191 | return NonSymmetricOpposite.instance(); | ||
192 | } | ||
193 | |||
194 | /** | ||
195 | * Returns an empty, mutable match. | ||
196 | * Fields of the mutable match can be filled to create a partial match, usable as matcher input. | ||
197 | * | ||
198 | * @return the empty match. | ||
199 | * | ||
200 | */ | ||
201 | public static NonSymmetricOpposite.Match newEmptyMatch() { | ||
202 | return new Mutable(null, null); | ||
203 | } | ||
204 | |||
205 | /** | ||
206 | * Returns a mutable (partial) match. | ||
207 | * Fields of the mutable match can be filled to create a partial match, usable as matcher input. | ||
208 | * | ||
209 | * @param pA the fixed value of pattern parameter a, or null if not bound. | ||
210 | * @param pB the fixed value of pattern parameter b, or null if not bound. | ||
211 | * @return the new, mutable (partial) match object. | ||
212 | * | ||
213 | */ | ||
214 | public static NonSymmetricOpposite.Match newMutableMatch(final EReference pA, final EReference pB) { | ||
215 | return new Mutable(pA, pB); | ||
216 | } | ||
217 | |||
218 | /** | ||
219 | * Returns a new (partial) match. | ||
220 | * This can be used e.g. to call the matcher with a partial match. | ||
221 | * <p>The returned match will be immutable. Use {@link #newEmptyMatch()} to obtain a mutable match object. | ||
222 | * @param pA the fixed value of pattern parameter a, or null if not bound. | ||
223 | * @param pB the fixed value of pattern parameter b, or null if not bound. | ||
224 | * @return the (partial) match object. | ||
225 | * | ||
226 | */ | ||
227 | public static NonSymmetricOpposite.Match newMatch(final EReference pA, final EReference pB) { | ||
228 | return new Immutable(pA, pB); | ||
229 | } | ||
230 | |||
231 | private static final class Mutable extends NonSymmetricOpposite.Match { | ||
232 | Mutable(final EReference pA, final EReference pB) { | ||
233 | super(pA, pB); | ||
234 | } | ||
235 | |||
236 | @Override | ||
237 | public boolean isMutable() { | ||
238 | return true; | ||
239 | } | ||
240 | } | ||
241 | |||
242 | private static final class Immutable extends NonSymmetricOpposite.Match { | ||
243 | Immutable(final EReference pA, final EReference pB) { | ||
244 | super(pA, pB); | ||
245 | } | ||
246 | |||
247 | @Override | ||
248 | public boolean isMutable() { | ||
249 | return false; | ||
250 | } | ||
251 | } | ||
252 | } | ||
253 | |||
254 | /** | ||
255 | * Generated pattern matcher API of the queries.nonSymmetricOpposite pattern, | ||
256 | * providing pattern-specific query methods. | ||
257 | * | ||
258 | * <p>Use the pattern matcher on a given model via {@link #on(ViatraQueryEngine)}, | ||
259 | * e.g. in conjunction with {@link ViatraQueryEngine#on(QueryScope)}. | ||
260 | * | ||
261 | * <p>Matches of the pattern will be represented as {@link Match}. | ||
262 | * | ||
263 | * <p>Original source: | ||
264 | * <code><pre> | ||
265 | * {@literal @}Constraint(key={a}, severity="error", message="error") | ||
266 | * pattern nonSymmetricOpposite(a:EReference, b:EReference) { | ||
267 | * find opposite(a,b); | ||
268 | * neg find opposite(b,a); | ||
269 | * } | ||
270 | * </pre></code> | ||
271 | * | ||
272 | * @see Match | ||
273 | * @see NonSymmetricOpposite | ||
274 | * | ||
275 | */ | ||
276 | public static class Matcher extends BaseMatcher<NonSymmetricOpposite.Match> { | ||
277 | /** | ||
278 | * Initializes the pattern matcher within an existing VIATRA Query engine. | ||
279 | * If the pattern matcher is already constructed in the engine, only a light-weight reference is returned. | ||
280 | * | ||
281 | * @param engine the existing VIATRA Query engine in which this matcher will be created. | ||
282 | * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation | ||
283 | * | ||
284 | */ | ||
285 | public static NonSymmetricOpposite.Matcher on(final ViatraQueryEngine engine) { | ||
286 | // check if matcher already exists | ||
287 | Matcher matcher = engine.getExistingMatcher(querySpecification()); | ||
288 | if (matcher == null) { | ||
289 | matcher = (Matcher)engine.getMatcher(querySpecification()); | ||
290 | } | ||
291 | return matcher; | ||
292 | } | ||
293 | |||
294 | /** | ||
295 | * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation | ||
296 | * @return an initialized matcher | ||
297 | * @noreference This method is for internal matcher initialization by the framework, do not call it manually. | ||
298 | * | ||
299 | */ | ||
300 | public static NonSymmetricOpposite.Matcher create() { | ||
301 | return new Matcher(); | ||
302 | } | ||
303 | |||
304 | private static final int POSITION_A = 0; | ||
305 | |||
306 | private static final int POSITION_B = 1; | ||
307 | |||
308 | private static final Logger LOGGER = ViatraQueryLoggingUtil.getLogger(NonSymmetricOpposite.Matcher.class); | ||
309 | |||
310 | /** | ||
311 | * Initializes the pattern matcher within an existing VIATRA Query engine. | ||
312 | * If the pattern matcher is already constructed in the engine, only a light-weight reference is returned. | ||
313 | * | ||
314 | * @param engine the existing VIATRA Query engine in which this matcher will be created. | ||
315 | * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation | ||
316 | * | ||
317 | */ | ||
318 | private Matcher() { | ||
319 | super(querySpecification()); | ||
320 | } | ||
321 | |||
322 | /** | ||
323 | * Returns the set of all matches of the pattern that conform to the given fixed values of some parameters. | ||
324 | * @param pA the fixed value of pattern parameter a, or null if not bound. | ||
325 | * @param pB the fixed value of pattern parameter b, or null if not bound. | ||
326 | * @return matches represented as a Match object. | ||
327 | * | ||
328 | */ | ||
329 | public Collection<NonSymmetricOpposite.Match> getAllMatches(final EReference pA, final EReference pB) { | ||
330 | return rawStreamAllMatches(new Object[]{pA, pB}).collect(Collectors.toSet()); | ||
331 | } | ||
332 | |||
333 | /** | ||
334 | * Returns a stream of all matches of the pattern that conform to the given fixed values of some parameters. | ||
335 | * </p> | ||
336 | * <strong>NOTE</strong>: It is important not to modify the source model while the stream is being processed. | ||
337 | * If the match set of the pattern changes during processing, the contents of the stream is <strong>undefined</strong>. | ||
338 | * In such cases, either rely on {@link #getAllMatches()} or collect the results of the stream in end-user code. | ||
339 | * @param pA the fixed value of pattern parameter a, or null if not bound. | ||
340 | * @param pB the fixed value of pattern parameter b, or null if not bound. | ||
341 | * @return a stream of matches represented as a Match object. | ||
342 | * | ||
343 | */ | ||
344 | public Stream<NonSymmetricOpposite.Match> streamAllMatches(final EReference pA, final EReference pB) { | ||
345 | return rawStreamAllMatches(new Object[]{pA, pB}); | ||
346 | } | ||
347 | |||
348 | /** | ||
349 | * Returns an arbitrarily chosen match of the pattern that conforms to the given fixed values of some parameters. | ||
350 | * Neither determinism nor randomness of selection is guaranteed. | ||
351 | * @param pA the fixed value of pattern parameter a, or null if not bound. | ||
352 | * @param pB the fixed value of pattern parameter b, or null if not bound. | ||
353 | * @return a match represented as a Match object, or null if no match is found. | ||
354 | * | ||
355 | */ | ||
356 | public Optional<NonSymmetricOpposite.Match> getOneArbitraryMatch(final EReference pA, final EReference pB) { | ||
357 | return rawGetOneArbitraryMatch(new Object[]{pA, pB}); | ||
358 | } | ||
359 | |||
360 | /** | ||
361 | * Indicates whether the given combination of specified pattern parameters constitute a valid pattern match, | ||
362 | * under any possible substitution of the unspecified parameters (if any). | ||
363 | * @param pA the fixed value of pattern parameter a, or null if not bound. | ||
364 | * @param pB the fixed value of pattern parameter b, or null if not bound. | ||
365 | * @return true if the input is a valid (partial) match of the pattern. | ||
366 | * | ||
367 | */ | ||
368 | public boolean hasMatch(final EReference pA, final EReference pB) { | ||
369 | return rawHasMatch(new Object[]{pA, pB}); | ||
370 | } | ||
371 | |||
372 | /** | ||
373 | * Returns the number of all matches of the pattern that conform to the given fixed values of some parameters. | ||
374 | * @param pA the fixed value of pattern parameter a, or null if not bound. | ||
375 | * @param pB the fixed value of pattern parameter b, or null if not bound. | ||
376 | * @return the number of pattern matches found. | ||
377 | * | ||
378 | */ | ||
379 | public int countMatches(final EReference pA, final EReference pB) { | ||
380 | return rawCountMatches(new Object[]{pA, pB}); | ||
381 | } | ||
382 | |||
383 | /** | ||
384 | * Executes the given processor on an arbitrarily chosen match of the pattern that conforms to the given fixed values of some parameters. | ||
385 | * Neither determinism nor randomness of selection is guaranteed. | ||
386 | * @param pA the fixed value of pattern parameter a, or null if not bound. | ||
387 | * @param pB the fixed value of pattern parameter b, or null if not bound. | ||
388 | * @param processor the action that will process the selected match. | ||
389 | * @return true if the pattern has at least one match with the given parameter values, false if the processor was not invoked | ||
390 | * | ||
391 | */ | ||
392 | public boolean forOneArbitraryMatch(final EReference pA, final EReference pB, final Consumer<? super NonSymmetricOpposite.Match> processor) { | ||
393 | return rawForOneArbitraryMatch(new Object[]{pA, pB}, processor); | ||
394 | } | ||
395 | |||
396 | /** | ||
397 | * Returns a new (partial) match. | ||
398 | * This can be used e.g. to call the matcher with a partial match. | ||
399 | * <p>The returned match will be immutable. Use {@link #newEmptyMatch()} to obtain a mutable match object. | ||
400 | * @param pA the fixed value of pattern parameter a, or null if not bound. | ||
401 | * @param pB the fixed value of pattern parameter b, or null if not bound. | ||
402 | * @return the (partial) match object. | ||
403 | * | ||
404 | */ | ||
405 | public NonSymmetricOpposite.Match newMatch(final EReference pA, final EReference pB) { | ||
406 | return NonSymmetricOpposite.Match.newMatch(pA, pB); | ||
407 | } | ||
408 | |||
409 | /** | ||
410 | * Retrieve the set of values that occur in matches for a. | ||
411 | * @return the Set of all values or empty set if there are no matches | ||
412 | * | ||
413 | */ | ||
414 | protected Stream<EReference> rawStreamAllValuesOfa(final Object[] parameters) { | ||
415 | return rawStreamAllValues(POSITION_A, parameters).map(EReference.class::cast); | ||
416 | } | ||
417 | |||
418 | /** | ||
419 | * Retrieve the set of values that occur in matches for a. | ||
420 | * @return the Set of all values or empty set if there are no matches | ||
421 | * | ||
422 | */ | ||
423 | public Set<EReference> getAllValuesOfa() { | ||
424 | return rawStreamAllValuesOfa(emptyArray()).collect(Collectors.toSet()); | ||
425 | } | ||
426 | |||
427 | /** | ||
428 | * Retrieve the set of values that occur in matches for a. | ||
429 | * @return the Set of all values or empty set if there are no matches | ||
430 | * | ||
431 | */ | ||
432 | public Stream<EReference> streamAllValuesOfa() { | ||
433 | return rawStreamAllValuesOfa(emptyArray()); | ||
434 | } | ||
435 | |||
436 | /** | ||
437 | * Retrieve the set of values that occur in matches for a. | ||
438 | * </p> | ||
439 | * <strong>NOTE</strong>: It is important not to modify the source model while the stream is being processed. | ||
440 | * If the match set of the pattern changes during processing, the contents of the stream is <strong>undefined</strong>. | ||
441 | * In such cases, either rely on {@link #getAllMatches()} or collect the results of the stream in end-user code. | ||
442 | * | ||
443 | * @return the Stream of all values or empty set if there are no matches | ||
444 | * | ||
445 | */ | ||
446 | public Stream<EReference> streamAllValuesOfa(final NonSymmetricOpposite.Match partialMatch) { | ||
447 | return rawStreamAllValuesOfa(partialMatch.toArray()); | ||
448 | } | ||
449 | |||
450 | /** | ||
451 | * Retrieve the set of values that occur in matches for a. | ||
452 | * </p> | ||
453 | * <strong>NOTE</strong>: It is important not to modify the source model while the stream is being processed. | ||
454 | * If the match set of the pattern changes during processing, the contents of the stream is <strong>undefined</strong>. | ||
455 | * In such cases, either rely on {@link #getAllMatches()} or collect the results of the stream in end-user code. | ||
456 | * | ||
457 | * @return the Stream of all values or empty set if there are no matches | ||
458 | * | ||
459 | */ | ||
460 | public Stream<EReference> streamAllValuesOfa(final EReference pB) { | ||
461 | return rawStreamAllValuesOfa(new Object[]{null, pB}); | ||
462 | } | ||
463 | |||
464 | /** | ||
465 | * Retrieve the set of values that occur in matches for a. | ||
466 | * @return the Set of all values or empty set if there are no matches | ||
467 | * | ||
468 | */ | ||
469 | public Set<EReference> getAllValuesOfa(final NonSymmetricOpposite.Match partialMatch) { | ||
470 | return rawStreamAllValuesOfa(partialMatch.toArray()).collect(Collectors.toSet()); | ||
471 | } | ||
472 | |||
473 | /** | ||
474 | * Retrieve the set of values that occur in matches for a. | ||
475 | * @return the Set of all values or empty set if there are no matches | ||
476 | * | ||
477 | */ | ||
478 | public Set<EReference> getAllValuesOfa(final EReference pB) { | ||
479 | return rawStreamAllValuesOfa(new Object[]{null, pB}).collect(Collectors.toSet()); | ||
480 | } | ||
481 | |||
482 | /** | ||
483 | * Retrieve the set of values that occur in matches for b. | ||
484 | * @return the Set of all values or empty set if there are no matches | ||
485 | * | ||
486 | */ | ||
487 | protected Stream<EReference> rawStreamAllValuesOfb(final Object[] parameters) { | ||
488 | return rawStreamAllValues(POSITION_B, parameters).map(EReference.class::cast); | ||
489 | } | ||
490 | |||
491 | /** | ||
492 | * Retrieve the set of values that occur in matches for b. | ||
493 | * @return the Set of all values or empty set if there are no matches | ||
494 | * | ||
495 | */ | ||
496 | public Set<EReference> getAllValuesOfb() { | ||
497 | return rawStreamAllValuesOfb(emptyArray()).collect(Collectors.toSet()); | ||
498 | } | ||
499 | |||
500 | /** | ||
501 | * Retrieve the set of values that occur in matches for b. | ||
502 | * @return the Set of all values or empty set if there are no matches | ||
503 | * | ||
504 | */ | ||
505 | public Stream<EReference> streamAllValuesOfb() { | ||
506 | return rawStreamAllValuesOfb(emptyArray()); | ||
507 | } | ||
508 | |||
509 | /** | ||
510 | * Retrieve the set of values that occur in matches for b. | ||
511 | * </p> | ||
512 | * <strong>NOTE</strong>: It is important not to modify the source model while the stream is being processed. | ||
513 | * If the match set of the pattern changes during processing, the contents of the stream is <strong>undefined</strong>. | ||
514 | * In such cases, either rely on {@link #getAllMatches()} or collect the results of the stream in end-user code. | ||
515 | * | ||
516 | * @return the Stream of all values or empty set if there are no matches | ||
517 | * | ||
518 | */ | ||
519 | public Stream<EReference> streamAllValuesOfb(final NonSymmetricOpposite.Match partialMatch) { | ||
520 | return rawStreamAllValuesOfb(partialMatch.toArray()); | ||
521 | } | ||
522 | |||
523 | /** | ||
524 | * Retrieve the set of values that occur in matches for b. | ||
525 | * </p> | ||
526 | * <strong>NOTE</strong>: It is important not to modify the source model while the stream is being processed. | ||
527 | * If the match set of the pattern changes during processing, the contents of the stream is <strong>undefined</strong>. | ||
528 | * In such cases, either rely on {@link #getAllMatches()} or collect the results of the stream in end-user code. | ||
529 | * | ||
530 | * @return the Stream of all values or empty set if there are no matches | ||
531 | * | ||
532 | */ | ||
533 | public Stream<EReference> streamAllValuesOfb(final EReference pA) { | ||
534 | return rawStreamAllValuesOfb(new Object[]{pA, null}); | ||
535 | } | ||
536 | |||
537 | /** | ||
538 | * Retrieve the set of values that occur in matches for b. | ||
539 | * @return the Set of all values or empty set if there are no matches | ||
540 | * | ||
541 | */ | ||
542 | public Set<EReference> getAllValuesOfb(final NonSymmetricOpposite.Match partialMatch) { | ||
543 | return rawStreamAllValuesOfb(partialMatch.toArray()).collect(Collectors.toSet()); | ||
544 | } | ||
545 | |||
546 | /** | ||
547 | * Retrieve the set of values that occur in matches for b. | ||
548 | * @return the Set of all values or empty set if there are no matches | ||
549 | * | ||
550 | */ | ||
551 | public Set<EReference> getAllValuesOfb(final EReference pA) { | ||
552 | return rawStreamAllValuesOfb(new Object[]{pA, null}).collect(Collectors.toSet()); | ||
553 | } | ||
554 | |||
555 | @Override | ||
556 | protected NonSymmetricOpposite.Match tupleToMatch(final Tuple t) { | ||
557 | try { | ||
558 | return NonSymmetricOpposite.Match.newMatch((EReference) t.get(POSITION_A), (EReference) t.get(POSITION_B)); | ||
559 | } catch(ClassCastException e) { | ||
560 | LOGGER.error("Element(s) in tuple not properly typed!",e); | ||
561 | return null; | ||
562 | } | ||
563 | } | ||
564 | |||
565 | @Override | ||
566 | protected NonSymmetricOpposite.Match arrayToMatch(final Object[] match) { | ||
567 | try { | ||
568 | return NonSymmetricOpposite.Match.newMatch((EReference) match[POSITION_A], (EReference) match[POSITION_B]); | ||
569 | } catch(ClassCastException e) { | ||
570 | LOGGER.error("Element(s) in array not properly typed!",e); | ||
571 | return null; | ||
572 | } | ||
573 | } | ||
574 | |||
575 | @Override | ||
576 | protected NonSymmetricOpposite.Match arrayToMatchMutable(final Object[] match) { | ||
577 | try { | ||
578 | return NonSymmetricOpposite.Match.newMutableMatch((EReference) match[POSITION_A], (EReference) match[POSITION_B]); | ||
579 | } catch(ClassCastException e) { | ||
580 | LOGGER.error("Element(s) in array not properly typed!",e); | ||
581 | return null; | ||
582 | } | ||
583 | } | ||
584 | |||
585 | /** | ||
586 | * @return the singleton instance of the query specification of this pattern | ||
587 | * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded | ||
588 | * | ||
589 | */ | ||
590 | public static IQuerySpecification<NonSymmetricOpposite.Matcher> querySpecification() { | ||
591 | return NonSymmetricOpposite.instance(); | ||
592 | } | ||
593 | } | ||
594 | |||
595 | private NonSymmetricOpposite() { | ||
596 | super(GeneratedPQuery.INSTANCE); | ||
597 | } | ||
598 | |||
599 | /** | ||
600 | * @return the singleton instance of the query specification | ||
601 | * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded | ||
602 | * | ||
603 | */ | ||
604 | public static NonSymmetricOpposite instance() { | ||
605 | try{ | ||
606 | return LazyHolder.INSTANCE; | ||
607 | } catch (ExceptionInInitializerError err) { | ||
608 | throw processInitializerError(err); | ||
609 | } | ||
610 | } | ||
611 | |||
612 | @Override | ||
613 | protected NonSymmetricOpposite.Matcher instantiate(final ViatraQueryEngine engine) { | ||
614 | return NonSymmetricOpposite.Matcher.on(engine); | ||
615 | } | ||
616 | |||
617 | @Override | ||
618 | public NonSymmetricOpposite.Matcher instantiate() { | ||
619 | return NonSymmetricOpposite.Matcher.create(); | ||
620 | } | ||
621 | |||
622 | @Override | ||
623 | public NonSymmetricOpposite.Match newEmptyMatch() { | ||
624 | return NonSymmetricOpposite.Match.newEmptyMatch(); | ||
625 | } | ||
626 | |||
627 | @Override | ||
628 | public NonSymmetricOpposite.Match newMatch(final Object... parameters) { | ||
629 | return NonSymmetricOpposite.Match.newMatch((org.eclipse.emf.ecore.EReference) parameters[0], (org.eclipse.emf.ecore.EReference) parameters[1]); | ||
630 | } | ||
631 | |||
632 | /** | ||
633 | * Inner class allowing the singleton instance of {@link NonSymmetricOpposite} to be created | ||
634 | * <b>not</b> at the class load time of the outer class, | ||
635 | * but rather at the first call to {@link NonSymmetricOpposite#instance()}. | ||
636 | * | ||
637 | * <p> This workaround is required e.g. to support recursion. | ||
638 | * | ||
639 | */ | ||
640 | private static class LazyHolder { | ||
641 | private static final NonSymmetricOpposite INSTANCE = new NonSymmetricOpposite(); | ||
642 | |||
643 | /** | ||
644 | * Statically initializes the query specification <b>after</b> the field {@link #INSTANCE} is assigned. | ||
645 | * This initialization order is required to support indirect recursion. | ||
646 | * | ||
647 | * <p> The static initializer is defined using a helper field to work around limitations of the code generator. | ||
648 | * | ||
649 | */ | ||
650 | private static final Object STATIC_INITIALIZER = ensureInitialized(); | ||
651 | |||
652 | public static Object ensureInitialized() { | ||
653 | INSTANCE.ensureInitializedInternal(); | ||
654 | return null; | ||
655 | } | ||
656 | } | ||
657 | |||
658 | private static class GeneratedPQuery extends BaseGeneratedEMFPQuery { | ||
659 | private static final NonSymmetricOpposite.GeneratedPQuery INSTANCE = new GeneratedPQuery(); | ||
660 | |||
661 | private final PParameter parameter_a = new PParameter("a", "org.eclipse.emf.ecore.EReference", new EClassTransitiveInstancesKey((EClass)getClassifierLiteralSafe("http://www.eclipse.org/emf/2002/Ecore", "EReference")), PParameterDirection.INOUT); | ||
662 | |||
663 | private final PParameter parameter_b = new PParameter("b", "org.eclipse.emf.ecore.EReference", new EClassTransitiveInstancesKey((EClass)getClassifierLiteralSafe("http://www.eclipse.org/emf/2002/Ecore", "EReference")), PParameterDirection.INOUT); | ||
664 | |||
665 | private final List<PParameter> parameters = Arrays.asList(parameter_a, parameter_b); | ||
666 | |||
667 | private GeneratedPQuery() { | ||
668 | super(PVisibility.PUBLIC); | ||
669 | } | ||
670 | |||
671 | @Override | ||
672 | public String getFullyQualifiedName() { | ||
673 | return "queries.nonSymmetricOpposite"; | ||
674 | } | ||
675 | |||
676 | @Override | ||
677 | public List<String> getParameterNames() { | ||
678 | return Arrays.asList("a","b"); | ||
679 | } | ||
680 | |||
681 | @Override | ||
682 | public List<PParameter> getParameters() { | ||
683 | return parameters; | ||
684 | } | ||
685 | |||
686 | @Override | ||
687 | public Set<PBody> doGetContainedBodies() { | ||
688 | setEvaluationHints(new QueryEvaluationHint(null, QueryEvaluationHint.BackendRequirement.UNSPECIFIED)); | ||
689 | Set<PBody> bodies = new LinkedHashSet<>(); | ||
690 | { | ||
691 | PBody body = new PBody(this); | ||
692 | PVariable var_a = body.getOrCreateVariableByName("a"); | ||
693 | PVariable var_b = body.getOrCreateVariableByName("b"); | ||
694 | new TypeConstraint(body, Tuples.flatTupleOf(var_a), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.eclipse.org/emf/2002/Ecore", "EReference"))); | ||
695 | new TypeConstraint(body, Tuples.flatTupleOf(var_b), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.eclipse.org/emf/2002/Ecore", "EReference"))); | ||
696 | body.setSymbolicParameters(Arrays.<ExportedParameter>asList( | ||
697 | new ExportedParameter(body, var_a, parameter_a), | ||
698 | new ExportedParameter(body, var_b, parameter_b) | ||
699 | )); | ||
700 | // find opposite(a,b) | ||
701 | new PositivePatternCall(body, Tuples.flatTupleOf(var_a, var_b), Opposite.instance().getInternalQueryRepresentation()); | ||
702 | // neg find opposite(b,a) | ||
703 | new NegativePatternCall(body, Tuples.flatTupleOf(var_b, var_a), Opposite.instance().getInternalQueryRepresentation()); | ||
704 | bodies.add(body); | ||
705 | } | ||
706 | { | ||
707 | PAnnotation annotation = new PAnnotation("Constraint"); | ||
708 | annotation.addAttribute("key", Arrays.asList(new Object[] { | ||
709 | new ParameterReference("a") | ||
710 | })); | ||
711 | annotation.addAttribute("severity", "error"); | ||
712 | annotation.addAttribute("message", "error"); | ||
713 | addAnnotation(annotation); | ||
714 | } | ||
715 | return bodies; | ||
716 | } | ||
717 | } | ||
718 | } | ||
diff --git a/Metrics/Metrics-Calculation/SocialNetwork_plugin/src-gen/queries/Opposite.java b/Metrics/Metrics-Calculation/SocialNetwork_plugin/src-gen/queries/Opposite.java new file mode 100644 index 00000000..ab808e10 --- /dev/null +++ b/Metrics/Metrics-Calculation/SocialNetwork_plugin/src-gen/queries/Opposite.java | |||
@@ -0,0 +1,704 @@ | |||
1 | /** | ||
2 | * Generated from platform:/resource/SocialNetwork_plugin/queries/queries/Ecore.vql | ||
3 | */ | ||
4 | package queries; | ||
5 | |||
6 | import java.util.Arrays; | ||
7 | import java.util.Collection; | ||
8 | import java.util.LinkedHashSet; | ||
9 | import java.util.List; | ||
10 | import java.util.Objects; | ||
11 | import java.util.Optional; | ||
12 | import java.util.Set; | ||
13 | import java.util.function.Consumer; | ||
14 | import java.util.stream.Collectors; | ||
15 | import java.util.stream.Stream; | ||
16 | import org.apache.log4j.Logger; | ||
17 | import org.eclipse.emf.ecore.EClass; | ||
18 | import org.eclipse.emf.ecore.EReference; | ||
19 | import org.eclipse.viatra.query.runtime.api.IPatternMatch; | ||
20 | import org.eclipse.viatra.query.runtime.api.IQuerySpecification; | ||
21 | import org.eclipse.viatra.query.runtime.api.ViatraQueryEngine; | ||
22 | import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFPQuery; | ||
23 | import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFQuerySpecification; | ||
24 | import org.eclipse.viatra.query.runtime.api.impl.BaseMatcher; | ||
25 | import org.eclipse.viatra.query.runtime.api.impl.BasePatternMatch; | ||
26 | import org.eclipse.viatra.query.runtime.emf.types.EClassTransitiveInstancesKey; | ||
27 | import org.eclipse.viatra.query.runtime.emf.types.EStructuralFeatureInstancesKey; | ||
28 | import org.eclipse.viatra.query.runtime.matchers.backend.QueryEvaluationHint; | ||
29 | import org.eclipse.viatra.query.runtime.matchers.psystem.PBody; | ||
30 | import org.eclipse.viatra.query.runtime.matchers.psystem.PVariable; | ||
31 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.Equality; | ||
32 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.ExportedParameter; | ||
33 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.TypeConstraint; | ||
34 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameter; | ||
35 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameterDirection; | ||
36 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PVisibility; | ||
37 | import org.eclipse.viatra.query.runtime.matchers.tuple.Tuple; | ||
38 | import org.eclipse.viatra.query.runtime.matchers.tuple.Tuples; | ||
39 | import org.eclipse.viatra.query.runtime.util.ViatraQueryLoggingUtil; | ||
40 | |||
41 | /** | ||
42 | * A pattern-specific query specification that can instantiate Matcher in a type-safe way. | ||
43 | * | ||
44 | * <p>Original source: | ||
45 | * <code><pre> | ||
46 | * pattern opposite(a:EReference, b: EReference) { | ||
47 | * EReference.eOpposite(a,b); | ||
48 | * } | ||
49 | * </pre></code> | ||
50 | * | ||
51 | * @see Matcher | ||
52 | * @see Match | ||
53 | * | ||
54 | */ | ||
55 | @SuppressWarnings("all") | ||
56 | public final class Opposite extends BaseGeneratedEMFQuerySpecification<Opposite.Matcher> { | ||
57 | /** | ||
58 | * Pattern-specific match representation of the queries.opposite pattern, | ||
59 | * to be used in conjunction with {@link Matcher}. | ||
60 | * | ||
61 | * <p>Class fields correspond to parameters of the pattern. Fields with value null are considered unassigned. | ||
62 | * Each instance is a (possibly partial) substitution of pattern parameters, | ||
63 | * usable to represent a match of the pattern in the result of a query, | ||
64 | * or to specify the bound (fixed) input parameters when issuing a query. | ||
65 | * | ||
66 | * @see Matcher | ||
67 | * | ||
68 | */ | ||
69 | public static abstract class Match extends BasePatternMatch { | ||
70 | private EReference fA; | ||
71 | |||
72 | private EReference fB; | ||
73 | |||
74 | private static List<String> parameterNames = makeImmutableList("a", "b"); | ||
75 | |||
76 | private Match(final EReference pA, final EReference pB) { | ||
77 | this.fA = pA; | ||
78 | this.fB = pB; | ||
79 | } | ||
80 | |||
81 | @Override | ||
82 | public Object get(final String parameterName) { | ||
83 | switch(parameterName) { | ||
84 | case "a": return this.fA; | ||
85 | case "b": return this.fB; | ||
86 | default: return null; | ||
87 | } | ||
88 | } | ||
89 | |||
90 | @Override | ||
91 | public Object get(final int index) { | ||
92 | switch(index) { | ||
93 | case 0: return this.fA; | ||
94 | case 1: return this.fB; | ||
95 | default: return null; | ||
96 | } | ||
97 | } | ||
98 | |||
99 | public EReference getA() { | ||
100 | return this.fA; | ||
101 | } | ||
102 | |||
103 | public EReference getB() { | ||
104 | return this.fB; | ||
105 | } | ||
106 | |||
107 | @Override | ||
108 | public boolean set(final String parameterName, final Object newValue) { | ||
109 | if (!isMutable()) throw new java.lang.UnsupportedOperationException(); | ||
110 | if ("a".equals(parameterName) ) { | ||
111 | this.fA = (EReference) newValue; | ||
112 | return true; | ||
113 | } | ||
114 | if ("b".equals(parameterName) ) { | ||
115 | this.fB = (EReference) newValue; | ||
116 | return true; | ||
117 | } | ||
118 | return false; | ||
119 | } | ||
120 | |||
121 | public void setA(final EReference pA) { | ||
122 | if (!isMutable()) throw new java.lang.UnsupportedOperationException(); | ||
123 | this.fA = pA; | ||
124 | } | ||
125 | |||
126 | public void setB(final EReference pB) { | ||
127 | if (!isMutable()) throw new java.lang.UnsupportedOperationException(); | ||
128 | this.fB = pB; | ||
129 | } | ||
130 | |||
131 | @Override | ||
132 | public String patternName() { | ||
133 | return "queries.opposite"; | ||
134 | } | ||
135 | |||
136 | @Override | ||
137 | public List<String> parameterNames() { | ||
138 | return Opposite.Match.parameterNames; | ||
139 | } | ||
140 | |||
141 | @Override | ||
142 | public Object[] toArray() { | ||
143 | return new Object[]{fA, fB}; | ||
144 | } | ||
145 | |||
146 | @Override | ||
147 | public Opposite.Match toImmutable() { | ||
148 | return isMutable() ? newMatch(fA, fB) : this; | ||
149 | } | ||
150 | |||
151 | @Override | ||
152 | public String prettyPrint() { | ||
153 | StringBuilder result = new StringBuilder(); | ||
154 | result.append("\"a\"=" + prettyPrintValue(fA) + ", "); | ||
155 | result.append("\"b\"=" + prettyPrintValue(fB)); | ||
156 | return result.toString(); | ||
157 | } | ||
158 | |||
159 | @Override | ||
160 | public int hashCode() { | ||
161 | return Objects.hash(fA, fB); | ||
162 | } | ||
163 | |||
164 | @Override | ||
165 | public boolean equals(final Object obj) { | ||
166 | if (this == obj) | ||
167 | return true; | ||
168 | if (obj == null) { | ||
169 | return false; | ||
170 | } | ||
171 | if ((obj instanceof Opposite.Match)) { | ||
172 | Opposite.Match other = (Opposite.Match) obj; | ||
173 | return Objects.equals(fA, other.fA) && Objects.equals(fB, other.fB); | ||
174 | } else { | ||
175 | // this should be infrequent | ||
176 | if (!(obj instanceof IPatternMatch)) { | ||
177 | return false; | ||
178 | } | ||
179 | IPatternMatch otherSig = (IPatternMatch) obj; | ||
180 | return Objects.equals(specification(), otherSig.specification()) && Arrays.deepEquals(toArray(), otherSig.toArray()); | ||
181 | } | ||
182 | } | ||
183 | |||
184 | @Override | ||
185 | public Opposite specification() { | ||
186 | return Opposite.instance(); | ||
187 | } | ||
188 | |||
189 | /** | ||
190 | * Returns an empty, mutable match. | ||
191 | * Fields of the mutable match can be filled to create a partial match, usable as matcher input. | ||
192 | * | ||
193 | * @return the empty match. | ||
194 | * | ||
195 | */ | ||
196 | public static Opposite.Match newEmptyMatch() { | ||
197 | return new Mutable(null, null); | ||
198 | } | ||
199 | |||
200 | /** | ||
201 | * Returns a mutable (partial) match. | ||
202 | * Fields of the mutable match can be filled to create a partial match, usable as matcher input. | ||
203 | * | ||
204 | * @param pA the fixed value of pattern parameter a, or null if not bound. | ||
205 | * @param pB the fixed value of pattern parameter b, or null if not bound. | ||
206 | * @return the new, mutable (partial) match object. | ||
207 | * | ||
208 | */ | ||
209 | public static Opposite.Match newMutableMatch(final EReference pA, final EReference pB) { | ||
210 | return new Mutable(pA, pB); | ||
211 | } | ||
212 | |||
213 | /** | ||
214 | * Returns a new (partial) match. | ||
215 | * This can be used e.g. to call the matcher with a partial match. | ||
216 | * <p>The returned match will be immutable. Use {@link #newEmptyMatch()} to obtain a mutable match object. | ||
217 | * @param pA the fixed value of pattern parameter a, or null if not bound. | ||
218 | * @param pB the fixed value of pattern parameter b, or null if not bound. | ||
219 | * @return the (partial) match object. | ||
220 | * | ||
221 | */ | ||
222 | public static Opposite.Match newMatch(final EReference pA, final EReference pB) { | ||
223 | return new Immutable(pA, pB); | ||
224 | } | ||
225 | |||
226 | private static final class Mutable extends Opposite.Match { | ||
227 | Mutable(final EReference pA, final EReference pB) { | ||
228 | super(pA, pB); | ||
229 | } | ||
230 | |||
231 | @Override | ||
232 | public boolean isMutable() { | ||
233 | return true; | ||
234 | } | ||
235 | } | ||
236 | |||
237 | private static final class Immutable extends Opposite.Match { | ||
238 | Immutable(final EReference pA, final EReference pB) { | ||
239 | super(pA, pB); | ||
240 | } | ||
241 | |||
242 | @Override | ||
243 | public boolean isMutable() { | ||
244 | return false; | ||
245 | } | ||
246 | } | ||
247 | } | ||
248 | |||
249 | /** | ||
250 | * Generated pattern matcher API of the queries.opposite pattern, | ||
251 | * providing pattern-specific query methods. | ||
252 | * | ||
253 | * <p>Use the pattern matcher on a given model via {@link #on(ViatraQueryEngine)}, | ||
254 | * e.g. in conjunction with {@link ViatraQueryEngine#on(QueryScope)}. | ||
255 | * | ||
256 | * <p>Matches of the pattern will be represented as {@link Match}. | ||
257 | * | ||
258 | * <p>Original source: | ||
259 | * <code><pre> | ||
260 | * pattern opposite(a:EReference, b: EReference) { | ||
261 | * EReference.eOpposite(a,b); | ||
262 | * } | ||
263 | * </pre></code> | ||
264 | * | ||
265 | * @see Match | ||
266 | * @see Opposite | ||
267 | * | ||
268 | */ | ||
269 | public static class Matcher extends BaseMatcher<Opposite.Match> { | ||
270 | /** | ||
271 | * Initializes the pattern matcher within an existing VIATRA Query engine. | ||
272 | * If the pattern matcher is already constructed in the engine, only a light-weight reference is returned. | ||
273 | * | ||
274 | * @param engine the existing VIATRA Query engine in which this matcher will be created. | ||
275 | * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation | ||
276 | * | ||
277 | */ | ||
278 | public static Opposite.Matcher on(final ViatraQueryEngine engine) { | ||
279 | // check if matcher already exists | ||
280 | Matcher matcher = engine.getExistingMatcher(querySpecification()); | ||
281 | if (matcher == null) { | ||
282 | matcher = (Matcher)engine.getMatcher(querySpecification()); | ||
283 | } | ||
284 | return matcher; | ||
285 | } | ||
286 | |||
287 | /** | ||
288 | * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation | ||
289 | * @return an initialized matcher | ||
290 | * @noreference This method is for internal matcher initialization by the framework, do not call it manually. | ||
291 | * | ||
292 | */ | ||
293 | public static Opposite.Matcher create() { | ||
294 | return new Matcher(); | ||
295 | } | ||
296 | |||
297 | private static final int POSITION_A = 0; | ||
298 | |||
299 | private static final int POSITION_B = 1; | ||
300 | |||
301 | private static final Logger LOGGER = ViatraQueryLoggingUtil.getLogger(Opposite.Matcher.class); | ||
302 | |||
303 | /** | ||
304 | * Initializes the pattern matcher within an existing VIATRA Query engine. | ||
305 | * If the pattern matcher is already constructed in the engine, only a light-weight reference is returned. | ||
306 | * | ||
307 | * @param engine the existing VIATRA Query engine in which this matcher will be created. | ||
308 | * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation | ||
309 | * | ||
310 | */ | ||
311 | private Matcher() { | ||
312 | super(querySpecification()); | ||
313 | } | ||
314 | |||
315 | /** | ||
316 | * Returns the set of all matches of the pattern that conform to the given fixed values of some parameters. | ||
317 | * @param pA the fixed value of pattern parameter a, or null if not bound. | ||
318 | * @param pB the fixed value of pattern parameter b, or null if not bound. | ||
319 | * @return matches represented as a Match object. | ||
320 | * | ||
321 | */ | ||
322 | public Collection<Opposite.Match> getAllMatches(final EReference pA, final EReference pB) { | ||
323 | return rawStreamAllMatches(new Object[]{pA, pB}).collect(Collectors.toSet()); | ||
324 | } | ||
325 | |||
326 | /** | ||
327 | * Returns a stream of all matches of the pattern that conform to the given fixed values of some parameters. | ||
328 | * </p> | ||
329 | * <strong>NOTE</strong>: It is important not to modify the source model while the stream is being processed. | ||
330 | * If the match set of the pattern changes during processing, the contents of the stream is <strong>undefined</strong>. | ||
331 | * In such cases, either rely on {@link #getAllMatches()} or collect the results of the stream in end-user code. | ||
332 | * @param pA the fixed value of pattern parameter a, or null if not bound. | ||
333 | * @param pB the fixed value of pattern parameter b, or null if not bound. | ||
334 | * @return a stream of matches represented as a Match object. | ||
335 | * | ||
336 | */ | ||
337 | public Stream<Opposite.Match> streamAllMatches(final EReference pA, final EReference pB) { | ||
338 | return rawStreamAllMatches(new Object[]{pA, pB}); | ||
339 | } | ||
340 | |||
341 | /** | ||
342 | * Returns an arbitrarily chosen match of the pattern that conforms to the given fixed values of some parameters. | ||
343 | * Neither determinism nor randomness of selection is guaranteed. | ||
344 | * @param pA the fixed value of pattern parameter a, or null if not bound. | ||
345 | * @param pB the fixed value of pattern parameter b, or null if not bound. | ||
346 | * @return a match represented as a Match object, or null if no match is found. | ||
347 | * | ||
348 | */ | ||
349 | public Optional<Opposite.Match> getOneArbitraryMatch(final EReference pA, final EReference pB) { | ||
350 | return rawGetOneArbitraryMatch(new Object[]{pA, pB}); | ||
351 | } | ||
352 | |||
353 | /** | ||
354 | * Indicates whether the given combination of specified pattern parameters constitute a valid pattern match, | ||
355 | * under any possible substitution of the unspecified parameters (if any). | ||
356 | * @param pA the fixed value of pattern parameter a, or null if not bound. | ||
357 | * @param pB the fixed value of pattern parameter b, or null if not bound. | ||
358 | * @return true if the input is a valid (partial) match of the pattern. | ||
359 | * | ||
360 | */ | ||
361 | public boolean hasMatch(final EReference pA, final EReference pB) { | ||
362 | return rawHasMatch(new Object[]{pA, pB}); | ||
363 | } | ||
364 | |||
365 | /** | ||
366 | * Returns the number of all matches of the pattern that conform to the given fixed values of some parameters. | ||
367 | * @param pA the fixed value of pattern parameter a, or null if not bound. | ||
368 | * @param pB the fixed value of pattern parameter b, or null if not bound. | ||
369 | * @return the number of pattern matches found. | ||
370 | * | ||
371 | */ | ||
372 | public int countMatches(final EReference pA, final EReference pB) { | ||
373 | return rawCountMatches(new Object[]{pA, pB}); | ||
374 | } | ||
375 | |||
376 | /** | ||
377 | * Executes the given processor on an arbitrarily chosen match of the pattern that conforms to the given fixed values of some parameters. | ||
378 | * Neither determinism nor randomness of selection is guaranteed. | ||
379 | * @param pA the fixed value of pattern parameter a, or null if not bound. | ||
380 | * @param pB the fixed value of pattern parameter b, or null if not bound. | ||
381 | * @param processor the action that will process the selected match. | ||
382 | * @return true if the pattern has at least one match with the given parameter values, false if the processor was not invoked | ||
383 | * | ||
384 | */ | ||
385 | public boolean forOneArbitraryMatch(final EReference pA, final EReference pB, final Consumer<? super Opposite.Match> processor) { | ||
386 | return rawForOneArbitraryMatch(new Object[]{pA, pB}, processor); | ||
387 | } | ||
388 | |||
389 | /** | ||
390 | * Returns a new (partial) match. | ||
391 | * This can be used e.g. to call the matcher with a partial match. | ||
392 | * <p>The returned match will be immutable. Use {@link #newEmptyMatch()} to obtain a mutable match object. | ||
393 | * @param pA the fixed value of pattern parameter a, or null if not bound. | ||
394 | * @param pB the fixed value of pattern parameter b, or null if not bound. | ||
395 | * @return the (partial) match object. | ||
396 | * | ||
397 | */ | ||
398 | public Opposite.Match newMatch(final EReference pA, final EReference pB) { | ||
399 | return Opposite.Match.newMatch(pA, pB); | ||
400 | } | ||
401 | |||
402 | /** | ||
403 | * Retrieve the set of values that occur in matches for a. | ||
404 | * @return the Set of all values or empty set if there are no matches | ||
405 | * | ||
406 | */ | ||
407 | protected Stream<EReference> rawStreamAllValuesOfa(final Object[] parameters) { | ||
408 | return rawStreamAllValues(POSITION_A, parameters).map(EReference.class::cast); | ||
409 | } | ||
410 | |||
411 | /** | ||
412 | * Retrieve the set of values that occur in matches for a. | ||
413 | * @return the Set of all values or empty set if there are no matches | ||
414 | * | ||
415 | */ | ||
416 | public Set<EReference> getAllValuesOfa() { | ||
417 | return rawStreamAllValuesOfa(emptyArray()).collect(Collectors.toSet()); | ||
418 | } | ||
419 | |||
420 | /** | ||
421 | * Retrieve the set of values that occur in matches for a. | ||
422 | * @return the Set of all values or empty set if there are no matches | ||
423 | * | ||
424 | */ | ||
425 | public Stream<EReference> streamAllValuesOfa() { | ||
426 | return rawStreamAllValuesOfa(emptyArray()); | ||
427 | } | ||
428 | |||
429 | /** | ||
430 | * Retrieve the set of values that occur in matches for a. | ||
431 | * </p> | ||
432 | * <strong>NOTE</strong>: It is important not to modify the source model while the stream is being processed. | ||
433 | * If the match set of the pattern changes during processing, the contents of the stream is <strong>undefined</strong>. | ||
434 | * In such cases, either rely on {@link #getAllMatches()} or collect the results of the stream in end-user code. | ||
435 | * | ||
436 | * @return the Stream of all values or empty set if there are no matches | ||
437 | * | ||
438 | */ | ||
439 | public Stream<EReference> streamAllValuesOfa(final Opposite.Match partialMatch) { | ||
440 | return rawStreamAllValuesOfa(partialMatch.toArray()); | ||
441 | } | ||
442 | |||
443 | /** | ||
444 | * Retrieve the set of values that occur in matches for a. | ||
445 | * </p> | ||
446 | * <strong>NOTE</strong>: It is important not to modify the source model while the stream is being processed. | ||
447 | * If the match set of the pattern changes during processing, the contents of the stream is <strong>undefined</strong>. | ||
448 | * In such cases, either rely on {@link #getAllMatches()} or collect the results of the stream in end-user code. | ||
449 | * | ||
450 | * @return the Stream of all values or empty set if there are no matches | ||
451 | * | ||
452 | */ | ||
453 | public Stream<EReference> streamAllValuesOfa(final EReference pB) { | ||
454 | return rawStreamAllValuesOfa(new Object[]{null, pB}); | ||
455 | } | ||
456 | |||
457 | /** | ||
458 | * Retrieve the set of values that occur in matches for a. | ||
459 | * @return the Set of all values or empty set if there are no matches | ||
460 | * | ||
461 | */ | ||
462 | public Set<EReference> getAllValuesOfa(final Opposite.Match partialMatch) { | ||
463 | return rawStreamAllValuesOfa(partialMatch.toArray()).collect(Collectors.toSet()); | ||
464 | } | ||
465 | |||
466 | /** | ||
467 | * Retrieve the set of values that occur in matches for a. | ||
468 | * @return the Set of all values or empty set if there are no matches | ||
469 | * | ||
470 | */ | ||
471 | public Set<EReference> getAllValuesOfa(final EReference pB) { | ||
472 | return rawStreamAllValuesOfa(new Object[]{null, pB}).collect(Collectors.toSet()); | ||
473 | } | ||
474 | |||
475 | /** | ||
476 | * Retrieve the set of values that occur in matches for b. | ||
477 | * @return the Set of all values or empty set if there are no matches | ||
478 | * | ||
479 | */ | ||
480 | protected Stream<EReference> rawStreamAllValuesOfb(final Object[] parameters) { | ||
481 | return rawStreamAllValues(POSITION_B, parameters).map(EReference.class::cast); | ||
482 | } | ||
483 | |||
484 | /** | ||
485 | * Retrieve the set of values that occur in matches for b. | ||
486 | * @return the Set of all values or empty set if there are no matches | ||
487 | * | ||
488 | */ | ||
489 | public Set<EReference> getAllValuesOfb() { | ||
490 | return rawStreamAllValuesOfb(emptyArray()).collect(Collectors.toSet()); | ||
491 | } | ||
492 | |||
493 | /** | ||
494 | * Retrieve the set of values that occur in matches for b. | ||
495 | * @return the Set of all values or empty set if there are no matches | ||
496 | * | ||
497 | */ | ||
498 | public Stream<EReference> streamAllValuesOfb() { | ||
499 | return rawStreamAllValuesOfb(emptyArray()); | ||
500 | } | ||
501 | |||
502 | /** | ||
503 | * Retrieve the set of values that occur in matches for b. | ||
504 | * </p> | ||
505 | * <strong>NOTE</strong>: It is important not to modify the source model while the stream is being processed. | ||
506 | * If the match set of the pattern changes during processing, the contents of the stream is <strong>undefined</strong>. | ||
507 | * In such cases, either rely on {@link #getAllMatches()} or collect the results of the stream in end-user code. | ||
508 | * | ||
509 | * @return the Stream of all values or empty set if there are no matches | ||
510 | * | ||
511 | */ | ||
512 | public Stream<EReference> streamAllValuesOfb(final Opposite.Match partialMatch) { | ||
513 | return rawStreamAllValuesOfb(partialMatch.toArray()); | ||
514 | } | ||
515 | |||
516 | /** | ||
517 | * Retrieve the set of values that occur in matches for b. | ||
518 | * </p> | ||
519 | * <strong>NOTE</strong>: It is important not to modify the source model while the stream is being processed. | ||
520 | * If the match set of the pattern changes during processing, the contents of the stream is <strong>undefined</strong>. | ||
521 | * In such cases, either rely on {@link #getAllMatches()} or collect the results of the stream in end-user code. | ||
522 | * | ||
523 | * @return the Stream of all values or empty set if there are no matches | ||
524 | * | ||
525 | */ | ||
526 | public Stream<EReference> streamAllValuesOfb(final EReference pA) { | ||
527 | return rawStreamAllValuesOfb(new Object[]{pA, null}); | ||
528 | } | ||
529 | |||
530 | /** | ||
531 | * Retrieve the set of values that occur in matches for b. | ||
532 | * @return the Set of all values or empty set if there are no matches | ||
533 | * | ||
534 | */ | ||
535 | public Set<EReference> getAllValuesOfb(final Opposite.Match partialMatch) { | ||
536 | return rawStreamAllValuesOfb(partialMatch.toArray()).collect(Collectors.toSet()); | ||
537 | } | ||
538 | |||
539 | /** | ||
540 | * Retrieve the set of values that occur in matches for b. | ||
541 | * @return the Set of all values or empty set if there are no matches | ||
542 | * | ||
543 | */ | ||
544 | public Set<EReference> getAllValuesOfb(final EReference pA) { | ||
545 | return rawStreamAllValuesOfb(new Object[]{pA, null}).collect(Collectors.toSet()); | ||
546 | } | ||
547 | |||
548 | @Override | ||
549 | protected Opposite.Match tupleToMatch(final Tuple t) { | ||
550 | try { | ||
551 | return Opposite.Match.newMatch((EReference) t.get(POSITION_A), (EReference) t.get(POSITION_B)); | ||
552 | } catch(ClassCastException e) { | ||
553 | LOGGER.error("Element(s) in tuple not properly typed!",e); | ||
554 | return null; | ||
555 | } | ||
556 | } | ||
557 | |||
558 | @Override | ||
559 | protected Opposite.Match arrayToMatch(final Object[] match) { | ||
560 | try { | ||
561 | return Opposite.Match.newMatch((EReference) match[POSITION_A], (EReference) match[POSITION_B]); | ||
562 | } catch(ClassCastException e) { | ||
563 | LOGGER.error("Element(s) in array not properly typed!",e); | ||
564 | return null; | ||
565 | } | ||
566 | } | ||
567 | |||
568 | @Override | ||
569 | protected Opposite.Match arrayToMatchMutable(final Object[] match) { | ||
570 | try { | ||
571 | return Opposite.Match.newMutableMatch((EReference) match[POSITION_A], (EReference) match[POSITION_B]); | ||
572 | } catch(ClassCastException e) { | ||
573 | LOGGER.error("Element(s) in array not properly typed!",e); | ||
574 | return null; | ||
575 | } | ||
576 | } | ||
577 | |||
578 | /** | ||
579 | * @return the singleton instance of the query specification of this pattern | ||
580 | * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded | ||
581 | * | ||
582 | */ | ||
583 | public static IQuerySpecification<Opposite.Matcher> querySpecification() { | ||
584 | return Opposite.instance(); | ||
585 | } | ||
586 | } | ||
587 | |||
588 | private Opposite() { | ||
589 | super(GeneratedPQuery.INSTANCE); | ||
590 | } | ||
591 | |||
592 | /** | ||
593 | * @return the singleton instance of the query specification | ||
594 | * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded | ||
595 | * | ||
596 | */ | ||
597 | public static Opposite instance() { | ||
598 | try{ | ||
599 | return LazyHolder.INSTANCE; | ||
600 | } catch (ExceptionInInitializerError err) { | ||
601 | throw processInitializerError(err); | ||
602 | } | ||
603 | } | ||
604 | |||
605 | @Override | ||
606 | protected Opposite.Matcher instantiate(final ViatraQueryEngine engine) { | ||
607 | return Opposite.Matcher.on(engine); | ||
608 | } | ||
609 | |||
610 | @Override | ||
611 | public Opposite.Matcher instantiate() { | ||
612 | return Opposite.Matcher.create(); | ||
613 | } | ||
614 | |||
615 | @Override | ||
616 | public Opposite.Match newEmptyMatch() { | ||
617 | return Opposite.Match.newEmptyMatch(); | ||
618 | } | ||
619 | |||
620 | @Override | ||
621 | public Opposite.Match newMatch(final Object... parameters) { | ||
622 | return Opposite.Match.newMatch((org.eclipse.emf.ecore.EReference) parameters[0], (org.eclipse.emf.ecore.EReference) parameters[1]); | ||
623 | } | ||
624 | |||
625 | /** | ||
626 | * Inner class allowing the singleton instance of {@link Opposite} to be created | ||
627 | * <b>not</b> at the class load time of the outer class, | ||
628 | * but rather at the first call to {@link Opposite#instance()}. | ||
629 | * | ||
630 | * <p> This workaround is required e.g. to support recursion. | ||
631 | * | ||
632 | */ | ||
633 | private static class LazyHolder { | ||
634 | private static final Opposite INSTANCE = new Opposite(); | ||
635 | |||
636 | /** | ||
637 | * Statically initializes the query specification <b>after</b> the field {@link #INSTANCE} is assigned. | ||
638 | * This initialization order is required to support indirect recursion. | ||
639 | * | ||
640 | * <p> The static initializer is defined using a helper field to work around limitations of the code generator. | ||
641 | * | ||
642 | */ | ||
643 | private static final Object STATIC_INITIALIZER = ensureInitialized(); | ||
644 | |||
645 | public static Object ensureInitialized() { | ||
646 | INSTANCE.ensureInitializedInternal(); | ||
647 | return null; | ||
648 | } | ||
649 | } | ||
650 | |||
651 | private static class GeneratedPQuery extends BaseGeneratedEMFPQuery { | ||
652 | private static final Opposite.GeneratedPQuery INSTANCE = new GeneratedPQuery(); | ||
653 | |||
654 | private final PParameter parameter_a = new PParameter("a", "org.eclipse.emf.ecore.EReference", new EClassTransitiveInstancesKey((EClass)getClassifierLiteralSafe("http://www.eclipse.org/emf/2002/Ecore", "EReference")), PParameterDirection.INOUT); | ||
655 | |||
656 | private final PParameter parameter_b = new PParameter("b", "org.eclipse.emf.ecore.EReference", new EClassTransitiveInstancesKey((EClass)getClassifierLiteralSafe("http://www.eclipse.org/emf/2002/Ecore", "EReference")), PParameterDirection.INOUT); | ||
657 | |||
658 | private final List<PParameter> parameters = Arrays.asList(parameter_a, parameter_b); | ||
659 | |||
660 | private GeneratedPQuery() { | ||
661 | super(PVisibility.PUBLIC); | ||
662 | } | ||
663 | |||
664 | @Override | ||
665 | public String getFullyQualifiedName() { | ||
666 | return "queries.opposite"; | ||
667 | } | ||
668 | |||
669 | @Override | ||
670 | public List<String> getParameterNames() { | ||
671 | return Arrays.asList("a","b"); | ||
672 | } | ||
673 | |||
674 | @Override | ||
675 | public List<PParameter> getParameters() { | ||
676 | return parameters; | ||
677 | } | ||
678 | |||
679 | @Override | ||
680 | public Set<PBody> doGetContainedBodies() { | ||
681 | setEvaluationHints(new QueryEvaluationHint(null, QueryEvaluationHint.BackendRequirement.UNSPECIFIED)); | ||
682 | Set<PBody> bodies = new LinkedHashSet<>(); | ||
683 | { | ||
684 | PBody body = new PBody(this); | ||
685 | PVariable var_a = body.getOrCreateVariableByName("a"); | ||
686 | PVariable var_b = body.getOrCreateVariableByName("b"); | ||
687 | new TypeConstraint(body, Tuples.flatTupleOf(var_a), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.eclipse.org/emf/2002/Ecore", "EReference"))); | ||
688 | new TypeConstraint(body, Tuples.flatTupleOf(var_b), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.eclipse.org/emf/2002/Ecore", "EReference"))); | ||
689 | body.setSymbolicParameters(Arrays.<ExportedParameter>asList( | ||
690 | new ExportedParameter(body, var_a, parameter_a), | ||
691 | new ExportedParameter(body, var_b, parameter_b) | ||
692 | )); | ||
693 | // EReference.eOpposite(a,b) | ||
694 | new TypeConstraint(body, Tuples.flatTupleOf(var_a), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.eclipse.org/emf/2002/Ecore", "EReference"))); | ||
695 | PVariable var__virtual_0_ = body.getOrCreateVariableByName(".virtual{0}"); | ||
696 | new TypeConstraint(body, Tuples.flatTupleOf(var_a, var__virtual_0_), new EStructuralFeatureInstancesKey(getFeatureLiteral("http://www.eclipse.org/emf/2002/Ecore", "EReference", "eOpposite"))); | ||
697 | new TypeConstraint(body, Tuples.flatTupleOf(var__virtual_0_), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.eclipse.org/emf/2002/Ecore", "EReference"))); | ||
698 | new Equality(body, var__virtual_0_, var_b); | ||
699 | bodies.add(body); | ||
700 | } | ||
701 | return bodies; | ||
702 | } | ||
703 | } | ||
704 | } | ||
diff --git a/Metrics/Metrics-Calculation/SocialNetwork_plugin/src-gen/queries/OppositeDifferentClass.java b/Metrics/Metrics-Calculation/SocialNetwork_plugin/src-gen/queries/OppositeDifferentClass.java new file mode 100644 index 00000000..ff46566d --- /dev/null +++ b/Metrics/Metrics-Calculation/SocialNetwork_plugin/src-gen/queries/OppositeDifferentClass.java | |||
@@ -0,0 +1,587 @@ | |||
1 | /** | ||
2 | * Generated from platform:/resource/SocialNetwork_plugin/queries/queries/Ecore.vql | ||
3 | */ | ||
4 | package queries; | ||
5 | |||
6 | import java.util.Arrays; | ||
7 | import java.util.Collection; | ||
8 | import java.util.LinkedHashSet; | ||
9 | import java.util.List; | ||
10 | import java.util.Objects; | ||
11 | import java.util.Optional; | ||
12 | import java.util.Set; | ||
13 | import java.util.function.Consumer; | ||
14 | import java.util.stream.Collectors; | ||
15 | import java.util.stream.Stream; | ||
16 | import org.apache.log4j.Logger; | ||
17 | import org.eclipse.emf.ecore.EClass; | ||
18 | import org.eclipse.emf.ecore.EReference; | ||
19 | import org.eclipse.viatra.query.runtime.api.IPatternMatch; | ||
20 | import org.eclipse.viatra.query.runtime.api.IQuerySpecification; | ||
21 | import org.eclipse.viatra.query.runtime.api.ViatraQueryEngine; | ||
22 | import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFPQuery; | ||
23 | import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFQuerySpecification; | ||
24 | import org.eclipse.viatra.query.runtime.api.impl.BaseMatcher; | ||
25 | import org.eclipse.viatra.query.runtime.api.impl.BasePatternMatch; | ||
26 | import org.eclipse.viatra.query.runtime.emf.types.EClassTransitiveInstancesKey; | ||
27 | import org.eclipse.viatra.query.runtime.emf.types.EStructuralFeatureInstancesKey; | ||
28 | import org.eclipse.viatra.query.runtime.matchers.backend.QueryEvaluationHint; | ||
29 | import org.eclipse.viatra.query.runtime.matchers.psystem.PBody; | ||
30 | import org.eclipse.viatra.query.runtime.matchers.psystem.PVariable; | ||
31 | import org.eclipse.viatra.query.runtime.matchers.psystem.annotations.PAnnotation; | ||
32 | import org.eclipse.viatra.query.runtime.matchers.psystem.annotations.ParameterReference; | ||
33 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.Equality; | ||
34 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.ExportedParameter; | ||
35 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.Inequality; | ||
36 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.TypeConstraint; | ||
37 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameter; | ||
38 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameterDirection; | ||
39 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PVisibility; | ||
40 | import org.eclipse.viatra.query.runtime.matchers.tuple.Tuple; | ||
41 | import org.eclipse.viatra.query.runtime.matchers.tuple.Tuples; | ||
42 | import org.eclipse.viatra.query.runtime.util.ViatraQueryLoggingUtil; | ||
43 | |||
44 | /** | ||
45 | * A pattern-specific query specification that can instantiate Matcher in a type-safe way. | ||
46 | * | ||
47 | * <p>Original source: | ||
48 | * <code><pre> | ||
49 | * {@literal @}Constraint(key={a}, severity="error", message="error") | ||
50 | * pattern oppositeDifferentClass(a:EReference) { | ||
51 | * EReference.eOpposite(a,b); | ||
52 | * EReference.eContainingClass(a,aContaining); | ||
53 | * EReference.eType(b,bTarget); | ||
54 | * aContaining != bTarget; | ||
55 | * } | ||
56 | * </pre></code> | ||
57 | * | ||
58 | * @see Matcher | ||
59 | * @see Match | ||
60 | * | ||
61 | */ | ||
62 | @SuppressWarnings("all") | ||
63 | public final class OppositeDifferentClass extends BaseGeneratedEMFQuerySpecification<OppositeDifferentClass.Matcher> { | ||
64 | /** | ||
65 | * Pattern-specific match representation of the queries.oppositeDifferentClass pattern, | ||
66 | * to be used in conjunction with {@link Matcher}. | ||
67 | * | ||
68 | * <p>Class fields correspond to parameters of the pattern. Fields with value null are considered unassigned. | ||
69 | * Each instance is a (possibly partial) substitution of pattern parameters, | ||
70 | * usable to represent a match of the pattern in the result of a query, | ||
71 | * or to specify the bound (fixed) input parameters when issuing a query. | ||
72 | * | ||
73 | * @see Matcher | ||
74 | * | ||
75 | */ | ||
76 | public static abstract class Match extends BasePatternMatch { | ||
77 | private EReference fA; | ||
78 | |||
79 | private static List<String> parameterNames = makeImmutableList("a"); | ||
80 | |||
81 | private Match(final EReference pA) { | ||
82 | this.fA = pA; | ||
83 | } | ||
84 | |||
85 | @Override | ||
86 | public Object get(final String parameterName) { | ||
87 | switch(parameterName) { | ||
88 | case "a": return this.fA; | ||
89 | default: return null; | ||
90 | } | ||
91 | } | ||
92 | |||
93 | @Override | ||
94 | public Object get(final int index) { | ||
95 | switch(index) { | ||
96 | case 0: return this.fA; | ||
97 | default: return null; | ||
98 | } | ||
99 | } | ||
100 | |||
101 | public EReference getA() { | ||
102 | return this.fA; | ||
103 | } | ||
104 | |||
105 | @Override | ||
106 | public boolean set(final String parameterName, final Object newValue) { | ||
107 | if (!isMutable()) throw new java.lang.UnsupportedOperationException(); | ||
108 | if ("a".equals(parameterName) ) { | ||
109 | this.fA = (EReference) newValue; | ||
110 | return true; | ||
111 | } | ||
112 | return false; | ||
113 | } | ||
114 | |||
115 | public void setA(final EReference pA) { | ||
116 | if (!isMutable()) throw new java.lang.UnsupportedOperationException(); | ||
117 | this.fA = pA; | ||
118 | } | ||
119 | |||
120 | @Override | ||
121 | public String patternName() { | ||
122 | return "queries.oppositeDifferentClass"; | ||
123 | } | ||
124 | |||
125 | @Override | ||
126 | public List<String> parameterNames() { | ||
127 | return OppositeDifferentClass.Match.parameterNames; | ||
128 | } | ||
129 | |||
130 | @Override | ||
131 | public Object[] toArray() { | ||
132 | return new Object[]{fA}; | ||
133 | } | ||
134 | |||
135 | @Override | ||
136 | public OppositeDifferentClass.Match toImmutable() { | ||
137 | return isMutable() ? newMatch(fA) : this; | ||
138 | } | ||
139 | |||
140 | @Override | ||
141 | public String prettyPrint() { | ||
142 | StringBuilder result = new StringBuilder(); | ||
143 | result.append("\"a\"=" + prettyPrintValue(fA)); | ||
144 | return result.toString(); | ||
145 | } | ||
146 | |||
147 | @Override | ||
148 | public int hashCode() { | ||
149 | return Objects.hash(fA); | ||
150 | } | ||
151 | |||
152 | @Override | ||
153 | public boolean equals(final Object obj) { | ||
154 | if (this == obj) | ||
155 | return true; | ||
156 | if (obj == null) { | ||
157 | return false; | ||
158 | } | ||
159 | if ((obj instanceof OppositeDifferentClass.Match)) { | ||
160 | OppositeDifferentClass.Match other = (OppositeDifferentClass.Match) obj; | ||
161 | return Objects.equals(fA, other.fA); | ||
162 | } else { | ||
163 | // this should be infrequent | ||
164 | if (!(obj instanceof IPatternMatch)) { | ||
165 | return false; | ||
166 | } | ||
167 | IPatternMatch otherSig = (IPatternMatch) obj; | ||
168 | return Objects.equals(specification(), otherSig.specification()) && Arrays.deepEquals(toArray(), otherSig.toArray()); | ||
169 | } | ||
170 | } | ||
171 | |||
172 | @Override | ||
173 | public OppositeDifferentClass specification() { | ||
174 | return OppositeDifferentClass.instance(); | ||
175 | } | ||
176 | |||
177 | /** | ||
178 | * Returns an empty, mutable match. | ||
179 | * Fields of the mutable match can be filled to create a partial match, usable as matcher input. | ||
180 | * | ||
181 | * @return the empty match. | ||
182 | * | ||
183 | */ | ||
184 | public static OppositeDifferentClass.Match newEmptyMatch() { | ||
185 | return new Mutable(null); | ||
186 | } | ||
187 | |||
188 | /** | ||
189 | * Returns a mutable (partial) match. | ||
190 | * Fields of the mutable match can be filled to create a partial match, usable as matcher input. | ||
191 | * | ||
192 | * @param pA the fixed value of pattern parameter a, or null if not bound. | ||
193 | * @return the new, mutable (partial) match object. | ||
194 | * | ||
195 | */ | ||
196 | public static OppositeDifferentClass.Match newMutableMatch(final EReference pA) { | ||
197 | return new Mutable(pA); | ||
198 | } | ||
199 | |||
200 | /** | ||
201 | * Returns a new (partial) match. | ||
202 | * This can be used e.g. to call the matcher with a partial match. | ||
203 | * <p>The returned match will be immutable. Use {@link #newEmptyMatch()} to obtain a mutable match object. | ||
204 | * @param pA the fixed value of pattern parameter a, or null if not bound. | ||
205 | * @return the (partial) match object. | ||
206 | * | ||
207 | */ | ||
208 | public static OppositeDifferentClass.Match newMatch(final EReference pA) { | ||
209 | return new Immutable(pA); | ||
210 | } | ||
211 | |||
212 | private static final class Mutable extends OppositeDifferentClass.Match { | ||
213 | Mutable(final EReference pA) { | ||
214 | super(pA); | ||
215 | } | ||
216 | |||
217 | @Override | ||
218 | public boolean isMutable() { | ||
219 | return true; | ||
220 | } | ||
221 | } | ||
222 | |||
223 | private static final class Immutable extends OppositeDifferentClass.Match { | ||
224 | Immutable(final EReference pA) { | ||
225 | super(pA); | ||
226 | } | ||
227 | |||
228 | @Override | ||
229 | public boolean isMutable() { | ||
230 | return false; | ||
231 | } | ||
232 | } | ||
233 | } | ||
234 | |||
235 | /** | ||
236 | * Generated pattern matcher API of the queries.oppositeDifferentClass pattern, | ||
237 | * providing pattern-specific query methods. | ||
238 | * | ||
239 | * <p>Use the pattern matcher on a given model via {@link #on(ViatraQueryEngine)}, | ||
240 | * e.g. in conjunction with {@link ViatraQueryEngine#on(QueryScope)}. | ||
241 | * | ||
242 | * <p>Matches of the pattern will be represented as {@link Match}. | ||
243 | * | ||
244 | * <p>Original source: | ||
245 | * <code><pre> | ||
246 | * {@literal @}Constraint(key={a}, severity="error", message="error") | ||
247 | * pattern oppositeDifferentClass(a:EReference) { | ||
248 | * EReference.eOpposite(a,b); | ||
249 | * EReference.eContainingClass(a,aContaining); | ||
250 | * EReference.eType(b,bTarget); | ||
251 | * aContaining != bTarget; | ||
252 | * } | ||
253 | * </pre></code> | ||
254 | * | ||
255 | * @see Match | ||
256 | * @see OppositeDifferentClass | ||
257 | * | ||
258 | */ | ||
259 | public static class Matcher extends BaseMatcher<OppositeDifferentClass.Match> { | ||
260 | /** | ||
261 | * Initializes the pattern matcher within an existing VIATRA Query engine. | ||
262 | * If the pattern matcher is already constructed in the engine, only a light-weight reference is returned. | ||
263 | * | ||
264 | * @param engine the existing VIATRA Query engine in which this matcher will be created. | ||
265 | * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation | ||
266 | * | ||
267 | */ | ||
268 | public static OppositeDifferentClass.Matcher on(final ViatraQueryEngine engine) { | ||
269 | // check if matcher already exists | ||
270 | Matcher matcher = engine.getExistingMatcher(querySpecification()); | ||
271 | if (matcher == null) { | ||
272 | matcher = (Matcher)engine.getMatcher(querySpecification()); | ||
273 | } | ||
274 | return matcher; | ||
275 | } | ||
276 | |||
277 | /** | ||
278 | * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation | ||
279 | * @return an initialized matcher | ||
280 | * @noreference This method is for internal matcher initialization by the framework, do not call it manually. | ||
281 | * | ||
282 | */ | ||
283 | public static OppositeDifferentClass.Matcher create() { | ||
284 | return new Matcher(); | ||
285 | } | ||
286 | |||
287 | private static final int POSITION_A = 0; | ||
288 | |||
289 | private static final Logger LOGGER = ViatraQueryLoggingUtil.getLogger(OppositeDifferentClass.Matcher.class); | ||
290 | |||
291 | /** | ||
292 | * Initializes the pattern matcher within an existing VIATRA Query engine. | ||
293 | * If the pattern matcher is already constructed in the engine, only a light-weight reference is returned. | ||
294 | * | ||
295 | * @param engine the existing VIATRA Query engine in which this matcher will be created. | ||
296 | * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation | ||
297 | * | ||
298 | */ | ||
299 | private Matcher() { | ||
300 | super(querySpecification()); | ||
301 | } | ||
302 | |||
303 | /** | ||
304 | * Returns the set of all matches of the pattern that conform to the given fixed values of some parameters. | ||
305 | * @param pA the fixed value of pattern parameter a, or null if not bound. | ||
306 | * @return matches represented as a Match object. | ||
307 | * | ||
308 | */ | ||
309 | public Collection<OppositeDifferentClass.Match> getAllMatches(final EReference pA) { | ||
310 | return rawStreamAllMatches(new Object[]{pA}).collect(Collectors.toSet()); | ||
311 | } | ||
312 | |||
313 | /** | ||
314 | * Returns a stream of all matches of the pattern that conform to the given fixed values of some parameters. | ||
315 | * </p> | ||
316 | * <strong>NOTE</strong>: It is important not to modify the source model while the stream is being processed. | ||
317 | * If the match set of the pattern changes during processing, the contents of the stream is <strong>undefined</strong>. | ||
318 | * In such cases, either rely on {@link #getAllMatches()} or collect the results of the stream in end-user code. | ||
319 | * @param pA the fixed value of pattern parameter a, or null if not bound. | ||
320 | * @return a stream of matches represented as a Match object. | ||
321 | * | ||
322 | */ | ||
323 | public Stream<OppositeDifferentClass.Match> streamAllMatches(final EReference pA) { | ||
324 | return rawStreamAllMatches(new Object[]{pA}); | ||
325 | } | ||
326 | |||
327 | /** | ||
328 | * Returns an arbitrarily chosen match of the pattern that conforms to the given fixed values of some parameters. | ||
329 | * Neither determinism nor randomness of selection is guaranteed. | ||
330 | * @param pA the fixed value of pattern parameter a, or null if not bound. | ||
331 | * @return a match represented as a Match object, or null if no match is found. | ||
332 | * | ||
333 | */ | ||
334 | public Optional<OppositeDifferentClass.Match> getOneArbitraryMatch(final EReference pA) { | ||
335 | return rawGetOneArbitraryMatch(new Object[]{pA}); | ||
336 | } | ||
337 | |||
338 | /** | ||
339 | * Indicates whether the given combination of specified pattern parameters constitute a valid pattern match, | ||
340 | * under any possible substitution of the unspecified parameters (if any). | ||
341 | * @param pA the fixed value of pattern parameter a, or null if not bound. | ||
342 | * @return true if the input is a valid (partial) match of the pattern. | ||
343 | * | ||
344 | */ | ||
345 | public boolean hasMatch(final EReference pA) { | ||
346 | return rawHasMatch(new Object[]{pA}); | ||
347 | } | ||
348 | |||
349 | /** | ||
350 | * Returns the number of all matches of the pattern that conform to the given fixed values of some parameters. | ||
351 | * @param pA the fixed value of pattern parameter a, or null if not bound. | ||
352 | * @return the number of pattern matches found. | ||
353 | * | ||
354 | */ | ||
355 | public int countMatches(final EReference pA) { | ||
356 | return rawCountMatches(new Object[]{pA}); | ||
357 | } | ||
358 | |||
359 | /** | ||
360 | * Executes the given processor on an arbitrarily chosen match of the pattern that conforms to the given fixed values of some parameters. | ||
361 | * Neither determinism nor randomness of selection is guaranteed. | ||
362 | * @param pA the fixed value of pattern parameter a, or null if not bound. | ||
363 | * @param processor the action that will process the selected match. | ||
364 | * @return true if the pattern has at least one match with the given parameter values, false if the processor was not invoked | ||
365 | * | ||
366 | */ | ||
367 | public boolean forOneArbitraryMatch(final EReference pA, final Consumer<? super OppositeDifferentClass.Match> processor) { | ||
368 | return rawForOneArbitraryMatch(new Object[]{pA}, processor); | ||
369 | } | ||
370 | |||
371 | /** | ||
372 | * Returns a new (partial) match. | ||
373 | * This can be used e.g. to call the matcher with a partial match. | ||
374 | * <p>The returned match will be immutable. Use {@link #newEmptyMatch()} to obtain a mutable match object. | ||
375 | * @param pA the fixed value of pattern parameter a, or null if not bound. | ||
376 | * @return the (partial) match object. | ||
377 | * | ||
378 | */ | ||
379 | public OppositeDifferentClass.Match newMatch(final EReference pA) { | ||
380 | return OppositeDifferentClass.Match.newMatch(pA); | ||
381 | } | ||
382 | |||
383 | /** | ||
384 | * Retrieve the set of values that occur in matches for a. | ||
385 | * @return the Set of all values or empty set if there are no matches | ||
386 | * | ||
387 | */ | ||
388 | protected Stream<EReference> rawStreamAllValuesOfa(final Object[] parameters) { | ||
389 | return rawStreamAllValues(POSITION_A, parameters).map(EReference.class::cast); | ||
390 | } | ||
391 | |||
392 | /** | ||
393 | * Retrieve the set of values that occur in matches for a. | ||
394 | * @return the Set of all values or empty set if there are no matches | ||
395 | * | ||
396 | */ | ||
397 | public Set<EReference> getAllValuesOfa() { | ||
398 | return rawStreamAllValuesOfa(emptyArray()).collect(Collectors.toSet()); | ||
399 | } | ||
400 | |||
401 | /** | ||
402 | * Retrieve the set of values that occur in matches for a. | ||
403 | * @return the Set of all values or empty set if there are no matches | ||
404 | * | ||
405 | */ | ||
406 | public Stream<EReference> streamAllValuesOfa() { | ||
407 | return rawStreamAllValuesOfa(emptyArray()); | ||
408 | } | ||
409 | |||
410 | @Override | ||
411 | protected OppositeDifferentClass.Match tupleToMatch(final Tuple t) { | ||
412 | try { | ||
413 | return OppositeDifferentClass.Match.newMatch((EReference) t.get(POSITION_A)); | ||
414 | } catch(ClassCastException e) { | ||
415 | LOGGER.error("Element(s) in tuple not properly typed!",e); | ||
416 | return null; | ||
417 | } | ||
418 | } | ||
419 | |||
420 | @Override | ||
421 | protected OppositeDifferentClass.Match arrayToMatch(final Object[] match) { | ||
422 | try { | ||
423 | return OppositeDifferentClass.Match.newMatch((EReference) match[POSITION_A]); | ||
424 | } catch(ClassCastException e) { | ||
425 | LOGGER.error("Element(s) in array not properly typed!",e); | ||
426 | return null; | ||
427 | } | ||
428 | } | ||
429 | |||
430 | @Override | ||
431 | protected OppositeDifferentClass.Match arrayToMatchMutable(final Object[] match) { | ||
432 | try { | ||
433 | return OppositeDifferentClass.Match.newMutableMatch((EReference) match[POSITION_A]); | ||
434 | } catch(ClassCastException e) { | ||
435 | LOGGER.error("Element(s) in array not properly typed!",e); | ||
436 | return null; | ||
437 | } | ||
438 | } | ||
439 | |||
440 | /** | ||
441 | * @return the singleton instance of the query specification of this pattern | ||
442 | * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded | ||
443 | * | ||
444 | */ | ||
445 | public static IQuerySpecification<OppositeDifferentClass.Matcher> querySpecification() { | ||
446 | return OppositeDifferentClass.instance(); | ||
447 | } | ||
448 | } | ||
449 | |||
450 | private OppositeDifferentClass() { | ||
451 | super(GeneratedPQuery.INSTANCE); | ||
452 | } | ||
453 | |||
454 | /** | ||
455 | * @return the singleton instance of the query specification | ||
456 | * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded | ||
457 | * | ||
458 | */ | ||
459 | public static OppositeDifferentClass instance() { | ||
460 | try{ | ||
461 | return LazyHolder.INSTANCE; | ||
462 | } catch (ExceptionInInitializerError err) { | ||
463 | throw processInitializerError(err); | ||
464 | } | ||
465 | } | ||
466 | |||
467 | @Override | ||
468 | protected OppositeDifferentClass.Matcher instantiate(final ViatraQueryEngine engine) { | ||
469 | return OppositeDifferentClass.Matcher.on(engine); | ||
470 | } | ||
471 | |||
472 | @Override | ||
473 | public OppositeDifferentClass.Matcher instantiate() { | ||
474 | return OppositeDifferentClass.Matcher.create(); | ||
475 | } | ||
476 | |||
477 | @Override | ||
478 | public OppositeDifferentClass.Match newEmptyMatch() { | ||
479 | return OppositeDifferentClass.Match.newEmptyMatch(); | ||
480 | } | ||
481 | |||
482 | @Override | ||
483 | public OppositeDifferentClass.Match newMatch(final Object... parameters) { | ||
484 | return OppositeDifferentClass.Match.newMatch((org.eclipse.emf.ecore.EReference) parameters[0]); | ||
485 | } | ||
486 | |||
487 | /** | ||
488 | * Inner class allowing the singleton instance of {@link OppositeDifferentClass} to be created | ||
489 | * <b>not</b> at the class load time of the outer class, | ||
490 | * but rather at the first call to {@link OppositeDifferentClass#instance()}. | ||
491 | * | ||
492 | * <p> This workaround is required e.g. to support recursion. | ||
493 | * | ||
494 | */ | ||
495 | private static class LazyHolder { | ||
496 | private static final OppositeDifferentClass INSTANCE = new OppositeDifferentClass(); | ||
497 | |||
498 | /** | ||
499 | * Statically initializes the query specification <b>after</b> the field {@link #INSTANCE} is assigned. | ||
500 | * This initialization order is required to support indirect recursion. | ||
501 | * | ||
502 | * <p> The static initializer is defined using a helper field to work around limitations of the code generator. | ||
503 | * | ||
504 | */ | ||
505 | private static final Object STATIC_INITIALIZER = ensureInitialized(); | ||
506 | |||
507 | public static Object ensureInitialized() { | ||
508 | INSTANCE.ensureInitializedInternal(); | ||
509 | return null; | ||
510 | } | ||
511 | } | ||
512 | |||
513 | private static class GeneratedPQuery extends BaseGeneratedEMFPQuery { | ||
514 | private static final OppositeDifferentClass.GeneratedPQuery INSTANCE = new GeneratedPQuery(); | ||
515 | |||
516 | private final PParameter parameter_a = new PParameter("a", "org.eclipse.emf.ecore.EReference", new EClassTransitiveInstancesKey((EClass)getClassifierLiteralSafe("http://www.eclipse.org/emf/2002/Ecore", "EReference")), PParameterDirection.INOUT); | ||
517 | |||
518 | private final List<PParameter> parameters = Arrays.asList(parameter_a); | ||
519 | |||
520 | private GeneratedPQuery() { | ||
521 | super(PVisibility.PUBLIC); | ||
522 | } | ||
523 | |||
524 | @Override | ||
525 | public String getFullyQualifiedName() { | ||
526 | return "queries.oppositeDifferentClass"; | ||
527 | } | ||
528 | |||
529 | @Override | ||
530 | public List<String> getParameterNames() { | ||
531 | return Arrays.asList("a"); | ||
532 | } | ||
533 | |||
534 | @Override | ||
535 | public List<PParameter> getParameters() { | ||
536 | return parameters; | ||
537 | } | ||
538 | |||
539 | @Override | ||
540 | public Set<PBody> doGetContainedBodies() { | ||
541 | setEvaluationHints(new QueryEvaluationHint(null, QueryEvaluationHint.BackendRequirement.UNSPECIFIED)); | ||
542 | Set<PBody> bodies = new LinkedHashSet<>(); | ||
543 | { | ||
544 | PBody body = new PBody(this); | ||
545 | PVariable var_a = body.getOrCreateVariableByName("a"); | ||
546 | PVariable var_b = body.getOrCreateVariableByName("b"); | ||
547 | PVariable var_aContaining = body.getOrCreateVariableByName("aContaining"); | ||
548 | PVariable var_bTarget = body.getOrCreateVariableByName("bTarget"); | ||
549 | new TypeConstraint(body, Tuples.flatTupleOf(var_a), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.eclipse.org/emf/2002/Ecore", "EReference"))); | ||
550 | body.setSymbolicParameters(Arrays.<ExportedParameter>asList( | ||
551 | new ExportedParameter(body, var_a, parameter_a) | ||
552 | )); | ||
553 | // EReference.eOpposite(a,b) | ||
554 | new TypeConstraint(body, Tuples.flatTupleOf(var_a), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.eclipse.org/emf/2002/Ecore", "EReference"))); | ||
555 | PVariable var__virtual_0_ = body.getOrCreateVariableByName(".virtual{0}"); | ||
556 | new TypeConstraint(body, Tuples.flatTupleOf(var_a, var__virtual_0_), new EStructuralFeatureInstancesKey(getFeatureLiteral("http://www.eclipse.org/emf/2002/Ecore", "EReference", "eOpposite"))); | ||
557 | new TypeConstraint(body, Tuples.flatTupleOf(var__virtual_0_), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.eclipse.org/emf/2002/Ecore", "EReference"))); | ||
558 | new Equality(body, var__virtual_0_, var_b); | ||
559 | // EReference.eContainingClass(a,aContaining) | ||
560 | new TypeConstraint(body, Tuples.flatTupleOf(var_a), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.eclipse.org/emf/2002/Ecore", "EReference"))); | ||
561 | PVariable var__virtual_1_ = body.getOrCreateVariableByName(".virtual{1}"); | ||
562 | new TypeConstraint(body, Tuples.flatTupleOf(var_a, var__virtual_1_), new EStructuralFeatureInstancesKey(getFeatureLiteral("http://www.eclipse.org/emf/2002/Ecore", "EStructuralFeature", "eContainingClass"))); | ||
563 | new TypeConstraint(body, Tuples.flatTupleOf(var__virtual_1_), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.eclipse.org/emf/2002/Ecore", "EClass"))); | ||
564 | new Equality(body, var__virtual_1_, var_aContaining); | ||
565 | // EReference.eType(b,bTarget) | ||
566 | new TypeConstraint(body, Tuples.flatTupleOf(var_b), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.eclipse.org/emf/2002/Ecore", "EReference"))); | ||
567 | PVariable var__virtual_2_ = body.getOrCreateVariableByName(".virtual{2}"); | ||
568 | new TypeConstraint(body, Tuples.flatTupleOf(var_b, var__virtual_2_), new EStructuralFeatureInstancesKey(getFeatureLiteral("http://www.eclipse.org/emf/2002/Ecore", "ETypedElement", "eType"))); | ||
569 | new TypeConstraint(body, Tuples.flatTupleOf(var__virtual_2_), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.eclipse.org/emf/2002/Ecore", "EClassifier"))); | ||
570 | new Equality(body, var__virtual_2_, var_bTarget); | ||
571 | // aContaining != bTarget | ||
572 | new Inequality(body, var_aContaining, var_bTarget); | ||
573 | bodies.add(body); | ||
574 | } | ||
575 | { | ||
576 | PAnnotation annotation = new PAnnotation("Constraint"); | ||
577 | annotation.addAttribute("key", Arrays.asList(new Object[] { | ||
578 | new ParameterReference("a") | ||
579 | })); | ||
580 | annotation.addAttribute("severity", "error"); | ||
581 | annotation.addAttribute("message", "error"); | ||
582 | addAnnotation(annotation); | ||
583 | } | ||
584 | return bodies; | ||
585 | } | ||
586 | } | ||
587 | } | ||
diff --git a/Metrics/Metrics-Calculation/SocialNetwork_plugin/src-gen/queries/SuperTypes.java b/Metrics/Metrics-Calculation/SocialNetwork_plugin/src-gen/queries/SuperTypes.java new file mode 100644 index 00000000..4bf7a455 --- /dev/null +++ b/Metrics/Metrics-Calculation/SocialNetwork_plugin/src-gen/queries/SuperTypes.java | |||
@@ -0,0 +1,703 @@ | |||
1 | /** | ||
2 | * Generated from platform:/resource/SocialNetwork_plugin/queries/queries/Ecore.vql | ||
3 | */ | ||
4 | package queries; | ||
5 | |||
6 | import java.util.Arrays; | ||
7 | import java.util.Collection; | ||
8 | import java.util.LinkedHashSet; | ||
9 | import java.util.List; | ||
10 | import java.util.Objects; | ||
11 | import java.util.Optional; | ||
12 | import java.util.Set; | ||
13 | import java.util.function.Consumer; | ||
14 | import java.util.stream.Collectors; | ||
15 | import java.util.stream.Stream; | ||
16 | import org.apache.log4j.Logger; | ||
17 | import org.eclipse.emf.ecore.EClass; | ||
18 | import org.eclipse.viatra.query.runtime.api.IPatternMatch; | ||
19 | import org.eclipse.viatra.query.runtime.api.IQuerySpecification; | ||
20 | import org.eclipse.viatra.query.runtime.api.ViatraQueryEngine; | ||
21 | import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFPQuery; | ||
22 | import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFQuerySpecification; | ||
23 | import org.eclipse.viatra.query.runtime.api.impl.BaseMatcher; | ||
24 | import org.eclipse.viatra.query.runtime.api.impl.BasePatternMatch; | ||
25 | import org.eclipse.viatra.query.runtime.emf.types.EClassTransitiveInstancesKey; | ||
26 | import org.eclipse.viatra.query.runtime.emf.types.EStructuralFeatureInstancesKey; | ||
27 | import org.eclipse.viatra.query.runtime.matchers.backend.QueryEvaluationHint; | ||
28 | import org.eclipse.viatra.query.runtime.matchers.psystem.PBody; | ||
29 | import org.eclipse.viatra.query.runtime.matchers.psystem.PVariable; | ||
30 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.Equality; | ||
31 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.ExportedParameter; | ||
32 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.TypeConstraint; | ||
33 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameter; | ||
34 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameterDirection; | ||
35 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PVisibility; | ||
36 | import org.eclipse.viatra.query.runtime.matchers.tuple.Tuple; | ||
37 | import org.eclipse.viatra.query.runtime.matchers.tuple.Tuples; | ||
38 | import org.eclipse.viatra.query.runtime.util.ViatraQueryLoggingUtil; | ||
39 | |||
40 | /** | ||
41 | * A pattern-specific query specification that can instantiate Matcher in a type-safe way. | ||
42 | * | ||
43 | * <p>Original source: | ||
44 | * <code><pre> | ||
45 | * pattern superTypes(c1:EClass, c2:EClass){ | ||
46 | * EClass.eSuperTypes(c1,c2); | ||
47 | * } | ||
48 | * </pre></code> | ||
49 | * | ||
50 | * @see Matcher | ||
51 | * @see Match | ||
52 | * | ||
53 | */ | ||
54 | @SuppressWarnings("all") | ||
55 | public final class SuperTypes extends BaseGeneratedEMFQuerySpecification<SuperTypes.Matcher> { | ||
56 | /** | ||
57 | * Pattern-specific match representation of the queries.superTypes pattern, | ||
58 | * to be used in conjunction with {@link Matcher}. | ||
59 | * | ||
60 | * <p>Class fields correspond to parameters of the pattern. Fields with value null are considered unassigned. | ||
61 | * Each instance is a (possibly partial) substitution of pattern parameters, | ||
62 | * usable to represent a match of the pattern in the result of a query, | ||
63 | * or to specify the bound (fixed) input parameters when issuing a query. | ||
64 | * | ||
65 | * @see Matcher | ||
66 | * | ||
67 | */ | ||
68 | public static abstract class Match extends BasePatternMatch { | ||
69 | private EClass fC1; | ||
70 | |||
71 | private EClass fC2; | ||
72 | |||
73 | private static List<String> parameterNames = makeImmutableList("c1", "c2"); | ||
74 | |||
75 | private Match(final EClass pC1, final EClass pC2) { | ||
76 | this.fC1 = pC1; | ||
77 | this.fC2 = pC2; | ||
78 | } | ||
79 | |||
80 | @Override | ||
81 | public Object get(final String parameterName) { | ||
82 | switch(parameterName) { | ||
83 | case "c1": return this.fC1; | ||
84 | case "c2": return this.fC2; | ||
85 | default: return null; | ||
86 | } | ||
87 | } | ||
88 | |||
89 | @Override | ||
90 | public Object get(final int index) { | ||
91 | switch(index) { | ||
92 | case 0: return this.fC1; | ||
93 | case 1: return this.fC2; | ||
94 | default: return null; | ||
95 | } | ||
96 | } | ||
97 | |||
98 | public EClass getC1() { | ||
99 | return this.fC1; | ||
100 | } | ||
101 | |||
102 | public EClass getC2() { | ||
103 | return this.fC2; | ||
104 | } | ||
105 | |||
106 | @Override | ||
107 | public boolean set(final String parameterName, final Object newValue) { | ||
108 | if (!isMutable()) throw new java.lang.UnsupportedOperationException(); | ||
109 | if ("c1".equals(parameterName) ) { | ||
110 | this.fC1 = (EClass) newValue; | ||
111 | return true; | ||
112 | } | ||
113 | if ("c2".equals(parameterName) ) { | ||
114 | this.fC2 = (EClass) newValue; | ||
115 | return true; | ||
116 | } | ||
117 | return false; | ||
118 | } | ||
119 | |||
120 | public void setC1(final EClass pC1) { | ||
121 | if (!isMutable()) throw new java.lang.UnsupportedOperationException(); | ||
122 | this.fC1 = pC1; | ||
123 | } | ||
124 | |||
125 | public void setC2(final EClass pC2) { | ||
126 | if (!isMutable()) throw new java.lang.UnsupportedOperationException(); | ||
127 | this.fC2 = pC2; | ||
128 | } | ||
129 | |||
130 | @Override | ||
131 | public String patternName() { | ||
132 | return "queries.superTypes"; | ||
133 | } | ||
134 | |||
135 | @Override | ||
136 | public List<String> parameterNames() { | ||
137 | return SuperTypes.Match.parameterNames; | ||
138 | } | ||
139 | |||
140 | @Override | ||
141 | public Object[] toArray() { | ||
142 | return new Object[]{fC1, fC2}; | ||
143 | } | ||
144 | |||
145 | @Override | ||
146 | public SuperTypes.Match toImmutable() { | ||
147 | return isMutable() ? newMatch(fC1, fC2) : this; | ||
148 | } | ||
149 | |||
150 | @Override | ||
151 | public String prettyPrint() { | ||
152 | StringBuilder result = new StringBuilder(); | ||
153 | result.append("\"c1\"=" + prettyPrintValue(fC1) + ", "); | ||
154 | result.append("\"c2\"=" + prettyPrintValue(fC2)); | ||
155 | return result.toString(); | ||
156 | } | ||
157 | |||
158 | @Override | ||
159 | public int hashCode() { | ||
160 | return Objects.hash(fC1, fC2); | ||
161 | } | ||
162 | |||
163 | @Override | ||
164 | public boolean equals(final Object obj) { | ||
165 | if (this == obj) | ||
166 | return true; | ||
167 | if (obj == null) { | ||
168 | return false; | ||
169 | } | ||
170 | if ((obj instanceof SuperTypes.Match)) { | ||
171 | SuperTypes.Match other = (SuperTypes.Match) obj; | ||
172 | return Objects.equals(fC1, other.fC1) && Objects.equals(fC2, other.fC2); | ||
173 | } else { | ||
174 | // this should be infrequent | ||
175 | if (!(obj instanceof IPatternMatch)) { | ||
176 | return false; | ||
177 | } | ||
178 | IPatternMatch otherSig = (IPatternMatch) obj; | ||
179 | return Objects.equals(specification(), otherSig.specification()) && Arrays.deepEquals(toArray(), otherSig.toArray()); | ||
180 | } | ||
181 | } | ||
182 | |||
183 | @Override | ||
184 | public SuperTypes specification() { | ||
185 | return SuperTypes.instance(); | ||
186 | } | ||
187 | |||
188 | /** | ||
189 | * Returns an empty, mutable match. | ||
190 | * Fields of the mutable match can be filled to create a partial match, usable as matcher input. | ||
191 | * | ||
192 | * @return the empty match. | ||
193 | * | ||
194 | */ | ||
195 | public static SuperTypes.Match newEmptyMatch() { | ||
196 | return new Mutable(null, null); | ||
197 | } | ||
198 | |||
199 | /** | ||
200 | * Returns a mutable (partial) match. | ||
201 | * Fields of the mutable match can be filled to create a partial match, usable as matcher input. | ||
202 | * | ||
203 | * @param pC1 the fixed value of pattern parameter c1, or null if not bound. | ||
204 | * @param pC2 the fixed value of pattern parameter c2, or null if not bound. | ||
205 | * @return the new, mutable (partial) match object. | ||
206 | * | ||
207 | */ | ||
208 | public static SuperTypes.Match newMutableMatch(final EClass pC1, final EClass pC2) { | ||
209 | return new Mutable(pC1, pC2); | ||
210 | } | ||
211 | |||
212 | /** | ||
213 | * Returns a new (partial) match. | ||
214 | * This can be used e.g. to call the matcher with a partial match. | ||
215 | * <p>The returned match will be immutable. Use {@link #newEmptyMatch()} to obtain a mutable match object. | ||
216 | * @param pC1 the fixed value of pattern parameter c1, or null if not bound. | ||
217 | * @param pC2 the fixed value of pattern parameter c2, or null if not bound. | ||
218 | * @return the (partial) match object. | ||
219 | * | ||
220 | */ | ||
221 | public static SuperTypes.Match newMatch(final EClass pC1, final EClass pC2) { | ||
222 | return new Immutable(pC1, pC2); | ||
223 | } | ||
224 | |||
225 | private static final class Mutable extends SuperTypes.Match { | ||
226 | Mutable(final EClass pC1, final EClass pC2) { | ||
227 | super(pC1, pC2); | ||
228 | } | ||
229 | |||
230 | @Override | ||
231 | public boolean isMutable() { | ||
232 | return true; | ||
233 | } | ||
234 | } | ||
235 | |||
236 | private static final class Immutable extends SuperTypes.Match { | ||
237 | Immutable(final EClass pC1, final EClass pC2) { | ||
238 | super(pC1, pC2); | ||
239 | } | ||
240 | |||
241 | @Override | ||
242 | public boolean isMutable() { | ||
243 | return false; | ||
244 | } | ||
245 | } | ||
246 | } | ||
247 | |||
248 | /** | ||
249 | * Generated pattern matcher API of the queries.superTypes pattern, | ||
250 | * providing pattern-specific query methods. | ||
251 | * | ||
252 | * <p>Use the pattern matcher on a given model via {@link #on(ViatraQueryEngine)}, | ||
253 | * e.g. in conjunction with {@link ViatraQueryEngine#on(QueryScope)}. | ||
254 | * | ||
255 | * <p>Matches of the pattern will be represented as {@link Match}. | ||
256 | * | ||
257 | * <p>Original source: | ||
258 | * <code><pre> | ||
259 | * pattern superTypes(c1:EClass, c2:EClass){ | ||
260 | * EClass.eSuperTypes(c1,c2); | ||
261 | * } | ||
262 | * </pre></code> | ||
263 | * | ||
264 | * @see Match | ||
265 | * @see SuperTypes | ||
266 | * | ||
267 | */ | ||
268 | public static class Matcher extends BaseMatcher<SuperTypes.Match> { | ||
269 | /** | ||
270 | * Initializes the pattern matcher within an existing VIATRA Query engine. | ||
271 | * If the pattern matcher is already constructed in the engine, only a light-weight reference is returned. | ||
272 | * | ||
273 | * @param engine the existing VIATRA Query engine in which this matcher will be created. | ||
274 | * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation | ||
275 | * | ||
276 | */ | ||
277 | public static SuperTypes.Matcher on(final ViatraQueryEngine engine) { | ||
278 | // check if matcher already exists | ||
279 | Matcher matcher = engine.getExistingMatcher(querySpecification()); | ||
280 | if (matcher == null) { | ||
281 | matcher = (Matcher)engine.getMatcher(querySpecification()); | ||
282 | } | ||
283 | return matcher; | ||
284 | } | ||
285 | |||
286 | /** | ||
287 | * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation | ||
288 | * @return an initialized matcher | ||
289 | * @noreference This method is for internal matcher initialization by the framework, do not call it manually. | ||
290 | * | ||
291 | */ | ||
292 | public static SuperTypes.Matcher create() { | ||
293 | return new Matcher(); | ||
294 | } | ||
295 | |||
296 | private static final int POSITION_C1 = 0; | ||
297 | |||
298 | private static final int POSITION_C2 = 1; | ||
299 | |||
300 | private static final Logger LOGGER = ViatraQueryLoggingUtil.getLogger(SuperTypes.Matcher.class); | ||
301 | |||
302 | /** | ||
303 | * Initializes the pattern matcher within an existing VIATRA Query engine. | ||
304 | * If the pattern matcher is already constructed in the engine, only a light-weight reference is returned. | ||
305 | * | ||
306 | * @param engine the existing VIATRA Query engine in which this matcher will be created. | ||
307 | * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation | ||
308 | * | ||
309 | */ | ||
310 | private Matcher() { | ||
311 | super(querySpecification()); | ||
312 | } | ||
313 | |||
314 | /** | ||
315 | * Returns the set of all matches of the pattern that conform to the given fixed values of some parameters. | ||
316 | * @param pC1 the fixed value of pattern parameter c1, or null if not bound. | ||
317 | * @param pC2 the fixed value of pattern parameter c2, or null if not bound. | ||
318 | * @return matches represented as a Match object. | ||
319 | * | ||
320 | */ | ||
321 | public Collection<SuperTypes.Match> getAllMatches(final EClass pC1, final EClass pC2) { | ||
322 | return rawStreamAllMatches(new Object[]{pC1, pC2}).collect(Collectors.toSet()); | ||
323 | } | ||
324 | |||
325 | /** | ||
326 | * Returns a stream of all matches of the pattern that conform to the given fixed values of some parameters. | ||
327 | * </p> | ||
328 | * <strong>NOTE</strong>: It is important not to modify the source model while the stream is being processed. | ||
329 | * If the match set of the pattern changes during processing, the contents of the stream is <strong>undefined</strong>. | ||
330 | * In such cases, either rely on {@link #getAllMatches()} or collect the results of the stream in end-user code. | ||
331 | * @param pC1 the fixed value of pattern parameter c1, or null if not bound. | ||
332 | * @param pC2 the fixed value of pattern parameter c2, or null if not bound. | ||
333 | * @return a stream of matches represented as a Match object. | ||
334 | * | ||
335 | */ | ||
336 | public Stream<SuperTypes.Match> streamAllMatches(final EClass pC1, final EClass pC2) { | ||
337 | return rawStreamAllMatches(new Object[]{pC1, pC2}); | ||
338 | } | ||
339 | |||
340 | /** | ||
341 | * Returns an arbitrarily chosen match of the pattern that conforms to the given fixed values of some parameters. | ||
342 | * Neither determinism nor randomness of selection is guaranteed. | ||
343 | * @param pC1 the fixed value of pattern parameter c1, or null if not bound. | ||
344 | * @param pC2 the fixed value of pattern parameter c2, or null if not bound. | ||
345 | * @return a match represented as a Match object, or null if no match is found. | ||
346 | * | ||
347 | */ | ||
348 | public Optional<SuperTypes.Match> getOneArbitraryMatch(final EClass pC1, final EClass pC2) { | ||
349 | return rawGetOneArbitraryMatch(new Object[]{pC1, pC2}); | ||
350 | } | ||
351 | |||
352 | /** | ||
353 | * Indicates whether the given combination of specified pattern parameters constitute a valid pattern match, | ||
354 | * under any possible substitution of the unspecified parameters (if any). | ||
355 | * @param pC1 the fixed value of pattern parameter c1, or null if not bound. | ||
356 | * @param pC2 the fixed value of pattern parameter c2, or null if not bound. | ||
357 | * @return true if the input is a valid (partial) match of the pattern. | ||
358 | * | ||
359 | */ | ||
360 | public boolean hasMatch(final EClass pC1, final EClass pC2) { | ||
361 | return rawHasMatch(new Object[]{pC1, pC2}); | ||
362 | } | ||
363 | |||
364 | /** | ||
365 | * Returns the number of all matches of the pattern that conform to the given fixed values of some parameters. | ||
366 | * @param pC1 the fixed value of pattern parameter c1, or null if not bound. | ||
367 | * @param pC2 the fixed value of pattern parameter c2, or null if not bound. | ||
368 | * @return the number of pattern matches found. | ||
369 | * | ||
370 | */ | ||
371 | public int countMatches(final EClass pC1, final EClass pC2) { | ||
372 | return rawCountMatches(new Object[]{pC1, pC2}); | ||
373 | } | ||
374 | |||
375 | /** | ||
376 | * Executes the given processor on an arbitrarily chosen match of the pattern that conforms to the given fixed values of some parameters. | ||
377 | * Neither determinism nor randomness of selection is guaranteed. | ||
378 | * @param pC1 the fixed value of pattern parameter c1, or null if not bound. | ||
379 | * @param pC2 the fixed value of pattern parameter c2, or null if not bound. | ||
380 | * @param processor the action that will process the selected match. | ||
381 | * @return true if the pattern has at least one match with the given parameter values, false if the processor was not invoked | ||
382 | * | ||
383 | */ | ||
384 | public boolean forOneArbitraryMatch(final EClass pC1, final EClass pC2, final Consumer<? super SuperTypes.Match> processor) { | ||
385 | return rawForOneArbitraryMatch(new Object[]{pC1, pC2}, processor); | ||
386 | } | ||
387 | |||
388 | /** | ||
389 | * Returns a new (partial) match. | ||
390 | * This can be used e.g. to call the matcher with a partial match. | ||
391 | * <p>The returned match will be immutable. Use {@link #newEmptyMatch()} to obtain a mutable match object. | ||
392 | * @param pC1 the fixed value of pattern parameter c1, or null if not bound. | ||
393 | * @param pC2 the fixed value of pattern parameter c2, or null if not bound. | ||
394 | * @return the (partial) match object. | ||
395 | * | ||
396 | */ | ||
397 | public SuperTypes.Match newMatch(final EClass pC1, final EClass pC2) { | ||
398 | return SuperTypes.Match.newMatch(pC1, pC2); | ||
399 | } | ||
400 | |||
401 | /** | ||
402 | * Retrieve the set of values that occur in matches for c1. | ||
403 | * @return the Set of all values or empty set if there are no matches | ||
404 | * | ||
405 | */ | ||
406 | protected Stream<EClass> rawStreamAllValuesOfc1(final Object[] parameters) { | ||
407 | return rawStreamAllValues(POSITION_C1, parameters).map(EClass.class::cast); | ||
408 | } | ||
409 | |||
410 | /** | ||
411 | * Retrieve the set of values that occur in matches for c1. | ||
412 | * @return the Set of all values or empty set if there are no matches | ||
413 | * | ||
414 | */ | ||
415 | public Set<EClass> getAllValuesOfc1() { | ||
416 | return rawStreamAllValuesOfc1(emptyArray()).collect(Collectors.toSet()); | ||
417 | } | ||
418 | |||
419 | /** | ||
420 | * Retrieve the set of values that occur in matches for c1. | ||
421 | * @return the Set of all values or empty set if there are no matches | ||
422 | * | ||
423 | */ | ||
424 | public Stream<EClass> streamAllValuesOfc1() { | ||
425 | return rawStreamAllValuesOfc1(emptyArray()); | ||
426 | } | ||
427 | |||
428 | /** | ||
429 | * Retrieve the set of values that occur in matches for c1. | ||
430 | * </p> | ||
431 | * <strong>NOTE</strong>: It is important not to modify the source model while the stream is being processed. | ||
432 | * If the match set of the pattern changes during processing, the contents of the stream is <strong>undefined</strong>. | ||
433 | * In such cases, either rely on {@link #getAllMatches()} or collect the results of the stream in end-user code. | ||
434 | * | ||
435 | * @return the Stream of all values or empty set if there are no matches | ||
436 | * | ||
437 | */ | ||
438 | public Stream<EClass> streamAllValuesOfc1(final SuperTypes.Match partialMatch) { | ||
439 | return rawStreamAllValuesOfc1(partialMatch.toArray()); | ||
440 | } | ||
441 | |||
442 | /** | ||
443 | * Retrieve the set of values that occur in matches for c1. | ||
444 | * </p> | ||
445 | * <strong>NOTE</strong>: It is important not to modify the source model while the stream is being processed. | ||
446 | * If the match set of the pattern changes during processing, the contents of the stream is <strong>undefined</strong>. | ||
447 | * In such cases, either rely on {@link #getAllMatches()} or collect the results of the stream in end-user code. | ||
448 | * | ||
449 | * @return the Stream of all values or empty set if there are no matches | ||
450 | * | ||
451 | */ | ||
452 | public Stream<EClass> streamAllValuesOfc1(final EClass pC2) { | ||
453 | return rawStreamAllValuesOfc1(new Object[]{null, pC2}); | ||
454 | } | ||
455 | |||
456 | /** | ||
457 | * Retrieve the set of values that occur in matches for c1. | ||
458 | * @return the Set of all values or empty set if there are no matches | ||
459 | * | ||
460 | */ | ||
461 | public Set<EClass> getAllValuesOfc1(final SuperTypes.Match partialMatch) { | ||
462 | return rawStreamAllValuesOfc1(partialMatch.toArray()).collect(Collectors.toSet()); | ||
463 | } | ||
464 | |||
465 | /** | ||
466 | * Retrieve the set of values that occur in matches for c1. | ||
467 | * @return the Set of all values or empty set if there are no matches | ||
468 | * | ||
469 | */ | ||
470 | public Set<EClass> getAllValuesOfc1(final EClass pC2) { | ||
471 | return rawStreamAllValuesOfc1(new Object[]{null, pC2}).collect(Collectors.toSet()); | ||
472 | } | ||
473 | |||
474 | /** | ||
475 | * Retrieve the set of values that occur in matches for c2. | ||
476 | * @return the Set of all values or empty set if there are no matches | ||
477 | * | ||
478 | */ | ||
479 | protected Stream<EClass> rawStreamAllValuesOfc2(final Object[] parameters) { | ||
480 | return rawStreamAllValues(POSITION_C2, parameters).map(EClass.class::cast); | ||
481 | } | ||
482 | |||
483 | /** | ||
484 | * Retrieve the set of values that occur in matches for c2. | ||
485 | * @return the Set of all values or empty set if there are no matches | ||
486 | * | ||
487 | */ | ||
488 | public Set<EClass> getAllValuesOfc2() { | ||
489 | return rawStreamAllValuesOfc2(emptyArray()).collect(Collectors.toSet()); | ||
490 | } | ||
491 | |||
492 | /** | ||
493 | * Retrieve the set of values that occur in matches for c2. | ||
494 | * @return the Set of all values or empty set if there are no matches | ||
495 | * | ||
496 | */ | ||
497 | public Stream<EClass> streamAllValuesOfc2() { | ||
498 | return rawStreamAllValuesOfc2(emptyArray()); | ||
499 | } | ||
500 | |||
501 | /** | ||
502 | * Retrieve the set of values that occur in matches for c2. | ||
503 | * </p> | ||
504 | * <strong>NOTE</strong>: It is important not to modify the source model while the stream is being processed. | ||
505 | * If the match set of the pattern changes during processing, the contents of the stream is <strong>undefined</strong>. | ||
506 | * In such cases, either rely on {@link #getAllMatches()} or collect the results of the stream in end-user code. | ||
507 | * | ||
508 | * @return the Stream of all values or empty set if there are no matches | ||
509 | * | ||
510 | */ | ||
511 | public Stream<EClass> streamAllValuesOfc2(final SuperTypes.Match partialMatch) { | ||
512 | return rawStreamAllValuesOfc2(partialMatch.toArray()); | ||
513 | } | ||
514 | |||
515 | /** | ||
516 | * Retrieve the set of values that occur in matches for c2. | ||
517 | * </p> | ||
518 | * <strong>NOTE</strong>: It is important not to modify the source model while the stream is being processed. | ||
519 | * If the match set of the pattern changes during processing, the contents of the stream is <strong>undefined</strong>. | ||
520 | * In such cases, either rely on {@link #getAllMatches()} or collect the results of the stream in end-user code. | ||
521 | * | ||
522 | * @return the Stream of all values or empty set if there are no matches | ||
523 | * | ||
524 | */ | ||
525 | public Stream<EClass> streamAllValuesOfc2(final EClass pC1) { | ||
526 | return rawStreamAllValuesOfc2(new Object[]{pC1, null}); | ||
527 | } | ||
528 | |||
529 | /** | ||
530 | * Retrieve the set of values that occur in matches for c2. | ||
531 | * @return the Set of all values or empty set if there are no matches | ||
532 | * | ||
533 | */ | ||
534 | public Set<EClass> getAllValuesOfc2(final SuperTypes.Match partialMatch) { | ||
535 | return rawStreamAllValuesOfc2(partialMatch.toArray()).collect(Collectors.toSet()); | ||
536 | } | ||
537 | |||
538 | /** | ||
539 | * Retrieve the set of values that occur in matches for c2. | ||
540 | * @return the Set of all values or empty set if there are no matches | ||
541 | * | ||
542 | */ | ||
543 | public Set<EClass> getAllValuesOfc2(final EClass pC1) { | ||
544 | return rawStreamAllValuesOfc2(new Object[]{pC1, null}).collect(Collectors.toSet()); | ||
545 | } | ||
546 | |||
547 | @Override | ||
548 | protected SuperTypes.Match tupleToMatch(final Tuple t) { | ||
549 | try { | ||
550 | return SuperTypes.Match.newMatch((EClass) t.get(POSITION_C1), (EClass) t.get(POSITION_C2)); | ||
551 | } catch(ClassCastException e) { | ||
552 | LOGGER.error("Element(s) in tuple not properly typed!",e); | ||
553 | return null; | ||
554 | } | ||
555 | } | ||
556 | |||
557 | @Override | ||
558 | protected SuperTypes.Match arrayToMatch(final Object[] match) { | ||
559 | try { | ||
560 | return SuperTypes.Match.newMatch((EClass) match[POSITION_C1], (EClass) match[POSITION_C2]); | ||
561 | } catch(ClassCastException e) { | ||
562 | LOGGER.error("Element(s) in array not properly typed!",e); | ||
563 | return null; | ||
564 | } | ||
565 | } | ||
566 | |||
567 | @Override | ||
568 | protected SuperTypes.Match arrayToMatchMutable(final Object[] match) { | ||
569 | try { | ||
570 | return SuperTypes.Match.newMutableMatch((EClass) match[POSITION_C1], (EClass) match[POSITION_C2]); | ||
571 | } catch(ClassCastException e) { | ||
572 | LOGGER.error("Element(s) in array not properly typed!",e); | ||
573 | return null; | ||
574 | } | ||
575 | } | ||
576 | |||
577 | /** | ||
578 | * @return the singleton instance of the query specification of this pattern | ||
579 | * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded | ||
580 | * | ||
581 | */ | ||
582 | public static IQuerySpecification<SuperTypes.Matcher> querySpecification() { | ||
583 | return SuperTypes.instance(); | ||
584 | } | ||
585 | } | ||
586 | |||
587 | private SuperTypes() { | ||
588 | super(GeneratedPQuery.INSTANCE); | ||
589 | } | ||
590 | |||
591 | /** | ||
592 | * @return the singleton instance of the query specification | ||
593 | * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded | ||
594 | * | ||
595 | */ | ||
596 | public static SuperTypes instance() { | ||
597 | try{ | ||
598 | return LazyHolder.INSTANCE; | ||
599 | } catch (ExceptionInInitializerError err) { | ||
600 | throw processInitializerError(err); | ||
601 | } | ||
602 | } | ||
603 | |||
604 | @Override | ||
605 | protected SuperTypes.Matcher instantiate(final ViatraQueryEngine engine) { | ||
606 | return SuperTypes.Matcher.on(engine); | ||
607 | } | ||
608 | |||
609 | @Override | ||
610 | public SuperTypes.Matcher instantiate() { | ||
611 | return SuperTypes.Matcher.create(); | ||
612 | } | ||
613 | |||
614 | @Override | ||
615 | public SuperTypes.Match newEmptyMatch() { | ||
616 | return SuperTypes.Match.newEmptyMatch(); | ||
617 | } | ||
618 | |||
619 | @Override | ||
620 | public SuperTypes.Match newMatch(final Object... parameters) { | ||
621 | return SuperTypes.Match.newMatch((org.eclipse.emf.ecore.EClass) parameters[0], (org.eclipse.emf.ecore.EClass) parameters[1]); | ||
622 | } | ||
623 | |||
624 | /** | ||
625 | * Inner class allowing the singleton instance of {@link SuperTypes} to be created | ||
626 | * <b>not</b> at the class load time of the outer class, | ||
627 | * but rather at the first call to {@link SuperTypes#instance()}. | ||
628 | * | ||
629 | * <p> This workaround is required e.g. to support recursion. | ||
630 | * | ||
631 | */ | ||
632 | private static class LazyHolder { | ||
633 | private static final SuperTypes INSTANCE = new SuperTypes(); | ||
634 | |||
635 | /** | ||
636 | * Statically initializes the query specification <b>after</b> the field {@link #INSTANCE} is assigned. | ||
637 | * This initialization order is required to support indirect recursion. | ||
638 | * | ||
639 | * <p> The static initializer is defined using a helper field to work around limitations of the code generator. | ||
640 | * | ||
641 | */ | ||
642 | private static final Object STATIC_INITIALIZER = ensureInitialized(); | ||
643 | |||
644 | public static Object ensureInitialized() { | ||
645 | INSTANCE.ensureInitializedInternal(); | ||
646 | return null; | ||
647 | } | ||
648 | } | ||
649 | |||
650 | private static class GeneratedPQuery extends BaseGeneratedEMFPQuery { | ||
651 | private static final SuperTypes.GeneratedPQuery INSTANCE = new GeneratedPQuery(); | ||
652 | |||
653 | private final PParameter parameter_c1 = new PParameter("c1", "org.eclipse.emf.ecore.EClass", new EClassTransitiveInstancesKey((EClass)getClassifierLiteralSafe("http://www.eclipse.org/emf/2002/Ecore", "EClass")), PParameterDirection.INOUT); | ||
654 | |||
655 | private final PParameter parameter_c2 = new PParameter("c2", "org.eclipse.emf.ecore.EClass", new EClassTransitiveInstancesKey((EClass)getClassifierLiteralSafe("http://www.eclipse.org/emf/2002/Ecore", "EClass")), PParameterDirection.INOUT); | ||
656 | |||
657 | private final List<PParameter> parameters = Arrays.asList(parameter_c1, parameter_c2); | ||
658 | |||
659 | private GeneratedPQuery() { | ||
660 | super(PVisibility.PUBLIC); | ||
661 | } | ||
662 | |||
663 | @Override | ||
664 | public String getFullyQualifiedName() { | ||
665 | return "queries.superTypes"; | ||
666 | } | ||
667 | |||
668 | @Override | ||
669 | public List<String> getParameterNames() { | ||
670 | return Arrays.asList("c1","c2"); | ||
671 | } | ||
672 | |||
673 | @Override | ||
674 | public List<PParameter> getParameters() { | ||
675 | return parameters; | ||
676 | } | ||
677 | |||
678 | @Override | ||
679 | public Set<PBody> doGetContainedBodies() { | ||
680 | setEvaluationHints(new QueryEvaluationHint(null, QueryEvaluationHint.BackendRequirement.UNSPECIFIED)); | ||
681 | Set<PBody> bodies = new LinkedHashSet<>(); | ||
682 | { | ||
683 | PBody body = new PBody(this); | ||
684 | PVariable var_c1 = body.getOrCreateVariableByName("c1"); | ||
685 | PVariable var_c2 = body.getOrCreateVariableByName("c2"); | ||
686 | new TypeConstraint(body, Tuples.flatTupleOf(var_c1), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.eclipse.org/emf/2002/Ecore", "EClass"))); | ||
687 | new TypeConstraint(body, Tuples.flatTupleOf(var_c2), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.eclipse.org/emf/2002/Ecore", "EClass"))); | ||
688 | body.setSymbolicParameters(Arrays.<ExportedParameter>asList( | ||
689 | new ExportedParameter(body, var_c1, parameter_c1), | ||
690 | new ExportedParameter(body, var_c2, parameter_c2) | ||
691 | )); | ||
692 | // EClass.eSuperTypes(c1,c2) | ||
693 | new TypeConstraint(body, Tuples.flatTupleOf(var_c1), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.eclipse.org/emf/2002/Ecore", "EClass"))); | ||
694 | PVariable var__virtual_0_ = body.getOrCreateVariableByName(".virtual{0}"); | ||
695 | new TypeConstraint(body, Tuples.flatTupleOf(var_c1, var__virtual_0_), new EStructuralFeatureInstancesKey(getFeatureLiteral("http://www.eclipse.org/emf/2002/Ecore", "EClass", "eSuperTypes"))); | ||
696 | new TypeConstraint(body, Tuples.flatTupleOf(var__virtual_0_), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.eclipse.org/emf/2002/Ecore", "EClass"))); | ||
697 | new Equality(body, var__virtual_0_, var_c2); | ||
698 | bodies.add(body); | ||
699 | } | ||
700 | return bodies; | ||
701 | } | ||
702 | } | ||
703 | } | ||
diff --git a/Metrics/Metrics-Calculation/SocialNetwork_plugin/src/ca/mcgill/ecse/socialnetwork/plugin/Queries.vql b/Metrics/Metrics-Calculation/SocialNetwork_plugin/src/ca/mcgill/ecse/socialnetwork/plugin/Queries.vql new file mode 100644 index 00000000..3e7fc68c --- /dev/null +++ b/Metrics/Metrics-Calculation/SocialNetwork_plugin/src/ca/mcgill/ecse/socialnetwork/plugin/Queries.vql | |||
@@ -0,0 +1,54 @@ | |||
1 | package ca.mcgill.ecse.socialnetwork.plugin | ||
2 | |||
3 | import epackage "http://ecse.mcgill.ca/socialnetwork" | ||
4 | |||
5 | //@Constraint(message="terminatorAndInformation", severity="error", key={T}) | ||
6 | //pattern terminatorAndInformation(T : FAMTerminator, I : InformationLink) = { | ||
7 | // FunctionalOutput.outgoingLinks(Out,I); | ||
8 | // FunctionalOutput.terminator(Out,T); | ||
9 | //} or { | ||
10 | // InformationLink.to(I,In); | ||
11 | // FunctionalInput.terminator(In,T); | ||
12 | //} | ||
13 | |||
14 | @Constraint(message="singleFriendship", severity="error", key={p1}) | ||
15 | pattern singleFriendship(p1: Person) { | ||
16 | find friendship(p1, p); | ||
17 | neg find friendship(p, p1); | ||
18 | } | ||
19 | |||
20 | //@Constraint(message="cycle", severity="error", key={p}) | ||
21 | //pattern cycleInParenthood(p: Person) { | ||
22 | // find isAncestor(p, p); | ||
23 | //} | ||
24 | |||
25 | @Constraint(message="noFriend", severity="error", key={p}) | ||
26 | pattern noFriend(p: Person){ | ||
27 | neg find friendship(p, _); | ||
28 | } | ||
29 | |||
30 | //@Constraint(message="brothhoodParent", severity="error", key={p1,p2}) | ||
31 | //pattern brothhoodParent(p1: Person, p2: Person){ | ||
32 | // Person.parents(p1, parent1); | ||
33 | // Person.parents(p2, parent2); | ||
34 | // parent1 == parent2; | ||
35 | // find isAncestor(p1, p2); | ||
36 | //} | ||
37 | @Constraint(message="selfFriend", severity="error", key={p}) | ||
38 | pattern selfFriend(p: Person){ | ||
39 | Person.friends(p,p); | ||
40 | } | ||
41 | |||
42 | pattern friendship(p1: Person, p2: Person){ | ||
43 | Person.friends(p1,p2); | ||
44 | } | ||
45 | |||
46 | //pattern isAncestor(person : Person, ancestor : Person){ | ||
47 | // Person.parents(person, ancestor); | ||
48 | //} or { | ||
49 | // Person.parents(person, parent); | ||
50 | // find isAncestor(parent, ancestor); | ||
51 | //} | ||
52 | |||
53 | |||
54 | |||
diff --git a/Metrics/Metrics-Calculation/SocialNetwork_plugin/src/ca/mcgill/ecse/socialnetwork/runner/Main.java b/Metrics/Metrics-Calculation/SocialNetwork_plugin/src/ca/mcgill/ecse/socialnetwork/runner/Main.java new file mode 100644 index 00000000..e4e5b61f --- /dev/null +++ b/Metrics/Metrics-Calculation/SocialNetwork_plugin/src/ca/mcgill/ecse/socialnetwork/runner/Main.java | |||
@@ -0,0 +1,203 @@ | |||
1 | package ca.mcgill.ecse.socialnetwork.runner; | ||
2 | |||
3 | import java.io.File; | ||
4 | import java.io.FileNotFoundException; | ||
5 | import java.io.PrintStream; | ||
6 | import java.util.ArrayList; | ||
7 | import java.util.Map; | ||
8 | import java.util.Scanner; | ||
9 | |||
10 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.app.Domain; | ||
11 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.distance.KSDistance; | ||
12 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.graph.EMFGraph; | ||
13 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.io.CsvFileWriter; | ||
14 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.io.GraphReader; | ||
15 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.io.RepMetricsReader; | ||
16 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.MetricSampleGroup; | ||
17 | import hu.bme.mit.inf.dslreasoner.application.execution.StandaloneScriptExecutor; | ||
18 | import hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph.yakindumm.YakindummPackage; | ||
19 | import socialnetwork.Person; | ||
20 | |||
21 | public class Main { | ||
22 | |||
23 | private static String runWithPath(String path) { | ||
24 | String message = StandaloneScriptExecutor.executeScript(path); | ||
25 | return message; | ||
26 | } | ||
27 | |||
28 | private static String configFolder = "yakinduum/config22/"; | ||
29 | private static String configFileName = configFolder + "info_old_metric.csv"; | ||
30 | private static String aggregateViolationMeasureFileName = configFolder + "aggregateInfo.csv"; | ||
31 | private static String fileReadFolder = "output/Ecore_100/"; | ||
32 | |||
33 | public static void main(String args[]) { | ||
34 | String ecoreFile = args[0]; | ||
35 | System.out.println("Generation Started"); | ||
36 | |||
37 | System.out.println(System.getProperty("java.library.path")); | ||
38 | |||
39 | long begin = System.currentTimeMillis(); | ||
40 | String message = runWithPath(ecoreFile); | ||
41 | long elapsed = System.currentTimeMillis() - begin; | ||
42 | |||
43 | if(message != null) { | ||
44 | System.out.println(message); | ||
45 | return; | ||
46 | } | ||
47 | // ArrayList<ArrayList<String>> output = new ArrayList<ArrayList<String>>(); | ||
48 | // String time = formatTime(elapsed); | ||
49 | // ArrayList<String> infoOutput = new ArrayList<String>(); | ||
50 | // infoOutput.add(time); | ||
51 | // output.add(infoOutput); | ||
52 | // System.out.println(time); | ||
53 | // CsvFileWriter.write(output, configFileName); | ||
54 | // | ||
55 | // | ||
56 | // output = new ArrayList<ArrayList<String>>(); | ||
57 | // output.add(prepareInfo()); | ||
58 | // CsvFileWriter.append(output, configFileName); | ||
59 | // | ||
60 | // for(int i = 0; i < 50; i++) { | ||
61 | // generateModel(i+1); | ||
62 | // } | ||
63 | // aggregateViolationMeasure(50); | ||
64 | System.out.println("Finished"); | ||
65 | } | ||
66 | |||
67 | // public static void generateModel(int run) { | ||
68 | // String filename = run+"_1.xmi"; | ||
69 | // //prepare initial info | ||
70 | // ArrayList<ArrayList<String>> output = new ArrayList<ArrayList<String>>(); | ||
71 | // ArrayList<String> infoOutput = new ArrayList<String>(); | ||
72 | // infoOutput.add(run+ ""); | ||
73 | // infoOutput.addAll(calculateMetric(run)); | ||
74 | // | ||
75 | // YakinduumModel model = new YakinduumModel(fileReadFolder +"run" +run + "/" + filename); | ||
76 | // int violationCount = ViolationCheck.calculateViolationCounts(model.yakinduum); | ||
77 | // infoOutput.add(violationCount + ""); | ||
78 | // | ||
79 | // | ||
80 | // | ||
81 | // //save model to another directory | ||
82 | // model.save(configFolder + run + ".xmi"); | ||
83 | // output.add(infoOutput); | ||
84 | // CsvFileWriter.append(output, configFileName); | ||
85 | // } | ||
86 | // | ||
87 | // public static void singleModelViolationMeasure(int run) { | ||
88 | // String filename = run+"_1.xmi"; | ||
89 | // //prepare initial info | ||
90 | // ArrayList<ArrayList<String>> output = new ArrayList<ArrayList<String>>(); | ||
91 | // ArrayList<String> infoOutput = new ArrayList<String>(); | ||
92 | // infoOutput.add(run+ ""); | ||
93 | // | ||
94 | // YakinduumModel model = new YakinduumModel(fileReadFolder+"/run"+run+"/"+ filename); | ||
95 | // | ||
96 | // //parse map of violation counts to two list and add them to the result list | ||
97 | // Map<String, Integer> map = ViolationCheck.violationMaps(model.yakinduum); | ||
98 | // ArrayList<String> counts = new ArrayList<String>(); | ||
99 | // ArrayList<String> violationNames = new ArrayList<String>(map.keySet()); | ||
100 | // for(int i = 0; i < violationNames.size(); i++) { | ||
101 | // String name = violationNames.get(i); | ||
102 | // int total = map.get(name); | ||
103 | // counts.add(total + ""); | ||
104 | // } | ||
105 | // output.add(infoOutput); | ||
106 | // output.add(violationNames); | ||
107 | // output.add(counts); | ||
108 | // | ||
109 | // CsvFileWriter.append(output, configFileName); | ||
110 | // } | ||
111 | // | ||
112 | // public static void aggregateViolationMeasure(int size) { | ||
113 | // ArrayList<ArrayList<String>> output = new ArrayList<ArrayList<String>>(); | ||
114 | // ArrayList<String> counts = new ArrayList<String>(); | ||
115 | // ArrayList<String> violationNames = null; | ||
116 | // for(int run = 1; run < size+1; run++) { | ||
117 | // String filename = run+"_1.xmi"; | ||
118 | // YakinduumModel model = new YakinduumModel(fileReadFolder+"/run"+run+"/"+ filename); | ||
119 | // | ||
120 | // Map<String, Integer> map = ViolationCheck.violationMaps(model.yakinduum); | ||
121 | // if(run == 1) { | ||
122 | // violationNames = new ArrayList<String>(map.keySet()); | ||
123 | // for(int i = 0; i < violationNames.size(); i++) { | ||
124 | // String name = violationNames.get(i); | ||
125 | // int total = map.get(name); | ||
126 | // counts.add(total + ""); | ||
127 | // } | ||
128 | // }else { | ||
129 | // for(int i = 0; i < violationNames.size(); i++) { | ||
130 | // int count = Integer.parseInt(counts.get(i)); | ||
131 | // String name = violationNames.get(i); | ||
132 | // int total = count + map.get(name); | ||
133 | // counts.set(i, total + ""); | ||
134 | // } | ||
135 | // } | ||
136 | // } | ||
137 | // | ||
138 | // for(int i = 0; i < counts.size(); i++) { | ||
139 | // double count = Integer.parseInt(counts.get(i)) / (double) size; | ||
140 | // counts.set(i, count + ""); | ||
141 | // } | ||
142 | // | ||
143 | // output.add(violationNames); | ||
144 | // output.add(counts); | ||
145 | // CsvFileWriter.write(output, aggregateViolationMeasureFileName); | ||
146 | // } | ||
147 | // | ||
148 | public static ArrayList<String> calculateMetric(int run) { | ||
149 | //read model and metric | ||
150 | ArrayList<String> output = new ArrayList<String>(); | ||
151 | GraphReader reader = new GraphReader(YakindummPackage.eINSTANCE, ".xmi"); | ||
152 | EMFGraph graph = reader.readModel(fileReadFolder+"/run"+run, run + "_1.xmi"); | ||
153 | MetricSampleGroup metrics = RepMetricsReader.read(Domain.Yakindumm); | ||
154 | //KS distance | ||
155 | KSDistance ks = new KSDistance(metrics); | ||
156 | |||
157 | //calculate and put metric data to output array | ||
158 | MetricSampleGroup samples = graph.evaluateAllMetricsToSamples(); | ||
159 | output.add(graph.getStatistic().getAllNodes().size() + ""); | ||
160 | output.add(ks.outDegreeDistance(samples.outDegreeSamples) + ""); | ||
161 | output.add(ks.naDistance(samples.naSamples)+ ""); | ||
162 | output.add(ks.mpcDistance(samples.mpcSamples) + ""); | ||
163 | output.add(ks.typedOutDegreeDistance(samples.typedOutDegreeSamples) + ""); | ||
164 | return output; | ||
165 | } | ||
166 | |||
167 | public static ArrayList<String> prepareInfo() { | ||
168 | ArrayList<String> info = new ArrayList<String>(); | ||
169 | info.add("ID"); | ||
170 | info.add("# of Nodes"); | ||
171 | info.add("Out Degree"); | ||
172 | info.add("Node Activity"); | ||
173 | info.add("MPC"); | ||
174 | info.add("Typed Out Degree"); | ||
175 | info.add("Violations"); | ||
176 | return info; | ||
177 | } | ||
178 | |||
179 | public static String formatTime(long time) { | ||
180 | long mili = time % 1000; | ||
181 | long second = (time / 1000) % 60; | ||
182 | long minute = (time / (1000 * 60)); | ||
183 | return String.format("%d : %d.%d", minute, second, mili); | ||
184 | } | ||
185 | |||
186 | public static void statistics() { | ||
187 | String uri = "output/1.xmi"; | ||
188 | SocialNetworkModel socialNetwork = new SocialNetworkModel(uri); | ||
189 | System.out.println(socialNetwork.getPersons().size()); | ||
190 | |||
191 | File file = new File("model/statistics/output.txt"); | ||
192 | try { | ||
193 | @SuppressWarnings("resource") | ||
194 | PrintStream out = new PrintStream(file); | ||
195 | for(Person p : socialNetwork.getPersons()) { | ||
196 | out.println(p.getFriends().size()); | ||
197 | } | ||
198 | } catch (FileNotFoundException e) { | ||
199 | e.printStackTrace(); | ||
200 | } | ||
201 | System.out.println("Output Finished"); | ||
202 | } | ||
203 | } | ||
diff --git a/Metrics/Metrics-Calculation/SocialNetwork_plugin/src/ca/mcgill/ecse/socialnetwork/runner/Persisitence.java b/Metrics/Metrics-Calculation/SocialNetwork_plugin/src/ca/mcgill/ecse/socialnetwork/runner/Persisitence.java new file mode 100644 index 00000000..3ebede25 --- /dev/null +++ b/Metrics/Metrics-Calculation/SocialNetwork_plugin/src/ca/mcgill/ecse/socialnetwork/runner/Persisitence.java | |||
@@ -0,0 +1,63 @@ | |||
1 | package ca.mcgill.ecse.socialnetwork.runner; | ||
2 | import java.io.IOException; | ||
3 | import java.util.Collections; | ||
4 | import java.util.Map; | ||
5 | |||
6 | import org.eclipse.emf.common.util.URI; | ||
7 | import org.eclipse.emf.ecore.EObject; | ||
8 | import org.eclipse.emf.ecore.resource.Resource; | ||
9 | import org.eclipse.emf.ecore.resource.ResourceSet; | ||
10 | import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl; | ||
11 | import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl; | ||
12 | |||
13 | public class Persisitence<G extends EObject> { | ||
14 | private String uri; | ||
15 | |||
16 | public Persisitence (String suffix, String uri){ | ||
17 | //prepare to save | ||
18 | Resource.Factory.Registry reg = Resource.Factory.Registry.INSTANCE; | ||
19 | Map<String, Object> m = reg.getExtensionToFactoryMap(); | ||
20 | m.put(suffix, new XMIResourceFactoryImpl()); | ||
21 | this.uri = uri; | ||
22 | } | ||
23 | |||
24 | |||
25 | /** | ||
26 | * Save the model | ||
27 | * @return whether the model has saved successfully | ||
28 | */ | ||
29 | public boolean save(G model) { | ||
30 | //create resource | ||
31 | ResourceSet resSet = new ResourceSetImpl(); | ||
32 | Resource resource = resSet.createResource(URI.createURI(uri)); | ||
33 | resource.getContents().add(model); | ||
34 | try { | ||
35 | resource.save(Collections.EMPTY_MAP); | ||
36 | return true; | ||
37 | }catch(IOException e) { | ||
38 | e.printStackTrace(); | ||
39 | return false; | ||
40 | } | ||
41 | } | ||
42 | |||
43 | /** | ||
44 | * load the model from persistent | ||
45 | * @return: the model loaded | ||
46 | */ | ||
47 | @SuppressWarnings("unchecked") | ||
48 | public G load() { | ||
49 | G model = null; | ||
50 | // try { | ||
51 | ResourceSet resSet = new ResourceSetImpl(); | ||
52 | Resource resource = resSet.getResource(URI.createURI(uri), true); | ||
53 | model = (G) resource.getContents().get(0); | ||
54 | // }catch (org.eclipse.emf.common.util.WrappedException e) { | ||
55 | // // if the file cannot be found then return null | ||
56 | // if(e.getCause().getClass() == java.io.FileNotFoundException.class) { | ||
57 | // return null; | ||
58 | // } | ||
59 | // } | ||
60 | |||
61 | return model; | ||
62 | } | ||
63 | } | ||
diff --git a/Metrics/Metrics-Calculation/SocialNetwork_plugin/src/ca/mcgill/ecse/socialnetwork/runner/RunnerTests.java b/Metrics/Metrics-Calculation/SocialNetwork_plugin/src/ca/mcgill/ecse/socialnetwork/runner/RunnerTests.java new file mode 100644 index 00000000..c09c55be --- /dev/null +++ b/Metrics/Metrics-Calculation/SocialNetwork_plugin/src/ca/mcgill/ecse/socialnetwork/runner/RunnerTests.java | |||
@@ -0,0 +1,18 @@ | |||
1 | package ca.mcgill.ecse.socialnetwork.runner; | ||
2 | |||
3 | import org.junit.Test; | ||
4 | |||
5 | import hu.bme.mit.inf.dslreasoner.application.execution.StandaloneScriptExecutor; | ||
6 | |||
7 | public class RunnerTests { | ||
8 | private static String runWithPath(String path) { | ||
9 | String message = StandaloneScriptExecutor.executeScript(path); | ||
10 | return message; | ||
11 | } | ||
12 | |||
13 | @Test | ||
14 | public void generateModel() { | ||
15 | String message = runWithPath("SocialNetworkGeneration.vsconfig"); | ||
16 | System.out.println(message); | ||
17 | } | ||
18 | } | ||
diff --git a/Metrics/Metrics-Calculation/SocialNetwork_plugin/src/ca/mcgill/ecse/socialnetwork/runner/SocialNetworkModel.java b/Metrics/Metrics-Calculation/SocialNetwork_plugin/src/ca/mcgill/ecse/socialnetwork/runner/SocialNetworkModel.java new file mode 100644 index 00000000..51c50b11 --- /dev/null +++ b/Metrics/Metrics-Calculation/SocialNetwork_plugin/src/ca/mcgill/ecse/socialnetwork/runner/SocialNetworkModel.java | |||
@@ -0,0 +1,62 @@ | |||
1 | package ca.mcgill.ecse.socialnetwork.runner; | ||
2 | |||
3 | import org.eclipse.emf.common.util.EList; | ||
4 | |||
5 | import socialnetwork.Person; | ||
6 | import socialnetwork.SocialNetwork; | ||
7 | import socialnetwork.SocialnetworkFactory; | ||
8 | import socialnetwork.SocialnetworkPackage; | ||
9 | import socialnetwork.impl.SocialnetworkFactoryImpl; | ||
10 | |||
11 | |||
12 | |||
13 | public class SocialNetworkModel { | ||
14 | private final static String SUFFIX = "xmi"; | ||
15 | |||
16 | private static boolean isInit = false; | ||
17 | |||
18 | public static void init() { | ||
19 | SocialnetworkFactory.eINSTANCE.eClass(); | ||
20 | SocialnetworkPackage.eINSTANCE.eClass(); | ||
21 | SocialnetworkFactoryImpl.init(); | ||
22 | } | ||
23 | |||
24 | // container for the social network model | ||
25 | public SocialNetwork socialNetwork; | ||
26 | |||
27 | // factory for social network model | ||
28 | SocialnetworkFactory factory; | ||
29 | |||
30 | // persistent | ||
31 | Persisitence<SocialNetwork> persistence; | ||
32 | |||
33 | |||
34 | public SocialNetworkModel(String uri){ | ||
35 | if(!isInit) { | ||
36 | init(); | ||
37 | } | ||
38 | |||
39 | //create persistence | ||
40 | persistence = new Persisitence<SocialNetwork>(SUFFIX, uri); | ||
41 | factory = SocialnetworkFactory.eINSTANCE; | ||
42 | // try load the model | ||
43 | this.socialNetwork = persistence.load(); | ||
44 | if(this.socialNetwork == null) { | ||
45 | this.socialNetwork = factory.createSocialNetwork(); | ||
46 | } | ||
47 | } | ||
48 | |||
49 | public Person createPerson() { | ||
50 | Person p = factory.createPerson(); | ||
51 | socialNetwork.getPersons().add(p); | ||
52 | return p; | ||
53 | } | ||
54 | |||
55 | public EList<Person> getPersons(){ | ||
56 | return socialNetwork.getPersons(); | ||
57 | } | ||
58 | |||
59 | public boolean save() { | ||
60 | return persistence.save(socialNetwork); | ||
61 | } | ||
62 | } | ||
diff --git a/Metrics/Metrics-Calculation/SocialNetwork_plugin/src/ca/mcgill/ecse/socialnetwork/runner/YakinduumModel.java b/Metrics/Metrics-Calculation/SocialNetwork_plugin/src/ca/mcgill/ecse/socialnetwork/runner/YakinduumModel.java new file mode 100644 index 00000000..803daff4 --- /dev/null +++ b/Metrics/Metrics-Calculation/SocialNetwork_plugin/src/ca/mcgill/ecse/socialnetwork/runner/YakinduumModel.java | |||
@@ -0,0 +1,52 @@ | |||
1 | package ca.mcgill.ecse.socialnetwork.runner; | ||
2 | |||
3 | import javax.annotation.Resource; | ||
4 | |||
5 | import hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph.yakindumm.Statechart; | ||
6 | import hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph.yakindumm.YakindummFactory; | ||
7 | import hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph.yakindumm.YakindummPackage; | ||
8 | import hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph.yakindumm.impl.YakindummFactoryImpl; | ||
9 | import socialnetwork.SocialNetwork; | ||
10 | import socialnetwork.SocialnetworkFactory; | ||
11 | |||
12 | public class YakinduumModel { | ||
13 | private final static String SUFFIX = "xmi"; | ||
14 | |||
15 | private static boolean isInit = false; | ||
16 | |||
17 | private String uri; | ||
18 | |||
19 | public static void init() { | ||
20 | YakindummFactory.eINSTANCE.eClass(); | ||
21 | YakindummPackage.eINSTANCE.eClass(); | ||
22 | YakindummFactoryImpl.init(); | ||
23 | } | ||
24 | |||
25 | // container for the social network model | ||
26 | public Statechart yakinduum; | ||
27 | |||
28 | |||
29 | // persistent | ||
30 | Persisitence<Statechart> persistence; | ||
31 | |||
32 | |||
33 | public YakinduumModel(String uri){ | ||
34 | if(!isInit) { | ||
35 | init(); | ||
36 | } | ||
37 | this.uri = uri; | ||
38 | //create persistence | ||
39 | persistence = new Persisitence<Statechart>(SUFFIX, uri); | ||
40 | // try load the model | ||
41 | this.yakinduum = persistence.load(); | ||
42 | } | ||
43 | |||
44 | public boolean save(String uri) { | ||
45 | if(this.uri.equals(uri)) { | ||
46 | return persistence.save(yakinduum); | ||
47 | }else { | ||
48 | persistence = new Persisitence<Statechart>(SUFFIX, uri); | ||
49 | return persistence.save(yakinduum); | ||
50 | } | ||
51 | } | ||
52 | } | ||
diff --git a/Metrics/Metrics-Calculation/SocialNetwork_plugin/statistics/Ecore/100.csv b/Metrics/Metrics-Calculation/SocialNetwork_plugin/statistics/Ecore/100.csv new file mode 100644 index 00000000..fd1af09c --- /dev/null +++ b/Metrics/Metrics-Calculation/SocialNetwork_plugin/statistics/Ecore/100.csv | |||
@@ -0,0 +1,22 @@ | |||
1 | Task,Run,Result,Domain to logic transformation time,Logic to solver transformation time,Solver time,Postprocessing time,TransformationExecutionTime,TypeAnalysisTime,MetricCalculationTime,StateCoderTime,StateCoderFailCount,SolutionCopyTime,_Solution0FoundAt | ||
2 | 5,1,InsuficientResourcesResultImpl,26,1815,305292,1000,16140,15,12210,260570,0,0, | ||
3 | 5,2,InsuficientResourcesResultImpl,26,1237,301846,700,14659,0,12249,259139,0,0, | ||
4 | 5,3,InsuficientResourcesResultImpl,26,1218,301687,600,15765,0,12876,256432,0,0, | ||
5 | 5,4,InsuficientResourcesResultImpl,26,1294,302248,800,18015,0,11131,255608,0,0, | ||
6 | 5,5,InsuficientResourcesResultImpl,26,1290,300894,900,14893,0,11118,259377,0,0, | ||
7 | 5,6,InsuficientResourcesResultImpl,26,1184,302351,900,16463,0,11499,258946,0,0, | ||
8 | 5,7,ModelResultImpl,26,1180,289935,35396400,17823,0,14375,240465,0,4,287519 | ||
9 | 5,8,InsuficientResourcesResultImpl,26,1298,304757,700,12762,0,10686,266461,0,0, | ||
10 | 5,9,ModelResultImpl,26,1166,287620,35860800,17055,0,15050,237850,0,1,285304 | ||
11 | 5,10,ModelResultImpl,26,1185,168322,32789700,15059,0,9955,132727,0,0,166044 | ||
12 | 5,11,InsuficientResourcesResultImpl,26,1176,302293,900,12773,0,10338,264930,0,0, | ||
13 | 5,12,InsuficientResourcesResultImpl,26,1200,300206,600,14139,0,11334,260462,0,0, | ||
14 | 5,13,InsuficientResourcesResultImpl,26,1199,305554,500,12939,0,11144,266919,0,0, | ||
15 | 5,14,InsuficientResourcesResultImpl,26,1193,300864,700,18895,0,14266,250111,0,0, | ||
16 | 5,15,InsuficientResourcesResultImpl,26,1197,303894,700,14501,0,12313,262474,0,0, | ||
17 | 5,16,InsuficientResourcesResultImpl,26,1171,303003,700,13178,0,11827,263585,0,0, | ||
18 | 5,17,InsuficientResourcesResultImpl,26,1169,305501,600,13479,0,11788,265540,0,0, | ||
19 | 5,18,InsuficientResourcesResultImpl,26,1175,301967,700,13531,0,11415,262420,0,0, | ||
20 | 5,19,InsuficientResourcesResultImpl,26,1274,300241,800,13254,0,11607,260895,0,0, | ||
21 | 5,20,ModelResultImpl,26,1166,269530,42362900,17007,0,13440,223316,0,1,267245 | ||
22 | |||
diff --git a/Metrics/Metrics-Calculation/SocialNetwork_plugin/statistics/Ecore/30.csv b/Metrics/Metrics-Calculation/SocialNetwork_plugin/statistics/Ecore/30.csv new file mode 100644 index 00000000..0022e984 --- /dev/null +++ b/Metrics/Metrics-Calculation/SocialNetwork_plugin/statistics/Ecore/30.csv | |||
@@ -0,0 +1,22 @@ | |||
1 | Task,Run,Result,Domain to logic transformation time,Logic to solver transformation time,Solver time,Postprocessing time,_Solution0FoundAt,TransformationExecutionTime,TypeAnalysisTime,MetricCalculationTime,StateCoderTime,StateCoderFailCount,SolutionCopyTime | ||
2 | 2,1,ModelResultImpl,19,1721,35221,15771300,32311,7042,34,1895,16580,0,1 | ||
3 | 2,2,ModelResultImpl,19,1610,35749,11651300,32635,6745,1,1736,18895,0,1 | ||
4 | 2,3,ModelResultImpl,19,1640,27258,16117300,24303,6429,0,1323,12286,0,1 | ||
5 | 2,4,ModelResultImpl,19,1634,35933,20450700,33223,6381,0,1605,20611,0,2 | ||
6 | 2,5,ModelResultImpl,19,1612,23612,11651100,19721,6887,0,1099,8730,0,0 | ||
7 | 2,6,ModelResultImpl,19,1319,22727,9964000,20364,4974,0,1147,11737,0,0 | ||
8 | 2,7,ModelResultImpl,19,1278,22340,12342400,19967,4711,0,1078,11660,0,0 | ||
9 | 2,8,ModelResultImpl,19,1292,20551,10731500,18317,4260,0,1007,11070,0,0 | ||
10 | 2,9,ModelResultImpl,19,1378,18306,12922900,15874,4176,0,928,8796,0,1 | ||
11 | 2,10,ModelResultImpl,19,1330,25726,10084700,23254,6531,0,1345,10615,0,0 | ||
12 | 2,11,ModelResultImpl,19,1229,33084,12002300,30734,5309,0,1584,19392,0,0 | ||
13 | 2,12,ModelResultImpl,19,1240,24555,9818800,22179,5967,1,1405,10083,0,0 | ||
14 | 2,13,ModelResultImpl,19,1264,28275,11451700,25939,5692,0,1395,14547,0,0 | ||
15 | 2,14,ModelResultImpl,19,1276,36197,10007300,33900,5461,0,1659,22219,0,0 | ||
16 | 2,15,ModelResultImpl,19,1230,30436,9231400,28100,5354,0,1488,16718,0,0 | ||
17 | 2,16,ModelResultImpl,19,1217,22614,8885000,20287,6795,0,1371,7299,0,0 | ||
18 | 2,17,ModelResultImpl,19,1262,29600,12922400,27253,5298,0,1528,15895,0,0 | ||
19 | 2,18,ModelResultImpl,19,1243,28214,10765500,25879,5412,0,1292,15319,0,0 | ||
20 | 2,19,ModelResultImpl,19,1299,20845,11064400,18336,5327,0,1048,8903,0,0 | ||
21 | 2,20,ModelResultImpl,19,1280,26352,10670800,23901,6709,0,1454,11410,0,1 | ||
22 | |||
diff --git a/Metrics/Metrics-Calculation/SocialNetwork_plugin/statistics/Ecore/50.csv b/Metrics/Metrics-Calculation/SocialNetwork_plugin/statistics/Ecore/50.csv new file mode 100644 index 00000000..1ea0ccaf --- /dev/null +++ b/Metrics/Metrics-Calculation/SocialNetwork_plugin/statistics/Ecore/50.csv | |||
@@ -0,0 +1,22 @@ | |||
1 | Task,Run,Result,Domain to logic transformation time,Logic to solver transformation time,Solver time,Postprocessing time,_Solution0FoundAt,TransformationExecutionTime,TypeAnalysisTime,MetricCalculationTime,StateCoderTime,StateCoderFailCount,SolutionCopyTime | ||
2 | 3,1,ModelResultImpl,7,1300,78258,16468500,75732,13071,7,4896,46003,0,2 | ||
3 | 3,2,ModelResultImpl,7,1255,72729,15062600,70201,10011,0,4148,48760,0,0 | ||
4 | 3,3,ModelResultImpl,7,1284,85751,18952400,83381,10015,0,4783,59452,0,0 | ||
5 | 3,4,ModelResultImpl,7,1312,80702,18255000,78055,9873,0,3766,56886,0,1 | ||
6 | 3,5,ModelResultImpl,7,2192,111362,20902300,108184,12705,0,5062,79232,0,0 | ||
7 | 3,6,ModelResultImpl,7,1275,88255,20727400,85645,9667,0,3925,64755,0,0 | ||
8 | 3,7,ModelResultImpl,7,1228,95312,23184200,92818,9763,0,4466,69648,0,1 | ||
9 | 3,8,ModelResultImpl,7,1421,102160,16746000,99564,13923,0,5149,68705,0,1 | ||
10 | 3,9,ModelResultImpl,7,1542,74130,15142300,71709,10116,0,4021,50574,0,0 | ||
11 | 3,10,ModelResultImpl,7,1370,106586,18544500,103524,11809,0,4614,78092,0,1 | ||
12 | 3,11,ModelResultImpl,7,1977,81554,14689300,78988,9059,0,4109,58293,0,1 | ||
13 | 3,12,ModelResultImpl,7,1282,80592,17114200,77924,10654,0,4120,55221,0,0 | ||
14 | 3,13,ModelResultImpl,7,1470,50749,14006900,47249,7112,0,2464,34560,0,0 | ||
15 | 3,14,ModelResultImpl,7,1189,96780,16081900,94561,8346,0,4262,74850,0,0 | ||
16 | 3,15,ModelResultImpl,7,1187,104866,17029000,102503,8484,0,4673,81148,0,0 | ||
17 | 3,16,ModelResultImpl,7,1192,83407,19208900,81122,8548,0,4154,61175,0,1 | ||
18 | 3,17,ModelResultImpl,7,1291,84064,18326300,81220,10675,0,4308,57616,0,0 | ||
19 | 3,18,ModelResultImpl,7,1924,92524,20324400,89145,9764,0,4238,66918,0,1 | ||
20 | 3,19,ModelResultImpl,7,1284,85575,14840500,82932,10403,0,4104,60536,0,0 | ||
21 | 3,20,ModelResultImpl,7,1239,78254,21057200,75918,9173,0,3958,55242,0,0 | ||
22 | |||
diff --git a/Metrics/Metrics-Calculation/SocialNetwork_plugin/statistics/Ecore/80.csv b/Metrics/Metrics-Calculation/SocialNetwork_plugin/statistics/Ecore/80.csv new file mode 100644 index 00000000..034a2048 --- /dev/null +++ b/Metrics/Metrics-Calculation/SocialNetwork_plugin/statistics/Ecore/80.csv | |||
@@ -0,0 +1,22 @@ | |||
1 | Task,Run,Result,Domain to logic transformation time,Logic to solver transformation time,Solver time,Postprocessing time,_Solution0FoundAt,TransformationExecutionTime,TypeAnalysisTime,MetricCalculationTime,StateCoderTime,StateCoderFailCount,SolutionCopyTime | ||
2 | 4,1,ModelResultImpl,10,1339,187225,43638100,184585,14565,8,8893,149868,0,0 | ||
3 | 4,2,ModelResultImpl,10,1336,258364,34407600,255655,14281,1,9835,217586,0,0 | ||
4 | 4,3,InsuficientResourcesResultImpl,10,1321,302464,3900,,14999,0,10218,258608,0,0 | ||
5 | 4,4,ModelResultImpl,10,1569,272300,28546600,269342,14187,0,9965,231046,0,0 | ||
6 | 4,5,ModelResultImpl,10,1315,244950,39639300,242286,14765,0,10575,202813,0,0 | ||
7 | 4,6,ModelResultImpl,10,1223,185629,34348900,183286,14074,0,9227,147910,0,0 | ||
8 | 4,7,ModelResultImpl,10,1271,243243,28619100,240866,16030,0,10594,199605,0,1 | ||
9 | 4,8,ModelResultImpl,10,1229,247712,31642900,244834,14393,0,9543,207278,0,0 | ||
10 | 4,9,ModelResultImpl,10,1284,209619,24479700,207199,18848,0,10225,164689,0,0 | ||
11 | 4,10,ModelResultImpl,10,1240,252740,36766100,250104,15959,0,10730,208822,0,1 | ||
12 | 4,11,ModelResultImpl,10,1315,192678,27966300,190097,15350,0,9230,152579,0,1 | ||
13 | 4,12,ModelResultImpl,10,1767,199644,24666200,195878,16171,0,9709,158015,0,1 | ||
14 | 4,13,ModelResultImpl,10,1411,209397,29226100,206486,17127,0,10334,164735,0,0 | ||
15 | 4,14,InsuficientResourcesResultImpl,10,1292,300133,800,,13558,0,10569,258303,0,0 | ||
16 | 4,15,ModelResultImpl,10,1188,277607,29611300,275175,13898,0,11204,234760,0,0 | ||
17 | 4,16,ModelResultImpl,10,1383,257815,41453700,255328,13012,0,10666,216491,0,1 | ||
18 | 4,17,ModelResultImpl,10,1335,217424,30586300,214754,15737,0,9889,176416,0,0 | ||
19 | 4,18,ModelResultImpl,10,1317,214706,28448000,211898,15332,0,9390,175241,0,1 | ||
20 | 4,19,ModelResultImpl,10,1429,235982,26350500,233087,15836,0,10258,192499,0,1 | ||
21 | 4,20,InsuficientResourcesResultImpl,10,1150,302957,1100,,16272,0,12639,253942,0,0 | ||
22 | |||
diff --git a/Metrics/Metrics-Calculation/SocialNetwork_plugin/statistics/Ecore/warmup.csv b/Metrics/Metrics-Calculation/SocialNetwork_plugin/statistics/Ecore/warmup.csv new file mode 100644 index 00000000..13617342 --- /dev/null +++ b/Metrics/Metrics-Calculation/SocialNetwork_plugin/statistics/Ecore/warmup.csv | |||
@@ -0,0 +1,3 @@ | |||
1 | Task,Run,Result,Domain to logic transformation time,Logic to solver transformation time,Solver time,Postprocessing time,Solution0FoundAt,ExplorationInitializationTime,TransformationExecutionTime,ScopePropagationTime,MustRelationPropagationTime,TypeAnalysisTime,StateCoderTime,StateCoderFailCount,SolutionCopyTime,States,ForwardTime,BacktrackingTime,GlobalConstraintEvaluationTime,FitnessCalculationTime,ActivationSelectionTime,Decisions,Transformations,ScopePropagations,ScopePropagationsSolverCalls | ||
2 | 1,1,ModelResultImpl,910,7801,7469,66,7546,765,258,95,0,228,1118,0,2,1495,2706,1379,10,0,1,0,1769,654,0 | ||
3 | |||
diff --git a/Metrics/Metrics-Calculation/SocialNetwork_plugin/statistics/Github/30.csv b/Metrics/Metrics-Calculation/SocialNetwork_plugin/statistics/Github/30.csv new file mode 100644 index 00000000..d1ec723b --- /dev/null +++ b/Metrics/Metrics-Calculation/SocialNetwork_plugin/statistics/Github/30.csv | |||
@@ -0,0 +1,22 @@ | |||
1 | Task,Run,Result,Domain to logic transformation time,Logic to solver transformation time,Solver time,Postprocessing time,_Solution0FoundAt,TransformationExecutionTime,TypeAnalysisTime,MetricCalculationTime,StateCoderTime,StateCoderFailCount,SolutionCopyTime | ||
2 | 2,1,ModelResultImpl,5,753,17109,13399400,16654,1789,9,696,11984,0,0 | ||
3 | 2,2,ModelResultImpl,5,628,17801,12301800,17369,1678,0,715,12727,0,0 | ||
4 | 2,3,ModelResultImpl,5,610,15430,13989100,14970,1285,0,586,11377,0,0 | ||
5 | 2,4,ModelResultImpl,5,803,14781,11475500,14220,1483,0,640,10196,0,0 | ||
6 | 2,5,ModelResultImpl,5,581,22641,12669300,22193,1558,0,707,17778,0,0 | ||
7 | 2,6,ModelResultImpl,5,611,22649,11553300,22203,1508,0,660,17965,0,0 | ||
8 | 2,7,ModelResultImpl,5,548,12438,10128400,12033,1584,0,616,7995,0,0 | ||
9 | 2,8,ModelResultImpl,5,655,17624,10593200,17198,1404,0,619,13273,0,0 | ||
10 | 2,9,ModelResultImpl,5,596,16946,10102500,16528,1717,0,705,11847,0,0 | ||
11 | 2,10,ModelResultImpl,5,537,17896,10038000,17507,1414,0,626,13625,0,0 | ||
12 | 2,11,ModelResultImpl,5,535,13771,11741600,13353,1411,0,613,9547,0,0 | ||
13 | 2,12,ModelResultImpl,5,531,16728,11768600,16257,1448,0,635,12199,0,0 | ||
14 | 2,13,ModelResultImpl,5,549,14647,11546900,14254,1201,0,573,10920,0,0 | ||
15 | 2,14,ModelResultImpl,5,552,15942,10918300,15492,1502,0,610,11459,0,0 | ||
16 | 2,15,ModelResultImpl,5,563,15196,12483700,14773,1389,0,574,11130,0,0 | ||
17 | 2,16,ModelResultImpl,5,566,10267,10445100,9864,1364,0,523,6468,0,0 | ||
18 | 2,17,ModelResultImpl,5,600,15595,8099800,15147,1341,0,624,11381,0,0 | ||
19 | 2,18,ModelResultImpl,5,561,11172,9144100,10776,1167,0,487,7740,0,0 | ||
20 | 2,19,ModelResultImpl,5,548,14818,9372000,14441,1565,0,658,10261,0,0 | ||
21 | 2,20,ModelResultImpl,5,559,17497,9881500,17059,1532,0,651,12811,0,0 | ||
22 | |||
diff --git a/Metrics/Metrics-Calculation/SocialNetwork_plugin/statistics/Github/50.csv b/Metrics/Metrics-Calculation/SocialNetwork_plugin/statistics/Github/50.csv new file mode 100644 index 00000000..7ed016e0 --- /dev/null +++ b/Metrics/Metrics-Calculation/SocialNetwork_plugin/statistics/Github/50.csv | |||
@@ -0,0 +1,22 @@ | |||
1 | Task,Run,Result,Domain to logic transformation time,Logic to solver transformation time,Solver time,Postprocessing time,_Solution0FoundAt,TransformationExecutionTime,TypeAnalysisTime,MetricCalculationTime,StateCoderTime,StateCoderFailCount,SolutionCopyTime | ||
2 | 4,1,ModelResultImpl,11,730,72467,34401400,71866,4026,10,1998,59824,0,0 | ||
3 | 4,2,ModelResultImpl,11,761,67853,11838400,67382,3819,0,1957,55882,0,0 | ||
4 | 4,3,ModelResultImpl,11,734,45541,10393700,45056,3529,0,1779,34849,0,0 | ||
5 | 4,4,ModelResultImpl,11,619,55697,17081600,55167,3617,0,1898,44356,0,0 | ||
6 | 4,5,ModelResultImpl,11,726,64846,29758900,64208,3905,0,2030,52466,0,0 | ||
7 | 4,6,ModelResultImpl,11,712,65893,13089200,65423,3972,0,2029,53618,0,0 | ||
8 | 4,7,ModelResultImpl,11,742,50982,16405400,50469,3638,0,1857,39804,0,0 | ||
9 | 4,8,ModelResultImpl,11,590,50309,15985400,49731,3572,0,1877,39187,0,0 | ||
10 | 4,9,ModelResultImpl,11,761,65533,23499900,65008,3890,0,2000,53225,0,0 | ||
11 | 4,10,ModelResultImpl,11,688,44853,23629200,44348,3255,0,1695,34758,0,0 | ||
12 | 4,11,ModelResultImpl,11,626,59167,38070600,58611,3942,0,1864,47290,0,0 | ||
13 | 4,12,ModelResultImpl,11,642,66860,18966400,66364,3732,0,1987,54960,0,0 | ||
14 | 4,13,ModelResultImpl,11,622,65317,12053900,64842,3176,0,1633,55177,0,1 | ||
15 | 4,14,ModelResultImpl,11,687,45481,79001300,44944,3485,0,1661,35036,0,0 | ||
16 | 4,15,ModelResultImpl,11,881,74988,14027700,74444,4150,0,2191,61881,0,0 | ||
17 | 4,16,ModelResultImpl,11,691,56609,11960900,56125,3776,0,1943,45015,0,0 | ||
18 | 4,17,ModelResultImpl,11,631,103459,26319900,102823,4720,0,2390,88314,0,1 | ||
19 | 4,18,ModelResultImpl,11,2263,61989,12371400,61101,3751,0,1902,50076,0,0 | ||
20 | 4,19,ModelResultImpl,11,575,75135,19514700,74621,4810,0,2552,60068,0,1 | ||
21 | 4,20,ModelResultImpl,11,1069,94884,21924000,94062,5623,0,3121,77010,0,1 | ||
22 | |||
diff --git a/Metrics/Metrics-Calculation/SocialNetwork_plugin/statistics/Github/80.csv b/Metrics/Metrics-Calculation/SocialNetwork_plugin/statistics/Github/80.csv new file mode 100644 index 00000000..257b7ddb --- /dev/null +++ b/Metrics/Metrics-Calculation/SocialNetwork_plugin/statistics/Github/80.csv | |||
@@ -0,0 +1,22 @@ | |||
1 | Task,Run,Result,Domain to logic transformation time,Logic to solver transformation time,Solver time,Postprocessing time,TransformationExecutionTime,TypeAnalysisTime,MetricCalculationTime,StateCoderTime,StateCoderFailCount,SolutionCopyTime,_Solution0FoundAt | ||
2 | 5,1,InsuficientResourcesResultImpl,8,1163,301236,6700,11611,7,8030,261757,0,0, | ||
3 | 5,2,ModelResultImpl,8,1125,214262,41193500,10675,0,7433,179009,0,1,213284 | ||
4 | 5,3,InsuficientResourcesResultImpl,8,1097,301100,1400,10110,0,6697,266325,0,0, | ||
5 | 5,4,ModelResultImpl,8,1202,243793,34411800,11329,0,7710,206562,0,0,242815 | ||
6 | 5,5,ModelResultImpl,8,1130,266540,38153400,12190,0,8455,225879,0,1,265458 | ||
7 | 5,6,ModelResultImpl,8,1136,244077,43614700,10925,0,7347,207698,0,0,243138 | ||
8 | 5,7,ModelResultImpl,8,1263,270364,44901700,10715,0,7520,233664,0,0,269383 | ||
9 | 5,8,ModelResultImpl,8,1062,228653,36320200,11042,0,7673,191829,0,0,227652 | ||
10 | 5,9,ModelResultImpl,8,1060,284484,38198200,12105,0,8129,244192,0,1,283520 | ||
11 | 5,10,ModelResultImpl,8,1087,245757,38745600,10898,0,7835,208781,0,0,244833 | ||
12 | 5,11,InsuficientResourcesResultImpl,8,1003,302539,1700,9666,0,6798,267961,0,0, | ||
13 | 5,12,ModelResultImpl,8,657,143583,35565200,6948,0,4448,120639,0,0,142951 | ||
14 | 5,13,ModelResultImpl,8,1061,292041,44607000,12010,0,8656,250579,0,1,291061 | ||
15 | 5,14,ModelResultImpl,8,1034,255307,37454100,11242,0,7789,217397,0,0,254393 | ||
16 | 5,15,InsuficientResourcesResultImpl,8,1194,300839,1500,9997,0,7300,265245,0,0, | ||
17 | 5,16,ModelResultImpl,8,1070,274358,38762800,11730,0,7864,235472,0,1,273383 | ||
18 | 5,17,ModelResultImpl,8,1099,259378,84148300,11340,0,7784,221204,0,0,258553 | ||
19 | 5,18,ModelResultImpl,8,1084,255262,38991800,11989,0,7795,215829,0,1,254328 | ||
20 | 5,19,ModelResultImpl,8,1111,293515,47026100,12037,0,8609,252172,0,1,292504 | ||
21 | 5,20,ModelResultImpl,8,1106,278558,32886300,12080,0,8000,237985,0,1,277745 | ||
22 | |||
diff --git a/Metrics/Metrics-Calculation/SocialNetwork_plugin/statistics/Github/warmup.csv b/Metrics/Metrics-Calculation/SocialNetwork_plugin/statistics/Github/warmup.csv new file mode 100644 index 00000000..989c2411 --- /dev/null +++ b/Metrics/Metrics-Calculation/SocialNetwork_plugin/statistics/Github/warmup.csv | |||
@@ -0,0 +1,7 @@ | |||
1 | Task,Run,Result,Domain to logic transformation time,Logic to solver transformation time,Solver time,Postprocessing time,_Solution0FoundAt,TransformationExecutionTime,TypeAnalysisTime,MetricCalculationTime,StateCoderTime,StateCoderFailCount,SolutionCopyTime | ||
2 | 1,1,ModelResultImpl,1483,2558,3108,60043900,1609,456,424,87,272,0,1 | ||
3 | 1,2,ModelResultImpl,1483,1126,1487,9020100,931,292,1,60,256,0,1 | ||
4 | 1,3,ModelResultImpl,1483,927,1424,9739900,827,263,0,51,217,0,0 | ||
5 | 1,4,ModelResultImpl,1483,886,1069,8613600,495,208,1,25,97,0,0 | ||
6 | 1,5,ModelResultImpl,1483,768,1268,9369800,856,262,0,35,223,0,0 | ||
7 | |||
diff --git a/Metrics/Metrics-Calculation/SocialNetwork_plugin/statistics/Yakindu/100.csv b/Metrics/Metrics-Calculation/SocialNetwork_plugin/statistics/Yakindu/100.csv new file mode 100644 index 00000000..a2628ad1 --- /dev/null +++ b/Metrics/Metrics-Calculation/SocialNetwork_plugin/statistics/Yakindu/100.csv | |||
@@ -0,0 +1,22 @@ | |||
1 | Task,Run,Result,Domain to logic transformation time,Logic to solver transformation time,Solver time,Postprocessing time,_Solution0FoundAt,TransformationExecutionTime,TypeAnalysisTime,MetricCalculationTime,StateCoderTime,StateCoderFailCount,SolutionCopyTime | ||
2 | 5,1,ModelResultImpl,12,865,91787,64960700,91078,17340,6,2469,61497,0,3 | ||
3 | 5,2,ModelResultImpl,12,956,118267,65616400,117553,16353,0,2810,85627,0,1 | ||
4 | 5,3,ModelResultImpl,12,900,116093,69616600,115364,17281,0,2800,82376,0,0 | ||
5 | 5,4,ModelResultImpl,12,907,96027,78796000,95287,19233,0,2643,63089,0,0 | ||
6 | 5,5,ModelResultImpl,12,961,133615,61595600,132840,17098,0,2970,99041,0,0 | ||
7 | 5,6,ModelResultImpl,12,917,120673,61159000,119930,18320,0,2889,85737,0,0 | ||
8 | 5,7,ModelResultImpl,12,941,101988,69310400,101183,18258,0,2694,69616,0,0 | ||
9 | 5,8,ModelResultImpl,12,910,117121,58731900,116373,16751,0,2954,83990,0,1 | ||
10 | 5,9,ModelResultImpl,12,939,98738,60204200,97988,15671,0,2643,69051,0,0 | ||
11 | 5,10,ModelResultImpl,12,907,109216,62901700,108450,18563,0,2855,74361,0,0 | ||
12 | 5,11,ModelResultImpl,12,989,101313,70288400,100570,19059,0,2653,68951,0,0 | ||
13 | 5,12,ModelResultImpl,12,847,110986,71960700,110229,20031,0,2484,77376,0,0 | ||
14 | 5,13,ModelResultImpl,12,924,99847,65101400,99083,18276,0,2732,67006,0,0 | ||
15 | 5,14,ModelResultImpl,12,908,113484,61073000,112675,20588,0,2760,77595,0,0 | ||
16 | 5,15,ModelResultImpl,12,859,107243,118083900,106494,16814,0,2826,74774,0,0 | ||
17 | 5,16,ModelResultImpl,12,896,101005,60113300,100198,16591,0,2670,70482,0,0 | ||
18 | 5,17,ModelResultImpl,12,909,150888,90178000,150032,18804,0,3644,112370,0,2 | ||
19 | 5,18,ModelResultImpl,12,1988,224882,111051700,223272,35288,0,5245,160716,0,2 | ||
20 | 5,19,ModelResultImpl,12,1710,180301,103042800,178853,31026,0,4421,125609,0,1 | ||
21 | 5,20,ModelResultImpl,12,2294,236789,120962500,234776,34043,0,4964,172403,0,1 | ||
22 | |||
diff --git a/Metrics/Metrics-Calculation/SocialNetwork_plugin/statistics/Yakindu/120.csv b/Metrics/Metrics-Calculation/SocialNetwork_plugin/statistics/Yakindu/120.csv new file mode 100644 index 00000000..03ee084b --- /dev/null +++ b/Metrics/Metrics-Calculation/SocialNetwork_plugin/statistics/Yakindu/120.csv | |||
@@ -0,0 +1,22 @@ | |||
1 | Task,Run,Result,Domain to logic transformation time,Logic to solver transformation time,Solver time,Postprocessing time,_Solution0FoundAt,TransformationExecutionTime,TypeAnalysisTime,MetricCalculationTime,StateCoderTime,StateCoderFailCount,SolutionCopyTime | ||
2 | 2,1,ModelResultImpl,11,1049,149253,202983100,148329,21687,8,3820,108113,0,4 | ||
3 | 2,2,ModelResultImpl,11,1131,173214,111640800,172206,24930,0,3926,128120,0,1 | ||
4 | 2,3,ModelResultImpl,11,1027,157782,120804000,157006,19292,0,3948,119012,0,1 | ||
5 | 2,4,ModelResultImpl,11,1063,169577,126195200,168692,22819,0,4027,126643,0,1 | ||
6 | 2,5,ModelResultImpl,11,984,164004,93016300,163235,23449,0,3830,121474,0,1 | ||
7 | 2,6,ModelResultImpl,11,1005,146874,94077300,146111,20382,0,3734,108542,0,1 | ||
8 | 2,7,ModelResultImpl,11,904,148997,92734800,148172,19769,0,3763,111141,0,1 | ||
9 | 2,8,ModelResultImpl,11,911,145947,99103000,145197,21375,0,3757,106317,0,1 | ||
10 | 2,9,ModelResultImpl,11,911,154022,91420700,153225,21687,0,3781,113566,0,1 | ||
11 | 2,10,ModelResultImpl,11,994,144253,105623000,143479,19514,0,3736,106547,0,1 | ||
12 | 2,11,ModelResultImpl,11,943,146057,85565700,145235,20168,0,3830,107696,0,1 | ||
13 | 2,12,ModelResultImpl,11,933,153728,93877000,152956,18549,0,4136,115265,0,0 | ||
14 | 2,13,ModelResultImpl,11,989,135785,101796800,135043,19930,0,3590,98576,0,1 | ||
15 | 2,14,ModelResultImpl,11,942,158905,115031700,158150,21663,0,3796,118239,0,0 | ||
16 | 2,15,ModelResultImpl,11,897,138727,116266900,137918,19116,1,3652,102641,0,0 | ||
17 | 2,16,ModelResultImpl,11,851,145221,95232500,144453,18026,0,3913,108945,0,0 | ||
18 | 2,17,ModelResultImpl,11,928,154148,88476300,153396,21053,0,3827,113763,0,0 | ||
19 | 2,18,ModelResultImpl,11,859,166408,95546600,165666,22619,0,3922,123707,0,1 | ||
20 | 2,19,ModelResultImpl,11,909,136564,91353600,135766,17841,0,3665,101835,0,0 | ||
21 | 2,20,ModelResultImpl,11,873,147664,91153300,146866,17705,0,3874,111410,0,0 | ||
22 | |||
diff --git a/Metrics/Metrics-Calculation/SocialNetwork_plugin/statistics/Yakindu/140.csv b/Metrics/Metrics-Calculation/SocialNetwork_plugin/statistics/Yakindu/140.csv new file mode 100644 index 00000000..293f51a5 --- /dev/null +++ b/Metrics/Metrics-Calculation/SocialNetwork_plugin/statistics/Yakindu/140.csv | |||
@@ -0,0 +1,22 @@ | |||
1 | Task,Run,Result,Domain to logic transformation time,Logic to solver transformation time,Solver time,Postprocessing time,Solution1FoundAt,ExplorationInitializationTime,TransformationExecutionTime,TypeAnalysisTime,StateCoderTime,StateCoderFailCount,SolutionCopyTime,ActivationSelectionTime,NumericalSolverSumTime,NumericalSolverProblemFormingTime,NumericalSolverSolvingTime,NumericalSolverInterpretingSolution,NumericalSolverCachingTime,NumericalSolverCallNumber,NumericalSolverCachedAnswerNumber | ||
2 | 2,1,ModelResultImpl,49,948,55965,249,54293,1336,6134,11,17708,0,3,2,0,0,0,0,0,0,0 | ||
3 | 2,2,ModelResultImpl,49,638,65106,310,63703,837,7067,0,20870,0,3,2,0,0,0,0,0,0,0 | ||
4 | 2,3,ModelResultImpl,49,1929,69666,268,67267,1926,7537,0,20708,0,1,0,0,0,0,0,0,0,0 | ||
5 | 2,4,ModelResultImpl,49,617,67091,318,65452,1078,8304,0,18694,0,1,0,0,0,0,0,0,0,0 | ||
6 | 2,5,ModelResultImpl,49,1068,75850,145,74083,1480,8386,0,19637,0,1,0,0,0,0,0,0,0,0 | ||
7 | 2,6,ModelResultImpl,49,785,65738,301,63408,1430,7695,0,16497,0,3,0,0,0,0,0,0,0,0 | ||
8 | 2,7,ModelResultImpl,49,1055,85078,387,82888,1365,9313,0,22220,0,1,0,0,0,0,0,0,0,0 | ||
9 | 2,8,ModelResultImpl,49,1189,63131,136,61246,1586,7804,0,17380,0,2,1,0,0,0,0,0,0,0 | ||
10 | 2,9,ModelResultImpl,49,530,60098,248,58756,657,6900,0,18737,0,2,0,0,0,0,0,0,0,0 | ||
11 | 2,10,ModelResultImpl,49,706,58634,247,56728,1023,6237,0,18909,0,1,0,0,0,0,0,0,0,0 | ||
12 | 2,11,ModelResultImpl,49,683,55087,174,53903,749,5838,0,17665,0,1,0,0,0,0,0,0,0,0 | ||
13 | 2,12,ModelResultImpl,49,533,69793,206,68720,625,7827,0,22340,0,1,0,0,0,0,0,0,0,0 | ||
14 | 2,13,ModelResultImpl,49,625,58198,256,56830,781,6177,0,20134,0,2,0,0,0,0,0,0,0,0 | ||
15 | 2,14,ModelResultImpl,49,555,66046,250,64950,664,7385,0,15860,0,0,0,0,0,0,0,0,0,0 | ||
16 | 2,15,ModelResultImpl,49,586,96452,367,92042,1007,12651,0,23019,0,6,0,0,0,0,0,0,0,0 | ||
17 | 2,16,ModelResultImpl,49,1523,72460,210,70549,1181,9123,1,21222,0,2,0,0,0,0,0,0,0,0 | ||
18 | 2,17,ModelResultImpl,49,734,74551,417,72763,842,8117,0,21326,0,3,0,0,0,0,0,0,0,0 | ||
19 | 2,18,ModelResultImpl,49,1282,75020,208,72887,1459,8671,0,22596,0,3,1,0,0,0,0,0,0,0 | ||
20 | 2,19,ModelResultImpl,49,871,70125,286,68362,947,8755,0,18829,0,1,0,0,0,0,0,0,0,0 | ||
21 | 2,20,ModelResultImpl,49,633,65564,149,64398,816,7912,0,15815,0,0,0,0,0,0,0,0,0,0 | ||
22 | |||
diff --git a/Metrics/Metrics-Calculation/SocialNetwork_plugin/statistics/Yakindu/30.csv b/Metrics/Metrics-Calculation/SocialNetwork_plugin/statistics/Yakindu/30.csv new file mode 100644 index 00000000..ec0afb94 --- /dev/null +++ b/Metrics/Metrics-Calculation/SocialNetwork_plugin/statistics/Yakindu/30.csv | |||
@@ -0,0 +1,22 @@ | |||
1 | Task,Run,Result,Domain to logic transformation time,Logic to solver transformation time,Solver time,Postprocessing time,_Solution0FoundAt,TransformationExecutionTime,TypeAnalysisTime,MetricCalculationTime,StateCoderTime,StateCoderFailCount,SolutionCopyTime | ||
2 | 2,1,ModelResultImpl,37,1267,42409,28515700,41220,5066,11,614,29095,0,1 | ||
3 | 2,2,ModelResultImpl,37,1919,14164,22580700,12518,3986,2,344,5463,0,2 | ||
4 | 2,3,ModelResultImpl,37,1916,41597,31164300,40290,5050,1,614,28209,0,1 | ||
5 | 2,4,ModelResultImpl,37,2023,41518,20216100,40199,5825,0,549,27332,0,1 | ||
6 | 2,5,ModelResultImpl,37,2052,21630,32282400,20128,4713,0,456,10817,0,1 | ||
7 | 2,6,ModelResultImpl,37,2070,40984,24514000,39602,5997,0,528,26649,0,2 | ||
8 | 2,7,ModelResultImpl,37,2249,40677,22780300,39309,4977,0,600,27410,0,1 | ||
9 | 2,8,ModelResultImpl,37,1887,34102,17897400,32571,5103,0,524,21184,0,1 | ||
10 | 2,9,ModelResultImpl,37,1826,11685,12854100,10430,3316,0,298,4382,0,1 | ||
11 | 2,10,ModelResultImpl,37,1795,20933,19823700,19703,4431,0,435,10642,0,1 | ||
12 | 2,11,ModelResultImpl,37,1849,33111,18648500,31757,5743,0,375,20404,0,1 | ||
13 | 2,12,ModelResultImpl,37,1829,36099,18177300,34869,5689,0,525,22643,0,1 | ||
14 | 2,13,ModelResultImpl,37,1875,36431,20140100,35116,5371,0,500,23462,0,1 | ||
15 | 2,14,ModelResultImpl,37,1796,32322,24371800,31185,4939,0,493,20307,0,1 | ||
16 | 2,15,ModelResultImpl,37,1961,43764,24819800,42470,6248,0,593,27586,0,1 | ||
17 | 2,16,ModelResultImpl,37,1737,16231,16437300,14995,3805,0,388,7679,0,0 | ||
18 | 2,17,ModelResultImpl,37,1685,14223,36835700,12964,3783,0,338,6108,0,1 | ||
19 | 2,18,ModelResultImpl,37,1910,30550,21296200,29359,4813,0,517,18691,0,1 | ||
20 | 2,19,ModelResultImpl,37,1622,30723,17831800,29572,5299,0,560,18198,0,1 | ||
21 | 2,20,ModelResultImpl,37,1915,15410,15827800,14223,3856,0,353,7093,0,1 | ||
22 | |||
diff --git a/Metrics/Metrics-Calculation/SocialNetwork_plugin/statistics/Yakindu/50.csv b/Metrics/Metrics-Calculation/SocialNetwork_plugin/statistics/Yakindu/50.csv new file mode 100644 index 00000000..80122e3d --- /dev/null +++ b/Metrics/Metrics-Calculation/SocialNetwork_plugin/statistics/Yakindu/50.csv | |||
@@ -0,0 +1,22 @@ | |||
1 | Task,Run,Result,Domain to logic transformation time,Logic to solver transformation time,Solver time,Postprocessing time,_Solution0FoundAt,TransformationExecutionTime,TypeAnalysisTime,MetricCalculationTime,StateCoderTime,StateCoderFailCount,SolutionCopyTime | ||
2 | 3,1,ModelResultImpl,16,1695,34619,47365200,33379,7951,23,1005,19203,0,0 | ||
3 | 3,2,ModelResultImpl,16,1952,66272,40194500,65033,10142,0,1381,45195,0,1 | ||
4 | 3,3,ModelResultImpl,16,1882,50684,57411900,49392,9412,0,1181,31167,0,2 | ||
5 | 3,4,ModelResultImpl,16,1835,52174,29585500,50841,9443,0,1265,32497,0,1 | ||
6 | 3,5,ModelResultImpl,16,1817,37087,24158900,35809,8374,0,1106,20620,0,1 | ||
7 | 3,6,ModelResultImpl,16,1822,96082,35393500,94837,10814,0,1314,71854,0,1 | ||
8 | 3,7,ModelResultImpl,16,1845,65727,37723300,64268,10857,0,1392,42620,0,1 | ||
9 | 3,8,ModelResultImpl,16,1715,36063,56419600,34810,8195,0,1065,19928,0,2 | ||
10 | 3,9,ModelResultImpl,16,1814,53418,68855200,52040,9364,0,1248,33127,0,1 | ||
11 | 3,10,ModelResultImpl,16,1688,146193,34004300,144953,23393,0,2677,96521,0,2 | ||
12 | 3,11,ModelResultImpl,16,1887,56839,38787000,55478,11029,0,1309,34905,0,1 | ||
13 | 3,12,ModelResultImpl,16,1852,43970,32684100,42779,10114,0,1121,25234,0,1 | ||
14 | 3,13,ModelResultImpl,16,1766,68078,29662000,66581,12700,0,1445,42619,0,1 | ||
15 | 3,14,ModelResultImpl,16,2033,137006,39601900,135475,10041,0,1736,110352,0,1 | ||
16 | 3,15,ModelResultImpl,16,1792,36929,30425200,35576,8499,0,1112,19855,0,1 | ||
17 | 3,16,ModelResultImpl,16,1861,79893,19417500,78581,10278,0,1253,56995,0,0 | ||
18 | 3,17,ModelResultImpl,16,1651,34149,32888300,33294,8334,0,1016,18514,0,1 | ||
19 | 3,18,ModelResultImpl,16,1799,51965,35639300,50624,11417,0,1355,29874,0,0 | ||
20 | 3,19,ModelResultImpl,16,2032,46469,44756500,45006,10308,0,1323,25809,0,1 | ||
21 | 3,20,ModelResultImpl,16,1839,75448,32863500,74051,11465,0,1499,50558,0,1 | ||
22 | |||
diff --git a/Metrics/Metrics-Calculation/SocialNetwork_plugin/statistics/Yakindu/80.csv b/Metrics/Metrics-Calculation/SocialNetwork_plugin/statistics/Yakindu/80.csv new file mode 100644 index 00000000..ae7f7ca1 --- /dev/null +++ b/Metrics/Metrics-Calculation/SocialNetwork_plugin/statistics/Yakindu/80.csv | |||
@@ -0,0 +1,22 @@ | |||
1 | Task,Run,Result,Domain to logic transformation time,Logic to solver transformation time,Solver time,Postprocessing time,_Solution0FoundAt,TransformationExecutionTime,TypeAnalysisTime,MetricCalculationTime,StateCoderTime,StateCoderFailCount,SolutionCopyTime | ||
2 | 4,1,ModelResultImpl,20,2105,122193,47975800,120819,22172,21,3111,81933,0,0 | ||
3 | 4,2,ModelResultImpl,20,948,71430,38366700,70718,10799,0,1803,49089,0,0 | ||
4 | 4,3,ModelResultImpl,20,907,71011,42371700,70320,12614,0,1751,47228,0,0 | ||
5 | 4,4,ModelResultImpl,20,888,57574,43253600,56870,10097,0,1721,37819,0,0 | ||
6 | 4,5,ModelResultImpl,20,918,50961,39099900,50235,9718,0,1667,31881,0,0 | ||
7 | 4,6,ModelResultImpl,20,929,54262,48948700,53554,10095,0,1701,35294,0,0 | ||
8 | 4,7,ModelResultImpl,20,914,69271,42306400,68596,12610,0,1788,45775,0,0 | ||
9 | 4,8,ModelResultImpl,20,887,58304,42858800,57604,10861,0,1641,37653,0,0 | ||
10 | 4,9,ModelResultImpl,20,923,61436,40388600,60755,11478,0,1812,38983,0,0 | ||
11 | 4,10,ModelResultImpl,20,950,51010,44099800,50294,11361,0,1496,30951,0,1 | ||
12 | 4,11,ModelResultImpl,20,879,56153,40079800,55455,11776,0,1587,35227,0,0 | ||
13 | 4,12,ModelResultImpl,20,939,55164,41385200,54450,9786,0,1675,35778,0,0 | ||
14 | 4,13,ModelResultImpl,20,947,59424,49539400,58684,10955,0,1776,38126,0,0 | ||
15 | 4,14,ModelResultImpl,20,973,61843,36537600,61086,10883,0,1685,40830,0,0 | ||
16 | 4,15,ModelResultImpl,20,867,54362,38663100,53666,10015,0,1611,35234,0,0 | ||
17 | 4,16,ModelResultImpl,20,915,108777,49507000,108033,20987,0,2938,71959,0,1 | ||
18 | 4,17,ModelResultImpl,20,922,55218,41448600,54548,9665,0,1657,36387,0,0 | ||
19 | 4,18,ModelResultImpl,20,921,57210,60622400,56526,10429,0,1747,36425,0,0 | ||
20 | 4,19,ModelResultImpl,20,911,70900,47211300,70230,11669,0,1714,48547,0,0 | ||
21 | 4,20,ModelResultImpl,20,887,74363,36468500,73658,12552,0,1800,50208,0,0 | ||
22 | |||
diff --git a/Metrics/Metrics-Calculation/SocialNetwork_plugin/statistics/Yakindu/warmup.csv b/Metrics/Metrics-Calculation/SocialNetwork_plugin/statistics/Yakindu/warmup.csv new file mode 100644 index 00000000..438b0c46 --- /dev/null +++ b/Metrics/Metrics-Calculation/SocialNetwork_plugin/statistics/Yakindu/warmup.csv | |||
@@ -0,0 +1,3 @@ | |||
1 | Task,Run,Result,Domain to logic transformation time,Logic to solver transformation time,Solver time,Postprocessing time,Solution0FoundAt,ExplorationInitializationTime,TransformationExecutionTime,ScopePropagationTime,MustRelationPropagationTime,TypeAnalysisTime,StateCoderTime,StateCoderFailCount,SolutionCopyTime,States,ForwardTime,BacktrackingTime,GlobalConstraintEvaluationTime,FitnessCalculationTime,ActivationSelectionTime,Decisions,Transformations,ScopePropagations,ScopePropagationsSolverCalls | ||
2 | 1,1,ModelResultImpl,937,7407,70133,650,70197,1168,1392,492,0,216,25676,0,5,14735,20985,10955,17,0,4,0,15313,8859,0 | ||
3 | |||
diff --git a/Metrics/Metrics-Calculation/SocialNetwork_plugin/statistics/file.csv b/Metrics/Metrics-Calculation/SocialNetwork_plugin/statistics/file.csv new file mode 100644 index 00000000..c3c77053 --- /dev/null +++ b/Metrics/Metrics-Calculation/SocialNetwork_plugin/statistics/file.csv | |||
@@ -0,0 +1,4 @@ | |||
1 | Task,Run,Result,Domain to logic transformation time,Logic to solver transformation time,Solver time,Postprocessing time,TransformationExecutionTime,TypeAnalysisTime,MetricCalculationTime,StateCoderTime,StateCoderFailCount,SolutionCopyTime,_Solution0FoundAt | ||
2 | 1,1,InsuficientResourcesResultImpl,453,3378,5255,7500,1236,131,79,245,0,0, | ||
3 | 1,2,ModelResultImpl,453,1965,4628,31696400,1014,3,58,307,0,1,1957 | ||
4 | |||
diff --git a/Metrics/Metrics-Calculation/SocialNetwork_plugin/yakinduGeneration.vsconfig b/Metrics/Metrics-Calculation/SocialNetwork_plugin/yakinduGeneration.vsconfig new file mode 100644 index 00000000..618d7b48 --- /dev/null +++ b/Metrics/Metrics-Calculation/SocialNetwork_plugin/yakinduGeneration.vsconfig | |||
@@ -0,0 +1,107 @@ | |||
1 | import epackage "../../../Domains/hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph/model/yakindu_simplified.ecore" | ||
2 | import viatra "../../../Domains/hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph/queries/hu/bme/mit/inf/dslreasoner/partialsnapshot_mavo/yakindu/patterns.vql" | ||
3 | |||
4 | generate { | ||
5 | metamodel = { package yakindumm excluding { Synchronization}} | ||
6 | constraints = { package hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu } | ||
7 | partial-model = { "inputs/start.xmi"} | ||
8 | |||
9 | solver = ViatraSolver | ||
10 | |||
11 | scope = { | ||
12 | #node = 200 | ||
13 | } | ||
14 | |||
15 | number = 1 | ||
16 | runs = 1 | ||
17 | config = { | ||
18 | log-level = none, | ||
19 | "optional-wf" = "false", | ||
20 | "realistic-guidance" = "Composite", | ||
21 | "allow-must-violations" = "false", | ||
22 | "domain" = "Yakindumm", | ||
23 | "scopePropagator" = "typeHierarchy" | ||
24 | } | ||
25 | |||
26 | statistics = "statistics/Yakindu/warmup.csv" //give different set up different filenames | ||
27 | debug = "debug" | ||
28 | output = "output/Yakindu/run_time/" | ||
29 | } | ||
30 | |||
31 | // generate { | ||
32 | // metamodel = { package yakindumm excluding { Synchronization}} | ||
33 | // constraints = { package hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu } | ||
34 | // partial-model = { "inputs/start.xmi"} | ||
35 | |||
36 | // solver = ViatraSolver | ||
37 | |||
38 | // scope = { | ||
39 | // #node = 140 | ||
40 | // } | ||
41 | |||
42 | // number = 1 | ||
43 | // runs = 20 | ||
44 | // config = { | ||
45 | // log-level = none, | ||
46 | // "optional-wf" = "false", | ||
47 | // "realistic-guidance" = "Composite", | ||
48 | // "allow-must-violations" = "false", | ||
49 | // "domain" = "Yakindumm" | ||
50 | // } | ||
51 | |||
52 | // statistics = "statistics/Yakindu/140.csv" //give different set up different filenames | ||
53 | // debug = "debug" | ||
54 | // output = "output/Yakindu/run_time/" | ||
55 | // } | ||
56 | |||
57 | // generate { | ||
58 | // metamodel = { package yakindumm excluding { Synchronization}} | ||
59 | // constraints = { package hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu } | ||
60 | // partial-model = { "inputs/start.xmi"} | ||
61 | |||
62 | // solver = ViatraSolver | ||
63 | |||
64 | // scope = { | ||
65 | // #node = 160 | ||
66 | // } | ||
67 | |||
68 | // number = 1 | ||
69 | // runs = 20 | ||
70 | // config = { | ||
71 | // log-level = none, | ||
72 | // "optional-wf" = "false", | ||
73 | // "realistic-guidance" = "Composite", | ||
74 | // "allow-must-violations" = "false", | ||
75 | // "domain" = "Yakindumm" | ||
76 | // } | ||
77 | |||
78 | // statistics = "statistics/Yakindu/160.csv" //give different set up different filenames | ||
79 | // debug = "debug" | ||
80 | // output = "output/Yakindu/run_time/" | ||
81 | // } | ||
82 | |||
83 | // generate { | ||
84 | // metamodel = { package yakindumm excluding { Synchronization}} | ||
85 | // constraints = { package hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu } | ||
86 | // partial-model = { "inputs/start.xmi"} | ||
87 | |||
88 | // solver = ViatraSolver | ||
89 | |||
90 | // scope = { | ||
91 | // #node = 180 | ||
92 | // } | ||
93 | |||
94 | // number = 1 | ||
95 | // runs = 20 | ||
96 | // config = { | ||
97 | // log-level = none, | ||
98 | // "optional-wf" = "false", | ||
99 | // "realistic-guidance" = "Composite", | ||
100 | // "allow-must-violations" = "false", | ||
101 | // "domain" = "Yakindumm" | ||
102 | // } | ||
103 | |||
104 | // statistics = "statistics/Yakindu/180.csv" //give different set up different filenames | ||
105 | // debug = "debug" | ||
106 | // output = "output/Yakindu/run_time/" | ||
107 | // } \ No newline at end of file | ||
diff --git a/Metrics/Metrics-Calculation/SocialNetwork_plugin/yakinduum/.gitignore b/Metrics/Metrics-Calculation/SocialNetwork_plugin/yakinduum/.gitignore new file mode 100644 index 00000000..17126b28 --- /dev/null +++ b/Metrics/Metrics-Calculation/SocialNetwork_plugin/yakinduum/.gitignore | |||
@@ -0,0 +1,4 @@ | |||
1 | # ignore everything in this folder except for this folder it self | ||
2 | |||
3 | * | ||
4 | !.gitignore \ No newline at end of file | ||