Coverage Report - org.kuali.student.r2.core.enumerationmanagement.service.EnumerationManagementService
 
Classes in this File Line Coverage Branch Coverage Complexity
EnumerationManagementService
N/A
N/A
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.r2.core.enumerationmanagement.service;
 17  
 
 18  
 import org.kuali.student.r2.common.dto.ContextInfo;
 19  
 import org.kuali.student.r2.common.dto.StatusInfo;
 20  
 import org.kuali.student.r2.common.dto.ValidationResultInfo;
 21  
 import org.kuali.student.r2.common.exceptions.AlreadyExistsException;
 22  
 import org.kuali.student.r2.common.exceptions.DataValidationErrorException;
 23  
 import org.kuali.student.r2.common.exceptions.DoesNotExistException;
 24  
 import org.kuali.student.r2.common.exceptions.InvalidParameterException;
 25  
 import org.kuali.student.r2.common.exceptions.MissingParameterException;
 26  
 import org.kuali.student.r2.common.exceptions.OperationFailedException;
 27  
 import org.kuali.student.r2.common.exceptions.PermissionDeniedException;
 28  
 import org.kuali.student.r2.common.exceptions.ReadOnlyException;
 29  
 import org.kuali.student.r2.common.exceptions.VersionMismatchException;
 30  
 import org.kuali.student.r2.common.util.constants.EnumerationManagementServiceConstants;
 31  
 import org.kuali.student.r2.core.enumerationmanagement.dto.EnumeratedValueInfo;
 32  
 import org.kuali.student.r2.core.enumerationmanagement.dto.EnumerationInfo;
 33  
 
 34  
 import javax.jws.WebParam;
 35  
 import javax.jws.WebService;
 36  
 import javax.jws.soap.SOAPBinding;
 37  
 import java.util.Date;
 38  
 import java.util.List;
 39  
 
 40  
 /**
 41  
  * Enumeration Management service supports the management of code tables for
 42  
  * other services. It is only accessed by authorized callers configuring some
 43  
  * piece of the system.
 44  
  *
 45  
  * @Version 2.0
 46  
  * @Author Sri komandur@uw.edu
 47  
  */
 48  
 
 49  
 @WebService(name = "EnumerationManagementService", targetNamespace = EnumerationManagementServiceConstants.NAMESPACE)
 50  
 @SOAPBinding(style = SOAPBinding.Style.DOCUMENT, use = SOAPBinding.Use.LITERAL, parameterStyle = SOAPBinding.ParameterStyle.WRAPPED)
 51  
 public interface EnumerationManagementService {
 52  
 
 53  
     /**
 54  
      * Retrieves the list of meta information for the enumerations supported by
 55  
      * this service.
 56  
      *
 57  
      * @param contextInfo context information containing the principalId and
 58  
      *                    locale information about the caller of service
 59  
      *                    operation
 60  
      * @return List of enumeration meta information
 61  
      * @throws InvalidParameterException invalid contextInfo
 62  
      * @throws MissingParameterException missing contextInfo
 63  
      * @throws OperationFailedException  unable to complete request
 64  
      * @throws PermissionDeniedException authorization failure
 65  
      */
 66  
     public List<EnumerationInfo> getEnumerations(@WebParam(name = "contextInfo") ContextInfo contextInfo) throws InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 67  
 
 68  
     /**
 69  
      * Retrieves meta information for a particular Enumeration. The meta
 70  
      * information should describe constraints on the various fields comprising
 71  
      * the enumeration as well as the allowed contexts.
 72  
      *
 73  
      * @param enumerationKey identifier for the Enumeration
 74  
      * @param contextInfo    context information containing the principalId and
 75  
      *                       locale information about the caller of service
 76  
      *                       operation
 77  
      * @return Meta information about an enumeration
 78  
      * @throws DoesNotExistException     enumerationKey not found
 79  
      * @throws InvalidParameterException invalid contextInfo
 80  
      * @throws MissingParameterException missing enumerationKey or contextInfo
 81  
      * @throws OperationFailedException  unable to complete request
 82  
      * @throws PermissionDeniedException authorization failure
 83  
      */
 84  
     public EnumerationInfo getEnumeration(@WebParam(name = "enumerationKey") String enumerationKey, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 85  
 
 86  
     /**
 87  
      * Retrieves the list of values for a particular enumeration with a certain
 88  
      * context for a particular date. The values returned should be those where
 89  
      * the supplied date is between the effective and expiration dates. Certain
 90  
      * enumerations may not support this functionality.
 91  
      *
 92  
      * @param enumerationKey identifier for the Enumeration
 93  
      * @param contextTypeKey identifier for the enumeration context type
 94  
      * @param contextValue   value for the enumeration context
 95  
      * @param contextDate    date and time to get the enumeration for
 96  
      * @param contextInfo    context information containing the principalId and
 97  
      *                       locale information about the caller of service
 98  
      *                       operation
 99  
      * @return List of Codes and Values
 100  
      * @throws DoesNotExistException     enumerationKey not found
 101  
      * @throws InvalidParameterException invalid contextValue, contextDate or
 102  
      *                                   contextInfo
 103  
      * @throws MissingParameterException missing enumerationKey, contextTypeKey,
 104  
      *                                   contextValue, contextDate or
 105  
      *                                   contextInfo
 106  
      * @throws OperationFailedException  unable to complete request
 107  
      * @throws PermissionDeniedException authorization failure
 108  
      */
 109  
     public List<EnumeratedValueInfo> getEnumeratedValues(@WebParam(name = "enumerationKey") String enumerationKey, @WebParam(name = "contextTypeKey") String contextTypeKey, @WebParam(name = "contextValue") String contextValue, @WebParam(name = "contextDate") Date contextDate, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 110  
 
 111  
 
 112  
     /**
 113  
      * Validates an EnumerationValue. Depending on the value of validationType,
 114  
      * this validation could be limited to tests on just the current object and
 115  
      * its directly contained sub-objects or expanded to perform all tests
 116  
      * related to this object. If an identifier is present for the Process and a
 117  
      * record is found for that identifier, the validation checks if the Process
 118  
      * can be shifted to the new values. If a record cannot be found for the
 119  
      * identifier, it is assumed that the record does not exist and as such, the
 120  
      * checks performed will be much shallower, typically mimicking those
 121  
      * performed by setting the validationType to the current object. This is a
 122  
      * slightly different pattern from the standard validation as the caller
 123  
      * provides the identifier in the create statement instead of the server
 124  
      * assigning an identifier.
 125  
      *
 126  
      * @param validationTypeKey   the identifier of the extent of validation
 127  
      * @param enumerationKey      identifier for the Enumeration
 128  
      * @param code                code identifying the value to be validated
 129  
      * @param enumeratedValueInfo the Room information to be tested
 130  
      * @param contextInfo         Context information containing the principalId
 131  
      *                            and locale information about the caller of
 132  
      *                            service operation
 133  
      * @return Results from performing the validation
 134  
      * @throws DoesNotExistException     validationTypeKey, enumerationKey or
 135  
      *                                   code not found
 136  
      * @throws InvalidParameterException invalid enumeratedValueInfo or
 137  
      *                                   contextInfo
 138  
      * @throws MissingParameterException missing validationTypeKey, enumerationKey,
 139  
      *                                   code, enumeratedValueInfo or
 140  
      *                                   contextInfo
 141  
      * @throws OperationFailedException  unable to complete request
 142  
      * @throws PermissionDeniedException authorization failure
 143  
      */
 144  
     public List<ValidationResultInfo> validateEnumeratedValue(@WebParam(name = "validationTypeKey") String validationTypeKey, @WebParam(name = "enumerationKey") String enumerationKey, @WebParam(name = "code") String code, @WebParam(name = "enumeratedValueInfo") EnumeratedValueInfo enumeratedValueInfo, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 145  
 
 146  
 
 147  
     /**
 148  
      * Updates a value in a particular Enumeration. The pattern in this
 149  
      * signature is different from most updates in that it is unlikely for
 150  
      * multiple individuals or processes to be altering the same construct at
 151  
      * the same time.
 152  
      *
 153  
      * @param enumerationKey      identifier for the Enumeration
 154  
      * @param code                code identifying the value to be updated
 155  
      * @param enumeratedValueInfo updated information on the value
 156  
      * @param contextInfo         context information containing the principalId
 157  
      *                            and locale information about the caller of
 158  
      *                            service operation
 159  
      * @return updated enumerated value
 160  
      * @throws DataValidationErrorException supplied data is invalid
 161  
      * @throws DoesNotExistException        enumerationKey, code not found
 162  
      * @throws InvalidParameterException    invalid enumeratedValueInfo or
 163  
      *                                      contextInfo
 164  
      * @throws MissingParameterException    missing enumerationKey, code,
 165  
      *                                      enumeratedValueInfo or contextInfo
 166  
      * @throws OperationFailedException     unable to complete request
 167  
      * @throws PermissionDeniedException    authorization failure
 168  
      * @throws ReadOnlyException            an attempt at changing information
 169  
      *                                      designated as read only
 170  
      * @throws VersionMismatchException     an optimistic locking failure or the
 171  
      *                                      action was attempted on an out of
 172  
      *                                      date version
 173  
      */
 174  
     public EnumeratedValueInfo updateEnumeratedValue(@WebParam(name = "enumerationKey") String enumerationKey, @WebParam(name = "code") String code, @WebParam(name = "enumeratedValueInfo") EnumeratedValueInfo enumeratedValueInfo, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DataValidationErrorException, DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException, ReadOnlyException, VersionMismatchException;
 175  
 
 176  
     /**
 177  
      * Removes a value from a particular Enumeration. This particular operation
 178  
      * should be used sparingly, as removal of a value may lead to dangling
 179  
      * references. It is suggested that standard procedure should be to update
 180  
      * the expiration date for the value so that it is seen as expired.
 181  
      *
 182  
      * @param enumerationKey Identifier for the Enumeration
 183  
      * @param code           code identifying the value to be removed
 184  
      * @param contextInfo    context information containing the principalId and
 185  
      *                       locale information about the caller of service
 186  
      *                       operation
 187  
      * @return Status of the operation (success, failed)
 188  
      * @throws DoesNotExistException     enumerationKey, code not found
 189  
      * @throws InvalidParameterException invalid contextInfo
 190  
      * @throws MissingParameterException missing enumerationKey, code or
 191  
      *                                   contextInfo
 192  
      * @throws OperationFailedException  unable to complete request
 193  
      * @throws PermissionDeniedException authorization failure
 194  
      */
 195  
     public StatusInfo deleteEnumeratedValue(@WebParam(name = "enumerationKey") String enumerationKey, @WebParam(name = "code") String code, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 196  
 
 197  
     /**
 198  
      * Adds a value to a particular Enumeration.
 199  
      *
 200  
      * @param enumerationKey      Identifier for the Enumeration
 201  
      * @param code                code identifying the value to be added
 202  
      * @param enumeratedValueInfo Value to be added
 203  
      * @param contextInfo         context information containing the principalId
 204  
      *                            and locale information about the caller of
 205  
      *                            service operation
 206  
      * @return Newly created enumerated value
 207  
      * @throws AlreadyExistsException       combination of enumerationKey, code
 208  
      *                                      already exists
 209  
      * @throws DataValidationErrorException supplied data is invalid
 210  
      * @throws DoesNotExistException        enumerationKey not found
 211  
      * @throws InvalidParameterException    invalid enumeratedValueInfo or
 212  
      *                                      contextInfo
 213  
      * @throws MissingParameterException    missing enumerationKey, enumeratedValueInfo
 214  
      *                                      or contextInfo
 215  
      * @throws OperationFailedException     unable to complete request
 216  
      * @throws PermissionDeniedException    authorization failure
 217  
      * @throws ReadOnlyException            an attempt at changing information
 218  
      *                                      designated as read only
 219  
      */
 220  
     public EnumeratedValueInfo addEnumeratedValue(@WebParam(name = "enumerationKey") String enumerationKey, @WebParam(name = "code") String code, @WebParam(name = "enumeratedValueInfo") EnumeratedValueInfo enumeratedValueInfo, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws AlreadyExistsException, DataValidationErrorException, DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException, ReadOnlyException;
 221  
 
 222  
 }
 223