Class AbstractConcurrentInitializer<T,E extends Exception>
java.lang.Object
org.apache.commons.lang3.concurrent.AbstractConcurrentInitializer<T,E>
- Type Parameters:
T
- the type of the object managed by this initializer class.E
- The exception type thrown byinitialize()
.
- All Implemented Interfaces:
ConcurrentInitializer<T>
,FailableSupplier<T,
ConcurrentException>
- Direct Known Subclasses:
AtomicInitializer
,AtomicSafeInitializer
,BackgroundInitializer
,LazyInitializer
public abstract class AbstractConcurrentInitializer<T,E extends Exception>
extends Object
implements ConcurrentInitializer<T>
Abstracts and defines operations for
ConcurrentInitializer
implementations.- Since:
- 3.14.0
-
Nested Class Summary
Modifier and TypeClassDescriptionstatic class
AbstractConcurrentInitializer.AbstractBuilder<I extends AbstractConcurrentInitializer<T,
E>, T, B extends AbstractConcurrentInitializer.AbstractBuilder<I, T, B, E>, E extends Exception> Builds a new instance for subclasses. -
Field Summary
Fields inherited from interface org.apache.commons.lang3.function.FailableSupplier
NUL
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionvoid
close()
Calls the closer with the manager object.protected abstract E
Gets an Exception with a type of E as defined by a concrete subclass of this class.protected T
Creates and initializes the object managed by thisConcurrentInitializer
.protected abstract boolean
Returns true if initialization has been completed.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface org.apache.commons.lang3.function.FailableSupplier
get
-
Constructor Details
-
AbstractConcurrentInitializer
public AbstractConcurrentInitializer()Constructs a new instance.
-
-
Method Details
-
close
Calls the closer with the manager object.- Throws:
ConcurrentException
- Thrown by the closer.- Since:
- 3.14.0
-
getTypedException
Gets an Exception with a type of E as defined by a concrete subclass of this class.- Parameters:
e
- The actual exception that was thrown- Returns:
- a new exception with the actual type of E, that wraps e.
-
initialize
Creates and initializes the object managed by thisConcurrentInitializer
. This method is called byFailableSupplier.get()
when the object is accessed for the first time. An implementation can focus on the creation of the object. No synchronization is needed, as this is already handled byget()
.Subclasses and clients that do not provide an initializer are expected to implement this method.
- Returns:
- the managed data object
- Throws:
E
- if an error occurs during object creation
-
isInitialized
Returns true if initialization has been completed. If initialization threw an exception this will return false, but it will return true if a subsequent call to initialize completes successfully. If the implementation of ConcurrentInitializer can initialize multiple objects, this will only return true if all objects have been initialized.- Returns:
- true if all initialization is complete, otherwise false
-