aboutsummaryrefslogtreecommitdiffstats
path: root/model-data/src/main/java/org/eclipse/viatra/solver/data/query/view/RelationView.java
diff options
context:
space:
mode:
authorLibravatar OszkarSemerath <semerath@mit.bme.hu>2021-08-16 00:38:53 +0200
committerLibravatar OszkarSemerath <semerath@mit.bme.hu>2021-08-16 00:38:53 +0200
commit2ecb097b5d5af7edfe9ad38179beff1d14029f29 (patch)
tree28dfe996aa0286ee19af92712dd53ebbd3d9a110 /model-data/src/main/java/org/eclipse/viatra/solver/data/query/view/RelationView.java
parentrenaming (diff)
downloadrefinery-2ecb097b5d5af7edfe9ad38179beff1d14029f29.tar.gz
refinery-2ecb097b5d5af7edfe9ad38179beff1d14029f29.tar.zst
refinery-2ecb097b5d5af7edfe9ad38179beff1d14029f29.zip
changend the visibility of view.arity
Diffstat (limited to 'model-data/src/main/java/org/eclipse/viatra/solver/data/query/view/RelationView.java')
-rw-r--r--model-data/src/main/java/org/eclipse/viatra/solver/data/query/view/RelationView.java9
1 files changed, 8 insertions, 1 deletions
diff --git a/model-data/src/main/java/org/eclipse/viatra/solver/data/query/view/RelationView.java b/model-data/src/main/java/org/eclipse/viatra/solver/data/query/view/RelationView.java
index 08296705..efd8e990 100644
--- a/model-data/src/main/java/org/eclipse/viatra/solver/data/query/view/RelationView.java
+++ b/model-data/src/main/java/org/eclipse/viatra/solver/data/query/view/RelationView.java
@@ -1,9 +1,10 @@
1package org.eclipse.viatra.solver.data.query.relationView; 1package org.eclipse.viatra.solver.data.query.view;
2 2
3import org.eclipse.viatra.solver.data.map.CursorAsIterator; 3import org.eclipse.viatra.solver.data.map.CursorAsIterator;
4import org.eclipse.viatra.solver.data.model.Model; 4import org.eclipse.viatra.solver.data.model.Model;
5import org.eclipse.viatra.solver.data.model.Tuple; 5import org.eclipse.viatra.solver.data.model.Tuple;
6import org.eclipse.viatra.solver.data.model.representation.Relation; 6import org.eclipse.viatra.solver.data.model.representation.Relation;
7import org.eclipse.viatra.solver.data.query.internal.RelationViewKey;
7 8
8/** 9/**
9 * Represents a view of a {@link Relation} that can be queried. 10 * Represents a view of a {@link Relation} that can be queried.
@@ -14,6 +15,7 @@ import org.eclipse.viatra.solver.data.model.representation.Relation;
14public abstract class RelationView<D>{ 15public abstract class RelationView<D>{
15 protected final Model model; 16 protected final Model model;
16 protected final Relation<D> representation; 17 protected final Relation<D> representation;
18 RelationViewKey<D> key = new RelationViewKey<>(this, getArity());
17 19
18 protected RelationView(Model model, Relation<D> representation) { 20 protected RelationView(Model model, Relation<D> representation) {
19 this.model = model; 21 this.model = model;
@@ -27,6 +29,7 @@ public abstract class RelationView<D>{
27 return representation; 29 return representation;
28 } 30 }
29 31
32 public abstract int getArity();
30 protected abstract boolean filter(Tuple key, D value); 33 protected abstract boolean filter(Tuple key, D value);
31 protected abstract Object[] forwardMap(Tuple key, D value); 34 protected abstract Object[] forwardMap(Tuple key, D value);
32 public abstract boolean get(Object[] tuple); 35 public abstract boolean get(Object[] tuple);
@@ -40,4 +43,8 @@ public abstract class RelationView<D>{
40 public Iterable<Object[]> getAll() { 43 public Iterable<Object[]> getAll() {
41 return (()->new CursorAsIterator<>(model.getAll(representation), (k,v)->forwardMap(k,v), (k,v)->filter(k,v))); 44 return (()->new CursorAsIterator<>(model.getAll(representation), (k,v)->forwardMap(k,v), (k,v)->filter(k,v)));
42 } 45 }
46
47 public RelationViewKey<D> getKey() {
48 return key;
49 }
43} 50}