aboutsummaryrefslogtreecommitdiffstats
path: root/Tests/hu.bme.mit.inf.dslreasoner.run/src/hu/bme/mit/inf/dslreasoner/run/MetamodelLoader.xtend
diff options
context:
space:
mode:
Diffstat (limited to 'Tests/hu.bme.mit.inf.dslreasoner.run/src/hu/bme/mit/inf/dslreasoner/run/MetamodelLoader.xtend')
-rw-r--r--Tests/hu.bme.mit.inf.dslreasoner.run/src/hu/bme/mit/inf/dslreasoner/run/MetamodelLoader.xtend24
1 files changed, 20 insertions, 4 deletions
diff --git a/Tests/hu.bme.mit.inf.dslreasoner.run/src/hu/bme/mit/inf/dslreasoner/run/MetamodelLoader.xtend b/Tests/hu.bme.mit.inf.dslreasoner.run/src/hu/bme/mit/inf/dslreasoner/run/MetamodelLoader.xtend
index 3da6305d..60908365 100644
--- a/Tests/hu.bme.mit.inf.dslreasoner.run/src/hu/bme/mit/inf/dslreasoner/run/MetamodelLoader.xtend
+++ b/Tests/hu.bme.mit.inf.dslreasoner.run/src/hu/bme/mit/inf/dslreasoner/run/MetamodelLoader.xtend
@@ -87,24 +87,40 @@ class FAMLoader extends MetamodelLoader{
87 87
88class YakinduLoader extends MetamodelLoader{ 88class YakinduLoader extends MetamodelLoader{
89 89
90 private var useSynchronization = true;
91 public static val patternsWithSynchronization = #[
92 "synchHasNoOutgoing", "synchHasNoIncoming", "SynchronizedIncomingInSameRegion", "notSynchronizingStates",
93 "hasMultipleOutgoingTrainsition", "hasMultipleIncomingTrainsition", "SynchronizedRegionsAreNotSiblings",
94 "SynchronizedRegionDoesNotHaveMultipleRegions", "synchThree", "twoSynch"]
95
90 new(ReasonerWorkspace workspace) { 96 new(ReasonerWorkspace workspace) {
91 super(workspace) 97 super(workspace)
92 } 98 }
93 99
100 public def setUseSynchronization(boolean useSynchronization) {
101 this.useSynchronization = useSynchronization
102 }
103
94 override loadMetamodel() { 104 override loadMetamodel() {
105 val useSynchInThisLoad = this.useSynchronization
106
95 val package = YakindummPackage.eINSTANCE 107 val package = YakindummPackage.eINSTANCE
96 val List<EClass> classes = package.EClassifiers.filter(EClass).toList 108 val List<EClass> classes = package.EClassifiers.filter(EClass).filter[(useSynchInThisLoad) || (it.name != "Synchronization")].toList
97 val List<EEnum> enums = package.EClassifiers.filter(EEnum).toList 109 val List<EEnum> enums = package.EClassifiers.filter(EEnum).toList
98 val List<EEnumLiteral> literals = enums.map[ELiterals].flatten.toList 110 val List<EEnumLiteral> literals = enums.map[ELiterals].flatten.toList
99 val List<EReference> references = classes.map[EReferences].flatten.toList 111 val List<EReference> references = classes.map[EReferences].flatten.toList
100
101 val List<EAttribute> attributes = classes.map[EAttributes].flatten.toList 112 val List<EAttribute> attributes = classes.map[EAttributes].flatten.toList
102 113
103 return new EcoreMetamodelDescriptor(classes,#{},false,enums,literals,references,attributes) 114 return new EcoreMetamodelDescriptor(classes,#{},false,enums,literals,references,attributes)
104 } 115 }
105 override loadQueries(EcoreMetamodelDescriptor metamodel) { 116 override loadQueries(EcoreMetamodelDescriptor metamodel) {
117 val useSynchInThisLoad = this.useSynchronization
118
106 val i = hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.Patterns.instance 119 val i = hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.Patterns.instance
107 val patterns = i.specifications.toList 120 val patterns = i.specifications.filter[spec |
121 useSynchInThisLoad ||
122 !patternsWithSynchronization.exists[spec.fullyQualifiedName.endsWith(it)]
123 ].toList
108 val wfPatterns = patterns.filter[it.allAnnotations.exists[it.name== "Constraint"]].toSet 124 val wfPatterns = patterns.filter[it.allAnnotations.exists[it.name== "Constraint"]].toSet
109 val derivedFeatures = new LinkedHashMap 125 val derivedFeatures = new LinkedHashMap
110 val res = new ViatraQuerySetDescriptor( 126 val res = new ViatraQuerySetDescriptor(
@@ -126,7 +142,7 @@ class YakinduLoader extends MetamodelLoader{
126 this.workspace.readModel(EObject,"Yakindu.xmi").eResource.allContents.toList 142 this.workspace.readModel(EObject,"Yakindu.xmi").eResource.allContents.toList
127 } 143 }
128 144
129 override additionalConstraints() { 145 override additionalConstraints() { //#[]
130 #[[method | new SGraphInconsistencyDetector(method)]] 146 #[[method | new SGraphInconsistencyDetector(method)]]
131 } 147 }
132} \ No newline at end of file 148} \ No newline at end of file