⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 exvalue.java

📁 ZK 基础介绍 功能操作 模块 结合数据库操作
💻 JAVA
字号:
/* ExValue.java{{IS_NOTE	Purpose:			Description:			History:		Fri Aug 31 10:19:38     2007, Created by tomyeh}}IS_NOTECopyright (C) 2007 Potix Corporation. All Rights Reserved.{{IS_RIGHT	This program is distributed under GPL Version 2.0 in the hope that	it will be useful, but WITHOUT ANY WARRANTY.}}IS_RIGHT*/package org.zkoss.zk.xel;import org.zkoss.lang.Classes;import org.zkoss.xel.Expression;import org.zkoss.xel.Expressions;import org.zkoss.xel.XelException;import org.zkoss.lang.Objects;import org.zkoss.zk.ui.Page;import org.zkoss.zk.ui.Component;/** * A string value that might carries an expression. * It is serializable and the expression is parsed by demand. * * @author tomyeh * @since 3.0.0 */public class ExValue implements java.io.Serializable {	private String _value;	private Class _expected;	/** Coerced value. Used only if _expr is DUMMY_EXPRESSION. */	private transient Object _coercedVal = Objects.UNKNOWN;	private transient Expression _expr;	/** Constructor.	 * @param value the value. It can be null.	 */	public ExValue(String value, Class expectedType) {		if (expectedType == null)			throw new IllegalArgumentException();		_value = value;		_expected = expectedType;	}	/** Tests whether it is an expression.	 * Note: it is a wild guess. In other words, it returns false	 * only if 100% not an expression.	 */	public boolean isExpression() {		return _expr == null ? _value != null && _value.indexOf("${") >= 0:			_expr != Expressions.DUMMY_EXPRESSION;	}	/** Returns the raw value.	 */	public final String getRawValue() {		return _value;	}	/** Sets the raw value.	 * @param value the value. It can be null.	 */	public void setRawValue(String value) {		if (!Objects.equals(value, _value)) {			_value = value;			_expr = null;			_coercedVal = Objects.UNKNOWN;		}	}	/** Returns the expected type.	 */	public final Class getExpectedType() {		return _expected;	}	/** Sets the expected type.	 */	public final void setExpectedType(Class expectedType) {		if (expectedType == null)			throw new IllegalArgumentException();		if (_expected != expectedType) {			_expected = expectedType;			if (_expr != Expressions.DUMMY_EXPRESSION) _expr = null; //re-parse			_coercedVal = Objects.UNKNOWN;		}	}	/** Returns the value after evaluation.	 */	public Object getValue(Evaluator eval, Page page)	throws XelException {		if (_expr == null) init(eval);		return _expr == Expressions.DUMMY_EXPRESSION ?			coerce(): eval.evaluate(page, _expr);	}	/** Returns the value after evaluation.	 */	public Object getValue(Evaluator eval, Component comp)	throws XelException {		if (_expr == null) init(eval);		return _expr == Expressions.DUMMY_EXPRESSION ?			coerce(): eval.evaluate(comp, _expr);	}	private Object coerce() {		if (_coercedVal == Objects.UNKNOWN)			_coercedVal = Classes.coerce(_expected, _value);		return _coercedVal;	}	private void init(Evaluator eval)	throws XelException {		if (_value != null && _value.indexOf("${") >= 0) {			_expr = eval.parseExpression(_value, _expected);		} else {			_expr = Expressions.DUMMY_EXPRESSION; //to denote not-an-expr		}	}	private synchronized void readObject(java.io.ObjectInputStream s)	throws java.io.IOException, ClassNotFoundException {		s.defaultReadObject();		_coercedVal = Objects.UNKNOWN;	}	public String toString() {		return _value;	}	public int hashCode() {		return Objects.hashCode(_value);	}	public boolean equals(Object o) {		if (o instanceof ExValue) {			final ExValue val = (ExValue)o;			return Objects.equals(val._value, _value)				&& Objects.equals(val._expected, _expected);		}		return false;	}}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -