Class CallableBackgroundInitializer<T>
- Type Parameters:
- T- the type of the object managed by this initializer class
- All Implemented Interfaces:
- ConcurrentInitializer<T>,- FailableSupplier<T,- ConcurrentException> 
BackgroundInitializer implementation that wraps a
 Callable object.
 
 An instance of this class is initialized with a Callable object when
 it is constructed. The implementation of the initialize() method
 defined in the super class delegates to this Callable so that the
 Callable is executed in the background thread.
 
 The Callable interface is a standard mechanism
 of the JDK to define tasks to be executed by another thread. The 
 CallableBackgroundInitializer class allows combining this standard interface
 with the background initializer API.
 
 Usage of this class is very similar to the default usage pattern of the
 BackgroundInitializer class: Just create an instance and provide the
 Callable object to be executed, then call the initializer's
 BackgroundInitializer.start() method. This causes the Callable to be executed in
 another thread. When the results of the Callable are needed the
 initializer's BackgroundInitializer.get() method can be called (which may block until
 background execution is complete). The following code fragment shows a
 typical usage example:
 
 // a Callable that performs a complex computation
 Callable<Integer> computationCallable = new MyComputationCallable();
 // setup the background initializer
 CallableBackgroundInitializer<Integer> initializer =
     new CallableBackgroundInitializer(computationCallable);
 initializer.start();
 // Now do some other things. Initialization runs in a parallel thread
 ...
 // Wait for the end of initialization and access the result
 Integer result = initializer.get();
 
 - Since:
- 3.0
- 
Nested Class SummaryNested classes/interfaces inherited from class org.apache.commons.lang3.concurrent.BackgroundInitializerBackgroundInitializer.Builder<I extends BackgroundInitializer<T>,T> Nested classes/interfaces inherited from class org.apache.commons.lang3.concurrent.AbstractConcurrentInitializerAbstractConcurrentInitializer.AbstractBuilder<I extends AbstractConcurrentInitializer<T,E>, T, B extends AbstractConcurrentInitializer.AbstractBuilder<I, T, B, E>, E extends Exception> 
- 
Field SummaryFields inherited from interface org.apache.commons.lang3.function.FailableSupplierNUL
- 
Constructor SummaryConstructorsConstructorDescriptionCreates a new instance ofCallableBackgroundInitializerand sets theCallableto be executed in a background thread.CallableBackgroundInitializer(Callable<T> call, ExecutorService exec) Creates a new instance ofCallableBackgroundInitializerand initializes it with theCallableto be executed in a background thread and theExecutorServicefor managing the background execution.
- 
Method SummaryMethods inherited from class org.apache.commons.lang3.concurrent.BackgroundInitializerbuilder, get, getActiveExecutor, getExternalExecutor, getFuture, getTaskCount, isInitialized, isStarted, setExternalExecutor, startMethods inherited from class org.apache.commons.lang3.concurrent.AbstractConcurrentInitializerclose
- 
Constructor Details- 
CallableBackgroundInitializerCreates a new instance ofCallableBackgroundInitializerand sets theCallableto be executed in a background thread.- Parameters:
- call- the- Callable(must not be null)
- Throws:
- IllegalArgumentException- if the- Callableis null
 
- 
CallableBackgroundInitializerCreates a new instance ofCallableBackgroundInitializerand initializes it with theCallableto be executed in a background thread and theExecutorServicefor managing the background execution.- Parameters:
- call- the- Callable(must not be null)
- exec- an external- ExecutorServiceto be used for task execution
- Throws:
- IllegalArgumentException- if the- Callableis null
 
 
- 
- 
Method Details- 
getTypedExceptionGets an Exception with a type of E as defined by a concrete subclass of this class.- Overrides:
- getTypedExceptionin class- BackgroundInitializer<T>
- Parameters:
- e- The actual exception that was thrown
- Returns:
- a new exception with the actual type of E, that wraps e.
 
- 
initializePerforms initialization in a background thread. This implementation delegates to theCallablepassed at construction time of this object.- Overrides:
- initializein class- AbstractConcurrentInitializer<T,- Exception> 
- Returns:
- the result of the initialization
- Throws:
- Exception- if an error occurs
 
 
-