From fbc37f1d2e976867c8b3ebcebe988b3b02f475dc Mon Sep 17 00:00:00 2001 From: isXander Date: Mon, 29 May 2023 07:07:38 +0100 Subject: Fix ListOption still using type class --- .../src/main/java/dev/isxander/yacl/api/ListOption.java | 12 ++++++------ .../main/java/dev/isxander/yacl/impl/ListOptionImpl.java | 16 ++-------------- 2 files changed, 8 insertions(+), 20 deletions(-) (limited to 'common/src/main/java/dev/isxander/yacl') diff --git a/common/src/main/java/dev/isxander/yacl/api/ListOption.java b/common/src/main/java/dev/isxander/yacl/api/ListOption.java index 19a365d..53d9119 100644 --- a/common/src/main/java/dev/isxander/yacl/api/ListOption.java +++ b/common/src/main/java/dev/isxander/yacl/api/ListOption.java @@ -28,11 +28,6 @@ public interface ListOption extends OptionGroup, Option> { @Override @NotNull ImmutableList> options(); - /** - * Class of the entry type - */ - @NotNull Class elementTypeClass(); - @ApiStatus.Internal ListOptionEntry insertNewEntryToTop(); @@ -48,8 +43,13 @@ public interface ListOption extends OptionGroup, Option> { @ApiStatus.Internal void addRefreshListener(Runnable changedListener); + static Builder createBuilder() { + return new ListOptionImpl.BuilderImpl<>(); + } + + @Deprecated static Builder createBuilder(Class typeClass) { - return new ListOptionImpl.BuilderImpl<>(typeClass); + return createBuilder(); } interface Builder { diff --git a/common/src/main/java/dev/isxander/yacl/impl/ListOptionImpl.java b/common/src/main/java/dev/isxander/yacl/impl/ListOptionImpl.java index 4b37e9e..474a5f8 100644 --- a/common/src/main/java/dev/isxander/yacl/impl/ListOptionImpl.java +++ b/common/src/main/java/dev/isxander/yacl/impl/ListOptionImpl.java @@ -25,13 +25,12 @@ public final class ListOptionImpl implements ListOption { private final List> entries; private final boolean collapsed; private boolean available; - private final Class typeClass; private final ImmutableSet flags; private final EntryFactory entryFactory; private final List>, List>> listeners; private final List refreshListeners; - public ListOptionImpl(@NotNull Component name, @NotNull OptionDescription description, @NotNull Binding> binding, @NotNull T initialValue, @NotNull Class typeClass, @NotNull Function, Controller> controllerFunction, ImmutableSet flags, boolean collapsed, boolean available, Collection>, List>> listeners) { + public ListOptionImpl(@NotNull Component name, @NotNull OptionDescription description, @NotNull Binding> binding, @NotNull T initialValue, @NotNull Function, Controller> controllerFunction, ImmutableSet flags, boolean collapsed, boolean available, Collection>, List>> listeners) { this.name = name; this.description = description; this.binding = binding; @@ -39,7 +38,6 @@ public final class ListOptionImpl implements ListOption { this.entryFactory = new EntryFactory(controllerFunction); this.entries = createEntries(binding().getValue()); this.collapsed = collapsed; - this.typeClass = typeClass; this.flags = flags; this.available = available; this.listeners = new ArrayList<>(); @@ -78,11 +76,6 @@ public final class ListOptionImpl implements ListOption { return binding; } - @Override - public @NotNull Class elementTypeClass() { - return typeClass; - } - @Override public boolean collapsed() { return collapsed; @@ -221,11 +214,6 @@ public final class ListOptionImpl implements ListOption { private boolean collapsed = false; private boolean available = true; private final List>, List>> listeners = new ArrayList<>(); - private final Class typeClass; - - public BuilderImpl(Class typeClass) { - this.typeClass = typeClass; - } @Override public Builder name(@NotNull Component name) { @@ -323,7 +311,7 @@ public final class ListOptionImpl implements ListOption { Validate.notNull(binding, "`binding` must not be null"); Validate.notNull(initialValue, "`initialValue` must not be null"); - return new ListOptionImpl<>(name, description, binding, initialValue, typeClass, controllerFunction, ImmutableSet.copyOf(flags), collapsed, available, listeners); + return new ListOptionImpl<>(name, description, binding, initialValue, controllerFunction, ImmutableSet.copyOf(flags), collapsed, available, listeners); } } } -- cgit