From 09b3ddc5a7d9b057b0a480ac7220b62e3d48331a Mon Sep 17 00:00:00 2001 From: shitzuu Date: Thu, 15 Aug 2024 23:23:01 +0200 Subject: [PATCH] Fix code style inconsistencies; Add opel placeholder evaluator as addon to prevent all of its dependencies from being included --- gradle/libs.versions.toml | 10 ++---- honey-common/build.gradle.kts | 3 -- .../shiza/honey/adventure/AdventureHoney.java | 15 --------- .../honey/opel/OpelImplicitConversion.java | 20 ------------ .../opel/OpelImplicitConversionBatch.java | 27 ---------------- .../honey/opel/OpelPlaceholderEvaluator.java | 31 ------------------- .../opel/OpelPlaceholderEvaluatorFactory.java | 18 ----------- .../ReflectivePlaceholderEvaluator.java | 22 ++++++------- 8 files changed, 13 insertions(+), 133 deletions(-) delete mode 100644 honey-common/src/dev/shiza/honey/opel/OpelImplicitConversion.java delete mode 100644 honey-common/src/dev/shiza/honey/opel/OpelImplicitConversionBatch.java delete mode 100644 honey-common/src/dev/shiza/honey/opel/OpelPlaceholderEvaluator.java delete mode 100644 honey-common/src/dev/shiza/honey/opel/OpelPlaceholderEvaluatorFactory.java diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 8ea2e3a..4512e6e 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,17 +1,11 @@ [versions] -allegro-opel = "1.1.14" -apache-commons-lang3 = "3.16.0" -spotify-completable-futures = "0.3.6" +futures = "0.3.6" adventure = "4.17.0" -parboiled = "1.4.1" [libraries] -opel = { module = "pl.allegro.tech:opel", version.ref = "allegro-opel" } -lang = { module = "org.apache.commons:commons-lang3", version.ref = "apache-commons-lang3" } -futures = { module = "com.spotify:completable-futures", version.ref = "spotify-completable-futures" } +futures = { module = "com.spotify:completable-futures", version.ref = "futures" } adventure-api = { module = "net.kyori:adventure-api", version.ref = "adventure" } adventure-minimessage = { module = "net.kyori:adventure-text-minimessage", version.ref = "adventure" } -parboiled = { module = "org.parboiled:parboiled-java", version.ref = "parboiled" } [bundles] adventure = ["adventure-api", "adventure-minimessage"] \ No newline at end of file diff --git a/honey-common/build.gradle.kts b/honey-common/build.gradle.kts index 4088303..af8112e 100644 --- a/honey-common/build.gradle.kts +++ b/honey-common/build.gradle.kts @@ -6,9 +6,6 @@ plugins { dependencies { api(libs.futures) - api(libs.lang) - api(libs.opel) - api(libs.parboiled) compileOnly(libs.bundles.adventure) } diff --git a/honey-common/src/dev/shiza/honey/adventure/AdventureHoney.java b/honey-common/src/dev/shiza/honey/adventure/AdventureHoney.java index 2865427..0f7c3df 100644 --- a/honey-common/src/dev/shiza/honey/adventure/AdventureHoney.java +++ b/honey-common/src/dev/shiza/honey/adventure/AdventureHoney.java @@ -4,15 +4,12 @@ import dev.shiza.honey.Honey; import dev.shiza.honey.message.MessageCompiler; -import dev.shiza.honey.opel.OpelPlaceholderEvaluatorFactory; import dev.shiza.honey.placeholder.evaluator.PlaceholderEvaluator; import dev.shiza.honey.placeholder.resolver.PlaceholderResolver; import dev.shiza.honey.placeholder.sanitizer.PlaceholderSanitizer; import dev.shiza.honey.reflection.ReflectivePlaceholderEvaluatorFactory; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.minimessage.MiniMessage; -import pl.allegro.tech.opel.OpelEngine; -import pl.allegro.tech.opel.OpelEngineBuilder; public interface AdventureHoney extends Honey { @@ -28,18 +25,6 @@ static AdventureHoney createReflective(final MiniMessage miniMessage) { ReflectivePlaceholderEvaluatorFactory.create()); } - static AdventureHoney createOpel() { - return createOpel(miniMessage(), OpelEngineBuilder.create().build()); - } - - static AdventureHoney createOpel(final MiniMessage miniMessage, final OpelEngine opelEngine) { - return create( - AdventureMessageCompilerFactory.create(miniMessage), - PlaceholderResolver.create(), - PlaceholderSanitizer.create(), - OpelPlaceholderEvaluatorFactory.create(opelEngine)); - } - private static AdventureHoney create( final MessageCompiler messageCompiler, final PlaceholderResolver placeholderResolver, diff --git a/honey-common/src/dev/shiza/honey/opel/OpelImplicitConversion.java b/honey-common/src/dev/shiza/honey/opel/OpelImplicitConversion.java deleted file mode 100644 index 8a4eeb3..0000000 --- a/honey-common/src/dev/shiza/honey/opel/OpelImplicitConversion.java +++ /dev/null @@ -1,20 +0,0 @@ -package dev.shiza.honey.opel; - -import pl.allegro.tech.opel.OpelEngineBuilder; - -public abstract class OpelImplicitConversion { - - private final Class from; - private final Class to; - - protected OpelImplicitConversion(Class from, Class to) { - this.from = from; - this.to = to; - } - - public abstract R convert(final T from); - - public void register(final OpelEngineBuilder builder) { - builder.withImplicitConversion(from, to, this::convert); - } -} diff --git a/honey-common/src/dev/shiza/honey/opel/OpelImplicitConversionBatch.java b/honey-common/src/dev/shiza/honey/opel/OpelImplicitConversionBatch.java deleted file mode 100644 index 4125af0..0000000 --- a/honey-common/src/dev/shiza/honey/opel/OpelImplicitConversionBatch.java +++ /dev/null @@ -1,27 +0,0 @@ -package dev.shiza.honey.opel; - -import java.util.HashSet; -import java.util.Set; -import pl.allegro.tech.opel.OpelEngineBuilder; - -public class OpelImplicitConversionBatch { - - private final Set> conversions; - - OpelImplicitConversionBatch() { - this.conversions = new HashSet<>(); - } - - public static OpelImplicitConversionBatch create() { - return new OpelImplicitConversionBatch(); - } - - public OpelImplicitConversionBatch add(final OpelImplicitConversion conversion) { - conversions.add(conversion); - return this; - } - - public void register(final OpelEngineBuilder engineBuilder) { - conversions.forEach(conversion -> conversion.register(engineBuilder)); - } -} diff --git a/honey-common/src/dev/shiza/honey/opel/OpelPlaceholderEvaluator.java b/honey-common/src/dev/shiza/honey/opel/OpelPlaceholderEvaluator.java deleted file mode 100644 index b661661..0000000 --- a/honey-common/src/dev/shiza/honey/opel/OpelPlaceholderEvaluator.java +++ /dev/null @@ -1,31 +0,0 @@ -package dev.shiza.honey.opel; - -import dev.shiza.honey.placeholder.evaluator.EvaluatedPlaceholder; -import dev.shiza.honey.placeholder.evaluator.PlaceholderContext; -import dev.shiza.honey.placeholder.evaluator.PlaceholderEvaluator; -import dev.shiza.honey.placeholder.resolver.Placeholder; -import java.util.concurrent.CompletableFuture; -import pl.allegro.tech.opel.EvalContext; -import pl.allegro.tech.opel.EvalContextBuilder; -import pl.allegro.tech.opel.OpelEngine; - -class OpelPlaceholderEvaluator implements PlaceholderEvaluator { - - private final OpelEngine opelEngine; - - OpelPlaceholderEvaluator(final OpelEngine opelEngine) { - this.opelEngine = opelEngine; - } - - @Override - public CompletableFuture evaluate( - final PlaceholderContext context, final Placeholder placeholder) { - return opelEngine - .eval(placeholder.expression(), getAsEvalContext(context)) - .thenApply(evaluatedValue -> new EvaluatedPlaceholder(placeholder, evaluatedValue)); - } - - private EvalContext getAsEvalContext(final PlaceholderContext context) { - return EvalContextBuilder.create().withValues(context.getValues()).build(); - } -} diff --git a/honey-common/src/dev/shiza/honey/opel/OpelPlaceholderEvaluatorFactory.java b/honey-common/src/dev/shiza/honey/opel/OpelPlaceholderEvaluatorFactory.java deleted file mode 100644 index c7d0d69..0000000 --- a/honey-common/src/dev/shiza/honey/opel/OpelPlaceholderEvaluatorFactory.java +++ /dev/null @@ -1,18 +0,0 @@ -package dev.shiza.honey.opel; - -import dev.shiza.honey.placeholder.evaluator.PlaceholderEvaluator; -import pl.allegro.tech.opel.OpelEngine; -import pl.allegro.tech.opel.OpelEngineBuilder; - -public final class OpelPlaceholderEvaluatorFactory { - - private OpelPlaceholderEvaluatorFactory() {} - - public static PlaceholderEvaluator create(final OpelEngine opelEngine) { - return new OpelPlaceholderEvaluator(opelEngine); - } - - public static PlaceholderEvaluator create() { - return create(OpelEngineBuilder.create().build()); - } -} diff --git a/honey-common/src/dev/shiza/honey/reflection/ReflectivePlaceholderEvaluator.java b/honey-common/src/dev/shiza/honey/reflection/ReflectivePlaceholderEvaluator.java index 3416a3c..2f600a3 100644 --- a/honey-common/src/dev/shiza/honey/reflection/ReflectivePlaceholderEvaluator.java +++ b/honey-common/src/dev/shiza/honey/reflection/ReflectivePlaceholderEvaluator.java @@ -68,17 +68,6 @@ private CompletableFuture asEvaluatedPlaceholder( return evaluatedValue.thenApply(value -> new EvaluatedPlaceholder(placeholder, value)); } - private Object invokeMethodHandle(final Object parent, final MethodHandle handle) { - try { - return handle.invoke(parent); - } catch (final Throwable exception) { - throw new ReflectivePlaceholderEvaluationException( - "Could not invoke method handle %s for %s parent, because of unexpected exception." - .formatted(handle.toString(), parent.getClass().getSimpleName()), - exception); - } - } - private MethodHandle getMethodHandle(final Object parent, final String path) { final MethodHandleCompositeKey compositeKey = new MethodHandleCompositeKey(parent, path); return methodHandles.computeIfAbsent(compositeKey, key -> getMethodHandleUnsafe(parent, path)); @@ -96,6 +85,17 @@ private MethodHandle getMethodHandleUnsafe(final Object parent, final String pat } } + private Object invokeMethodHandle(final Object parent, final MethodHandle handle) { + try { + return handle.invoke(parent); + } catch (final Throwable exception) { + throw new ReflectivePlaceholderEvaluationException( + "Could not invoke method handle %s for %s parent, because of unexpected exception." + .formatted(handle.toString(), parent.getClass().getSimpleName()), + exception); + } + } + record MethodHandleCompositeKey(String className, String methodName) { MethodHandleCompositeKey(Object parent, String methodName) {