Package org.zkoss.bind.sys

## Interface BindEvaluatorX

- All Superinterfaces:
    `Evaluator`, `java.io.Serializable`
  All Known Implementing Classes:
    `BindEvaluatorXImpl`, `BindEvaluatorXImplEx`, `ClientBinderResolver`

      public interface BindEvaluatorX
      extends Evaluator

  An extension of `Evaluator` to have more control to handle Binding via EL.

  With `BindEvaluatorX`, you are allow to parse a Method expression or set value into property resolved by the provided expression.

  Since:
    6.0.0
  Author:
    henrichen

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `java.lang.Class<?>` | `getType​(BindContext ctx, Component comp, ExpressionX expression)` | Returns the result type of the specified expression.
    `java.lang.Object` | `getValue​(BindContext ctx, Component comp, ExpressionX expression)` | Sets the specified value to the property resolved from the specified expression.
    `ValueReference` | `getValueReference​(BindContext ctx, Component comp, ExpressionX expression)` | Returns the result reference of the specified expression.
    `boolean` | `isReadOnly​(BindContext ctx, Component comp, ExpressionX expression)` | Returns whether the specified expression a read only expression.
    `ExpressionX` | `parseExpressionX​(BindContext ctx, java.lang.String expression, java.lang.Class<?> expectedType)` | Prepares the expressionX.
    `void` | `setValue​(BindContext ctx, Component comp, ExpressionX expression, java.lang.Object value)` | Sets the specified value to the property resolved from the specified expression.

    - ### Methods inherited from interface org.zkoss.zk.xel.Evaluator

      `evaluate, evaluate, parseExpression`

- - ### Method Detail

    - #### parseExpressionX

          ExpressionX parseExpressionX​(BindContext ctx,
                                       java.lang.String expression,
                                       java.lang.Class<?> expectedType)
                                throws XelException

      Prepares the expressionX.
      Parameters:
        `expression` - the expression to be prepared for being evaluated later.
        `expectedType` - the expected type of the result of the evaluation
      Throws:
        `XelException`

    - #### setValue

          void setValue​(BindContext ctx,
                        Component comp,
                        ExpressionX expression,
                        java.lang.Object value)
                 throws XelException

      Sets the specified value to the property resolved from the specified expression.
      Parameters:
        `ctx` - the scoped bind context of this operation
        `comp` - the scoped component context of this operation
        `expression` - the expression that will resolve a property
        `value` - the value to be set into the resolved property
      Throws:
        `XelException`

    - #### getValue

          java.lang.Object getValue​(BindContext ctx,
                                    Component comp,
                                    ExpressionX expression)
                             throws XelException

      Sets the specified value to the property resolved from the specified expression.
      Parameters:
        `ctx` - the scoped bind context of this operation
        `comp` - the scoped component context of this operation
        `expression` - the expression that will resolve a property
      Throws:
        `XelException`

    - #### getType

          java.lang.Class<?> getType​(BindContext ctx,
                                     Component comp,
                                     ExpressionX expression)
                              throws XelException

      Returns the result type of the specified expression.
      Parameters:
        `ctx` - BindContext
        `comp` - evaluation context
        `expression` - the expression that will resolve a property
      Throws:
        `XelException`

    - #### getValueReference

          ValueReference getValueReference​(BindContext ctx,
                                           Component comp,
                                           ExpressionX expression)
                                    throws XelException

      Returns the result reference of the specified expression.
      Parameters:
        `ctx` - BindContext
        `comp` - evaluation context
        `expression` - the expression that will resolve a property
      Throws:
        `XelException`

    - #### isReadOnly

          boolean isReadOnly​(BindContext ctx,
                             Component comp,
                             ExpressionX expression)
                      throws XelException

      Returns whether the specified expression a read only expression.
      Parameters:
        `ctx` - BindContext
        `comp` - evaluation context
        `expression` - the expression that will resolve a property
      Returns:
        whether the specified expression a read only expression.
      Throws:
        `XelException`