aboutsummaryrefslogtreecommitdiffstats
path: root/Metrics
diff options
context:
space:
mode:
authorLibravatar 20001LastOrder <boqi.chen@mail.mcgill.ca>2019-08-20 17:13:46 -0400
committerLibravatar 20001LastOrder <boqi.chen@mail.mcgill.ca>2019-08-20 17:13:46 -0400
commit8ca4668275e7f9298b9960acc66373aa94650453 (patch)
tree761e1561741a082fa2d278b31be654f426d31359 /Metrics
parentmodifty patterns for ecore (diff)
downloadVIATRA-Generator-8ca4668275e7f9298b9960acc66373aa94650453.tar.gz
VIATRA-Generator-8ca4668275e7f9298b9960acc66373aa94650453.tar.zst
VIATRA-Generator-8ca4668275e7f9298b9960acc66373aa94650453.zip
changes in settings of measurements
Diffstat (limited to 'Metrics')
-rw-r--r--Metrics/Metrics-Calculation/SocialNetwork_plugin/META-INF/MANIFEST.MF4
-rw-r--r--Metrics/Metrics-Calculation/SocialNetwork_plugin/Measurement_Runner.launch16
-rw-r--r--Metrics/Metrics-Calculation/SocialNetwork_plugin/bin/.gitignore8
-rw-r--r--Metrics/Metrics-Calculation/SocialNetwork_plugin/bin/constraints/ecore/.gitignore8
-rw-r--r--Metrics/Metrics-Calculation/SocialNetwork_plugin/bin/ecore.ecore1023
-rw-r--r--Metrics/Metrics-Calculation/SocialNetwork_plugin/bin/ecore/.gitignore8
-rw-r--r--Metrics/Metrics-Calculation/SocialNetwork_plugin/data/Github/.DS_Storebin0 -> 10244 bytes
-rw-r--r--Metrics/Metrics-Calculation/SocialNetwork_plugin/data/Github/mpc_rep/2samplemodel41.githubmodel105
-rw-r--r--Metrics/Metrics-Calculation/SocialNetwork_plugin/data/Github/na_rep/.DS_Storebin0 -> 6148 bytes
-rw-r--r--Metrics/Metrics-Calculation/SocialNetwork_plugin/data/Github/na_rep/2samplemodel65.githubmodel38
-rw-r--r--Metrics/Metrics-Calculation/SocialNetwork_plugin/data/Github/out_d_rep/.DS_Storebin0 -> 6148 bytes
-rw-r--r--Metrics/Metrics-Calculation/SocialNetwork_plugin/data/Github/out_d_rep/samplemodel62.githubmodel38
-rw-r--r--Metrics/Metrics-Calculation/SocialNetwork_plugin/debug/errors.txt22
-rw-r--r--Metrics/Metrics-Calculation/SocialNetwork_plugin/ecore.vsconfig16
-rw-r--r--Metrics/Metrics-Calculation/SocialNetwork_plugin/github.vsconfig212
-rw-r--r--Metrics/Metrics-Calculation/SocialNetwork_plugin/inputs/.gitignore4
-rw-r--r--Metrics/Metrics-Calculation/SocialNetwork_plugin/inputs/ecore.xmi5
-rw-r--r--Metrics/Metrics-Calculation/SocialNetwork_plugin/inputs/github.xmi3
-rw-r--r--Metrics/Metrics-Calculation/SocialNetwork_plugin/inputs/start.xmi2
-rw-r--r--Metrics/Metrics-Calculation/SocialNetwork_plugin/output.txt9
-rw-r--r--Metrics/Metrics-Calculation/SocialNetwork_plugin/plugin.xml9
-rw-r--r--Metrics/Metrics-Calculation/SocialNetwork_plugin/src-gen/queries/Ecore.java11
-rw-r--r--Metrics/Metrics-Calculation/SocialNetwork_plugin/src-gen/queries/MoreThenFiveSuperTypes.java611
-rw-r--r--Metrics/Metrics-Calculation/SocialNetwork_plugin/statistics/Ecore/100.csv22
-rw-r--r--Metrics/Metrics-Calculation/SocialNetwork_plugin/statistics/Ecore/30.csv22
-rw-r--r--Metrics/Metrics-Calculation/SocialNetwork_plugin/statistics/Ecore/50.csv22
-rw-r--r--Metrics/Metrics-Calculation/SocialNetwork_plugin/statistics/Ecore/80.csv22
-rw-r--r--Metrics/Metrics-Calculation/SocialNetwork_plugin/statistics/Ecore/warmup.csv7
-rw-r--r--Metrics/Metrics-Calculation/SocialNetwork_plugin/statistics/Github/30.csv22
-rw-r--r--Metrics/Metrics-Calculation/SocialNetwork_plugin/statistics/Github/50.csv22
-rw-r--r--Metrics/Metrics-Calculation/SocialNetwork_plugin/statistics/Github/80.csv22
-rw-r--r--Metrics/Metrics-Calculation/SocialNetwork_plugin/statistics/Github/warmup.csv7
-rw-r--r--Metrics/Metrics-Calculation/SocialNetwork_plugin/statistics/Yakindu/100.csv22
-rw-r--r--Metrics/Metrics-Calculation/SocialNetwork_plugin/statistics/Yakindu/120.csv22
-rw-r--r--Metrics/Metrics-Calculation/SocialNetwork_plugin/statistics/Yakindu/140.csv22
-rw-r--r--Metrics/Metrics-Calculation/SocialNetwork_plugin/statistics/Yakindu/30.csv22
-rw-r--r--Metrics/Metrics-Calculation/SocialNetwork_plugin/statistics/Yakindu/50.csv22
-rw-r--r--Metrics/Metrics-Calculation/SocialNetwork_plugin/statistics/Yakindu/80.csv22
-rw-r--r--Metrics/Metrics-Calculation/SocialNetwork_plugin/statistics/Yakindu/warmup.csv7
-rw-r--r--Metrics/Metrics-Calculation/SocialNetwork_plugin/statistics/file.csv4
-rw-r--r--Metrics/Metrics-Calculation/SocialNetwork_plugin/yakinduGeneration.vsconfig85
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/.settings/org.eclipse.wst.validation.prefs10
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/META-INF/MANIFEST.MF3
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/constraints/constraints/ecore/LoopInInheritenceConstraint0.java79
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/constraints/constraints/ecore/NonSymmetricOppositeConstraint0.java80
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/constraints/constraints/ecore/OppositeDifferentClassConstraint0.java (renamed from Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/constraints/constraints/ecore/MoreThenFiveSuperTypesConstraint0.java)16
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/constraints/ecore/Ecore_pattern.java53
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/constraints/ecore/MoreThenFiveSuperTypes.java621
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/ecore.ecore1016
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/src/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/Main.xtend7
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/src/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/PartialInterpretationMetricDistance.xtend8
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/src/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/graph/GraphStatistic.xtend4
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/src/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/io/GraphReader.xtend3
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/src/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/io/RepMetricsReader.xtend10
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/src/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/TypedClusteringCoefficientMetric.xtend23
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/src/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/validation/ViolationCheck.xtend4
-rw-r--r--Metrics/Metrics-Calculation/metrics_plot/Measurements/Measurement1/output/ecore/MPC.pngbin101380 -> 93189 bytes
-rw-r--r--Metrics/Metrics-Calculation/metrics_plot/Measurements/Measurement1/output/ecore/Node_Activity.pngbin97842 -> 51128 bytes
-rw-r--r--Metrics/Metrics-Calculation/metrics_plot/Measurements/Measurement1/output/ecore/Node_Type.pngbin91286 -> 43395 bytes
-rw-r--r--Metrics/Metrics-Calculation/metrics_plot/Measurements/Measurement1/output/ecore/Out_Degree.pngbin99473 -> 52053 bytes
-rw-r--r--Metrics/Metrics-Calculation/metrics_plot/Measurements/Measurement1/output/ecore/Violations.pngbin79974 -> 79997 bytes
-rw-r--r--Metrics/Metrics-Calculation/metrics_plot/Measurements/Measurement1/output/github/MPC.pngbin0 -> 76528 bytes
-rw-r--r--Metrics/Metrics-Calculation/metrics_plot/Measurements/Measurement1/output/github/Node_Activity.pngbin0 -> 33237 bytes
-rw-r--r--Metrics/Metrics-Calculation/metrics_plot/Measurements/Measurement1/output/github/Node_Type.pngbin0 -> 30670 bytes
-rw-r--r--Metrics/Metrics-Calculation/metrics_plot/Measurements/Measurement1/output/github/Out_Degree.pngbin0 -> 28214 bytes
-rw-r--r--Metrics/Metrics-Calculation/metrics_plot/Measurements/Measurement1/output/github/Violations.pngbin0 -> 93823 bytes
-rw-r--r--Metrics/Metrics-Calculation/metrics_plot/Measurements/Measurement1/output/yakindumm/MPC.pngbin249645 -> 81940 bytes
-rw-r--r--Metrics/Metrics-Calculation/metrics_plot/Measurements/Measurement1/output/yakindumm/Node_Activity.pngbin247153 -> 41978 bytes
-rw-r--r--Metrics/Metrics-Calculation/metrics_plot/Measurements/Measurement1/output/yakindumm/Node_Type.pngbin239303 -> 47047 bytes
-rw-r--r--Metrics/Metrics-Calculation/metrics_plot/Measurements/Measurement1/output/yakindumm/Out_Degree.pngbin240635 -> 53711 bytes
-rw-r--r--Metrics/Metrics-Calculation/metrics_plot/Measurements/Measurement1/output/yakindumm/Violations.pngbin125245 -> 111887 bytes
-rw-r--r--Metrics/Metrics-Calculation/metrics_plot/Measurements/Measurement1/src/BoxPlot.ipynb69
-rw-r--r--Metrics/Metrics-Calculation/metrics_plot/model comparison/output/ecore/Hum-All-Rand-GS-Real-Med-/MPC.pngbin0 -> 260244 bytes
-rw-r--r--Metrics/Metrics-Calculation/metrics_plot/model comparison/output/ecore/Hum-All-Rand-GS-Real-Med-/MPC_lengend.pngbin0 -> 284435 bytes
-rw-r--r--Metrics/Metrics-Calculation/metrics_plot/model comparison/output/ecore/Hum-All-Rand-GS-Real-Med-/Node_Activity.pngbin0 -> 240919 bytes
-rw-r--r--Metrics/Metrics-Calculation/metrics_plot/model comparison/output/ecore/Hum-All-Rand-GS-Real-Med-/Node_Activity_lengend.pngbin0 -> 267128 bytes
-rw-r--r--Metrics/Metrics-Calculation/metrics_plot/model comparison/output/ecore/Hum-All-Rand-GS-Real-Med-/Node_Types.pngbin0 -> 259504 bytes
-rw-r--r--Metrics/Metrics-Calculation/metrics_plot/model comparison/output/ecore/Hum-All-Rand-GS-Real-Med-/Node_Types_lengend.pngbin0 -> 283224 bytes
-rw-r--r--Metrics/Metrics-Calculation/metrics_plot/model comparison/output/ecore/Hum-All-Rand-GS-Real-Med-/Out_Degree.pngbin0 -> 249861 bytes
-rw-r--r--Metrics/Metrics-Calculation/metrics_plot/model comparison/output/ecore/Hum-All-Rand-GS-Real-Med-/Out_Degree_lengend.pngbin0 -> 276261 bytes
-rw-r--r--Metrics/Metrics-Calculation/metrics_plot/model comparison/output/github/Hum-All-Rand-GS-Real-Med-/MPC.pngbin0 -> 250477 bytes
-rw-r--r--Metrics/Metrics-Calculation/metrics_plot/model comparison/output/github/Hum-All-Rand-GS-Real-Med-/MPC_lengend.pngbin0 -> 275605 bytes
-rw-r--r--Metrics/Metrics-Calculation/metrics_plot/model comparison/output/github/Hum-All-Rand-GS-Real-Med-/Node_Activity.pngbin0 -> 213651 bytes
-rw-r--r--Metrics/Metrics-Calculation/metrics_plot/model comparison/output/github/Hum-All-Rand-GS-Real-Med-/Node_Activity_lengend.pngbin0 -> 220028 bytes
-rw-r--r--Metrics/Metrics-Calculation/metrics_plot/model comparison/output/github/Hum-All-Rand-GS-Real-Med-/Node_Types.pngbin0 -> 259490 bytes
-rw-r--r--Metrics/Metrics-Calculation/metrics_plot/model comparison/output/github/Hum-All-Rand-GS-Real-Med-/Node_Types_lengend.pngbin0 -> 279286 bytes
-rw-r--r--Metrics/Metrics-Calculation/metrics_plot/model comparison/output/github/Hum-All-Rand-GS-Real-Med-/Out_Degree.pngbin0 -> 245269 bytes
-rw-r--r--Metrics/Metrics-Calculation/metrics_plot/model comparison/output/github/Hum-All-Rand-GS-Real-Med-/Out_Degree_lengend.pngbin0 -> 264147 bytes
-rw-r--r--Metrics/Metrics-Calculation/metrics_plot/model comparison/output/test/Hum-/TCC.pngbin0 -> 212431 bytes
-rw-r--r--Metrics/Metrics-Calculation/metrics_plot/model comparison/output/test/Hum-/TCC_lengend.pngbin0 -> 218167 bytes
-rw-r--r--Metrics/Metrics-Calculation/metrics_plot/model comparison/output/test/Hum-Rand-GS-Real-/TCC.pngbin0 -> 167662 bytes
-rw-r--r--Metrics/Metrics-Calculation/metrics_plot/model comparison/output/test/Hum-Rand-GS-Real-/TCC_lengend.pngbin0 -> 187842 bytes
-rw-r--r--Metrics/Metrics-Calculation/metrics_plot/model comparison/output/test/Hum-Real-/TCC.pngbin0 -> 132637 bytes
-rw-r--r--Metrics/Metrics-Calculation/metrics_plot/model comparison/output/test/Hum-Real-/TCC_lengend.pngbin0 -> 141912 bytes
-rw-r--r--Metrics/Metrics-Calculation/metrics_plot/model comparison/output/yakindu/Hum-All-Rand-GS-Real-Med-/MPC.pngbin0 -> 255461 bytes
-rw-r--r--Metrics/Metrics-Calculation/metrics_plot/model comparison/output/yakindu/Hum-All-Rand-GS-Real-Med-/MPC_lengend.pngbin0 -> 269454 bytes
-rw-r--r--Metrics/Metrics-Calculation/metrics_plot/model comparison/output/yakindu/Hum-All-Rand-GS-Real-Med-/Node_Activity.pngbin0 -> 206259 bytes
-rw-r--r--Metrics/Metrics-Calculation/metrics_plot/model comparison/output/yakindu/Hum-All-Rand-GS-Real-Med-/Node_Activity_lengend.pngbin0 -> 235800 bytes
-rw-r--r--Metrics/Metrics-Calculation/metrics_plot/model comparison/output/yakindu/Hum-All-Rand-GS-Real-Med-/Node_Types.pngbin0 -> 225675 bytes
-rw-r--r--Metrics/Metrics-Calculation/metrics_plot/model comparison/output/yakindu/Hum-All-Rand-GS-Real-Med-/Node_Types_lengend.pngbin0 -> 230053 bytes
-rw-r--r--Metrics/Metrics-Calculation/metrics_plot/model comparison/output/yakindu/Hum-All-Rand-GS-Real-Med-/Out_Degree.pngbin0 -> 198476 bytes
-rw-r--r--Metrics/Metrics-Calculation/metrics_plot/model comparison/output/yakindu/Hum-All-Rand-GS-Real-Med-/Out_Degree_lengend.pngbin0 -> 226169 bytes
-rw-r--r--Metrics/Metrics-Calculation/metrics_plot/model comparison/output/yakindu/Human-Alloy-BaseViatra-RealViatra-Random-rep-/MPC.pngbin230048 -> 0 bytes
-rw-r--r--Metrics/Metrics-Calculation/metrics_plot/model comparison/output/yakindu/Human-Alloy-BaseViatra-RealViatra-Random-rep-/MPC_lengend.pngbin277011 -> 0 bytes
-rw-r--r--Metrics/Metrics-Calculation/metrics_plot/model comparison/output/yakindu/Human-Alloy-BaseViatra-RealViatra-Random-rep-/Node Types.pngbin238149 -> 0 bytes
-rw-r--r--Metrics/Metrics-Calculation/metrics_plot/model comparison/output/yakindu/Human-Alloy-BaseViatra-RealViatra-Random-rep-/Node Types_lengend.pngbin259399 -> 0 bytes
-rw-r--r--Metrics/Metrics-Calculation/metrics_plot/model comparison/output/yakindu/Human-Alloy-BaseViatra-RealViatra-Random-rep-/Node_Activity.pngbin195069 -> 0 bytes
-rw-r--r--Metrics/Metrics-Calculation/metrics_plot/model comparison/output/yakindu/Human-Alloy-BaseViatra-RealViatra-Random-rep-/Node_Activity_lengend.pngbin238599 -> 0 bytes
-rw-r--r--Metrics/Metrics-Calculation/metrics_plot/model comparison/output/yakindu/Human-Alloy-BaseViatra-RealViatra-Random-rep-/Out_Degree.pngbin212885 -> 0 bytes
-rw-r--r--Metrics/Metrics-Calculation/metrics_plot/model comparison/output/yakindu/Human-Alloy-BaseViatra-RealViatra-Random-rep-/Out_Degree_lengend.pngbin237793 -> 0 bytes
-rw-r--r--Metrics/Metrics-Calculation/metrics_plot/model comparison/src/plot_ks_stats.py59
-rw-r--r--Metrics/Metrics-Calculation/metrics_plot/utils/GraphType.py8
-rw-r--r--Metrics/Metrics-Calculation/metrics_plot/utils/constants.py3
-rw-r--r--Metrics/Metrics-Calculation/metrics_plot/utils/readCSV.py6
114 files changed, 3208 insertions, 1422 deletions
diff --git a/Metrics/Metrics-Calculation/SocialNetwork_plugin/META-INF/MANIFEST.MF b/Metrics/Metrics-Calculation/SocialNetwork_plugin/META-INF/MANIFEST.MF
index 833b6fd8..6317c9fb 100644
--- a/Metrics/Metrics-Calculation/SocialNetwork_plugin/META-INF/MANIFEST.MF
+++ b/Metrics/Metrics-Calculation/SocialNetwork_plugin/META-INF/MANIFEST.MF
@@ -25,8 +25,8 @@ Require-Bundle: org.eclipse.viatra.query.runtime.rete,
25 org.junit;bundle-version="4.12.0", 25 org.junit;bundle-version="4.12.0",
26 org.eclipse.collections;bundle-version="9.2.0", 26 org.eclipse.collections;bundle-version="9.2.0",
27 hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph;bundle-version="1.0.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", 28 hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph.validation;bundle-version="0.0.1",
29 hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph.validation;bundle-version="0.0.1" 29 ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator;bundle-version="1.0.0"
30Bundle-RequiredExecutionEnvironment: JavaSE-1.8 30Bundle-RequiredExecutionEnvironment: JavaSE-1.8
31Bundle-ActivationPolicy: lazy 31Bundle-ActivationPolicy: lazy
32Main-Class: ca.mcgill.ecse.socialnetwork.runner.Main 32Main-Class: ca.mcgill.ecse.socialnetwork.runner.Main
diff --git a/Metrics/Metrics-Calculation/SocialNetwork_plugin/Measurement_Runner.launch b/Metrics/Metrics-Calculation/SocialNetwork_plugin/Measurement_Runner.launch
new file mode 100644
index 00000000..968580f5
--- /dev/null
+++ b/Metrics/Metrics-Calculation/SocialNetwork_plugin/Measurement_Runner.launch
@@ -0,0 +1,16 @@
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="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;sourceLookupDirector&gt;&#13;&#10;&lt;sourceContainers duplicates=&quot;false&quot;&gt;&#13;&#10;&lt;container memento=&quot;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;no&amp;quot;?&amp;gt;&amp;#13;&amp;#10;&amp;lt;javaProject name=&amp;quot;hu.bme.mit.inf.dslreasoner.viatra2logic&amp;quot;/&amp;gt;&amp;#13;&amp;#10;&quot; typeId=&quot;org.eclipse.jdt.launching.sourceContainer.javaProject&quot;/&gt;&#13;&#10;&lt;container memento=&quot;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;no&amp;quot;?&amp;gt;&amp;#13;&amp;#10;&amp;lt;javaProject name=&amp;quot;ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator&amp;quot;/&amp;gt;&amp;#13;&amp;#10;&quot; typeId=&quot;org.eclipse.jdt.launching.sourceContainer.javaProject&quot;/&gt;&#13;&#10;&lt;container memento=&quot;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;no&amp;quot;?&amp;gt;&amp;#13;&amp;#10;&amp;lt;directory nest=&amp;quot;false&amp;quot; path=&amp;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&amp;quot;/&amp;gt;&amp;#13;&amp;#10;&quot; typeId=&quot;org.eclipse.debug.core.containerType.directory&quot;/&gt;&#13;&#10;&lt;container memento=&quot;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;no&amp;quot;?&amp;gt;&amp;#13;&amp;#10;&amp;lt;directory nest=&amp;quot;false&amp;quot; path=&amp;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&amp;quot;/&amp;gt;&amp;#13;&amp;#10;&quot; typeId=&quot;org.eclipse.debug.core.containerType.directory&quot;/&gt;&#13;&#10;&lt;container memento=&quot;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;no&amp;quot;?&amp;gt;&amp;#13;&amp;#10;&amp;lt;directory nest=&amp;quot;false&amp;quot; path=&amp;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&amp;quot;/&amp;gt;&amp;#13;&amp;#10;&quot; typeId=&quot;org.eclipse.debug.core.containerType.directory&quot;/&gt;&#13;&#10;&lt;container memento=&quot;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;no&amp;quot;?&amp;gt;&amp;#13;&amp;#10;&amp;lt;default/&amp;gt;&amp;#13;&amp;#10;&quot; typeId=&quot;org.eclipse.debug.core.containerType.default&quot;/&gt;&#13;&#10;&lt;/sourceContainers&gt;&#13;&#10;&lt;/sourceLookupDirector&gt;&#13;&#10;"/>
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.PROGRAM_ARGUMENTS" value="github.vsconfig"/>
14<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="SocialNetwork_plugin"/>
15<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Xmx8G"/>
16</launchConfiguration>
diff --git a/Metrics/Metrics-Calculation/SocialNetwork_plugin/bin/.gitignore b/Metrics/Metrics-Calculation/SocialNetwork_plugin/bin/.gitignore
index 464c03f5..25056e9e 100644
--- a/Metrics/Metrics-Calculation/SocialNetwork_plugin/bin/.gitignore
+++ b/Metrics/Metrics-Calculation/SocialNetwork_plugin/bin/.gitignore
@@ -1,10 +1,2 @@
1/ca/ 1/ca/
2/constraints/
3/ecore.ecore
4/ecore/
5/queries/ 2/queries/
6/socialnetwork.aird
7/socialnetwork.ecore
8/socialnetwork.genmodel
9/socialnetwork/
10/statistics/
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/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/debug/errors.txt b/Metrics/Metrics-Calculation/SocialNetwork_plugin/debug/errors.txt
index fb05996a..27d00bd9 100644
--- a/Metrics/Metrics-Calculation/SocialNetwork_plugin/debug/errors.txt
+++ b/Metrics/Metrics-Calculation/SocialNetwork_plugin/debug/errors.txt
@@ -1,15 +1,13 @@
1Error occured (NullPointerException): 1Error occured (DiagnosticWrappedException): java.io.FileNotFoundException: C:\Users\chenp\eclipse-workspace\VIATRA-Generator\Metrics\Metrics-Calculation\SocialNetwork_plugin\inputs\github.xmi (The system cannot find the file specified)
2 hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicProblemBuilder.toTypeReference(LogicProblemBuilder.java:302) 2 org.eclipse.emf.ecore.resource.impl.ResourceSetImpl.handleDemandLoadException(ResourceSetImpl.java:319)
3 hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicProblemBuilder.lambda$11(LogicProblemBuilder.java:313) 3 org.eclipse.emf.ecore.resource.impl.ResourceSetImpl.demandLoadHelper(ResourceSetImpl.java:278)
4 org.eclipse.xtext.xbase.lib.ObjectExtensions.operator_doubleArrow(ObjectExtensions.java:139) 4 org.eclipse.xtext.resource.XtextResourceSet.getResource(XtextResourceSet.java:265)
5 hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicProblemBuilder.createVar(LogicProblemBuilder.java:315) 5 org.eclipse.xtext.resource.SynchronizedXtextResourceSet.getResource(SynchronizedXtextResourceSet.java:25)
6 hu.bme.mit.inf.dslreasoner.viatra2logic.Viatra2Logic.transformBody(Viatra2Logic.java:335) 6 hu.bme.mit.inf.dslreasoner.application.execution.ModelLoader.loadModel(ModelLoader.java:41)
7 hu.bme.mit.inf.dslreasoner.viatra2logic.Viatra2Logic.transformQuerySpecification(Viatra2Logic.java:237) 7 hu.bme.mit.inf.dslreasoner.application.execution.GenerationTaskExecutor.executeGenerationTask(GenerationTaskExecutor.java:174)
8 hu.bme.mit.inf.dslreasoner.viatra2logic.Viatra2Logic.transformQueries(Viatra2Logic.java:149) 8 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor._execute(ScriptExecutor.java:137)
9 hu.bme.mit.inf.dslreasoner.application.execution.GenerationTaskExecutor.executeGenerationTask(GenerationTaskExecutor.java:196) 9 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor.execute(ScriptExecutor.java:346)
10 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor._execute(ScriptExecutor.java:129) 10 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor.executeScript(ScriptExecutor.java:115)
11 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor.execute(ScriptExecutor.java:338)
12 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor.executeScript(ScriptExecutor.java:110)
13 hu.bme.mit.inf.dslreasoner.application.execution.StandaloneScriptExecutor.executeScript(StandaloneScriptExecutor.java:149) 11 hu.bme.mit.inf.dslreasoner.application.execution.StandaloneScriptExecutor.executeScript(StandaloneScriptExecutor.java:149)
14 ca.mcgill.ecse.socialnetwork.runner.Main.runWithPath(Main.java:25) 12 ca.mcgill.ecse.socialnetwork.runner.Main.runWithPath(Main.java:25)
15 ca.mcgill.ecse.socialnetwork.runner.Main.main(Main.java:38) 13 ca.mcgill.ecse.socialnetwork.runner.Main.main(Main.java:38)
diff --git a/Metrics/Metrics-Calculation/SocialNetwork_plugin/ecore.vsconfig b/Metrics/Metrics-Calculation/SocialNetwork_plugin/ecore.vsconfig
index ff9155a4..e63095e1 100644
--- a/Metrics/Metrics-Calculation/SocialNetwork_plugin/ecore.vsconfig
+++ b/Metrics/Metrics-Calculation/SocialNetwork_plugin/ecore.vsconfig
@@ -1,6 +1,7 @@
1import viatra "./queries/queries/Ecore.vql" 1import viatra "./queries/queries/Ecore.vql"
2import epackage "http://www.eclipse.org/emf/2002/Ecore" 2import epackage "http://www.eclipse.org/emf/2002/Ecore"
3 3
4// Copy this for different model sizes
4generate { 5generate {
5 metamodel = {package ecore excluding{EClassifier.instanceClass, EClassifier.defaultValue, 6 metamodel = {package ecore excluding{EClassifier.instanceClass, EClassifier.defaultValue,
6 EEnumLiteral.instance, EStructuralFeature.defaultValue, EStructuralFeature.changeable, 7 EEnumLiteral.instance, EStructuralFeature.defaultValue, EStructuralFeature.changeable,
@@ -27,20 +28,23 @@ generate {
27 28
28 solver = ViatraSolver 29 solver = ViatraSolver
29 30
31 //median run time
30 scope = { 32 scope = {
31 #node = 100 33 #node = 10 // (warm-up: 10) 30, 50, 80, 100, 120 ....
32 } 34 }
33 35
34 number = 1 36 number = 1
35 runs = 30 37 runs = 5
36 config = { 38 config = {
37 log-level = none, 39 log-level = none,
38 "optional-wf" = "true", 40 runtime = 300, // the runtime is in seconds, want to set is to 5 mins
41 "optional-wf" = "false",
39 "realistic-guidance" = "Composite", 42 "realistic-guidance" = "Composite",
40 "allow-must-violations" = "true", 43 "allow-must-violations" = "false",
41 "domain" = "Ecore" 44 "domain" = "Ecore"
42 } 45 }
43 46
44 debug = "debug" 47 debug = "debug"
45 output = "output/Ecore/" 48 statistics = "statistics/Ecore/warmup.csv" //give different set up different filenames
46} \ No newline at end of file 49 output = "output/Ecore/run_time/"
50}
diff --git a/Metrics/Metrics-Calculation/SocialNetwork_plugin/github.vsconfig b/Metrics/Metrics-Calculation/SocialNetwork_plugin/github.vsconfig
new file mode 100644
index 00000000..1e1ee05a
--- /dev/null
+++ b/Metrics/Metrics-Calculation/SocialNetwork_plugin/github.vsconfig
@@ -0,0 +1,212 @@
1import epackage "../../../Domains/github-graph/model/github.ecore"
2import viatra "../../../Domains/github-graph/queries/queries/github.vql"
3
4generate {
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 = 10
16 }
17
18 number = 1
19 runs = 5
20 config = {
21 log-level = none,
22 runtime = 300,
23 "optional-wf" = "true",
24 "realistic-guidance" = "Composite",
25 "allow-must-violations" = "true",
26 "domain" = "Github"
27 }
28
29 debug = "debug"
30 statistics = "statistics/Github/warmup.csv"
31 output = "output/Github/Composite"
32}
33
34generate {
35 metamodel = {package github excluding{ Project.creatd_at, Project.updated_at, Project.url, User.name, User.url,
36 Commit.created_at, Commit.sha, Commit.parents_sha, Issue.created_at, Issue.url, PullRequest.url, IssueEvent.created_at,
37 IssueEvent.actor_url, Action, IssueEvent.action, Project.deleted}}
38 partial-model = { "inputs/github.xmi"}
39 constraints = { package queries }
40
41
42 solver = ViatraSolver
43
44 scope = {
45 #node = 30
46 }
47
48 number = 1
49 runs = 20
50 config = {
51 log-level = none,
52 runtime = 300,
53 "optional-wf" = "true",
54 "realistic-guidance" = "Composite",
55 "allow-must-violations" = "true",
56 "domain" = "Github"
57 }
58
59 debug = "debug"
60 statistics = "statistics/Github/30.csv"
61 output = "output/Github/Composite"
62}
63
64generate {
65 metamodel = {package github excluding{ Project.creatd_at, Project.updated_at, Project.url, User.name, User.url,
66 Commit.created_at, Commit.sha, Commit.parents_sha, Issue.created_at, Issue.url, PullRequest.url, IssueEvent.created_at,
67 IssueEvent.actor_url, Action, IssueEvent.action, Project.deleted}}
68 partial-model = { "inputs/github.xmi"}
69 constraints = { package queries }
70
71
72 solver = ViatraSolver
73
74 scope = {
75 #node = 50
76 }
77
78 number = 1
79 runs = 20
80 config = {
81 log-level = none,
82 runtime = 300,
83 "optional-wf" = "true",
84 "realistic-guidance" = "Composite",
85 "allow-must-violations" = "true",
86 "domain" = "Github"
87 }
88
89 debug = "debug"
90 statistics = "statistics/Github/50.csv"
91 output = "output/Github/Composite"
92}
93
94generate {
95 metamodel = {package github excluding{ Project.creatd_at, Project.updated_at, Project.url, User.name, User.url,
96 Commit.created_at, Commit.sha, Commit.parents_sha, Issue.created_at, Issue.url, PullRequest.url, IssueEvent.created_at,
97 IssueEvent.actor_url, Action, IssueEvent.action, Project.deleted}}
98 partial-model = { "inputs/github.xmi"}
99 constraints = { package queries }
100
101
102 solver = ViatraSolver
103
104 scope = {
105 #node = 80
106 }
107
108 number = 1
109 runs = 20
110 config = {
111 log-level = none,
112 runtime = 300,
113 "optional-wf" = "true",
114 "realistic-guidance" = "Composite",
115 "allow-must-violations" = "true",
116 "domain" = "Github"
117 }
118
119 debug = "debug"
120 statistics = "statistics/Github/80.csv"
121 output = "output/Github/Composite"
122}
123
124generate {
125 metamodel = {package github excluding{ Project.creatd_at, Project.updated_at, Project.url, User.name, User.url,
126 Commit.created_at, Commit.sha, Commit.parents_sha, Issue.created_at, Issue.url, PullRequest.url, IssueEvent.created_at,
127 IssueEvent.actor_url, Action, IssueEvent.action, Project.deleted}}
128 partial-model = { "inputs/github.xmi"}
129 constraints = { package queries }
130
131
132 solver = ViatraSolver
133
134 scope = {
135 #node = 100
136 }
137
138 number = 1
139 runs = 20
140 config = {
141 log-level = none,
142 runtime = 300,
143 "optional-wf" = "true",
144 "realistic-guidance" = "Composite",
145 "allow-must-violations" = "true",
146 "domain" = "Github"
147 }
148
149 debug = "debug"
150 statistics = "statistics/Github/100.csv"
151 output = "output/Github/Composite"
152}
153
154generate {
155 metamodel = {package github excluding{ Project.creatd_at, Project.updated_at, Project.url, User.name, User.url,
156 Commit.created_at, Commit.sha, Commit.parents_sha, Issue.created_at, Issue.url, PullRequest.url, IssueEvent.created_at,
157 IssueEvent.actor_url, Action, IssueEvent.action, Project.deleted}}
158 partial-model = { "inputs/github.xmi"}
159 constraints = { package queries }
160
161
162 solver = ViatraSolver
163
164 scope = {
165 #node = 120
166 }
167
168 number = 1
169 runs = 20
170 config = {
171 log-level = none,
172 runtime = 300,
173 "optional-wf" = "true",
174 "realistic-guidance" = "Composite",
175 "allow-must-violations" = "true",
176 "domain" = "Github"
177 }
178
179 debug = "debug"
180 statistics = "statistics/Github/120.csv"
181 output = "output/Github/Composite"
182}
183
184generate {
185 metamodel = {package github excluding{ Project.creatd_at, Project.updated_at, Project.url, User.name, User.url,
186 Commit.created_at, Commit.sha, Commit.parents_sha, Issue.created_at, Issue.url, PullRequest.url, IssueEvent.created_at,
187 IssueEvent.actor_url, Action, IssueEvent.action, Project.deleted}}
188 partial-model = { "inputs/github.xmi"}
189 constraints = { package queries }
190
191
192 solver = ViatraSolver
193
194 scope = {
195 #node = 140
196 }
197
198 number = 1
199 runs = 20
200 config = {
201 log-level = none,
202 runtime = 300,
203 "optional-wf" = "true",
204 "realistic-guidance" = "Composite",
205 "allow-must-violations" = "true",
206 "domain" = "Github"
207 }
208
209 debug = "debug"
210 statistics = "statistics/Github/140.csv"
211 output = "output/Github/Composite"
212} \ No newline at end of file
diff --git a/Metrics/Metrics-Calculation/SocialNetwork_plugin/inputs/.gitignore b/Metrics/Metrics-Calculation/SocialNetwork_plugin/inputs/.gitignore
deleted file mode 100644
index 17126b28..00000000
--- a/Metrics/Metrics-Calculation/SocialNetwork_plugin/inputs/.gitignore
+++ /dev/null
@@ -1,4 +0,0 @@
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/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/output.txt b/Metrics/Metrics-Calculation/SocialNetwork_plugin/output.txt
deleted file mode 100644
index f027494d..00000000
--- a/Metrics/Metrics-Calculation/SocialNetwork_plugin/output.txt
+++ /dev/null
@@ -1,9 +0,0 @@
11
23
31
43
53
65
73
81
92
diff --git a/Metrics/Metrics-Calculation/SocialNetwork_plugin/plugin.xml b/Metrics/Metrics-Calculation/SocialNetwork_plugin/plugin.xml
index 269d4b7b..86211808 100644
--- a/Metrics/Metrics-Calculation/SocialNetwork_plugin/plugin.xml
+++ b/Metrics/Metrics-Calculation/SocialNetwork_plugin/plugin.xml
@@ -4,6 +4,14 @@
4 <!-- @generated socialnetwork --> 4 <!-- @generated socialnetwork -->
5 <package class="socialnetwork.SocialnetworkPackage" genModel="model/socialnetwork.genmodel" uri="http://ecse.mcgill.ca/socialnetwork"/> 5 <package class="socialnetwork.SocialnetworkPackage" genModel="model/socialnetwork.genmodel" uri="http://ecse.mcgill.ca/socialnetwork"/>
6 </extension> 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>
7 <extension id="queries.Ecore" point="org.eclipse.viatra.query.runtime.queryspecification"> 15 <extension id="queries.Ecore" point="org.eclipse.viatra.query.runtime.queryspecification">
8 <group group="org.eclipse.viatra.query.runtime.extensibility.SingletonExtensionFactory:queries.Ecore" id="queries.Ecore"> 16 <group group="org.eclipse.viatra.query.runtime.extensibility.SingletonExtensionFactory:queries.Ecore" id="queries.Ecore">
9 <query-specification fqn="queries.directSupertype"/> 17 <query-specification fqn="queries.directSupertype"/>
@@ -12,7 +20,6 @@
12 <query-specification fqn="queries.oppositeDifferentClass"/> 20 <query-specification fqn="queries.oppositeDifferentClass"/>
13 <query-specification fqn="queries.nonSymmetricOpposite"/> 21 <query-specification fqn="queries.nonSymmetricOpposite"/>
14 <query-specification fqn="queries.superTypes"/> 22 <query-specification fqn="queries.superTypes"/>
15 <query-specification fqn="queries.moreThenFiveSuperTypes"/>
16 </group> 23 </group>
17 </extension> 24 </extension>
18</plugin> 25</plugin>
diff --git a/Metrics/Metrics-Calculation/SocialNetwork_plugin/src-gen/queries/Ecore.java b/Metrics/Metrics-Calculation/SocialNetwork_plugin/src-gen/queries/Ecore.java
index ebafb74b..adfa5cf8 100644
--- a/Metrics/Metrics-Calculation/SocialNetwork_plugin/src-gen/queries/Ecore.java
+++ b/Metrics/Metrics-Calculation/SocialNetwork_plugin/src-gen/queries/Ecore.java
@@ -7,7 +7,6 @@ import org.eclipse.viatra.query.runtime.api.ViatraQueryEngine;
7import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedPatternGroup; 7import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedPatternGroup;
8import queries.DirectSupertype; 8import queries.DirectSupertype;
9import queries.LoopInInheritence; 9import queries.LoopInInheritence;
10import queries.MoreThenFiveSuperTypes;
11import queries.NonSymmetricOpposite; 10import queries.NonSymmetricOpposite;
12import queries.Opposite; 11import queries.Opposite;
13import queries.OppositeDifferentClass; 12import queries.OppositeDifferentClass;
@@ -27,7 +26,6 @@ import queries.SuperTypes;
27 * <li>oppositeDifferentClass</li> 26 * <li>oppositeDifferentClass</li>
28 * <li>nonSymmetricOpposite</li> 27 * <li>nonSymmetricOpposite</li>
29 * <li>superTypes</li> 28 * <li>superTypes</li>
30 * <li>moreThenFiveSuperTypes</li>
31 * </ul> 29 * </ul>
32 * 30 *
33 * @see IQueryGroup 31 * @see IQueryGroup
@@ -58,7 +56,6 @@ public final class Ecore extends BaseGeneratedPatternGroup {
58 querySpecifications.add(OppositeDifferentClass.instance()); 56 querySpecifications.add(OppositeDifferentClass.instance());
59 querySpecifications.add(NonSymmetricOpposite.instance()); 57 querySpecifications.add(NonSymmetricOpposite.instance());
60 querySpecifications.add(SuperTypes.instance()); 58 querySpecifications.add(SuperTypes.instance());
61 querySpecifications.add(MoreThenFiveSuperTypes.instance());
62 } 59 }
63 60
64 public DirectSupertype getDirectSupertype() { 61 public DirectSupertype getDirectSupertype() {
@@ -108,12 +105,4 @@ public final class Ecore extends BaseGeneratedPatternGroup {
108 public SuperTypes.Matcher getSuperTypes(final ViatraQueryEngine engine) { 105 public SuperTypes.Matcher getSuperTypes(final ViatraQueryEngine engine) {
109 return SuperTypes.Matcher.on(engine); 106 return SuperTypes.Matcher.on(engine);
110 } 107 }
111
112 public MoreThenFiveSuperTypes getMoreThenFiveSuperTypes() {
113 return MoreThenFiveSuperTypes.instance();
114 }
115
116 public MoreThenFiveSuperTypes.Matcher getMoreThenFiveSuperTypes(final ViatraQueryEngine engine) {
117 return MoreThenFiveSuperTypes.Matcher.on(engine);
118 }
119} 108}
diff --git a/Metrics/Metrics-Calculation/SocialNetwork_plugin/src-gen/queries/MoreThenFiveSuperTypes.java b/Metrics/Metrics-Calculation/SocialNetwork_plugin/src-gen/queries/MoreThenFiveSuperTypes.java
deleted file mode 100644
index 867ffd01..00000000
--- a/Metrics/Metrics-Calculation/SocialNetwork_plugin/src-gen/queries/MoreThenFiveSuperTypes.java
+++ /dev/null
@@ -1,611 +0,0 @@
1/**
2 * Generated from platform:/resource/SocialNetwork_plugin/queries/queries/Ecore.vql
3 */
4package queries;
5
6import java.util.Arrays;
7import java.util.Collection;
8import java.util.LinkedHashSet;
9import java.util.List;
10import java.util.Objects;
11import java.util.Optional;
12import java.util.Set;
13import java.util.function.Consumer;
14import java.util.stream.Collectors;
15import java.util.stream.Stream;
16import org.apache.log4j.Logger;
17import org.eclipse.emf.ecore.EClass;
18import org.eclipse.viatra.query.runtime.api.IPatternMatch;
19import org.eclipse.viatra.query.runtime.api.IQuerySpecification;
20import org.eclipse.viatra.query.runtime.api.ViatraQueryEngine;
21import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFPQuery;
22import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFQuerySpecification;
23import org.eclipse.viatra.query.runtime.api.impl.BaseMatcher;
24import org.eclipse.viatra.query.runtime.api.impl.BasePatternMatch;
25import org.eclipse.viatra.query.runtime.emf.types.EClassTransitiveInstancesKey;
26import org.eclipse.viatra.query.runtime.matchers.backend.QueryEvaluationHint;
27import org.eclipse.viatra.query.runtime.matchers.psystem.PBody;
28import org.eclipse.viatra.query.runtime.matchers.psystem.PVariable;
29import org.eclipse.viatra.query.runtime.matchers.psystem.annotations.PAnnotation;
30import org.eclipse.viatra.query.runtime.matchers.psystem.annotations.ParameterReference;
31import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.ExportedParameter;
32import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.Inequality;
33import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.PositivePatternCall;
34import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.TypeConstraint;
35import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameter;
36import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameterDirection;
37import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PVisibility;
38import org.eclipse.viatra.query.runtime.matchers.tuple.Tuple;
39import org.eclipse.viatra.query.runtime.matchers.tuple.Tuples;
40import org.eclipse.viatra.query.runtime.util.ViatraQueryLoggingUtil;
41import queries.SuperTypes;
42
43/**
44 * A pattern-specific query specification that can instantiate Matcher in a type-safe way.
45 *
46 * <p>Original source:
47 * <code><pre>
48 * {@literal @}Constraint(severity="error", message="error", key = {c})
49 * pattern moreThenFiveSuperTypes(c: EClass){
50 * find superTypes(c1, s1);
51 * find superTypes(c1, s2);
52 * find superTypes(c1, s3);
53 * find superTypes(c1, s4);
54 * find superTypes(c1, s5);
55 * s1 != s2;
56 * s1 != s3;
57 * s1 != s4;
58 * s1 != s5;
59 * s2 != s3;
60 * s2 != s4;
61 * s2 != s5;
62 * s3 != s4;
63 * s3 != s5;
64 * s4 != s5;
65 * }
66 * </pre></code>
67 *
68 * @see Matcher
69 * @see Match
70 *
71 */
72@SuppressWarnings("all")
73public final class MoreThenFiveSuperTypes extends BaseGeneratedEMFQuerySpecification<MoreThenFiveSuperTypes.Matcher> {
74 /**
75 * Pattern-specific match representation of the queries.moreThenFiveSuperTypes pattern,
76 * to be used in conjunction with {@link Matcher}.
77 *
78 * <p>Class fields correspond to parameters of the pattern. Fields with value null are considered unassigned.
79 * Each instance is a (possibly partial) substitution of pattern parameters,
80 * usable to represent a match of the pattern in the result of a query,
81 * or to specify the bound (fixed) input parameters when issuing a query.
82 *
83 * @see Matcher
84 *
85 */
86 public static abstract class Match extends BasePatternMatch {
87 private EClass fC;
88
89 private static List<String> parameterNames = makeImmutableList("c");
90
91 private Match(final EClass pC) {
92 this.fC = pC;
93 }
94
95 @Override
96 public Object get(final String parameterName) {
97 if ("c".equals(parameterName)) return this.fC;
98 return null;
99 }
100
101 public EClass getC() {
102 return this.fC;
103 }
104
105 @Override
106 public boolean set(final String parameterName, final Object newValue) {
107 if (!isMutable()) throw new java.lang.UnsupportedOperationException();
108 if ("c".equals(parameterName) ) {
109 this.fC = (EClass) newValue;
110 return true;
111 }
112 return false;
113 }
114
115 public void setC(final EClass pC) {
116 if (!isMutable()) throw new java.lang.UnsupportedOperationException();
117 this.fC = pC;
118 }
119
120 @Override
121 public String patternName() {
122 return "queries.moreThenFiveSuperTypes";
123 }
124
125 @Override
126 public List<String> parameterNames() {
127 return MoreThenFiveSuperTypes.Match.parameterNames;
128 }
129
130 @Override
131 public Object[] toArray() {
132 return new Object[]{fC};
133 }
134
135 @Override
136 public MoreThenFiveSuperTypes.Match toImmutable() {
137 return isMutable() ? newMatch(fC) : this;
138 }
139
140 @Override
141 public String prettyPrint() {
142 StringBuilder result = new StringBuilder();
143 result.append("\"c\"=" + prettyPrintValue(fC));
144 return result.toString();
145 }
146
147 @Override
148 public int hashCode() {
149 return Objects.hash(fC);
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 MoreThenFiveSuperTypes.Match)) {
160 MoreThenFiveSuperTypes.Match other = (MoreThenFiveSuperTypes.Match) obj;
161 return Objects.equals(fC, other.fC);
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 MoreThenFiveSuperTypes specification() {
174 return MoreThenFiveSuperTypes.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 MoreThenFiveSuperTypes.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 pC the fixed value of pattern parameter c, or null if not bound.
193 * @return the new, mutable (partial) match object.
194 *
195 */
196 public static MoreThenFiveSuperTypes.Match newMutableMatch(final EClass pC) {
197 return new Mutable(pC);
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 pC the fixed value of pattern parameter c, or null if not bound.
205 * @return the (partial) match object.
206 *
207 */
208 public static MoreThenFiveSuperTypes.Match newMatch(final EClass pC) {
209 return new Immutable(pC);
210 }
211
212 private static final class Mutable extends MoreThenFiveSuperTypes.Match {
213 Mutable(final EClass pC) {
214 super(pC);
215 }
216
217 @Override
218 public boolean isMutable() {
219 return true;
220 }
221 }
222
223 private static final class Immutable extends MoreThenFiveSuperTypes.Match {
224 Immutable(final EClass pC) {
225 super(pC);
226 }
227
228 @Override
229 public boolean isMutable() {
230 return false;
231 }
232 }
233 }
234
235 /**
236 * Generated pattern matcher API of the queries.moreThenFiveSuperTypes 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(severity="error", message="error", key = {c})
247 * pattern moreThenFiveSuperTypes(c: EClass){
248 * find superTypes(c1, s1);
249 * find superTypes(c1, s2);
250 * find superTypes(c1, s3);
251 * find superTypes(c1, s4);
252 * find superTypes(c1, s5);
253 * s1 != s2;
254 * s1 != s3;
255 * s1 != s4;
256 * s1 != s5;
257 * s2 != s3;
258 * s2 != s4;
259 * s2 != s5;
260 * s3 != s4;
261 * s3 != s5;
262 * s4 != s5;
263 * }
264 * </pre></code>
265 *
266 * @see Match
267 * @see MoreThenFiveSuperTypes
268 *
269 */
270 public static class Matcher extends BaseMatcher<MoreThenFiveSuperTypes.Match> {
271 /**
272 * Initializes the pattern matcher within an existing VIATRA Query engine.
273 * If the pattern matcher is already constructed in the engine, only a light-weight reference is returned.
274 *
275 * @param engine the existing VIATRA Query engine in which this matcher will be created.
276 * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation
277 *
278 */
279 public static MoreThenFiveSuperTypes.Matcher on(final ViatraQueryEngine engine) {
280 // check if matcher already exists
281 Matcher matcher = engine.getExistingMatcher(querySpecification());
282 if (matcher == null) {
283 matcher = (Matcher)engine.getMatcher(querySpecification());
284 }
285 return matcher;
286 }
287
288 /**
289 * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation
290 * @return an initialized matcher
291 * @noreference This method is for internal matcher initialization by the framework, do not call it manually.
292 *
293 */
294 public static MoreThenFiveSuperTypes.Matcher create() {
295 return new Matcher();
296 }
297
298 private static final int POSITION_C = 0;
299
300 private static final Logger LOGGER = ViatraQueryLoggingUtil.getLogger(MoreThenFiveSuperTypes.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 pC the fixed value of pattern parameter c, or null if not bound.
317 * @return matches represented as a Match object.
318 *
319 */
320 public Collection<MoreThenFiveSuperTypes.Match> getAllMatches(final EClass pC) {
321 return rawStreamAllMatches(new Object[]{pC}).collect(Collectors.toSet());
322 }
323
324 /**
325 * Returns a stream of all matches of the pattern that conform to the given fixed values of some parameters.
326 * </p>
327 * <strong>NOTE</strong>: It is important not to modify the source model while the stream is being processed.
328 * If the match set of the pattern changes during processing, the contents of the stream is <strong>undefined</strong>.
329 * In such cases, either rely on {@link #getAllMatches()} or collect the results of the stream in end-user code.
330 * @param pC the fixed value of pattern parameter c, or null if not bound.
331 * @return a stream of matches represented as a Match object.
332 *
333 */
334 public Stream<MoreThenFiveSuperTypes.Match> streamAllMatches(final EClass pC) {
335 return rawStreamAllMatches(new Object[]{pC});
336 }
337
338 /**
339 * Returns an arbitrarily chosen match of the pattern that conforms to the given fixed values of some parameters.
340 * Neither determinism nor randomness of selection is guaranteed.
341 * @param pC the fixed value of pattern parameter c, or null if not bound.
342 * @return a match represented as a Match object, or null if no match is found.
343 *
344 */
345 public Optional<MoreThenFiveSuperTypes.Match> getOneArbitraryMatch(final EClass pC) {
346 return rawGetOneArbitraryMatch(new Object[]{pC});
347 }
348
349 /**
350 * Indicates whether the given combination of specified pattern parameters constitute a valid pattern match,
351 * under any possible substitution of the unspecified parameters (if any).
352 * @param pC the fixed value of pattern parameter c, or null if not bound.
353 * @return true if the input is a valid (partial) match of the pattern.
354 *
355 */
356 public boolean hasMatch(final EClass pC) {
357 return rawHasMatch(new Object[]{pC});
358 }
359
360 /**
361 * Returns the number of all matches of the pattern that conform to the given fixed values of some parameters.
362 * @param pC the fixed value of pattern parameter c, or null if not bound.
363 * @return the number of pattern matches found.
364 *
365 */
366 public int countMatches(final EClass pC) {
367 return rawCountMatches(new Object[]{pC});
368 }
369
370 /**
371 * Executes the given processor on an arbitrarily chosen match of the pattern that conforms to the given fixed values of some parameters.
372 * Neither determinism nor randomness of selection is guaranteed.
373 * @param pC the fixed value of pattern parameter c, or null if not bound.
374 * @param processor the action that will process the selected match.
375 * @return true if the pattern has at least one match with the given parameter values, false if the processor was not invoked
376 *
377 */
378 public boolean forOneArbitraryMatch(final EClass pC, final Consumer<? super MoreThenFiveSuperTypes.Match> processor) {
379 return rawForOneArbitraryMatch(new Object[]{pC}, processor);
380 }
381
382 /**
383 * Returns a new (partial) match.
384 * This can be used e.g. to call the matcher with a partial match.
385 * <p>The returned match will be immutable. Use {@link #newEmptyMatch()} to obtain a mutable match object.
386 * @param pC the fixed value of pattern parameter c, or null if not bound.
387 * @return the (partial) match object.
388 *
389 */
390 public MoreThenFiveSuperTypes.Match newMatch(final EClass pC) {
391 return MoreThenFiveSuperTypes.Match.newMatch(pC);
392 }
393
394 /**
395 * Retrieve the set of values that occur in matches for c.
396 * @return the Set of all values or empty set if there are no matches
397 *
398 */
399 protected Stream<EClass> rawStreamAllValuesOfc(final Object[] parameters) {
400 return rawStreamAllValues(POSITION_C, parameters).map(EClass.class::cast);
401 }
402
403 /**
404 * Retrieve the set of values that occur in matches for c.
405 * @return the Set of all values or empty set if there are no matches
406 *
407 */
408 public Set<EClass> getAllValuesOfc() {
409 return rawStreamAllValuesOfc(emptyArray()).collect(Collectors.toSet());
410 }
411
412 /**
413 * Retrieve the set of values that occur in matches for c.
414 * @return the Set of all values or empty set if there are no matches
415 *
416 */
417 public Stream<EClass> streamAllValuesOfc() {
418 return rawStreamAllValuesOfc(emptyArray());
419 }
420
421 @Override
422 protected MoreThenFiveSuperTypes.Match tupleToMatch(final Tuple t) {
423 try {
424 return MoreThenFiveSuperTypes.Match.newMatch((EClass) t.get(POSITION_C));
425 } catch(ClassCastException e) {
426 LOGGER.error("Element(s) in tuple not properly typed!",e);
427 return null;
428 }
429 }
430
431 @Override
432 protected MoreThenFiveSuperTypes.Match arrayToMatch(final Object[] match) {
433 try {
434 return MoreThenFiveSuperTypes.Match.newMatch((EClass) match[POSITION_C]);
435 } catch(ClassCastException e) {
436 LOGGER.error("Element(s) in array not properly typed!",e);
437 return null;
438 }
439 }
440
441 @Override
442 protected MoreThenFiveSuperTypes.Match arrayToMatchMutable(final Object[] match) {
443 try {
444 return MoreThenFiveSuperTypes.Match.newMutableMatch((EClass) match[POSITION_C]);
445 } catch(ClassCastException e) {
446 LOGGER.error("Element(s) in array not properly typed!",e);
447 return null;
448 }
449 }
450
451 /**
452 * @return the singleton instance of the query specification of this pattern
453 * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded
454 *
455 */
456 public static IQuerySpecification<MoreThenFiveSuperTypes.Matcher> querySpecification() {
457 return MoreThenFiveSuperTypes.instance();
458 }
459 }
460
461 private MoreThenFiveSuperTypes() {
462 super(GeneratedPQuery.INSTANCE);
463 }
464
465 /**
466 * @return the singleton instance of the query specification
467 * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded
468 *
469 */
470 public static MoreThenFiveSuperTypes instance() {
471 try{
472 return LazyHolder.INSTANCE;
473 } catch (ExceptionInInitializerError err) {
474 throw processInitializerError(err);
475 }
476 }
477
478 @Override
479 protected MoreThenFiveSuperTypes.Matcher instantiate(final ViatraQueryEngine engine) {
480 return MoreThenFiveSuperTypes.Matcher.on(engine);
481 }
482
483 @Override
484 public MoreThenFiveSuperTypes.Matcher instantiate() {
485 return MoreThenFiveSuperTypes.Matcher.create();
486 }
487
488 @Override
489 public MoreThenFiveSuperTypes.Match newEmptyMatch() {
490 return MoreThenFiveSuperTypes.Match.newEmptyMatch();
491 }
492
493 @Override
494 public MoreThenFiveSuperTypes.Match newMatch(final Object... parameters) {
495 return MoreThenFiveSuperTypes.Match.newMatch((org.eclipse.emf.ecore.EClass) parameters[0]);
496 }
497
498 /**
499 * Inner class allowing the singleton instance of {@link JvmGenericType: queries.MoreThenFiveSuperTypes (visibility: PUBLIC, simpleName: MoreThenFiveSuperTypes, identifier: queries.MoreThenFiveSuperTypes, deprecated: <unset>) (abstract: false, static: false, final: true, packageName: queries) (interface: false, strictFloatingPoint: false, anonymous: false)} to be created
500 * <b>not</b> at the class load time of the outer class,
501 * but rather at the first call to {@link JvmGenericType: queries.MoreThenFiveSuperTypes (visibility: PUBLIC, simpleName: MoreThenFiveSuperTypes, identifier: queries.MoreThenFiveSuperTypes, deprecated: <unset>) (abstract: false, static: false, final: true, packageName: queries) (interface: false, strictFloatingPoint: false, anonymous: false)#instance()}.
502 *
503 * <p> This workaround is required e.g. to support recursion.
504 *
505 */
506 private static class LazyHolder {
507 private static final MoreThenFiveSuperTypes INSTANCE = new MoreThenFiveSuperTypes();
508
509 /**
510 * Statically initializes the query specification <b>after</b> the field {@link #INSTANCE} is assigned.
511 * This initialization order is required to support indirect recursion.
512 *
513 * <p> The static initializer is defined using a helper field to work around limitations of the code generator.
514 *
515 */
516 private static final Object STATIC_INITIALIZER = ensureInitialized();
517
518 public static Object ensureInitialized() {
519 INSTANCE.ensureInitializedInternal();
520 return null;
521 }
522 }
523
524 private static class GeneratedPQuery extends BaseGeneratedEMFPQuery {
525 private static final MoreThenFiveSuperTypes.GeneratedPQuery INSTANCE = new GeneratedPQuery();
526
527 private final PParameter parameter_c = new PParameter("c", "org.eclipse.emf.ecore.EClass", new EClassTransitiveInstancesKey((EClass)getClassifierLiteralSafe("http://www.eclipse.org/emf/2002/Ecore", "EClass")), PParameterDirection.INOUT);
528
529 private final List<PParameter> parameters = Arrays.asList(parameter_c);
530
531 private GeneratedPQuery() {
532 super(PVisibility.PUBLIC);
533 }
534
535 @Override
536 public String getFullyQualifiedName() {
537 return "queries.moreThenFiveSuperTypes";
538 }
539
540 @Override
541 public List<String> getParameterNames() {
542 return Arrays.asList("c");
543 }
544
545 @Override
546 public List<PParameter> getParameters() {
547 return parameters;
548 }
549
550 @Override
551 public Set<PBody> doGetContainedBodies() {
552 setEvaluationHints(new QueryEvaluationHint(null, QueryEvaluationHint.BackendRequirement.UNSPECIFIED));
553 Set<PBody> bodies = new LinkedHashSet<>();
554 {
555 PBody body = new PBody(this);
556 PVariable var_c = body.getOrCreateVariableByName("c");
557 PVariable var_c1 = body.getOrCreateVariableByName("c1");
558 PVariable var_s1 = body.getOrCreateVariableByName("s1");
559 PVariable var_s2 = body.getOrCreateVariableByName("s2");
560 PVariable var_s3 = body.getOrCreateVariableByName("s3");
561 PVariable var_s4 = body.getOrCreateVariableByName("s4");
562 PVariable var_s5 = body.getOrCreateVariableByName("s5");
563 new TypeConstraint(body, Tuples.flatTupleOf(var_c), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.eclipse.org/emf/2002/Ecore", "EClass")));
564 body.setSymbolicParameters(Arrays.<ExportedParameter>asList(
565 new ExportedParameter(body, var_c, parameter_c)
566 ));
567 // find superTypes(c1, s1)
568 new PositivePatternCall(body, Tuples.flatTupleOf(var_c1, var_s1), SuperTypes.instance().getInternalQueryRepresentation());
569 // find superTypes(c1, s2)
570 new PositivePatternCall(body, Tuples.flatTupleOf(var_c1, var_s2), SuperTypes.instance().getInternalQueryRepresentation());
571 // find superTypes(c1, s3)
572 new PositivePatternCall(body, Tuples.flatTupleOf(var_c1, var_s3), SuperTypes.instance().getInternalQueryRepresentation());
573 // find superTypes(c1, s4)
574 new PositivePatternCall(body, Tuples.flatTupleOf(var_c1, var_s4), SuperTypes.instance().getInternalQueryRepresentation());
575 // find superTypes(c1, s5)
576 new PositivePatternCall(body, Tuples.flatTupleOf(var_c1, var_s5), SuperTypes.instance().getInternalQueryRepresentation());
577 // s1 != s2
578 new Inequality(body, var_s1, var_s2);
579 // s1 != s3
580 new Inequality(body, var_s1, var_s3);
581 // s1 != s4
582 new Inequality(body, var_s1, var_s4);
583 // s1 != s5
584 new Inequality(body, var_s1, var_s5);
585 // s2 != s3
586 new Inequality(body, var_s2, var_s3);
587 // s2 != s4
588 new Inequality(body, var_s2, var_s4);
589 // s2 != s5
590 new Inequality(body, var_s2, var_s5);
591 // s3 != s4
592 new Inequality(body, var_s3, var_s4);
593 // s3 != s5
594 new Inequality(body, var_s3, var_s5);
595 // s4 != s5
596 new Inequality(body, var_s4, var_s5);
597 bodies.add(body);
598 }
599 {
600 PAnnotation annotation = new PAnnotation("Constraint");
601 annotation.addAttribute("severity", "error");
602 annotation.addAttribute("message", "error");
603 annotation.addAttribute("key", Arrays.asList(new Object[] {
604 new ParameterReference("c")
605 }));
606 addAnnotation(annotation);
607 }
608 return bodies;
609 }
610 }
611}
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 @@
1Task,Run,Result,Domain to logic transformation time,Logic to solver transformation time,Solver time,Postprocessing time,TransformationExecutionTime,TypeAnalysisTime,MetricCalculationTime,StateCoderTime,StateCoderFailCount,SolutionCopyTime,_Solution0FoundAt
25,1,InsuficientResourcesResultImpl,26,1815,305292,1000,16140,15,12210,260570,0,0,
35,2,InsuficientResourcesResultImpl,26,1237,301846,700,14659,0,12249,259139,0,0,
45,3,InsuficientResourcesResultImpl,26,1218,301687,600,15765,0,12876,256432,0,0,
55,4,InsuficientResourcesResultImpl,26,1294,302248,800,18015,0,11131,255608,0,0,
65,5,InsuficientResourcesResultImpl,26,1290,300894,900,14893,0,11118,259377,0,0,
75,6,InsuficientResourcesResultImpl,26,1184,302351,900,16463,0,11499,258946,0,0,
85,7,ModelResultImpl,26,1180,289935,35396400,17823,0,14375,240465,0,4,287519
95,8,InsuficientResourcesResultImpl,26,1298,304757,700,12762,0,10686,266461,0,0,
105,9,ModelResultImpl,26,1166,287620,35860800,17055,0,15050,237850,0,1,285304
115,10,ModelResultImpl,26,1185,168322,32789700,15059,0,9955,132727,0,0,166044
125,11,InsuficientResourcesResultImpl,26,1176,302293,900,12773,0,10338,264930,0,0,
135,12,InsuficientResourcesResultImpl,26,1200,300206,600,14139,0,11334,260462,0,0,
145,13,InsuficientResourcesResultImpl,26,1199,305554,500,12939,0,11144,266919,0,0,
155,14,InsuficientResourcesResultImpl,26,1193,300864,700,18895,0,14266,250111,0,0,
165,15,InsuficientResourcesResultImpl,26,1197,303894,700,14501,0,12313,262474,0,0,
175,16,InsuficientResourcesResultImpl,26,1171,303003,700,13178,0,11827,263585,0,0,
185,17,InsuficientResourcesResultImpl,26,1169,305501,600,13479,0,11788,265540,0,0,
195,18,InsuficientResourcesResultImpl,26,1175,301967,700,13531,0,11415,262420,0,0,
205,19,InsuficientResourcesResultImpl,26,1274,300241,800,13254,0,11607,260895,0,0,
215,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 @@
1Task,Run,Result,Domain to logic transformation time,Logic to solver transformation time,Solver time,Postprocessing time,_Solution0FoundAt,TransformationExecutionTime,TypeAnalysisTime,MetricCalculationTime,StateCoderTime,StateCoderFailCount,SolutionCopyTime
22,1,ModelResultImpl,19,1721,35221,15771300,32311,7042,34,1895,16580,0,1
32,2,ModelResultImpl,19,1610,35749,11651300,32635,6745,1,1736,18895,0,1
42,3,ModelResultImpl,19,1640,27258,16117300,24303,6429,0,1323,12286,0,1
52,4,ModelResultImpl,19,1634,35933,20450700,33223,6381,0,1605,20611,0,2
62,5,ModelResultImpl,19,1612,23612,11651100,19721,6887,0,1099,8730,0,0
72,6,ModelResultImpl,19,1319,22727,9964000,20364,4974,0,1147,11737,0,0
82,7,ModelResultImpl,19,1278,22340,12342400,19967,4711,0,1078,11660,0,0
92,8,ModelResultImpl,19,1292,20551,10731500,18317,4260,0,1007,11070,0,0
102,9,ModelResultImpl,19,1378,18306,12922900,15874,4176,0,928,8796,0,1
112,10,ModelResultImpl,19,1330,25726,10084700,23254,6531,0,1345,10615,0,0
122,11,ModelResultImpl,19,1229,33084,12002300,30734,5309,0,1584,19392,0,0
132,12,ModelResultImpl,19,1240,24555,9818800,22179,5967,1,1405,10083,0,0
142,13,ModelResultImpl,19,1264,28275,11451700,25939,5692,0,1395,14547,0,0
152,14,ModelResultImpl,19,1276,36197,10007300,33900,5461,0,1659,22219,0,0
162,15,ModelResultImpl,19,1230,30436,9231400,28100,5354,0,1488,16718,0,0
172,16,ModelResultImpl,19,1217,22614,8885000,20287,6795,0,1371,7299,0,0
182,17,ModelResultImpl,19,1262,29600,12922400,27253,5298,0,1528,15895,0,0
192,18,ModelResultImpl,19,1243,28214,10765500,25879,5412,0,1292,15319,0,0
202,19,ModelResultImpl,19,1299,20845,11064400,18336,5327,0,1048,8903,0,0
212,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 @@
1Task,Run,Result,Domain to logic transformation time,Logic to solver transformation time,Solver time,Postprocessing time,_Solution0FoundAt,TransformationExecutionTime,TypeAnalysisTime,MetricCalculationTime,StateCoderTime,StateCoderFailCount,SolutionCopyTime
23,1,ModelResultImpl,7,1300,78258,16468500,75732,13071,7,4896,46003,0,2
33,2,ModelResultImpl,7,1255,72729,15062600,70201,10011,0,4148,48760,0,0
43,3,ModelResultImpl,7,1284,85751,18952400,83381,10015,0,4783,59452,0,0
53,4,ModelResultImpl,7,1312,80702,18255000,78055,9873,0,3766,56886,0,1
63,5,ModelResultImpl,7,2192,111362,20902300,108184,12705,0,5062,79232,0,0
73,6,ModelResultImpl,7,1275,88255,20727400,85645,9667,0,3925,64755,0,0
83,7,ModelResultImpl,7,1228,95312,23184200,92818,9763,0,4466,69648,0,1
93,8,ModelResultImpl,7,1421,102160,16746000,99564,13923,0,5149,68705,0,1
103,9,ModelResultImpl,7,1542,74130,15142300,71709,10116,0,4021,50574,0,0
113,10,ModelResultImpl,7,1370,106586,18544500,103524,11809,0,4614,78092,0,1
123,11,ModelResultImpl,7,1977,81554,14689300,78988,9059,0,4109,58293,0,1
133,12,ModelResultImpl,7,1282,80592,17114200,77924,10654,0,4120,55221,0,0
143,13,ModelResultImpl,7,1470,50749,14006900,47249,7112,0,2464,34560,0,0
153,14,ModelResultImpl,7,1189,96780,16081900,94561,8346,0,4262,74850,0,0
163,15,ModelResultImpl,7,1187,104866,17029000,102503,8484,0,4673,81148,0,0
173,16,ModelResultImpl,7,1192,83407,19208900,81122,8548,0,4154,61175,0,1
183,17,ModelResultImpl,7,1291,84064,18326300,81220,10675,0,4308,57616,0,0
193,18,ModelResultImpl,7,1924,92524,20324400,89145,9764,0,4238,66918,0,1
203,19,ModelResultImpl,7,1284,85575,14840500,82932,10403,0,4104,60536,0,0
213,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 @@
1Task,Run,Result,Domain to logic transformation time,Logic to solver transformation time,Solver time,Postprocessing time,_Solution0FoundAt,TransformationExecutionTime,TypeAnalysisTime,MetricCalculationTime,StateCoderTime,StateCoderFailCount,SolutionCopyTime
24,1,ModelResultImpl,10,1339,187225,43638100,184585,14565,8,8893,149868,0,0
34,2,ModelResultImpl,10,1336,258364,34407600,255655,14281,1,9835,217586,0,0
44,3,InsuficientResourcesResultImpl,10,1321,302464,3900,,14999,0,10218,258608,0,0
54,4,ModelResultImpl,10,1569,272300,28546600,269342,14187,0,9965,231046,0,0
64,5,ModelResultImpl,10,1315,244950,39639300,242286,14765,0,10575,202813,0,0
74,6,ModelResultImpl,10,1223,185629,34348900,183286,14074,0,9227,147910,0,0
84,7,ModelResultImpl,10,1271,243243,28619100,240866,16030,0,10594,199605,0,1
94,8,ModelResultImpl,10,1229,247712,31642900,244834,14393,0,9543,207278,0,0
104,9,ModelResultImpl,10,1284,209619,24479700,207199,18848,0,10225,164689,0,0
114,10,ModelResultImpl,10,1240,252740,36766100,250104,15959,0,10730,208822,0,1
124,11,ModelResultImpl,10,1315,192678,27966300,190097,15350,0,9230,152579,0,1
134,12,ModelResultImpl,10,1767,199644,24666200,195878,16171,0,9709,158015,0,1
144,13,ModelResultImpl,10,1411,209397,29226100,206486,17127,0,10334,164735,0,0
154,14,InsuficientResourcesResultImpl,10,1292,300133,800,,13558,0,10569,258303,0,0
164,15,ModelResultImpl,10,1188,277607,29611300,275175,13898,0,11204,234760,0,0
174,16,ModelResultImpl,10,1383,257815,41453700,255328,13012,0,10666,216491,0,1
184,17,ModelResultImpl,10,1335,217424,30586300,214754,15737,0,9889,176416,0,0
194,18,ModelResultImpl,10,1317,214706,28448000,211898,15332,0,9390,175241,0,1
204,19,ModelResultImpl,10,1429,235982,26350500,233087,15836,0,10258,192499,0,1
214,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..ad791735
--- /dev/null
+++ b/Metrics/Metrics-Calculation/SocialNetwork_plugin/statistics/Ecore/warmup.csv
@@ -0,0 +1,7 @@
1Task,Run,Result,Domain to logic transformation time,Logic to solver transformation time,Solver time,Postprocessing time,_Solution0FoundAt,TransformationExecutionTime,TypeAnalysisTime,MetricCalculationTime,StateCoderTime,StateCoderFailCount,SolutionCopyTime
21,1,ModelResultImpl,1470,4786,7771,66116800,3921,1682,480,154,550,0,3
31,2,ModelResultImpl,1470,2113,8817,10699700,5927,1993,3,300,1326,0,1
41,3,ModelResultImpl,1470,1856,6810,12033700,3907,1602,1,111,692,0,1
51,4,ModelResultImpl,1470,2441,6387,8147100,3326,1412,2,100,427,0,1
61,5,ModelResultImpl,1470,1705,6328,8393300,2039,1123,0,56,190,0,1
7
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 @@
1Task,Run,Result,Domain to logic transformation time,Logic to solver transformation time,Solver time,Postprocessing time,_Solution0FoundAt,TransformationExecutionTime,TypeAnalysisTime,MetricCalculationTime,StateCoderTime,StateCoderFailCount,SolutionCopyTime
22,1,ModelResultImpl,5,753,17109,13399400,16654,1789,9,696,11984,0,0
32,2,ModelResultImpl,5,628,17801,12301800,17369,1678,0,715,12727,0,0
42,3,ModelResultImpl,5,610,15430,13989100,14970,1285,0,586,11377,0,0
52,4,ModelResultImpl,5,803,14781,11475500,14220,1483,0,640,10196,0,0
62,5,ModelResultImpl,5,581,22641,12669300,22193,1558,0,707,17778,0,0
72,6,ModelResultImpl,5,611,22649,11553300,22203,1508,0,660,17965,0,0
82,7,ModelResultImpl,5,548,12438,10128400,12033,1584,0,616,7995,0,0
92,8,ModelResultImpl,5,655,17624,10593200,17198,1404,0,619,13273,0,0
102,9,ModelResultImpl,5,596,16946,10102500,16528,1717,0,705,11847,0,0
112,10,ModelResultImpl,5,537,17896,10038000,17507,1414,0,626,13625,0,0
122,11,ModelResultImpl,5,535,13771,11741600,13353,1411,0,613,9547,0,0
132,12,ModelResultImpl,5,531,16728,11768600,16257,1448,0,635,12199,0,0
142,13,ModelResultImpl,5,549,14647,11546900,14254,1201,0,573,10920,0,0
152,14,ModelResultImpl,5,552,15942,10918300,15492,1502,0,610,11459,0,0
162,15,ModelResultImpl,5,563,15196,12483700,14773,1389,0,574,11130,0,0
172,16,ModelResultImpl,5,566,10267,10445100,9864,1364,0,523,6468,0,0
182,17,ModelResultImpl,5,600,15595,8099800,15147,1341,0,624,11381,0,0
192,18,ModelResultImpl,5,561,11172,9144100,10776,1167,0,487,7740,0,0
202,19,ModelResultImpl,5,548,14818,9372000,14441,1565,0,658,10261,0,0
212,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 @@
1Task,Run,Result,Domain to logic transformation time,Logic to solver transformation time,Solver time,Postprocessing time,_Solution0FoundAt,TransformationExecutionTime,TypeAnalysisTime,MetricCalculationTime,StateCoderTime,StateCoderFailCount,SolutionCopyTime
24,1,ModelResultImpl,11,730,72467,34401400,71866,4026,10,1998,59824,0,0
34,2,ModelResultImpl,11,761,67853,11838400,67382,3819,0,1957,55882,0,0
44,3,ModelResultImpl,11,734,45541,10393700,45056,3529,0,1779,34849,0,0
54,4,ModelResultImpl,11,619,55697,17081600,55167,3617,0,1898,44356,0,0
64,5,ModelResultImpl,11,726,64846,29758900,64208,3905,0,2030,52466,0,0
74,6,ModelResultImpl,11,712,65893,13089200,65423,3972,0,2029,53618,0,0
84,7,ModelResultImpl,11,742,50982,16405400,50469,3638,0,1857,39804,0,0
94,8,ModelResultImpl,11,590,50309,15985400,49731,3572,0,1877,39187,0,0
104,9,ModelResultImpl,11,761,65533,23499900,65008,3890,0,2000,53225,0,0
114,10,ModelResultImpl,11,688,44853,23629200,44348,3255,0,1695,34758,0,0
124,11,ModelResultImpl,11,626,59167,38070600,58611,3942,0,1864,47290,0,0
134,12,ModelResultImpl,11,642,66860,18966400,66364,3732,0,1987,54960,0,0
144,13,ModelResultImpl,11,622,65317,12053900,64842,3176,0,1633,55177,0,1
154,14,ModelResultImpl,11,687,45481,79001300,44944,3485,0,1661,35036,0,0
164,15,ModelResultImpl,11,881,74988,14027700,74444,4150,0,2191,61881,0,0
174,16,ModelResultImpl,11,691,56609,11960900,56125,3776,0,1943,45015,0,0
184,17,ModelResultImpl,11,631,103459,26319900,102823,4720,0,2390,88314,0,1
194,18,ModelResultImpl,11,2263,61989,12371400,61101,3751,0,1902,50076,0,0
204,19,ModelResultImpl,11,575,75135,19514700,74621,4810,0,2552,60068,0,1
214,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 @@
1Task,Run,Result,Domain to logic transformation time,Logic to solver transformation time,Solver time,Postprocessing time,TransformationExecutionTime,TypeAnalysisTime,MetricCalculationTime,StateCoderTime,StateCoderFailCount,SolutionCopyTime,_Solution0FoundAt
25,1,InsuficientResourcesResultImpl,8,1163,301236,6700,11611,7,8030,261757,0,0,
35,2,ModelResultImpl,8,1125,214262,41193500,10675,0,7433,179009,0,1,213284
45,3,InsuficientResourcesResultImpl,8,1097,301100,1400,10110,0,6697,266325,0,0,
55,4,ModelResultImpl,8,1202,243793,34411800,11329,0,7710,206562,0,0,242815
65,5,ModelResultImpl,8,1130,266540,38153400,12190,0,8455,225879,0,1,265458
75,6,ModelResultImpl,8,1136,244077,43614700,10925,0,7347,207698,0,0,243138
85,7,ModelResultImpl,8,1263,270364,44901700,10715,0,7520,233664,0,0,269383
95,8,ModelResultImpl,8,1062,228653,36320200,11042,0,7673,191829,0,0,227652
105,9,ModelResultImpl,8,1060,284484,38198200,12105,0,8129,244192,0,1,283520
115,10,ModelResultImpl,8,1087,245757,38745600,10898,0,7835,208781,0,0,244833
125,11,InsuficientResourcesResultImpl,8,1003,302539,1700,9666,0,6798,267961,0,0,
135,12,ModelResultImpl,8,657,143583,35565200,6948,0,4448,120639,0,0,142951
145,13,ModelResultImpl,8,1061,292041,44607000,12010,0,8656,250579,0,1,291061
155,14,ModelResultImpl,8,1034,255307,37454100,11242,0,7789,217397,0,0,254393
165,15,InsuficientResourcesResultImpl,8,1194,300839,1500,9997,0,7300,265245,0,0,
175,16,ModelResultImpl,8,1070,274358,38762800,11730,0,7864,235472,0,1,273383
185,17,ModelResultImpl,8,1099,259378,84148300,11340,0,7784,221204,0,0,258553
195,18,ModelResultImpl,8,1084,255262,38991800,11989,0,7795,215829,0,1,254328
205,19,ModelResultImpl,8,1111,293515,47026100,12037,0,8609,252172,0,1,292504
215,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 @@
1Task,Run,Result,Domain to logic transformation time,Logic to solver transformation time,Solver time,Postprocessing time,_Solution0FoundAt,TransformationExecutionTime,TypeAnalysisTime,MetricCalculationTime,StateCoderTime,StateCoderFailCount,SolutionCopyTime
21,1,ModelResultImpl,1483,2558,3108,60043900,1609,456,424,87,272,0,1
31,2,ModelResultImpl,1483,1126,1487,9020100,931,292,1,60,256,0,1
41,3,ModelResultImpl,1483,927,1424,9739900,827,263,0,51,217,0,0
51,4,ModelResultImpl,1483,886,1069,8613600,495,208,1,25,97,0,0
61,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 @@
1Task,Run,Result,Domain to logic transformation time,Logic to solver transformation time,Solver time,Postprocessing time,_Solution0FoundAt,TransformationExecutionTime,TypeAnalysisTime,MetricCalculationTime,StateCoderTime,StateCoderFailCount,SolutionCopyTime
25,1,ModelResultImpl,12,865,91787,64960700,91078,17340,6,2469,61497,0,3
35,2,ModelResultImpl,12,956,118267,65616400,117553,16353,0,2810,85627,0,1
45,3,ModelResultImpl,12,900,116093,69616600,115364,17281,0,2800,82376,0,0
55,4,ModelResultImpl,12,907,96027,78796000,95287,19233,0,2643,63089,0,0
65,5,ModelResultImpl,12,961,133615,61595600,132840,17098,0,2970,99041,0,0
75,6,ModelResultImpl,12,917,120673,61159000,119930,18320,0,2889,85737,0,0
85,7,ModelResultImpl,12,941,101988,69310400,101183,18258,0,2694,69616,0,0
95,8,ModelResultImpl,12,910,117121,58731900,116373,16751,0,2954,83990,0,1
105,9,ModelResultImpl,12,939,98738,60204200,97988,15671,0,2643,69051,0,0
115,10,ModelResultImpl,12,907,109216,62901700,108450,18563,0,2855,74361,0,0
125,11,ModelResultImpl,12,989,101313,70288400,100570,19059,0,2653,68951,0,0
135,12,ModelResultImpl,12,847,110986,71960700,110229,20031,0,2484,77376,0,0
145,13,ModelResultImpl,12,924,99847,65101400,99083,18276,0,2732,67006,0,0
155,14,ModelResultImpl,12,908,113484,61073000,112675,20588,0,2760,77595,0,0
165,15,ModelResultImpl,12,859,107243,118083900,106494,16814,0,2826,74774,0,0
175,16,ModelResultImpl,12,896,101005,60113300,100198,16591,0,2670,70482,0,0
185,17,ModelResultImpl,12,909,150888,90178000,150032,18804,0,3644,112370,0,2
195,18,ModelResultImpl,12,1988,224882,111051700,223272,35288,0,5245,160716,0,2
205,19,ModelResultImpl,12,1710,180301,103042800,178853,31026,0,4421,125609,0,1
215,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 @@
1Task,Run,Result,Domain to logic transformation time,Logic to solver transformation time,Solver time,Postprocessing time,_Solution0FoundAt,TransformationExecutionTime,TypeAnalysisTime,MetricCalculationTime,StateCoderTime,StateCoderFailCount,SolutionCopyTime
22,1,ModelResultImpl,11,1049,149253,202983100,148329,21687,8,3820,108113,0,4
32,2,ModelResultImpl,11,1131,173214,111640800,172206,24930,0,3926,128120,0,1
42,3,ModelResultImpl,11,1027,157782,120804000,157006,19292,0,3948,119012,0,1
52,4,ModelResultImpl,11,1063,169577,126195200,168692,22819,0,4027,126643,0,1
62,5,ModelResultImpl,11,984,164004,93016300,163235,23449,0,3830,121474,0,1
72,6,ModelResultImpl,11,1005,146874,94077300,146111,20382,0,3734,108542,0,1
82,7,ModelResultImpl,11,904,148997,92734800,148172,19769,0,3763,111141,0,1
92,8,ModelResultImpl,11,911,145947,99103000,145197,21375,0,3757,106317,0,1
102,9,ModelResultImpl,11,911,154022,91420700,153225,21687,0,3781,113566,0,1
112,10,ModelResultImpl,11,994,144253,105623000,143479,19514,0,3736,106547,0,1
122,11,ModelResultImpl,11,943,146057,85565700,145235,20168,0,3830,107696,0,1
132,12,ModelResultImpl,11,933,153728,93877000,152956,18549,0,4136,115265,0,0
142,13,ModelResultImpl,11,989,135785,101796800,135043,19930,0,3590,98576,0,1
152,14,ModelResultImpl,11,942,158905,115031700,158150,21663,0,3796,118239,0,0
162,15,ModelResultImpl,11,897,138727,116266900,137918,19116,1,3652,102641,0,0
172,16,ModelResultImpl,11,851,145221,95232500,144453,18026,0,3913,108945,0,0
182,17,ModelResultImpl,11,928,154148,88476300,153396,21053,0,3827,113763,0,0
192,18,ModelResultImpl,11,859,166408,95546600,165666,22619,0,3922,123707,0,1
202,19,ModelResultImpl,11,909,136564,91353600,135766,17841,0,3665,101835,0,0
212,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..2ea01c80
--- /dev/null
+++ b/Metrics/Metrics-Calculation/SocialNetwork_plugin/statistics/Yakindu/140.csv
@@ -0,0 +1,22 @@
1Task,Run,Result,Domain to logic transformation time,Logic to solver transformation time,Solver time,Postprocessing time,_Solution0FoundAt,TransformationExecutionTime,TypeAnalysisTime,MetricCalculationTime,StateCoderTime,StateCoderFailCount,SolutionCopyTime
22,1,ModelResultImpl,28,1125,232547,238441100,231464,32513,30,5381,174058,0,3
32,2,ModelResultImpl,28,932,262316,161173500,261382,26096,0,5936,207379,0,1
42,3,ModelResultImpl,28,1227,292535,143575400,291587,32776,0,5863,228470,0,1
52,4,ModelResultImpl,28,1048,291142,138985400,290250,31729,1,6141,227996,0,1
62,5,ModelResultImpl,28,962,226481,144946000,225670,28211,0,5305,172447,0,1
72,6,ModelResultImpl,28,913,236598,135164100,235765,24945,0,5586,184729,0,1
82,7,ModelResultImpl,28,885,234174,143088000,233346,27412,0,5184,182189,0,1
92,8,ModelResultImpl,28,879,205042,135824000,204263,25417,0,4926,157017,0,1
102,9,ModelResultImpl,28,975,237992,154320900,237160,26181,0,5287,185721,0,0
112,10,ModelResultImpl,28,908,213258,140980300,212461,28371,0,5041,161035,0,1
122,11,ModelResultImpl,28,868,220191,146847500,219407,29612,0,4923,167193,0,1
132,12,ModelResultImpl,28,986,217681,137838200,216908,27339,0,4956,166377,0,1
142,13,ModelResultImpl,28,930,228167,126599800,227404,30279,0,5075,174085,0,0
152,14,ModelResultImpl,28,878,246742,128511700,245938,21629,0,5670,199512,0,0
162,15,ModelResultImpl,28,903,212514,141892400,211665,31163,0,4913,158072,0,0
172,16,ModelResultImpl,28,928,233910,127925600,233102,23749,0,5410,184087,0,0
182,17,ModelResultImpl,28,901,248732,134197200,247867,25543,0,5436,198007,0,1
192,18,ModelResultImpl,28,926,277407,128580900,276418,27387,0,5841,220797,0,1
202,19,ModelResultImpl,28,1090,272687,171318300,271352,29653,0,5675,212248,0,1
212,20,ModelResultImpl,28,971,259569,148475200,258629,28250,0,5574,204259,0,2
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 @@
1Task,Run,Result,Domain to logic transformation time,Logic to solver transformation time,Solver time,Postprocessing time,_Solution0FoundAt,TransformationExecutionTime,TypeAnalysisTime,MetricCalculationTime,StateCoderTime,StateCoderFailCount,SolutionCopyTime
22,1,ModelResultImpl,37,1267,42409,28515700,41220,5066,11,614,29095,0,1
32,2,ModelResultImpl,37,1919,14164,22580700,12518,3986,2,344,5463,0,2
42,3,ModelResultImpl,37,1916,41597,31164300,40290,5050,1,614,28209,0,1
52,4,ModelResultImpl,37,2023,41518,20216100,40199,5825,0,549,27332,0,1
62,5,ModelResultImpl,37,2052,21630,32282400,20128,4713,0,456,10817,0,1
72,6,ModelResultImpl,37,2070,40984,24514000,39602,5997,0,528,26649,0,2
82,7,ModelResultImpl,37,2249,40677,22780300,39309,4977,0,600,27410,0,1
92,8,ModelResultImpl,37,1887,34102,17897400,32571,5103,0,524,21184,0,1
102,9,ModelResultImpl,37,1826,11685,12854100,10430,3316,0,298,4382,0,1
112,10,ModelResultImpl,37,1795,20933,19823700,19703,4431,0,435,10642,0,1
122,11,ModelResultImpl,37,1849,33111,18648500,31757,5743,0,375,20404,0,1
132,12,ModelResultImpl,37,1829,36099,18177300,34869,5689,0,525,22643,0,1
142,13,ModelResultImpl,37,1875,36431,20140100,35116,5371,0,500,23462,0,1
152,14,ModelResultImpl,37,1796,32322,24371800,31185,4939,0,493,20307,0,1
162,15,ModelResultImpl,37,1961,43764,24819800,42470,6248,0,593,27586,0,1
172,16,ModelResultImpl,37,1737,16231,16437300,14995,3805,0,388,7679,0,0
182,17,ModelResultImpl,37,1685,14223,36835700,12964,3783,0,338,6108,0,1
192,18,ModelResultImpl,37,1910,30550,21296200,29359,4813,0,517,18691,0,1
202,19,ModelResultImpl,37,1622,30723,17831800,29572,5299,0,560,18198,0,1
212,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 @@
1Task,Run,Result,Domain to logic transformation time,Logic to solver transformation time,Solver time,Postprocessing time,_Solution0FoundAt,TransformationExecutionTime,TypeAnalysisTime,MetricCalculationTime,StateCoderTime,StateCoderFailCount,SolutionCopyTime
23,1,ModelResultImpl,16,1695,34619,47365200,33379,7951,23,1005,19203,0,0
33,2,ModelResultImpl,16,1952,66272,40194500,65033,10142,0,1381,45195,0,1
43,3,ModelResultImpl,16,1882,50684,57411900,49392,9412,0,1181,31167,0,2
53,4,ModelResultImpl,16,1835,52174,29585500,50841,9443,0,1265,32497,0,1
63,5,ModelResultImpl,16,1817,37087,24158900,35809,8374,0,1106,20620,0,1
73,6,ModelResultImpl,16,1822,96082,35393500,94837,10814,0,1314,71854,0,1
83,7,ModelResultImpl,16,1845,65727,37723300,64268,10857,0,1392,42620,0,1
93,8,ModelResultImpl,16,1715,36063,56419600,34810,8195,0,1065,19928,0,2
103,9,ModelResultImpl,16,1814,53418,68855200,52040,9364,0,1248,33127,0,1
113,10,ModelResultImpl,16,1688,146193,34004300,144953,23393,0,2677,96521,0,2
123,11,ModelResultImpl,16,1887,56839,38787000,55478,11029,0,1309,34905,0,1
133,12,ModelResultImpl,16,1852,43970,32684100,42779,10114,0,1121,25234,0,1
143,13,ModelResultImpl,16,1766,68078,29662000,66581,12700,0,1445,42619,0,1
153,14,ModelResultImpl,16,2033,137006,39601900,135475,10041,0,1736,110352,0,1
163,15,ModelResultImpl,16,1792,36929,30425200,35576,8499,0,1112,19855,0,1
173,16,ModelResultImpl,16,1861,79893,19417500,78581,10278,0,1253,56995,0,0
183,17,ModelResultImpl,16,1651,34149,32888300,33294,8334,0,1016,18514,0,1
193,18,ModelResultImpl,16,1799,51965,35639300,50624,11417,0,1355,29874,0,0
203,19,ModelResultImpl,16,2032,46469,44756500,45006,10308,0,1323,25809,0,1
213,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 @@
1Task,Run,Result,Domain to logic transformation time,Logic to solver transformation time,Solver time,Postprocessing time,_Solution0FoundAt,TransformationExecutionTime,TypeAnalysisTime,MetricCalculationTime,StateCoderTime,StateCoderFailCount,SolutionCopyTime
24,1,ModelResultImpl,20,2105,122193,47975800,120819,22172,21,3111,81933,0,0
34,2,ModelResultImpl,20,948,71430,38366700,70718,10799,0,1803,49089,0,0
44,3,ModelResultImpl,20,907,71011,42371700,70320,12614,0,1751,47228,0,0
54,4,ModelResultImpl,20,888,57574,43253600,56870,10097,0,1721,37819,0,0
64,5,ModelResultImpl,20,918,50961,39099900,50235,9718,0,1667,31881,0,0
74,6,ModelResultImpl,20,929,54262,48948700,53554,10095,0,1701,35294,0,0
84,7,ModelResultImpl,20,914,69271,42306400,68596,12610,0,1788,45775,0,0
94,8,ModelResultImpl,20,887,58304,42858800,57604,10861,0,1641,37653,0,0
104,9,ModelResultImpl,20,923,61436,40388600,60755,11478,0,1812,38983,0,0
114,10,ModelResultImpl,20,950,51010,44099800,50294,11361,0,1496,30951,0,1
124,11,ModelResultImpl,20,879,56153,40079800,55455,11776,0,1587,35227,0,0
134,12,ModelResultImpl,20,939,55164,41385200,54450,9786,0,1675,35778,0,0
144,13,ModelResultImpl,20,947,59424,49539400,58684,10955,0,1776,38126,0,0
154,14,ModelResultImpl,20,973,61843,36537600,61086,10883,0,1685,40830,0,0
164,15,ModelResultImpl,20,867,54362,38663100,53666,10015,0,1611,35234,0,0
174,16,ModelResultImpl,20,915,108777,49507000,108033,20987,0,2938,71959,0,1
184,17,ModelResultImpl,20,922,55218,41448600,54548,9665,0,1657,36387,0,0
194,18,ModelResultImpl,20,921,57210,60622400,56526,10429,0,1747,36425,0,0
204,19,ModelResultImpl,20,911,70900,47211300,70230,11669,0,1714,48547,0,0
214,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..94da3ec9
--- /dev/null
+++ b/Metrics/Metrics-Calculation/SocialNetwork_plugin/statistics/Yakindu/warmup.csv
@@ -0,0 +1,7 @@
1Task,Run,Result,Domain to logic transformation time,Logic to solver transformation time,Solver time,Postprocessing time,_Solution0FoundAt,TransformationExecutionTime,TypeAnalysisTime,MetricCalculationTime,StateCoderTime,StateCoderFailCount,SolutionCopyTime
21,1,ModelResultImpl,494,2798,2766,45079800,1362,547,125,46,190,0,3
31,2,ModelResultImpl,494,1544,1988,11110900,1033,357,0,30,249,0,1
41,3,ModelResultImpl,494,1366,1867,7926900,1060,364,2,24,258,0,1
51,4,ModelResultImpl,494,1233,1588,8919800,863,312,0,19,146,0,1
61,5,ModelResultImpl,494,1253,1434,7416800,681,268,1,17,133,0,0
7
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 @@
1Task,Run,Result,Domain to logic transformation time,Logic to solver transformation time,Solver time,Postprocessing time,TransformationExecutionTime,TypeAnalysisTime,MetricCalculationTime,StateCoderTime,StateCoderFailCount,SolutionCopyTime,_Solution0FoundAt
21,1,InsuficientResourcesResultImpl,453,3378,5255,7500,1236,131,79,245,0,0,
31,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
index 04351a6e..721d506a 100644
--- a/Metrics/Metrics-Calculation/SocialNetwork_plugin/yakinduGeneration.vsconfig
+++ b/Metrics/Metrics-Calculation/SocialNetwork_plugin/yakinduGeneration.vsconfig
@@ -9,11 +9,11 @@ generate {
9 solver = ViatraSolver 9 solver = ViatraSolver
10 10
11 scope = { 11 scope = {
12 #node = 30 12 #node = 10
13 } 13 }
14 14
15 number = 1 15 number = 1
16 runs = 100 16 runs = 5
17 config = { 17 config = {
18 log-level = none, 18 log-level = none,
19 "optional-wf" = "false", 19 "optional-wf" = "false",
@@ -22,6 +22,85 @@ generate {
22 "domain" = "Yakindumm" 22 "domain" = "Yakindumm"
23 } 23 }
24 24
25 statistics = "statistics/Yakindu/warmup.csv" //give different set up different filenames
25 debug = "debug" 26 debug = "debug"
26 output = "output/real_30+v/" 27 output = "output/Yakindu/run_time/"
28}
29
30generate {
31 metamodel = { package yakindumm excluding { Synchronization}}
32 constraints = { package hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu }
33 partial-model = { "inputs/start.xmi"}
34
35 solver = ViatraSolver
36
37 scope = {
38 #node = 140
39 }
40
41 number = 1
42 runs = 20
43 config = {
44 log-level = none,
45 "optional-wf" = "false",
46 "realistic-guidance" = "Composite",
47 "allow-must-violations" = "false",
48 "domain" = "Yakindumm"
49 }
50
51 statistics = "statistics/Yakindu/140.csv" //give different set up different filenames
52 debug = "debug"
53 output = "output/Yakindu/run_time/"
54}
55
56generate {
57 metamodel = { package yakindumm excluding { Synchronization}}
58 constraints = { package hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu }
59 partial-model = { "inputs/start.xmi"}
60
61 solver = ViatraSolver
62
63 scope = {
64 #node = 160
65 }
66
67 number = 1
68 runs = 20
69 config = {
70 log-level = none,
71 "optional-wf" = "false",
72 "realistic-guidance" = "Composite",
73 "allow-must-violations" = "false",
74 "domain" = "Yakindumm"
75 }
76
77 statistics = "statistics/Yakindu/160.csv" //give different set up different filenames
78 debug = "debug"
79 output = "output/Yakindu/run_time/"
80}
81
82generate {
83 metamodel = { package yakindumm excluding { Synchronization}}
84 constraints = { package hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu }
85 partial-model = { "inputs/start.xmi"}
86
87 solver = ViatraSolver
88
89 scope = {
90 #node = 180
91 }
92
93 number = 1
94 runs = 20
95 config = {
96 log-level = none,
97 "optional-wf" = "false",
98 "realistic-guidance" = "Composite",
99 "allow-must-violations" = "false",
100 "domain" = "Yakindumm"
101 }
102
103 statistics = "statistics/Yakindu/180.csv" //give different set up different filenames
104 debug = "debug"
105 output = "output/Yakindu/run_time/"
27} \ No newline at end of file 106} \ No newline at end of file
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/.settings/org.eclipse.wst.validation.prefs b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/.settings/org.eclipse.wst.validation.prefs
new file mode 100644
index 00000000..b0a80408
--- /dev/null
+++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/.settings/org.eclipse.wst.validation.prefs
@@ -0,0 +1,10 @@
1DELEGATES_PREFERENCE=delegateValidatorList
2USER_BUILD_PREFERENCE=enabledBuildValidatorList
3USER_MANUAL_PREFERENCE=enabledManualValidatorList
4USER_PREFERENCE=overrideGlobalPreferencestruedisableAllValidationfalseversion1.2.701.v201810290944
5eclipse.preferences.version=1
6override=true
7suspend=false
8vals/org.eclipse.wst.xml.core.xml/global=FF03
9vals/org.eclipse.wst.xsd.core.xsd/global=FF02162org.eclipse.wst.xsd.core.internal.validation.eclipse.Validator
10vf.version=3
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/META-INF/MANIFEST.MF b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/META-INF/MANIFEST.MF
index 71eeb2c4..eacce276 100644
--- a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/META-INF/MANIFEST.MF
+++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/META-INF/MANIFEST.MF
@@ -19,7 +19,8 @@ Require-Bundle: com.google.guava,
19 org.eclipse.viatra.addon.validation.core;bundle-version="2.1.2", 19 org.eclipse.viatra.addon.validation.core;bundle-version="2.1.2",
20 org.eclipse.collections;bundle-version="9.2.0", 20 org.eclipse.collections;bundle-version="9.2.0",
21 org.eclipse.viatra.query.runtime.localsearch;bundle-version="2.1.2", 21 org.eclipse.viatra.query.runtime.localsearch;bundle-version="2.1.2",
22 org.apache.log4j;bundle-version="1.2.15" 22 org.apache.log4j;bundle-version="1.2.15",
23 github-graph;bundle-version="0.1.0"
23Export-Package: ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.app, 24Export-Package: ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.app,
24 ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.distance, 25 ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.distance,
25 ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.graph, 26 ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.graph,
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/constraints/constraints/ecore/LoopInInheritenceConstraint0.java b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/constraints/constraints/ecore/LoopInInheritenceConstraint0.java
new file mode 100644
index 00000000..c31e59e7
--- /dev/null
+++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/constraints/constraints/ecore/LoopInInheritenceConstraint0.java
@@ -0,0 +1,79 @@
1/**
2Generated from platform:/resource/SocialNetwork_plugin/queries/queries/Ecore.vql
3*/
4package constraints.ecore;
5
6import java.util.Arrays;
7import java.util.HashMap;
8import java.util.HashSet;
9import java.util.List;
10import java.util.Map;
11import java.util.Set;
12
13import org.eclipse.viatra.addon.validation.core.api.IConstraintSpecification;
14import org.eclipse.viatra.addon.validation.core.api.Severity;
15import org.eclipse.viatra.query.runtime.api.IPatternMatch;
16import org.eclipse.viatra.query.runtime.api.IQuerySpecification;
17import org.eclipse.viatra.query.runtime.api.ViatraQueryMatcher;
18
19import ecore.LoopInInheritence;
20
21public class LoopInInheritenceConstraint0 implements IConstraintSpecification {
22
23 private LoopInInheritence querySpecification;
24
25 public LoopInInheritenceConstraint0() {
26 querySpecification = LoopInInheritence.instance();
27 }
28
29 @Override
30 public String getMessageFormat() {
31 return "error";
32 }
33
34
35 @Override
36 public Map<String,Object> getKeyObjects(IPatternMatch signature) {
37 Map<String,Object> map = new HashMap<>();
38 map.put("a",signature.get("a"));
39 return map;
40 }
41
42 @Override
43 public List<String> getKeyNames() {
44 List<String> keyNames = Arrays.asList(
45 "a"
46 );
47 return keyNames;
48 }
49
50 @Override
51 public List<String> getPropertyNames() {
52 List<String> propertyNames = Arrays.asList(
53 );
54 return propertyNames;
55 }
56
57 @Override
58 public Set<List<String>> getSymmetricPropertyNames() {
59 Set<List<String>> symmetricPropertyNamesSet = new HashSet<>();
60 return symmetricPropertyNamesSet;
61 }
62
63 @Override
64 public Set<List<String>> getSymmetricKeyNames() {
65 Set<List<String>> symmetricKeyNamesSet = new HashSet<>();
66 return symmetricKeyNamesSet;
67 }
68
69 @Override
70 public Severity getSeverity() {
71 return Severity.ERROR;
72 }
73
74 @Override
75 public IQuerySpecification<? extends ViatraQueryMatcher<? extends IPatternMatch>> getQuerySpecification() {
76 return querySpecification;
77 }
78
79}
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/constraints/constraints/ecore/NonSymmetricOppositeConstraint0.java b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/constraints/constraints/ecore/NonSymmetricOppositeConstraint0.java
new file mode 100644
index 00000000..29b35552
--- /dev/null
+++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/constraints/constraints/ecore/NonSymmetricOppositeConstraint0.java
@@ -0,0 +1,80 @@
1/**
2Generated from platform:/resource/SocialNetwork_plugin/queries/queries/Ecore.vql
3*/
4package constraints.ecore;
5
6import java.util.Arrays;
7import java.util.HashMap;
8import java.util.HashSet;
9import java.util.List;
10import java.util.Map;
11import java.util.Set;
12
13import org.eclipse.viatra.addon.validation.core.api.IConstraintSpecification;
14import org.eclipse.viatra.addon.validation.core.api.Severity;
15import org.eclipse.viatra.query.runtime.api.IPatternMatch;
16import org.eclipse.viatra.query.runtime.api.IQuerySpecification;
17import org.eclipse.viatra.query.runtime.api.ViatraQueryMatcher;
18
19import ecore.NonSymmetricOpposite;
20
21public class NonSymmetricOppositeConstraint0 implements IConstraintSpecification {
22
23 private NonSymmetricOpposite querySpecification;
24
25 public NonSymmetricOppositeConstraint0() {
26 querySpecification = NonSymmetricOpposite.instance();
27 }
28
29 @Override
30 public String getMessageFormat() {
31 return "error";
32 }
33
34
35 @Override
36 public Map<String,Object> getKeyObjects(IPatternMatch signature) {
37 Map<String,Object> map = new HashMap<>();
38 map.put("a",signature.get("a"));
39 return map;
40 }
41
42 @Override
43 public List<String> getKeyNames() {
44 List<String> keyNames = Arrays.asList(
45 "a"
46 );
47 return keyNames;
48 }
49
50 @Override
51 public List<String> getPropertyNames() {
52 List<String> propertyNames = Arrays.asList(
53 "b"
54 );
55 return propertyNames;
56 }
57
58 @Override
59 public Set<List<String>> getSymmetricPropertyNames() {
60 Set<List<String>> symmetricPropertyNamesSet = new HashSet<>();
61 return symmetricPropertyNamesSet;
62 }
63
64 @Override
65 public Set<List<String>> getSymmetricKeyNames() {
66 Set<List<String>> symmetricKeyNamesSet = new HashSet<>();
67 return symmetricKeyNamesSet;
68 }
69
70 @Override
71 public Severity getSeverity() {
72 return Severity.ERROR;
73 }
74
75 @Override
76 public IQuerySpecification<? extends ViatraQueryMatcher<? extends IPatternMatch>> getQuerySpecification() {
77 return querySpecification;
78 }
79
80}
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/constraints/constraints/ecore/MoreThenFiveSuperTypesConstraint0.java b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/constraints/constraints/ecore/OppositeDifferentClassConstraint0.java
index 5243b104..9ef4e35e 100644
--- a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/constraints/constraints/ecore/MoreThenFiveSuperTypesConstraint0.java
+++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/constraints/constraints/ecore/OppositeDifferentClassConstraint0.java
@@ -1,5 +1,5 @@
1/** 1/**
2Generated from platform:/resource/SocialNetwork_plugin/queries/queries/ecore_pattern.vql 2Generated from platform:/resource/SocialNetwork_plugin/queries/queries/Ecore.vql
3*/ 3*/
4package constraints.ecore; 4package constraints.ecore;
5 5
@@ -16,14 +16,14 @@ import org.eclipse.viatra.query.runtime.api.IPatternMatch;
16import org.eclipse.viatra.query.runtime.api.IQuerySpecification; 16import org.eclipse.viatra.query.runtime.api.IQuerySpecification;
17import org.eclipse.viatra.query.runtime.api.ViatraQueryMatcher; 17import org.eclipse.viatra.query.runtime.api.ViatraQueryMatcher;
18 18
19import ecore.MoreThenFiveSuperTypes; 19import ecore.OppositeDifferentClass;
20 20
21public class MoreThenFiveSuperTypesConstraint0 implements IConstraintSpecification { 21public class OppositeDifferentClassConstraint0 implements IConstraintSpecification {
22 22
23 private MoreThenFiveSuperTypes querySpecification; 23 private OppositeDifferentClass querySpecification;
24 24
25 public MoreThenFiveSuperTypesConstraint0() { 25 public OppositeDifferentClassConstraint0() {
26 querySpecification = MoreThenFiveSuperTypes.instance(); 26 querySpecification = OppositeDifferentClass.instance();
27 } 27 }
28 28
29 @Override 29 @Override
@@ -35,14 +35,14 @@ public class MoreThenFiveSuperTypesConstraint0 implements IConstraintSpecificati
35 @Override 35 @Override
36 public Map<String,Object> getKeyObjects(IPatternMatch signature) { 36 public Map<String,Object> getKeyObjects(IPatternMatch signature) {
37 Map<String,Object> map = new HashMap<>(); 37 Map<String,Object> map = new HashMap<>();
38 map.put("c",signature.get("c")); 38 map.put("a",signature.get("a"));
39 return map; 39 return map;
40 } 40 }
41 41
42 @Override 42 @Override
43 public List<String> getKeyNames() { 43 public List<String> getKeyNames() {
44 List<String> keyNames = Arrays.asList( 44 List<String> keyNames = Arrays.asList(
45 "c" 45 "a"
46 ); 46 );
47 return keyNames; 47 return keyNames;
48 } 48 }
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/constraints/ecore/Ecore_pattern.java b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/constraints/ecore/Ecore_pattern.java
deleted file mode 100644
index 6da94486..00000000
--- a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/constraints/ecore/Ecore_pattern.java
+++ /dev/null
@@ -1,53 +0,0 @@
1/**
2 * Generated from platform:/resource/SocialNetwork_plugin/queries/ecore/ecore_pattern.vql
3 */
4package ecore;
5
6import ecore.MoreThenFiveSuperTypes;
7import org.eclipse.viatra.query.runtime.api.ViatraQueryEngine;
8import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedPatternGroup;
9
10/**
11 * A pattern group formed of all public patterns defined in ecore_pattern.vql.
12 *
13 * <p>Use the static instance as any {@link interface org.eclipse.viatra.query.runtime.api.IQueryGroup}, to conveniently prepare
14 * a VIATRA Query engine for matching all patterns originally defined in file ecore_pattern.vql,
15 * in order to achieve better performance than one-by-one on-demand matcher initialization.
16 *
17 * <p> From package ecore, the group contains the definition of the following patterns: <ul>
18 * <li>moreThenFiveSuperTypes</li>
19 * </ul>
20 *
21 * @see IQueryGroup
22 *
23 */
24@SuppressWarnings("all")
25public final class Ecore_pattern extends BaseGeneratedPatternGroup {
26 /**
27 * Access the pattern group.
28 *
29 * @return the singleton instance of the group
30 * @throws ViatraQueryRuntimeException if there was an error loading the generated code of pattern specifications
31 *
32 */
33 public static Ecore_pattern instance() {
34 if (INSTANCE == null) {
35 INSTANCE = new Ecore_pattern();
36 }
37 return INSTANCE;
38 }
39
40 private static Ecore_pattern INSTANCE;
41
42 private Ecore_pattern() {
43 querySpecifications.add(MoreThenFiveSuperTypes.instance());
44 }
45
46 public MoreThenFiveSuperTypes getMoreThenFiveSuperTypes() {
47 return MoreThenFiveSuperTypes.instance();
48 }
49
50 public MoreThenFiveSuperTypes.Matcher getMoreThenFiveSuperTypes(final ViatraQueryEngine engine) {
51 return MoreThenFiveSuperTypes.Matcher.on(engine);
52 }
53}
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/constraints/ecore/MoreThenFiveSuperTypes.java b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/constraints/ecore/MoreThenFiveSuperTypes.java
deleted file mode 100644
index da64d899..00000000
--- a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/constraints/ecore/MoreThenFiveSuperTypes.java
+++ /dev/null
@@ -1,621 +0,0 @@
1/**
2 * Generated from platform:/resource/SocialNetwork_plugin/queries/ecore/ecore_pattern.vql
3 */
4package ecore;
5
6import java.util.Arrays;
7import java.util.Collection;
8import java.util.Collections;
9import java.util.LinkedHashSet;
10import java.util.List;
11import java.util.Objects;
12import java.util.Optional;
13import java.util.Set;
14import java.util.function.Consumer;
15import java.util.stream.Collectors;
16import java.util.stream.Stream;
17import org.apache.log4j.Logger;
18import org.eclipse.emf.ecore.EClass;
19import org.eclipse.viatra.query.runtime.api.IPatternMatch;
20import org.eclipse.viatra.query.runtime.api.IQuerySpecification;
21import org.eclipse.viatra.query.runtime.api.ViatraQueryEngine;
22import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFPQuery;
23import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFQuerySpecification;
24import org.eclipse.viatra.query.runtime.api.impl.BaseMatcher;
25import org.eclipse.viatra.query.runtime.api.impl.BasePatternMatch;
26import org.eclipse.viatra.query.runtime.emf.types.EClassTransitiveInstancesKey;
27import org.eclipse.viatra.query.runtime.emf.types.EStructuralFeatureInstancesKey;
28import org.eclipse.viatra.query.runtime.matchers.backend.QueryEvaluationHint;
29import org.eclipse.viatra.query.runtime.matchers.psystem.IExpressionEvaluator;
30import org.eclipse.viatra.query.runtime.matchers.psystem.IValueProvider;
31import org.eclipse.viatra.query.runtime.matchers.psystem.PBody;
32import org.eclipse.viatra.query.runtime.matchers.psystem.PVariable;
33import org.eclipse.viatra.query.runtime.matchers.psystem.annotations.PAnnotation;
34import org.eclipse.viatra.query.runtime.matchers.psystem.annotations.ParameterReference;
35import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.Equality;
36import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.ExportedParameter;
37import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.ExpressionEvaluation;
38import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.PatternMatchCounter;
39import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.TypeConstraint;
40import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameter;
41import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameterDirection;
42import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PVisibility;
43import org.eclipse.viatra.query.runtime.matchers.tuple.Tuple;
44import org.eclipse.viatra.query.runtime.matchers.tuple.Tuples;
45import org.eclipse.viatra.query.runtime.util.ViatraQueryLoggingUtil;
46
47/**
48 * A pattern-specific query specification that can instantiate Matcher in a type-safe way.
49 *
50 * <p>Original source:
51 * <code><pre>
52 * {@literal @}Constraint(severity="error", message="error", key = {c})
53 * pattern moreThenFiveSuperTypes(c: EClass){
54 * m == count EClass.eSuperTypes(c,_);
55 * check(m {@literal >}= 5);
56 * }
57 * </pre></code>
58 *
59 * @see Matcher
60 * @see Match
61 *
62 */
63@SuppressWarnings("all")
64public final class MoreThenFiveSuperTypes extends BaseGeneratedEMFQuerySpecification<MoreThenFiveSuperTypes.Matcher> {
65 /**
66 * Pattern-specific match representation of the ecore.moreThenFiveSuperTypes pattern,
67 * to be used in conjunction with {@link Matcher}.
68 *
69 * <p>Class fields correspond to parameters of the pattern. Fields with value null are considered unassigned.
70 * Each instance is a (possibly partial) substitution of pattern parameters,
71 * usable to represent a match of the pattern in the result of a query,
72 * or to specify the bound (fixed) input parameters when issuing a query.
73 *
74 * @see Matcher
75 *
76 */
77 public static abstract class Match extends BasePatternMatch {
78 private EClass fC;
79
80 private static List<String> parameterNames = makeImmutableList("c");
81
82 private Match(final EClass pC) {
83 this.fC = pC;
84 }
85
86 @Override
87 public Object get(final String parameterName) {
88 if ("c".equals(parameterName)) return this.fC;
89 return null;
90 }
91
92 public EClass getC() {
93 return this.fC;
94 }
95
96 @Override
97 public boolean set(final String parameterName, final Object newValue) {
98 if (!isMutable()) throw new java.lang.UnsupportedOperationException();
99 if ("c".equals(parameterName) ) {
100 this.fC = (EClass) newValue;
101 return true;
102 }
103 return false;
104 }
105
106 public void setC(final EClass pC) {
107 if (!isMutable()) throw new java.lang.UnsupportedOperationException();
108 this.fC = pC;
109 }
110
111 @Override
112 public String patternName() {
113 return "ecore.moreThenFiveSuperTypes";
114 }
115
116 @Override
117 public List<String> parameterNames() {
118 return MoreThenFiveSuperTypes.Match.parameterNames;
119 }
120
121 @Override
122 public Object[] toArray() {
123 return new Object[]{fC};
124 }
125
126 @Override
127 public MoreThenFiveSuperTypes.Match toImmutable() {
128 return isMutable() ? newMatch(fC) : this;
129 }
130
131 @Override
132 public String prettyPrint() {
133 StringBuilder result = new StringBuilder();
134 result.append("\"c\"=" + prettyPrintValue(fC));
135 return result.toString();
136 }
137
138 @Override
139 public int hashCode() {
140 return Objects.hash(fC);
141 }
142
143 @Override
144 public boolean equals(final Object obj) {
145 if (this == obj)
146 return true;
147 if (obj == null) {
148 return false;
149 }
150 if ((obj instanceof MoreThenFiveSuperTypes.Match)) {
151 MoreThenFiveSuperTypes.Match other = (MoreThenFiveSuperTypes.Match) obj;
152 return Objects.equals(fC, other.fC);
153 } else {
154 // this should be infrequent
155 if (!(obj instanceof IPatternMatch)) {
156 return false;
157 }
158 IPatternMatch otherSig = (IPatternMatch) obj;
159 return Objects.equals(specification(), otherSig.specification()) && Arrays.deepEquals(toArray(), otherSig.toArray());
160 }
161 }
162
163 @Override
164 public MoreThenFiveSuperTypes specification() {
165 return MoreThenFiveSuperTypes.instance();
166 }
167
168 /**
169 * Returns an empty, mutable match.
170 * Fields of the mutable match can be filled to create a partial match, usable as matcher input.
171 *
172 * @return the empty match.
173 *
174 */
175 public static MoreThenFiveSuperTypes.Match newEmptyMatch() {
176 return new Mutable(null);
177 }
178
179 /**
180 * Returns a mutable (partial) match.
181 * Fields of the mutable match can be filled to create a partial match, usable as matcher input.
182 *
183 * @param pC the fixed value of pattern parameter c, or null if not bound.
184 * @return the new, mutable (partial) match object.
185 *
186 */
187 public static MoreThenFiveSuperTypes.Match newMutableMatch(final EClass pC) {
188 return new Mutable(pC);
189 }
190
191 /**
192 * Returns a new (partial) match.
193 * This can be used e.g. to call the matcher with a partial match.
194 * <p>The returned match will be immutable. Use {@link #newEmptyMatch()} to obtain a mutable match object.
195 * @param pC the fixed value of pattern parameter c, or null if not bound.
196 * @return the (partial) match object.
197 *
198 */
199 public static MoreThenFiveSuperTypes.Match newMatch(final EClass pC) {
200 return new Immutable(pC);
201 }
202
203 private static final class Mutable extends MoreThenFiveSuperTypes.Match {
204 Mutable(final EClass pC) {
205 super(pC);
206 }
207
208 @Override
209 public boolean isMutable() {
210 return true;
211 }
212 }
213
214 private static final class Immutable extends MoreThenFiveSuperTypes.Match {
215 Immutable(final EClass pC) {
216 super(pC);
217 }
218
219 @Override
220 public boolean isMutable() {
221 return false;
222 }
223 }
224 }
225
226 /**
227 * Generated pattern matcher API of the ecore.moreThenFiveSuperTypes pattern,
228 * providing pattern-specific query methods.
229 *
230 * <p>Use the pattern matcher on a given model via {@link #on(ViatraQueryEngine)},
231 * e.g. in conjunction with {@link ViatraQueryEngine#on(QueryScope)}.
232 *
233 * <p>Matches of the pattern will be represented as {@link Match}.
234 *
235 * <p>Original source:
236 * <code><pre>
237 * {@literal @}Constraint(severity="error", message="error", key = {c})
238 * pattern moreThenFiveSuperTypes(c: EClass){
239 * m == count EClass.eSuperTypes(c,_);
240 * check(m {@literal >}= 5);
241 * }
242 * </pre></code>
243 *
244 * @see Match
245 * @see MoreThenFiveSuperTypes
246 *
247 */
248 public static class Matcher extends BaseMatcher<MoreThenFiveSuperTypes.Match> {
249 /**
250 * Initializes the pattern matcher within an existing VIATRA Query engine.
251 * If the pattern matcher is already constructed in the engine, only a light-weight reference is returned.
252 *
253 * @param engine the existing VIATRA Query engine in which this matcher will be created.
254 * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation
255 *
256 */
257 public static MoreThenFiveSuperTypes.Matcher on(final ViatraQueryEngine engine) {
258 // check if matcher already exists
259 Matcher matcher = engine.getExistingMatcher(querySpecification());
260 if (matcher == null) {
261 matcher = (Matcher)engine.getMatcher(querySpecification());
262 }
263 return matcher;
264 }
265
266 /**
267 * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation
268 * @return an initialized matcher
269 * @noreference This method is for internal matcher initialization by the framework, do not call it manually.
270 *
271 */
272 public static MoreThenFiveSuperTypes.Matcher create() {
273 return new Matcher();
274 }
275
276 private static final int POSITION_C = 0;
277
278 private static final Logger LOGGER = ViatraQueryLoggingUtil.getLogger(MoreThenFiveSuperTypes.Matcher.class);
279
280 /**
281 * Initializes the pattern matcher within an existing VIATRA Query engine.
282 * If the pattern matcher is already constructed in the engine, only a light-weight reference is returned.
283 *
284 * @param engine the existing VIATRA Query engine in which this matcher will be created.
285 * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation
286 *
287 */
288 private Matcher() {
289 super(querySpecification());
290 }
291
292 /**
293 * Returns the set of all matches of the pattern that conform to the given fixed values of some parameters.
294 * @param pC the fixed value of pattern parameter c, or null if not bound.
295 * @return matches represented as a Match object.
296 *
297 */
298 public Collection<MoreThenFiveSuperTypes.Match> getAllMatches(final EClass pC) {
299 return rawStreamAllMatches(new Object[]{pC}).collect(Collectors.toSet());
300 }
301
302 /**
303 * Returns a stream of all matches of the pattern that conform to the given fixed values of some parameters.
304 * </p>
305 * <strong>NOTE</strong>: It is important not to modify the source model while the stream is being processed.
306 * If the match set of the pattern changes during processing, the contents of the stream is <strong>undefined</strong>.
307 * In such cases, either rely on {@link #getAllMatches()} or collect the results of the stream in end-user code.
308 * @param pC the fixed value of pattern parameter c, or null if not bound.
309 * @return a stream of matches represented as a Match object.
310 *
311 */
312 public Stream<MoreThenFiveSuperTypes.Match> streamAllMatches(final EClass pC) {
313 return rawStreamAllMatches(new Object[]{pC});
314 }
315
316 /**
317 * Returns an arbitrarily chosen match of the pattern that conforms to the given fixed values of some parameters.
318 * Neither determinism nor randomness of selection is guaranteed.
319 * @param pC the fixed value of pattern parameter c, or null if not bound.
320 * @return a match represented as a Match object, or null if no match is found.
321 *
322 */
323 public Optional<MoreThenFiveSuperTypes.Match> getOneArbitraryMatch(final EClass pC) {
324 return rawGetOneArbitraryMatch(new Object[]{pC});
325 }
326
327 /**
328 * Indicates whether the given combination of specified pattern parameters constitute a valid pattern match,
329 * under any possible substitution of the unspecified parameters (if any).
330 * @param pC the fixed value of pattern parameter c, or null if not bound.
331 * @return true if the input is a valid (partial) match of the pattern.
332 *
333 */
334 public boolean hasMatch(final EClass pC) {
335 return rawHasMatch(new Object[]{pC});
336 }
337
338 /**
339 * Returns the number of all matches of the pattern that conform to the given fixed values of some parameters.
340 * @param pC the fixed value of pattern parameter c, or null if not bound.
341 * @return the number of pattern matches found.
342 *
343 */
344 public int countMatches(final EClass pC) {
345 return rawCountMatches(new Object[]{pC});
346 }
347
348 /**
349 * Executes the given processor on 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 pC the fixed value of pattern parameter c, or null if not bound.
352 * @param processor the action that will process the selected match.
353 * @return true if the pattern has at least one match with the given parameter values, false if the processor was not invoked
354 *
355 */
356 public boolean forOneArbitraryMatch(final EClass pC, final Consumer<? super MoreThenFiveSuperTypes.Match> processor) {
357 return rawForOneArbitraryMatch(new Object[]{pC}, processor);
358 }
359
360 /**
361 * Returns a new (partial) match.
362 * This can be used e.g. to call the matcher with a partial match.
363 * <p>The returned match will be immutable. Use {@link #newEmptyMatch()} to obtain a mutable match object.
364 * @param pC the fixed value of pattern parameter c, or null if not bound.
365 * @return the (partial) match object.
366 *
367 */
368 public MoreThenFiveSuperTypes.Match newMatch(final EClass pC) {
369 return MoreThenFiveSuperTypes.Match.newMatch(pC);
370 }
371
372 /**
373 * Retrieve the set of values that occur in matches for c.
374 * @return the Set of all values or empty set if there are no matches
375 *
376 */
377 protected Stream<EClass> rawStreamAllValuesOfc(final Object[] parameters) {
378 return rawStreamAllValues(POSITION_C, parameters).map(EClass.class::cast);
379 }
380
381 /**
382 * Retrieve the set of values that occur in matches for c.
383 * @return the Set of all values or empty set if there are no matches
384 *
385 */
386 public Set<EClass> getAllValuesOfc() {
387 return rawStreamAllValuesOfc(emptyArray()).collect(Collectors.toSet());
388 }
389
390 /**
391 * Retrieve the set of values that occur in matches for c.
392 * @return the Set of all values or empty set if there are no matches
393 *
394 */
395 public Stream<EClass> streamAllValuesOfc() {
396 return rawStreamAllValuesOfc(emptyArray());
397 }
398
399 @Override
400 protected MoreThenFiveSuperTypes.Match tupleToMatch(final Tuple t) {
401 try {
402 return MoreThenFiveSuperTypes.Match.newMatch((EClass) t.get(POSITION_C));
403 } catch(ClassCastException e) {
404 LOGGER.error("Element(s) in tuple not properly typed!",e);
405 return null;
406 }
407 }
408
409 @Override
410 protected MoreThenFiveSuperTypes.Match arrayToMatch(final Object[] match) {
411 try {
412 return MoreThenFiveSuperTypes.Match.newMatch((EClass) match[POSITION_C]);
413 } catch(ClassCastException e) {
414 LOGGER.error("Element(s) in array not properly typed!",e);
415 return null;
416 }
417 }
418
419 @Override
420 protected MoreThenFiveSuperTypes.Match arrayToMatchMutable(final Object[] match) {
421 try {
422 return MoreThenFiveSuperTypes.Match.newMutableMatch((EClass) match[POSITION_C]);
423 } catch(ClassCastException e) {
424 LOGGER.error("Element(s) in array not properly typed!",e);
425 return null;
426 }
427 }
428
429 /**
430 * @return the singleton instance of the query specification of this pattern
431 * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded
432 *
433 */
434 public static IQuerySpecification<MoreThenFiveSuperTypes.Matcher> querySpecification() {
435 return MoreThenFiveSuperTypes.instance();
436 }
437 }
438
439 private MoreThenFiveSuperTypes() {
440 super(GeneratedPQuery.INSTANCE);
441 }
442
443 /**
444 * @return the singleton instance of the query specification
445 * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded
446 *
447 */
448 public static MoreThenFiveSuperTypes instance() {
449 try{
450 return LazyHolder.INSTANCE;
451 } catch (ExceptionInInitializerError err) {
452 throw processInitializerError(err);
453 }
454 }
455
456 @Override
457 protected MoreThenFiveSuperTypes.Matcher instantiate(final ViatraQueryEngine engine) {
458 return MoreThenFiveSuperTypes.Matcher.on(engine);
459 }
460
461 @Override
462 public MoreThenFiveSuperTypes.Matcher instantiate() {
463 return MoreThenFiveSuperTypes.Matcher.create();
464 }
465
466 @Override
467 public MoreThenFiveSuperTypes.Match newEmptyMatch() {
468 return MoreThenFiveSuperTypes.Match.newEmptyMatch();
469 }
470
471 @Override
472 public MoreThenFiveSuperTypes.Match newMatch(final Object... parameters) {
473 return MoreThenFiveSuperTypes.Match.newMatch((org.eclipse.emf.ecore.EClass) parameters[0]);
474 }
475
476 /**
477 * Inner class allowing the singleton instance of {@link JvmGenericType: ecore.MoreThenFiveSuperTypes (visibility: PUBLIC, simpleName: MoreThenFiveSuperTypes, identifier: ecore.MoreThenFiveSuperTypes, deprecated: <unset>) (abstract: false, static: false, final: true, packageName: ecore) (interface: false, strictFloatingPoint: false, anonymous: false)} to be created
478 * <b>not</b> at the class load time of the outer class,
479 * but rather at the first call to {@link JvmGenericType: ecore.MoreThenFiveSuperTypes (visibility: PUBLIC, simpleName: MoreThenFiveSuperTypes, identifier: ecore.MoreThenFiveSuperTypes, deprecated: <unset>) (abstract: false, static: false, final: true, packageName: ecore) (interface: false, strictFloatingPoint: false, anonymous: false)#instance()}.
480 *
481 * <p> This workaround is required e.g. to support recursion.
482 *
483 */
484 private static class LazyHolder {
485 private static final MoreThenFiveSuperTypes INSTANCE = new MoreThenFiveSuperTypes();
486
487 /**
488 * Statically initializes the query specification <b>after</b> the field {@link #INSTANCE} is assigned.
489 * This initialization order is required to support indirect recursion.
490 *
491 * <p> The static initializer is defined using a helper field to work around limitations of the code generator.
492 *
493 */
494 private static final Object STATIC_INITIALIZER = ensureInitialized();
495
496 public static Object ensureInitialized() {
497 INSTANCE.ensureInitializedInternal();
498 return null;
499 }
500 }
501
502 private static class GeneratedPQuery extends BaseGeneratedEMFPQuery {
503 private static final MoreThenFiveSuperTypes.GeneratedPQuery INSTANCE = new GeneratedPQuery();
504
505 private final PParameter parameter_c = new PParameter("c", "org.eclipse.emf.ecore.EClass", new EClassTransitiveInstancesKey((EClass)getClassifierLiteralSafe("http://www.eclipse.org/emf/2002/Ecore", "EClass")), PParameterDirection.INOUT);
506
507 private final List<PParameter> parameters = Arrays.asList(parameter_c);
508
509 private class Embedded_1_EClass_eSuperTypes extends BaseGeneratedEMFPQuery {
510 private final PParameter parameter_p0 = new PParameter("p0", "org.eclipse.emf.ecore.EClass", new EClassTransitiveInstancesKey((EClass)getClassifierLiteralSafe("http://www.eclipse.org/emf/2002/Ecore", "EClass")), PParameterDirection.INOUT);
511
512 private final PParameter parameter_p1 = new PParameter("p1", "org.eclipse.emf.ecore.EClass", new EClassTransitiveInstancesKey((EClass)getClassifierLiteralSafe("http://www.eclipse.org/emf/2002/Ecore", "EClass")), PParameterDirection.INOUT);
513
514 private final List<PParameter> embeddedParameters = Arrays.asList(parameter_p0, parameter_p1);
515
516 public Embedded_1_EClass_eSuperTypes() {
517 super(PVisibility.EMBEDDED);
518 }
519
520 @Override
521 public String getFullyQualifiedName() {
522 return GeneratedPQuery.this.getFullyQualifiedName() + "$Embedded_1_EClass_eSuperTypes";
523 }
524
525 @Override
526 public List<PParameter> getParameters() {
527 return embeddedParameters;
528 }
529
530 @Override
531 public Set<PBody> doGetContainedBodies() {
532 PBody body = new PBody(this);
533 PVariable var_p0 = body.getOrCreateVariableByName("p0");
534 PVariable var_p1 = body.getOrCreateVariableByName("p1");
535 body.setSymbolicParameters(Arrays.<ExportedParameter>asList(
536 new ExportedParameter(body, var_p0, parameter_p0),
537 new ExportedParameter(body, var_p1, parameter_p1)
538 ));
539 // EClass.eSuperTypes(c,_)
540 new TypeConstraint(body, Tuples.flatTupleOf(var_p0), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.eclipse.org/emf/2002/Ecore", "EClass")));
541 PVariable var__virtual_0_ = body.getOrCreateVariableByName(".virtual{0}");
542 new TypeConstraint(body, Tuples.flatTupleOf(var_p0, var__virtual_0_), new EStructuralFeatureInstancesKey(getFeatureLiteral("http://www.eclipse.org/emf/2002/Ecore", "EClass", "eSuperTypes")));
543 new TypeConstraint(body, Tuples.flatTupleOf(var__virtual_0_), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.eclipse.org/emf/2002/Ecore", "EClass")));
544 new Equality(body, var__virtual_0_, var_p1);
545 return Collections.singleton(body);
546 }
547 }
548
549 private GeneratedPQuery() {
550 super(PVisibility.PUBLIC);
551 }
552
553 @Override
554 public String getFullyQualifiedName() {
555 return "ecore.moreThenFiveSuperTypes";
556 }
557
558 @Override
559 public List<String> getParameterNames() {
560 return Arrays.asList("c");
561 }
562
563 @Override
564 public List<PParameter> getParameters() {
565 return parameters;
566 }
567
568 @Override
569 public Set<PBody> doGetContainedBodies() {
570 setEvaluationHints(new QueryEvaluationHint(null, QueryEvaluationHint.BackendRequirement.UNSPECIFIED));
571 Set<PBody> bodies = new LinkedHashSet<>();
572 {
573 PBody body = new PBody(this);
574 PVariable var_c = body.getOrCreateVariableByName("c");
575 PVariable var_m = body.getOrCreateVariableByName("m");
576 PVariable var___0_ = body.getOrCreateVariableByName("_<0>");
577 new TypeConstraint(body, Tuples.flatTupleOf(var_c), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.eclipse.org/emf/2002/Ecore", "EClass")));
578 body.setSymbolicParameters(Arrays.<ExportedParameter>asList(
579 new ExportedParameter(body, var_c, parameter_c)
580 ));
581 // m == count EClass.eSuperTypes(c,_)
582 PVariable var__virtual_0_ = body.getOrCreateVariableByName(".virtual{0}");
583 new PatternMatchCounter(body, Tuples.flatTupleOf(var_c, var___0_), new MoreThenFiveSuperTypes.GeneratedPQuery.Embedded_1_EClass_eSuperTypes(), var__virtual_0_);
584 new Equality(body, var_m, var__virtual_0_);
585 // check(m >= 5)
586 new ExpressionEvaluation(body, new IExpressionEvaluator() {
587
588 @Override
589 public String getShortDescription() {
590 return "Expression evaluation from pattern moreThenFiveSuperTypes";
591 }
592
593 @Override
594 public Iterable<String> getInputParameterNames() {
595 return Arrays.asList("m");}
596
597 @Override
598 public Object evaluateExpression(IValueProvider provider) throws Exception {
599 Integer m = (Integer) provider.getValue("m");
600 return evaluateExpression_1_1(m);
601 }
602 }, null);
603 bodies.add(body);
604 }
605 {
606 PAnnotation annotation = new PAnnotation("Constraint");
607 annotation.addAttribute("severity", "error");
608 annotation.addAttribute("message", "error");
609 annotation.addAttribute("key", Arrays.asList(new Object[] {
610 new ParameterReference("c")
611 }));
612 addAnnotation(annotation);
613 }
614 return bodies;
615 }
616 }
617
618 private static boolean evaluateExpression_1_1(final Integer m) {
619 return ((m).intValue() >= 5);
620 }
621}
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/ecore.ecore b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/ecore.ecore
new file mode 100644
index 00000000..e7dc2768
--- /dev/null
+++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/ecore.ecore
@@ -0,0 +1,1016 @@
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">
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:EAttribute" name="nsPrefix" eType="#//EString">
743 <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
744 <details key="kind" value="attribute"/>
745 <details key="name" value="nsPrefix"/>
746 </eAnnotations>
747 </eStructuralFeatures>
748 <eStructuralFeatures xsi:type="ecore:EAttribute" name="nsURI" eType="#//EString">
749 <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
750 <details key="kind" value="attribute"/>
751 <details key="name" value="nsURI"/>
752 </eAnnotations>
753 </eStructuralFeatures>
754 <eStructuralFeatures xsi:type="ecore:EReference" name="eSuperPackage" eType="#//EPackage"
755 transient="true" eOpposite="#//EPackage/eSubpackages"/>
756 </eClassifiers>
757 <eClassifiers xsi:type="ecore:EClass" name="EParameter" eSuperTypes="#//ETypedElement">
758 <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
759 <details key="name" value="EParameter"/>
760 <details key="kind" value="elementOnly"/>
761 </eAnnotations>
762 <eStructuralFeatures xsi:type="ecore:EReference" name="eOperation" eType="#//EOperation"
763 transient="true" eOpposite="#//EOperation/eParameters"/>
764 </eClassifiers>
765 <eClassifiers xsi:type="ecore:EClass" name="EReference" eSuperTypes="#//EStructuralFeature">
766 <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
767 <details key="name" value="EReference"/>
768 <details key="kind" value="elementOnly"/>
769 </eAnnotations>
770 <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
771 <details key="constraints" value="ConsistentOpposite SingleContainer ConsistentKeys ConsistentUnique ConsistentContainer"/>
772 </eAnnotations>
773 <eStructuralFeatures xsi:type="ecore:EAttribute" name="container" eType="#//EBoolean"
774 changeable="false" volatile="true" transient="true" derived="true">
775 <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
776 <details key="kind" value="attribute"/>
777 <details key="name" value="container"/>
778 </eAnnotations>
779 </eStructuralFeatures>
780 <eStructuralFeatures xsi:type="ecore:EAttribute" name="containment" eType="#//EBoolean">
781 <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
782 <details key="kind" value="attribute"/>
783 <details key="name" value="containment"/>
784 </eAnnotations>
785 </eStructuralFeatures>
786 <eStructuralFeatures xsi:type="ecore:EReference" name="eKeys" upperBound="-1"
787 eType="#//EAttribute">
788 <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
789 <details key="kind" value="attribute"/>
790 <details key="name" value="eKeys"/>
791 </eAnnotations>
792 </eStructuralFeatures>
793 <eStructuralFeatures xsi:type="ecore:EReference" name="eOpposite" eType="#//EReference">
794 <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
795 <details key="kind" value="attribute"/>
796 <details key="name" value="eOpposite"/>
797 </eAnnotations>
798 </eStructuralFeatures>
799 <eStructuralFeatures xsi:type="ecore:EReference" name="eReferenceType" lowerBound="1"
800 eType="#//EClass" changeable="false" volatile="true" transient="true" derived="true">
801 <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
802 <details key="kind" value="attribute"/>
803 <details key="name" value="eReferenceType"/>
804 </eAnnotations>
805 </eStructuralFeatures>
806 <eStructuralFeatures xsi:type="ecore:EAttribute" name="resolveProxies" eType="#//EBoolean"
807 defaultValueLiteral="true">
808 <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
809 <details key="kind" value="attribute"/>
810 <details key="name" value="resolveProxies"/>
811 </eAnnotations>
812 </eStructuralFeatures>
813 </eClassifiers>
814 <eClassifiers xsi:type="ecore:EDataType" name="EResource" instanceClassName="org.eclipse.emf.ecore.resource.Resource"
815 serializable="false">
816 <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
817 <details key="name" value="EResource"/>
818 </eAnnotations>
819 </eClassifiers>
820 <eClassifiers xsi:type="ecore:EDataType" name="EResourceSet" instanceClassName="org.eclipse.emf.ecore.resource.ResourceSet"
821 serializable="false">
822 <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
823 <details key="name" value="EResourceSet"/>
824 </eAnnotations>
825 </eClassifiers>
826 <eClassifiers xsi:type="ecore:EDataType" name="EShort" instanceClassName="short">
827 <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
828 <details key="name" value="EShort"/>
829 <details key="baseType" value="http://www.eclipse.org/emf/2003/XMLType#short"/>
830 </eAnnotations>
831 </eClassifiers>
832 <eClassifiers xsi:type="ecore:EDataType" name="EShortObject" instanceClassName="java.lang.Short">
833 <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
834 <details key="name" value="EShort:Object"/>
835 <details key="baseType" value="EShort"/>
836 </eAnnotations>
837 </eClassifiers>
838 <eClassifiers xsi:type="ecore:EDataType" name="EString" instanceClassName="java.lang.String">
839 <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
840 <details key="name" value="EString"/>
841 <details key="baseType" value="http://www.eclipse.org/emf/2003/XMLType#string"/>
842 </eAnnotations>
843 </eClassifiers>
844 <eClassifiers xsi:type="ecore:EClass" name="EStringToStringMapEntry" instanceClassName="java.util.Map$Entry">
845 <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
846 <details key="name" value="EStringToStringMapEntry"/>
847 <details key="kind" value="empty"/>
848 </eAnnotations>
849 <eStructuralFeatures xsi:type="ecore:EAttribute" name="key" eType="#//EString">
850 <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
851 <details key="kind" value="attribute"/>
852 <details key="name" value="key"/>
853 </eAnnotations>
854 </eStructuralFeatures>
855 <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" eType="#//EString">
856 <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
857 <details key="kind" value="attribute"/>
858 <details key="name" value="value"/>
859 </eAnnotations>
860 </eStructuralFeatures>
861 </eClassifiers>
862 <eClassifiers xsi:type="ecore:EClass" name="EStructuralFeature" abstract="true"
863 eSuperTypes="#//ETypedElement">
864 <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
865 <details key="name" value="EStructuralFeature"/>
866 <details key="kind" value="elementOnly"/>
867 </eAnnotations>
868 <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
869 <details key="constraints" value="ValidDefaultValueLiteral"/>
870 </eAnnotations>
871 <eOperations name="getFeatureID" eType="#//EInt"/>
872 <eOperations name="getContainerClass">
873 <eGenericType eClassifier="#//EJavaClass">
874 <eTypeArguments/>
875 </eGenericType>
876 </eOperations>
877 <eStructuralFeatures xsi:type="ecore:EAttribute" name="changeable" eType="#//EBoolean"
878 defaultValueLiteral="true">
879 <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
880 <details key="kind" value="attribute"/>
881 <details key="name" value="changeable"/>
882 </eAnnotations>
883 </eStructuralFeatures>
884 <eStructuralFeatures xsi:type="ecore:EAttribute" name="defaultValue" eType="#//EJavaObject"
885 changeable="false" volatile="true" transient="true" derived="true">
886 <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
887 <details key="kind" value="attribute"/>
888 <details key="name" value="defaultValue"/>
889 </eAnnotations>
890 </eStructuralFeatures>
891 <eStructuralFeatures xsi:type="ecore:EAttribute" name="defaultValueLiteral" eType="#//EString">
892 <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
893 <details key="kind" value="attribute"/>
894 <details key="name" value="defaultValueLiteral"/>
895 </eAnnotations>
896 </eStructuralFeatures>
897 <eStructuralFeatures xsi:type="ecore:EAttribute" name="derived" eType="#//EBoolean">
898 <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
899 <details key="kind" value="attribute"/>
900 <details key="name" value="derived"/>
901 </eAnnotations>
902 </eStructuralFeatures>
903 <eStructuralFeatures xsi:type="ecore:EAttribute" name="transient" eType="#//EBoolean">
904 <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
905 <details key="kind" value="attribute"/>
906 <details key="name" value="transient"/>
907 </eAnnotations>
908 </eStructuralFeatures>
909 <eStructuralFeatures xsi:type="ecore:EAttribute" name="unsettable" eType="#//EBoolean">
910 <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
911 <details key="kind" value="attribute"/>
912 <details key="name" value="unsettable"/>
913 </eAnnotations>
914 </eStructuralFeatures>
915 <eStructuralFeatures xsi:type="ecore:EAttribute" name="volatile" eType="#//EBoolean">
916 <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
917 <details key="kind" value="attribute"/>
918 <details key="name" value="volatile"/>
919 </eAnnotations>
920 </eStructuralFeatures>
921 <eStructuralFeatures xsi:type="ecore:EReference" name="eContainingClass" eType="#//EClass"
922 transient="true" eOpposite="#//EClass/eStructuralFeatures"/>
923 </eClassifiers>
924 <eClassifiers xsi:type="ecore:EDataType" name="ETreeIterator" instanceClassName="org.eclipse.emf.common.util.TreeIterator"
925 serializable="false">
926 <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
927 <details key="name" value="ETreeIterator"/>
928 </eAnnotations>
929 <eTypeParameters name="E"/>
930 </eClassifiers>
931 <eClassifiers xsi:type="ecore:EClass" name="ETypedElement" abstract="true" eSuperTypes="#//ENamedElement">
932 <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
933 <details key="name" value="ETypedElement"/>
934 <details key="kind" value="elementOnly"/>
935 </eAnnotations>
936 <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
937 <details key="constraints" value="ValidLowerBound ValidUpperBound ConsistentBounds ValidType"/>
938 </eAnnotations>
939 <eStructuralFeatures xsi:type="ecore:EReference" name="eGenericType" eType="#//EGenericType"
940 volatile="true" unsettable="true" containment="true" resolveProxies="false">
941 <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
942 <details key="kind" value="element"/>
943 <details key="name" value="eGenericType"/>
944 </eAnnotations>
945 <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
946 <details key="suppressedIsSetVisibility" value="true"/>
947 <details key="suppressedUnsetVisibility" value="true"/>
948 </eAnnotations>
949 </eStructuralFeatures>
950 <eStructuralFeatures xsi:type="ecore:EReference" name="eType" eType="#//EClassifier"
951 volatile="true" unsettable="true">
952 <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
953 <details key="kind" value="attribute"/>
954 <details key="name" value="eType"/>
955 </eAnnotations>
956 <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
957 <details key="suppressedIsSetVisibility" value="true"/>
958 <details key="suppressedUnsetVisibility" value="true"/>
959 </eAnnotations>
960 </eStructuralFeatures>
961 <eStructuralFeatures xsi:type="ecore:EAttribute" name="lowerBound" eType="#//EInt">
962 <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
963 <details key="kind" value="attribute"/>
964 <details key="name" value="lowerBound"/>
965 </eAnnotations>
966 </eStructuralFeatures>
967 <eStructuralFeatures xsi:type="ecore:EAttribute" name="many" eType="#//EBoolean"
968 changeable="false" volatile="true" transient="true" derived="true">
969 <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
970 <details key="kind" value="attribute"/>
971 <details key="name" value="many"/>
972 </eAnnotations>
973 </eStructuralFeatures>
974 <eStructuralFeatures xsi:type="ecore:EAttribute" name="ordered" eType="#//EBoolean"
975 defaultValueLiteral="true">
976 <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
977 <details key="kind" value="attribute"/>
978 <details key="name" value="ordered"/>
979 </eAnnotations>
980 </eStructuralFeatures>
981 <eStructuralFeatures xsi:type="ecore:EAttribute" name="required" eType="#//EBoolean"
982 changeable="false" volatile="true" transient="true" derived="true">
983 <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
984 <details key="kind" value="attribute"/>
985 <details key="name" value="required"/>
986 </eAnnotations>
987 </eStructuralFeatures>
988 <eStructuralFeatures xsi:type="ecore:EAttribute" name="unique" eType="#//EBoolean"
989 defaultValueLiteral="true">
990 <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
991 <details key="kind" value="attribute"/>
992 <details key="name" value="unique"/>
993 </eAnnotations>
994 </eStructuralFeatures>
995 <eStructuralFeatures xsi:type="ecore:EAttribute" name="upperBound" eType="#//EInt"
996 defaultValueLiteral="1">
997 <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
998 <details key="kind" value="attribute"/>
999 <details key="name" value="upperBound"/>
1000 </eAnnotations>
1001 </eStructuralFeatures>
1002 </eClassifiers>
1003 <eClassifiers xsi:type="ecore:EClass" name="ETypeParameter" eSuperTypes="#//ENamedElement">
1004 <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
1005 <details key="name" value="ETypeParameter"/>
1006 <details key="kind" value="elementOnly"/>
1007 </eAnnotations>
1008 <eStructuralFeatures xsi:type="ecore:EReference" name="eBounds" upperBound="-1"
1009 eType="#//EGenericType" containment="true" resolveProxies="false">
1010 <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
1011 <details key="kind" value="element"/>
1012 <details key="name" value="eBounds"/>
1013 </eAnnotations>
1014 </eStructuralFeatures>
1015 </eClassifiers>
1016</ecore:EPackage>
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/src/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/Main.xtend b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/src/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/Main.xtend
index 2add9f0e..dfde6593 100644
--- a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/src/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/Main.xtend
+++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/src/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/Main.xtend
@@ -18,9 +18,9 @@ import org.eclipse.emf.ecore.EReference
18class Main { 18class Main {
19 var static Domain d = Domain.Yakindumm; 19 var static Domain d = Domain.Yakindumm;
20 val static String suffix = '.xmi' 20 val static String suffix = '.xmi'
21 val static String OUTPUT_FOLDER = "Inputs/yakindumm/human/humanInput100/"; 21 val static String OUTPUT_FOLDER = "Inputs/measurement2/yakindu/Alloy/";
22 val static String INPUT_FOLDER = "outputs/Human/"; 22 val static String INPUT_FOLDER = "outputs/measurement2/yakindu/Alloy/";
23 val static int NUM_RUNS = 100; 23 val static int NUM_RUNS = 1;
24 24
25 static class RWInformation{ 25 static class RWInformation{
26 public var String inputFolder; 26 public var String inputFolder;
@@ -37,7 +37,6 @@ class Main {
37 def static void main(String[] args){ 37 def static void main(String[] args){
38 //init model 38 //init model
39 var EPackage metamodel; 39 var EPackage metamodel;
40
41 //init viatra engine for the violation checker 40 //init viatra engine for the violation checker
42 ReteEngine.getClass(); 41 ReteEngine.getClass();
43 42
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/src/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/PartialInterpretationMetricDistance.xtend b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/src/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/PartialInterpretationMetricDistance.xtend
index 4c9246d1..697b2639 100644
--- a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/src/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/PartialInterpretationMetricDistance.xtend
+++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/src/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/PartialInterpretationMetricDistance.xtend
@@ -162,9 +162,11 @@ class PartialInterpretationMetricDistance {
162 def double[] calculateFeature(int step, int violations){ 162 def double[] calculateFeature(int step, int violations){
163 var features = newDoubleArrayOfSize(2); 163 var features = newDoubleArrayOfSize(2);
164 //constant term 164 //constant term
165 features.set(0, 1); 165 features.set(0, 1); //a
166 features.set(0, Math.sqrt(step) + 30) 166 features.set(0, Math.sqrt(step) + 30) // b
167 features.set(1, 1.0 / (step + 30) ); 167 features.set(1, 1.0 / (step + 30) );// c
168
169
168// features.set(2, violations); 170// features.set(2, violations);
169// features.set(3, Math.pow(violations, 2)); 171// features.set(3, Math.pow(violations, 2));
170 172
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/src/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/graph/GraphStatistic.xtend b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/src/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/graph/GraphStatistic.xtend
index af05a1cd..31788bb2 100644
--- a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/src/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/graph/GraphStatistic.xtend
+++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/src/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/graph/GraphStatistic.xtend
@@ -186,5 +186,9 @@ class GraphStatistic {
186 return outgoingEdges; 186 return outgoingEdges;
187 } 187 }
188 188
189 def HashMap<String, Multimap<EObject, EObject>> incomingEdges(){
190 return incomingEdges;
191 }
192
189} 193}
190 194
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/src/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/io/GraphReader.xtend b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/src/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/io/GraphReader.xtend
index 858113e9..053e0da3 100644
--- a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/src/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/io/GraphReader.xtend
+++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/src/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/io/GraphReader.xtend
@@ -22,6 +22,7 @@ import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl
22import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl 22import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl
23import org.eclipse.emf.ecore.EGenericType 23import org.eclipse.emf.ecore.EGenericType
24import org.eclipse.emf.ecore.EStructuralFeature 24import org.eclipse.emf.ecore.EStructuralFeature
25import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.TypedClusteringCoefficientMetric
25 26
26class GraphReader{ 27class GraphReader{
27 val ResourceSet resSet = new ResourceSetImpl(); 28 val ResourceSet resSet = new ResourceSetImpl();
@@ -58,8 +59,6 @@ class GraphReader{
58 var count = 1 59 var count = 1
59 //check all files in the directory with suffix 60 //check all files in the directory with suffix
60 for(String name : dir.list.filter[it| it.endsWith(suffix)]){ 61 for(String name : dir.list.filter[it| it.endsWith(suffix)]){
61 println(name)
62 println(count)
63 val file = new File(name); 62 val file = new File(name);
64 val roots = readModel(EObject, path, file.name); 63 val roots = readModel(EObject, path, file.name);
65 //add a list of metrics 64 //add a list of metrics
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/src/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/io/RepMetricsReader.xtend b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/src/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/io/RepMetricsReader.xtend
index 06e88efc..2e7be586 100644
--- a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/src/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/io/RepMetricsReader.xtend
+++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/src/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/io/RepMetricsReader.xtend
@@ -2,6 +2,7 @@ package ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.io
2 2
3import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.app.Domain 3import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.app.Domain
4import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.MetricSampleGroup 4import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.MetricSampleGroup
5import github.impl.GithubPackageImpl
5import hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph.yakindumm.impl.YakindummPackageImpl 6import hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph.yakindumm.impl.YakindummPackageImpl
6import java.util.HashMap 7import java.util.HashMap
7import org.eclipse.emf.ecore.EReference 8import org.eclipse.emf.ecore.EReference
@@ -19,7 +20,7 @@ class RepMetricsReader {
19 }else if (d == Domain.Ecore){ 20 }else if (d == Domain.Ecore){
20 reader = new GraphReader(EcorePackageImpl.eINSTANCE, '.ecore'); 21 reader = new GraphReader(EcorePackageImpl.eINSTANCE, '.ecore');
21 }else if (d == Domain.Github){ 22 }else if (d == Domain.Github){
22 // Initialize the reader with github package 23 reader = new GraphReader(GithubPackageImpl.eINSTANCE, '.githubmodel')
23 } 24 }
24 25
25 domain = d; 26 domain = d;
@@ -58,6 +59,13 @@ class RepMetricsReader {
58 nodeTypeSamples.put('EGenericType', 0.002014098690835851); 59 nodeTypeSamples.put('EGenericType', 0.002014098690835851);
59 nodeTypeSamples.put('EOperation', 0.009415911379657605); 60 nodeTypeSamples.put('EOperation', 0.009415911379657605);
60 nodeTypeSamples.put('ETypeParameter', 0.0007049345417925478); 61 nodeTypeSamples.put('ETypeParameter', 0.0007049345417925478);
62 }else if (d == Domain.Github){
63 nodeTypeSamples.put('Project', 0.012636538873420432);
64 nodeTypeSamples.put('Commit', 0.5525808524309276);
65 nodeTypeSamples.put('User', 0.05847076461769116);
66 nodeTypeSamples.put('Issue', 0.12743628185907047);
67 nodeTypeSamples.put('PullRequest', 0.07560505461554937);
68 nodeTypeSamples.put('IssueEvent', 0.17327050760334123);
61 } 69 }
62 70
63 71
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/src/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/TypedClusteringCoefficientMetric.xtend b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/src/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/TypedClusteringCoefficientMetric.xtend
index 93f5ccd4..0b6d61c6 100644
--- a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/src/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/TypedClusteringCoefficientMetric.xtend
+++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/src/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/TypedClusteringCoefficientMetric.xtend
@@ -4,6 +4,7 @@ import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.graph.GraphStatis
4import java.text.DecimalFormat 4import java.text.DecimalFormat
5import java.util.ArrayList 5import java.util.ArrayList
6import java.util.HashMap 6import java.util.HashMap
7import java.util.HashSet
7import org.eclipse.emf.ecore.EObject 8import org.eclipse.emf.ecore.EObject
8 9
9class TypedClusteringCoefficientMetric extends Metric { 10class TypedClusteringCoefficientMetric extends Metric {
@@ -18,7 +19,9 @@ class TypedClusteringCoefficientMetric extends Metric {
18 //calculate the metric distribution 19 //calculate the metric distribution
19 g.allNodes.forEach[n| 20 g.allNodes.forEach[n|
20 var coef = calculateTCC1(n, g); 21 var coef = calculateTCC1(n, g);
21 22 if(coef > 0){
23 println(n);
24 }
22 //format number to String 25 //format number to String
23 val value = formatter.format(coef); 26 val value = formatter.format(coef);
24 if(!map.containsKey(value)){ 27 if(!map.containsKey(value)){
@@ -61,15 +64,20 @@ class TypedClusteringCoefficientMetric extends Metric {
61 var triangles = 0; 64 var triangles = 0;
62 65
63 for(type1 : g.allTypes){ 66 for(type1 : g.allTypes){
64 val type1EdgeTargetNodes = g.outgoingEdges.get(type1).values; 67 val typed1RelatedOfN = new HashSet<EObject>(g.outgoingEdges.get(type1).get(n));
68 val type1EdgeSourceNodesOfN = new HashSet<EObject>(g.incomingEdges.get(type1).get(n));
69
70 typed1RelatedOfN.addAll(type1EdgeSourceNodesOfN);
71
72
65 73
66 // number of wedges 74 // number of wedges
67 val d = type1EdgeTargetNodes.size 75 val d = typed1RelatedOfN.size
68 wedges += d * (d-1) 76 wedges += d * (d-1) // we will also count each closed triangle twice
69 77
70 // pairs of neighbors 78 // pairs of neighbors
71 for (n1: type1EdgeTargetNodes) { 79 for (n1: typed1RelatedOfN) {
72 for (n2: type1EdgeTargetNodes) { 80 for (n2: typed1RelatedOfN) {
73 for(type2 : g.allTypes){ 81 for(type2 : g.allTypes){
74 if ((type1 != type2) && 82 if ((type1 != type2) &&
75 (g.outgoingEdges.get(type2).containsEntry(n1, n2) || 83 (g.outgoingEdges.get(type2).containsEntry(n1, n2) ||
@@ -81,10 +89,11 @@ class TypedClusteringCoefficientMetric extends Metric {
81 } 89 }
82 } 90 }
83 } 91 }
92
84 if (wedges == 0.0) { 93 if (wedges == 0.0) {
85 return 0.0 94 return 0.0
86 } else { 95 } else {
87 return triangles/wedges 96 return (triangles as double)/wedges
88 } 97 }
89 } 98 }
90} \ No newline at end of file 99} \ No newline at end of file
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/src/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/validation/ViolationCheck.xtend b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/src/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/validation/ViolationCheck.xtend
index 3c98bb1c..4db5f940 100644
--- a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/src/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/validation/ViolationCheck.xtend
+++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/src/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/validation/ViolationCheck.xtend
@@ -2,7 +2,7 @@ package ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.validation
2 2
3import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.app.Domain 3import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.app.Domain
4import com.google.common.reflect.ClassPath 4import com.google.common.reflect.ClassPath
5import ecore.Ecore_pattern 5import ecore.Ecore
6import hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.Patterns 6import hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.Patterns
7import java.util.ArrayList 7import java.util.ArrayList
8import org.eclipse.emf.ecore.EObject 8import org.eclipse.emf.ecore.EObject
@@ -23,7 +23,7 @@ class ViolationCheck {
23 } 23 }
24 24
25 var constriants = loadConstraints(packageName); 25 var constriants = loadConstraints(packageName);
26 var collections = new ConstraintCollection(constriants, Ecore_pattern.instance); 26 var collections = new ConstraintCollection(constriants, Ecore.instance);
27 collections.addModel(root); 27 collections.addModel(root);
28 var results = collections.calculateViolations(); 28 var results = collections.calculateViolations();
29 if(results.size > 0){ 29 if(results.size > 0){
diff --git a/Metrics/Metrics-Calculation/metrics_plot/Measurements/Measurement1/output/ecore/MPC.png b/Metrics/Metrics-Calculation/metrics_plot/Measurements/Measurement1/output/ecore/MPC.png
index b6d4fbff..b8930a7b 100644
--- a/Metrics/Metrics-Calculation/metrics_plot/Measurements/Measurement1/output/ecore/MPC.png
+++ b/Metrics/Metrics-Calculation/metrics_plot/Measurements/Measurement1/output/ecore/MPC.png
Binary files differ
diff --git a/Metrics/Metrics-Calculation/metrics_plot/Measurements/Measurement1/output/ecore/Node_Activity.png b/Metrics/Metrics-Calculation/metrics_plot/Measurements/Measurement1/output/ecore/Node_Activity.png
index 226675e8..d55a000c 100644
--- a/Metrics/Metrics-Calculation/metrics_plot/Measurements/Measurement1/output/ecore/Node_Activity.png
+++ b/Metrics/Metrics-Calculation/metrics_plot/Measurements/Measurement1/output/ecore/Node_Activity.png
Binary files differ
diff --git a/Metrics/Metrics-Calculation/metrics_plot/Measurements/Measurement1/output/ecore/Node_Type.png b/Metrics/Metrics-Calculation/metrics_plot/Measurements/Measurement1/output/ecore/Node_Type.png
index 96814887..554923f5 100644
--- a/Metrics/Metrics-Calculation/metrics_plot/Measurements/Measurement1/output/ecore/Node_Type.png
+++ b/Metrics/Metrics-Calculation/metrics_plot/Measurements/Measurement1/output/ecore/Node_Type.png
Binary files differ
diff --git a/Metrics/Metrics-Calculation/metrics_plot/Measurements/Measurement1/output/ecore/Out_Degree.png b/Metrics/Metrics-Calculation/metrics_plot/Measurements/Measurement1/output/ecore/Out_Degree.png
index 3f5e3b38..1a605f9a 100644
--- a/Metrics/Metrics-Calculation/metrics_plot/Measurements/Measurement1/output/ecore/Out_Degree.png
+++ b/Metrics/Metrics-Calculation/metrics_plot/Measurements/Measurement1/output/ecore/Out_Degree.png
Binary files differ
diff --git a/Metrics/Metrics-Calculation/metrics_plot/Measurements/Measurement1/output/ecore/Violations.png b/Metrics/Metrics-Calculation/metrics_plot/Measurements/Measurement1/output/ecore/Violations.png
index 6e052662..719249d4 100644
--- a/Metrics/Metrics-Calculation/metrics_plot/Measurements/Measurement1/output/ecore/Violations.png
+++ b/Metrics/Metrics-Calculation/metrics_plot/Measurements/Measurement1/output/ecore/Violations.png
Binary files differ
diff --git a/Metrics/Metrics-Calculation/metrics_plot/Measurements/Measurement1/output/github/MPC.png b/Metrics/Metrics-Calculation/metrics_plot/Measurements/Measurement1/output/github/MPC.png
new file mode 100644
index 00000000..8f59786d
--- /dev/null
+++ b/Metrics/Metrics-Calculation/metrics_plot/Measurements/Measurement1/output/github/MPC.png
Binary files differ
diff --git a/Metrics/Metrics-Calculation/metrics_plot/Measurements/Measurement1/output/github/Node_Activity.png b/Metrics/Metrics-Calculation/metrics_plot/Measurements/Measurement1/output/github/Node_Activity.png
new file mode 100644
index 00000000..a3775f23
--- /dev/null
+++ b/Metrics/Metrics-Calculation/metrics_plot/Measurements/Measurement1/output/github/Node_Activity.png
Binary files differ
diff --git a/Metrics/Metrics-Calculation/metrics_plot/Measurements/Measurement1/output/github/Node_Type.png b/Metrics/Metrics-Calculation/metrics_plot/Measurements/Measurement1/output/github/Node_Type.png
new file mode 100644
index 00000000..5d3f81e1
--- /dev/null
+++ b/Metrics/Metrics-Calculation/metrics_plot/Measurements/Measurement1/output/github/Node_Type.png
Binary files differ
diff --git a/Metrics/Metrics-Calculation/metrics_plot/Measurements/Measurement1/output/github/Out_Degree.png b/Metrics/Metrics-Calculation/metrics_plot/Measurements/Measurement1/output/github/Out_Degree.png
new file mode 100644
index 00000000..a89eb552
--- /dev/null
+++ b/Metrics/Metrics-Calculation/metrics_plot/Measurements/Measurement1/output/github/Out_Degree.png
Binary files differ
diff --git a/Metrics/Metrics-Calculation/metrics_plot/Measurements/Measurement1/output/github/Violations.png b/Metrics/Metrics-Calculation/metrics_plot/Measurements/Measurement1/output/github/Violations.png
new file mode 100644
index 00000000..50a4cba0
--- /dev/null
+++ b/Metrics/Metrics-Calculation/metrics_plot/Measurements/Measurement1/output/github/Violations.png
Binary files differ
diff --git a/Metrics/Metrics-Calculation/metrics_plot/Measurements/Measurement1/output/yakindumm/MPC.png b/Metrics/Metrics-Calculation/metrics_plot/Measurements/Measurement1/output/yakindumm/MPC.png
index b4f2b9a2..fcff0dfe 100644
--- a/Metrics/Metrics-Calculation/metrics_plot/Measurements/Measurement1/output/yakindumm/MPC.png
+++ b/Metrics/Metrics-Calculation/metrics_plot/Measurements/Measurement1/output/yakindumm/MPC.png
Binary files differ
diff --git a/Metrics/Metrics-Calculation/metrics_plot/Measurements/Measurement1/output/yakindumm/Node_Activity.png b/Metrics/Metrics-Calculation/metrics_plot/Measurements/Measurement1/output/yakindumm/Node_Activity.png
index 44da865d..ad44025f 100644
--- a/Metrics/Metrics-Calculation/metrics_plot/Measurements/Measurement1/output/yakindumm/Node_Activity.png
+++ b/Metrics/Metrics-Calculation/metrics_plot/Measurements/Measurement1/output/yakindumm/Node_Activity.png
Binary files differ
diff --git a/Metrics/Metrics-Calculation/metrics_plot/Measurements/Measurement1/output/yakindumm/Node_Type.png b/Metrics/Metrics-Calculation/metrics_plot/Measurements/Measurement1/output/yakindumm/Node_Type.png
index fb9b86d1..a61d6e5a 100644
--- a/Metrics/Metrics-Calculation/metrics_plot/Measurements/Measurement1/output/yakindumm/Node_Type.png
+++ b/Metrics/Metrics-Calculation/metrics_plot/Measurements/Measurement1/output/yakindumm/Node_Type.png
Binary files differ
diff --git a/Metrics/Metrics-Calculation/metrics_plot/Measurements/Measurement1/output/yakindumm/Out_Degree.png b/Metrics/Metrics-Calculation/metrics_plot/Measurements/Measurement1/output/yakindumm/Out_Degree.png
index 49e4222a..4749db22 100644
--- a/Metrics/Metrics-Calculation/metrics_plot/Measurements/Measurement1/output/yakindumm/Out_Degree.png
+++ b/Metrics/Metrics-Calculation/metrics_plot/Measurements/Measurement1/output/yakindumm/Out_Degree.png
Binary files differ
diff --git a/Metrics/Metrics-Calculation/metrics_plot/Measurements/Measurement1/output/yakindumm/Violations.png b/Metrics/Metrics-Calculation/metrics_plot/Measurements/Measurement1/output/yakindumm/Violations.png
index 7d131230..ac09e580 100644
--- a/Metrics/Metrics-Calculation/metrics_plot/Measurements/Measurement1/output/yakindumm/Violations.png
+++ b/Metrics/Metrics-Calculation/metrics_plot/Measurements/Measurement1/output/yakindumm/Violations.png
Binary files differ
diff --git a/Metrics/Metrics-Calculation/metrics_plot/Measurements/Measurement1/src/BoxPlot.ipynb b/Metrics/Metrics-Calculation/metrics_plot/Measurements/Measurement1/src/BoxPlot.ipynb
index 6cce3f9d..5db66bb3 100644
--- a/Metrics/Metrics-Calculation/metrics_plot/Measurements/Measurement1/src/BoxPlot.ipynb
+++ b/Metrics/Metrics-Calculation/metrics_plot/Measurements/Measurement1/src/BoxPlot.ipynb
@@ -2,7 +2,7 @@
2 "cells": [ 2 "cells": [
3 { 3 {
4 "cell_type": "code", 4 "cell_type": "code",
5 "execution_count": 1, 5 "execution_count": 173,
6 "metadata": {}, 6 "metadata": {},
7 "outputs": [], 7 "outputs": [],
8 "source": [ 8 "source": [
@@ -20,7 +20,7 @@
20 }, 20 },
21 { 21 {
22 "cell_type": "code", 22 "cell_type": "code",
23 "execution_count": 2, 23 "execution_count": 174,
24 "metadata": {}, 24 "metadata": {},
25 "outputs": [], 25 "outputs": [],
26 "source": [ 26 "source": [
@@ -39,11 +39,11 @@
39 }, 39 },
40 { 40 {
41 "cell_type": "code", 41 "cell_type": "code",
42 "execution_count": 3, 42 "execution_count": 175,
43 "metadata": {}, 43 "metadata": {},
44 "outputs": [], 44 "outputs": [],
45 "source": [ 45 "source": [
46 "domain = 'ecore'\n", 46 "domain = 'github'\n",
47 "mpc_guide = getModels('../input/{}/MPC/'.format(domain), 100)\n", 47 "mpc_guide = getModels('../input/{}/MPC/'.format(domain), 100)\n",
48 "na_guide = getModels('../input/{}/NodeActivity/'.format(domain), 100)\n", 48 "na_guide = getModels('../input/{}/NodeActivity/'.format(domain), 100)\n",
49 "od_guide = getModels('../input/{}/OutDegree/'.format(domain), 100)\n", 49 "od_guide = getModels('../input/{}/OutDegree/'.format(domain), 100)\n",
@@ -57,19 +57,21 @@
57 }, 57 },
58 { 58 {
59 "cell_type": "code", 59 "cell_type": "code",
60 "execution_count": 4, 60 "execution_count": 176,
61 "metadata": {}, 61 "metadata": {},
62 "outputs": [], 62 "outputs": [],
63 "source": [ 63 "source": [
64 "if domain == 'yakindumm':\n", 64 "if domain == 'yakindumm':\n",
65 " type_map = {'Entry': 0.04257802080554814, 'Choice': 0.1267671379034409, 'State': 0.1596092291277674, 'Transition': 0.6138636969858629, 'Statechart': 0.010136036276340358, 'Region': 0.04467858095492131, 'Exit': 0.0018338223526273673, 'FinalState': 0.0005334755934915977}\n", 65 " type_map = {'Entry': 0.04257802080554814, 'Choice': 0.1267671379034409, 'State': 0.1596092291277674, 'Transition': 0.6138636969858629, 'Statechart': 0.010136036276340358, 'Region': 0.04467858095492131, 'Exit': 0.0018338223526273673, 'FinalState': 0.0005334755934915977}\n",
66 "elif domain == 'ecore':\n", 66 "elif domain == 'ecore':\n",
67 " type_map = {'EAttribute': 0.23539778449144008, 'EClass': 0.30996978851963747, 'EReference': 0.33081570996978854, 'EPackage': 0.012789526686807653, 'EAnnotation': 0.002517623363544813, 'EEnumLiteral': 0.07275931520644502, 'EEnum': 0.013645518630412891, 'EDataType': 0.004028197381671702, 'EParameter': 0.005941591137965764, 'EGenericType': 0.002014098690835851, 'EOperation': 0.009415911379657605, 'ETypeParameter': 0.0007049345417925478}" 67 " type_map = {'EAttribute': 0.23539778449144008, 'EClass': 0.30996978851963747, 'EReference': 0.33081570996978854, 'EPackage': 0.012789526686807653, 'EAnnotation': 0.002517623363544813, 'EEnumLiteral': 0.07275931520644502, 'EEnum': 0.013645518630412891, 'EDataType': 0.004028197381671702, 'EParameter': 0.005941591137965764, 'EGenericType': 0.002014098690835851, 'EOperation': 0.009415911379657605, 'ETypeParameter': 0.0007049345417925478}\n",
68 "elif domain == 'github':\n",
69 " type_map = {'Project': 0.012636538873420432, 'Commit': 0.5525808524309276, 'User': 0.05847076461769116, 'Issue': 0.12743628185907047, 'PullRequest': 0.07560505461554937, 'IssueEvent': 0.17327050760334123}"
68 ] 70 ]
69 }, 71 },
70 { 72 {
71 "cell_type": "code", 73 "cell_type": "code",
72 "execution_count": 5, 74 "execution_count": 177,
73 "metadata": {}, 75 "metadata": {},
74 "outputs": [], 76 "outputs": [],
75 "source": [ 77 "source": [
@@ -92,7 +94,7 @@
92 }, 94 },
93 { 95 {
94 "cell_type": "code", 96 "cell_type": "code",
95 "execution_count": 6, 97 "execution_count": 178,
96 "metadata": {}, 98 "metadata": {},
97 "outputs": [], 99 "outputs": [],
98 "source": [ 100 "source": [
@@ -103,7 +105,7 @@
103 }, 105 },
104 { 106 {
105 "cell_type": "code", 107 "cell_type": "code",
106 "execution_count": 7, 108 "execution_count": 179,
107 "metadata": {}, 109 "metadata": {},
108 "outputs": [], 110 "outputs": [],
109 "source": [ 111 "source": [
@@ -121,11 +123,10 @@
121 }, 123 },
122 { 124 {
123 "cell_type": "code", 125 "cell_type": "code",
124 "execution_count": 84, 126 "execution_count": 180,
125 "metadata": {}, 127 "metadata": {},
126 "outputs": [], 128 "outputs": [],
127 "source": [ 129 "source": [
128 "labels = ['Hum', 'Comb+V', 'Comb-V', 'MPC', 'NA', 'OD', 'NTD', 'VIO']\n",
129 "output_path = '../output/{}/'.format(domain)\n", 130 "output_path = '../output/{}/'.format(domain)\n",
130 "mkdir(output_path)" 131 "mkdir(output_path)"
131 ] 132 ]
@@ -139,31 +140,30 @@
139 }, 140 },
140 { 141 {
141 "cell_type": "code", 142 "cell_type": "code",
142 "execution_count": 87, 143 "execution_count": 181,
143 "metadata": {}, 144 "metadata": {},
144 "outputs": [], 145 "outputs": [],
145 "source": [ 146 "source": [
146 "def drawBoxDiagram(title, target, types, distance_func, bold_index):\n", 147 "def drawBoxDiagram(title, target, types, distance_func, label_position):\n",
147 " distances = []\n", 148 " distances = []\n",
148 " for distributions in types:\n", 149 " for distributions in types:\n",
149 " distances.append([distance_func(target, distribution) for distribution in distributions])\n", 150 " distances.append([distance_func(target, distribution) for distribution in distributions])\n",
150 " fig, ax1 = plt.subplots()\n", 151 " fig, ax1 = plt.subplots()\n",
151 " fig.set_size_inches(5, 2)\n", 152 " fig.set_size_inches(5, 2)\n",
152 " result = plt.boxplot(distances)\n", 153 " result = plt.boxplot(distances)\n",
154 " ax1.xaxis.set_ticks_position(label_position) \n",
153 " texts = ax1.set_xticklabels(labels, rotation=90, fontsize=12)\n", 155 " texts = ax1.set_xticklabels(labels, rotation=90, fontsize=12)\n",
154 " texts[bold_index].set_fontweight('bold')\n",
155 " \n",
156 " plt.savefig('{}/{}.png'.format(output_path, title), dpi=500, bbox_inches=\"tight\")" 156 " plt.savefig('{}/{}.png'.format(output_path, title), dpi=500, bbox_inches=\"tight\")"
157 ] 157 ]
158 }, 158 },
159 { 159 {
160 "cell_type": "code", 160 "cell_type": "code",
161 "execution_count": 88, 161 "execution_count": 182,
162 "metadata": {}, 162 "metadata": {},
163 "outputs": [ 163 "outputs": [
164 { 164 {
165 "data": { 165 "data": {
166 "image/png": "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\n", 166 "image/png": "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\n",
167 "text/plain": [ 167 "text/plain": [
168 "<Figure size 360x144 with 1 Axes>" 168 "<Figure size 360x144 with 1 Axes>"
169 ] 169 ]
@@ -177,19 +177,20 @@
177 "source": [ 177 "source": [
178 "# draw mpc\n", 178 "# draw mpc\n",
179 "mpc_types = []\n", 179 "mpc_types = []\n",
180 "labels = ['Hum', 'Comb+V', 'Comb-V', 'MPC', 'NA', 'OD', 'NTD', 'VIO']\n",
180 "for models in model_types:\n", 181 "for models in model_types:\n",
181 " mpc_types.append([model.mpc for model in models])\n", 182 " mpc_types.append([model.mpc for model in models])\n",
182 "drawBoxDiagram('MPC', rep.mpc, mpc_types, calculate_ks, 3)" 183 "drawBoxDiagram('MPC', rep.mpc, mpc_types, calculate_ks, 'top')"
183 ] 184 ]
184 }, 185 },
185 { 186 {
186 "cell_type": "code", 187 "cell_type": "code",
187 "execution_count": 89, 188 "execution_count": 183,
188 "metadata": {}, 189 "metadata": {},
189 "outputs": [ 190 "outputs": [
190 { 191 {
191 "data": { 192 "data": {
192 "image/png": "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\n", 193 "image/png": "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\n",
193 "text/plain": [ 194 "text/plain": [
194 "<Figure size 360x144 with 1 Axes>" 195 "<Figure size 360x144 with 1 Axes>"
195 ] 196 ]
@@ -203,19 +204,20 @@
203 "source": [ 204 "source": [
204 "# draw node activity\n", 205 "# draw node activity\n",
205 "na_types = []\n", 206 "na_types = []\n",
207 "labels = []\n",
206 "for models in model_types:\n", 208 "for models in model_types:\n",
207 " na_types.append([model.na for model in models])\n", 209 " na_types.append([model.na for model in models])\n",
208 "drawBoxDiagram('Node_Activity', rep.na, na_types, calculate_ks, 4)" 210 "drawBoxDiagram('Node_Activity', rep.na, na_types, calculate_ks, 'top')"
209 ] 211 ]
210 }, 212 },
211 { 213 {
212 "cell_type": "code", 214 "cell_type": "code",
213 "execution_count": 90, 215 "execution_count": 184,
214 "metadata": {}, 216 "metadata": {},
215 "outputs": [ 217 "outputs": [
216 { 218 {
217 "data": { 219 "data": {
218 "image/png": "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\n", 220 "image/png": "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\n",
219 "text/plain": [ 221 "text/plain": [
220 "<Figure size 360x144 with 1 Axes>" 222 "<Figure size 360x144 with 1 Axes>"
221 ] 223 ]
@@ -229,14 +231,15 @@
229 "source": [ 231 "source": [
230 "# draw out degree\n", 232 "# draw out degree\n",
231 "out_d_types = []\n", 233 "out_d_types = []\n",
234 "labels = []\n",
232 "for models in model_types:\n", 235 "for models in model_types:\n",
233 " out_d_types.append([model.out_d for model in models])\n", 236 " out_d_types.append([model.out_d for model in models])\n",
234 "drawBoxDiagram('Out_Degree', rep.out_d, out_d_types, calculate_ks, 5)" 237 "drawBoxDiagram('Out_Degree', rep.out_d, out_d_types, calculate_ks, 'top')"
235 ] 238 ]
236 }, 239 },
237 { 240 {
238 "cell_type": "code", 241 "cell_type": "code",
239 "execution_count": 91, 242 "execution_count": 185,
240 "metadata": {}, 243 "metadata": {},
241 "outputs": [], 244 "outputs": [],
242 "source": [ 245 "source": [
@@ -253,19 +256,19 @@
253 }, 256 },
254 { 257 {
255 "cell_type": "code", 258 "cell_type": "code",
256 "execution_count": 92, 259 "execution_count": 186,
257 "metadata": {}, 260 "metadata": {},
258 "outputs": [ 261 "outputs": [
259 { 262 {
260 "name": "stdout", 263 "name": "stdout",
261 "output_type": "stream", 264 "output_type": "stream",
262 "text": [ 265 "text": [
263 "['EAnnotation', 'EAttribute', 'EClass', 'EDataType', 'EEnum', 'EEnumLiteral', 'EGenericType', 'EOperation', 'EPackage', 'EParameter', 'EReference', 'ETypeParameter']\n" 266 "['Commit', 'Issue', 'IssueEvent', 'Project', 'PullRequest', 'User']\n"
264 ] 267 ]
265 }, 268 },
266 { 269 {
267 "data": { 270 "data": {
268 "image/png": "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\n", 271 "image/png": "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\n",
269 "text/plain": [ 272 "text/plain": [
270 "<Figure size 360x144 with 1 Axes>" 273 "<Figure size 360x144 with 1 Axes>"
271 ] 274 ]
@@ -278,6 +281,7 @@
278 ], 281 ],
279 "source": [ 282 "source": [
280 "# draw node type\n", 283 "# draw node type\n",
284 "labels = []\n",
281 "types = sorted(rep.nodeTypeStat.keys())\n", 285 "types = sorted(rep.nodeTypeStat.keys())\n",
282 "rep_type_dist = [float(rep.nodeTypeStat[key]) for key in types]\n", 286 "rep_type_dist = [float(rep.nodeTypeStat[key]) for key in types]\n",
283 "print(types)\n", 287 "print(types)\n",
@@ -289,17 +293,17 @@
289 " node_type_types.append(type_dists)\n", 293 " node_type_types.append(type_dists)\n",
290 "\n", 294 "\n",
291 "#since we already know the pdf, we can compute the ks distance manually\n", 295 "#since we already know the pdf, we can compute the ks distance manually\n",
292 "drawBoxDiagram('Node_Type', rep_type_dist, node_type_types, manual_ks, 6)" 296 "drawBoxDiagram('Node_Type', rep_type_dist, node_type_types, manual_ks, 'top')"
293 ] 297 ]
294 }, 298 },
295 { 299 {
296 "cell_type": "code", 300 "cell_type": "code",
297 "execution_count": 93, 301 "execution_count": 187,
298 "metadata": {}, 302 "metadata": {},
299 "outputs": [ 303 "outputs": [
300 { 304 {
301 "data": { 305 "data": {
302 "image/png": "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\n", 306 "image/png": "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\n",
303 "text/plain": [ 307 "text/plain": [
304 "<Figure size 360x144 with 1 Axes>" 308 "<Figure size 360x144 with 1 Axes>"
305 ] 309 ]
@@ -313,9 +317,10 @@
313 "source": [ 317 "source": [
314 "# draw violations\n", 318 "# draw violations\n",
315 "violation_types = []\n", 319 "violation_types = []\n",
320 "labels = ['Hum', 'Comb+V', 'Comb-V', 'MPC', 'NA', 'OD', 'NTD', 'VIO']\n",
316 "for models in model_types:\n", 321 "for models in model_types:\n",
317 " violation_types.append([model.violations for model in models])\n", 322 " violation_types.append([model.violations for model in models])\n",
318 "drawBoxDiagram('Violations', None, violation_types, lambda a, b:b, 7)" 323 "drawBoxDiagram('Violations', None, violation_types, lambda a, b:b, 'bottom')"
319 ] 324 ]
320 }, 325 },
321 { 326 {
diff --git a/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/ecore/Hum-All-Rand-GS-Real-Med-/MPC.png b/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/ecore/Hum-All-Rand-GS-Real-Med-/MPC.png
new file mode 100644
index 00000000..d184e5bf
--- /dev/null
+++ b/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/ecore/Hum-All-Rand-GS-Real-Med-/MPC.png
Binary files differ
diff --git a/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/ecore/Hum-All-Rand-GS-Real-Med-/MPC_lengend.png b/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/ecore/Hum-All-Rand-GS-Real-Med-/MPC_lengend.png
new file mode 100644
index 00000000..0dea77f2
--- /dev/null
+++ b/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/ecore/Hum-All-Rand-GS-Real-Med-/MPC_lengend.png
Binary files differ
diff --git a/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/ecore/Hum-All-Rand-GS-Real-Med-/Node_Activity.png b/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/ecore/Hum-All-Rand-GS-Real-Med-/Node_Activity.png
new file mode 100644
index 00000000..192fe6f0
--- /dev/null
+++ b/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/ecore/Hum-All-Rand-GS-Real-Med-/Node_Activity.png
Binary files differ
diff --git a/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/ecore/Hum-All-Rand-GS-Real-Med-/Node_Activity_lengend.png b/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/ecore/Hum-All-Rand-GS-Real-Med-/Node_Activity_lengend.png
new file mode 100644
index 00000000..4db337ef
--- /dev/null
+++ b/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/ecore/Hum-All-Rand-GS-Real-Med-/Node_Activity_lengend.png
Binary files differ
diff --git a/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/ecore/Hum-All-Rand-GS-Real-Med-/Node_Types.png b/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/ecore/Hum-All-Rand-GS-Real-Med-/Node_Types.png
new file mode 100644
index 00000000..2f24cda9
--- /dev/null
+++ b/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/ecore/Hum-All-Rand-GS-Real-Med-/Node_Types.png
Binary files differ
diff --git a/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/ecore/Hum-All-Rand-GS-Real-Med-/Node_Types_lengend.png b/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/ecore/Hum-All-Rand-GS-Real-Med-/Node_Types_lengend.png
new file mode 100644
index 00000000..14dcc501
--- /dev/null
+++ b/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/ecore/Hum-All-Rand-GS-Real-Med-/Node_Types_lengend.png
Binary files differ
diff --git a/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/ecore/Hum-All-Rand-GS-Real-Med-/Out_Degree.png b/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/ecore/Hum-All-Rand-GS-Real-Med-/Out_Degree.png
new file mode 100644
index 00000000..6f40ea4d
--- /dev/null
+++ b/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/ecore/Hum-All-Rand-GS-Real-Med-/Out_Degree.png
Binary files differ
diff --git a/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/ecore/Hum-All-Rand-GS-Real-Med-/Out_Degree_lengend.png b/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/ecore/Hum-All-Rand-GS-Real-Med-/Out_Degree_lengend.png
new file mode 100644
index 00000000..f2e3230b
--- /dev/null
+++ b/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/ecore/Hum-All-Rand-GS-Real-Med-/Out_Degree_lengend.png
Binary files differ
diff --git a/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/github/Hum-All-Rand-GS-Real-Med-/MPC.png b/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/github/Hum-All-Rand-GS-Real-Med-/MPC.png
new file mode 100644
index 00000000..834a91aa
--- /dev/null
+++ b/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/github/Hum-All-Rand-GS-Real-Med-/MPC.png
Binary files differ
diff --git a/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/github/Hum-All-Rand-GS-Real-Med-/MPC_lengend.png b/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/github/Hum-All-Rand-GS-Real-Med-/MPC_lengend.png
new file mode 100644
index 00000000..b3783c77
--- /dev/null
+++ b/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/github/Hum-All-Rand-GS-Real-Med-/MPC_lengend.png
Binary files differ
diff --git a/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/github/Hum-All-Rand-GS-Real-Med-/Node_Activity.png b/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/github/Hum-All-Rand-GS-Real-Med-/Node_Activity.png
new file mode 100644
index 00000000..2828f1fd
--- /dev/null
+++ b/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/github/Hum-All-Rand-GS-Real-Med-/Node_Activity.png
Binary files differ
diff --git a/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/github/Hum-All-Rand-GS-Real-Med-/Node_Activity_lengend.png b/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/github/Hum-All-Rand-GS-Real-Med-/Node_Activity_lengend.png
new file mode 100644
index 00000000..4a50e619
--- /dev/null
+++ b/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/github/Hum-All-Rand-GS-Real-Med-/Node_Activity_lengend.png
Binary files differ
diff --git a/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/github/Hum-All-Rand-GS-Real-Med-/Node_Types.png b/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/github/Hum-All-Rand-GS-Real-Med-/Node_Types.png
new file mode 100644
index 00000000..991ff1ff
--- /dev/null
+++ b/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/github/Hum-All-Rand-GS-Real-Med-/Node_Types.png
Binary files differ
diff --git a/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/github/Hum-All-Rand-GS-Real-Med-/Node_Types_lengend.png b/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/github/Hum-All-Rand-GS-Real-Med-/Node_Types_lengend.png
new file mode 100644
index 00000000..d13686c8
--- /dev/null
+++ b/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/github/Hum-All-Rand-GS-Real-Med-/Node_Types_lengend.png
Binary files differ
diff --git a/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/github/Hum-All-Rand-GS-Real-Med-/Out_Degree.png b/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/github/Hum-All-Rand-GS-Real-Med-/Out_Degree.png
new file mode 100644
index 00000000..12b4ce33
--- /dev/null
+++ b/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/github/Hum-All-Rand-GS-Real-Med-/Out_Degree.png
Binary files differ
diff --git a/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/github/Hum-All-Rand-GS-Real-Med-/Out_Degree_lengend.png b/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/github/Hum-All-Rand-GS-Real-Med-/Out_Degree_lengend.png
new file mode 100644
index 00000000..03fe9740
--- /dev/null
+++ b/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/github/Hum-All-Rand-GS-Real-Med-/Out_Degree_lengend.png
Binary files differ
diff --git a/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/test/Hum-/TCC.png b/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/test/Hum-/TCC.png
new file mode 100644
index 00000000..31a83155
--- /dev/null
+++ b/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/test/Hum-/TCC.png
Binary files differ
diff --git a/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/test/Hum-/TCC_lengend.png b/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/test/Hum-/TCC_lengend.png
new file mode 100644
index 00000000..e29f59cb
--- /dev/null
+++ b/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/test/Hum-/TCC_lengend.png
Binary files differ
diff --git a/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/test/Hum-Rand-GS-Real-/TCC.png b/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/test/Hum-Rand-GS-Real-/TCC.png
new file mode 100644
index 00000000..a3d56a23
--- /dev/null
+++ b/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/test/Hum-Rand-GS-Real-/TCC.png
Binary files differ
diff --git a/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/test/Hum-Rand-GS-Real-/TCC_lengend.png b/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/test/Hum-Rand-GS-Real-/TCC_lengend.png
new file mode 100644
index 00000000..58cefaff
--- /dev/null
+++ b/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/test/Hum-Rand-GS-Real-/TCC_lengend.png
Binary files differ
diff --git a/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/test/Hum-Real-/TCC.png b/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/test/Hum-Real-/TCC.png
new file mode 100644
index 00000000..e9614b89
--- /dev/null
+++ b/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/test/Hum-Real-/TCC.png
Binary files differ
diff --git a/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/test/Hum-Real-/TCC_lengend.png b/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/test/Hum-Real-/TCC_lengend.png
new file mode 100644
index 00000000..f0cee20a
--- /dev/null
+++ b/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/test/Hum-Real-/TCC_lengend.png
Binary files differ
diff --git a/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/yakindu/Hum-All-Rand-GS-Real-Med-/MPC.png b/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/yakindu/Hum-All-Rand-GS-Real-Med-/MPC.png
new file mode 100644
index 00000000..a53bda79
--- /dev/null
+++ b/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/yakindu/Hum-All-Rand-GS-Real-Med-/MPC.png
Binary files differ
diff --git a/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/yakindu/Hum-All-Rand-GS-Real-Med-/MPC_lengend.png b/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/yakindu/Hum-All-Rand-GS-Real-Med-/MPC_lengend.png
new file mode 100644
index 00000000..7a49fb91
--- /dev/null
+++ b/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/yakindu/Hum-All-Rand-GS-Real-Med-/MPC_lengend.png
Binary files differ
diff --git a/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/yakindu/Hum-All-Rand-GS-Real-Med-/Node_Activity.png b/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/yakindu/Hum-All-Rand-GS-Real-Med-/Node_Activity.png
new file mode 100644
index 00000000..bf6ca9ba
--- /dev/null
+++ b/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/yakindu/Hum-All-Rand-GS-Real-Med-/Node_Activity.png
Binary files differ
diff --git a/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/yakindu/Hum-All-Rand-GS-Real-Med-/Node_Activity_lengend.png b/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/yakindu/Hum-All-Rand-GS-Real-Med-/Node_Activity_lengend.png
new file mode 100644
index 00000000..d82a124e
--- /dev/null
+++ b/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/yakindu/Hum-All-Rand-GS-Real-Med-/Node_Activity_lengend.png
Binary files differ
diff --git a/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/yakindu/Hum-All-Rand-GS-Real-Med-/Node_Types.png b/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/yakindu/Hum-All-Rand-GS-Real-Med-/Node_Types.png
new file mode 100644
index 00000000..0e7b1e46
--- /dev/null
+++ b/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/yakindu/Hum-All-Rand-GS-Real-Med-/Node_Types.png
Binary files differ
diff --git a/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/yakindu/Hum-All-Rand-GS-Real-Med-/Node_Types_lengend.png b/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/yakindu/Hum-All-Rand-GS-Real-Med-/Node_Types_lengend.png
new file mode 100644
index 00000000..7f9e560e
--- /dev/null
+++ b/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/yakindu/Hum-All-Rand-GS-Real-Med-/Node_Types_lengend.png
Binary files differ
diff --git a/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/yakindu/Hum-All-Rand-GS-Real-Med-/Out_Degree.png b/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/yakindu/Hum-All-Rand-GS-Real-Med-/Out_Degree.png
new file mode 100644
index 00000000..928a0704
--- /dev/null
+++ b/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/yakindu/Hum-All-Rand-GS-Real-Med-/Out_Degree.png
Binary files differ
diff --git a/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/yakindu/Hum-All-Rand-GS-Real-Med-/Out_Degree_lengend.png b/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/yakindu/Hum-All-Rand-GS-Real-Med-/Out_Degree_lengend.png
new file mode 100644
index 00000000..0059a925
--- /dev/null
+++ b/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/yakindu/Hum-All-Rand-GS-Real-Med-/Out_Degree_lengend.png
Binary files differ
diff --git a/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/yakindu/Human-Alloy-BaseViatra-RealViatra-Random-rep-/MPC.png b/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/yakindu/Human-Alloy-BaseViatra-RealViatra-Random-rep-/MPC.png
deleted file mode 100644
index b4895790..00000000
--- a/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/yakindu/Human-Alloy-BaseViatra-RealViatra-Random-rep-/MPC.png
+++ /dev/null
Binary files differ
diff --git a/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/yakindu/Human-Alloy-BaseViatra-RealViatra-Random-rep-/MPC_lengend.png b/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/yakindu/Human-Alloy-BaseViatra-RealViatra-Random-rep-/MPC_lengend.png
deleted file mode 100644
index 31cd1fa1..00000000
--- a/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/yakindu/Human-Alloy-BaseViatra-RealViatra-Random-rep-/MPC_lengend.png
+++ /dev/null
Binary files differ
diff --git a/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/yakindu/Human-Alloy-BaseViatra-RealViatra-Random-rep-/Node Types.png b/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/yakindu/Human-Alloy-BaseViatra-RealViatra-Random-rep-/Node Types.png
deleted file mode 100644
index ad522d86..00000000
--- a/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/yakindu/Human-Alloy-BaseViatra-RealViatra-Random-rep-/Node Types.png
+++ /dev/null
Binary files differ
diff --git a/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/yakindu/Human-Alloy-BaseViatra-RealViatra-Random-rep-/Node Types_lengend.png b/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/yakindu/Human-Alloy-BaseViatra-RealViatra-Random-rep-/Node Types_lengend.png
deleted file mode 100644
index 5507adde..00000000
--- a/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/yakindu/Human-Alloy-BaseViatra-RealViatra-Random-rep-/Node Types_lengend.png
+++ /dev/null
Binary files differ
diff --git a/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/yakindu/Human-Alloy-BaseViatra-RealViatra-Random-rep-/Node_Activity.png b/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/yakindu/Human-Alloy-BaseViatra-RealViatra-Random-rep-/Node_Activity.png
deleted file mode 100644
index b080c54d..00000000
--- a/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/yakindu/Human-Alloy-BaseViatra-RealViatra-Random-rep-/Node_Activity.png
+++ /dev/null
Binary files differ
diff --git a/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/yakindu/Human-Alloy-BaseViatra-RealViatra-Random-rep-/Node_Activity_lengend.png b/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/yakindu/Human-Alloy-BaseViatra-RealViatra-Random-rep-/Node_Activity_lengend.png
deleted file mode 100644
index 8d45735a..00000000
--- a/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/yakindu/Human-Alloy-BaseViatra-RealViatra-Random-rep-/Node_Activity_lengend.png
+++ /dev/null
Binary files differ
diff --git a/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/yakindu/Human-Alloy-BaseViatra-RealViatra-Random-rep-/Out_Degree.png b/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/yakindu/Human-Alloy-BaseViatra-RealViatra-Random-rep-/Out_Degree.png
deleted file mode 100644
index 9dbcd05f..00000000
--- a/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/yakindu/Human-Alloy-BaseViatra-RealViatra-Random-rep-/Out_Degree.png
+++ /dev/null
Binary files differ
diff --git a/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/yakindu/Human-Alloy-BaseViatra-RealViatra-Random-rep-/Out_Degree_lengend.png b/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/yakindu/Human-Alloy-BaseViatra-RealViatra-Random-rep-/Out_Degree_lengend.png
deleted file mode 100644
index 1fee8654..00000000
--- a/Metrics/Metrics-Calculation/metrics_plot/model comparison/output/yakindu/Human-Alloy-BaseViatra-RealViatra-Random-rep-/Out_Degree_lengend.png
+++ /dev/null
Binary files differ
diff --git a/Metrics/Metrics-Calculation/metrics_plot/model comparison/src/plot_ks_stats.py b/Metrics/Metrics-Calculation/metrics_plot/model comparison/src/plot_ks_stats.py
index af231a98..75fe78eb 100644
--- a/Metrics/Metrics-Calculation/metrics_plot/model comparison/src/plot_ks_stats.py
+++ b/Metrics/Metrics-Calculation/metrics_plot/model comparison/src/plot_ks_stats.py
@@ -11,27 +11,40 @@ from GraphType import GraphCollection
11import DistributionMetrics as metrics 11import DistributionMetrics as metrics
12 12
13def main(): 13def main():
14 domain = 'github'
14 # read models 15 # read models
15 alloy = GraphCollection('../input/measurement2/yakindu/Alloy/', 100, 'Alloy') 16 alloy = GraphCollection('../input/measurement2/{}/Alloy/'.format(domain), 100, 'All')
16 human = GraphCollection('../input/measurement2/yakindu/Human/', 304, 'Human') 17 human = GraphCollection('../input/measurement2/{}/Human/'.format(domain), 304, 'Hum')
17 base = GraphCollection('../input/measurement2/yakindu/BaseViatra/', 100, 'BaseViatra') 18 base = GraphCollection('../input/measurement2/{}/BaseViatra/'.format(domain), 100, 'GS')
18 real = GraphCollection('../input/measurement2/yakindu/RealViatra/', 100, 'RealViatra') 19 real = GraphCollection('../input/measurement2/{}/RealViatra/'.format(domain), 100, 'Real')
19 random = GraphCollection('../input/measurement2/yakindu/Random/', 100, 'Random') 20 random = GraphCollection('../input/measurement2/{}/Random/'.format(domain), 100, 'Rand')
20 na_rep = GraphCollection('../input/measurement2/yakindu/Human/na_rep/', 1, 'rep') 21 na_rep = GraphCollection('../input/measurement2/{}/Human/na_rep/'.format(domain), 1, 'Med')
21 mpc_rep = GraphCollection('../input/measurement2/yakindu/Human/mpc_rep/', 1, 'rep') 22 mpc_rep = GraphCollection('../input/measurement2/{}/Human/mpc_rep/'.format(domain), 1, 'Med')
22 od_rep = GraphCollection('../input/measurement2/yakindu/Human/od_rep/', 1, 'rep') 23 od_rep = GraphCollection('../input/measurement2/{}/Human/od_rep/'.format(domain), 1, 'Med')
23 24
24 # a hack to make the node type as the same as an exiting model 25 # a hack to make the node type as the same as an exiting model
25 type_rep = GraphCollection('../input/measurement2/yakindu/Human/od_rep/', 1, 'rep') 26 type_rep = GraphCollection('../input/measurement2/{}/Human/od_rep/'.format(domain), 1, 'Med')
26 type_rep.nts = [{'Entry': 0.04257802080554814, 'Choice': 0.1267671379034409, 'State': 0.1596092291277674, 'Transition': 0.6138636969858629, 'Statechart': 0.010136036276340358, 'Region': 0.04467858095492131, 'Exit': 0.0018338223526273673, 'FinalState': 0.0005334755934915977}] 27 if(domain == 'yakindu'):
27 # type_rep.nts = [{'EAttribute': 0.23539778449144008, 'EClass': 0.30996978851963747, 'EReference': 0.33081570996978854, 'EPackage': 0.012789526686807653, 'EAnnotation': 0.002517623363544813, 'EEnumLiteral': 0.07275931520644502, 'EEnum': 0.013645518630412891, 'EDataType': 0.004028197381671702, 'EParameter': 0.005941591137965764, 'EGenericType': 0.002014098690835851, 'EOperation': 0.009415911379657605, 'ETypeParameter': 0.0007049345417925478}] 28 type_rep.nts = [{'Entry': 0.04257802080554814, 'Choice': 0.1267671379034409, 'State': 0.1596092291277674, 'Transition': 0.6138636969858629, 'Statechart': 0.010136036276340358, 'Region': 0.04467858095492131, 'Exit': 0.0018338223526273673, 'FinalState': 0.0005334755934915977}]
29 elif (domain == 'ecore'):
30 type_rep.nts = [{'EAttribute': 0.23539778449144008, 'EClass': 0.30996978851963747, 'EReference': 0.33081570996978854, 'EPackage': 0.012789526686807653, 'EAnnotation': 0.002517623363544813, 'EEnumLiteral': 0.07275931520644502, 'EEnum': 0.013645518630412891, 'EDataType': 0.004028197381671702, 'EParameter': 0.005941591137965764, 'EGenericType': 0.002014098690835851, 'EOperation': 0.009415911379657605, 'ETypeParameter': 0.0007049345417925478}]
31 elif (domain == 'github'):
32 type_rep.nts = [{'Project': 0.012636538873420432, 'Commit': 0.5525808524309276, 'User': 0.05847076461769116, 'Issue': 0.12743628185907047, 'PullRequest': 0.07560505461554937, 'IssueEvent': 0.17327050760334123}]
33
28 types = sorted(type_rep.nts[0].keys()) 34 types = sorted(type_rep.nts[0].keys())
29 35
30 models_to_compare_na = [human, alloy, base, real, random, na_rep] 36 model_collections = [human, alloy, random, base, real]
31 models_to_compare_mpc = [human, alloy, base, real, random, mpc_rep] 37 for model_collection in model_collections:
32 models_to_compare_od = [human, alloy, base, real, random, od_rep] 38 print(model_collection.name)
33 models_to_compare_nt = [human, alloy, base, real, random, type_rep] 39 length = len(model_collection.violations)
40 percentage = sum(map(lambda v: int(v==0), model_collection.violations)) / length
41 print(percentage)
42
34 43
44 models_to_compare_na = [human, alloy, random, base, real, na_rep]
45 models_to_compare_mpc = [human, alloy, random, base, real, mpc_rep]
46 models_to_compare_od = [human, alloy, random, base, real, od_rep]
47 models_to_compare_nt = [human, alloy, random, base, real, type_rep]
35 for modelCollection in models_to_compare_nt: 48 for modelCollection in models_to_compare_nt:
36 type_dists = [] 49 type_dists = []
37 for nt in modelCollection.nts: 50 for nt in modelCollection.nts:
@@ -43,13 +56,13 @@ def main():
43 56
44 57
45 # define output folder 58 # define output folder
46 outputFolder = '../output/yakindu/' 59 outputFolder = '../output/{}/'.format(domain)
47 60
48 #calculate metrics 61 #calculate metrics
49 metricStat(models_to_compare_na, 'Node_Activity', nodeActivity, 0, outputFolder, calculateKSMatrix) 62 metricStat(models_to_compare_na, 'Node_Activity', nodeActivity, 0, outputFolder, calculateKSMatrix)
50 metricStat(models_to_compare_od, 'Out_Degree', outDegree, 1, outputFolder, calculateKSMatrix) 63 metricStat(models_to_compare_od, 'Out_Degree', outDegree, 1, outputFolder, calculateKSMatrix)
51 metricStat(models_to_compare_mpc, 'MPC', mpc, 2, outputFolder, calculateKSMatrix) 64 metricStat(models_to_compare_mpc, 'MPC', mpc, 2, outputFolder, calculateKSMatrix)
52 metricStat(models_to_compare_nt, 'Node_Types', nodeType, 3, outputFolder, calculateManualKSMatrix) 65 metricStat(models_to_compare_nt, 'Node_Types', nodeType, 3, outputFolder, calculateManualKSMatrix)
53 66
54def calculateKSMatrix(dists): 67def calculateKSMatrix(dists):
55 dist = [] 68 dist = []
@@ -88,16 +101,17 @@ def calculateMDS(dissimilarities):
88 return trans 101 return trans
89 102
90def plot(graphTypes, coords, title='',index = 0, savePath = ''): 103def plot(graphTypes, coords, title='',index = 0, savePath = ''):
91 color = ['blue' , 'm', 'gold', 'green', 'k', 'red'] 104 color = ['#377eb8' , '#e41a1c', '#4daf4a', '#984ea3', '#ff7f00', '#ffff33']
92 markers = ['o', 'v','+', 'x', '^', '*'] 105 markers = ['o', '+', 'x', '^', 'v', '*']
93 plt.figure(index, figsize=(5, 4)) 106 fill_styles = ['full', 'full', 'full', 'none', 'none', 'full']
107 plt.figure(index, figsize=(5, 2))
94 # plt.title(title) 108 # plt.title(title)
95 index = 0 109 index = 0
96 for i in range(len(graphTypes)): 110 for i in range(len(graphTypes)):
97 x = (coords[index:index+graphTypes[i].size, 0].tolist()) 111 x = (coords[index:index+graphTypes[i].size, 0].tolist())
98 y = (coords[index:index+graphTypes[i].size, 1].tolist()) 112 y = (coords[index:index+graphTypes[i].size, 1].tolist())
99 index += graphTypes[i].size 113 index += graphTypes[i].size
100 plt.plot(x, y, color=color[i], marker=markers[i], label = graphTypes[i].name, linestyle='', alpha=0.7) 114 plt.plot(x, y, color=color[i], marker=markers[i], label = graphTypes[i].name, linestyle='', alpha=0.7, fillstyle = fill_styles[i])
101 plt.savefig(fname = savePath+'.png', dpi=500) 115 plt.savefig(fname = savePath+'.png', dpi=500)
102 plt.legend(loc='upper right') 116 plt.legend(loc='upper right')
103 plt.savefig(fname = savePath+'_lengend.png', dpi=500) 117 plt.savefig(fname = savePath+'_lengend.png', dpi=500)
@@ -137,5 +151,8 @@ def mpc(graphType):
137def nodeType(graphType): 151def nodeType(graphType):
138 return graphType.nts 152 return graphType.nts
139 153
154def tcc(graphType):
155 return graphType.tccs
156
140if __name__ == '__main__': 157if __name__ == '__main__':
141 main() \ No newline at end of file 158 main() \ No newline at end of file
diff --git a/Metrics/Metrics-Calculation/metrics_plot/utils/GraphType.py b/Metrics/Metrics-Calculation/metrics_plot/utils/GraphType.py
index 41054294..48d96ccc 100644
--- a/Metrics/Metrics-Calculation/metrics_plot/utils/GraphType.py
+++ b/Metrics/Metrics-Calculation/metrics_plot/utils/GraphType.py
@@ -12,6 +12,8 @@ class GraphCollection:
12 self.mpcs = [] 12 self.mpcs = []
13 self.nts = [] 13 self.nts = []
14 self.name = name 14 self.name = name
15 self.tccs = []
16 self.violations = []
15 models = reader.readmultiplefiles(path, number, shouldShuffle) 17 models = reader.readmultiplefiles(path, number, shouldShuffle)
16 print(len(models)) 18 print(len(models))
17 self.size = len(models) 19 self.size = len(models)
@@ -22,6 +24,10 @@ class GraphCollection:
22 self.mpcs.append(mpc) 24 self.mpcs.append(mpc)
23 if(constants.Node_TYPE_KEY in contents): 25 if(constants.Node_TYPE_KEY in contents):
24 self.nts.append(contents[constants.Node_TYPE_KEY]) 26 self.nts.append(contents[constants.Node_TYPE_KEY])
27 if(constants.TCC_VALUE in contents):
28 self.tccs.append(contents[constants.TCC_VALUE])
29 if(constants.VIOLATION in contents):
30 self.violations.append(contents[constants.VIOLATION][0])
25 31
26#Graph stat for one graph 32#Graph stat for one graph
27class GraphStat: 33class GraphStat:
@@ -35,4 +41,6 @@ class GraphStat:
35 self.nodeTypeStat = contents[constants.Node_TYPE_KEY] 41 self.nodeTypeStat = contents[constants.Node_TYPE_KEY]
36 if constants.VIOLATION in contents: 42 if constants.VIOLATION in contents:
37 self.violations = int(contents[constants.VIOLATION][0]) 43 self.violations = int(contents[constants.VIOLATION][0])
44 if(constants.TCC_VALUE_KEY in contents):
45 self.tcc = contents[constants.TCC_VALUE_KEY]
38 46
diff --git a/Metrics/Metrics-Calculation/metrics_plot/utils/constants.py b/Metrics/Metrics-Calculation/metrics_plot/utils/constants.py
index be115a05..e30cc583 100644
--- a/Metrics/Metrics-Calculation/metrics_plot/utils/constants.py
+++ b/Metrics/Metrics-Calculation/metrics_plot/utils/constants.py
@@ -30,3 +30,6 @@ HUMAN_NA_REP = '../input/humanOutput/R_2017419_run_1.csv'
30 30
31VIOLATION = 'violations' 31VIOLATION = 'violations'
32 32
33TCC_VALUE= 'TCCValue'
34
35TCC_COUNT = 'TCCCount'
diff --git a/Metrics/Metrics-Calculation/metrics_plot/utils/readCSV.py b/Metrics/Metrics-Calculation/metrics_plot/utils/readCSV.py
index 394168d8..a56caf45 100644
--- a/Metrics/Metrics-Calculation/metrics_plot/utils/readCSV.py
+++ b/Metrics/Metrics-Calculation/metrics_plot/utils/readCSV.py
@@ -33,6 +33,8 @@ def readcsvfile(filename):
33 #convert number to floats 33 #convert number to floats
34 numbers = [float(n) for n in numbers] 34 numbers = [float(n) for n in numbers]
35 contents[constants.Node_TYPE_KEY] = {t : n for t, n in zip(types, numbers)} 35 contents[constants.Node_TYPE_KEY] = {t : n for t, n in zip(types, numbers)}
36 elif(arr[0] == constants.TCC_VALUE):
37 contents[constants.TCC_VALUE] = list(map(float, arr[1:]))
36 # NA and OD are integers, and store other information as string 38 # NA and OD are integers, and store other information as string
37 else: 39 else:
38 try: 40 try:
@@ -79,6 +81,10 @@ def getmetrics(filename):
79 outdegree_sample = reproduceSample(contents[constants.OUT_DEGREE_VALUE], contents[constants.OUT_DEGREE_COUNT]) 81 outdegree_sample = reproduceSample(contents[constants.OUT_DEGREE_VALUE], contents[constants.OUT_DEGREE_COUNT])
80 na_sample = reproduceSample(contents[constants.NA_VALUE], contents[constants.NA_COUNT]) 82 na_sample = reproduceSample(contents[constants.NA_VALUE], contents[constants.NA_COUNT])
81 mpc_sample = reproduceSample(contents[constants.MPC_VALUE], contents[constants.MPC_COUNT]) 83 mpc_sample = reproduceSample(contents[constants.MPC_VALUE], contents[constants.MPC_COUNT])
84
85 if(constants.TCC_VALUE in contents):
86 contents[constants.TCC_VALUE] = reproduceSample(contents[constants.TCC_VALUE], contents[constants.TCC_COUNT])
87
82 return contents,outdegree_sample, na_sample, mpc_sample 88 return contents,outdegree_sample, na_sample, mpc_sample
83 89
84# 90#