Skip to content

Commit 7386716

Browse files
committed
add method overload
1 parent 4539cd1 commit 7386716

File tree

2 files changed

+9
-16
lines changed

2 files changed

+9
-16
lines changed

src/main/java/gregtech/api/mui/serialize/DrawableSerializer.java

Lines changed: 4 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -4,15 +4,13 @@
44

55
import com.cleanroommc.modularui.api.drawable.IDrawable;
66
import com.cleanroommc.modularui.api.drawable.IKey;
7-
import com.google.gson.JsonArray;
87
import com.google.gson.JsonDeserializationContext;
98
import com.google.gson.JsonElement;
109
import com.google.gson.JsonObject;
1110
import com.google.gson.JsonParseException;
1211
import com.google.gson.JsonSerializationContext;
1312

14-
import java.util.ArrayList;
15-
import java.util.List;
13+
import java.util.Arrays;
1614

1715
public class DrawableSerializer implements JsonHandler<IDrawable> {
1816

@@ -24,11 +22,8 @@ public IDrawable deserialize(JsonElement json, JsonDeserializationContext contex
2422
if (parsed.has("key") && parsed.has("tooltip")) {
2523
IKey key = context.deserialize(parsed.get("key"), IKey.class);
2624

27-
List<IDrawable> list = new ArrayList<>();
28-
for (JsonElement jsonElement : parsed.getAsJsonArray("tooltip")) {
29-
list.add(context.deserialize(jsonElement, IDrawable.class));
30-
}
31-
return HoverableKey.of(key).addLines(list);
25+
IDrawable[] list = deserializeArray(parsed.getAsJsonArray("tooltip"), context, IDrawable[]::new);
26+
return HoverableKey.of(key).addLines(Arrays.asList(list));
3227
} else {
3328
return context.deserialize(parsed, IKey.class);
3429
}
@@ -40,12 +35,7 @@ public JsonElement serialize(IDrawable src, JsonSerializationContext context) {
4035
JsonObject object = new JsonObject();
4136
if (src instanceof HoverableKey hoverable) {
4237
object.add("key", context.serialize(hoverable.getKey(), IKey.class));
43-
JsonArray array = new JsonArray();
44-
for (IDrawable tooltipLine : hoverable.getTooltipLines()) {
45-
array.add(context.serialize(tooltipLine, IDrawable.class));
46-
}
47-
object.add("tooltip", array);
48-
return object;
38+
object.add("tooltip", serializeArray(hoverable.getTooltipLines(), context));
4939
}
5040
return object;
5141
}

src/main/java/gregtech/api/mui/serialize/JsonHandler.java

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@
1010
import com.google.gson.JsonPrimitive;
1111
import com.google.gson.JsonSerializationContext;
1212
import com.google.gson.JsonSerializer;
13-
import org.apache.commons.lang3.ArrayUtils;
1413

1514
import java.lang.reflect.Type;
1615
import java.util.Arrays;
@@ -34,8 +33,12 @@ default T deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext
3433
T deserialize(JsonElement json, JsonDeserializationContext context) throws JsonParseException;
3534

3635
default <R> JsonArray serializeArray(R[] objects, JsonSerializationContext context) {
36+
return serializeArray(Arrays.asList(objects), context);
37+
}
38+
39+
default <R> JsonArray serializeArray(Iterable<R> objects, JsonSerializationContext context) {
3740
JsonArray array = new JsonArray();
38-
if (ArrayUtils.isEmpty(objects)) return array;
41+
if (objects == null) return array;
3942
Type arrayType = objects.getClass().getComponentType();
4043
for (R t : objects) {
4144
JsonElement element = context.serialize(t, arrayType);

0 commit comments

Comments
 (0)