org.apache.webbeans.container
Class InjectionResolver

java.lang.Object
  extended by 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: 1682658 $ $Date: 2015-05-30 23:27:41 +0200 (Sat, 30 May 2015) $

Constructor Summary
InjectionResolver(WebBeansContext webBeansContext)
          Creates a new injection resolve for given bean manager.
 
Method Summary
 void checkInjectionPoint(javax.enterprise.inject.spi.InjectionPoint injectionPoint)
          Check that a valid enabled bean exists in the deployment for the given injection point definition.
 void checkInjectionPointType(javax.enterprise.inject.spi.InjectionPoint injectionPoint)
          Check the type of the injection point.
 void clearCaches()
          Clear caches.
<X> Set<javax.enterprise.inject.spi.Bean<? extends X>>
findByAlternatives(Set<javax.enterprise.inject.spi.Bean<? extends X>> beans)
          Gets alternatives from set.
 javax.enterprise.inject.spi.Bean<?> getInjectionPointBean(javax.enterprise.inject.spi.InjectionPoint injectionPoint)
          Returns bean for injection point.
 Set<javax.enterprise.inject.spi.Bean<?>> implResolveByName(String name)
          Returns set of beans for given bean name.
 Set<javax.enterprise.inject.spi.Bean<?>> implResolveByType(boolean isDelegate, Type injectionPointType, Annotation... qualifiers)
          Resolution by type.
 Set<javax.enterprise.inject.spi.Bean<?>> implResolveByType(boolean isDelegate, Type injectionPointType, Class<?> injectionPointClass, Annotation... qualifiers)
          Resolution by type.
<X> javax.enterprise.inject.spi.Bean<? extends X>
resolve(Set<javax.enterprise.inject.spi.Bean<? extends X>> beans, javax.enterprise.inject.spi.InjectionPoint injectionPoint)
          resolve any ambiguity by checking for Alternatives.
<X> Set<javax.enterprise.inject.spi.Bean<? extends X>>
resolveAll(Set<javax.enterprise.inject.spi.Bean<? extends X>> beans)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

InjectionResolver

public InjectionResolver(WebBeansContext webBeansContext)
Creates a new injection resolve for given bean manager.

Parameters:
webBeansContext - WebBeansContext
Method Detail

clearCaches

public void clearCaches()
Clear caches.


checkInjectionPointType

public void checkInjectionPointType(javax.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(javax.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 javax.enterprise.inject.spi.Bean<?> getInjectionPointBean(javax.enterprise.inject.spi.InjectionPoint injectionPoint)
Returns bean for injection point.

Parameters:
injectionPoint - injection point declaration
Returns:
bean for injection point

implResolveByName

public Set<javax.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<javax.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<javax.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<javax.enterprise.inject.spi.Bean<? extends X>> findByAlternatives(Set<javax.enterprise.inject.spi.Bean<? extends X>> beans)
Gets alternatives from set.

Parameters:
beans - resolved set
Returns:
contains alternatives

resolve

public <X> javax.enterprise.inject.spi.Bean<? extends X> resolve(Set<javax.enterprise.inject.spi.Bean<? extends X>> beans,
                                                                 javax.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:
javax.enterprise.inject.AmbiguousResolutionException - if more than 1 bean is active

resolveAll

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


Copyright © 2008–2015 The Apache Software Foundation. All rights reserved.