Package com.itextpdf.commons.utils
Class DIContainer
- java.lang.Object
-
- com.itextpdf.commons.utils.DIContainer
-
public class DIContainer extends java.lang.Object
A simple dependency injection container.The container is thread-safe.
-
-
Field Summary
Fields Modifier and Type Field Description private static java.util.concurrent.ConcurrentHashMap<java.lang.Class<?>,java.util.function.Supplier<java.lang.Object>>
instances
private java.util.concurrent.ConcurrentHashMap<java.lang.Class<?>,java.lang.Object>
localInstances
-
Constructor Summary
Constructors Constructor Description DIContainer()
Creates a new instance ofDIContainer
.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description <T> T
getInstance(java.lang.Class<T> clazz)
Gets an instance of a class.boolean
isRegistered(java.lang.Class<?> clazz)
Checks if an instance is registered for a class.void
register(java.lang.Class<?> clazz, java.lang.Object inst)
Registers an instance for a class.static void
registerDefault(java.lang.Class<?> clazz, java.util.function.Supplier<java.lang.Object> supplier)
Registers a default instance for a class.
-
-
-
Constructor Detail
-
DIContainer
public DIContainer()
Creates a new instance ofDIContainer
.
-
-
Method Detail
-
registerDefault
public static void registerDefault(java.lang.Class<?> clazz, java.util.function.Supplier<java.lang.Object> supplier)
Registers a default instance for a class.- Parameters:
clazz
- the classsupplier
- supplier of the instance
-
register
public void register(java.lang.Class<?> clazz, java.lang.Object inst)
Registers an instance for a class.- Parameters:
clazz
- the classinst
- the instance
-
getInstance
public <T> T getInstance(java.lang.Class<T> clazz)
Gets an instance of a class.- Type Parameters:
T
- the type of the class- Parameters:
clazz
- the class- Returns:
- the instance
-
isRegistered
public boolean isRegistered(java.lang.Class<?> clazz)
Checks if an instance is registered for a class. If the class is registered but the value is null, it will still returntrue
.- Parameters:
clazz
- the class- Returns:
true
if an instance is registered,false
otherwise
-
-