aboutsummaryrefslogtreecommitdiffstats
path: root/model-data/src/main/java/org/eclipse/viatra/solver/data/map/internal/VersionedMapImpl.java
diff options
context:
space:
mode:
Diffstat (limited to 'model-data/src/main/java/org/eclipse/viatra/solver/data/map/internal/VersionedMapImpl.java')
-rw-r--r--model-data/src/main/java/org/eclipse/viatra/solver/data/map/internal/VersionedMapImpl.java60
1 files changed, 30 insertions, 30 deletions
diff --git a/model-data/src/main/java/org/eclipse/viatra/solver/data/map/internal/VersionedMapImpl.java b/model-data/src/main/java/org/eclipse/viatra/solver/data/map/internal/VersionedMapImpl.java
index 715a9d74..d04e7117 100644
--- a/model-data/src/main/java/org/eclipse/viatra/solver/data/map/internal/VersionedMapImpl.java
+++ b/model-data/src/main/java/org/eclipse/viatra/solver/data/map/internal/VersionedMapImpl.java
@@ -14,20 +14,20 @@ import org.eclipse.viatra.solver.data.map.VersionedMapStoreImpl;
14 * Not threadSafe in itself 14 * Not threadSafe in itself
15 * @author Oszkar Semerath 15 * @author Oszkar Semerath
16 * 16 *
17 * @param <KEY> 17 * @param <K>
18 * @param <VALUE> 18 * @param <V>
19 */ 19 */
20public class VersionedMapImpl<KEY,VALUE> implements VersionedMap<KEY,VALUE>{ 20public class VersionedMapImpl<K,V> implements VersionedMap<K,V>{
21 protected final VersionedMapStoreImpl<KEY,VALUE> store; 21 protected final VersionedMapStoreImpl<K,V> store;
22 22
23 protected final ContinousHashProvider<? super KEY> hashProvider; 23 protected final ContinousHashProvider<? super K> hashProvider;
24 protected final VALUE defaultValue; 24 protected final V defaultValue;
25 protected Node<KEY,VALUE> root; 25 protected Node<K,V> root;
26 26
27 public VersionedMapImpl( 27 public VersionedMapImpl(
28 VersionedMapStoreImpl<KEY,VALUE> store, 28 VersionedMapStoreImpl<K,V> store,
29 ContinousHashProvider<? super KEY> hashProvider, 29 ContinousHashProvider<? super K> hashProvider,
30 VALUE defaultValue) 30 V defaultValue)
31 { 31 {
32 this.store = store; 32 this.store = store;
33 this.hashProvider = hashProvider; 33 this.hashProvider = hashProvider;
@@ -35,9 +35,9 @@ public class VersionedMapImpl<KEY,VALUE> implements VersionedMap<KEY,VALUE>{
35 this.root = null; 35 this.root = null;
36 } 36 }
37 public VersionedMapImpl( 37 public VersionedMapImpl(
38 VersionedMapStoreImpl<KEY,VALUE> store, 38 VersionedMapStoreImpl<K,V> store,
39 ContinousHashProvider<? super KEY> hashProvider, 39 ContinousHashProvider<? super K> hashProvider,
40 VALUE defaultValue, Node<KEY,VALUE> data) 40 V defaultValue, Node<K,V> data)
41 { 41 {
42 this.store = store; 42 this.store = store;
43 this.hashProvider = hashProvider; 43 this.hashProvider = hashProvider;
@@ -45,14 +45,14 @@ public class VersionedMapImpl<KEY,VALUE> implements VersionedMap<KEY,VALUE>{
45 this.root = data; 45 this.root = data;
46 } 46 }
47 47
48 public VALUE getDefaultValue() { 48 public V getDefaultValue() {
49 return defaultValue; 49 return defaultValue;
50 } 50 }
51 public ContinousHashProvider<? super KEY> getHashProvider() { 51 public ContinousHashProvider<? super K> getHashProvider() {
52 return hashProvider; 52 return hashProvider;
53 } 53 }
54 @Override 54 @Override
55 public void put(KEY key, VALUE value) { 55 public void put(K key, V value) {
56 if(root!=null) { 56 if(root!=null) {
57 root = root.putValue(key, value, hashProvider, defaultValue, hashProvider.getHash(key, 0), 0); 57 root = root.putValue(key, value, hashProvider, defaultValue, hashProvider.getHash(key, 0), 0);
58 } else { 58 } else {
@@ -61,16 +61,16 @@ public class VersionedMapImpl<KEY,VALUE> implements VersionedMap<KEY,VALUE>{
61 } 61 }
62 62
63 @Override 63 @Override
64 public void putAll(Cursor<KEY, VALUE> cursor) { 64 public void putAll(Cursor<K, V> cursor) {
65 if(cursor.getDependingMaps().contains(this)) { 65 if(cursor.getDependingMaps().contains(this)) {
66 List<KEY> keys = new LinkedList<>(); 66 List<K> keys = new LinkedList<>();
67 List<VALUE> values = new LinkedList<>(); 67 List<V> values = new LinkedList<>();
68 while(cursor.move()) { 68 while(cursor.move()) {
69 keys.add(cursor.getKey()); 69 keys.add(cursor.getKey());
70 values.add(cursor.getValue()); 70 values.add(cursor.getValue());
71 } 71 }
72 Iterator<KEY> keyIterator = keys.iterator(); 72 Iterator<K> keyIterator = keys.iterator();
73 Iterator<VALUE> valueIterator = values.iterator(); 73 Iterator<V> valueIterator = values.iterator();
74 while(keyIterator.hasNext()) { 74 while(keyIterator.hasNext()) {
75 this.put(keyIterator.next(), valueIterator.next()); 75 this.put(keyIterator.next(), valueIterator.next());
76 } 76 }
@@ -82,7 +82,7 @@ public class VersionedMapImpl<KEY,VALUE> implements VersionedMap<KEY,VALUE>{
82 } 82 }
83 83
84 @Override 84 @Override
85 public VALUE get(KEY key) { 85 public V get(K key) {
86 if(root!=null) { 86 if(root!=null) {
87 return root.getValue(key, hashProvider, defaultValue, hashProvider.getHash(key, 0), 0); 87 return root.getValue(key, hashProvider, defaultValue, hashProvider.getHash(key, 0), 0);
88 } else { 88 } else {
@@ -99,16 +99,16 @@ public class VersionedMapImpl<KEY,VALUE> implements VersionedMap<KEY,VALUE>{
99 } 99 }
100 100
101 @Override 101 @Override
102 public Cursor<KEY, VALUE> getCursor() { 102 public Cursor<K, V> getCursor() {
103 MapCursor<KEY,VALUE> cursor = new MapCursor<>(this.root,this); 103 MapCursor<K,V> cursor = new MapCursor<>(this.root,this);
104 return cursor; 104 return cursor;
105 } 105 }
106 @Override 106 @Override
107 public DiffCursor<KEY, VALUE> getDiffCursor(long toVersion) { 107 public DiffCursor<K, V> getDiffCursor(long toVersion) {
108 Cursor<KEY, VALUE> fromCursor = this.getCursor(); 108 Cursor<K, V> fromCursor = this.getCursor();
109 VersionedMap<KEY, VALUE> toMap = this.store.createMap(toVersion); 109 VersionedMap<K, V> toMap = this.store.createMap(toVersion);
110 Cursor<KEY, VALUE> toCursor = toMap.getCursor(); 110 Cursor<K, V> toCursor = toMap.getCursor();
111 return new MapDiffCursor<KEY, VALUE>(this.hashProvider,this.defaultValue, fromCursor, toCursor); 111 return new MapDiffCursor<K, V>(this.hashProvider,this.defaultValue, fromCursor, toCursor);
112 112
113 } 113 }
114 114
@@ -117,7 +117,7 @@ public class VersionedMapImpl<KEY,VALUE> implements VersionedMap<KEY,VALUE>{
117 public long commit() { 117 public long commit() {
118 return this.store.commit(root,this); 118 return this.store.commit(root,this);
119 } 119 }
120 public void setRoot(Node<KEY, VALUE> root) { 120 public void setRoot(Node<K, V> root) {
121 this.root = root; 121 this.root = root;
122 } 122 }
123 123