From 8a4d6df67917fee4b600cfad1afb7d39a75d75f1 Mon Sep 17 00:00:00 2001 From: Crendgrim Date: Fri, 21 Jul 2023 23:57:05 +0200 Subject: Small improvements to ListOption (#89) --- .../java/dev/isxander/yacl3/api/ListOption.java | 29 +++++++++++++++++++++- 1 file changed, 28 insertions(+), 1 deletion(-) (limited to 'common/src/main/java/dev/isxander/yacl3/api') diff --git a/common/src/main/java/dev/isxander/yacl3/api/ListOption.java b/common/src/main/java/dev/isxander/yacl3/api/ListOption.java index 8094ee7..0371c35 100644 --- a/common/src/main/java/dev/isxander/yacl3/api/ListOption.java +++ b/common/src/main/java/dev/isxander/yacl3/api/ListOption.java @@ -30,7 +30,16 @@ public interface ListOption extends OptionGroup, Option> { @NotNull ImmutableList> options(); @ApiStatus.Internal - ListOptionEntry insertNewEntryToTop(); + int numberOfEntries(); + + @ApiStatus.Internal + int maximumNumberOfEntries(); + + @ApiStatus.Internal + int minimumNumberOfEntries(); + + @ApiStatus.Internal + ListOptionEntry insertNewEntry(); @ApiStatus.Internal void insertEntry(int index, ListOptionEntry entry); @@ -105,6 +114,24 @@ public interface ListOption extends OptionGroup, Option> { */ Builder available(boolean available); + /** + * Sets a minimum size for the list. Once this size is reached, + * no further entries may be removed. + */ + Builder minimumNumberOfEntries(int number); + + /** + * Sets a maximum size for the list. Once this size is reached, + * no further entries may be added. + */ + Builder maximumNumberOfEntries(int number); + + /** + * Dictates if new entries should be added to the end of the list + * rather than the top. + */ + Builder insertEntriesAtEnd(boolean insertAtEnd); + /** * Adds a flag to the option. * Upon applying changes, all flags are executed. -- cgit