diff options
Diffstat (limited to 'src/main/java/me/shedaniel/rei/api/subsets/SubsetsRegistry.java')
| -rw-r--r-- | src/main/java/me/shedaniel/rei/api/subsets/SubsetsRegistry.java | 40 |
1 files changed, 40 insertions, 0 deletions
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<String> getEntryPaths(@NotNull EntryStack stack); + + @Nullable + Set<EntryStack> getPathEntries(@NotNull String path); + + @NotNull + Set<EntryStack> getOrCreatePathEntries(@NotNull String path); + + @NotNull + Set<String> getPaths(); + + void registerPathEntry(@NotNull String path, @NotNull EntryStack stack); + + void registerPathEntries(@NotNull String path, @NotNull Collection<EntryStack> stacks); + + default void registerPathEntries(@NotNull String path, @NotNull EntryStack... stacks) { + registerPathEntries(path, Arrays.asList(stacks)); + } +} |
