diff options
Diffstat (limited to 'src/main/java/io/github/moulberry/notenoughupdates/util/JsonUtils.java')
| -rw-r--r-- | src/main/java/io/github/moulberry/notenoughupdates/util/JsonUtils.java | 29 |
1 files changed, 26 insertions, 3 deletions
diff --git a/src/main/java/io/github/moulberry/notenoughupdates/util/JsonUtils.java b/src/main/java/io/github/moulberry/notenoughupdates/util/JsonUtils.java index 916631b7..b4193c88 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/util/JsonUtils.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/util/JsonUtils.java @@ -5,7 +5,9 @@ import com.google.gson.JsonElement; import com.google.gson.JsonObject; import java.util.Collections; +import java.util.HashMap; import java.util.List; +import java.util.Map; import java.util.function.Function; import java.util.stream.Collectors; import java.util.stream.Stream; @@ -16,11 +18,18 @@ public class JsonUtils { return StreamSupport.stream(array.spliterator(), false); } - public static <T> List<T> transformJsonArrayToList(JsonArray array, Function<? super JsonElement, ? extends T> mapper) { + public static <T> List<T> transformJsonArrayToList( + JsonArray array, + Function<? super JsonElement, ? extends T> mapper + ) { return getJsonArrayAsStream(array).map(mapper).collect(Collectors.toList()); } - public static <T> List<T> getJsonArrayOrEmpty(JsonObject rootObject, String name, Function<? super JsonElement, ? extends T> mapper) { + public static <T> List<T> getJsonArrayOrEmpty( + JsonObject rootObject, + String name, + Function<? super JsonElement, ? extends T> mapper + ) { if (!rootObject.has(name)) { return Collections.emptyList(); } @@ -31,7 +40,10 @@ public class JsonUtils { return Collections.emptyList(); } - public static <T> JsonArray transformListToJsonArray(List<T> things, Function<? super T, ? extends JsonElement> mapper) { + public static <T> JsonArray transformListToJsonArray( + List<T> things, + Function<? super T, ? extends JsonElement> mapper + ) { JsonArray array = new JsonArray(); for (T t : things) { array.add(mapper.apply(t)); @@ -39,4 +51,15 @@ public class JsonUtils { return array; } + public static <T> Map<String, T> transformJsonObjectToMap( + JsonObject object, + Function<? super JsonElement, ? extends T> mapper + ) { + Map<String, T> map = new HashMap<>(); + for (Map.Entry<String, JsonElement> entry : object.entrySet()) { + map.put(entry.getKey(), mapper.apply(entry.getValue())); + } + return map; + } + } |
