?? memoryworkflowstore.java
字號:
Expression expression = query.getExpression(); if (expression.isNested()) { return this.checkNestedExpression(entryId, (NestedExpression) expression); } else { return this.checkExpression(entryId, (FieldExpression) expression); } } private boolean queryBasic(Long entryId, WorkflowQuery query) { // the query object is a comparison Object value = query.getValue(); int operator = query.getOperator(); int field = query.getField(); int type = query.getType(); switch (operator) { case WorkflowQuery.EQUALS: return queryEquals(entryId, field, type, value); case WorkflowQuery.NOT_EQUALS: return queryNotEquals(entryId, field, type, value); case WorkflowQuery.GT: return queryGreaterThan(entryId, field, type, value); case WorkflowQuery.LT: return queryLessThan(entryId, field, type, value); } return false; } private boolean queryEquals(Long entryId, int field, int type, Object value) { List steps; if (type == WorkflowQuery.CURRENT) { steps = (List) currentStepsCache.get(entryId); } else { steps = (List) historyStepsCache.get(entryId); } if (steps == null) { return false; } switch (field) { case WorkflowQuery.ACTION: long actionId = DataUtil.getInt((Integer) value); for (Iterator iterator = steps.iterator(); iterator.hasNext();) { SimpleStep step = (SimpleStep) iterator.next(); if (step.getActionId() == actionId) { return true; } } return false; case WorkflowQuery.CALLER: String caller = (String) value; for (Iterator iterator = steps.iterator(); iterator.hasNext();) { SimpleStep step = (SimpleStep) iterator.next(); if (TextUtils.noNull(step.getCaller()).equals(caller)) { return true; } } return false; case WorkflowQuery.FINISH_DATE: Date finishDate = (Date) value; for (Iterator iterator = steps.iterator(); iterator.hasNext();) { SimpleStep step = (SimpleStep) iterator.next(); if (finishDate.equals(step.getFinishDate())) { return true; } } return false; case WorkflowQuery.OWNER: String owner = (String) value; for (Iterator iterator = steps.iterator(); iterator.hasNext();) { SimpleStep step = (SimpleStep) iterator.next(); if (TextUtils.noNull(step.getOwner()).equals(owner)) { return true; } } return false; case WorkflowQuery.START_DATE: Date startDate = (Date) value; for (Iterator iterator = steps.iterator(); iterator.hasNext();) { SimpleStep step = (SimpleStep) iterator.next(); if (startDate.equals(step.getStartDate())) { return true; } } return false; case WorkflowQuery.STEP: int stepId = DataUtil.getInt((Integer) value); for (Iterator iterator = steps.iterator(); iterator.hasNext();) { SimpleStep step = (SimpleStep) iterator.next(); if (stepId == step.getStepId()) { return true; } } return false; case WorkflowQuery.STATUS: String status = (String) value; for (Iterator iterator = steps.iterator(); iterator.hasNext();) { SimpleStep step = (SimpleStep) iterator.next(); if (TextUtils.noNull(step.getStatus()).equals(status)) { return true; } } return false; } return false; } private boolean queryGreaterThan(Long entryId, int field, int type, Object value) { List steps; if (type == WorkflowQuery.CURRENT) { steps = (List) currentStepsCache.get(entryId); } else { steps = (List) historyStepsCache.get(entryId); } switch (field) { case WorkflowQuery.ACTION: long actionId = DataUtil.getLong((Long) value); for (Iterator iterator = steps.iterator(); iterator.hasNext();) { SimpleStep step = (SimpleStep) iterator.next(); if (step.getActionId() > actionId) { return true; } } return false; case WorkflowQuery.CALLER: String caller = (String) value; for (Iterator iterator = steps.iterator(); iterator.hasNext();) { SimpleStep step = (SimpleStep) iterator.next(); if (TextUtils.noNull(step.getCaller()).compareTo(caller) > 0) { return true; } } return false; case WorkflowQuery.FINISH_DATE: Date finishDate = (Date) value; for (Iterator iterator = steps.iterator(); iterator.hasNext();) { SimpleStep step = (SimpleStep) iterator.next(); if (step.getFinishDate().compareTo(finishDate) > 0) { return true; } } return false; case WorkflowQuery.OWNER: String owner = (String) value; for (Iterator iterator = steps.iterator(); iterator.hasNext();) { SimpleStep step = (SimpleStep) iterator.next(); if (TextUtils.noNull(step.getOwner()).compareTo(owner) > 0) { return true; } } return false; case WorkflowQuery.START_DATE: Date startDate = (Date) value; for (Iterator iterator = steps.iterator(); iterator.hasNext();) { SimpleStep step = (SimpleStep) iterator.next(); if (step.getStartDate().compareTo(startDate) > 0) { return true; } } return false; case WorkflowQuery.STEP: int stepId = DataUtil.getInt((Integer) value); for (Iterator iterator = steps.iterator(); iterator.hasNext();) { SimpleStep step = (SimpleStep) iterator.next(); if (step.getStepId() > stepId) { return true; } } return false; case WorkflowQuery.STATUS: String status = (String) value; for (Iterator iterator = steps.iterator(); iterator.hasNext();) { SimpleStep step = (SimpleStep) iterator.next(); if (TextUtils.noNull(step.getStatus()).compareTo(status) > 0) { return true; } } return false; } return false; } private boolean queryLessThan(Long entryId, int field, int type, Object value) { List steps; if (type == WorkflowQuery.CURRENT) { steps = (List) currentStepsCache.get(entryId); } else { steps = (List) historyStepsCache.get(entryId); } switch (field) { case WorkflowQuery.ACTION: long actionId = DataUtil.getLong((Long) value); for (Iterator iterator = steps.iterator(); iterator.hasNext();) { SimpleStep step = (SimpleStep) iterator.next(); if (step.getActionId() < actionId) { return true; } } return false; case WorkflowQuery.CALLER: String caller = (String) value; for (Iterator iterator = steps.iterator(); iterator.hasNext();) { SimpleStep step = (SimpleStep) iterator.next(); if (TextUtils.noNull(step.getCaller()).compareTo(caller) < 0) { return true; } } return false; case WorkflowQuery.FINISH_DATE: Date finishDate = (Date) value; for (Iterator iterator = steps.iterator(); iterator.hasNext();) { SimpleStep step = (SimpleStep) iterator.next(); if (step.getFinishDate().compareTo(finishDate) < 0) { return true; } } return false; case WorkflowQuery.OWNER: String owner = (String) value; for (Iterator iterator = steps.iterator(); iterator.hasNext();) { SimpleStep step = (SimpleStep) iterator.next(); if (TextUtils.noNull(step.getOwner()).compareTo(owner) < 0) { return true; } } return false; case WorkflowQuery.START_DATE: Date startDate = (Date) value; for (Iterator iterator = steps.iterator(); iterator.hasNext();) { SimpleStep step = (SimpleStep) iterator.next(); if (step.getStartDate().compareTo(startDate) < 0) { return true; } } return false; case WorkflowQuery.STEP: int stepId = DataUtil.getInt((Integer) value); for (Iterator iterator = steps.iterator(); iterator.hasNext();) { SimpleStep step = (SimpleStep) iterator.next(); if (step.getStepId() < stepId) { return true; } } return false; case WorkflowQuery.STATUS: String status = (String) value; for (Iterator iterator = steps.iterator(); iterator.hasNext();) { SimpleStep step = (SimpleStep) iterator.next(); if (TextUtils.noNull(step.getStatus()).compareTo(status) < 0) { return true; } } return false; } return false; } private boolean queryNotEquals(Long entryId, int field, int type, Object value) { List steps; if (type == WorkflowQuery.CURRENT) { steps = (List) currentStepsCache.get(entryId); } else { steps = (List) historyStepsCache.get(entryId); } switch (field) { case WorkflowQuery.ACTION: long actionId = DataUtil.getLong((Long) value); for (Iterator iterator = steps.iterator(); iterator.hasNext();) { SimpleStep step = (SimpleStep) iterator.next(); if (step.getActionId() != actionId) { return true; } } return false; case WorkflowQuery.CALLER: String caller = (String) value; for (Iterator iterator = steps.iterator(); iterator.hasNext();) { SimpleStep step = (SimpleStep) iterator.next(); if (!TextUtils.noNull(step.getCaller()).equals(caller)) { return true; } } return false; case WorkflowQuery.FINISH_DATE: Date finishDate = (Date) value; for (Iterator iterator = steps.iterator(); iterator.hasNext();) { SimpleStep step = (SimpleStep) iterator.next(); if (!finishDate.equals(step.getFinishDate())) { return true; } } return false; case WorkflowQuery.OWNER: String owner = (String) value; for (Iterator iterator = steps.iterator(); iterator.hasNext();) { SimpleStep step = (SimpleStep) iterator.next(); if (!TextUtils.noNull(step.getOwner()).equals(owner)) { return true; } } return false; case WorkflowQuery.START_DATE: Date startDate = (Date) value; for (Iterator iterator = steps.iterator(); iterator.hasNext();) { SimpleStep step = (SimpleStep) iterator.next(); if (!startDate.equals(step.getStartDate())) { return true; } } return false; case WorkflowQuery.STEP: int stepId = DataUtil.getInt((Integer) value); for (Iterator iterator = steps.iterator(); iterator.hasNext();) { SimpleStep step = (SimpleStep) iterator.next(); if (stepId != step.getStepId()) { return true; } } return false; case WorkflowQuery.STATUS: String status = (String) value; for (Iterator iterator = steps.iterator(); iterator.hasNext();) { SimpleStep step = (SimpleStep) iterator.next(); if (!TextUtils.noNull(step.getStatus()).equals(status)) { return true; } } return false; } return false; }}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -