1 /* 2 * Copyright 2011 The Kuali Foundation 3 * 4 * Licensed under the Educational Community License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.opensource.org/licenses/ecl1.php 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 package org.kuali.rice.kew.api.document; 17 18 import org.kuali.rice.core.api.exception.RiceIllegalArgumentException; 19 import org.kuali.rice.kew.api.action.ActionRequest; 20 import org.kuali.rice.kew.api.action.ActionTaken; 21 22 import javax.jws.WebParam; 23 import java.util.List; 24 25 /** 26 * TODO ... annotate for JAX-WS! 27 * 28 * @author Kuali Rice Team (rice.collab@kuali.org) 29 */ 30 public interface WorkflowDocumentService { 31 32 Document getDocument(String documentId); 33 34 boolean doesDocumentExist(String documentId); 35 36 DocumentContent getDocumentContent(String documentId); 37 38 List<ActionRequest> getRootActionRequests(@WebParam(name = "documentId") String documentId); 39 40 public List<ActionRequest> getActionRequests(String documentId, String nodeName, String principalId); 41 42 List<ActionTaken> getActionsTaken(@WebParam(name = "documentId") String documentId); 43 44 // public DocumentDetailDTO getDocumentDetailFromAppId(String documentTypeName, String appId) throws WorkflowException; 45 // 46 // public RouteHeaderDTO getRouteHeaderWithPrincipal( 47 // @WebParam(name = "principalId") String principalId, 48 // @WebParam(name = "documentId") String documentId) 49 // throws WorkflowException; 50 // 51 // public RouteHeaderDTO getRouteHeader( 52 // @WebParam(name = "documentId") String documentId) 53 // throws WorkflowException; 54 // 55 56 public DocumentDetail getDocumentDetail(@WebParam(name = "documentId") String documentId); 57 58 // public RouteNodeInstanceDTO getNodeInstance( 59 // @WebParam(name = "nodeInstanceId") Long nodeInstanceId) 60 // throws WorkflowException; 61 // 62 // public Long getNewResponsibilityId() throws WorkflowException; 63 // 64 // 65 // public ActionRequestDTO[] getActionRequests( 66 // @WebParam(name = "documentId") String documentId, 67 // @WebParam(name = "nodeName") String nodeName, 68 // @WebParam(name = "principalId") String principalId) 69 // throws WorkflowException; 70 // 71 // public String getAppDocId( 72 // @WebParam(name = "documentId") String documentId); 73 // 74 // 75 // public DocumentSearchResultDTO performDocumentSearch( 76 // @WebParam(name = "criteriaVO") DocumentSearchCriteriaDTO criteriaVO) 77 // throws WorkflowException; 78 // 79 // public DocumentSearchResultDTO performDocumentSearchWithPrincipal( 80 // @WebParam(name = "principalId") String principalId, 81 // @WebParam(name = "criteriaVO") DocumentSearchCriteriaDTO criteriaVO) 82 // throws WorkflowException; 83 // 84 // public RouteNodeInstanceDTO[] getDocumentRouteNodeInstances( 85 // @WebParam(name = "documentId") String documentId) 86 // throws WorkflowException; 87 88 public List<RouteNodeInstance> getRouteNodeInstances(String documentId); 89 90 public List<RouteNodeInstance> getActiveRouteNodeInstances( 91 @WebParam(name = "documentId") String documentId); 92 93 // public RouteNodeInstanceDTO[] getTerminalNodeInstances( 94 // @WebParam(name = "documentId") String documentId) 95 // throws WorkflowException; 96 // 97 // public DocumentContentDTO getDocumentContent( 98 // @WebParam(name = "documentId") String documentId) 99 // throws WorkflowException; 100 101 public List<String> getPreviousRouteNodeNames(@WebParam(name = "documentId") String documentId); 102 103 104 // public String getDocumentStatus( 105 // @WebParam(name = "documentId") String documentId) 106 // throws WorkflowException; 107 // 108 // public RouteNodeInstanceDTO[] getCurrentNodeInstances( 109 // @WebParam(name = "documentId") String documentId) 110 // throws WorkflowException; 111 // 112 // public String[] getPrincipalIdsWithPendingActionRequestByActionRequestedAndDocId( 113 // @WebParam(name = "actionRequestedCd") String actionRequestedCd, 114 // @WebParam(name = "documentId") String documentId) 115 // throws WorkflowException; 116 // 117 // 118 // public String getDocumentInitiatorPrincipalId( 119 // @WebParam(name = "documentId") String documentId) 120 // throws WorkflowException; 121 // 122 // /** 123 // * Returns the principal ID of the user who routed the given document. 124 // * <b>null</b> if the document can not be found. 125 // * 126 // * @throws WorkflowException 127 // */ 128 // public String getDocumentRoutedByPrincipalId( 129 // @WebParam(name = "documentId") String documentId) 130 // throws WorkflowException; 131 // 132 // @XmlJavaTypeAdapter(value = MapStringStringAdapter.class) 133 // public Map<String, String> getActionsRequested( 134 // @WebParam(name = "principalId") String principalId, 135 // @WebParam(name = "documentId") String documentId); 136 // 137 // /** 138 // * 139 // * This method does a direct search for the searchableAttribute without 140 // * going through the doc search. 141 // * 142 // * @param documentId 143 // * @param key 144 // * @return 145 // */ 146 // public String[] getSearchableAttributeStringValuesByKey( 147 // @WebParam(name = "documentId") String documentId, 148 // @WebParam(name = "key") String key); 149 // 150 // /** 151 // * 152 // * This method does a direct search for the searchableAttribute without 153 // * going through the doc search. 154 // * 155 // * @param documentId 156 // * @param key 157 // * @return 158 // */ 159 // @XmlJavaTypeAdapter(value = SqlTimestampAdapter.class) 160 // public Timestamp[] getSearchableAttributeDateTimeValuesByKey( 161 // @WebParam(name = "documentId") String documentId, 162 // @WebParam(name = "key") String key); 163 // 164 // /** 165 // * 166 // * This method does a direct search for the searchableAttribute without 167 // * going through the doc search. 168 // * 169 // * @param documentId 170 // * @param key 171 // * @return 172 // */ 173 // public BigDecimal[] getSearchableAttributeFloatValuesByKey( 174 // @WebParam(name = "documentId") String documentId, 175 // @WebParam(name = "key") String key); 176 // 177 // /** 178 // * 179 // * This method does a direct search for the searchableAttribute without 180 // * going through the doc search. 181 // * 182 // * @param documentId 183 // * @param key 184 // * @return 185 // */ 186 // public Long[] getSearchableAttributeLongValuesByKey( 187 // @WebParam(name = "documentId") String documentId, 188 // @WebParam(name = "key") String key); 189 // 190 // public String getFutureRequestsKey( 191 // @WebParam(name = "principalId") String principalId); 192 // 193 // public String getReceiveFutureRequestsValue(); 194 // 195 // public String getDoNotReceiveFutureRequestsValue(); 196 // 197 // public String getClearFutureRequestsValue(); 198 // 199 // public DocumentStatusTransitionDTO[] getDocumentStatusTransitionHistory( 200 // @WebParam(name = "documentId") String documentId) 201 // throws WorkflowException; 202 // 203 204 /** 205 * TODO - document that this "ignores" the request to create the link if it already exists, 206 * returning the existing link if there is one 207 * 208 * TODO - also document that this method actually creates two links in the db, one from the document being 209 * linked to the target and vice-versa 210 */ 211 DocumentLink addDocumentLink(DocumentLink documentLink) throws RiceIllegalArgumentException; 212 213 DocumentLink deleteDocumentLink(String documentLinkId) throws RiceIllegalArgumentException; 214 215 List<DocumentLink> deleteDocumentLinksByDocumentId(String originatingDocumentId) throws RiceIllegalArgumentException; 216 217 List<DocumentLink> getOutgoingDocumentLinks(String originatingDocumentId) throws RiceIllegalArgumentException; 218 219 List<DocumentLink> getIncomingDocumentLinks(String originatingDocumentId) throws RiceIllegalArgumentException; 220 221 DocumentLink getDocumentLink(String documentLinkId) throws RiceIllegalArgumentException; 222 223 }