Class IoC


  • public class IoC
    extends java.lang.Object
    Author:
    Collin Alpert

    A

    Inversion of Control
    class. It is responsible for registering services, resolving services and administrating default query constraints.
    • Constructor Summary

      Constructors 
      Constructor Description
      IoC()  
    • Constructor Detail

      • IoC

        public IoC()
    • 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.
      • 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.
      • getConstraints

        public static <E extends BaseEntitySqlPredicate<E> getConstraints​(java.lang.Class<E> clazz)
        Retrieves a composition SqlPredicate for all constraints that have been added for this class or any superclass of this class.
        Type Parameters:
        E - The type of the class to get the constraints for.
        Parameters:
        clazz - The class to retrieve query constraints from.
        Returns:
        A SqlPredicate describing the added constraints.
      • addConstraint

        public static <E extends BaseEntity> void addConstraint​(java.lang.Class<E> clazz,
                                                                SqlPredicate<E> predicate)
        Adds a query constraint to a query made with a certain entity. This means that any query made with this entity will include this predicate.
        Type Parameters:
        E - The type of the entity.
        Parameters:
        clazz - The entity to add the constraint to.
        predicate - The constraint.
      • isRegistered

        public <S extends BaseService> boolean isRegistered​(java.lang.Class<S> clazz)
        Checks if a service has already been registered.
        Type Parameters:
        S - The type of the service.
        Parameters:
        clazz - The class os the service.
        Returns:
        True if an instance of the service is registered, false if not.