aboutsummaryrefslogtreecommitdiffstats
path: root/Tests/hu.bme.mit.inf.dslreasoner.run/src/hu/bme/mit/inf/dslreasoner/run/SGraphInconsistencyDetector.xtend
diff options
context:
space:
mode:
Diffstat (limited to 'Tests/hu.bme.mit.inf.dslreasoner.run/src/hu/bme/mit/inf/dslreasoner/run/SGraphInconsistencyDetector.xtend')
-rw-r--r--Tests/hu.bme.mit.inf.dslreasoner.run/src/hu/bme/mit/inf/dslreasoner/run/SGraphInconsistencyDetector.xtend40
1 files changed, 29 insertions, 11 deletions
diff --git a/Tests/hu.bme.mit.inf.dslreasoner.run/src/hu/bme/mit/inf/dslreasoner/run/SGraphInconsistencyDetector.xtend b/Tests/hu.bme.mit.inf.dslreasoner.run/src/hu/bme/mit/inf/dslreasoner/run/SGraphInconsistencyDetector.xtend
index 3a7c5041..230bb692 100644
--- a/Tests/hu.bme.mit.inf.dslreasoner.run/src/hu/bme/mit/inf/dslreasoner/run/SGraphInconsistencyDetector.xtend
+++ b/Tests/hu.bme.mit.inf.dslreasoner.run/src/hu/bme/mit/inf/dslreasoner/run/SGraphInconsistencyDetector.xtend
@@ -11,8 +11,11 @@ class SGraphInconsistencyDetector extends ModelGenerationMethodBasedGlobalConstr
11 var PartialInterpretation partialInterpretation 11 var PartialInterpretation partialInterpretation
12 var ViatraQueryMatcher<?> noEntry 12 var ViatraQueryMatcher<?> noEntry
13 var ViatraQueryMatcher<?> entryHasNoOutgoing 13 var ViatraQueryMatcher<?> entryHasNoOutgoing
14 var ViatraQueryMatcher<?> choiceHasNoOutgiong
15 var ViatraQueryMatcher<?> choiceHasNoIncoming
16 //var ViatraQueryMatcher<?> noSynch
14 var ViatraQueryMatcher<?> synchronizationHasNoOutgoing 17 var ViatraQueryMatcher<?> synchronizationHasNoOutgoing
15 var ViatraQueryMatcher<?> noSynch 18
16 var ViatraQueryMatcher<?> synchronizedSiblingRegions 19 var ViatraQueryMatcher<?> synchronizedSiblingRegions
17 var ViatraQueryMatcher<?> noStateInRegion 20 var ViatraQueryMatcher<?> noStateInRegion
18 21
@@ -36,33 +39,48 @@ class SGraphInconsistencyDetector extends ModelGenerationMethodBasedGlobalConstr
36 it.fullyQualifiedName.equals("unfinishedBy_pattern_hu_bme_mit_inf_dslreasoner_partialsnapshot_mavo_yakindu_noOutgoingTransitionFromEntry") 39 it.fullyQualifiedName.equals("unfinishedBy_pattern_hu_bme_mit_inf_dslreasoner_partialsnapshot_mavo_yakindu_noOutgoingTransitionFromEntry")
37 ].head.getMatcher(context.queryEngine) 40 ].head.getMatcher(context.queryEngine)
38 41
39 this.synchronizationHasNoOutgoing = method.unfinishedWF.filter[ 42 this.noStateInRegion = method.unfinishedWF.filter[
40 it.fullyQualifiedName.equals("unfinishedBy_pattern_hu_bme_mit_inf_dslreasoner_partialsnapshot_mavo_yakindu_hasNoOutgoing") 43 it.fullyQualifiedName.equals("unfinishedBy_pattern_hu_bme_mit_inf_dslreasoner_partialsnapshot_mavo_yakindu_noStateInRegion")
41 ].head.getMatcher(context.queryEngine) 44 ].head.getMatcher(context.queryEngine)
42 45
43 this.noSynch = method.unfinishedWF.filter[ 46 this.choiceHasNoOutgiong = method.unfinishedWF.filter[
44 it.fullyQualifiedName.equals("unfinishedBy_pattern_hu_bme_mit_inf_dslreasoner_partialsnapshot_mavo_yakindu_noSynch") 47 it.fullyQualifiedName.equals("unfinishedBy_pattern_hu_bme_mit_inf_dslreasoner_partialsnapshot_mavo_yakindu_choiceHasNoOutgoing")
45 ].head.getMatcher(context.queryEngine) 48 ].head.getMatcher(context.queryEngine)
46 49
50// this.choiceHasNoIncoming = method.unfinishedWF.filter[
51// it.fullyQualifiedName.equals("unfinishedBy_pattern_hu_bme_mit_inf_dslreasoner_partialsnapshot_mavo_yakindu_choiceHasNoIncoming")
52// ].head.getMatcher(context.queryEngine)
53 } catch(Exception e) { }
54 try{
55// this.noSynch = method.unfinishedWF.filter[
56// it.fullyQualifiedName.equals("unfinishedBy_pattern_hu_bme_mit_inf_dslreasoner_partialsnapshot_mavo_yakindu_noSynch")
57// ].head.getMatcher(context.queryEngine)
58//
47 this.synchronizedSiblingRegions = method.unfinishedWF.filter[ 59 this.synchronizedSiblingRegions = method.unfinishedWF.filter[
48 it.fullyQualifiedName.equals("unfinishedBy_pattern_hu_bme_mit_inf_dslreasoner_partialsnapshot_mavo_yakindu_SynchronizedRegionDoesNotHaveMultipleRegions") 60 it.fullyQualifiedName.equals("unfinishedBy_pattern_hu_bme_mit_inf_dslreasoner_partialsnapshot_mavo_yakindu_SynchronizedRegionDoesNotHaveMultipleRegions")
49 ].head.getMatcher(context.queryEngine) 61 ].head.getMatcher(context.queryEngine)
50 62
51 this.noStateInRegion = method.unfinishedWF.filter[ 63 this.synchronizationHasNoOutgoing = method.unfinishedWF.filter[
52 it.fullyQualifiedName.equals("unfinishedBy_pattern_hu_bme_mit_inf_dslreasoner_partialsnapshot_mavo_yakindu_noStateInRegion") 64 it.fullyQualifiedName.equals("unfinishedBy_pattern_hu_bme_mit_inf_dslreasoner_partialsnapshot_mavo_yakindu_synchHasNoOutgoing")
53 ].head.getMatcher(context.queryEngine) 65 ].head.getMatcher(context.queryEngine)
54 } catch(Exception e) { } 66 } catch(Exception e) { }
55 } 67 }
56 68
57 override checkGlobalConstraint(ThreadContext context) { 69 override checkGlobalConstraint(ThreadContext context) {
58 if(noEntry !== null) { 70 if(noEntry !== null) {
59 val requiredNewObjects = 71 var requiredNewObjects =
60 noEntry.countMatches*2 + 72 noEntry.countMatches*2 +
61 entryHasNoOutgoing.countMatches + 73 entryHasNoOutgoing.countMatches +
62 synchronizationHasNoOutgoing.countMatches + 74 choiceHasNoOutgiong.countMatches+
63 noSynch.countMatches*2 + 75 //choiceHasNoIncoming.countMatches+
64 synchronizedSiblingRegions.countMatches*4
65 noStateInRegion.countMatches 76 noStateInRegion.countMatches
77 if(synchronizationHasNoOutgoing!= null) {
78 requiredNewObjects +=
79 //noSynch.countMatches*2 +
80 synchronizationHasNoOutgoing.countMatches +
81 synchronizedSiblingRegions.countMatches*4
82 }
83
66 val availableNewObjects = partialInterpretation.maxNewElements 84 val availableNewObjects = partialInterpretation.maxNewElements
67 val res = availableNewObjects >= requiredNewObjects 85 val res = availableNewObjects >= requiredNewObjects
68 //println('''[«availableNewObjects» >= «requiredNewObjects»] = «res»''') 86 //println('''[«availableNewObjects» >= «requiredNewObjects»] = «res»''')