Coverage Report - org.kuali.student.core.proposal.service.ProposalService
 
Classes in this File Line Coverage Branch Coverage Complexity
ProposalService
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.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  
 }