Interface Registry<T>

    • Method Detail

      • type

        RegistryType<T> type()
        Gets the key identifying this registry.
        Returns:
        The key
      • valueKey

        ResourceKey valueKey​(T value)
        Gets the key for a particular value.

        Great care needs to be made in calling this method with any uncertainty as to if the key will exist. Should the value lack a key, a IllegalStateException will be thrown. Therefore, it is advised to call findValueKey(Object) instead.

        Parameters:
        value - The value
        Returns:
        The key
      • findValueKey

        java.util.Optional<ResourceKey> findValueKey​(T value)
        Gets the key for a particular value, if found.

        The value must be registered within to be retrieved by key.

        Parameters:
        value - The value
        Returns:
        The key or Optional.empty()
      • findEntry

        <V extends T> java.util.Optional<RegistryEntry<V>> findEntry​(ResourceKey key)
        Gets the entry for a particular key, if found.

        The value must be registered within to be retrieved by key.

        Parameters:
        key - The key
        Returns:
        The entry or Optional.empty()
      • findValue

        <V extends T> java.util.Optional<V> findValue​(ResourceKey key)
        Gets the value for a particular key, if found.
        Parameters:
        key - The key
        Returns:
        The value or Optional.empty()
      • findValue

        default <V extends T> java.util.Optional<V> findValue​(RegistryKey<T> key)
        findValue(ResourceKey), provided for convenience when using RegistryKey.
        Parameters:
        key - The key
        Returns:
        The value or Optional.empty()
      • streamEntries

        java.util.stream.Stream<RegistryEntry<T>> streamEntries()
        Gets a Stream of all entries within.
        Returns:
        The stream
      • stream

        java.util.stream.Stream<T> stream()
        Gets a Stream of all registry values within.
        Returns:
        The stream
      • isDynamic

        boolean isDynamic()
        Returns if this registry supports adding additional values.
        Returns:
        True if the registry can add additional values
      • register

        <V extends T> java.util.Optional<RegistryEntry<V>> register​(ResourceKey key,
                                                                    V value)
        Registers a new value to this registry.

        If this registry is not dynamic or the provided key is already registered, Optional.empty() is returned instead.

        Parameters:
        key - The key
        value - The value
        Returns:
        The newly added entry, Optional.empty() otherwise