From 73867161c467758d99bf613bb43680687a19d472 Mon Sep 17 00:00:00 2001 From: Ghzdude <44148655+ghzdude@users.noreply.github.com> Date: Tue, 28 Jan 2025 19:35:32 -0700 Subject: [PATCH] add method overload --- .../api/mui/serialize/DrawableSerializer.java | 18 ++++-------------- .../api/mui/serialize/JsonHandler.java | 7 +++++-- 2 files changed, 9 insertions(+), 16 deletions(-) diff --git a/src/main/java/gregtech/api/mui/serialize/DrawableSerializer.java b/src/main/java/gregtech/api/mui/serialize/DrawableSerializer.java index e1716052854..97ec0f26c60 100644 --- a/src/main/java/gregtech/api/mui/serialize/DrawableSerializer.java +++ b/src/main/java/gregtech/api/mui/serialize/DrawableSerializer.java @@ -4,15 +4,13 @@ import com.cleanroommc.modularui.api.drawable.IDrawable; import com.cleanroommc.modularui.api.drawable.IKey; -import com.google.gson.JsonArray; import com.google.gson.JsonDeserializationContext; import com.google.gson.JsonElement; import com.google.gson.JsonObject; import com.google.gson.JsonParseException; import com.google.gson.JsonSerializationContext; -import java.util.ArrayList; -import java.util.List; +import java.util.Arrays; public class DrawableSerializer implements JsonHandler { @@ -24,11 +22,8 @@ public IDrawable deserialize(JsonElement json, JsonDeserializationContext contex if (parsed.has("key") && parsed.has("tooltip")) { IKey key = context.deserialize(parsed.get("key"), IKey.class); - List list = new ArrayList<>(); - for (JsonElement jsonElement : parsed.getAsJsonArray("tooltip")) { - list.add(context.deserialize(jsonElement, IDrawable.class)); - } - return HoverableKey.of(key).addLines(list); + IDrawable[] list = deserializeArray(parsed.getAsJsonArray("tooltip"), context, IDrawable[]::new); + return HoverableKey.of(key).addLines(Arrays.asList(list)); } else { return context.deserialize(parsed, IKey.class); } @@ -40,12 +35,7 @@ public JsonElement serialize(IDrawable src, JsonSerializationContext context) { JsonObject object = new JsonObject(); if (src instanceof HoverableKey hoverable) { object.add("key", context.serialize(hoverable.getKey(), IKey.class)); - JsonArray array = new JsonArray(); - for (IDrawable tooltipLine : hoverable.getTooltipLines()) { - array.add(context.serialize(tooltipLine, IDrawable.class)); - } - object.add("tooltip", array); - return object; + object.add("tooltip", serializeArray(hoverable.getTooltipLines(), context)); } return object; } diff --git a/src/main/java/gregtech/api/mui/serialize/JsonHandler.java b/src/main/java/gregtech/api/mui/serialize/JsonHandler.java index 042e52c54f7..afd0bb41476 100644 --- a/src/main/java/gregtech/api/mui/serialize/JsonHandler.java +++ b/src/main/java/gregtech/api/mui/serialize/JsonHandler.java @@ -10,7 +10,6 @@ import com.google.gson.JsonPrimitive; import com.google.gson.JsonSerializationContext; import com.google.gson.JsonSerializer; -import org.apache.commons.lang3.ArrayUtils; import java.lang.reflect.Type; import java.util.Arrays; @@ -34,8 +33,12 @@ default T deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext T deserialize(JsonElement json, JsonDeserializationContext context) throws JsonParseException; default JsonArray serializeArray(R[] objects, JsonSerializationContext context) { + return serializeArray(Arrays.asList(objects), context); + } + + default JsonArray serializeArray(Iterable objects, JsonSerializationContext context) { JsonArray array = new JsonArray(); - if (ArrayUtils.isEmpty(objects)) return array; + if (objects == null) return array; Type arrayType = objects.getClass().getComponentType(); for (R t : objects) { JsonElement element = context.serialize(t, arrayType);