aboutsummaryrefslogtreecommitdiffstats
path: root/store
diff options
context:
space:
mode:
authorLibravatar OszkarSemerath <semerath@mit.bme.hu>2021-10-23 16:25:46 +0200
committerLibravatar OszkarSemerath <semerath@mit.bme.hu>2021-10-23 16:25:46 +0200
commit094a696ef7f36d15cb65987083ebd67171ffdb18 (patch)
tree0c0d4cb577ed9abb03efad2ee535a0107f9fa00c /store
parentQueryableModel restoring with Replay and Reinitialization. (diff)
downloadrefinery-094a696ef7f36d15cb65987083ebd67171ffdb18.tar.gz
refinery-094a696ef7f36d15cb65987083ebd67171ffdb18.tar.zst
refinery-094a696ef7f36d15cb65987083ebd67171ffdb18.zip
minor fixes
Diffstat (limited to 'store')
-rw-r--r--store/src/main/java/tools/refinery/store/query/QueriableModelStoreImpl.java11
-rw-r--r--store/src/main/java/tools/refinery/store/query/internal/ModelUpdateListener.java3
-rw-r--r--store/src/main/java/tools/refinery/store/query/internal/QueriableModelImpl.java1
-rw-r--r--store/src/test/java/tools/refinery/store/query/test/QueryTest.java35
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;
17import tools.refinery.store.query.building.PredicateAtom; 17import tools.refinery.store.query.building.PredicateAtom;
18import tools.refinery.store.query.building.RelationAtom; 18import tools.refinery.store.query.building.RelationAtom;
19import tools.refinery.store.query.internal.DNF2PQuery; 19import tools.refinery.store.query.internal.DNF2PQuery;
20import tools.refinery.store.query.internal.QueriableModelImpl;
20import tools.refinery.store.query.internal.RawPatternMatcher; 21import tools.refinery.store.query.internal.RawPatternMatcher;
21import tools.refinery.store.query.view.RelationView; 22import 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;
20import tools.refinery.store.model.Tuple; 20import tools.refinery.store.model.Tuple;
21import tools.refinery.store.model.representation.Relation; 21import tools.refinery.store.model.representation.Relation;
22import tools.refinery.store.model.representation.TruthValue; 22import tools.refinery.store.model.representation.TruthValue;
23import tools.refinery.store.query.QueriableModel;
24import tools.refinery.store.query.QueriableModelStore;
25import tools.refinery.store.query.QueriableModelStoreImpl;
23import tools.refinery.store.query.building.DNFAnd; 26import tools.refinery.store.query.building.DNFAnd;
24import tools.refinery.store.query.building.DNFPredicate; 27import tools.refinery.store.query.building.DNFPredicate;
25import tools.refinery.store.query.building.EquivalenceAtom; 28import 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