Class InjectionResolver


  • public class InjectionResolver
    extends Object
    Injection point resolver class.

    It is a singleton class per BeanManager. It is responsible for resolving the bean instances at the injection points for its bean manager.

    Version:
    $Rev$ $Date$
    • Constructor Summary

      Constructors 
      Constructor Description
      InjectionResolver​(WebBeansContext webBeansContext)
      Creates a new injection resolve for given bean manager.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void checkInjectionPoint​(jakarta.enterprise.inject.spi.InjectionPoint injectionPoint)
      Check that a valid enabled bean exists in the deployment for the given injection point definition.
      void checkInjectionPointType​(jakarta.enterprise.inject.spi.InjectionPoint injectionPoint)
      Check the type of the injection point.
      void clearCaches()
      Clear caches.
      <X> Set<jakarta.enterprise.inject.spi.Bean<? extends X>> findByAlternatives​(Set<jakarta.enterprise.inject.spi.Bean<? extends X>> beans)
      Gets alternatives from set.
      jakarta.enterprise.inject.spi.Bean<?> getInjectionPointBean​(jakarta.enterprise.inject.spi.InjectionPoint injectionPoint)
      Returns bean for injection point.
      Set<jakarta.enterprise.inject.spi.Bean<?>> implResolveByName​(String name)
      Returns set of beans for given bean name.
      Set<jakarta.enterprise.inject.spi.Bean<?>> implResolveByType​(boolean isDelegate, Type injectionPointType, Annotation... qualifiers)
      Resolution by type.
      Set<jakarta.enterprise.inject.spi.Bean<?>> implResolveByType​(boolean isDelegate, Type injectionPointType, Class<?> injectionPointClass, Annotation... qualifiers)
      Resolution by type.
      <X> jakarta.enterprise.inject.spi.Bean<? extends X> resolve​(Set<jakarta.enterprise.inject.spi.Bean<? extends X>> beans, jakarta.enterprise.inject.spi.InjectionPoint injectionPoint)
      resolve any ambiguity by checking for Alternatives.
      <X> Set<jakarta.enterprise.inject.spi.Bean<? extends X>> resolveAll​(Set<jakarta.enterprise.inject.spi.Bean<? extends X>> beans)  
      void setFastMatching​(boolean fastMatching)  
      void setStartup​(boolean startup)  
    • Constructor Detail

      • InjectionResolver

        public InjectionResolver​(WebBeansContext webBeansContext)
        Creates a new injection resolve for given bean manager.
        Parameters:
        webBeansContext - WebBeansContext
    • Method Detail

      • setFastMatching

        public void setFastMatching​(boolean fastMatching)
      • setStartup

        public void setStartup​(boolean startup)
      • clearCaches

        public void clearCaches()
        Clear caches.
      • checkInjectionPointType

        public void checkInjectionPointType​(jakarta.enterprise.inject.spi.InjectionPoint injectionPoint)
        Check the type of the injection point.

        Injection point type can not be TypeVariable.

        Parameters:
        injectionPoint - injection point
        Throws:
        WebBeansConfigurationException - if not obey the rule
      • checkInjectionPoint

        public void checkInjectionPoint​(jakarta.enterprise.inject.spi.InjectionPoint injectionPoint)
        Check that a valid enabled bean exists in the deployment for the given injection point definition.
        Parameters:
        injectionPoint - injection point
        Throws:
        WebBeansConfigurationException - If bean is not available in the current deployment for given injection
      • getInjectionPointBean

        public jakarta.enterprise.inject.spi.Bean<?> getInjectionPointBean​(jakarta.enterprise.inject.spi.InjectionPoint injectionPoint)
        Returns bean for injection point.
        Parameters:
        injectionPoint - injection point declaration
        Returns:
        bean for injection point
      • implResolveByName

        public Set<jakarta.enterprise.inject.spi.Bean<?>> implResolveByName​(String name)
        Returns set of beans for given bean name.
        Parameters:
        name - bean name
        Returns:
        set of beans for given bean name
      • implResolveByType

        public Set<jakarta.enterprise.inject.spi.Bean<?>> implResolveByType​(boolean isDelegate,
                                                                            Type injectionPointType,
                                                                            Annotation... qualifiers)
        Resolution by type.
        Parameters:
        isDelegate - whether the InjectionPoint is for a Delegate
        injectionPointType - injection point api type
        qualifiers - qualifiers of the injection point
        Returns:
        set of resolved beans
      • implResolveByType

        public Set<jakarta.enterprise.inject.spi.Bean<?>> implResolveByType​(boolean isDelegate,
                                                                            Type injectionPointType,
                                                                            Class<?> injectionPointClass,
                                                                            Annotation... qualifiers)
        Resolution by type.
        Parameters:
        isDelegate - whether the InjectionPoint is for a Delegate
        injectionPointType - injection point api type
        qualifiers - qualifiers of the injection point
        Returns:
        set of resolved beans
      • findByAlternatives

        public <X> Set<jakarta.enterprise.inject.spi.Bean<? extends X>> findByAlternatives​(Set<jakarta.enterprise.inject.spi.Bean<? extends X>> beans)
        Gets alternatives from set.
        Parameters:
        beans - resolved set
        Returns:
        contains alternatives
      • resolve

        public <X> jakarta.enterprise.inject.spi.Bean<? extends X> resolve​(Set<jakarta.enterprise.inject.spi.Bean<? extends X>> beans,
                                                                           jakarta.enterprise.inject.spi.InjectionPoint injectionPoint)
        resolve any ambiguity by checking for Alternatives. If any @Alternative exists, then we pick the one with the highest priority.
        Type Parameters:
        X -
        Parameters:
        beans -
        injectionPoint - only used for logging. Can be null.
        Returns:
        the single resolved bean, null if none is activated
        Throws:
        jakarta.enterprise.inject.AmbiguousResolutionException - if more than 1 bean is active
      • resolveAll

        public <X> Set<jakarta.enterprise.inject.spi.Bean<? extends X>> resolveAll​(Set<jakarta.enterprise.inject.spi.Bean<? extends X>> beans)