Class InjectionResolver

java.lang.Object
org.apache.webbeans.container.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
    Creates a new injection resolve for given bean manager.
  • Method Summary

    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
    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<?>>
    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)
     

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • InjectionResolver

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

    • 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)