/* ExpressionX.java Purpose: Description: History: Jul 29, 2011 9:23:14 AM, Created by henri Copyright (C) 2011 Potix Corporation. All Rights Reserved. */ package org.zkoss.xel; /** * An extension of {@link Expression} to have more control to handle Expression Language EL 2.2 specs. * * <p>With {@link ExpressionX}, you are allow to set value into property resolved by this expression.</p> * <p>Notice it is available only <a href="http://code.google.com/p/zel/">ZEL 2.2</a> * is used. Please refer to {@link Expressions#newExpressionFactory} for more information. * @author henri * @since 6.0.0 */ public interface ExpressionX extends Expression { /** Returns whether this is a read only (cannot setValue) expression. * @param ctx the evaluation context * @return whether this is a read only (cannot setValue) expression. */ public boolean isReadOnly(XelContext ctx) throws XelException; /** Set values into the property resolved by this expression. * @param ctx the evaluation context * @param value the value to be set into the property resolved by this expression */ public void setValue(XelContext ctx, Object value) throws XelException; /** Returns the expression in String form. * * @return the expression in String form. */ public String getExpressionString(); /** * Returns the result type of this expression. * * @param xelc the evaluation context * @return the result type of this expression. */ public Class getType(XelContext xelc); /** * Returns the target bean and field name of this expression. * @param xelc the evaluation context * @return the target bean and field name of this expression. */ public ValueReference getValueReference(XelContext xelc); }