From 66abc317e5fc36a397ca1cc919e388fbe143956b Mon Sep 17 00:00:00 2001 From: shedaniel Date: Wed, 1 Apr 2020 20:01:34 +0800 Subject: ScrollingContainer & SubsetsMenu && 20w18b Signed-off-by: shedaniel --- .../shedaniel/rei/api/subsets/SubsetsRegistry.java | 40 ++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 src/main/java/me/shedaniel/rei/api/subsets/SubsetsRegistry.java (limited to 'src/main/java/me/shedaniel/rei/api/subsets/SubsetsRegistry.java') diff --git a/src/main/java/me/shedaniel/rei/api/subsets/SubsetsRegistry.java b/src/main/java/me/shedaniel/rei/api/subsets/SubsetsRegistry.java new file mode 100644 index 000000000..3c7e46304 --- /dev/null +++ b/src/main/java/me/shedaniel/rei/api/subsets/SubsetsRegistry.java @@ -0,0 +1,40 @@ +package me.shedaniel.rei.api.subsets; + +import me.shedaniel.rei.api.EntryStack; +import me.shedaniel.rei.impl.subsets.SubsetsRegistryImpl; +import org.jetbrains.annotations.ApiStatus; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +import java.util.Arrays; +import java.util.Collection; +import java.util.List; +import java.util.Set; + +@ApiStatus.Experimental +public interface SubsetsRegistry { + SubsetsRegistry INSTANCE = new SubsetsRegistryImpl(); + + /** + * Gets all paths an entry is in, note that this is a really slow call as it looks through all paths. + */ + @NotNull + List getEntryPaths(@NotNull EntryStack stack); + + @Nullable + Set getPathEntries(@NotNull String path); + + @NotNull + Set getOrCreatePathEntries(@NotNull String path); + + @NotNull + Set getPaths(); + + void registerPathEntry(@NotNull String path, @NotNull EntryStack stack); + + void registerPathEntries(@NotNull String path, @NotNull Collection stacks); + + default void registerPathEntries(@NotNull String path, @NotNull EntryStack... stacks) { + registerPathEntries(path, Arrays.asList(stacks)); + } +} -- cgit