001: package org.enhydra.shark.swingclient;
002:
003: import org.enhydra.shark.api.client.wfmc.wapi.WMFilter;
004: import org.enhydra.shark.api.client.wfmc.wapi.WMSessionHandle;
005: import org.enhydra.shark.api.common.ActivityFilterBuilder;
006: import org.enhydra.shark.api.common.AssignmentFilterBuilder;
007: import org.enhydra.shark.api.common.ProcessFilterBuilder;
008: import org.enhydra.shark.api.common.ProcessMgrFilterBuilder;
009: import org.enhydra.shark.api.common.SharkConstants;
010: import org.enhydra.shark.client.utilities.SharkInterfaceWrapper;
011:
012: /**
013: * @author Sasa Bojanic
014: */
015: public class CommonFilterBuilder {
016:
017: public CommonFilterBuilder() {
018: }
019:
020: public WMFilter getManagersForPackage(WMSessionHandle shandle,
021: String pkgId) throws Exception {
022: ProcessMgrFilterBuilder eb = SharkInterfaceWrapper.getShark()
023: .getProcessMgrFilterBuilder();
024: WMFilter f = eb.addPackageIdEquals(shandle, pkgId);
025: f = eb.setOrderByCreatedTime(shandle, f, true);
026: return f;
027: }
028:
029: public WMFilter getEnabledOrDisabledManagersForPackage(
030: WMSessionHandle shandle, String pkgId, boolean enabled)
031: throws Exception {
032: ProcessMgrFilterBuilder eb = SharkInterfaceWrapper.getShark()
033: .getProcessMgrFilterBuilder();
034: WMFilter f = eb.addPackageIdEquals(shandle, pkgId);
035: WMFilter f2 = eb.addIsEnabled(shandle);
036: if (!enabled) {
037: f2 = eb.not(shandle, f2);
038: }
039: f = eb.and(shandle, f, f2);
040: f = eb.setOrderByCreatedTime(shandle, f, true);
041: return f;
042: }
043:
044: public WMFilter getOpenProcesses(WMSessionHandle shandle)
045: throws Exception {
046: ProcessFilterBuilder eb = SharkInterfaceWrapper.getShark()
047: .getProcessFilterBuilder();
048: WMFilter f = eb.addStateStartsWith(shandle,
049: SharkConstants.STATEPREFIX_OPEN);
050: f = eb.setOrderByCreatedTime(shandle, f, false);
051: return f;
052: }
053:
054: public WMFilter getOpenProcessesForPkg(WMSessionHandle shandle,
055: String pkgId) throws Exception {
056: ProcessFilterBuilder eb = SharkInterfaceWrapper.getShark()
057: .getProcessFilterBuilder();
058: WMFilter f = eb.addPackageIdEquals(shandle, pkgId);
059: WMFilter f2 = eb.addStateStartsWith(shandle,
060: SharkConstants.STATEPREFIX_OPEN);
061: f = eb.and(shandle, f, f2);
062: f = eb.setOrderByCreatedTime(shandle, f, false);
063: return f;
064: }
065:
066: public WMFilter getOpenProcessesForManager(WMSessionHandle shandle,
067: String mgrName) throws Exception {
068: ProcessFilterBuilder eb = SharkInterfaceWrapper.getShark()
069: .getProcessFilterBuilder();
070: WMFilter f = eb.addMgrNameEquals(shandle, mgrName);
071: WMFilter f2 = eb.addStateStartsWith(shandle,
072: SharkConstants.STATEPREFIX_OPEN);
073: f = eb.and(shandle, f, f2);
074: f = eb.setOrderByCreatedTime(shandle, f, false);
075: return f;
076: }
077:
078: public WMFilter getClosedProcessesForManager(
079: WMSessionHandle shandle, String mgrName) throws Exception {
080: ProcessFilterBuilder eb = SharkInterfaceWrapper.getShark()
081: .getProcessFilterBuilder();
082: WMFilter f = eb.addMgrNameEquals(shandle, mgrName);
083: WMFilter f2 = eb.addStateStartsWith(shandle,
084: SharkConstants.STATEPREFIX_CLOSED);
085: f = eb.and(shandle, f, f2);
086: f = eb.setOrderByCreatedTime(shandle, f, false);
087: return f;
088: }
089:
090: public WMFilter getAllProcessesForManager(WMSessionHandle shandle,
091: String mgrName) throws Exception {
092: ProcessFilterBuilder eb = SharkInterfaceWrapper.getShark()
093: .getProcessFilterBuilder();
094: WMFilter f = eb.addMgrNameEquals(shandle, mgrName);
095: f = eb.setOrderByCreatedTime(shandle, f, false);
096: return f;
097: }
098:
099: public WMFilter getOpenActivities(WMSessionHandle shandle,
100: String procId) throws Exception {
101: ActivityFilterBuilder eb = SharkInterfaceWrapper.getShark()
102: .getActivityFilterBuilder();
103: WMFilter f = eb.addProcessIdEquals(shandle, procId);
104: WMFilter f2 = eb.addStateStartsWith(shandle,
105: SharkConstants.STATEPREFIX_OPEN);
106: f = eb.and(shandle, f, f2);
107: f = eb.setOrderByActivatedTime(shandle, f, false);
108: return f;
109: }
110:
111: public WMFilter getActivitiesForDefinitionAndState(
112: WMSessionHandle shandle, String procId,
113: String definitionId, String stateOrStatePrefix,
114: boolean stateEquality) throws Exception {
115: ActivityFilterBuilder eb = SharkInterfaceWrapper.getShark()
116: .getActivityFilterBuilder();
117: WMFilter f = eb.addProcessIdEquals(shandle, procId);
118: WMFilter f2 = eb.addDefinitionIdEquals(shandle, definitionId);
119: f = eb.and(shandle, f, f2);
120: if (stateOrStatePrefix != null
121: && !stateOrStatePrefix.equals("")) {
122: if (stateEquality) {
123: f2 = eb.addStateEquals(shandle, stateOrStatePrefix);
124: } else {
125: f2 = eb.addStateStartsWith(shandle, stateOrStatePrefix);
126: }
127: f = eb.and(shandle, f, f2);
128: }
129: f = eb.setOrderByLastStateTime(shandle, f, false);
130: return f;
131: }
132:
133: public WMFilter getAssignmentsForUser(WMSessionHandle shandle,
134: String username) throws Exception {
135: AssignmentFilterBuilder eb = SharkInterfaceWrapper.getShark()
136: .getAssignmentFilterBuilder();
137: WMFilter f = eb.addUsernameEquals(shandle, username);
138: f = eb.setOrderByCreatedTime(shandle, f, false);
139: return f;
140: }
141:
142: public WMFilter getProcessesForUser(WMSessionHandle shandle,
143: String username) throws Exception {
144: boolean onlyOpen = !SharkClient.getShowFinishedProcesses();
145: ProcessFilterBuilder eb = SharkInterfaceWrapper.getShark()
146: .getProcessFilterBuilder();
147: WMFilter f = null;
148: if (!username.equals("*")) {
149: f = eb.addRequesterUsernameEquals(shandle, username);
150: } else {
151: if (!onlyOpen) {
152: f = eb.createEmptyFilter(shandle);
153: }
154: }
155: if (onlyOpen) {
156: f = eb.addStateStartsWith(shandle,
157: SharkConstants.STATEPREFIX_OPEN);
158: }
159: f = eb.setOrderByState(shandle, f, true);
160: f = eb.setOrderByCreatedTime(shandle, f, false);
161: return f;
162: }
163:
164: }
|