Class Values
Value provider factory & utility methods.- Author:
- Marek Potociar
-
Method Summary
Modifier and TypeMethodDescriptionstatic <T> Value<T>Get a new eagerly initializedvalue provider.static <T> Value<T>empty()static <T,E extends Throwable>
UnsafeValue<T,E> static <T,E extends Throwable>
LazyUnsafeValue<T,E> lazy(UnsafeValue<T, E> delegate) Get a new lazily initializedunsafe value provider.static <T> LazyValue<T>Get a new lazily initializedvalue provider.static <T> Value<T>of(T value) Get a new constantvalue providerwhoseget()method always returns the instance supplied to thevalueparameter.static <T,E extends Throwable>
UnsafeValue<T,E> throwing(E throwable) Get a new "throwing"unsafe value providerwhoseget()method always throws the exception supplied to thethrowableparameter.static <T,E extends Throwable>
UnsafeValue<T,E> unsafe(T value) Get a new constantvalue providerwhoseget()method always returns the instance supplied to thevalueparameter.
-
Method Details
-
empty
- Type Parameters:
T- value type.- Returns:
- empty value provider.
-
emptyUnsafe
- Type Parameters:
T- value type.- Returns:
- empty unsafe value provider.
-
of
Get a new constantvalue providerwhoseget()method always returns the instance supplied to thevalueparameter. In case the supplied value constant isnull, anemptyvalue provider is returned.- Type Parameters:
T- value type.- Parameters:
value- value instance to be provided.- Returns:
- constant value provider.
-
unsafe
Get a new constantvalue providerwhoseget()method always returns the instance supplied to thevalueparameter. In case the supplied value constant isnull, anemptyvalue provider is returned.- Type Parameters:
T- value type.- Parameters:
value- value instance to be provided.- Returns:
- constant value provider.
-
throwing
Get a new "throwing"unsafe value providerwhoseget()method always throws the exception supplied to thethrowableparameter. In case the supplied throwable isnull, anNullPointerExceptionis thrown.- Type Parameters:
T- value type.E- exception type.- Parameters:
throwable- throwable instance to be thrown.- Returns:
- "throwing" unsafe value provider.
- Throws:
NullPointerException- in case the supplied throwable instance isnull.
-
lazy
Get a new lazily initializedvalue provider. The value returned by itsget()method is lazily retrieved during a first call to the method from the supplieddelegatevalue 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 supplieddelegatevalue provider instance at most once.If the supplied value provider is
null, anemptyvalue 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
Get a new eagerly initializedvalue provider. The value returned by itsget()method is eagerly computed from the supplieddelegatevalue 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 supplieddelegatevalue provider instance once and only once.If the supplied value provider is
null, anemptyvalue 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
Get a new lazily initializedunsafe value provider. The value returned by itsget()method is lazily retrieved during a first call to the method from the supplieddelegatevalue 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 supplieddelegatevalue provider instance at most once.If the supplied value provider is
null, anemptyvalue 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.
-