org.jboss.solder.reflection.annotated
Class InjectableMethod<X>

java.lang.Object
  extended by org.jboss.solder.reflection.annotated.InjectableMethod<X>
Type Parameters:
X - the declaring type

public class InjectableMethod<X>
extends Object

Allows an AnnotatedMethod to be injected using the CDI type safe resolution rules.

ParameterValueRedefiner allows the default value to be overridden by the caller of invoke(Object, CreationalContext, ParameterValueRedefiner).

Author:
Pete Muir

Constructor Summary
InjectableMethod(javax.enterprise.inject.spi.AnnotatedMethod<X> method, javax.enterprise.inject.spi.Bean<?> declaringBean, javax.enterprise.inject.spi.BeanManager beanManager)
          Instantiate a new InjectableMethod.
InjectableMethod(javax.enterprise.inject.spi.AnnotatedMethod<X> method, Collection<javax.enterprise.inject.spi.InjectionPoint> parameters, javax.enterprise.inject.spi.BeanManager beanManager)
          Instantiate a new InjectableMethod.
 
Method Summary
protected  javax.enterprise.inject.spi.BeanManager getBeanManager()
          Get the bean manager used by this injectable method.
protected  List<javax.enterprise.inject.spi.InjectionPoint> getParameters()
          Get the injectable parameters of this method.
<T> T
invoke(Object receiver, javax.enterprise.context.spi.CreationalContext<T> creationalContext)
          Invoke the method, causing all parameters to be injected according to the CDI type safe resolution rules.
<T> T
invoke(Object receiver, javax.enterprise.context.spi.CreationalContext<T> creationalContext, ParameterValueRedefiner redefinition)
          Invoke the method, calling the parameter redefiner for each parameter, allowing the caller to override the default value obtained via the CDI type safe resolver.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

InjectableMethod

public InjectableMethod(javax.enterprise.inject.spi.AnnotatedMethod<X> method,
                        javax.enterprise.inject.spi.Bean<?> declaringBean,
                        javax.enterprise.inject.spi.BeanManager beanManager)
Instantiate a new InjectableMethod.

Parameters:
method - the method which will be injected upon a call to invoke(Object, CreationalContext)
bean - the bean which defines the injectable method
beanManager - the BeanManager to use to obtain the parameter values

InjectableMethod

public InjectableMethod(javax.enterprise.inject.spi.AnnotatedMethod<X> method,
                        Collection<javax.enterprise.inject.spi.InjectionPoint> parameters,
                        javax.enterprise.inject.spi.BeanManager beanManager)
Instantiate a new InjectableMethod.

Parameters:
method - the method which will be injected upon a call to invoke(Object, CreationalContext)
parameters - a collection of injection points representing the parameters of the method
beanManager - the BeanManager to use to obtain the parameter values
Method Detail

getBeanManager

protected javax.enterprise.inject.spi.BeanManager getBeanManager()
Get the bean manager used by this injectable method.

Returns:
the bean manager in use

getParameters

protected List<javax.enterprise.inject.spi.InjectionPoint> getParameters()
Get the injectable parameters of this method.

Returns:
a collection of injection points representing the parameters of this method

invoke

public <T> T invoke(Object receiver,
                    javax.enterprise.context.spi.CreationalContext<T> creationalContext)
Invoke the method, causing all parameters to be injected according to the CDI type safe resolution rules.

Type Parameters:
T - the return type of the method
Parameters:
receiver - the instance upon which to call the method
creationalContext - the creational context to use to obtain injectable references for each parameter
Returns:
the result of invoking the method or null if the method's return type is void
Throws:
RuntimeException - if this Method object enforces Java language access control and the underlying method is inaccessible or if the underlying method throws an exception or if the initialization provoked by this method fails.
IllegalArgumentException - if the method is an instance method and the specified receiver argument is not an instance of the class or interface declaring the underlying method (or of a subclass or implementor thereof); if an unwrapping conversion for primitive arguments fails; or if, after possible unwrapping, a parameter value cannot be converted to the corresponding formal parameter type by a method invocation conversion.
NullPointerException - if the specified receiver is null and the method is an instance method.
ExceptionInInitializerError - if the initialization provoked by this method fails.

invoke

public <T> T invoke(Object receiver,
                    javax.enterprise.context.spi.CreationalContext<T> creationalContext,
                    ParameterValueRedefiner redefinition)
Invoke the method, calling the parameter redefiner for each parameter, allowing the caller to override the default value obtained via the CDI type safe resolver.

Type Parameters:
T - the return type of the method
Parameters:
receiver - the instance upon which to call the method
creationalContext - the creational context to use to obtain injectable references for each parameter
Returns:
the result of invoking the method or null if the method's return type is void
Throws:
RuntimeException - if this Method object enforces Java language access control and the underlying method is inaccessible or if the underlying method throws an exception or if the initialization provoked by this method fails.
IllegalArgumentException - if the method is an instance method and the specified receiver argument is not an instance of the class or interface declaring the underlying method (or of a subclass or implementor thereof); if an unwrapping conversion for primitive arguments fails; or if, after possible unwrapping, a parameter value cannot be converted to the corresponding formal parameter type by a method invocation conversion.
NullPointerException - if the specified receiver is null and the method is an instance method.
ExceptionInInitializerError - if the initialization provoked by this method fails.


Copyright © 2008-2011 Seam Framework. All Rights Reserved.