aboutsummaryrefslogtreecommitdiffstats
path: root/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/src/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/io/GraphReader.xtend
diff options
context:
space:
mode:
Diffstat (limited to 'Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/src/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/io/GraphReader.xtend')
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/src/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/io/GraphReader.xtend30
1 files changed, 22 insertions, 8 deletions
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 8f1feb9d..ffec372b 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
@@ -1,10 +1,13 @@
1package ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.io; 1package ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.io;
2 2
3import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.graph.EMFGraph 3import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.graph.EMFGraph
4import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.EdgeTypeMetric
4import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.Metric 5import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.Metric
5import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.MultiplexParticipationCoefficientMetric 6import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.MultiplexParticipationCoefficientMetric
6import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.NodeActivityMetric 7import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.NodeActivityMetric
8import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.NodeTypeMetric
7import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.OutDegreeMetric 9import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.OutDegreeMetric
10import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.TypedOutDegree
8import java.io.File 11import java.io.File
9import java.io.FileNotFoundException 12import java.io.FileNotFoundException
10import java.util.ArrayList 13import java.util.ArrayList
@@ -17,19 +20,11 @@ import org.eclipse.emf.ecore.resource.Resource
17import org.eclipse.emf.ecore.resource.ResourceSet 20import org.eclipse.emf.ecore.resource.ResourceSet
18import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl 21import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl
19import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl 22import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl
20import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.NodeTypeMetric
21import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.EdgeTypeMetric
22import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.TypedOutDegree
23import hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph.yakindumm.YakindummPackage
24 23
25class GraphReader{ 24class GraphReader{
26 val ResourceSet resSet = new ResourceSetImpl(); 25 val ResourceSet resSet = new ResourceSetImpl();
27 val referenceTypes = new ArrayList<EReference>(); 26 val referenceTypes = new ArrayList<EReference>();
28 27
29 def static void main(String[] args){
30 var g = new GraphReader(YakindummPackage.eINSTANCE);
31 }
32
33 new(EPackage metaModel) { 28 new(EPackage metaModel) {
34 Resource.Factory.Registry.INSTANCE.extensionToFactoryMap.put("*",new XMIResourceFactoryImpl) 29 Resource.Factory.Registry.INSTANCE.extensionToFactoryMap.put("*",new XMIResourceFactoryImpl)
35 30
@@ -73,6 +68,25 @@ class GraphReader{
73 return graphs; 68 return graphs;
74 } 69 }
75 70
71 def EMFGraph readModel(String path, String filename){
72 val metrics = new ArrayList<Metric>();
73 metrics.add(new OutDegreeMetric());
74 metrics.add(new NodeActivityMetric());
75 metrics.add(new MultiplexParticipationCoefficientMetric());
76 metrics.add(new TypedOutDegree());
77 metrics.add(new NodeTypeMetric());
78 metrics.add(new EdgeTypeMetric());
79
80 val file = new File(filename);
81 val roots = readModel(EObject, path, file.name);
82 //add a list of metrics
83 val g = new EMFGraph();
84 for(root : roots){
85 g.init(root, metrics, filename.replaceFirst(".xmi", ""), referenceTypes);
86 }
87 return g
88 }
89
76 def <RootType extends EObject> List<RootType> readModel(Class<RootType> type, String path, String name) { 90 def <RootType extends EObject> List<RootType> readModel(Class<RootType> type, String path, String name) {
77 try { 91 try {
78 val resource = resSet.getResource(getURI(path, name),true); 92 val resource = resSet.getResource(getURI(path, name),true);