aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLibravatar OszkarSemerath <semerath@mit.bme.hu>2021-08-10 01:14:47 +0200
committerLibravatar OszkarSemerath <semerath@mit.bme.hu>2021-08-10 01:14:47 +0200
commit017fbf80510187f865ba4bf29bea1eb64ca22f88 (patch)
treea2dad0dc37486d73023555429725b0b7cb6d8451
parentDiffcursor dependency update (diff)
downloadrefinery-017fbf80510187f865ba4bf29bea1eb64ca22f88.tar.gz
refinery-017fbf80510187f865ba4bf29bea1eb64ca22f88.tar.zst
refinery-017fbf80510187f865ba4bf29bea1eb64ca22f88.zip
Representations
-rw-r--r--model-data/src/main/java/org/eclipse/viatra/solver/data/model/representation/AuxilaryDataRepresentation.java11
-rw-r--r--model-data/src/main/java/org/eclipse/viatra/solver/data/model/representation/DataRepresentation.java34
-rw-r--r--model-data/src/main/java/org/eclipse/viatra/solver/data/model/representation/SymbolRepresentation.java18
-rw-r--r--model-data/src/main/java/org/eclipse/viatra/solver/data/model/representation/TruthValue.java44
-rw-r--r--model-data/src/main/java/org/eclipse/viatra/solver/data/model/symbols/Symbol.java3
5 files changed, 107 insertions, 3 deletions
diff --git a/model-data/src/main/java/org/eclipse/viatra/solver/data/model/representation/AuxilaryDataRepresentation.java b/model-data/src/main/java/org/eclipse/viatra/solver/data/model/representation/AuxilaryDataRepresentation.java
new file mode 100644
index 00000000..c524ba37
--- /dev/null
+++ b/model-data/src/main/java/org/eclipse/viatra/solver/data/model/representation/AuxilaryDataRepresentation.java
@@ -0,0 +1,11 @@
1package org.eclipse.viatra.solver.data.model.representation;
2
3import org.eclipse.viatra.solver.data.map.ContinousHashProvider;
4
5public class AuxilaryDataRepresentation<K,V> extends DataRepresentation<K, V> {
6
7 public AuxilaryDataRepresentation(Class<K> keyClass, ContinousHashProvider<K> hashProvider, Class<V> valueClass,
8 V defaultValue) {
9 super(keyClass, hashProvider, valueClass, defaultValue);
10 }
11}
diff --git a/model-data/src/main/java/org/eclipse/viatra/solver/data/model/representation/DataRepresentation.java b/model-data/src/main/java/org/eclipse/viatra/solver/data/model/representation/DataRepresentation.java
new file mode 100644
index 00000000..41205c83
--- /dev/null
+++ b/model-data/src/main/java/org/eclipse/viatra/solver/data/model/representation/DataRepresentation.java
@@ -0,0 +1,34 @@
1package org.eclipse.viatra.solver.data.model.representation;
2
3import org.eclipse.viatra.solver.data.map.ContinousHashProvider;
4
5abstract public class DataRepresentation<K, V> {
6 protected final Class<K> keyClass;
7 protected final Class<V> valueClass;
8 protected final ContinousHashProvider<K> hashProvider;
9 protected final V defaultValue;
10
11 protected DataRepresentation(Class<K> keyClass, ContinousHashProvider<K> hashProvider, Class<V> valueClass,
12 V defaultValue) {
13 this.keyClass = keyClass;
14 this.hashProvider = hashProvider;
15 this.valueClass = valueClass;
16 this.defaultValue = defaultValue;
17 }
18
19 public Class<K> getKeyClass() {
20 return keyClass;
21 }
22
23 public Class<V> getValueClass() {
24 return valueClass;
25 }
26
27 public ContinousHashProvider<K> getHashProvider() {
28 return hashProvider;
29 }
30
31 public V getDefaultValue() {
32 return defaultValue;
33 }
34}
diff --git a/model-data/src/main/java/org/eclipse/viatra/solver/data/model/representation/SymbolRepresentation.java b/model-data/src/main/java/org/eclipse/viatra/solver/data/model/representation/SymbolRepresentation.java
new file mode 100644
index 00000000..442f9dc6
--- /dev/null
+++ b/model-data/src/main/java/org/eclipse/viatra/solver/data/model/representation/SymbolRepresentation.java
@@ -0,0 +1,18 @@
1package org.eclipse.viatra.solver.data.model.representation;
2
3import org.eclipse.viatra.solver.data.model.Tuple;
4import org.eclipse.viatra.solver.data.model.TupleHashProvider;
5import org.eclipse.viatra.solver.data.model.symbols.Symbol;
6
7public class SymbolRepresentation <D> extends DataRepresentation<Tuple,D> {
8 private final Symbol symbol;
9
10 public SymbolRepresentation(Symbol symbol,Class<D> domain, D defaultValue) {
11 super(Tuple.class,TupleHashProvider.singleton(),domain,defaultValue);
12 this.symbol = symbol;
13 }
14
15 public Symbol getSymbol() {
16 return symbol;
17 }
18}
diff --git a/model-data/src/main/java/org/eclipse/viatra/solver/data/model/representation/TruthValue.java b/model-data/src/main/java/org/eclipse/viatra/solver/data/model/representation/TruthValue.java
new file mode 100644
index 00000000..aeccde9e
--- /dev/null
+++ b/model-data/src/main/java/org/eclipse/viatra/solver/data/model/representation/TruthValue.java
@@ -0,0 +1,44 @@
1package org.eclipse.viatra.solver.data.model.representation;
2
3public class TruthValue {
4 public static final TruthValue True = new TruthValue("true");
5 public static final TruthValue False = new TruthValue("false");
6 public static final TruthValue Unknown = new TruthValue("unknown");
7 public static final TruthValue Error = new TruthValue("error");
8
9 private final String name;
10 protected TruthValue(String name) {
11 this.name = name;
12 }
13
14 public String getName() {
15 return name;
16 }
17
18 public static TruthValue toTruthValue(boolean value) {
19 if(value) return True;
20 else return False;
21 }
22 public boolean isConsistent() {
23 return this != Error;
24 }
25 public boolean isComplete() {
26 return this != Unknown;
27 }
28 public boolean must() {
29 return this == True || this == Error;
30 }
31 public boolean may() {
32 return this == True || this == Unknown;
33 }
34
35 public TruthValue not() {
36 if(this == True) {
37 return False;
38 } else if(this == False) {
39 return True;
40 } else {
41 return this;
42 }
43 }
44}
diff --git a/model-data/src/main/java/org/eclipse/viatra/solver/data/model/symbols/Symbol.java b/model-data/src/main/java/org/eclipse/viatra/solver/data/model/symbols/Symbol.java
index 6a02cd2d..12ebed9e 100644
--- a/model-data/src/main/java/org/eclipse/viatra/solver/data/model/symbols/Symbol.java
+++ b/model-data/src/main/java/org/eclipse/viatra/solver/data/model/symbols/Symbol.java
@@ -1,9 +1,6 @@
1package org.eclipse.viatra.solver.data.model.symbols; 1package org.eclipse.viatra.solver.data.model.symbols;
2 2
3import java.util.Comparator;
4
5public class Symbol { 3public class Symbol {
6 public static final Comparator<Symbol> symbolComparator = (o1, o2) -> o1.getName().compareTo(o2.getName());
7 private final String name; 4 private final String name;
8 private final int arity; 5 private final int arity;
9 6