Class Values


  • public final class Values
    extends java.lang.Object
    A collection of Value provider factory & utility methods.
    • Constructor Detail

      • Values

        private Values()
    • Method Detail

      • empty

        public static <T> Value<T> empty()
        Get an empty value provider whose get() method always returns null.
        Type Parameters:
        T - value type.
        Returns:
        empty value provider.
      • emptyUnsafe

        public static <T,​E extends java.lang.Throwable> UnsafeValue<T,​E> emptyUnsafe()
        Get an empty value provider whose get() method always returns null.
        Type Parameters:
        T - value type.
        Returns:
        empty unsafe value provider.
      • of

        public static <T> Value<T> of​(T value)
        Get a new constant value provider whose get() method always returns the instance supplied to the value parameter.

        In case the supplied value constant is null, an empty value provider is returned.

        Type Parameters:
        T - value type.
        Parameters:
        value - value instance to be provided.
        Returns:
        constant value provider.
      • unsafe

        public static <T,​E extends java.lang.Throwable> UnsafeValue<T,​E> unsafe​(T value)
        Get a new constant value provider whose get() method always returns the instance supplied to the value parameter.

        In case the supplied value constant is null, an empty value provider is returned.

        Type Parameters:
        T - value type.
        Parameters:
        value - value instance to be provided.
        Returns:
        constant value provider.
      • throwing

        public static <T,​E extends java.lang.Throwable> UnsafeValue<T,​E> throwing​(E throwable)
        Get a new "throwing" unsafe value provider whose get() method always throws the exception supplied to the throwable parameter.

        In case the supplied throwable is null, an NullPointerException is thrown.

        Type Parameters:
        T - value type.
        E - exception type.
        Parameters:
        throwable - throwable instance to be thrown.
        Returns:
        "throwing" unsafe value provider.
        Throws:
        java.lang.NullPointerException - in case the supplied throwable instance is null.
      • lazy

        public static <T> LazyValue<T> lazy​(Value<T> delegate)
        Get a new lazily initialized value provider.

        The value returned by its get() method is lazily retrieved during a first call to the method from the supplied delegate value provider and is then cached for a subsequent retrieval.

        The implementation of the returned lazy value provider is thread-safe and is guaranteed to invoke the get() method on the supplied delegate value provider instance at most once.

        If the supplied value provider is null, an empty value provider is returned.

        Type Parameters:
        T - value type.
        Parameters:
        delegate - value provider delegate that will be used to lazily initialize the value provider.
        Returns:
        lazily initialized value provider.
      • eager

        public static <T> Value<T> eager​(Value<T> delegate)
        Get a new eagerly initialized value provider.

        The value returned by its get() method is eagerly computed from the supplied delegate value provider and is then stored in a final field for a subsequent retrieval.

        The implementation of the returned eager value provider is thread-safe and is guaranteed to invoke the get() method on the supplied delegate value provider instance once and only once.

        If the supplied value provider is null, an empty value provider is returned.

        Type Parameters:
        T - value type.
        Parameters:
        delegate - value provider delegate that will be used to eagerly initialize the value provider.
        Returns:
        eagerly initialized, constant value provider.
      • lazy

        public static <T,​E extends java.lang.Throwable> LazyUnsafeValue<T,​E> lazy​(UnsafeValue<T,​E> delegate)
        Get a new lazily initialized unsafe value provider.

        The value returned by its get() method is lazily retrieved during a first call to the method from the supplied delegate value provider and is then cached for a subsequent retrieval.

        In case the call to underlying delegate.get() throws a throwable, the throwable is cached and thrown on all subsequent retrievals.

        The implementation of the returned lazy value provider is thread-safe and is guaranteed to invoke the get() method on the supplied delegate value provider instance at most once.

        If the supplied value provider is null, an empty value provider is returned.

        Type Parameters:
        T - value type.
        Parameters:
        delegate - value provider delegate that will be used to lazily initialize the value provider.
        Returns:
        lazily initialized value provider.