# Class ExpressionBuilder

java.lang.Object
org.apache.el.lang.ExpressionBuilder

All Implemented Interfaces:
  `org.apache.el.parser.NodeVisitor`

public final class ExpressionBuilder extends Object implements org.apache.el.parser.NodeVisitor
Builds compiled EL expressions from parsed AST nodes.

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `ExpressionBuilder(String expression, ELContext ctx)`
  Creates a new ExpressionBuilder for the given expression and context.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `MethodExpression`
  `createMethodExpression(Class<?> expectedReturnType, Class<?>[] expectedParamTypes)`
  Creates a MethodExpression from the parsed expression.
  `static org.apache.el.parser.Node`
  `createNode(String expr)`
  Creates a parsed AST node for the given expression string.
  `ValueExpression`
  `createValueExpression(Class<?> expectedType)`
  Creates a ValueExpression from the parsed expression.
  `void`
  `visit(org.apache.el.parser.Node node)`
  Visits the given node.

  ### Methods inherited from class Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Constructor Details

  - ### ExpressionBuilder

    public ExpressionBuilder(String expression, ELContext ctx) throws ELException
    Creates a new ExpressionBuilder for the given expression and context.
    Parameters:
      `expression` - the EL expression string
      `ctx` - the EL context
    Throws:
      `ELException` - if the expression is invalid

- ## Method Details

  - ### createNode

    public static org.apache.el.parser.Node createNode(String expr) throws ELException
    Creates a parsed AST node for the given expression string.
    Parameters:
      `expr` - the expression string to parse
    Returns:
      the parsed AST node
    Throws:
      `ELException` - if parsing fails

  - ### visit

    public void visit(org.apache.el.parser.Node node) throws ELException
    Description copied from interface: `org.apache.el.parser.NodeVisitor`
    Visits the given node.
    Specified by:
      `visit` in interface `org.apache.el.parser.NodeVisitor`
    Parameters:
      `node` - the node to visit
    Throws:
      `ELException`

  - ### createValueExpression

    public ValueExpression createValueExpression(Class<?> expectedType) throws ELException
    Creates a ValueExpression from the parsed expression.
    Parameters:
      `expectedType` - the expected type of the expression result
    Returns:
      the value expression
    Throws:
      `ELException` - if expression building fails

  - ### createMethodExpression

    public MethodExpression createMethodExpression(Class<?> expectedReturnType, Class<?>[] expectedParamTypes) throws ELException
    Creates a MethodExpression from the parsed expression.
    Parameters:
      `expectedReturnType` - the expected return type
      `expectedParamTypes` - the expected parameter types
    Returns:
      the method expression
    Throws:
      `ELException` - if expression building fails