aboutsummaryrefslogtreecommitdiffstats
path: root/model-data/src/main/java/org/eclipse/viatra/solver/data/map/VersionedMapStoreImpl.java
diff options
context:
space:
mode:
authorLibravatar OszkarSemerath <semerath@mit.bme.hu>2021-08-01 22:13:49 +0200
committerLibravatar OszkarSemerath <semerath@mit.bme.hu>2021-08-01 22:13:49 +0200
commit59fd43462a7c5aa076c10ce3bb16121a7dc7edcc (patch)
tree1bd28bda68125fc70ce9bc330c7bafb2016ae8bf /model-data/src/main/java/org/eclipse/viatra/solver/data/map/VersionedMapStoreImpl.java
parentContentEquals test + typo fix (diff)
downloadrefinery-59fd43462a7c5aa076c10ce3bb16121a7dc7edcc.tar.gz
refinery-59fd43462a7c5aa076c10ce3bb16121a7dc7edcc.tar.zst
refinery-59fd43462a7c5aa076c10ce3bb16121a7dc7edcc.zip
KEY,VALUE replaced with K,V to please Sonar
Diffstat (limited to 'model-data/src/main/java/org/eclipse/viatra/solver/data/map/VersionedMapStoreImpl.java')
-rw-r--r--model-data/src/main/java/org/eclipse/viatra/solver/data/map/VersionedMapStoreImpl.java62
1 files changed, 31 insertions, 31 deletions
diff --git a/model-data/src/main/java/org/eclipse/viatra/solver/data/map/VersionedMapStoreImpl.java b/model-data/src/main/java/org/eclipse/viatra/solver/data/map/VersionedMapStoreImpl.java
index 7b69ae54..5bcbf0c4 100644
--- a/model-data/src/main/java/org/eclipse/viatra/solver/data/map/VersionedMapStoreImpl.java
+++ b/model-data/src/main/java/org/eclipse/viatra/solver/data/map/VersionedMapStoreImpl.java
@@ -12,20 +12,20 @@ import org.eclipse.viatra.solver.data.map.internal.MapDiffCursor;
12import org.eclipse.viatra.solver.data.map.internal.Node; 12import org.eclipse.viatra.solver.data.map.internal.Node;
13import org.eclipse.viatra.solver.data.map.internal.VersionedMapImpl; 13import org.eclipse.viatra.solver.data.map.internal.VersionedMapImpl;
14 14
15public class VersionedMapStoreImpl<KEY, VALUE> implements VersionedMapStore<KEY, VALUE> { 15public class VersionedMapStoreImpl<K, V> implements VersionedMapStore<K, V> {
16 // Configuration 16 // Configuration
17 private final boolean immutableWhenCommiting; 17 private final boolean immutableWhenCommiting;
18 18
19 // Static data 19 // Static data
20 protected final ContinousHashProvider<? super KEY> hashProvider; 20 protected final ContinousHashProvider<? super K> hashProvider;
21 protected final VALUE defaultValue; 21 protected final V defaultValue;
22 22
23 // Dynamic data 23 // Dynamic data
24 protected final Map<Long, ImmutableNode<KEY, VALUE>> states = new HashMap<>(); 24 protected final Map<Long, ImmutableNode<K, V>> states = new HashMap<>();
25 protected final Map<Node<KEY, VALUE>, ImmutableNode<KEY, VALUE>> nodeCache; 25 protected final Map<Node<K, V>, ImmutableNode<K, V>> nodeCache;
26 protected long nextID = 0; 26 protected long nextID = 0;
27 27
28 public VersionedMapStoreImpl(ContinousHashProvider<? super KEY> hashProvider, VALUE defaultValue, 28 public VersionedMapStoreImpl(ContinousHashProvider<? super K> hashProvider, V defaultValue,
29 VersionedMapStoreConfiguration config) { 29 VersionedMapStoreConfiguration config) {
30 this.immutableWhenCommiting = config.immutableWhenCommiting; 30 this.immutableWhenCommiting = config.immutableWhenCommiting;
31 this.hashProvider = hashProvider; 31 this.hashProvider = hashProvider;
@@ -37,42 +37,42 @@ public class VersionedMapStoreImpl<KEY, VALUE> implements VersionedMapStore<KEY,
37 } 37 }
38 } 38 }
39 39
40 private VersionedMapStoreImpl(ContinousHashProvider<? super KEY> hashProvider, VALUE defaultValue, 40 private VersionedMapStoreImpl(ContinousHashProvider<K> hashProvider, V defaultValue,
41 Map<Node<KEY, VALUE>, ImmutableNode<KEY, VALUE>> nodeCache, VersionedMapStoreConfiguration config) { 41 Map<Node<K, V>, ImmutableNode<K, V>> nodeCache, VersionedMapStoreConfiguration config) {
42 this.immutableWhenCommiting = config.immutableWhenCommiting; 42 this.immutableWhenCommiting = config.immutableWhenCommiting;
43 this.hashProvider = hashProvider; 43 this.hashProvider = hashProvider;
44 this.defaultValue = defaultValue; 44 this.defaultValue = defaultValue;
45 this.nodeCache = nodeCache; 45 this.nodeCache = nodeCache;
46 } 46 }
47 47
48 public VersionedMapStoreImpl(ContinousHashProvider<KEY> hashProvider, VALUE defaultValue) { 48 public VersionedMapStoreImpl(ContinousHashProvider<K> hashProvider, V defaultValue) {
49 this(hashProvider, defaultValue, new VersionedMapStoreConfiguration()); 49 this(hashProvider, defaultValue, new VersionedMapStoreConfiguration());
50 } 50 }
51 51
52 public static <KEY, VALUE> List<VersionedMapStore<KEY, VALUE>> createSharedVersionedMapStores(int amount, 52 public static <K, V> List<VersionedMapStore<K, V>> createSharedVersionedMapStores(int amount,
53 ContinousHashProvider<? super KEY> hashProvider, VALUE defaultValue, 53 ContinousHashProvider<K> hashProvider, V defaultValue,
54 VersionedMapStoreConfiguration config) { 54 VersionedMapStoreConfiguration config) {
55 List<VersionedMapStore<KEY, VALUE>> result = new ArrayList<>(amount); 55 List<VersionedMapStore<K, V>> result = new ArrayList<>(amount);
56 if (config.sharedNodeCacheInStoreGroups) { 56 if (config.sharedNodeCacheInStoreGroups) {
57 Map<Node<KEY, VALUE>, ImmutableNode<KEY, VALUE>> nodeCache; 57 Map<Node<K, V>, ImmutableNode<K, V>> nodeCache;
58 if (config.sharedNodeCacheInStore) { 58 if (config.sharedNodeCacheInStore) {
59 nodeCache = new HashMap<>(); 59 nodeCache = new HashMap<>();
60 } else { 60 } else {
61 nodeCache = null; 61 nodeCache = null;
62 } 62 }
63 for (int i = 0; i < amount; i++) { 63 for (int i = 0; i < amount; i++) {
64 result.add(new VersionedMapStoreImpl<KEY, VALUE>(hashProvider, defaultValue, nodeCache, config)); 64 result.add(new VersionedMapStoreImpl<K, V>(hashProvider, defaultValue, nodeCache, config));
65 } 65 }
66 } else { 66 } else {
67 for (int i = 0; i < amount; i++) { 67 for (int i = 0; i < amount; i++) {
68 result.add(new VersionedMapStoreImpl<KEY, VALUE>(hashProvider, defaultValue, config)); 68 result.add(new VersionedMapStoreImpl<K, V>(hashProvider, defaultValue, config));
69 } 69 }
70 } 70 }
71 return result; 71 return result;
72 } 72 }
73 73
74 public static <KEY, VALUE> List<VersionedMapStore<KEY, VALUE>> createSharedVersionedMapStores(int amount, 74 public static <K, V> List<VersionedMapStore<K, V>> createSharedVersionedMapStores(int amount,
75 ContinousHashProvider<? super KEY> hashProvider, VALUE defaultValue) { 75 ContinousHashProvider<K> hashProvider, V defaultValue) {
76 return createSharedVersionedMapStores(amount, hashProvider, defaultValue, new VersionedMapStoreConfiguration()); 76 return createSharedVersionedMapStores(amount, hashProvider, defaultValue, new VersionedMapStoreConfiguration());
77 } 77 }
78 78
@@ -81,17 +81,17 @@ public class VersionedMapStoreImpl<KEY, VALUE> implements VersionedMapStore<KEY,
81 } 81 }
82 82
83 @Override 83 @Override
84 public VersionedMap<KEY, VALUE> createMap() { 84 public VersionedMap<K, V> createMap() {
85 return new VersionedMapImpl<KEY, VALUE>(this, hashProvider, defaultValue); 85 return new VersionedMapImpl<K, V>(this, hashProvider, defaultValue);
86 } 86 }
87 87
88 @Override 88 @Override
89 public VersionedMap<KEY, VALUE> createMap(long state) { 89 public VersionedMap<K, V> createMap(long state) {
90 ImmutableNode<KEY, VALUE> data = revert(state); 90 ImmutableNode<K, V> data = revert(state);
91 return new VersionedMapImpl<KEY, VALUE>(this, hashProvider, defaultValue, data); 91 return new VersionedMapImpl<K, V>(this, hashProvider, defaultValue, data);
92 } 92 }
93 93
94 public synchronized ImmutableNode<KEY, VALUE> revert(long state) { 94 public synchronized ImmutableNode<K, V> revert(long state) {
95 if (states.containsKey(state)) { 95 if (states.containsKey(state)) {
96 return states.get(state); 96 return states.get(state);
97 } else { 97 } else {
@@ -102,8 +102,8 @@ public class VersionedMapStoreImpl<KEY, VALUE> implements VersionedMapStore<KEY,
102 } 102 }
103 } 103 }
104 104
105 public synchronized long commit(Node<KEY, VALUE> data, VersionedMapImpl<KEY, VALUE> mapToUpdateRoot) { 105 public synchronized long commit(Node<K, V> data, VersionedMapImpl<K, V> mapToUpdateRoot) {
106 ImmutableNode<KEY, VALUE> immutable; 106 ImmutableNode<K, V> immutable;
107 if (data != null) { 107 if (data != null) {
108 immutable = data.toImmutable(this.nodeCache); 108 immutable = data.toImmutable(this.nodeCache);
109 } else { 109 } else {
@@ -121,11 +121,11 @@ public class VersionedMapStoreImpl<KEY, VALUE> implements VersionedMapStore<KEY,
121 } 121 }
122 122
123 @Override 123 @Override
124 public DiffCursor<KEY, VALUE> getDiffCursor(long fromState, long toState) { 124 public DiffCursor<K, V> getDiffCursor(long fromState, long toState) {
125 VersionedMap<KEY, VALUE> map1 = createMap(fromState); 125 VersionedMap<K, V> map1 = createMap(fromState);
126 VersionedMap<KEY, VALUE> map2 = createMap(toState); 126 VersionedMap<K, V> map2 = createMap(toState);
127 Cursor<KEY, VALUE> cursor1 = map1.getCursor(); 127 Cursor<K, V> cursor1 = map1.getCursor();
128 Cursor<KEY, VALUE> cursor2 = map2.getCursor(); 128 Cursor<K, V> cursor2 = map2.getCursor();
129 return new MapDiffCursor<KEY, VALUE>(this.hashProvider, this.defaultValue, cursor1, cursor2); 129 return new MapDiffCursor<K, V>(this.hashProvider, this.defaultValue, cursor1, cursor2);
130 } 130 }
131} 131}