| 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.core.dictionary.service.DictionaryService; | |
| 26 | import org.kuali.student.core.dto.StatusInfo; | |
| 27 | import org.kuali.student.core.enumerationmanagement.dto.EnumeratedValueInfo; | |
| 28 | import org.kuali.student.core.enumerationmanagement.dto.EnumerationInfo; | |
| 29 | import org.kuali.student.core.exceptions.AlreadyExistsException; | |
| 30 | import org.kuali.student.core.exceptions.DoesNotExistException; | |
| 31 | import org.kuali.student.core.exceptions.InvalidParameterException; | |
| 32 | import org.kuali.student.core.exceptions.MissingParameterException; | |
| 33 | import org.kuali.student.core.exceptions.OperationFailedException; | |
| 34 | import org.kuali.student.core.exceptions.PermissionDeniedException; | |
| 35 | import org.kuali.student.core.search.service.SearchService; | |
| 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 | } |