Skip to content

Commit c038e84

Browse files
committed
Fix mock HashMap source in StampedLock integration test
1 parent 03ff25a commit c038e84

File tree

1 file changed

+57
-35
lines changed

1 file changed

+57
-35
lines changed

vm/tests/src/test/java/com/codename1/tools/translator/StampedLockIntegrationTest.java

Lines changed: 57 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -124,42 +124,64 @@ private void writeMockJavaClasses(Path sourceDir) throws Exception {
124124
Files.createDirectories(concurrent);
125125
Files.createDirectories(io);
126126

127+
// java.util.Map
128+
Files.write(util.resolve("Map.java"), ("package java.util;\n" +
129+
"public interface Map<K,V> {\n" +
130+
" V get(Object key);\n" +
131+
" V put(K key, V value);\n" +
132+
" V remove(Object key);\n" +
133+
"}\n").getBytes(StandardCharsets.UTF_8));
134+
127135
// java.util.HashMap (needed for generated native stubs)
128-
Files.write(util.resolve(\"HashMap.java\"), (\"package java.util;\\n\" +
129-
\"public class HashMap<K,V> {\\n\" +
130-
\" public static class Entry<K,V> {\\n\" +
131-
\" public K key;\\n\" +
132-
\" public V value;\\n\" +
133-
\" public int hash;\\n\" +
134-
\" public int origKeyHash;\\n\" +
135-
\" public Entry<K,V> next;\\n\" +
136-
\" public Entry(K key, V value, int hash, Entry<K,V> next) {\\n\" +
137-
\" this.key = key;\\n\" +
138-
\" this.value = value;\\n\" +
139-
\" this.hash = hash;\\n\" +
140-
\" this.origKeyHash = hash;\\n\" +
141-
\" this.next = next;\\n\" +
142-
\" }\\n\" +
143-
\" }\\n\" +
144-
\" private Entry head;\\n\" +
145-
\" private int size = 0;\\n\" +
146-
\" public HashMap() {}\\n\" +
147-
\" public V put(K key, V value) {\\n\" +
148-
\" for (Entry e = head; e != null; e = e.next) {\\n\" +
149-
\" if (e.key == key) { V old = (V)e.value; e.value = value; return old; }\\n\" +
150-
\" }\\n\" +
151-
\" head = new Entry(key, value, key == null ? 0 : key.hashCode(), head);\\n\" +
152-
\" size++;\\n\" +
153-
\" return null;\\n\" +
154-
\" }\\n\" +
155-
\" public V get(Object key) {\\n\" +
156-
\" for (Entry e = head; e != null; e = e.next) {\\n\" +
157-
\" if (e.key == key) return (V)e.value;\\n\" +
158-
\" }\\n\" +
159-
\" return null;\\n\" +
160-
\" }\\n\" +
161-
\" public int size() { return size; }\\n\" +
162-
\"}\\n\").getBytes(StandardCharsets.UTF_8));
136+
Files.write(util.resolve("HashMap.java"), ("package java.util;\n" +
137+
"public class HashMap<K,V> implements Map<K,V> {\n" +
138+
" public static class Entry<K,V> {\n" +
139+
" public K key;\n" +
140+
" public V value;\n" +
141+
" public int hash;\n" +
142+
" public int origKeyHash;\n" +
143+
" public Entry<K,V> next;\n" +
144+
" public Entry(K key, V value, int hash, Entry<K,V> next) {\n" +
145+
" this.key = key;\n" +
146+
" this.value = value;\n" +
147+
" this.hash = hash;\n" +
148+
" this.origKeyHash = hash;\n" +
149+
" this.next = next;\n" +
150+
" }\n" +
151+
" }\n" +
152+
" private Entry head;\n" +
153+
" private int size = 0;\n" +
154+
" public HashMap() {}\n" +
155+
" public V get(Object key) {\n" +
156+
" for (Entry e = head; e != null; e = e.next) {\n" +
157+
" if (e.key == key) return (V)e.value;\n" +
158+
" }\n" +
159+
" return null;\n" +
160+
" }\n" +
161+
" public V put(K key, V value) {\n" +
162+
" for (Entry e = head; e != null; e = e.next) {\n" +
163+
" if (e.key == key) { V old = (V)e.value; e.value = value; return old; }\n" +
164+
" }\n" +
165+
" head = new Entry(key, value, key == null ? 0 : key.hashCode(), head);\n" +
166+
" size++;\n" +
167+
" return null;\n" +
168+
" }\n" +
169+
" public V remove(Object key) {\n" +
170+
" Entry prev = null;\n" +
171+
" Entry e = head;\n" +
172+
" while (e != null) {\n" +
173+
" if (e.key == key) {\n" +
174+
" if (prev == null) head = e.next; else prev.next = e.next;\n" +
175+
" size--;\n" +
176+
" return (V)e.value;\n" +
177+
" }\n" +
178+
" prev = e;\n" +
179+
" e = e.next;\n" +
180+
" }\n" +
181+
" return null;\n" +
182+
" }\n" +
183+
" public int size() { return size; }\n" +
184+
"}\n").getBytes(StandardCharsets.UTF_8));
163185
// java.lang.Object
164186
Files.write(lang.resolve("Object.java"), ("package java.lang;\n" +
165187
"public class Object {\n" +

0 commit comments

Comments
 (0)