From fcb4ced61014a81a06225c1ce3e963eb375c3735 Mon Sep 17 00:00:00 2001 From: Carm Date: Wed, 10 Sep 2025 08:22:37 +0800 Subject: [PATCH] feat: Make function interface "serializable" --- .../java/cc/carm/lib/configuration/function/DataConsumer.java | 4 +++- .../java/cc/carm/lib/configuration/function/DataFunction.java | 3 ++- .../cc/carm/lib/configuration/function/DataValidator.java | 4 +++- .../cc/carm/lib/configuration/function/ValueComposer.java | 4 +++- .../java/cc/carm/lib/configuration/function/ValueHandler.java | 3 ++- .../cc/carm/lib/configuration/function/ValueValidator.java | 4 +++- 6 files changed, 16 insertions(+), 6 deletions(-) diff --git a/core/src/main/java/cc/carm/lib/configuration/function/DataConsumer.java b/core/src/main/java/cc/carm/lib/configuration/function/DataConsumer.java index 69a5fca..c29ab78 100644 --- a/core/src/main/java/cc/carm/lib/configuration/function/DataConsumer.java +++ b/core/src/main/java/cc/carm/lib/configuration/function/DataConsumer.java @@ -2,8 +2,10 @@ package cc.carm.lib.configuration.function; import org.jetbrains.annotations.NotNull; +import java.io.Serializable; + @FunctionalInterface -public interface DataConsumer { +public interface DataConsumer extends Serializable { void accept(@NotNull T data) throws Exception; diff --git a/core/src/main/java/cc/carm/lib/configuration/function/DataFunction.java b/core/src/main/java/cc/carm/lib/configuration/function/DataFunction.java index 75a4708..35793c0 100644 --- a/core/src/main/java/cc/carm/lib/configuration/function/DataFunction.java +++ b/core/src/main/java/cc/carm/lib/configuration/function/DataFunction.java @@ -4,10 +4,11 @@ package cc.carm.lib.configuration.function; import org.jetbrains.annotations.Contract; import org.jetbrains.annotations.NotNull; +import java.io.Serializable; import java.util.Objects; @FunctionalInterface -public interface DataFunction { +public interface DataFunction extends Serializable { @NotNull R handle(@NotNull T data) throws Exception; diff --git a/core/src/main/java/cc/carm/lib/configuration/function/DataValidator.java b/core/src/main/java/cc/carm/lib/configuration/function/DataValidator.java index e3217fa..efc4f04 100644 --- a/core/src/main/java/cc/carm/lib/configuration/function/DataValidator.java +++ b/core/src/main/java/cc/carm/lib/configuration/function/DataValidator.java @@ -2,8 +2,10 @@ package cc.carm.lib.configuration.function; import org.jetbrains.annotations.Nullable; +import java.io.Serializable; + @FunctionalInterface -public interface DataValidator { +public interface DataValidator extends Serializable { void validate(@Nullable T value) throws Exception; diff --git a/core/src/main/java/cc/carm/lib/configuration/function/ValueComposer.java b/core/src/main/java/cc/carm/lib/configuration/function/ValueComposer.java index 7232de7..a8e1656 100644 --- a/core/src/main/java/cc/carm/lib/configuration/function/ValueComposer.java +++ b/core/src/main/java/cc/carm/lib/configuration/function/ValueComposer.java @@ -4,8 +4,10 @@ package cc.carm.lib.configuration.function; import cc.carm.lib.configuration.source.ConfigurationHolder; import org.jetbrains.annotations.NotNull; +import java.io.Serializable; + @FunctionalInterface -public interface ValueComposer { +public interface ValueComposer extends Serializable { /** * Accept the value and the data, and then compose the value. diff --git a/core/src/main/java/cc/carm/lib/configuration/function/ValueHandler.java b/core/src/main/java/cc/carm/lib/configuration/function/ValueHandler.java index b7b9ff8..4cac37a 100644 --- a/core/src/main/java/cc/carm/lib/configuration/function/ValueHandler.java +++ b/core/src/main/java/cc/carm/lib/configuration/function/ValueHandler.java @@ -7,10 +7,11 @@ import org.jetbrains.annotations.Contract; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; +import java.io.Serializable; import java.util.Objects; @FunctionalInterface -public interface ValueHandler { +public interface ValueHandler extends Serializable { @Nullable R handle(@NotNull ConfigurationHolder holder, @NotNull T data) throws Exception; diff --git a/core/src/main/java/cc/carm/lib/configuration/function/ValueValidator.java b/core/src/main/java/cc/carm/lib/configuration/function/ValueValidator.java index a585254..4c68606 100644 --- a/core/src/main/java/cc/carm/lib/configuration/function/ValueValidator.java +++ b/core/src/main/java/cc/carm/lib/configuration/function/ValueValidator.java @@ -4,8 +4,10 @@ import cc.carm.lib.configuration.source.ConfigurationHolder; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; +import java.io.Serializable; + @FunctionalInterface -public interface ValueValidator { +public interface ValueValidator extends Serializable { void validate(@NotNull ConfigurationHolder holder, @Nullable T value) throws Exception;