diff options
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.xtend | 24 |
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 | ||
88 | class YakinduLoader extends MetamodelLoader{ | 88 | class 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 |