forked from open-feature/java-sdk
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathObjectUtils.java
More file actions
77 lines (71 loc) · 2.21 KB
/
Copy pathObjectUtils.java
File metadata and controls
77 lines (71 loc) · 2.21 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
package dev.openfeature.sdk.internal;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import java.util.Map;
import java.util.function.Supplier;
import lombok.experimental.UtilityClass;
@SuppressWarnings("checkstyle:MissingJavadocType")
@UtilityClass
public class ObjectUtils {
/**
* If the source param is null, return the default value.
*
* @param source maybe null object
* @param defaultValue thing to use if source is null
* @param <T> list type
* @return resulting object
*/
public static <T> List<T> defaultIfNull(List<T> source, Supplier<List<T>> defaultValue) {
if (source == null) {
return defaultValue.get();
}
return source;
}
/**
* If the source param is null, return the default value.
*
* @param source maybe null object
* @param defaultValue thing to use if source is null
* @param <K> map key type
* @param <V> map value type
* @return resulting map
*/
public static <K, V> Map<K, V> defaultIfNull(Map<K, V> source, Supplier<Map<K, V>> defaultValue) {
if (source == null) {
return defaultValue.get();
}
return source;
}
/**
* If the source param is null, return the default value.
*
* @param source maybe null object
* @param defaultValue thing to use if source is null
* @param <T> type
* @return resulting object
*/
public static <T> T defaultIfNull(T source, Supplier<T> defaultValue) {
if (source == null) {
return defaultValue.get();
}
return source;
}
/**
* Concatenate a bunch of lists.
*
* @param sources bunch of lists.
* @param <T> list type
* @return resulting object
* @deprecated Not used in the project anymore. This method will be removed in a future release.
*/
@Deprecated(forRemoval = true)
@SafeVarargs
public static <T> List<T> merge(Collection<T>... sources) {
List<T> merged = new ArrayList<>();
for (Collection<T> source : sources) {
merged.addAll(source);
}
return merged;
}
}