Interface InvocationContext


public interface InvocationContext

Exposes contextual information about the intercepted invocation and operations that enable interceptor methods to control the behavior of the invocation chain.


    @AroundInvoke
    public Object logInvocation(InvocationContext ctx) throws Exception {
       String class = ctx.getMethod().getDeclaringClass().getName();
       String method = ctx.getMethod().getName();
       Logger.global.entering(class, method, ctx.getParameters());
       try {
          Object result = ctx.proceed();
          Logger.global.exiting(class, method, result);
          return result;
       }
       catch (Exception e) {
          Logger.global.throwing(class, method, e);
          throw e;
       }

    }
 
 
Since:
Interceptors 1.0
  • Method Summary

    Modifier and Type
    Method
    Description
    Returns the constructor of the target class for which the AroundConstruct interceptor method was invoked.
    Enables an interceptor to retrieve or update the data associated with the invocation by another interceptor, business method, and/or webservices endpoint in the invocation chain.
    Returns the method of the target class for which the interceptor was invoked.
    Returns the parameter values that will be passed to the method or constructor of the target class.
    Returns the target instance.
    Returns the timer object associated with a timeout method invocation on the target class, or a null value for interceptor method types other than AroundTimeout.
    Proceed to the next interceptor in the interceptor chain.
    void
    Sets the parameter values that will be passed to the method or constructor of the target class.
  • Method Details

    • getTarget

      Object getTarget()
      Returns the target instance. For AroundConstruct lifecycle callback interceptor methods, the getTarget method returns null if called before the proceed() method.
      Returns:
      the target instance
    • getTimer

      Object getTimer()
      Returns the timer object associated with a timeout method invocation on the target class, or a null value for interceptor method types other than AroundTimeout. For example, when associated with an EJB component timeout, this method returns javax.ejb.Timer.
      Returns:
      the timer object or a null value
      Since:
      Interceptors 1.1
    • getMethod

      Method getMethod()
      Returns the method of the target class for which the interceptor was invoked. Returns null in a lifecycle callback interceptor for which there is no corresponding lifecycle callback method declared in the target class (or inherited from a superclass) or in an AroundConstruct lifecycle callback interceptor method.
      Returns:
      the method, or a null value
    • getConstructor

      Constructor<?> getConstructor()
      Returns the constructor of the target class for which the AroundConstruct interceptor method was invoked. Returns null for interceptor method types other than AroundConstruct interceptor methods.
      Returns:
      the constructor, or a null value
    • getParameters

      Object[] getParameters()
      Returns the parameter values that will be passed to the method or constructor of the target class. If setParameters(java.lang.Object[]) has been called, getParameters returns the values to which the parameters have been set.
      Returns:
      the parameter values, as an array
      Throws:
      IllegalStateException - if invoked within a lifecycle callback method that is not an AroundConstruct callback.
    • setParameters

      void setParameters(Object[] params)
      Sets the parameter values that will be passed to the method or constructor of the target class.
      Parameters:
      params - the parameter values, as an array
      Throws:
      IllegalStateException - if invoked within a lifecycle callback method that is not an AroundConstruct callback.
      IllegalArgumentException - if the types of the given parameter values do not match the types of the method or constructor parameters, or if the number of parameters supplied does not equal the number of method or constructor parameters (if the last parameter is a vararg parameter of type T, it is considered to be equivalent to a parameter of type T[]).
    • getContextData

      Map<String,Object> getContextData()
      Enables an interceptor to retrieve or update the data associated with the invocation by another interceptor, business method, and/or webservices endpoint in the invocation chain. If interceptors are invoked as a result of the invocation on a web service endpoint, the returned value will be an instance of javax.xml.rpc.handler.MessageContext.
      Returns:
      the context data associated with this invocation or lifecycle callback. If there is no context data, an empty Map<String,Object> object will be returned.
    • proceed

      Object proceed() throws Exception
      Proceed to the next interceptor in the interceptor chain. For around-invoke or around-timeout interceptor methods, the invocation of proceed in the last interceptor method in the chain causes the invocation of the target class method. For AroundConstruct lifecycle callback interceptor methods, the invocation of proceed in the last interceptor method in the chain causes the target instance to be created. For all other lifecycle callback interceptor methods, if there is no callback method defined on the target class, the invocation of proceed in the last interceptor method in the chain is a no-op.

      Return the result of the next method invoked, or a null value if the method has return type void.

      Returns:
      the return value of the next method in the chain
      Throws:
      Exception - if thrown by target method or interceptor method in call stack