Classes in this File | Line Coverage | Branch Coverage | Complexity | ||||
EnumerationManagementService |
|
| 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.enumerationmanagement.service; | |
17 | ||
18 | import java.util.Date; | |
19 | import java.util.List; | |
20 | ||
21 | import javax.jws.WebParam; | |
22 | import javax.jws.WebService; | |
23 | import javax.jws.soap.SOAPBinding; | |
24 | ||
25 | import org.kuali.student.common.dictionary.service.DictionaryService; | |
26 | import org.kuali.student.common.dto.StatusInfo; | |
27 | import org.kuali.student.common.exceptions.AlreadyExistsException; | |
28 | import org.kuali.student.common.exceptions.DoesNotExistException; | |
29 | import org.kuali.student.common.exceptions.InvalidParameterException; | |
30 | import org.kuali.student.common.exceptions.MissingParameterException; | |
31 | import org.kuali.student.common.exceptions.OperationFailedException; | |
32 | import org.kuali.student.common.exceptions.PermissionDeniedException; | |
33 | import org.kuali.student.common.search.service.SearchService; | |
34 | import org.kuali.student.core.enumerationmanagement.dto.EnumeratedValueInfo; | |
35 | import org.kuali.student.core.enumerationmanagement.dto.EnumerationInfo; | |
36 | ||
37 | @WebService(name = "EnumerationManagementService", targetNamespace = "http://student.kuali.org/wsdl/enumerationmanagement") | |
38 | @SOAPBinding(style = SOAPBinding.Style.DOCUMENT, use = SOAPBinding.Use.LITERAL, parameterStyle = SOAPBinding.ParameterStyle.WRAPPED) | |
39 | public interface EnumerationManagementService extends DictionaryService, SearchService { | |
40 | ||
41 | /** | |
42 | * Retrieves the list of meta information for the enumerations supported by | |
43 | * this service. | |
44 | * | |
45 | * @return list of enumeration meta information | |
46 | * @throws OperationFailedException | |
47 | * unable to complete request | |
48 | */ | |
49 | public List<EnumerationInfo> getEnumerations() | |
50 | throws OperationFailedException; | |
51 | ||
52 | /** | |
53 | * Retrieves meta information for a particular Enumeration. The meta | |
54 | * information should describe constraints on the various fields comprising | |
55 | * the enumeration as well as the allowed contexts. | |
56 | * | |
57 | * @param enumerationKey | |
58 | * Identifier for the Enumeration | |
59 | * @return Meta information about an enumeration | |
60 | * @throws DoesNotExistException | |
61 | * enumerationKey not found | |
62 | * @throws InvalidParameterException | |
63 | * invalid enumerationKey | |
64 | * @throws MissingParameterException | |
65 | * missing enumerationKey | |
66 | * @throws OperationFailedException | |
67 | * unable to complete request | |
68 | */ | |
69 | public EnumerationInfo getEnumeration( | |
70 | @WebParam(name = "enumerationKey") String enumerationKey) | |
71 | throws DoesNotExistException, InvalidParameterException, | |
72 | MissingParameterException, OperationFailedException; | |
73 | ||
74 | /** | |
75 | * Retrieves the list of values for a particular enumeration with a certain | |
76 | * context for a particular date. The values returned should be those where | |
77 | * the supplied date is between the effective and expiration dates. Certain | |
78 | * enumerations may not support this functionality. | |
79 | * | |
80 | * @param enumerationKey | |
81 | * Identifier for the Enumeration | |
82 | * @param contextType | |
83 | * Identifier for the enumeration context type | |
84 | * @param contextValue | |
85 | * Value for the enumeration context | |
86 | * @param contextDate | |
87 | * date and time to get the enumeration for | |
88 | * @return list of Codes and Values | |
89 | * @throws DoesNotExistException | |
90 | * enumerationKey not found | |
91 | * @throws InvalidParameterException | |
92 | * invalid enumerationKey, contextKey, contextValue, contextDate | |
93 | * @throws MissingParameterException | |
94 | * missing enumerationKey, contextKey, contextValue, contextDate | |
95 | * @throws OperationFailedException | |
96 | * unable to complete request | |
97 | */ | |
98 | public List<EnumeratedValueInfo> getEnumeratedValues( | |
99 | @WebParam(name = "enumerationKey") String enumerationKey, | |
100 | @WebParam(name = "contextKey") String contextKey, | |
101 | @WebParam(name = "contextValue") String contextValue, | |
102 | @WebParam(name = "contextDate") Date contextDate) | |
103 | throws DoesNotExistException, InvalidParameterException, | |
104 | MissingParameterException, OperationFailedException; | |
105 | ||
106 | /** | |
107 | * Adds an value to a particular Enumeration. | |
108 | * | |
109 | * @param enumerationKey | |
110 | * Identifier for the Enumeration | |
111 | * @param enumeratedValue | |
112 | * Value to be added | |
113 | * @return newly created enumerated value | |
114 | * @throws AlreadyExistsException | |
115 | * enumerated value already exists | |
116 | * @throws InvalidParameterException | |
117 | * invalid enumerationKey, code, enumeratedValue | |
118 | * @throws MissingParameterException | |
119 | * missing enumerationKey, code, enumeratedValue | |
120 | * @throws OperationFailedException | |
121 | * unable to complete request | |
122 | * @throws PermissionDeniedException | |
123 | * authorization failure | |
124 | */ | |
125 | public EnumeratedValueInfo addEnumeratedValue( | |
126 | @WebParam(name = "enumerationKey") String enumerationKey, | |
127 | @WebParam(name = "enumeratedValue") EnumeratedValueInfo enumeratedValue) | |
128 | throws AlreadyExistsException, InvalidParameterException, | |
129 | MissingParameterException, OperationFailedException, | |
130 | PermissionDeniedException; | |
131 | ||
132 | /** | |
133 | * Updates a value in a particular Enumeration. The pattern in this | |
134 | * signature is different from most updates in that it is unlikely for | |
135 | * multiple individuals or processes to be altering the same construct at | |
136 | * the same time. | |
137 | * | |
138 | * @param enumerationKey | |
139 | * Identifier for the Enumeration | |
140 | * @param code | |
141 | * code identifying the value to be updated | |
142 | * @param enumeratedValue | |
143 | * updated information on the value | |
144 | * @return updated enumerated value | |
145 | * @throws DoesNotExistException | |
146 | * enumerationKey, code not found | |
147 | * @throws InvalidParameterException | |
148 | * invalid enumerationKey, enumeratedValue | |
149 | * @throws MissingParameterException | |
150 | * missing enumerationKey, enumeratedValue | |
151 | * @throws OperationFailedException | |
152 | * unable to complete request | |
153 | * @throws PermissionDeniedException | |
154 | * authorization failure | |
155 | */ | |
156 | public EnumeratedValueInfo updateEnumeratedValue( | |
157 | @WebParam(name = "enumerationKey") String enumerationKey, | |
158 | @WebParam(name = "code") String code, | |
159 | @WebParam(name = "enumeratedValue") EnumeratedValueInfo enumeratedValue) | |
160 | throws DoesNotExistException, InvalidParameterException, | |
161 | MissingParameterException, OperationFailedException, | |
162 | PermissionDeniedException; | |
163 | ||
164 | /** | |
165 | * Removes a value from a particular Enumeration. This particular operation | |
166 | * should be used sparingly, as removal of a value may lead to dangling | |
167 | * references. It is suggested that standard procedure should be to update | |
168 | * the expiration date for the value so that it is seen as expired. | |
169 | * | |
170 | * @param enumerationKey | |
171 | * Identifier for the Enumeration | |
172 | * @param code | |
173 | * code identifying the value to be removed | |
174 | * @return status of the operation | |
175 | * @throws DoesNotExistException | |
176 | * enumerationKey, code not found | |
177 | * @throws InvalidParameterException | |
178 | * invalid enumerationKey, enumeratedValue | |
179 | * @throws MissingParameterException | |
180 | * missing enumerationKey, enumeratedValue | |
181 | * @throws OperationFailedException | |
182 | * unable to complete request | |
183 | * @throws PermissionDeniedException | |
184 | * authorization failure | |
185 | */ | |
186 | public StatusInfo removeEnumeratedValue( | |
187 | @WebParam(name = "enumerationKey") String enumerationKey, | |
188 | @WebParam(name = "code") String code) throws DoesNotExistException, | |
189 | InvalidParameterException, MissingParameterException, | |
190 | OperationFailedException, PermissionDeniedException; | |
191 | ||
192 | } |