diff options
author | OszkarSemerath <semerath@mit.bme.hu> | 2021-10-23 16:25:46 +0200 |
---|---|---|
committer | OszkarSemerath <semerath@mit.bme.hu> | 2021-10-23 16:25:46 +0200 |
commit | 094a696ef7f36d15cb65987083ebd67171ffdb18 (patch) | |
tree | 0c0d4cb577ed9abb03efad2ee535a0107f9fa00c /store/src | |
parent | QueryableModel restoring with Replay and Reinitialization. (diff) | |
download | refinery-094a696ef7f36d15cb65987083ebd67171ffdb18.tar.gz refinery-094a696ef7f36d15cb65987083ebd67171ffdb18.tar.zst refinery-094a696ef7f36d15cb65987083ebd67171ffdb18.zip |
minor fixes
Diffstat (limited to 'store/src')
4 files changed, 31 insertions, 19 deletions
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; | |||
17 | import tools.refinery.store.query.building.PredicateAtom; | 17 | import tools.refinery.store.query.building.PredicateAtom; |
18 | import tools.refinery.store.query.building.RelationAtom; | 18 | import tools.refinery.store.query.building.RelationAtom; |
19 | import tools.refinery.store.query.internal.DNF2PQuery; | 19 | import tools.refinery.store.query.internal.DNF2PQuery; |
20 | import tools.refinery.store.query.internal.QueriableModelImpl; | ||
20 | import tools.refinery.store.query.internal.RawPatternMatcher; | 21 | import tools.refinery.store.query.internal.RawPatternMatcher; |
21 | import tools.refinery.store.query.view.RelationView; | 22 | import tools.refinery.store.query.view.RelationView; |
22 | 23 | ||
@@ -105,23 +106,21 @@ public class QueriableModelStoreImpl implements QueriableModelStore { | |||
105 | 106 | ||
106 | @Override | 107 | @Override |
107 | public QueriableModel createModel() { | 108 | public QueriableModel createModel() { |
108 | // TODO Auto-generated method stub | 109 | return new QueriableModelImpl(this, this.store.createModel(), predicates); |
109 | return null; | ||
110 | } | 110 | } |
111 | 111 | ||
112 | @Override | 112 | @Override |
113 | public QueriableModel createModel(long state) { | 113 | public QueriableModel createModel(long state) { |
114 | // TODO Auto-generated method stub | 114 | return new QueriableModelImpl(this, this.store.createModel(state), predicates); |
115 | return null; | ||
116 | } | 115 | } |
117 | 116 | ||
118 | @Override | 117 | @Override |
119 | public Set<Long> getStates() { | 118 | public synchronized Set<Long> getStates() { |
120 | return this.store.getStates(); | 119 | return this.store.getStates(); |
121 | } | 120 | } |
122 | 121 | ||
123 | @Override | 122 | @Override |
124 | public ModelDiffCursor getDiffCursor(long from, long to) { | 123 | public synchronized ModelDiffCursor getDiffCursor(long from, long to) { |
125 | return this.store.getDiffCursor(from, to); | 124 | return this.store.getDiffCursor(from, to); |
126 | } | 125 | } |
127 | } | 126 | } |
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 { | |||
86 | typedBuffer.addChange(key, oldValue, newValue); | 86 | typedBuffer.addChange(key, oldValue, newValue); |
87 | } | 87 | } |
88 | } | 88 | } |
89 | } else { | ||
90 | throw new IllegalArgumentException( | ||
91 | "Relation " + relation.getName() + " is not in the scope of the update listener."); | ||
92 | } | 89 | } |
93 | } | 90 | } |
94 | 91 | ||
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 { | |||
174 | } | 174 | } |
175 | @Override | 175 | @Override |
176 | public void flushChanges() { | 176 | public void flushChanges() { |
177 | //this.initEngine(); | ||
177 | this.scope.flush(); | 178 | this.scope.flush(); |
178 | } | 179 | } |
179 | 180 | ||
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; | |||
20 | import tools.refinery.store.model.Tuple; | 20 | import tools.refinery.store.model.Tuple; |
21 | import tools.refinery.store.model.representation.Relation; | 21 | import tools.refinery.store.model.representation.Relation; |
22 | import tools.refinery.store.model.representation.TruthValue; | 22 | import tools.refinery.store.model.representation.TruthValue; |
23 | import tools.refinery.store.query.QueriableModel; | ||
24 | import tools.refinery.store.query.QueriableModelStore; | ||
25 | import tools.refinery.store.query.QueriableModelStoreImpl; | ||
23 | import tools.refinery.store.query.building.DNFAnd; | 26 | import tools.refinery.store.query.building.DNFAnd; |
24 | import tools.refinery.store.query.building.DNFPredicate; | 27 | import tools.refinery.store.query.building.DNFPredicate; |
25 | import tools.refinery.store.query.building.EquivalenceAtom; | 28 | import tools.refinery.store.query.building.EquivalenceAtom; |
@@ -95,7 +98,7 @@ class QueryTest { | |||
95 | // } | 98 | // } |
96 | 99 | ||
97 | @Test | 100 | @Test |
98 | @Disabled | 101 | //@Disabled |
99 | void typeConstraintTest() { | 102 | void typeConstraintTest() { |
100 | Relation<Boolean> person = new Relation<>("Person", 1, false); | 103 | Relation<Boolean> person = new Relation<>("Person", 1, false); |
101 | Relation<Boolean> asset = new Relation<>("Asset", 1, false); | 104 | Relation<Boolean> asset = new Relation<>("Asset", 1, false); |
@@ -105,22 +108,34 @@ class QueryTest { | |||
105 | RelationAtom personRelationAtom = new RelationAtom(persionView, parameters); | 108 | RelationAtom personRelationAtom = new RelationAtom(persionView, parameters); |
106 | DNFAnd clause = new DNFAnd(new HashSet<>(parameters), Arrays.asList(personRelationAtom)); | 109 | DNFAnd clause = new DNFAnd(new HashSet<>(parameters), Arrays.asList(personRelationAtom)); |
107 | DNFPredicate predicate = new DNFPredicate("TypeConstraint", parameters, Arrays.asList(clause)); | 110 | DNFPredicate predicate = new DNFPredicate("TypeConstraint", parameters, Arrays.asList(clause)); |
108 | GenericQuerySpecification<RawPatternMatcher> query = DNF2PQuery.translate(predicate).build(); | 111 | //GenericQuerySpecification<RawPatternMatcher> query = DNF2PQuery.translate(predicate).build(); |
109 | 112 | ||
110 | ModelStore store = new ModelStoreImpl(Set.of(person, asset)); | 113 | //ModelStore store = new ModelStoreImpl(Set.of(person, asset)); |
111 | Model model = store.createModel(); | 114 | QueriableModelStore store = new QueriableModelStoreImpl(Set.of(person, asset), Set.of(persionView), Set.of(predicate)); |
112 | 115 | QueriableModel model = store.createModel(); | |
116 | |||
117 | System.out.println("Res1"); | ||
118 | model.allResults(predicate).forEach(x -> System.out.println(x)); | ||
119 | |||
113 | model.put(person, Tuple.of(0), true); | 120 | model.put(person, Tuple.of(0), true); |
114 | model.put(person, Tuple.of(1), true); | 121 | model.put(person, Tuple.of(1), true); |
115 | model.put(asset, Tuple.of(1), true); | 122 | model.put(asset, Tuple.of(1), true); |
116 | model.put(asset, Tuple.of(2), true); | 123 | model.put(asset, Tuple.of(2), true); |
124 | |||
125 | System.out.println("Res2"); | ||
126 | model.allResults(predicate).forEach(x -> System.out.println(x)); | ||
127 | |||
128 | System.out.println("Res3"); | ||
129 | model.flushChanges(); | ||
130 | System.out.println(model.countResults(predicate)); | ||
131 | |||
117 | 132 | ||
118 | RelationalScope scope = new RelationalScope(model, Set.of(persionView)); | 133 | //RelationalScope scope = new RelationalScope(model, Set.of(persionView)); |
119 | 134 | ||
120 | ViatraQueryEngine engine = AdvancedViatraQueryEngine.on(scope); | 135 | //ViatraQueryEngine engine = AdvancedViatraQueryEngine.on(scope); |
121 | GenericPatternMatcher matcher = engine.getMatcher(query); | 136 | //GenericPatternMatcher matcher = engine.getMatcher(query); |
122 | 137 | ||
123 | assertEquals(2, matcher.countMatches()); | 138 | //assertEquals(2, matcher.countMatches()); |
124 | } | 139 | } |
125 | 140 | ||
126 | @Test | 141 | @Test |