001: /*
002: * Copyright 2005-2006 The Kuali Foundation.
003: *
004: *
005: * Licensed under the Educational Community License, Version 1.0 (the "License");
006: * you may not use this file except in compliance with the License.
007: * You may obtain a copy of the License at
008: *
009: * http://www.opensource.org/licenses/ecl1.php
010: *
011: * Unless required by applicable law or agreed to in writing, software
012: * distributed under the License is distributed on an "AS IS" BASIS,
013: * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
014: * See the License for the specific language governing permissions and
015: * limitations under the License.
016: */
017: package edu.iu.uis.eden.server;
018:
019: import java.rmi.Remote;
020: import java.rmi.RemoteException;
021:
022: import edu.iu.uis.eden.clientapp.vo.ActionRequestVO;
023: import edu.iu.uis.eden.clientapp.vo.ActionTakenVO;
024: import edu.iu.uis.eden.clientapp.vo.DocumentContentVO;
025: import edu.iu.uis.eden.clientapp.vo.DocumentDetailVO;
026: import edu.iu.uis.eden.clientapp.vo.DocumentTypeVO;
027: import edu.iu.uis.eden.clientapp.vo.ReportCriteriaVO;
028: import edu.iu.uis.eden.clientapp.vo.RouteHeaderVO;
029: import edu.iu.uis.eden.clientapp.vo.RouteNodeInstanceVO;
030: import edu.iu.uis.eden.clientapp.vo.RouteTemplateEntryVO;
031: import edu.iu.uis.eden.clientapp.vo.RuleReportCriteriaVO;
032: import edu.iu.uis.eden.clientapp.vo.RuleVO;
033: import edu.iu.uis.eden.clientapp.vo.UserIdVO;
034: import edu.iu.uis.eden.clientapp.vo.UserVO;
035: import edu.iu.uis.eden.clientapp.vo.WorkflowAttributeDefinitionVO;
036: import edu.iu.uis.eden.clientapp.vo.WorkflowAttributeValidationErrorVO;
037: import edu.iu.uis.eden.clientapp.vo.WorkgroupIdVO;
038: import edu.iu.uis.eden.clientapp.vo.WorkgroupVO;
039: import edu.iu.uis.eden.exception.WorkflowException;
040:
041: /**
042: * A remotable service which provides an API for performing various queries
043: * and other utilities on KEW.
044: *
045: * @author rkirkend
046: * @author ewestfal
047: */
048: public interface WorkflowUtility extends Remote {
049: public RouteHeaderVO getRouteHeaderWithUser(UserIdVO userId,
050: Long documentId) throws RemoteException, WorkflowException;
051:
052: public RouteHeaderVO getRouteHeader(Long documentId)
053: throws RemoteException, WorkflowException;
054:
055: public DocumentDetailVO getDocumentDetail(Long documentId)
056: throws RemoteException, WorkflowException;
057:
058: public RouteNodeInstanceVO getNodeInstance(Long nodeInstanceId)
059: throws RemoteException, WorkflowException;
060:
061: public WorkgroupVO getWorkgroup(WorkgroupIdVO workgroupId)
062: throws RemoteException, WorkflowException;
063:
064: public UserVO getWorkflowUser(UserIdVO userId)
065: throws RemoteException, WorkflowException;
066:
067: public RouteTemplateEntryVO[] getDocRoute(String docName)
068: throws RemoteException, WorkflowException;
069:
070: public DocumentTypeVO getDocumentType(Long documentTypeId)
071: throws RemoteException, WorkflowException;
072:
073: public DocumentTypeVO getDocumentTypeByName(String documentTypeName)
074: throws RemoteException, WorkflowException;
075:
076: public Long getNewResponsibilityId() throws RemoteException,
077: WorkflowException;
078:
079: public WorkgroupVO[] getUserWorkgroups(UserIdVO userId)
080: throws RemoteException, WorkflowException;
081:
082: public ActionRequestVO[] getActionRequests(Long documentId)
083: throws RemoteException, WorkflowException;
084:
085: public ActionRequestVO[] getActionRequests(Long routeHeaderId,
086: String nodeName, UserIdVO userId) throws RemoteException,
087: WorkflowException;
088:
089: public ActionTakenVO[] getActionsTaken(Long documentId)
090: throws RemoteException, WorkflowException;
091:
092: public WorkflowAttributeValidationErrorVO[] validateWorkflowAttributeDefinitionVO(
093: WorkflowAttributeDefinitionVO definition)
094: throws RemoteException, WorkflowException;
095:
096: public boolean isUserInRouteLog(Long documentId, UserIdVO userId,
097: boolean lookFuture) throws RemoteException,
098: WorkflowException;
099:
100: public void reResolveRole(String documentTypeName, String roleName,
101: String qualifiedRoleNameLabel) throws RemoteException,
102: WorkflowException;
103:
104: public void reResolveRoleByDocumentId(Long documentId,
105: String roleName, String qualifiedRoleNameLabel)
106: throws RemoteException, WorkflowException;
107:
108: public DocumentDetailVO routingReport(
109: ReportCriteriaVO reportCriteria) throws RemoteException,
110: WorkflowException;
111:
112: //public RouteHeaderDetailVO routingSimulation(RouteHeaderDetailVO detail, ActionTakenVO[] actionsToTake) throws RemoteException, WorkflowException;
113: public boolean isFinalApprover(Long documentId, UserIdVO userId)
114: throws RemoteException, WorkflowException;
115:
116: public boolean isSuperUserForDocumentType(UserIdVO userId,
117: Long documentTypeId) throws RemoteException,
118: WorkflowException;
119:
120: // new in 2.3
121:
122: public RuleVO[] ruleReport(RuleReportCriteriaVO ruleReportCriteria)
123: throws RemoteException, WorkflowException;
124:
125: // deprecated as of 2.1
126:
127: /**
128: * @deprecated use isLastApproverAtNode instead
129: */
130: public boolean isLastApproverInRouteLevel(Long routeHeaderId,
131: UserIdVO userId, Integer routeLevel)
132: throws RemoteException, WorkflowException;
133:
134: /**
135: * @deprecated use routeNodeHasApproverActionRequest instead
136: */
137: public boolean routeLevelHasApproverActionRequest(String docType,
138: String docContent, Integer routeLevel)
139: throws RemoteException, WorkflowException;
140:
141: // new in 2.1
142:
143: public boolean isLastApproverAtNode(Long documentId,
144: UserIdVO userId, String nodeName) throws RemoteException,
145: WorkflowException;
146:
147: public boolean routeNodeHasApproverActionRequest(String docType,
148: String docContent, String nodeName) throws RemoteException,
149: WorkflowException;
150:
151: public RouteNodeInstanceVO[] getDocumentRouteNodeInstances(
152: Long documentId) throws RemoteException, WorkflowException;
153:
154: public RouteNodeInstanceVO[] getActiveNodeInstances(Long documentId)
155: throws RemoteException, WorkflowException;
156:
157: public RouteNodeInstanceVO[] getTerminalNodeInstances(
158: Long documentId) throws RemoteException, WorkflowException;
159:
160: public DocumentContentVO getDocumentContent(Long routeHeaderId)
161: throws RemoteException, WorkflowException;
162:
163: //2.2
164: public String[] getPreviousRouteNodeNames(Long documentId)
165: throws RemoteException, WorkflowException;
166:
167: // 2.4
168: public boolean documentWillHaveAtLeastOneActionRequest(
169: ReportCriteriaVO reportCriteriaVO,
170: String[] actionRequestedCodes) throws RemoteException;
171: }
|