Move different types of serializer to different packages.

This commit is contained in:
Florian Nücke
2022-01-15 19:33:31 +01:00
parent 34942fc294
commit 56e00a14bf
17 changed files with 41 additions and 39 deletions

View File

@@ -14,7 +14,7 @@ import li.cil.oc2.common.container.Containers;
import li.cil.oc2.common.entity.Entities;
import li.cil.oc2.common.item.Items;
import li.cil.oc2.common.item.crafting.RecipeSerializers;
import li.cil.oc2.common.serialization.serializers.Serializers;
import li.cil.oc2.common.serialization.ceres.Serializers;
import li.cil.oc2.common.tags.BlockTags;
import li.cil.oc2.common.tags.ItemTags;
import li.cil.oc2.common.util.RegistryUtils;

View File

@@ -11,7 +11,7 @@ import li.cil.oc2.api.bus.device.rpc.RPCParameter;
import li.cil.oc2.common.Constants;
import li.cil.oc2.common.bus.device.rpc.RPCDeviceList;
import li.cil.oc2.common.bus.device.rpc.RPCMethodParameterTypeAdapters;
import li.cil.oc2.common.serialization.serializers.*;
import li.cil.oc2.common.serialization.gson.*;
import li.cil.sedna.api.device.Steppable;
import li.cil.sedna.api.device.serial.SerialDevice;

View File

@@ -2,8 +2,8 @@ package li.cil.oc2.common.bus.device.rpc;
import com.google.gson.GsonBuilder;
import li.cil.oc2.api.imc.RPCMethodParameterTypeAdapter;
import li.cil.oc2.common.serialization.serializers.DirectionJsonSerializer;
import li.cil.oc2.common.serialization.serializers.ItemStackJsonSerializer;
import li.cil.oc2.common.serialization.gson.DirectionJsonSerializer;
import li.cil.oc2.common.serialization.gson.ItemStackJsonSerializer;
import net.minecraft.core.Direction;
import net.minecraft.world.item.ItemStack;

View File

@@ -1,4 +1,4 @@
package li.cil.oc2.common.serialization.serializers;
package li.cil.oc2.common.serialization.ceres;
import com.google.gson.JsonArray;
import com.google.gson.JsonParser;

View File

@@ -1,4 +1,4 @@
package li.cil.oc2.common.serialization.serializers;
package li.cil.oc2.common.serialization.ceres;
import li.cil.ceres.api.DeserializationVisitor;
import li.cil.ceres.api.SerializationException;

View File

@@ -1,4 +1,4 @@
package li.cil.oc2.common.serialization.serializers;
package li.cil.oc2.common.serialization.ceres;
import li.cil.ceres.api.DeserializationVisitor;
import li.cil.ceres.api.SerializationException;
@@ -16,6 +16,7 @@ public final class MemoryRangeSerializer implements Serializer<MemoryRange> {
visitor.putLong("end", range.end);
}
@Nullable
@Override
public MemoryRange deserialize(final DeserializationVisitor visitor, final Class<MemoryRange> type, @Nullable final Object value) throws SerializationException {
if (!visitor.exists("start") || !visitor.exists("end")) {

View File

@@ -1,4 +1,4 @@
package li.cil.oc2.common.serialization.serializers;
package li.cil.oc2.common.serialization.ceres;
import com.google.gson.JsonArray;
import li.cil.ceres.Ceres;

View File

@@ -1,4 +1,4 @@
package li.cil.oc2.common.serialization.serializers;
package li.cil.oc2.common.serialization.ceres;
import li.cil.ceres.api.DeserializationVisitor;
import li.cil.ceres.api.SerializationException;
@@ -23,6 +23,10 @@ public final class TextComponentSerializer implements Serializer<Component> {
}
final String json = (String) visitor.getObject("value", String.class, null);
if (json == null) {
return (Component) value;
}
return Component.Serializer.fromJson(json);
}
}

View File

@@ -1,6 +1,6 @@
@ParametersAreNonnullByDefault
@MethodsReturnNonnullByDefault
package li.cil.oc2.common.serialization.serializers;
package li.cil.oc2.common.serialization.ceres;
import net.minecraft.MethodsReturnNonnullByDefault;

View File

@@ -1,4 +1,4 @@
package li.cil.oc2.common.serialization.serializers;
package li.cil.oc2.common.serialization.gson;
import com.google.gson.*;
import net.minecraft.core.Direction;
@@ -32,10 +32,6 @@ public final class DirectionJsonSerializer implements JsonDeserializer<Direction
@Override
public JsonElement serialize(final Direction src, final Type typeOfSrc, final JsonSerializationContext context) {
if (src == null) {
return JsonNull.INSTANCE;
} else {
return new JsonPrimitive(src.toString());
}
return new JsonPrimitive(src.toString());
}
}

View File

@@ -1,4 +1,4 @@
package li.cil.oc2.common.serialization.serializers;
package li.cil.oc2.common.serialization.gson;
import com.google.gson.JsonElement;
import com.google.gson.JsonNull;
@@ -13,7 +13,7 @@ import java.lang.reflect.Type;
public final class ItemStackJsonSerializer implements JsonSerializer<ItemStack> {
@Override
public JsonElement serialize(final ItemStack src, final Type typeOfSrc, final JsonSerializationContext context) {
if (src == null || src.isEmpty()) {
if (src.isEmpty()) {
return JsonNull.INSTANCE;
}

View File

@@ -1,4 +1,4 @@
package li.cil.oc2.common.serialization.serializers;
package li.cil.oc2.common.serialization.gson;
import com.google.gson.*;
import li.cil.oc2.common.bus.RPCDeviceBusAdapter;

View File

@@ -1,4 +1,4 @@
package li.cil.oc2.common.serialization.serializers;
package li.cil.oc2.common.serialization.gson;
import com.google.gson.*;
import li.cil.oc2.common.bus.RPCDeviceBusAdapter;

View File

@@ -1,6 +1,9 @@
package li.cil.oc2.common.serialization.serializers;
package li.cil.oc2.common.serialization.gson;
import com.google.gson.*;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import com.google.gson.JsonSerializationContext;
import com.google.gson.JsonSerializer;
import li.cil.oc2.common.bus.RPCDeviceBusAdapter;
import java.lang.reflect.Type;
@@ -8,13 +11,9 @@ import java.lang.reflect.Type;
public final class RPCDeviceWithIdentifierJsonSerializer implements JsonSerializer<RPCDeviceBusAdapter.RPCDeviceWithIdentifier> {
@Override
public JsonElement serialize(final RPCDeviceBusAdapter.RPCDeviceWithIdentifier src, final Type typeOfSrc, final JsonSerializationContext context) {
if (src == null) {
return JsonNull.INSTANCE;
}
final JsonObject deviceJson = new JsonObject();
deviceJson.add("deviceId", context.serialize(src.identifier));
deviceJson.add("typeNames", context.serialize(src.device.getTypeNames()));
deviceJson.add("deviceId", context.serialize(src.identifier()));
deviceJson.add("typeNames", context.serialize(src.device().getTypeNames()));
return deviceJson;
}

View File

@@ -1,4 +1,4 @@
package li.cil.oc2.common.serialization.serializers;
package li.cil.oc2.common.serialization.gson;
import com.google.gson.*;
import li.cil.oc2.api.bus.device.rpc.RPCMethod;
@@ -9,10 +9,6 @@ import java.lang.reflect.Type;
public final class RPCMethodJsonSerializer implements JsonSerializer<RPCMethod> {
@Override
public JsonElement serialize(final RPCMethod method, final Type typeOfMethod, final JsonSerializationContext context) {
if (method == null) {
return JsonNull.INSTANCE;
}
final JsonObject methodJson = new JsonObject();
methodJson.addProperty("name", method.getName());
methodJson.addProperty("returnType", method.getReturnType().getSimpleName());

View File

@@ -1,16 +1,15 @@
package li.cil.oc2.common.serialization.serializers;
package li.cil.oc2.common.serialization.gson;
import com.google.gson.*;
import com.google.gson.JsonArray;
import com.google.gson.JsonElement;
import com.google.gson.JsonSerializationContext;
import com.google.gson.JsonSerializer;
import java.lang.reflect.Type;
public final class UnsignedByteArrayJsonSerializer implements JsonSerializer<byte[]> {
@Override
public JsonElement serialize(final byte[] src, final Type typeOfSrc, final JsonSerializationContext context) {
if (src == null) {
return JsonNull.INSTANCE;
}
final JsonArray json = new JsonArray();
for (final byte b : src) {
json.add(b & 0xFF);

View File

@@ -0,0 +1,7 @@
@ParametersAreNonnullByDefault
@MethodsReturnNonnullByDefault
package li.cil.oc2.common.serialization.gson;
import net.minecraft.MethodsReturnNonnullByDefault;
import javax.annotation.ParametersAreNonnullByDefault;