Package org.apache.webbeans.container
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 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 voidcheckInjectionPoint(jakarta.enterprise.inject.spi.InjectionPoint injectionPoint)Check that a valid enabled bean exists in the deployment for the given injection point definition.voidcheckInjectionPointType(jakarta.enterprise.inject.spi.InjectionPoint injectionPoint)Check the type of the injection point.voidclearCaches()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)voidsetFastMatching(boolean fastMatching)voidsetStartup(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 aDelegateinjectionPointType- injection point api typequalifiers- 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 aDelegateinjectionPointType- injection point api typequalifiers- 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
-
-