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 Details

    • 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

      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 Optional<T> get(int id, RegistryHolder holder)
    • get

      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

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

      Stream<Map.Entry<T,Integer>> streamWithIds()
    • asMutable

      Palette.Mutable<T,R> asMutable(RegistryHolder registry)
    • asImmutable

      Palette.Immutable<T,R> asImmutable()