Classes in this File | Line Coverage | Branch Coverage | Complexity | ||||
ProposalService |
|
| 1.0;1 |
1 | /** | |
2 | * Copyright 2010 The Kuali Foundation Licensed under the | |
3 | * Educational Community License, Version 2.0 (the "License"); you may | |
4 | * not use this file except in compliance with the License. You may | |
5 | * obtain a copy of the License at | |
6 | * | |
7 | * http://www.osedu.org/licenses/ECL-2.0 | |
8 | * | |
9 | * Unless required by applicable law or agreed to in writing, | |
10 | * software distributed under the License is distributed on an "AS IS" | |
11 | * BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express | |
12 | * or implied. See the License for the specific language governing | |
13 | * permissions and limitations under the License. | |
14 | */ | |
15 | ||
16 | package org.kuali.student.core.proposal.service; | |
17 | ||
18 | import java.util.List; | |
19 | ||
20 | import javax.jws.WebParam; | |
21 | import javax.jws.WebService; | |
22 | import javax.jws.soap.SOAPBinding; | |
23 | import javax.xml.bind.annotation.XmlSeeAlso; | |
24 | ||
25 | import org.kuali.student.common.dictionary.service.DictionaryService; | |
26 | import org.kuali.student.common.dto.ReferenceTypeInfo; | |
27 | import org.kuali.student.common.dto.StatusInfo; | |
28 | import org.kuali.student.common.exceptions.AlreadyExistsException; | |
29 | import org.kuali.student.common.exceptions.DataValidationErrorException; | |
30 | import org.kuali.student.common.exceptions.DependentObjectsExistException; | |
31 | import org.kuali.student.common.exceptions.DoesNotExistException; | |
32 | import org.kuali.student.common.exceptions.InvalidParameterException; | |
33 | import org.kuali.student.common.exceptions.MissingParameterException; | |
34 | import org.kuali.student.common.exceptions.OperationFailedException; | |
35 | import org.kuali.student.common.exceptions.PermissionDeniedException; | |
36 | import org.kuali.student.common.exceptions.VersionMismatchException; | |
37 | import org.kuali.student.common.search.service.SearchService; | |
38 | import org.kuali.student.common.validation.dto.ValidationResultInfo; | |
39 | import org.kuali.student.core.proposal.dto.ProposalInfo; | |
40 | import org.kuali.student.core.proposal.dto.ProposalTypeInfo; | |
41 | ||
42 | /** | |
43 | * | |
44 | * @Author KSContractMojo | |
45 | * @Author Neerav Agrawal | |
46 | * @Since Thu May 28 10:25:06 EDT 2009 | |
47 | * @See <a href="https://test.kuali.org/confluence/display/KULSTU/Proposal+Service">ProposalService</> | |
48 | * | |
49 | */ | |
50 | @WebService(name = "ProposalService", targetNamespace = "http://student.kuali.org/wsdl/proposal") | |
51 | @SOAPBinding(style = SOAPBinding.Style.DOCUMENT, use = SOAPBinding.Use.LITERAL, parameterStyle = SOAPBinding.ParameterStyle.WRAPPED) | |
52 | @XmlSeeAlso({org.kuali.student.common.dto.ReferenceTypeInfo.class}) | |
53 | public interface ProposalService extends DictionaryService, SearchService{ | |
54 | /** | |
55 | * Retrieves the list of proposal types known by this service | |
56 | * @return list of proposal types | |
57 | * @throws OperationFailedException unable to complete request | |
58 | */ | |
59 | public List<ProposalTypeInfo> getProposalTypes() throws OperationFailedException; | |
60 | ||
61 | /** | |
62 | * Retrieves information about a particular proposal type | |
63 | * @param proposalTypeKey proposal type identifier | |
64 | * @return proposal type information | |
65 | * @throws DoesNotExistException specified proposal type not found | |
66 | * @throws InvalidParameterException invalid proposalTypeKey | |
67 | * @throws MissingParameterException proposalTypeKey not specified | |
68 | * @throws OperationFailedException unable to complete request | |
69 | */ | |
70 | public ProposalTypeInfo getProposalType(@WebParam(name="proposalTypeKey")String proposalTypeKey) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException; | |
71 | ||
72 | /** | |
73 | * Retrieves the list of types which can be referenced by a proposal. | |
74 | * @return the list of types which can be referenced by a proposal | |
75 | * @throws OperationFailedException unable to complete request | |
76 | */ | |
77 | public List<ReferenceTypeInfo> getReferenceTypes() throws OperationFailedException; | |
78 | ||
79 | /** | |
80 | * Retrieves the list of proposal types that are defined for a particular Reference Type | |
81 | * @param referenceTypeKey referenceTypeKey | |
82 | * @return List of proposal types | |
83 | * @throws DoesNotExistException specified referenceTypeKey not found | |
84 | * @throws InvalidParameterException invalid referenceTypeKey | |
85 | * @throws MissingParameterException referenceTypeKey not specified | |
86 | * @throws OperationFailedException unable to complete request | |
87 | */ | |
88 | public List<ProposalTypeInfo> getProposalTypesForReferenceType(@WebParam(name="referenceTypeKey")String referenceTypeKey) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException; | |
89 | ||
90 | /** | |
91 | * Validates a proposal. Depending on the value of validationType, this validation could be limited to tests on just the current object and its directly contained subobjects or expanded to perform all tests related to this object. If an identifier is present for the proposal and a record is found for that identifier, the validation checks if the proposal can be shifted to the new values. If a record cannot be found for the identifier, it is assumed that the record does not exist and as such, the checks performed will be much shallower, typically mimicking those performed by setting the validationType to the current object. This is a slightly different pattern from the standard validation as the caller provides the identifier in the create statement instead of the server assigning an identifier. | |
92 | * @param validationType Identifier of the extent of validation | |
93 | * @param proposalInfo The proposal information to be tested. | |
94 | * @return Results from performing the validation | |
95 | * @throws DoesNotExistException validationTypeKey not found | |
96 | * @throws InvalidParameterException invalid validationTypeKey, proposalInfo | |
97 | * @throws MissingParameterException missing validationTypeKey, proposalInfo | |
98 | * @throws OperationFailedException unable to complete request | |
99 | */ | |
100 | public List<ValidationResultInfo> validateProposal(@WebParam(name="validationType")String validationType, @WebParam(name="proposalInfo")ProposalInfo proposalInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException; | |
101 | ||
102 | /** | |
103 | * Retrieves the details of a single Proposal by proposalId | |
104 | * @param proposalId Unique id of the Proposal to be retrieved | |
105 | * @return Details of the Proposal requested | |
106 | * @throws DoesNotExistException proposalId not found | |
107 | * @throws InvalidParameterException invalid proposalId | |
108 | * @throws MissingParameterException invalid proposalId | |
109 | * @throws OperationFailedException unable to complete request | |
110 | */ | |
111 | public ProposalInfo getProposal(@WebParam(name="proposalId")String proposalId) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException; | |
112 | ||
113 | /** | |
114 | * Retrieves the list of Proposals for the supplied list of proposalIds | |
115 | * @param proposalIdList list of proposal identifiers | |
116 | * @return List of proposals that match the supplied proposalId list | |
117 | * @throws DoesNotExistException One or more proposalIds not found | |
118 | * @throws InvalidParameterException One or more invalid proposalId | |
119 | * @throws MissingParameterException missing proposalIdList | |
120 | * @throws OperationFailedException unable to complete request | |
121 | */ | |
122 | public List<ProposalInfo> getProposalsByIdList(@WebParam(name="proposalIdList")List<String> proposalIdList) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException; | |
123 | ||
124 | /** | |
125 | * Retrieves the list of Proposals for the supplied Proposal Type | |
126 | * @param proposalTypeKey key of the proposal type | |
127 | * @return List of proposal information | |
128 | * @throws DoesNotExistException proposalTypeKey not found | |
129 | * @throws InvalidParameterException invalid proposalTypeKey | |
130 | * @throws MissingParameterException missing proposalTypeKey | |
131 | * @throws OperationFailedException unable to complete request | |
132 | */ | |
133 | public List<ProposalInfo> getProposalsByProposalType(@WebParam(name="proposalTypeKey")String proposalTypeKey) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException; | |
134 | ||
135 | /** | |
136 | * Retrieves the list of Proposals for the specified Reference Type and Reference Id | |
137 | * @param referenceTypeKey Key of the Reference Type | |
138 | * @param referenceId Identifier of the reference | |
139 | * @return list of Proposal information | |
140 | * @throws DoesNotExistException referenceTypeKey or referenceId not found | |
141 | * @throws InvalidParameterException invalid referenceTypeKey or referenceId | |
142 | * @throws MissingParameterException missing referenceTypeKey or referenceId | |
143 | * @throws OperationFailedException unable to complete request | |
144 | */ | |
145 | public List<ProposalInfo> getProposalsByReference(@WebParam(name="referenceTypeKey")String referenceTypeKey, @WebParam(name="referenceId")String referenceId) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException; | |
146 | ||
147 | /** | |
148 | * Retrieves the list of Proposals for the specified proposal type and state | |
149 | * @param proposalState Proposal State | |
150 | * @param proposalTypeKey Proposal Type. | |
151 | * @return list of Proposal information | |
152 | * @throws DoesNotExistException proposalTypeKey not found | |
153 | * @throws InvalidParameterException invalid proposalState or proposalTypeKey | |
154 | * @throws MissingParameterException missing proposalState or proposalTypeKey | |
155 | * @throws OperationFailedException unable to complete request | |
156 | */ | |
157 | public List<ProposalInfo> getProposalsByState(@WebParam(name="proposalState")String proposalState, @WebParam(name="proposalTypeKey")String proposalTypeKey) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException; | |
158 | ||
159 | /** | |
160 | * @param workflowId Workflow id | |
161 | * @return Proposal Information | |
162 | * @throws DoesNotExistException workflowId not found | |
163 | * @throws InvalidParameterException invalid workflowId | |
164 | * @throws MissingParameterException missing workflowId | |
165 | * @throws OperationFailedException unable to complete request | |
166 | */ | |
167 | public ProposalInfo getProposalByWorkflowId(@WebParam(name="workflowId")String workflowId) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException; | |
168 | ||
169 | ||
170 | /** | |
171 | * Creates a new Proposal | |
172 | * @param proposalTypeKey identifier of the Proposal Type for the Proposal being created | |
173 | * @param proposalInfo information about the Proposal being created | |
174 | * @return the created Proposal information | |
175 | * @throws AlreadyExistsException Proposal already exists | |
176 | * @throws DataValidationErrorException One or more values invalid for this operation | |
177 | * @throws DoesNotExistException proposalTypeKey not found | |
178 | * @throws InvalidParameterException invalid proposalTypeKey, proposalInfo | |
179 | * @throws MissingParameterException missing proposalTypeKey, proposalInfo | |
180 | * @throws OperationFailedException unable to complete request | |
181 | * @throws PermissionDeniedException authorization failure | |
182 | */ | |
183 | public ProposalInfo createProposal(@WebParam(name="proposalTypeKey")String proposalTypeKey, @WebParam(name="proposalInfo")ProposalInfo proposalInfo) throws AlreadyExistsException, DataValidationErrorException, DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; | |
184 | ||
185 | /** | |
186 | * Updates an existing CLU | |
187 | * @param proposalId identifier for the Proposal to be updated | |
188 | * @param proposalInfo updated information about the Proposal | |
189 | * @return the updated Proposal information | |
190 | * @throws DataValidationErrorException One or more values invalid for this operation | |
191 | * @throws DoesNotExistException proposalId not found | |
192 | * @throws InvalidParameterException invalid proposalId, proposalInfo | |
193 | * @throws MissingParameterException missing proposalId, proposalInfo | |
194 | * @throws OperationFailedException unable to complete request | |
195 | * @throws PermissionDeniedException authorization failure | |
196 | * @throws VersionMismatchException The action was attempted on an out of date version. | |
197 | */ | |
198 | public ProposalInfo updateProposal(@WebParam(name="proposalId")String proposalId, @WebParam(name="proposalInfo")ProposalInfo proposalInfo) throws DataValidationErrorException, DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException, VersionMismatchException; | |
199 | ||
200 | /** | |
201 | * Deletes an existing Proposal | |
202 | * @param proposalId identifier for the Proposal to be deleted | |
203 | * @return status of the operation | |
204 | * @throws DoesNotExistException proposalId not found | |
205 | * @throws InvalidParameterException invalid proposalId | |
206 | * @throws MissingParameterException missing proposalId | |
207 | * @throws DependentObjectsExistException delete would leave orphaned objects or violate integrity constraints | |
208 | * @throws OperationFailedException unable to complete request | |
209 | * @throws PermissionDeniedException authorization failure | |
210 | */ | |
211 | public StatusInfo deleteProposal(@WebParam(name="proposalId")String proposalId) throws DoesNotExistException, InvalidParameterException, MissingParameterException, DependentObjectsExistException, OperationFailedException, PermissionDeniedException; | |
212 | ||
213 | } |