diff options
Diffstat (limited to 'Tests/hu.bme.mit.inf.dslreasoner.run/src/hu/bme/mit/inf/dslreasoner/run/FileSystemHint.xtend')
-rw-r--r-- | Tests/hu.bme.mit.inf.dslreasoner.run/src/hu/bme/mit/inf/dslreasoner/run/FileSystemHint.xtend | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/Tests/hu.bme.mit.inf.dslreasoner.run/src/hu/bme/mit/inf/dslreasoner/run/FileSystemHint.xtend b/Tests/hu.bme.mit.inf.dslreasoner.run/src/hu/bme/mit/inf/dslreasoner/run/FileSystemHint.xtend new file mode 100644 index 00000000..8d6523b1 --- /dev/null +++ b/Tests/hu.bme.mit.inf.dslreasoner.run/src/hu/bme/mit/inf/dslreasoner/run/FileSystemHint.xtend | |||
@@ -0,0 +1,32 @@ | |||
1 | package hu.bme.mit.inf.dslreasoner.run | ||
2 | |||
3 | import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2Logic | ||
4 | import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2Logic_Trace | ||
5 | import hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra.cardinality.LinearTypeExpressionBuilderFactory | ||
6 | import hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra.patterns.PatternGenerator | ||
7 | |||
8 | class FileSystemHint extends Ecore2LogicTraceBasedHint { | ||
9 | static val REMAINING_CONTENTS_ROOT = "hint_root" | ||
10 | |||
11 | new(Ecore2Logic ecore2Logic, Ecore2Logic_Trace trace) { | ||
12 | super(ecore2Logic, trace) | ||
13 | } | ||
14 | |||
15 | override getAdditionalPatterns(PatternGenerator it) ''' | ||
16 | pattern «REMAINING_CONTENTS_ROOT»(problem:LogicProblem, interpretation:PartialInterpretation, remainingContents:java Integer) { | ||
17 | find interpretation(problem, interpretation); | ||
18 | remainingContents == sum find remainingContents_root_reference_Dir_helper(problem, interpretation, _, #_) | ||
19 | } | ||
20 | ''' | ||
21 | |||
22 | override createConstraintUpdater(LinearTypeExpressionBuilderFactory it) { | ||
23 | val dirCount = createBuilder.add(1, "Dir".type).build | ||
24 | |||
25 | val remainingContentsRootMatcher = createMatcher(REMAINING_CONTENTS_ROOT) | ||
26 | |||
27 | return [ p | | ||
28 | dirCount.tightenLowerBound(remainingContentsRootMatcher.getCount(p)) | ||
29 | ] | ||
30 | } | ||
31 | |||
32 | } | ||