Interface Palette<T,​R>

  • Type Parameters:
    T - The type this palette will maintain
    R - The type of registry used to build this palette
    All Known Subinterfaces:
    Palette.Immutable<I,​IR>, Palette.Mutable<M,​MR>

    public interface Palette<T,​R>
    Represents a mapping for types to a local identifier. Can be used for mapping Objects to int id's for storage purposes, or for converting stored information to a representable format back into Objects.
    • Method Detail

      • type

        PaletteType<T,​R> type()
        Gets the type of this palette.
        Returns:
        The palette type
      • highestId

        int highestId()
        Gets the highest identifier in this palette.
        Returns:
        The highest id
      • get

        java.util.Optional<PaletteReference<T,​R>> get​(int id)
        Gets the type represented by the given identifier from the mapping.
        Parameters:
        id - The identifier
        Returns:
        The type, if found
      • get

        default java.util.Optional<T> get​(int id,
                                          RegistryHolder holder)
      • get

        java.util.OptionalInt get​(T type)
        Gets the identifier for the given type T if it exists within the mapping.
        Parameters:
        type - The type
        Returns:
        The identifier, if found
      • stream

        java.util.stream.Stream<T> stream()
        Gets all type Ts contained in this palette.
        Returns:
        All contained types
      • streamWithIds

        java.util.stream.Stream<java.util.Map.Entry<T,​java.lang.Integer>> streamWithIds()