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

📄 expression.java

📁 用Java实现的23个常用设计模式源代码
💻 JAVA
字号:
//$Id: Expression.java,v 1.6.2.8 2003/10/25 07:43:52 oneovthafew Exp $package net.sf.hibernate.expression;import java.util.Collection;import java.util.Iterator;import java.util.Map;import net.sf.hibernate.type.Type;import net.sf.hibernate.util.ArrayHelper;/** * The <tt>expression</tt> package may be used by applications as a framework for building  * new kinds of <tt>Criterion</tt>. However, it is intended that most applications will  * simply use the built-in criterion types via the static factory methods of this class. *  * @see net.sf.hibernate.Criteria * @author Gavin King */public final class Expression {		private Expression() {		//cannot be instantiated	}		/**	 * Apply an "equal" constraint to the named property	 * @param propertyName	 * @param value	 * @return Criterion	 */	public static SimpleExpression eq(String propertyName, Object value) {		return new EqExpression(propertyName, value);	}	/**	 * Apply a "like" constraint to the named property	 * @param propertyName	 * @param value	 * @return Criterion	 */	public static SimpleExpression like(String propertyName, Object value) {		return new LikeExpression(propertyName, value);	}	/**	 * Apply a "like" constraint to the named property	 * @param propertyName	 * @param value	 * @return Criterion	 */	public static SimpleExpression like(String propertyName, String value, MatchMode matchMode) {		return new LikeExpression(propertyName, value, matchMode);	}	/**	 * A case-insensitive "like", similar to Postgres <tt>ilike</tt>	 * operator	 * 	 * @param propertyName	 * @param value	 * @return Criterion	 */	public static Criterion ilike(String propertyName, String value, MatchMode matchMode) {		return new IlikeExpression(propertyName, value, matchMode);	}	/**	 * A case-insensitive "like", similar to Postgres <tt>ilike</tt>	 * operator	 * 	 * @param propertyName	 * @param value	 * @return Criterion	 */	public static Criterion ilike(String propertyName, Object value) {		return new IlikeExpression(propertyName, value);	}	/**	 * Apply a "greater than" constraint to the named property	 * @param propertyName	 * @param value	 * @return Criterion	 */	public static SimpleExpression gt(String propertyName, Object value) {		return new GtExpression(propertyName, value);	}	/**	 * Apply a "less than" constraint to the named property	 * @param propertyName	 * @param value	 * @return Criterion	 */	public static SimpleExpression lt(String propertyName, Object value) {		return new LtExpression(propertyName, value);	}	/**	 * Apply a "less than or equal" constraint to the named property	 * @param propertyName	 * @param value	 * @return Criterion	 */	public static SimpleExpression le(String propertyName, Object value) {		return new LeExpression(propertyName, value);	}	/**	 * Apply a "greater than or equal" constraint to the named property	 * @param propertyName	 * @param value	 * @return Criterion	 */	public static SimpleExpression ge(String propertyName, Object value) {		return new GeExpression(propertyName, value);	}	/**	 * Apply a "between" constraint to the named property	 * @param propertyName	 * @param lo value	 * @param hi value	 * @return Criterion	 */	public static Criterion between(String propertyName, Object lo, Object hi) {		return new BetweenExpression(propertyName, lo, hi);	}	/**	 * Apply an "in" constraint to the named property	 * @param propertyName	 * @param values	 * @return Criterion	 */	public static Criterion in(String propertyName, Object[] values) {		return new InExpression(propertyName, values);	}	/**	 * Apply an "in" constraint to the named property	 * @param propertyName	 * @param values	 * @return Criterion	 */	public static Criterion in(String propertyName, Collection values) {		return new InExpression( propertyName, values.toArray() );	}	/**	 * Apply an "is null" constraint to the named property	 * @return Criterion	 */	public static Criterion isNull(String propertyName) {		return new NullExpression(propertyName);	}	/**	 * Apply an "equal" constraint to two properties	 */	public static Criterion eqProperty(String propertyName, String otherPropertyName) {		return new EqPropertyExpression(propertyName, otherPropertyName);	}	/**	 * Apply a "less than" constraint to two properties	 */	public static Criterion ltProperty(String propertyName, String otherPropertyName) {		return new LtPropertyExpression(propertyName, otherPropertyName);	}	/**	 * Apply a "less than or equal" constraint to two properties	 */	public static Criterion leProperty(String propertyName, String otherPropertyName) {		return new LePropertyExpression(propertyName, otherPropertyName);	}	/**	 * Apply an "is not null" constraint to the named property	 * @return Criterion	 */	public static Criterion isNotNull(String propertyName) {		return new NotNullExpression(propertyName);	}	/**	 * Return the conjuction of two expressions	 * 	 * @param lhs	 * @param rhs	 * @return Criterion	 */	public static Criterion and(Criterion lhs, Criterion rhs) {		return new AndExpression(lhs, rhs);	}	/**	 * Return the disjuction of two expressions	 * 	 * @param lhs	 * @param rhs	 * @return Criterion	 */	public static Criterion or(Criterion lhs, Criterion rhs) {		return new OrExpression(lhs, rhs);	}	/**	 * Return the negation of an expression	 * 	 * @param expression	 * @return Criterion	 */	public static Criterion not(Criterion expression) {		return new NotExpression(expression);	}	/**	 * Apply a constraint expressed in SQL, with the given JDBC	 * parameters. Any occurrences of <tt>{alias}</tt> will be 	 * replaced by the table alias.	 * 	 * @param sql	 * @param values	 * @param types	 * @return Criterion	 */	public static Criterion sql(String sql, Object[] values, Type[] types) {		return new SQLCriterion(sql, values, types);	}	/**	 * Apply a constraint expressed in SQL, with the given JDBC	 * parameter. Any occurrences of <tt>{alias}</tt> will be replaced 	 * by the table alias.	 * 	 * @param sql	 * @param value	 * @param type	 * @return Criterion	 */	public static Criterion sql(String sql, Object value, Type type) {		return new SQLCriterion(sql, new Object[] { value }, new Type[] { type } );	}	/**	 * Apply a constraint expressed in SQL. Any occurrences of <tt>{alias}</tt>	 * will be replaced by the table alias.	 * 	 * @param sql	 * @return Criterion	 */	public static Criterion sql(String sql) {		return new SQLCriterion(sql, ArrayHelper.EMPTY_OBJECT_ARRAY, ArrayHelper.EMPTY_TYPE_ARRAY);	}		/**	 * Group expressions together in a single conjunction (A and B and C...)	 * 	 * @return Conjunction	 */	public static Conjunction conjunction() {		return new Conjunction();	}		/**	 * Group expressions together in a single disjunction (A or B or C...)	 * 	 * @return Conjunction	 */	public static Disjunction disjunction() {		return new Disjunction();	}		/**	 * Apply an "equals" constraint to each property in the	 * key set of a <tt>Map</tt>	 * 	 * @param propertyNameValues a map from property names to values	 * @return Criterion	 */	public static Criterion allEq(Map propertyNameValues) {		Conjunction conj = conjunction();		Iterator iter = propertyNameValues.entrySet().iterator();		while ( iter.hasNext() ) {			Map.Entry me = (Map.Entry) iter.next();			conj.add( eq( (String) me.getKey(), me.getValue() ) );		}		return conj;	}		}

⌨️ 快捷键说明

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