// Path: src/src/com/orm/androrm/statement/InStatement.java
// public class InStatement extends Statement {
// 
// 	private List<Object> mValues;
// 	
// 	public InStatement(String key, List<Object> values) {
// 		mKey = key;
// 		mValues = values;
// 	}
// 	
// 	private String getList() {
// 		return StringUtils.join(mValues, "','");
// 	}
// 	
// 	@Override
// 	public String toString() {
// 		return mKey + " IN ('" + getList() + "')";
// 	}
// 	
// }
// 
// Path: src/src/com/orm/androrm/statement/Statement.java
// public class Statement {
// 	
// 	/**
// 	 * Key of the statement.
// 	 */
// 	protected String mKey;
// 	/**
// 	 * Key of the statement.
// 	 */
// 	protected String mOperator;
// 	/**
// 	 * Value of the statement.
// 	 */
// 	protected String mValue;
// 	
// 	/**
// 	 * Empty constructor.
// 	 */
// 	public Statement() {}
// 	
// 	public Statement(String key, int value) {
// 		mKey = key;
// 		mOperator = "=";
// 		mValue = String.valueOf(value);
// 	}
// 
// 	public Statement(String key, String operator, int value) {
// 		mKey = key;
// 		mOperator = operator;
// 		mValue = String.valueOf(value);
// 	}
// 	
// 	/**
// 	 * This constructor sets the key and value field of this 
// 	 * statement.
// 	 * 
// 	 * @param key Database column.
// 	 * @param value Expected value of this column.
// 	 */
// 	public Statement(String key, String value) {
// 		mKey = key;
// 		mOperator = "=";
// 		mValue = value;
// 	}
// 
// 	public Statement(String key, String operator, String value) {
// 		mKey = key;
// 		mOperator = operator;
// 		mValue = value;
// 	}
// 	
// 	/**
// 	 * Get all keys that are used in this statement.
// 	 * 
// 	 * @return All keys i.e. the affected database columns.
// 	 */
// 	public Set<String> getKeys() {
// 		Set<String> keys = new HashSet<String>();
// 		keys.add(mKey);
// 		
// 		return keys;
// 	}
// 	
// 	public void setKey(String key) {
// 		mKey = key;
// 	}
// 	
// 	@Override
// 	public String toString() {
// 		return mKey + " " + mOperator + " '" + mValue + "'";
// 	}
// }


import java.util.ArrayList;
import java.util.List;
import com.orm.androrm.statement.InStatement;
import com.orm.androrm.statement.LikeStatement;
import com.orm.androrm.statement.Statement;
	 * See {@link Filter#is(String, String)}.
	 */
	public Filter is(String key, Integer value) {
		return is(key, String.valueOf(value));
	}

	public Filter is(String key, String operator, Integer value) {
		return is(key, operator, String.valueOf(value));
	}
	
	/**
	 * See {@link Filter#is(String, String)}.
	 */
	public Filter is(String key, Model value) {
		return is(key, value.getId());
	}

	public Filter is(String key, String operator, Model value) {
		return is(key, operator, value.getId());
	}
	
	/**
	 * Use this function, if you want to express, that the value
	 * of the field should be <b>exactly</b> the given value. 
	 * 
	 * @param key	Chain leading to the field.
	 * @param value	Desired value of the field.
	 * @return <code>this</code> for chaining.
	 */
	public Filter is(String key, String value) {
// Path: src/src/com/orm/androrm/statement/InStatement.java
// public class InStatement extends Statement {
// 
// 	private List<Object> mValues;
// 	
// 	public InStatement(String key, List<Object> values) {
// 		mKey = key;
// 		mValues = values;
// 	}
// 	
// 	private String getList() {
// 		return StringUtils.join(mValues, "','");
// 	}
// 	
// 	@Override
// 	public String toString() {
// 		return mKey + " IN ('" + getList() + "')";
// 	}
// 	
// }
// 
// Path: src/src/com/orm/androrm/statement/Statement.java
// public class Statement {
// 	
// 	/**
// 	 * Key of the statement.
// 	 */
// 	protected String mKey;
// 	/**
// 	 * Key of the statement.
// 	 */
// 	protected String mOperator;
// 	/**
// 	 * Value of the statement.
// 	 */
// 	protected String mValue;
// 	
// 	/**
// 	 * Empty constructor.
// 	 */
// 	public Statement() {}
// 	
// 	public Statement(String key, int value) {
// 		mKey = key;
// 		mOperator = "=";
// 		mValue = String.valueOf(value);
// 	}
// 
// 	public Statement(String key, String operator, int value) {
// 		mKey = key;
// 		mOperator = operator;
// 		mValue = String.valueOf(value);
// 	}
// 	
// 	/**
// 	 * This constructor sets the key and value field of this 
// 	 * statement.
// 	 * 
// 	 * @param key Database column.
// 	 * @param value Expected value of this column.
// 	 */
// 	public Statement(String key, String value) {
// 		mKey = key;
// 		mOperator = "=";
// 		mValue = value;
// 	}
// 
// 	public Statement(String key, String operator, String value) {
// 		mKey = key;
// 		mOperator = operator;
// 		mValue = value;
// 	}
// 	
// 	/**
// 	 * Get all keys that are used in this statement.
// 	 * 
// 	 * @return All keys i.e. the affected database columns.
// 	 */
// 	public Set<String> getKeys() {
// 		Set<String> keys = new HashSet<String>();
// 		keys.add(mKey);
// 		
// 		return keys;
// 	}
// 	
// 	public void setKey(String key) {
// 		mKey = key;
// 	}
// 	
// 	@Override
// 	public String toString() {
// 		return mKey + " " + mOperator + " '" + mValue + "'";
// 	}
// }


// Path: src/src/com/orm/androrm/Filter.java
import java.util.ArrayList;
import java.util.List;
import com.orm.androrm.statement.InStatement;
import com.orm.androrm.statement.LikeStatement;
import com.orm.androrm.statement.Statement;

	 * See {@link Filter#is(String, String)}.
	 */
	public Filter is(String key, Integer value) {
		return is(key, String.valueOf(value));
	}

	public Filter is(String key, String operator, Integer value) {
		return is(key, operator, String.valueOf(value));
	}
	
	/**
	 * See {@link Filter#is(String, String)}.
	 */
	public Filter is(String key, Model value) {
		return is(key, value.getId());
	}

	public Filter is(String key, String operator, Model value) {
		return is(key, operator, value.getId());
	}
	
	/**
	 * Use this function, if you want to express, that the value
	 * of the field should be <b>exactly</b> the given value. 
	 * 
	 * @param key	Chain leading to the field.
	 * @param value	Desired value of the field.
	 * @return <code>this</code> for chaining.
	 */
	public Filter is(String key, String value) {
		mRules.add(new Rule(key, new Statement(getFieldName(key), value)));