From cb77845089f6c8171fc3c39a92690dee3671886a Mon Sep 17 00:00:00 2001 From: OszkarSemerath Date: Sun, 17 Feb 2019 19:34:52 +0100 Subject: Created new module to load referred patterns. hacked metamodel linking. --- .../dslreasoner/application/execution/QueryLoader.xtend | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) (limited to 'Application/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application/execution/QueryLoader.xtend') diff --git a/Application/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application/execution/QueryLoader.xtend b/Application/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application/execution/QueryLoader.xtend index 8f8348b1..cfc91143 100644 --- a/Application/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application/execution/QueryLoader.xtend +++ b/Application/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application/execution/QueryLoader.xtend @@ -22,6 +22,10 @@ import org.eclipse.xtext.EcoreUtil2 import static extension hu.bme.mit.inf.dslreasoner.util.CollectionsUtil.* import org.eclipse.viatra.query.patternlanguage.emf.vql.PatternCall +import org.eclipse.viatra.query.runtime.api.IPatternMatch +import org.eclipse.viatra.query.runtime.api.ViatraQueryMatcher +import java.util.LinkedHashMap +import java.util.LinkedList class QueryLoader { //val parser = new VQLParser @@ -34,6 +38,9 @@ class QueryLoader { patterns += getPatterns(entry) } + //val errors = patterns.map[eResource].toSet.map[errors] + //errors.forEach[println(it)] + val allConcernedPatterns = patterns.allReferredPatterns val pattern2Specification = allConcernedPatterns.translatePatterns() @@ -108,7 +115,15 @@ class QueryLoader { } def private translatePatterns(Set xtextPattern) { - xtextPattern.toInvertedMap[builder.getOrCreateSpecification(it) as IQuerySpecification] + val res = new LinkedHashMap> + val patterns = new LinkedList> + for(pattern : xtextPattern) { + val querySpecification = builder.getOrCreateSpecification(pattern,patterns,true) + res.put(pattern,querySpecification) + patterns += querySpecification + } + + return res } def private calculateDerivedFeatures(Set packages, Iterable> patterns) { -- cgit v1.2.3-70-g09d2