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

📄 criteria.java

📁 JDBF是一个实现o/r mapping 的软件
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
	 * @param value
	 */
    public void addSelectLessThan(String attrName, Object value){
        String columnName = getColumnTableName(attrName);
		addCondition(columnName, SqlInterface.LESS_THAN, value);
    }

	/**
	 * Add less condition (<) given propertyName and int value.
	 *  
	 * @param attrName
	 * @param value
	 */
    public void addSelectLessThan(String attrName, int value){ 
        String columnName = getColumnTableName(attrName);
		addCondition(columnName, SqlInterface.LESS_THAN, value);
    }

	/**
	 * Add less condition (<) given propertyName and long value.
	 *  
	 * @param attrName
	 * @param value
	 */
    public void addSelectLessThan(String attrName, long value){ 
        String columnName = getColumnTableName(attrName);
		addCondition(columnName, SqlInterface.LESS_THAN, value);
    }

	/**
	 * Add less condition (<) given propertyName and long value.
	 *  
	 * @param attrName
	 * @param value
	 */
	public void addSelectLessThan(String attrName, double value){ 
        String columnName = getColumnTableName(attrName);
		addCondition(columnName, SqlInterface.LESS_THAN, value);
    }

	/**
	 * Add less/equal condition (<=) given propertyName and value.
	 *  
	 * @param attrName
	 * @param value
	 */
    public void addSelectLessOrEqual(String attrName, Object value){
        String columnName = getColumnTableName(attrName);
		addCondition(columnName, SqlInterface.LESS_OR_EQUAL, value);
    }

	/**
	 * Add less/equal condition (<=) given propertyName and int value.
	 *  
	 * @param attrName
	 * @param value
	 */
	public void addSelectLessOrEqual(String attrName, int value){
        String columnName = getColumnTableName(attrName);
		addCondition(columnName, SqlInterface.LESS_OR_EQUAL, value);
    }
  
	/**
	 * Add less/equal condition (<=) given propertyName and long value.
	 *  
	 * @param attrName
	 * @param value
	 */
	public void addSelectLessOrEqual(String attrName, long value){
        String columnName = getColumnTableName(attrName);
		addCondition(columnName, SqlInterface.LESS_OR_EQUAL, value);
    }

	/**
	 * Add less/equal condition (<=) given propertyName and double value.
	 *  
	 * @param attrName
	 * @param value
	 */ 
	public void addSelectLessOrEqual(String attrName, double value){
        String columnName = getColumnTableName(attrName);
		addCondition(columnName, SqlInterface.LESS_OR_EQUAL, value);
    }

	/**
	 * Add greater than condition (>) given propertyName and value.
	 *  
	 * @param attrName
	 * @param value
	 */
	public void addSelectGreaterThan(String attrName, Object value){
        String columnName = getColumnTableName(attrName);
		addCondition(columnName, SqlInterface.GREATER_THAN, value);
    }

	/**
	 * Add greater than condition (>) given propertyName and int value.
	 *  
	 * @param attrName
	 * @param value
	 */
	public void addSelectGreaterThan(String attrName, int value){
        String columnName = getColumnTableName(attrName);
		addCondition(columnName, SqlInterface.GREATER_THAN, value);
    }

	/**
	 * Add greater than condition (>) given propertyName and long value.
	 *  
	 * @param attrName
	 * @param value
	 */
	public void addSelectGreaterThan(String attrName, long value){
        String columnName = getColumnTableName(attrName);
		addCondition(columnName, SqlInterface.GREATER_THAN, value);
    }

	/**
	 * Add greater than condition (>) given propertyName and double value.
	 *  
	 * @param attrName
	 * @param value
	 */
	public void addSelectGreaterThan(String attrName, double value){
        String columnName = getColumnTableName(attrName);
		addCondition(columnName, SqlInterface.GREATER_THAN, value);
    }
 
	/**
	 * Add greater than condition (>=) given propertyName and value.
	 *  
	 * @param attrName
	 * @param value
	 */
	public void addSelectGreaterOrEqual(String attrName, Object value){
        String columnName = getColumnTableName(attrName);
		addCondition(columnName, SqlInterface.GREATER_OR_EQUAL, value);
    }

	/**
	 * Add greater than condition (>=) given propertyName and int value.
	 *  
	 * @param attrName
	 * @param value
	 */
	public void addSelectGreaterOrEqual(String attrName, int value){
        String columnName = getColumnTableName(attrName);
		addCondition(columnName, SqlInterface.GREATER_OR_EQUAL, value);
    }

	/**
	 * Add greater than condition (>=) given propertyName and long value.
	 *  
	 * @param attrName
	 * @param value
	 */
	public void addSelectGreaterOrEqual(String attrName, long value){
        String columnName = getColumnTableName(attrName);
		addCondition(columnName, SqlInterface.GREATER_OR_EQUAL, value);
    }

	/**
	 * Add greater than condition (>=) given propertyName and double value.
	 *  
	 * @param attrName
	 * @param value
	 */
	public void addSelectGreaterOrEqual(String attrName, double value){
        String columnName = getColumnTableName(attrName);
		addCondition(columnName, SqlInterface.GREATER_OR_EQUAL, value);
    }

	/**
	 * Add not equal condition (<>) given propertyName and value.
	 *  
	 * @param attrName
	 * @param value
	 */
	public void addSelectNotEqual(String attrName, Object value){
        String columnName = getColumnTableName(attrName);
		addCondition(columnName, SqlInterface.NOT_EQUAL, value);
    }

	/**
	 * Add not equal condition (<>) given propertyName and int value.
	 *  
	 * @param attrName
	 * @param value
	 */
	public void addSelectNotEqual(String attrName, int value){
        String columnName = getColumnTableName(attrName);
		addCondition(columnName, SqlInterface.NOT_EQUAL, value);
    }

	/**
	 * Add not equal condition (<>) given propertyName and long value.
	 *  
	 * @param attrName
	 * @param value
	 */
	public void addSelectNotEqual(String attrName, long value){
        String columnName = getColumnTableName(attrName);
		addCondition(columnName, SqlInterface.NOT_EQUAL, value);
    }

	/**
	 * Add not equal condition (<>) given propertyName and double value.
	 *  
	 * @param attrName
	 * @param value
	 */
	public void addSelectNotEqual(String attrName, double value){
        String columnName = getColumnTableName(attrName);
		addCondition(columnName, SqlInterface.NOT_EQUAL, value);
    }

	/**
	 * Add like condition given propertyName and value.
	 * 
	 * You can add % character in value parameter.
	 *  
	 * @param attrName
	 * @param value
	 */
	public void addSelectLike(String attrName, String value){
        String columnName = getColumnTableName(attrName);
		addCondition(columnName, SqlInterface.LIKE, value);
    }

	/**
	 * Add or condition given another criteria. 
	 * 
	 * Criteria parameter is enclosed from open 
	 * and closed parenthesis.
	 *
	 * @param criteria condition to append to OR clause
	 * 
	 */
	public void addOrCriteria(Criteria criteria){
        
		this.criteria.append(" ").append(SqlInterface.OR)
				     .append("(").append(criteria.getCriteria())
				     .append(")");
    }
    
	/**
	 * Add and condition given another criteria.
	 *
	 * @param criteria condition to append to OR clause
	 * 
	 */
	public void addAndCriteria(Criteria criteria){
        
			this.criteria.append(" ").append(SqlInterface.AND)
			             .append(" ").append(criteria.getCriteria())
			             .append(" ");
		}

	/**
	 * Add order by condition given attrName to order and isAscending 
	 * to specify the ordering. 
	 *
	 * @param attrName
	 * @param isAscending if true the ordering is ascending,false is 
	 * descending
	 * 
	 */
    public void addOrderBy(String attrName, boolean isAscending){
		String columnName = getColumnTableName(attrName);
		orderConditions.add(new OrderCriteria(attrName, isAscending));
    }

	/**
	 * Add order by condition given attrName in ascending ordering.
	 *
	 * @param attrName
	 * 
	 */
    public void addOrderBy(String attrName){
		String columnName = getColumnTableName(attrName);
		addOrderBy(attrName, true);
    }

    
	/**
     * Builds a string for the 'ORDER BY' clause
     *
     * @param items to order
     * @return an SQL string for the 'ORDER BY' clause
     * @exception MappingException if an error occurs
     */
    public StringBuffer getOrderByClause(ArrayList items) throws MappingException{
		if (orderConditions.size() == 0) return null;

		StringBuffer sb = new StringBuffer();
		sb.append(SqlInterface.ORDER_BY);
		for (int i = 0; i < orderConditions.size(); i++) {
			OrderCriteria criteriaC = (OrderCriteria)orderConditions.get(i);
			if (i > 0) sb.append(", ");
				sb.append(criteriaC.asSqlClause(items));			
		}
		return sb;
	
    }

    
    /**
     * Return a Stirng representation of Criteria object
     * 
     * @return String
     */
	public String toString(){
		StringBuffer sb = new StringBuffer(); 
	    sb.append(className)
		  .append("[").append("\n")
		  .append("criteria=").append(criteria).append("\n")
		  .append("order=").append(orderConditions).append("\n")
		  .append("]");	
		
		return sb.toString();
    }

	/**
	 * 
	 * <code>Criteria</code> represents order by criteria
	 * 
	 */
    static class OrderCriteria {
		/**
		 * column name to order
		 */
		private String name;
		
		/**
		 * Type of ordering, true is ascending, 
		 * false is descending
		 */
		private boolean isAscending;

		/**
		 * Hascode value
		 */
		private int hashCode = -1;

		/**
		 * Creates order by criteria given column name to order
		 * and ordering.
		 * 
		 * @param name
		 * @param isAscending true is ascending,
		 * false is descending
		 */
		OrderCriteria(String name, boolean isAscending) {
			this.name = name;
			this.isAscending = isAscending;
		}

		/**
		 * Return hashcode of this class
		 * 
		 * @return int
		 */
		public int hashCode(){
			if (hashCode == -1) {
			hashCode = name.hashCode();
			if (isAscending)
				hashCode++;
			}
			return hashCode;
		}

		/**
		 * Return true is current object is equal to obj
		 * false otherwise
		 * 
		 * @param obj
		 * @return boolean
		 */
		public boolean equals(Object obj){
			if (obj == null || !(obj instanceof OrderCriteria))
				return false;

			OrderCriteria criteria = (OrderCriteria)obj;
				return isAscending == criteria.isAscending
					   && name.equals(criteria.name);
		}

		/**
		 * Return a order by in String representation.
		 * 
		 * @param items
		 * @return String
		 * @throws MappingException
		 */
		public String asSqlClause(ArrayList items) throws MappingException{
			
			StringBuffer sb = new StringBuffer();					
			for(int i = 0; i < items.size(); i++){
				ItemDescriptor item = (ItemDescriptor)items.get(i);
				if(item.getPropertyName().equals(name)){
					// Fixed Bug: #692905 (Giovanni Martone)
					// old line: sb.append(item.getPropertyName());
					sb.append(item.getColumnTableName());
					if (isAscending) {					
						sb.append(" " + SqlInterface.ASC);
					}
					else{
						sb.append(" " + SqlInterface.DESC);
					}
				}
			}
			return sb.toString();			
		}
	}
}

/*
  $Log: Criteria.java,v $
  Revision 1.8  2004/05/31 22:31:00  gmartone
  changed for task 99533 (Composite Primary Key)

  Revision 1.7  2004/05/20 22:37:09  gmartone
  Changed for task 99073 (Coverage Javadocs)

  Revision 1.6  2004/05/18 17:58:10  gmartone
  added addAndCriteria method and added blank before and after OR and AND keyword, cosmetics changes


*/

⌨️ 快捷键说明

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