Fixes gh-1098 Support primitive function interfaces

Added support for basic type functions
supported by Java

Resolves #1098
This commit is contained in:
kimjg
2024-10-26 21:52:56 +09:00
committed by Oleg Zhurakousky
parent 7bb32813da
commit b32da7faf0

View File

@@ -27,8 +27,20 @@ import java.util.Map;
import java.util.function.BiConsumer;
import java.util.function.BiFunction;
import java.util.function.Consumer;
import java.util.function.DoubleConsumer;
import java.util.function.DoubleFunction;
import java.util.function.DoubleSupplier;
import java.util.function.Function;
import java.util.function.IntConsumer;
import java.util.function.IntFunction;
import java.util.function.IntSupplier;
import java.util.function.LongConsumer;
import java.util.function.LongFunction;
import java.util.function.LongSupplier;
import java.util.function.Supplier;
import java.util.function.ToDoubleFunction;
import java.util.function.ToIntFunction;
import java.util.function.ToLongFunction;
import java.util.stream.Stream;
import com.fasterxml.jackson.databind.JsonNode;
@@ -540,10 +552,23 @@ public final class FunctionTypeUtils {
Class<?> candidateType = (Class<?>) type;
Assert.isTrue(Supplier.class.isAssignableFrom(candidateType)
|| Function.class.isAssignableFrom(candidateType)
|| Consumer.class.isAssignableFrom(candidateType)
|| FunctionRegistration.class.isAssignableFrom(candidateType)
|| type.getTypeName().startsWith("org.springframework.context.annotation.ConfigurationClassEnhancer"), "Must be one of Supplier, Function, Consumer"
|| Function.class.isAssignableFrom(candidateType)
|| Consumer.class.isAssignableFrom(candidateType)
|| FunctionRegistration.class.isAssignableFrom(candidateType)
|| IntConsumer.class.isAssignableFrom(candidateType)
|| IntSupplier.class.isAssignableFrom(candidateType)
|| IntFunction.class.isAssignableFrom(candidateType)
|| ToIntFunction.class.isAssignableFrom(candidateType)
|| LongConsumer.class.isAssignableFrom(candidateType)
|| LongSupplier.class.isAssignableFrom(candidateType)
|| LongFunction.class.isAssignableFrom(candidateType)
|| ToLongFunction.class.isAssignableFrom(candidateType)
|| DoubleConsumer.class.isAssignableFrom(candidateType)
|| DoubleSupplier.class.isAssignableFrom(candidateType)
|| DoubleFunction.class.isAssignableFrom(candidateType)
|| ToDoubleFunction.class.isAssignableFrom(candidateType)
|| type.getTypeName().startsWith("org.springframework.context.annotation.ConfigurationClassEnhancer"),
"Must be one of Supplier, Function, Consumer"
+ " or FunctionRegistration. Was " + type);
}