CriteriaValue.java
package com.tradecloud.repository.base.impl;
import java.util.Collection;
/**
*
*/
public class CriteriaValue {
// Slight hack. We use a null value to know whether to add the CriteriaValue to the search query, but not all need a value
private final static Object MARKER = new Object();
private final CriteriaOperation operation;
private final String key;
private final Object value;
public CriteriaValue(CriteriaOperation operation, String key, Object value) {
this.operation = operation;
this.key = key;
this.value = value;
}
public CriteriaOperation getCriteriaOperation() {
return operation;
}
public String getKey() {
return key;
}
public Object getValue() {
return value;
}
/**
* Match the Hibernate Restrictions class, is case we ever want to swap back.
*
* @param key
* @param values
* @return
*/
public static CriteriaValue in(String key, Object values[]) {
return new CriteriaValue(CriteriaOperation.IN, key, values);
}
public static CriteriaValue in(String key, Collection<? extends Object> values) {
return in(key, values.toArray());
}
public static CriteriaValue notIn(String key, Object values[]) {
return new CriteriaValue(CriteriaOperation.NOT_IN, key, values);
}
public static CriteriaValue notIn(String key, Collection<? extends Object> values) {
return notIn(key, values.toArray());
}
public static CriteriaValue eq(String key, Object value) {
return new CriteriaValue(CriteriaOperation.EQUALS, key, value);
}
public static CriteriaValue eqIgnoreCase(String key, String value) {
return new CriteriaValue(CriteriaOperation.EQUALS_IGNORE_CASE, key, value);
}
public static CriteriaValue like(String key, Object value) {
return new CriteriaValue(CriteriaOperation.LIKE, key, value);
}
public static CriteriaValue likeAny(String key, Object value) {
return new CriteriaValue(CriteriaOperation.LIKE_ANY, key, value);
}
public static CriteriaValue gt(String key, Object value) {
return new CriteriaValue(CriteriaOperation.GREATER_THAN, key, value);
}
public static CriteriaValue lt(String key, Object value) {
return new CriteriaValue(CriteriaOperation.LESS_THAN, key, value);
}
public static CriteriaValue isNull(String key) {
return new CriteriaValue(CriteriaOperation.NULL, key, MARKER);
}
public static CriteriaValue isNotNull(String key) {
return new CriteriaValue(CriteriaOperation.NOT_NULL, key, MARKER);
}
public static CriteriaValue between(String key, Object values[]) {
return new CriteriaValue(CriteriaOperation.IN, key, values);
}
public static CriteriaValue notInKey(String key, Object values[]) {
return new CriteriaValue(CriteriaOperation.NOT_IN_KEY, key, values);
}
public static CriteriaValue paramsOnly(String key, Object value) {
return new CriteriaValue(CriteriaOperation.PARAMS_ONLY, key, value);
}
}