diff --git a/src/main/java/li/cil/oc2/api/API.java b/src/main/java/li/cil/oc2/api/API.java index f611c38b..d0593dbb 100644 --- a/src/main/java/li/cil/oc2/api/API.java +++ b/src/main/java/li/cil/oc2/api/API.java @@ -3,7 +3,7 @@ package li.cil.oc2.api; import com.google.gson.GsonBuilder; import li.cil.oc2.api.bus.device.object.Callback; import li.cil.oc2.api.bus.device.rpc.RPCMethod; -import li.cil.oc2.api.imc.DeviceMethodParameterTypeAdapter; +import li.cil.oc2.api.imc.RPCMethodParameterTypeAdapter; import li.cil.oc2.api.provider.DeviceProvider; import java.lang.reflect.Type; @@ -25,7 +25,7 @@ public final class API { * IMC message for registering Gson type adapters for method parameter serialization and * deserialization. *

- * Must be called with a supplier that provides an instance of {@link DeviceMethodParameterTypeAdapter}. + * Must be called with a supplier that provides an instance of {@link RPCMethodParameterTypeAdapter}. *

* It can be necessary to register additional serializers when implementing {@link RPCMethod}s * that use custom parameter types. @@ -34,7 +34,7 @@ public final class API { * @see RPCMethod * @see Callback */ - public static final String IMC_ADD_DEVICE_METHOD_PARAMETER_TYPE_ADAPTER = "addDeviceMethodParameterTypeAdapter"; + public static final String IMC_ADD_RPC_METHOD_PARAMETER_TYPE_ADAPTER = "addRPCMethodParameterTypeAdapter"; private API() { } diff --git a/src/main/java/li/cil/oc2/api/bus/device/object/Callback.java b/src/main/java/li/cil/oc2/api/bus/device/object/Callback.java index 9df36c1a..482f9e64 100644 --- a/src/main/java/li/cil/oc2/api/bus/device/object/Callback.java +++ b/src/main/java/li/cil/oc2/api/bus/device/object/Callback.java @@ -15,7 +15,7 @@ import java.lang.annotation.Target; *

* Method parameters are serialized and deserialized using Gson. When using custom * parameter types it may be necessary to register a custom type adapter for them - * via {@link li.cil.oc2.api.API#IMC_ADD_DEVICE_METHOD_PARAMETER_TYPE_ADAPTER}. + * via {@link li.cil.oc2.api.API#IMC_ADD_RPC_METHOD_PARAMETER_TYPE_ADAPTER}. */ @Target(ElementType.METHOD) @Retention(RetentionPolicy.RUNTIME) diff --git a/src/main/java/li/cil/oc2/api/bus/device/object/Callbacks.java b/src/main/java/li/cil/oc2/api/bus/device/object/Callbacks.java index a480772c..17b41ecc 100644 --- a/src/main/java/li/cil/oc2/api/bus/device/object/Callbacks.java +++ b/src/main/java/li/cil/oc2/api/bus/device/object/Callbacks.java @@ -51,7 +51,7 @@ public final class Callbacks { final ArrayList methods = new ArrayList<>(); for (final Method method : reflectedMethods) { try { - methods.add(new ObjectDeviceMethod(methodContainer, method)); + methods.add(new ObjectRPCMethod(methodContainer, method)); } catch (final IllegalAccessException e) { LOGGER.error("Failed accessing method [{}].", method); } @@ -84,12 +84,12 @@ public final class Callbacks { .collect(Collectors.toList())); } - private static final class ObjectDeviceMethod extends AbstractRPCMethod { + private static final class ObjectRPCMethod extends AbstractRPCMethod { private final MethodHandle handle; private final String description; private final String returnValueDescription; - public ObjectDeviceMethod(final Object target, final Method method) throws IllegalAccessException { + public ObjectRPCMethod(final Object target, final Method method) throws IllegalAccessException { super(method.getName(), Objects.requireNonNull(method.getAnnotation(Callback.class), "Method without Callback annotation.").synchronize(), method.getReturnType(), @@ -121,7 +121,7 @@ public final class Callbacks { public boolean equals(final Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; - final ObjectDeviceMethod that = (ObjectDeviceMethod) o; + final ObjectRPCMethod that = (ObjectRPCMethod) o; return handle.equals(that.handle); } diff --git a/src/main/java/li/cil/oc2/api/bus/device/rpc/RPCMethod.java b/src/main/java/li/cil/oc2/api/bus/device/rpc/RPCMethod.java index 1c8902f0..ce380713 100644 --- a/src/main/java/li/cil/oc2/api/bus/device/rpc/RPCMethod.java +++ b/src/main/java/li/cil/oc2/api/bus/device/rpc/RPCMethod.java @@ -14,7 +14,7 @@ import java.util.Optional; *

* Method parameters are serialized and deserialized using Gson. When using custom * parameter types it may be necessary to register a custom type adapter for them - * via {@link li.cil.oc2.api.API#IMC_ADD_DEVICE_METHOD_PARAMETER_TYPE_ADAPTER}. + * via {@link li.cil.oc2.api.API#IMC_ADD_RPC_METHOD_PARAMETER_TYPE_ADAPTER}. * * @see ObjectDevice */ diff --git a/src/main/java/li/cil/oc2/api/imc/DeviceMethodParameterTypeAdapter.java b/src/main/java/li/cil/oc2/api/imc/RPCMethodParameterTypeAdapter.java similarity index 54% rename from src/main/java/li/cil/oc2/api/imc/DeviceMethodParameterTypeAdapter.java rename to src/main/java/li/cil/oc2/api/imc/RPCMethodParameterTypeAdapter.java index d4f98c47..353a0731 100644 --- a/src/main/java/li/cil/oc2/api/imc/DeviceMethodParameterTypeAdapter.java +++ b/src/main/java/li/cil/oc2/api/imc/RPCMethodParameterTypeAdapter.java @@ -1,10 +1,10 @@ package li.cil.oc2.api.imc; -public final class DeviceMethodParameterTypeAdapter { +public final class RPCMethodParameterTypeAdapter { public final Class type; public final Object typeAdapter; - public DeviceMethodParameterTypeAdapter(final Class type, final Object typeAdapter) { + public RPCMethodParameterTypeAdapter(final Class type, final Object typeAdapter) { this.type = type; this.typeAdapter = typeAdapter; } diff --git a/src/main/java/li/cil/oc2/common/CommonSetup.java b/src/main/java/li/cil/oc2/common/CommonSetup.java index 0e3d418c..c48f3ee9 100644 --- a/src/main/java/li/cil/oc2/common/CommonSetup.java +++ b/src/main/java/li/cil/oc2/common/CommonSetup.java @@ -1,8 +1,7 @@ package li.cil.oc2.common; import li.cil.oc2.common.capabilities.Capabilities; -import li.cil.oc2.common.capabilities.DeviceBusElementCapability; -import li.cil.oc2.common.device.DeviceMethodParameterTypeAdapters; +import li.cil.oc2.common.device.RPCMethodParameterTypeAdapters; import li.cil.oc2.common.device.provider.Providers; import li.cil.oc2.common.network.Network; import li.cil.oc2.common.vm.Allocator; @@ -27,7 +26,7 @@ public final class CommonSetup { MinecraftForge.EVENT_BUS.addListener(CommonSetup::handleServerStoppedEvent); ServerScheduler.register(); - addBuiltinDeviceMethodParameterTypeAdapters(); + addBuiltinRPCMethodParameterTypeAdapters(); } public static void handleServerAboutToStart(final FMLServerAboutToStartEvent event) { @@ -39,7 +38,7 @@ public final class CommonSetup { Allocator.resetAndCheckLeaks(); } - private static void addBuiltinDeviceMethodParameterTypeAdapters() { - DeviceMethodParameterTypeAdapters.addTypeAdapter(ItemStack.class, new ItemStackJsonSerializer()); + private static void addBuiltinRPCMethodParameterTypeAdapters() { + RPCMethodParameterTypeAdapters.addTypeAdapter(ItemStack.class, new ItemStackJsonSerializer()); } } diff --git a/src/main/java/li/cil/oc2/common/IMC.java b/src/main/java/li/cil/oc2/common/IMC.java index d5b052ba..ba984cdb 100644 --- a/src/main/java/li/cil/oc2/common/IMC.java +++ b/src/main/java/li/cil/oc2/common/IMC.java @@ -1,9 +1,9 @@ package li.cil.oc2.common; import li.cil.oc2.api.API; +import li.cil.oc2.api.imc.RPCMethodParameterTypeAdapter; import li.cil.oc2.api.provider.DeviceProvider; -import li.cil.oc2.api.imc.DeviceMethodParameterTypeAdapter; -import li.cil.oc2.common.device.DeviceMethodParameterTypeAdapters; +import li.cil.oc2.common.device.RPCMethodParameterTypeAdapters; import li.cil.oc2.common.device.provider.Providers; import net.minecraft.util.Util; import net.minecraftforge.fml.InterModComms; @@ -22,7 +22,7 @@ public final class IMC { HashMap> map = new HashMap<>(); map.put(API.IMC_ADD_DEVICE_PROVIDER, IMC::addDeviceProvider); - map.put(API.IMC_ADD_DEVICE_METHOD_PARAMETER_TYPE_ADAPTER, IMC::addDeviceMethodParameterTypeAdapter); + map.put(API.IMC_ADD_RPC_METHOD_PARAMETER_TYPE_ADAPTER, IMC::addRPCMethodParameterTypeAdapter); return map; }); @@ -42,10 +42,10 @@ public final class IMC { getMessageParameter(message, DeviceProvider.class).ifPresent(Providers::addProvider); } - private static void addDeviceMethodParameterTypeAdapter(final InterModComms.IMCMessage message) { - getMessageParameter(message, DeviceMethodParameterTypeAdapter.class).ifPresent(value -> { + private static void addRPCMethodParameterTypeAdapter(final InterModComms.IMCMessage message) { + getMessageParameter(message, RPCMethodParameterTypeAdapter.class).ifPresent(value -> { try { - DeviceMethodParameterTypeAdapters.addTypeAdapter(value); + RPCMethodParameterTypeAdapters.addTypeAdapter(value); } catch (final IllegalArgumentException e) { LOGGER.error("Received invalid type adapter registration [{}] for type [{}] from mod [{}].", value.typeAdapter, value.type, message.getSenderModId()); } diff --git a/src/main/java/li/cil/oc2/common/bus/RPCAdapter.java b/src/main/java/li/cil/oc2/common/bus/RPCAdapter.java index fdf4ae98..81c03071 100644 --- a/src/main/java/li/cil/oc2/common/bus/RPCAdapter.java +++ b/src/main/java/li/cil/oc2/common/bus/RPCAdapter.java @@ -8,7 +8,7 @@ import li.cil.oc2.api.bus.DeviceBusController; import li.cil.oc2.api.bus.device.rpc.RPCDevice; import li.cil.oc2.api.bus.device.rpc.RPCMethod; import li.cil.oc2.api.bus.device.rpc.RPCParameter; -import li.cil.oc2.common.device.DeviceMethodParameterTypeAdapters; +import li.cil.oc2.common.device.RPCMethodParameterTypeAdapters; import li.cil.oc2.common.device.RPCDeviceList; import li.cil.oc2.serialization.serializers.MessageJsonDeserializer; import li.cil.oc2.serialization.serializers.MethodInvocationJsonDeserializer; @@ -56,7 +56,7 @@ public final class RPCAdapter implements Steppable { this.controller = controller; this.serialDevice = serialDevice; this.transmitBuffer = ByteBuffer.allocate(maxMessageSize); - this.gson = DeviceMethodParameterTypeAdapters.beginBuildGson() + this.gson = RPCMethodParameterTypeAdapters.beginBuildGson() .registerTypeAdapter(MethodInvocation.class, new MethodInvocationJsonDeserializer()) .registerTypeAdapter(Message.class, new MessageJsonDeserializer()) .registerTypeAdapter(RPCDeviceWithIdentifier.class, new RPCDeviceWithIdentifierJsonSerializer()) diff --git a/src/main/java/li/cil/oc2/common/device/DeviceMethodParameterTypeAdapters.java b/src/main/java/li/cil/oc2/common/device/DeviceMethodParameterTypeAdapters.java deleted file mode 100644 index a09d6264..00000000 --- a/src/main/java/li/cil/oc2/common/device/DeviceMethodParameterTypeAdapters.java +++ /dev/null @@ -1,28 +0,0 @@ -package li.cil.oc2.common.device; - -import com.google.gson.GsonBuilder; -import li.cil.oc2.api.imc.DeviceMethodParameterTypeAdapter; - -import java.util.ArrayList; - -public final class DeviceMethodParameterTypeAdapters { - private static final ArrayList TYPE_ADAPTERS = new ArrayList<>(); - - public static void addTypeAdapter(final Class type, final Object typeAdapter) { - addTypeAdapter(new DeviceMethodParameterTypeAdapter(type, typeAdapter)); - } - - public static void addTypeAdapter(final DeviceMethodParameterTypeAdapter value) { - TYPE_ADAPTERS.add(value); - } - - public static GsonBuilder beginBuildGson() { - final GsonBuilder builder = new GsonBuilder(); - - for (final DeviceMethodParameterTypeAdapter value : TYPE_ADAPTERS) { - builder.registerTypeAdapter(value.type, value.typeAdapter); - } - - return builder; - } -} diff --git a/src/main/java/li/cil/oc2/common/device/RPCMethodParameterTypeAdapters.java b/src/main/java/li/cil/oc2/common/device/RPCMethodParameterTypeAdapters.java new file mode 100644 index 00000000..adc024fe --- /dev/null +++ b/src/main/java/li/cil/oc2/common/device/RPCMethodParameterTypeAdapters.java @@ -0,0 +1,28 @@ +package li.cil.oc2.common.device; + +import com.google.gson.GsonBuilder; +import li.cil.oc2.api.imc.RPCMethodParameterTypeAdapter; + +import java.util.ArrayList; + +public final class RPCMethodParameterTypeAdapters { + private static final ArrayList TYPE_ADAPTERS = new ArrayList<>(); + + public static void addTypeAdapter(final Class type, final Object typeAdapter) { + addTypeAdapter(new RPCMethodParameterTypeAdapter(type, typeAdapter)); + } + + public static void addTypeAdapter(final RPCMethodParameterTypeAdapter value) { + TYPE_ADAPTERS.add(value); + } + + public static GsonBuilder beginBuildGson() { + final GsonBuilder builder = new GsonBuilder(); + + for (final RPCMethodParameterTypeAdapter value : TYPE_ADAPTERS) { + builder.registerTypeAdapter(value.type, value.typeAdapter); + } + + return builder; + } +}