Package com.itextpdf.commons.utils
Class DIContainer
java.lang.Object
com.itextpdf.commons.utils.DIContainer
A simple dependency injection container.
The container is thread-safe.
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate static final ConcurrentHashMap
<Class<?>, Supplier<Object>> private final ConcurrentHashMap
<Class<?>, Object> -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescription<T> T
getInstance
(Class<T> clazz) Gets an instance of a class.boolean
isRegistered
(Class<?> clazz) Checks if an instance is registered for a class.void
Registers an instance for a class.static void
registerDefault
(Class<?> clazz, Supplier<Object> supplier) Registers a default instance for a class.
-
Field Details
-
instances
-
localInstances
-
-
Constructor Details
-
DIContainer
public DIContainer()Creates a new instance ofDIContainer
.
-
-
Method Details
-
registerDefault
Registers a default instance for a class.- Parameters:
clazz
- the classsupplier
- supplier of the instance
-
register
Registers an instance for a class.- Parameters:
clazz
- the classinst
- the instance
-
getInstance
Gets an instance of a class.- Type Parameters:
T
- the type of the class- Parameters:
clazz
- the class- Returns:
- the instance
-
isRegistered
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
-