Skip to content
This repository was archived by the owner on Apr 25, 2020. It is now read-only.

Commit c466458

Browse files
committed
Add some Java love
1 parent 8fe32a4 commit c466458

File tree

1 file changed

+71
-0
lines changed

1 file changed

+71
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
package com.ckkloverdos.env;
2+
3+
import com.ckkloverdos.key.TypedKeyOnly;
4+
5+
/**
6+
* @author Christos KK Loverdos <loverdos@gmail.com>
7+
*/
8+
public final class JEnvHelpers {
9+
private JEnvHelpers() {}
10+
11+
public static Env newEnv() {
12+
return Env$.MODULE$.apply();
13+
}
14+
15+
public static <A> Env add(Env env, TypedKeyOnly<A> key, A value) {
16+
return env.$plus(key, value, key.keyType());
17+
}
18+
19+
public static <A> Env remove(Env env, TypedKeyOnly<A> key) {
20+
return env.$minus(key, key.keyType());
21+
}
22+
23+
public static <A, B> Env add(
24+
Env env,
25+
TypedKeyOnly<A> keyA,
26+
A valueA,
27+
TypedKeyOnly<B> keyB,
28+
B valueB
29+
) {
30+
31+
return env.
32+
$plus(keyA, valueA, keyA.keyType()).
33+
$plus(keyB, valueB, keyB.keyType());
34+
}
35+
36+
public static <A, B, C> Env add(
37+
Env env,
38+
TypedKeyOnly<A> keyA,
39+
A valueA,
40+
TypedKeyOnly<B> keyB,
41+
B valueB,
42+
TypedKeyOnly<C> keyC,
43+
C valueC
44+
) {
45+
46+
return env.
47+
$plus(keyA, valueA, keyA.keyType()).
48+
$plus(keyB, valueB, keyB.keyType()).
49+
$plus(keyC, valueC, keyC.keyType());
50+
}
51+
52+
public static <A, B, C, D> Env add(
53+
Env env,
54+
TypedKeyOnly<A> keyA,
55+
A valueA,
56+
TypedKeyOnly<B> keyB,
57+
B valueB,
58+
TypedKeyOnly<C> keyC,
59+
C valueC,
60+
TypedKeyOnly<D> keyD,
61+
D valueD
62+
63+
) {
64+
65+
return env.
66+
$plus(keyA, valueA, keyA.keyType()).
67+
$plus(keyB, valueB, keyB.keyType()).
68+
$plus(keyC, valueC, keyC.keyType()).
69+
$plus(keyD, valueD, keyD.keyType());
70+
}
71+
}

0 commit comments

Comments
 (0)