From 094a696ef7f36d15cb65987083ebd67171ffdb18 Mon Sep 17 00:00:00 2001 From: OszkarSemerath Date: Sat, 23 Oct 2021 16:25:46 +0200 Subject: minor fixes --- .../store/query/QueriableModelStoreImpl.java | 11 ++++--- .../store/query/internal/ModelUpdateListener.java | 3 -- .../store/query/internal/QueriableModelImpl.java | 1 + .../tools/refinery/store/query/test/QueryTest.java | 35 +++++++++++++++------- 4 files changed, 31 insertions(+), 19 deletions(-) (limited to 'store') diff --git a/store/src/main/java/tools/refinery/store/query/QueriableModelStoreImpl.java b/store/src/main/java/tools/refinery/store/query/QueriableModelStoreImpl.java index 3902e013..6a340589 100644 --- a/store/src/main/java/tools/refinery/store/query/QueriableModelStoreImpl.java +++ b/store/src/main/java/tools/refinery/store/query/QueriableModelStoreImpl.java @@ -17,6 +17,7 @@ import tools.refinery.store.query.building.DNFPredicate; import tools.refinery.store.query.building.PredicateAtom; import tools.refinery.store.query.building.RelationAtom; import tools.refinery.store.query.internal.DNF2PQuery; +import tools.refinery.store.query.internal.QueriableModelImpl; import tools.refinery.store.query.internal.RawPatternMatcher; import tools.refinery.store.query.view.RelationView; @@ -105,23 +106,21 @@ public class QueriableModelStoreImpl implements QueriableModelStore { @Override public QueriableModel createModel() { - // TODO Auto-generated method stub - return null; + return new QueriableModelImpl(this, this.store.createModel(), predicates); } @Override public QueriableModel createModel(long state) { - // TODO Auto-generated method stub - return null; + return new QueriableModelImpl(this, this.store.createModel(state), predicates); } @Override - public Set getStates() { + public synchronized Set getStates() { return this.store.getStates(); } @Override - public ModelDiffCursor getDiffCursor(long from, long to) { + public synchronized ModelDiffCursor getDiffCursor(long from, long to) { return this.store.getDiffCursor(from, to); } } diff --git a/store/src/main/java/tools/refinery/store/query/internal/ModelUpdateListener.java b/store/src/main/java/tools/refinery/store/query/internal/ModelUpdateListener.java index 425ae8f7..c784cb3c 100644 --- a/store/src/main/java/tools/refinery/store/query/internal/ModelUpdateListener.java +++ b/store/src/main/java/tools/refinery/store/query/internal/ModelUpdateListener.java @@ -86,9 +86,6 @@ public class ModelUpdateListener { typedBuffer.addChange(key, oldValue, newValue); } } - } else { - throw new IllegalArgumentException( - "Relation " + relation.getName() + " is not in the scope of the update listener."); } } diff --git a/store/src/main/java/tools/refinery/store/query/internal/QueriableModelImpl.java b/store/src/main/java/tools/refinery/store/query/internal/QueriableModelImpl.java index 0f4d609f..f30b947a 100644 --- a/store/src/main/java/tools/refinery/store/query/internal/QueriableModelImpl.java +++ b/store/src/main/java/tools/refinery/store/query/internal/QueriableModelImpl.java @@ -174,6 +174,7 @@ public class QueriableModelImpl implements QueriableModel { } @Override public void flushChanges() { + //this.initEngine(); this.scope.flush(); } diff --git a/store/src/test/java/tools/refinery/store/query/test/QueryTest.java b/store/src/test/java/tools/refinery/store/query/test/QueryTest.java index 63714538..f7b825b6 100644 --- a/store/src/test/java/tools/refinery/store/query/test/QueryTest.java +++ b/store/src/test/java/tools/refinery/store/query/test/QueryTest.java @@ -20,6 +20,9 @@ import tools.refinery.store.model.ModelStoreImpl; import tools.refinery.store.model.Tuple; import tools.refinery.store.model.representation.Relation; import tools.refinery.store.model.representation.TruthValue; +import tools.refinery.store.query.QueriableModel; +import tools.refinery.store.query.QueriableModelStore; +import tools.refinery.store.query.QueriableModelStoreImpl; import tools.refinery.store.query.building.DNFAnd; import tools.refinery.store.query.building.DNFPredicate; import tools.refinery.store.query.building.EquivalenceAtom; @@ -95,7 +98,7 @@ class QueryTest { // } @Test - @Disabled + //@Disabled void typeConstraintTest() { Relation person = new Relation<>("Person", 1, false); Relation asset = new Relation<>("Asset", 1, false); @@ -105,22 +108,34 @@ class QueryTest { RelationAtom personRelationAtom = new RelationAtom(persionView, parameters); DNFAnd clause = new DNFAnd(new HashSet<>(parameters), Arrays.asList(personRelationAtom)); DNFPredicate predicate = new DNFPredicate("TypeConstraint", parameters, Arrays.asList(clause)); - GenericQuerySpecification query = DNF2PQuery.translate(predicate).build(); - - ModelStore store = new ModelStoreImpl(Set.of(person, asset)); - Model model = store.createModel(); - + //GenericQuerySpecification query = DNF2PQuery.translate(predicate).build(); + + //ModelStore store = new ModelStoreImpl(Set.of(person, asset)); + QueriableModelStore store = new QueriableModelStoreImpl(Set.of(person, asset), Set.of(persionView), Set.of(predicate)); + QueriableModel model = store.createModel(); + + System.out.println("Res1"); + model.allResults(predicate).forEach(x -> System.out.println(x)); + model.put(person, Tuple.of(0), true); model.put(person, Tuple.of(1), true); model.put(asset, Tuple.of(1), true); model.put(asset, Tuple.of(2), true); + + System.out.println("Res2"); + model.allResults(predicate).forEach(x -> System.out.println(x)); + + System.out.println("Res3"); + model.flushChanges(); + System.out.println(model.countResults(predicate)); + - RelationalScope scope = new RelationalScope(model, Set.of(persionView)); + //RelationalScope scope = new RelationalScope(model, Set.of(persionView)); - ViatraQueryEngine engine = AdvancedViatraQueryEngine.on(scope); - GenericPatternMatcher matcher = engine.getMatcher(query); + //ViatraQueryEngine engine = AdvancedViatraQueryEngine.on(scope); + //GenericPatternMatcher matcher = engine.getMatcher(query); - assertEquals(2, matcher.countMatches()); + //assertEquals(2, matcher.countMatches()); } @Test -- cgit v1.2.3-54-g00ecf