diff options
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.xtend | 30 |
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 @@ | |||
1 | package ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.io; | 1 | package ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.io; |
2 | 2 | ||
3 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.graph.EMFGraph | 3 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.graph.EMFGraph |
4 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.EdgeTypeMetric | ||
4 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.Metric | 5 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.Metric |
5 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.MultiplexParticipationCoefficientMetric | 6 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.MultiplexParticipationCoefficientMetric |
6 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.NodeActivityMetric | 7 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.NodeActivityMetric |
8 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.NodeTypeMetric | ||
7 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.OutDegreeMetric | 9 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.OutDegreeMetric |
10 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.TypedOutDegree | ||
8 | import java.io.File | 11 | import java.io.File |
9 | import java.io.FileNotFoundException | 12 | import java.io.FileNotFoundException |
10 | import java.util.ArrayList | 13 | import java.util.ArrayList |
@@ -17,19 +20,11 @@ import org.eclipse.emf.ecore.resource.Resource | |||
17 | import org.eclipse.emf.ecore.resource.ResourceSet | 20 | import org.eclipse.emf.ecore.resource.ResourceSet |
18 | import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl | 21 | import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl |
19 | import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl | 22 | import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl |
20 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.NodeTypeMetric | ||
21 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.EdgeTypeMetric | ||
22 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.TypedOutDegree | ||
23 | import hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph.yakindumm.YakindummPackage | ||
24 | 23 | ||
25 | class GraphReader{ | 24 | class 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); |