Class AbstractHk2InjectionManager

    • Field Summary

      Fields 
      Modifier and Type Field Description
      private static org.glassfish.hk2.api.ServiceLocatorFactory factory  
      private org.glassfish.hk2.api.ServiceLocator locator  
      private static java.util.logging.Logger LOGGER  
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      private static void assertParentLocatorType​(java.lang.Object parent)
      Checks if the parent is null then must be an instance of ServiceLocator or InjectionManager.
      <U> U createAndInitialize​(java.lang.Class<U> clazz)
      Creates, injects and post-constructs an object with the given class.
      private ForeignDescriptor createAndTranslateForeignDescriptor​(Binding binding)  
      ForeignDescriptor createForeignDescriptor​(Binding binding)
      Creates and registers the descriptor in the underlying DI provider and returns ForeignDescriptor that is specific descriptor for the underlying DI provider.
      private static org.glassfish.hk2.api.ServiceLocator createLocator​(org.glassfish.hk2.api.ServiceLocator parentLocator)
      Creates a new ServiceLocator instance from static ServiceLocatorFactory and adds the provided parent locator if the instance is not null.
      <T> java.util.List<T> getAllInstances​(java.lang.reflect.Type clazz)
      Gets all services from this injection manager that implement this contract or have this implementation.
      <T> java.util.List<ServiceHolder<T>> getAllServiceHolders​(java.lang.Class<T> contract, java.lang.annotation.Annotation... qualifiers)
      Gets all services from this injection manager that implements this contract or has this implementation along with information about the service which can be kept by ServiceHolder.
      <T> T getInstance​(java.lang.Class<T> clazz)
      Gets the best service from this injection manager that implements this contract or has this implementation.
      <T> T getInstance​(java.lang.Class<T> clazz, java.lang.annotation.Annotation... annotations)
      Gets the best service from this injection manager that implements this contract or has this implementation.
      <T> T getInstance​(java.lang.Class<T> clazz, java.lang.String classAnalyzer)
      Gets the best service from this injection manager that implements this contract or has this implementation.
      <T> T getInstance​(java.lang.reflect.Type clazz)
      Gets the best service from this injection manager that implements this contract or has this implementation.
      java.lang.Object getInstance​(ForeignDescriptor foreignDescriptor)
      Gets the service instance according to ForeignDescriptor which is specific to the underlying DI provider.
      org.glassfish.hk2.api.ServiceLocator getServiceLocator()  
      void inject​(java.lang.Object injectMe)
      Analyzes the given object and inject into its fields and methods.
      void inject​(java.lang.Object injectMe, java.lang.String classAnalyzer)
      This will analyze the given object and inject into its fields and methods.
      boolean isRegistrable​(java.lang.Class<?> clazz)
      Tests whether the provided clazz can be registered by the implementation of the InjectionManager.
      void preDestroy​(java.lang.Object preDestroyMe)
      Analyzes the given object and call the preDestroy method.
      private static org.glassfish.hk2.api.ServiceLocator resolveServiceLocatorParent​(java.lang.Object parent)  
      void shutdown()
      Shuts down the entire InjectionManager and the underlying DI provider.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • LOGGER

        private static final java.util.logging.Logger LOGGER
      • factory

        private static final org.glassfish.hk2.api.ServiceLocatorFactory factory
      • locator

        private org.glassfish.hk2.api.ServiceLocator locator
    • Constructor Detail

      • AbstractHk2InjectionManager

        AbstractHk2InjectionManager​(java.lang.Object parent)
        Private constructor.
        Parameters:
        parent - parent of type InjectionManager or ServiceLocator.
    • Method Detail

      • createLocator

        private static org.glassfish.hk2.api.ServiceLocator createLocator​(org.glassfish.hk2.api.ServiceLocator parentLocator)
        Creates a new ServiceLocator instance from static ServiceLocatorFactory and adds the provided parent locator if the instance is not null.
        Parameters:
        parentLocator - parent locator, can be null.
        Returns:
        new instance of injection manager.
      • resolveServiceLocatorParent

        private static org.glassfish.hk2.api.ServiceLocator resolveServiceLocatorParent​(java.lang.Object parent)
      • assertParentLocatorType

        private static void assertParentLocatorType​(java.lang.Object parent)
        Checks if the parent is null then must be an instance of ServiceLocator or InjectionManager.
        Parameters:
        parent - object represented by ServiceLocator or HK2InjectionManager.
      • getServiceLocator

        public org.glassfish.hk2.api.ServiceLocator getServiceLocator()
      • isRegistrable

        public boolean isRegistrable​(java.lang.Class<?> clazz)
        Description copied from interface: InjectionManager
        Tests whether the provided clazz can be registered by the implementation of the InjectionManager.
        Specified by:
        isRegistrable in interface InjectionManager
        Parameters:
        clazz - type that is tested whether is registrable by the implementation of InjectionManager.
        Returns:
        true if the InjectionManager is able to register this type.
      • getAllServiceHolders

        public <T> java.util.List<ServiceHolder<T>> getAllServiceHolders​(java.lang.Class<T> contract,
                                                                         java.lang.annotation.Annotation... qualifiers)
        Description copied from interface: InjectionManager
        Gets all services from this injection manager that implements this contract or has this implementation along with information about the service which can be kept by ServiceHolder.
        Specified by:
        getAllServiceHolders in interface InjectionManager
        Type Parameters:
        T - Instance type.
        Parameters:
        contract - May not be null, and is the contract or concrete implementation to get the best instance of.
        qualifiers - The set of qualifiers that must match this service definition.
        Returns:
        An instance of the contract or impl along with other information. May return null if there is no provider that provides the given implementation or contract.
      • getInstance

        public <T> T getInstance​(java.lang.Class<T> clazz,
                                 java.lang.annotation.Annotation... annotations)
        Description copied from interface: InjectionManager
        Gets the best service from this injection manager that implements this contract or has this implementation.

        Use this method only if other information is not needed otherwise use, otherwise use InjectionManager.getAllServiceHolders(Class, Annotation...).

        Specified by:
        getInstance in interface InjectionManager
        Type Parameters:
        T - Instance type.
        Parameters:
        clazz - May not be null, and is the contract or concrete implementation to get the best instance of.
        annotations - The set of qualifiers that must match this service definition.
        Returns:
        An instance of the contract or impl. May return null if there is no provider that provides the given implementation or contract.
      • getInstance

        public <T> T getInstance​(java.lang.reflect.Type clazz)
        Description copied from interface: InjectionManager
        Gets the best service from this injection manager that implements this contract or has this implementation.

        Use this method only if other information is not needed otherwise use, otherwise use InjectionManager.getAllServiceHolders(Class, Annotation...).

        Specified by:
        getInstance in interface InjectionManager
        Type Parameters:
        T - Instance type.
        Parameters:
        clazz - May not be null, and is the contract or concrete implementation to get the best instance of.
        Returns:
        An instance of the contract or impl. May return null if there is no provider that provides the given implementation or contract.
      • getInstance

        public java.lang.Object getInstance​(ForeignDescriptor foreignDescriptor)
        Description copied from interface: InjectionManager
        Gets the service instance according to ForeignDescriptor which is specific to the underlying DI provider.
        Specified by:
        getInstance in interface InjectionManager
        Parameters:
        foreignDescriptor - DI specific descriptor.
        Returns:
        service instance according to foreign descriptor.
      • getInstance

        public <T> T getInstance​(java.lang.Class<T> clazz)
        Description copied from interface: InjectionManager
        Gets the best service from this injection manager that implements this contract or has this implementation.

        Use this method only if other information is not needed otherwise use, otherwise use InjectionManager.getAllServiceHolders(Class, Annotation...).

        Specified by:
        getInstance in interface InjectionManager
        Type Parameters:
        T - Instance type.
        Parameters:
        clazz - May not be null, and is the contract or concrete implementation to get the best instance of.
        Returns:
        An instance of the contract or impl. May return null if there is no provider that provides the given implementation or contract.
      • getInstance

        public <T> T getInstance​(java.lang.Class<T> clazz,
                                 java.lang.String classAnalyzer)
        Description copied from interface: InjectionManager
        Gets the best service from this injection manager that implements this contract or has this implementation.

        Use this method only if other information is not needed otherwise use, otherwise use InjectionManager.getAllServiceHolders(Class, Annotation...).

        Specified by:
        getInstance in interface InjectionManager
        Type Parameters:
        T - Instance type.
        Parameters:
        clazz - May not be null, and is the contract or concrete implementation to get the best instance of.
        classAnalyzer - -------
        Returns:
        An instance of the contract or impl. May return null if there is no provider that provides the given implementation or contract.
      • getAllInstances

        public <T> java.util.List<T> getAllInstances​(java.lang.reflect.Type clazz)
        Description copied from interface: InjectionManager
        Gets all services from this injection manager that implement this contract or have this implementation.

        Use this method only if other information is not needed otherwise use, otherwise use InjectionManager.getAllServiceHolders(Class, Annotation...).

        Specified by:
        getAllInstances in interface InjectionManager
        Type Parameters:
        T - Instance type.
        Parameters:
        clazz - May not be null, and is the contract or concrete implementation to get the best instance of.
        Returns:
        A list of services implementing this contract or concrete implementation. May not return null, but may return an empty list
      • preDestroy

        public void preDestroy​(java.lang.Object preDestroyMe)
        Description copied from interface: InjectionManager
        Analyzes the given object and call the preDestroy method. The object given will not be managed by bean manager.
        Specified by:
        preDestroy in interface InjectionManager
        Parameters:
        preDestroyMe - The object to preDestroy
      • shutdown

        public void shutdown()
        Description copied from interface: InjectionManager
        Shuts down the entire InjectionManager and the underlying DI provider.

        Shutdown phase is dedicated to make some final cleaning steps regarding underlying DI provider.

        Specified by:
        shutdown in interface InjectionManager
      • createAndInitialize

        public <U> U createAndInitialize​(java.lang.Class<U> clazz)
        Description copied from interface: InjectionManager
        Creates, injects and post-constructs an object with the given class. This is equivalent to calling the create-class method followed by the inject-class method followed by the post-construct method.

        The object created is not managed by the injection manager.

        Specified by:
        createAndInitialize in interface InjectionManager
        Parameters:
        clazz - The non-null class to create this object from;
        Returns:
        An instance of the object that has been created, injected and post constructed.
      • createForeignDescriptor

        public ForeignDescriptor createForeignDescriptor​(Binding binding)
        Description copied from interface: InjectionManager
        Creates and registers the descriptor in the underlying DI provider and returns ForeignDescriptor that is specific descriptor for the underlying DI provider.
        Specified by:
        createForeignDescriptor in interface InjectionManager
        Parameters:
        binding - jersey descriptor.
        Returns:
        specific foreign descriptor of the underlying DI provider.
      • inject

        public void inject​(java.lang.Object injectMe)
        Description copied from interface: InjectionManager
        Analyzes the given object and inject into its fields and methods. The object injected in this way will not be managed by HK2
        Specified by:
        inject in interface InjectionManager
        Parameters:
        injectMe - The object to be analyzed and injected into
      • inject

        public void inject​(java.lang.Object injectMe,
                           java.lang.String classAnalyzer)
        Description copied from interface: InjectionManager
        This will analyze the given object and inject into its fields and methods. The object injected in this way will not be managed by HK2
        Specified by:
        inject in interface InjectionManager
        Parameters:
        injectMe - The object to be analyzed and injected into
      • createAndTranslateForeignDescriptor

        private ForeignDescriptor createAndTranslateForeignDescriptor​(Binding binding)