Class IoC
- java.lang.Object
-
- com.github.collinalpert.java2db.utilities.IoC
-
public class IoC extends java.lang.Object- Author:
- Collin Alpert
An
Inversion of Control
container. It is responsible for registering and resolving services and custom mappers.
-
-
Constructor Summary
Constructors Constructor Description IoC()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static <E extends BaseEntity>
booleanisMapperRegistered(java.lang.Class<E> clazz)Checks if a mapper has already been registered.static <E extends BaseEntity>
booleanisServiceRegistered(java.lang.Class<E> clazz)Checks if a service has already been registered.static <E extends BaseEntity,M extends Mapper<E>>
voidregisterMapper(java.lang.Class<E> clazz, M mapper)Registers an instance of a mapper class.static <E extends BaseEntity,S extends BaseService<E>>
voidregisterService(java.lang.Class<E> clazz, S service)Registers an instance of a service class.static <E> Eresolve(java.lang.Class<E> clazz)Creates an instance of any class with an empty constructor.static <E extends BaseEntity>
Mapper<E>resolveMapper(java.lang.Class<E> clazz)Resolves a mapper class.static <S extends BaseService>
SresolveService(java.lang.Class<S> clazz)Resolves a service class.static <E extends BaseEntity,S extends BaseService<E>>
SresolveServiceByEntity(java.lang.Class<E> clazz)Resolves a service class by the entity it was registered with.
-
-
-
Method Detail
-
resolve
public static <E> E resolve(java.lang.Class<E> clazz)
Creates an instance of any class with an empty constructor.- Type Parameters:
E- The type of the entity.- Parameters:
clazz- The class to be constructed.- Returns:
- An instance of this class.
- Throws:
java.lang.IllegalArgumentException- if the class cannot be constructed for any reason. This can occur if there is no public parameterless constructor available.
-
resolveService
public static <S extends BaseService> S resolveService(java.lang.Class<S> clazz)
Resolves a service class. This is to preserve the singleton pattern. Only one instance of a service is needed in the lifecycle of an application.- Type Parameters:
S- The type of the service class.- Parameters:
clazz- The service class to retrieve.- Returns:
- The previously registered instance of a service class.
-
resolveMapper
public static <E extends BaseEntity> Mapper<E> resolveMapper(java.lang.Class<E> clazz)
Resolves a mapper class. This is to preserve the singleton pattern. Only one instance of a mapper is needed in the lifecycle of an application.- Type Parameters:
E- The type of the entity.- Parameters:
clazz- The entity that the mapper was registered for.- Returns:
- The previously registered instance of a service class.
-
resolveServiceByEntity
public static <E extends BaseEntity,S extends BaseService<E>> S resolveServiceByEntity(java.lang.Class<E> clazz)
Resolves a service class by the entity it was registered with.- Type Parameters:
E- The type of the entity.S- The type of the service.- Parameters:
clazz- The entity class corresponding to a service class.- Returns:
- An instance of a previously registered service class.
-
registerService
public static <E extends BaseEntity,S extends BaseService<E>> void registerService(java.lang.Class<E> clazz, S service)
Registers an instance of a service class.- Type Parameters:
E- The type of the entity.S- The type of the service class.- Parameters:
clazz- An entity class.service- The service class this entity corresponds to.
-
registerMapper
public static <E extends BaseEntity,M extends Mapper<E>> void registerMapper(java.lang.Class<E> clazz, M mapper)
Registers an instance of a mapper class.- Type Parameters:
E- The type of the entity.M- The type of the service class.- Parameters:
clazz- An entity class.mapper- The mapper class for the entity.
-
isServiceRegistered
public static <E extends BaseEntity> boolean isServiceRegistered(java.lang.Class<E> clazz)
Checks if a service has already been registered.- Type Parameters:
E- The type of the service.- Parameters:
clazz- The class of the entity a service was registered for.- Returns:
Trueif an instance of the service is registered,falseif not.
-
isMapperRegistered
public static <E extends BaseEntity> boolean isMapperRegistered(java.lang.Class<E> clazz)
Checks if a mapper has already been registered.- Type Parameters:
E- The type of the entity.- Parameters:
clazz- The class of the entity a mapper was registered for.- Returns:
Trueif an instance of the mapper is registered,falseif not.
-
-