public class Condition<T extends ConditionKey,V extends JLuceneIndex> extends Object implements Serializable, Filter
Title: JDS系统管理系统
Description: 用于封装对引擎内部数据进行查询的条件以及对结果集的排序,并 在引擎内部将其作为SQL查询WHERE子句的一部分。也就是说它最终 将被转换成SQL查询条件,例如:
Condition c1 = new Condition(ConditionKey.ACTIVITYINST_STATE, ActivityInst.STATE_RUNNING, Condition.EQUALS);
调用c1.makeConditionString()将返回查询条件
BPM_ACTIVITYINSTANCE.ACTIVITYINST_STATE = 'running'
如果继续进行如下调用:
java.sql.Date date = new java.sql.Date(System.currentTimeMillis());
Condition c2 = new Condition(ConditionKey.ACTIVITYINST_ARRIVEDTIME, date , Condition.LESS_THAN);
c1.addCondition(c2, Condition.JOIN_AND);
Condition c3 = new Condition(ConditionKey.ACTIVITYINST_STARTTIME, date , Condition.GREATER_THAN);
c1.addCondition(c3, Condition.JOIN_OR);
此时调用c1.makeConditionString()将返回查询条件
BPM_ACTIVITYINSTANCE.ACTIVITYINST_STATE = 'running' AND (BPM_ACTIVITYINSTANCE.ARRIVEDTIME < '2003-12-25' OR BPM_ACTIVITYINSTANCE.STARTTIME > '2003-12-25')
如果需要对结果集进行排序,可以进行如下操作:
c1.addOrderBy(new Order(ConditionKey.ACTIVITYINST_STATE, true));
c1.addOrderBy(new Order(ConditionKey.ACTIVITYINST_ARRIVEDTIME, false));
此时调用c1.makeConditionString()将返回查询条件
BPM_ACTIVITYINSTANCE.ACTIVITYINST_STATE = 'running' AND (BPM_ACTIVITYINSTANCE.ARRIVEDTIME < '2003-12-25' OR BPM_ACTIVITYINSTANCE.STARTTIME > '2003-12-25') ORDER BY BPM_ACTIVITYINSTANCE.ACTIVITYINST_STATE ASC,BPM_ACTIVITYINSTANCE.ARRIVEDTIME DESC
Copyright: Copyright (c) 2006
Company: www.justdos.net
| 限定符和类型 | 字段和说明 |
|---|---|
protected List<Condition<T,V>> |
childConditionList |
protected List<JoinOperator> |
childJoinTypeList |
protected T |
conditionKey
条件类型包括:活动状态、活动开始时间、结束时间
|
protected Operator |
operator |
protected List<Order<T>> |
orderByList |
Page |
page |
protected Object |
value
条件所需的取值,如果Comparator取值为BETWEEN和INCLUDE,该值为java.util.List对象。
|
| 构造器和说明 |
|---|
Condition() |
Condition(T conditionKey,
Operator operator) |
Condition(T conditionKey,
Operator operator,
Object value) |
Condition(T conditionKey,
V index,
Operator operator)
条件构造函数,该方法主要用于对条件主键进行是否可空的条件操作。
|
Condition(T conditionKey,
V index,
Operator operator,
Object value)
条件构造函数,该方法主要用于对条件主键和某个值进行指定 操作符比较的操作。
|
| 限定符和类型 | 方法和说明 |
|---|---|
void |
addCondition(Condition<T,V> condition,
JoinOperator joinType)
在当前条件中添加一个子条件,将使用joinType中定义的方法连接到主查询上
|
void |
addOrderBy(Order<T> order)
添加一个排序条件,将向Sql语句中添加一个Order By子句
注意:只有最上级的Condition主查询可以添加Order,子查询上是不能添加的 |
String |
extractValue(Object value) |
boolean |
filterObject(Object obj,
String systemCode)
应用应该实现的过滤方法。
|
List<Condition<T,V>> |
getChildConditionList() |
List<JoinOperator> |
getChildJoinTypeList() |
T |
getConditionKey() |
V |
getIndex() |
Operator |
getOperator() |
List<Order<T>> |
getOrderByList() |
Page |
getPage() |
Object |
getValue() |
static void |
main(String[] args) |
String |
makeConditionString()
产生查询Sql,引擎内部使用
|
void |
setChildConditionList(List<Condition<T,V>> childConditionList) |
void |
setChildJoinTypeList(List<JoinOperator> childJoinTypeList) |
void |
setConditionKey(T conditionKey) |
void |
setIndex(V index) |
void |
setOperator(Operator operator) |
void |
setOrderByList(List<Order<T>> orderByList) |
void |
setPage(Page page) |
void |
setValue(Object value) |
protected T extends ConditionKey conditionKey
protected Object value
protected Operator operator
public Page page
protected List<Condition<T extends ConditionKey,V extends JLuceneIndex>> childConditionList
protected List<JoinOperator> childJoinTypeList
protected List<Order<T extends ConditionKey>> orderByList
public Condition()
public Condition(T conditionKey, V index, Operator operator)
conditionKey - 条件主键operator - 条件主键是否可空的操作符public Condition(T conditionKey, V index, Operator operator, Object value)
conditionKey - 条件主键value - 取值operator - 条件主键与取值的比较操作符类型public V getIndex()
public void setIndex(V index)
public Page getPage()
public void setPage(Page page)
public T getConditionKey()
public void setConditionKey(T conditionKey)
public Object getValue()
public void setValue(Object value)
public Operator getOperator()
public void setOperator(Operator operator)
public List<JoinOperator> getChildJoinTypeList()
public void setChildJoinTypeList(List<JoinOperator> childJoinTypeList)
public String makeConditionString()
public void addOrderBy(Order<T> order)
order - 一个Order对象。public void addCondition(Condition<T,V> condition, JoinOperator joinType)
condition - 子查询条件joinType - 连接方法
public boolean filterObject(Object obj, String systemCode)
FilterfilterObject 在接口中 Filterobj - 需要过滤的对象public static void main(String[] args)
Copyright © 2023 onecode. All rights reserved.