Search in sources :

Example 1 with MethodInfo

use of javax.el.MethodInfo in project tomcat by apache.

the class MethodExpressionImpl method getMethodInfo.

/**
     * Evaluates the expression relative to the provided context, and returns
     * information about the actual referenced method.
     *
     * @param context
     *            The context of this evaluation
     * @return an instance of <code>MethodInfo</code> containing information
     *         about the method the expression evaluated to.
     * @throws NullPointerException
     *             if context is <code>null</code> or the base object is
     *             <code>null</code> on the last resolution.
     * @throws PropertyNotFoundException
     *             if one of the property resolutions failed because a specified
     *             variable or property does not exist or is not readable.
     * @throws MethodNotFoundException
     *             if no suitable method can be found.
     * @throws ELException
     *             if an exception was thrown while performing property or
     *             variable resolution. The thrown exception must be included as
     *             the cause property of this exception, if available.
     * @see javax.el.MethodExpression#getMethodInfo(javax.el.ELContext)
     */
@Override
public MethodInfo getMethodInfo(ELContext context) throws PropertyNotFoundException, MethodNotFoundException, ELException {
    Node n = this.getNode();
    EvaluationContext ctx = new EvaluationContext(context, this.fnMapper, this.varMapper);
    ctx.notifyBeforeEvaluation(getExpressionString());
    MethodInfo result = n.getMethodInfo(ctx, this.paramTypes);
    ctx.notifyAfterEvaluation(getExpressionString());
    return result;
}
Also used : Node(org.apache.el.parser.Node) MethodInfo(javax.el.MethodInfo) EvaluationContext(org.apache.el.lang.EvaluationContext)

Example 2 with MethodInfo

use of javax.el.MethodInfo in project tomcat by apache.

the class MethodExpressionLiteral method getMethodInfo.

@Override
public MethodInfo getMethodInfo(ELContext context) throws ELException {
    context.notifyBeforeEvaluation(getExpressionString());
    MethodInfo result = new MethodInfo(this.expr, this.expectedType, this.paramTypes);
    context.notifyAfterEvaluation(getExpressionString());
    return result;
}
Also used : MethodInfo(javax.el.MethodInfo)

Example 3 with MethodInfo

use of javax.el.MethodInfo in project tomcat by apache.

the class AstValue method getMethodInfo.

@Override
public // Interface el.parser.Node uses raw types (and is auto-generated)
MethodInfo getMethodInfo(EvaluationContext ctx, @SuppressWarnings("rawtypes") Class[] paramTypes) throws ELException {
    Target t = getTarget(ctx);
    Method m = ReflectionUtil.getMethod(ctx, t.base, t.property, paramTypes, null);
    return new MethodInfo(m.getName(), m.getReturnType(), m.getParameterTypes());
}
Also used : MethodInfo(javax.el.MethodInfo) Method(java.lang.reflect.Method)

Example 4 with MethodInfo

use of javax.el.MethodInfo in project tomcat by apache.

the class JspMethodExpression method getMethodInfo.

@Override
public MethodInfo getMethodInfo(ELContext context) throws NullPointerException, PropertyNotFoundException, MethodNotFoundException, ELException {
    context.notifyBeforeEvaluation(getExpressionString());
    try {
        MethodInfo result = this.target.getMethodInfo(context);
        context.notifyAfterEvaluation(getExpressionString());
        return result;
    } catch (MethodNotFoundException e) {
        if (e instanceof JspMethodNotFoundException)
            throw e;
        throw new JspMethodNotFoundException(this.mark, e);
    } catch (PropertyNotFoundException e) {
        if (e instanceof JspPropertyNotFoundException)
            throw e;
        throw new JspPropertyNotFoundException(this.mark, e);
    } catch (ELException e) {
        if (e instanceof JspELException)
            throw e;
        throw new JspELException(this.mark, e);
    }
}
Also used : PropertyNotFoundException(javax.el.PropertyNotFoundException) MethodInfo(javax.el.MethodInfo) ELException(javax.el.ELException) MethodNotFoundException(javax.el.MethodNotFoundException)

Aggregations

MethodInfo (javax.el.MethodInfo)4 Method (java.lang.reflect.Method)1 ELException (javax.el.ELException)1 MethodNotFoundException (javax.el.MethodNotFoundException)1 PropertyNotFoundException (javax.el.PropertyNotFoundException)1 EvaluationContext (org.apache.el.lang.EvaluationContext)1 Node (org.apache.el.parser.Node)1