aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLibravatar OszkarSemerath <semerath@mit.bme.hu>2021-08-10 01:13:57 +0200
committerLibravatar OszkarSemerath <semerath@mit.bme.hu>2021-08-10 01:13:57 +0200
commitd4adeca01946a0debd67dc831df9282f013f02f5 (patch)
tree2d44c468c4b58103b3e076ca3510ae30970ef05b
parentSimple collective cursors for models (diff)
downloadrefinery-d4adeca01946a0debd67dc831df9282f013f02f5.tar.gz
refinery-d4adeca01946a0debd67dc831df9282f013f02f5.tar.zst
refinery-d4adeca01946a0debd67dc831df9282f013f02f5.zip
Diffcursor dependency update
-rw-r--r--model-data/src/main/java/org/eclipse/viatra/solver/data/map/Cursor.java3
-rw-r--r--model-data/src/main/java/org/eclipse/viatra/solver/data/map/DiffCursor.java3
-rw-r--r--model-data/src/main/java/org/eclipse/viatra/solver/data/map/internal/MapCursor.java4
-rw-r--r--model-data/src/main/java/org/eclipse/viatra/solver/data/map/internal/MapDiffCursor.java12
4 files changed, 15 insertions, 7 deletions
diff --git a/model-data/src/main/java/org/eclipse/viatra/solver/data/map/Cursor.java b/model-data/src/main/java/org/eclipse/viatra/solver/data/map/Cursor.java
index 95e59ee2..e45b1f20 100644
--- a/model-data/src/main/java/org/eclipse/viatra/solver/data/map/Cursor.java
+++ b/model-data/src/main/java/org/eclipse/viatra/solver/data/map/Cursor.java
@@ -9,5 +9,6 @@ public interface Cursor<K,V> {
9 public boolean move(); 9 public boolean move();
10 public boolean isDirty(); 10 public boolean isDirty();
11 11
12 public List<VersionedMap<K,V>> getDependingMaps(); 12 @SuppressWarnings("squid:S1452")
13 public List<VersionedMap<?,?>> getDependingMaps();
13} 14}
diff --git a/model-data/src/main/java/org/eclipse/viatra/solver/data/map/DiffCursor.java b/model-data/src/main/java/org/eclipse/viatra/solver/data/map/DiffCursor.java
index 7042f7c9..f0af1436 100644
--- a/model-data/src/main/java/org/eclipse/viatra/solver/data/map/DiffCursor.java
+++ b/model-data/src/main/java/org/eclipse/viatra/solver/data/map/DiffCursor.java
@@ -1,5 +1,6 @@
1package org.eclipse.viatra.solver.data.map; 1package org.eclipse.viatra.solver.data.map;
2 2
3public interface DiffCursor<K, V> extends Cursor<K,V> { 3public interface DiffCursor<K, V> extends Cursor<K,V> {
4 4 public V getFromValue();
5 public V getToValue();
5} \ No newline at end of file 6} \ No newline at end of file
diff --git a/model-data/src/main/java/org/eclipse/viatra/solver/data/map/internal/MapCursor.java b/model-data/src/main/java/org/eclipse/viatra/solver/data/map/internal/MapCursor.java
index 97fbcd8f..cc5a3982 100644
--- a/model-data/src/main/java/org/eclipse/viatra/solver/data/map/internal/MapCursor.java
+++ b/model-data/src/main/java/org/eclipse/viatra/solver/data/map/internal/MapCursor.java
@@ -83,7 +83,7 @@ public class MapCursor<K,V> implements Cursor<K,V> {
83 return this.map.hashCode() != this.creationHash; 83 return this.map.hashCode() != this.creationHash;
84 } 84 }
85 @Override 85 @Override
86 public List<VersionedMap<K, V>> getDependingMaps() { 86 public List<VersionedMap<?, ?>> getDependingMaps() {
87 return List.of(this.map); 87 return List.of(this.map);
88 } 88 }
89 89
@@ -103,7 +103,7 @@ public class MapCursor<K,V> implements Cursor<K,V> {
103 * @param <V> 103 * @param <V>
104 * @param cursor1 104 * @param cursor1
105 * @param cursor2 105 * @param cursor2
106 * @returnv Positive number if cursor 1 is behind, negative number if cursor 2 is behind, and 0 if they are at the same position. 106 * @return Positive number if cursor 1 is behind, negative number if cursor 2 is behind, and 0 if they are at the same position.
107 */ 107 */
108 public static <K,V> int compare(MapCursor<K,V> cursor1, MapCursor<K,V> cursor2) { 108 public static <K,V> int compare(MapCursor<K,V> cursor1, MapCursor<K,V> cursor2) {
109 // two cursors are equally deep 109 // two cursors are equally deep
diff --git a/model-data/src/main/java/org/eclipse/viatra/solver/data/map/internal/MapDiffCursor.java b/model-data/src/main/java/org/eclipse/viatra/solver/data/map/internal/MapDiffCursor.java
index 9e3a47ab..e97e4aa1 100644
--- a/model-data/src/main/java/org/eclipse/viatra/solver/data/map/internal/MapDiffCursor.java
+++ b/model-data/src/main/java/org/eclipse/viatra/solver/data/map/internal/MapDiffCursor.java
@@ -51,13 +51,15 @@ public class MapDiffCursor<K,V> implements DiffCursor<K, V>, Cursor<K,V>{
51 this.cursor1 = (MapCursor<K, V>) cursor1; 51 this.cursor1 = (MapCursor<K, V>) cursor1;
52 this.cursor2 = (MapCursor<K, V>) cursor2; 52 this.cursor2 = (MapCursor<K, V>) cursor2;
53 } 53 }
54 54 @Override
55 public K getKey() { 55 public K getKey() {
56 return key; 56 return key;
57 } 57 }
58 @Override
58 public V getFromValue() { 59 public V getFromValue() {
59 return fromValue; 60 return fromValue;
60 } 61 }
62 @Override
61 public V getToValue() { 63 public V getToValue() {
62 return toValue; 64 return toValue;
63 } 65 }
@@ -73,7 +75,7 @@ public class MapDiffCursor<K,V> implements DiffCursor<K, V>, Cursor<K,V>{
73 return this.cursor1.isDirty() || this.cursor2.isDirty(); 75 return this.cursor1.isDirty() || this.cursor2.isDirty();
74 } 76 }
75 @Override 77 @Override
76 public List<VersionedMap<K, V>> getDependingMaps() { 78 public List<VersionedMap<?, ?>> getDependingMaps() {
77 return Stream.concat( 79 return Stream.concat(
78 cursor1.getDependingMaps().stream(), 80 cursor1.getDependingMaps().stream(),
79 cursor2.getDependingMaps().stream() 81 cursor2.getDependingMaps().stream()
@@ -142,7 +144,11 @@ public class MapDiffCursor<K,V> implements DiffCursor<K, V>, Cursor<K,V>{
142 144
143 145
144 protected boolean sameValues() { 146 protected boolean sameValues() {
145 return this.fromValue == this.toValue; 147 if(this.fromValue == null) {
148 return this.toValue == null;
149 } else {
150 return this.fromValue.equals(this.toValue);
151 }
146 } 152 }
147 protected boolean moveOne() { 153 protected boolean moveOne() {
148 if(isTerminated()) { 154 if(isTerminated()) {