Skip to content

Commit f43b96c

Browse files
committed
refactor: move BidiMap to another file to be shared
1 parent 433b045 commit f43b96c

2 files changed

Lines changed: 44 additions & 26 deletions

File tree

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
package io.substrait.extension;
2+
3+
import java.util.HashMap;
4+
import java.util.Map;
5+
import java.util.Set;
6+
7+
/** We don't depend on guava... */
8+
class BidiMap<T1, T2> {
9+
private final Map<T1, T2> forwardMap;
10+
private final Map<T2, T1> reverseMap;
11+
12+
public BidiMap(Map<T1, T2> forwardMap) {
13+
this.forwardMap = forwardMap;
14+
this.reverseMap = new HashMap<>();
15+
}
16+
17+
public BidiMap() {
18+
this.forwardMap = new HashMap<>();
19+
this.reverseMap = new HashMap<>();
20+
}
21+
22+
public T2 get(T1 t1) {
23+
return forwardMap.get(t1);
24+
}
25+
26+
public T1 reverseGet(T2 t2) {
27+
return reverseMap.get(t2);
28+
}
29+
30+
public void put(T1 t1, T2 t2) {
31+
forwardMap.put(t1, t2);
32+
reverseMap.put(t2, t1);
33+
}
34+
35+
public Set<Map.Entry<T1, T2>> forwardEntrySet() {
36+
return forwardMap.entrySet();
37+
}
38+
39+
public Set<Map.Entry<T2, T1>> reverseEntrySet() {
40+
return reverseMap.entrySet();
41+
}
42+
}

core/src/main/java/io/substrait/extension/ExtensionCollector.java

Lines changed: 2 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ private SimpleExtensions getExtensions() {
6868
HashMap<String, SimpleExtensionURN> urns = new HashMap<>();
6969

7070
ArrayList<SimpleExtensionDeclaration> extensionList = new ArrayList<>();
71-
for (Map.Entry<Integer, SimpleExtension.FunctionAnchor> e : funcMap.forwardMap.entrySet()) {
71+
for (Map.Entry<Integer, SimpleExtension.FunctionAnchor> e : funcMap.forwardEntrySet()) {
7272
SimpleExtensionURN urn =
7373
urns.computeIfAbsent(
7474
e.getValue().urn(),
@@ -87,7 +87,7 @@ private SimpleExtensions getExtensions() {
8787
.build();
8888
extensionList.add(decl);
8989
}
90-
for (Map.Entry<Integer, SimpleExtension.TypeAnchor> e : typeMap.forwardMap.entrySet()) {
90+
for (Map.Entry<Integer, SimpleExtension.TypeAnchor> e : typeMap.forwardEntrySet()) {
9191
SimpleExtensionURN urn =
9292
urns.computeIfAbsent(
9393
e.getValue().urn(),
@@ -120,28 +120,4 @@ private static final class SimpleExtensions {
120120
this.extensionList = extensionList;
121121
}
122122
}
123-
124-
/** We don't depend on guava... */
125-
private static class BidiMap<T1, T2> {
126-
private final Map<T1, T2> forwardMap;
127-
private final Map<T2, T1> reverseMap;
128-
129-
public BidiMap(Map<T1, T2> forwardMap) {
130-
this.forwardMap = forwardMap;
131-
this.reverseMap = new HashMap<>();
132-
}
133-
134-
public T2 get(T1 t1) {
135-
return forwardMap.get(t1);
136-
}
137-
138-
public T1 reverseGet(T2 t2) {
139-
return reverseMap.get(t2);
140-
}
141-
142-
public void put(T1 t1, T2 t2) {
143-
forwardMap.put(t1, t2);
144-
reverseMap.put(t2, t1);
145-
}
146-
}
147123
}

0 commit comments

Comments
 (0)