From 3027527637373d7df682bf56368cf176ffcc19a8 Mon Sep 17 00:00:00 2001 From: xander Date: Sat, 3 Sep 2022 14:08:53 +0100 Subject: pass through type class to option for controllers to use --- src/main/java/dev/isxander/yacl/api/Option.java | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) (limited to 'src/main/java/dev/isxander/yacl/api') diff --git a/src/main/java/dev/isxander/yacl/api/Option.java b/src/main/java/dev/isxander/yacl/api/Option.java index 65eae23..9d6ebe2 100644 --- a/src/main/java/dev/isxander/yacl/api/Option.java +++ b/src/main/java/dev/isxander/yacl/api/Option.java @@ -39,6 +39,12 @@ public interface Option { */ @NotNull Binding binding(); + /** + * Class of the option type. + * Used by some controllers. + */ + @NotNull Class typeClass(); + /** * Checks if the pending value is not equal to the current set value */ @@ -77,7 +83,7 @@ public interface Option { * @param typeClass used to capture the type */ static Builder createBuilder(Class typeClass) { - return new Builder<>(); + return new Builder<>(typeClass); } class Builder { @@ -89,8 +95,10 @@ public interface Option { private Binding binding; - private Builder() { + private final Class typeClass; + private Builder(Class typeClass) { + this.typeClass = typeClass; } /** @@ -177,7 +185,7 @@ public interface Option { concatenatedTooltip.append(line); } - return new OptionImpl<>(name, concatenatedTooltip, controlGetter, binding); + return new OptionImpl<>(name, concatenatedTooltip, controlGetter, binding, typeClass); } } } -- cgit