1 /** 2 * Copyright 2012 The Kuali Foundation 3 * 4 * Licensed under the Educational Community License, Version 2.0 (the 5 * "License"); you may not use this file except in compliance with the 6 * License. You may obtain a copy of the License at 7 * 8 * http://www.osedu.org/licenses/ECL-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 13 * implied. See the License for the specific language governing 14 * permissions and limitations under the License. 15 */ 16 17 package org.kuali.student.core.rate.service; 18 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.rice.core.api.criteria.QueryByCriteria; 26 27 import org.kuali.student.core.rate.dto.CatalogRateInfo; 28 import org.kuali.student.core.rate.dto.RateInfo; 29 30 import org.kuali.student.r2.common.dto.ContextInfo; 31 import org.kuali.student.r2.common.dto.StatusInfo; 32 import org.kuali.student.r2.common.dto.ValidationResultInfo; 33 34 import org.kuali.student.r2.common.exceptions.DataValidationErrorException; 35 import org.kuali.student.r2.common.exceptions.DependentObjectsExistException; 36 import org.kuali.student.r2.common.exceptions.DoesNotExistException; 37 import org.kuali.student.r2.common.exceptions.InvalidParameterException; 38 import org.kuali.student.r2.common.exceptions.MissingParameterException; 39 import org.kuali.student.r2.common.exceptions.OperationFailedException; 40 import org.kuali.student.r2.common.exceptions.PermissionDeniedException; 41 import org.kuali.student.r2.common.exceptions.ReadOnlyException; 42 import org.kuali.student.r2.common.exceptions.VersionMismatchException; 43 44 /** 45 * This service supports the management of rates. The managed entities 46 * are: 47 * 48 * <dl> 49 * <dt>CatalogRate</dt> <dd>This is an "entry" in the rate catalog. The 50 * rate catalog represents a catalog of 51 * "canonical-like" rates. Approved catalog entries 52 * may be used to create a specific rate to an 53 * external object.</dd> 54 * 55 * <dt>Rate</dt> <dd>The actual rate associated with an external object. The 56 * Rate is constrained by its related entry in the rate 57 * catalog.</dd> 58 * </dl> 59 * 60 * @version 0.0.8 61 * @author Kuali Student Services 62 */ 63 64 @WebService(name = "RateService", serviceName = "RateService", portName = "RateService", targetNamespace = RateServiceNamespace.NAMESPACE) 65 @SOAPBinding(style = SOAPBinding.Style.DOCUMENT, use = SOAPBinding.Use.LITERAL, parameterStyle = SOAPBinding.ParameterStyle.WRAPPED) 66 67 public interface RateService { 68 69 /** 70 * Retrieves a single CatalogRate by CatalogRate Id. 71 * 72 * @param catalogRateId the identifier for the rate to be retrieved 73 * @param contextInfo information containing the principalId and 74 * locale information about the caller of service operation 75 * @return the CatalogRate requested 76 * @throws DoesNotExistException catalogRateId not found 77 * @throws InvalidParameterException contextInfo is not valid 78 * @throws MissingParameterException catalogRateId or contextInfo is 79 * missing or null 80 * @throws OperationFailedException unable to complete request 81 * @throws PermissionDeniedException an authorization failure occurred 82 */ 83 public CatalogRateInfo getCatalogRate(@WebParam(name = "catalogRateId") String catalogRateId, 84 @WebParam(name = "contextInfo") ContextInfo contextInfo) 85 throws DoesNotExistException, 86 InvalidParameterException, 87 MissingParameterException, 88 OperationFailedException, 89 PermissionDeniedException; 90 91 /** 92 * Retrieves a list of CatalogRates from a list of CatalogRate 93 * Ids. The returned list may be in any order and if duplicates 94 * Ids are supplied, a unique set may or may not be returned. 95 * 96 * @param catalogRateIds a list of CatalogRate identifiers 97 * @param contextInfo information containing the principalId and 98 * locale information about the caller of service operation 99 * @return a list of CatalogRates 100 * @throws DoesNotExistException a catalogRateId in the list not found 101 * @throws InvalidParameterException contextInfo is invalid 102 * @throws MissingParameterException catalogRateIds, an Id in 103 * catalogRateIds, or contextInfo is missing or null 104 * @throws OperationFailedException unable to complete request 105 * @throws PermissionDeniedException an authorization failure occurred 106 */ 107 public List<CatalogRateInfo> getCatalogRatesByIds(@WebParam(name = "catalogRateIds") List<String> catalogRateIds, 108 @WebParam(name = "contextInfo") ContextInfo contextInfo) 109 throws DoesNotExistException, 110 InvalidParameterException, 111 MissingParameterException, 112 OperationFailedException, 113 PermissionDeniedException; 114 115 /** 116 * Retrieves a list of CatalogRate Ids by CatalogRate Type. 117 * 118 * @param catalogRateTypeKey an identifier for a CatalogRate Type 119 * @param contextInfo information containing the principalId and 120 * locale information about the caller of service operation 121 * @return a list of CatalogRate identifiers matching 122 * catalogRateTypeKey or an empty list if none found 123 * @throws InvalidParameterException contextInfo is not valid 124 * @throws MissingParameterException catalogRateTypeKey or 125 * contextInfo is missing or null 126 * @throws OperationFailedException unable to complete request 127 * @throws PermissionDeniedException an authorization failure occurred 128 */ 129 public List<String> getCatalogRateIdsByType(@WebParam(name = "catalogRateTypeKey") String catalogRateTypeKey, 130 @WebParam(name = "contextInfo") ContextInfo contextInfo) 131 throws InvalidParameterException, 132 MissingParameterException, 133 OperationFailedException, 134 PermissionDeniedException; 135 136 /** 137 * Retrieves a list of CatalogRates by code. 138 * 139 * @param code a CatalogRate code 140 * @param contextInfo information containing the principalId and 141 * locale information about the caller of service operation 142 * @return a list of CatalogRates 143 * @throws InvalidParameterException contextInfo is invalid 144 * @throws MissingParameterException code or contextInfo is 145 * missing or null 146 * @throws OperationFailedException unable to complete request 147 * @throws PermissionDeniedException an authorization failure occurred 148 */ 149 public List<CatalogRateInfo> getCatalogRatesByCode(@WebParam(name = "code") String code, 150 @WebParam(name = "contextInfo") ContextInfo contextInfo) 151 throws InvalidParameterException, 152 MissingParameterException, 153 OperationFailedException, 154 PermissionDeniedException; 155 156 /** 157 * Searches for CatalogRates based on the criteria and returns a 158 * list of CatalogRate identifiers which match the search 159 * criteria. 160 * 161 * @param criteria the search criteria 162 * @param contextInfo information containing the principalId and 163 * locale information about the caller of service operation 164 * @return list of CatalogRate Ids matching the criteria 165 * @throws InvalidParameterException criteria or contextInfo is 166 * not valid 167 * @throws MissingParameterException criteria or contextInfo is 168 * missing or null 169 * @throws OperationFailedException unable to complete request 170 * @throws PermissionDeniedException an authorization failure occurred 171 */ 172 public List<String> searchForCatalogRateIds(@WebParam(name = "criteria") QueryByCriteria criteria, 173 @WebParam(name = "contextInfo") ContextInfo contextInfo) 174 throws InvalidParameterException, 175 MissingParameterException, 176 OperationFailedException, 177 PermissionDeniedException; 178 179 /** 180 * Searches for CatalogRates based on the criteria and returns a 181 * list of CatalogRates which match the search criteria. 182 * 183 * @param criteria the search criteria 184 * @param contextInfo information containing the principalId and 185 * locale information about the caller of service operation 186 * @return list of CatalogRates matching the criteria 187 * @throws InvalidParameterException criteria or contextInfo is 188 * not valid 189 * @throws MissingParameterException criteria or contextInfo is 190 * missing or null 191 * @throws OperationFailedException unable to complete request 192 * @throws PermissionDeniedException an authorization failure occurred 193 */ 194 public List<CatalogRateInfo> searchForCatalogRates(@WebParam(name = "criteria") QueryByCriteria criteria, 195 @WebParam(name = "contextInfo") ContextInfo contextInfo) 196 throws InvalidParameterException, 197 MissingParameterException, 198 OperationFailedException, 199 PermissionDeniedException; 200 201 /** 202 * Validates a CatalogRate. Depending on the value of 203 * validationType, this validation could be limited to tests on 204 * just the current CatalogRate and its directly contained 205 * sub-objects or expanded to perform all tests related to this 206 * CatalogRate. If an identifier is present for the CatalogRate 207 * (and/or one of its contained sub-objects) and a record is found 208 * for that identifier, the validation checks if the CatalogRate 209 * can be updated to the new values. If an identifier is not 210 * present or a record does not exist, the validation checks if 211 * the object with the given data can be created. 212 * 213 * @param validationTypeKey the identifier for the validation Type 214 * @param catalogRateTypeKey the identifier for the rate Type 215 * @param catalogRateInfo the CatalogRate information to be validated 216 * @param contextInfo information containing the principalId and 217 * locale information about the caller of service operation 218 * @return a list of validation results or an empty list if 219 * validation succeeded 220 * @throws DoesNotExistException validationTypeKey or 221 * catalogRateTypeKey is not found 222 * @throws InvalidParameterException catalogRateInfo or contextInfo 223 * is not valid 224 * @throws MissingParameterException validationTypeKey, 225 * catalogRateTypeKey, catalogRateInfo, or contextInfo is 226 * missing or null 227 * @throws OperationFailedException unable to complete request 228 * @throws PermissionDeniedException an authorization failure occurred 229 */ 230 public List<ValidationResultInfo> validateCatalogRate(@WebParam(name = "validationTypeKey") String validationTypeKey, 231 @WebParam(name = "catalogRateTypeKey") String catalogRateTypeKey, 232 @WebParam(name = "catalogRateInfo") CatalogRateInfo catalogRateInfo, 233 @WebParam(name = "contextInfo") ContextInfo contextInfo) 234 throws DoesNotExistException, 235 InvalidParameterException, 236 MissingParameterException, 237 OperationFailedException, 238 PermissionDeniedException; 239 240 /** 241 * Creates a new CatalogRate. The CatalogRate Id, Type, and Meta 242 * information may nogt be set in the supplied data. 243 * 244 * @param catalogRateTypeKey the identifier for the Type of the new 245 * CatalogRate 246 * @param catalogRateInfo the data with which to create the CatalogRate 247 * @param contextInfo information containing the principalId and 248 * locale information about the caller of service operation 249 * @return the new CatalogRate 250 * @throws DataValidationErrorException supplied data is invalid 251 * @throws DoesNotExistException catalogRateTypeKey does not 252 * exist is not supported 253 * @throws InvalidParameterException catalogRateInfo or contextInfo 254 * is not valid 255 * @throws MissingParameterException catalogRateTypeKey, 256 * catalogRateInfo or contextInfo is missing or null 257 * @throws OperationFailedException unable to complete request 258 * @throws PermissionDeniedException an authorization failure occurred 259 * @throws ReadOnlyException an attempt at supplying information 260 * designated as read-only 261 */ 262 public CatalogRateInfo createCatalogRate(@WebParam(name = "catalogRateTypeKey") String catalogRateTypeKey, 263 @WebParam(name = "catalogRateInfo") CatalogRateInfo catalogRateInfo, 264 @WebParam(name = "contextInfo") ContextInfo contextInfo) 265 throws DataValidationErrorException, 266 InvalidParameterException, 267 MissingParameterException, 268 OperationFailedException, 269 PermissionDeniedException, 270 ReadOnlyException; 271 272 /** 273 * Updates an existing CatalogRate. The CatalogRate Id, Type, and 274 * Meta information may not be changed. 275 * 276 * @param catalogRateId the identifier for the CatalogRate to be 277 * updated 278 * @param catalogRateInfo the new data for the CatalogRate 279 * @param contextInfo information containing the principalId and 280 * locale information about the caller of service operation 281 * @return the updated CatalogRate 282 * @throws DataValidationErrorException supplied data is invalid 283 * @throws DoesNotExistException catalogRateId not found 284 * @throws InvalidParameterException catalogRateInfo or 285 * contextInfo is not valid 286 * @throws MissingParameterException catalogRateId, 287 * catalogRateInfo, or contextInfo is missing or null 288 * @throws OperationFailedException unable to complete request 289 * @throws PermissionDeniedException an authorization failure occurred 290 * @throws ReadOnlyException an attempt at changing information 291 * designated as read-only 292 * @throws VersionMismatchException optimistic locking failure or 293 * the action was attempted on an out of date version 294 */ 295 public CatalogRateInfo updateCatalogRate(@WebParam(name = "catalogRateId") String catalogRateId, 296 @WebParam(name = "catalogRateInfo") CatalogRateInfo catalogRateInfo, 297 @WebParam(name = "contextInfo") ContextInfo contextInfo) 298 throws DataValidationErrorException, 299 DoesNotExistException, 300 InvalidParameterException, 301 MissingParameterException, 302 OperationFailedException, 303 PermissionDeniedException, 304 ReadOnlyException, 305 VersionMismatchException; 306 307 /** 308 * Changes the state of a CatalogRate. 309 * 310 * @param catalogRateId the Id of the CatalogRate 311 * @param stateKey the identifier for the new State 312 * @param contextInfo information containing the principalId and 313 * locale information about the caller of service operation 314 * @return the status of the operation. This must always be 315 * true. 316 * @throws DoesNotExistException catalogRateId not found or 317 * stateKey not found in CatalogRate Lifecycle 318 * @throws InvalidParameterException contextInfo is not valid 319 * @throws MissingParameterException catalogRateId, stateKey, or 320 * contextInfo is missing or null 321 * @throws OperationFailedException unable to complete request 322 * @throws PermissionDeniedException an authorization failure occurred 323 */ 324 public StatusInfo changeCatalogRateState(@WebParam(name = "catalogRateId") String catalogRateId, 325 @WebParam(name = "stateKey") String stateKey, 326 @WebParam(name = "contextInfo") ContextInfo contextInfo) 327 throws DoesNotExistException, 328 InvalidParameterException, 329 MissingParameterException, 330 OperationFailedException, 331 PermissionDeniedException; 332 333 /** 334 * Deletes an existing CatalogRate. 335 * 336 * @param catalogRateId the identifier for the CatalogRate to be 337 * deleted 338 * @param contextInfo information containing the principalId and 339 * locale information about the caller of service operation 340 * @return the status of the delete operation. This must always be 341 * true. 342 * @throws DependentObjectsExistException Rates are attached to 343 * this RateCatalog 344 * @throws DoesNotExistException catalogRateId not found 345 * @throws InvalidParameterException contextInfo is not valid 346 * @throws MissingParameterException catalogRateId or contextInfo 347 * is missing or null 348 * @throws OperationFailedException unable to complete request 349 * @throws PermissionDeniedException an authorization failure occurred 350 */ 351 public StatusInfo deleteCatalogRate(@WebParam(name = "catalogRateId") String catalogRateId, 352 @WebParam(name = "contextInfo") ContextInfo contextInfo) 353 throws DependentObjectsExistException, 354 DoesNotExistException, 355 InvalidParameterException, 356 MissingParameterException, 357 OperationFailedException, 358 PermissionDeniedException; 359 360 /** 361 * Retrieves a single Rate by Rate Id. 362 * 363 * @param rateId the identifier for the rate to be retrieved 364 * @param contextInfo information containing the principalId and 365 * locale information about the caller of service operation 366 * @return the Rate requested 367 * @throws DoesNotExistException rateId not found 368 * @throws InvalidParameterException contextInfo is not valid 369 * @throws MissingParameterException rateId or contextInfo is 370 * missing or null 371 * @throws OperationFailedException unable to complete request 372 * @throws PermissionDeniedException an authorization failure occurred 373 */ 374 public RateInfo getRate(@WebParam(name = "rateId") String rateId, 375 @WebParam(name = "contextInfo") ContextInfo contextInfo) 376 throws DoesNotExistException, 377 InvalidParameterException, 378 MissingParameterException, 379 OperationFailedException, 380 PermissionDeniedException; 381 382 /** 383 * Retrieves a list of Rates from a list of Rate Ids. The returned 384 * list may be in any order and if duplicates Ids are supplied, a 385 * unique set may or may not be returned. 386 * 387 * @param rateIds a list of Rate identifiers 388 * @param contextInfo information containing the principalId and 389 * locale information about the caller of service operation 390 * @return a list of Rates 391 * @throws DoesNotExistException a rateId in the list not found 392 * @throws InvalidParameterException contextInfo is invalid 393 * @throws MissingParameterException rateIds, an Id in rateIds, or 394 * contextInfo is missing or null 395 * @throws OperationFailedException unable to complete request 396 * @throws PermissionDeniedException an authorization failure occurred 397 */ 398 public List<RateInfo> getRatesByIds(@WebParam(name = "rateIds") List<String> rateIds, 399 @WebParam(name = "contextInfo") ContextInfo contextInfo) 400 throws DoesNotExistException, 401 InvalidParameterException, 402 MissingParameterException, 403 OperationFailedException, 404 PermissionDeniedException; 405 406 /** 407 * Retrieves a list of Rate Ids by Rate Type. 408 * 409 * @param rateTypeKey an identifier for a Rate Type 410 * @param contextInfo information containing the principalId and 411 * locale information about the caller of service operation 412 * @return a list of Rate identifiers matching rateTypeKey or an 413 * empty list if none found 414 * @throws InvalidParameterException contextInfo is not valid 415 * @throws MissingParameterException rateTypeKey or contextInfo is 416 * missing or null 417 * @throws OperationFailedException unable to complete request 418 * @throws PermissionDeniedException an authorization failure occurred 419 */ 420 public List<String> getRateIdsByType(@WebParam(name = "rateTypeKey") String rateTypeKey, 421 @WebParam(name = "contextInfo") ContextInfo contextInfo) 422 throws InvalidParameterException, 423 MissingParameterException, 424 OperationFailedException, 425 PermissionDeniedException; 426 427 /** 428 * Retrieves a list of Rates belonging to a CatalogRate. 429 * 430 * @param catalogRateId the identifier for a rate catalog entry 431 * @param contextInfo information containing the principalId and 432 * locale information about the caller of service operation 433 * @return a list of Rates for the rate catalog entry or an empty 434 * list is none found 435 * @throws InvalidParameterException contextInfo is not valid 436 * @throws MissingParameterException catalogRateId or contextInfo 437 * is missing or null 438 * @throws OperationFailedException unable to complete request 439 * @throws PermissionDeniedException an authorization failure occurred 440 */ 441 public List<RateInfo> getRatesByCatalogRate(@WebParam(name = "catalogRateId") String catalogRateId, 442 @WebParam(name = "contextInfo") ContextInfo contextInfo) 443 throws InvalidParameterException, 444 MissingParameterException, 445 OperationFailedException, 446 PermissionDeniedException; 447 448 /** 449 * Searches for Rates based on the criteria and returns a list of 450 * Rate identifiers which match the search criteria. 451 * 452 * @param criteria the search criteria 453 * @param contextInfo information containing the principalId and 454 * locale information about the caller of service operation 455 * @return list of Rate Ids matching the criteria 456 * @throws InvalidParameterException criteria or contextInfo is 457 * not valid 458 * @throws MissingParameterException criteria or contextInfo is 459 * missing or null 460 * @throws OperationFailedException unable to complete request 461 * @throws PermissionDeniedException an authorization failure occurred 462 */ 463 public List<String> searchForRateIds(@WebParam(name = "criteria") QueryByCriteria criteria, 464 @WebParam(name = "contextInfo") ContextInfo contextInfo) 465 throws InvalidParameterException, 466 MissingParameterException, 467 OperationFailedException, 468 PermissionDeniedException; 469 470 /** 471 * Searches for Rates based on the criteria and returns a list of 472 * Rates which match the search criteria. 473 * 474 * @param criteria the search criteria 475 * @param contextInfo information containing the principalId and 476 * locale information about the caller of service operation 477 * @return list of Rates matching the criteria 478 * @throws InvalidParameterException criteria or contextInfo is 479 * not valid 480 * @throws MissingParameterException criteria or contextInfo is 481 * missing or null 482 * @throws OperationFailedException unable to complete request 483 * @throws PermissionDeniedException an authorization failure occurred 484 */ 485 public List<RateInfo> searchForRates(@WebParam(name = "criteria") QueryByCriteria criteria, 486 @WebParam(name = "contextInfo") ContextInfo contextInfo) 487 throws InvalidParameterException, 488 MissingParameterException, 489 OperationFailedException, 490 PermissionDeniedException; 491 492 /** 493 * Validates a Rate. Depending on the value of validationType, 494 * this validation could be limited to tests on just the current 495 * Rate and its directly contained sub-objects or expanded to 496 * perform all tests related to this Rate. If an identifier is 497 * present for the Rate (and/or one of its contained sub-objects) 498 * and a record is found for that identifier, the validation 499 * checks if the Rate can be updated to the new values. If an 500 * identifier is not present or a record does not exist, the 501 * validation checks if the object with the given data can be 502 * created. 503 * 504 * @param validationTypeKey the identifier for the validation Type 505 * @param catalogRateId the identifier for the rate catalog entry 506 * @param rateTypeKey the identifier for the rate Type 507 * @param rateInfo the Rate information to be validated 508 * @param contextInfo information containing the principalId and 509 * locale information about the caller of service operation 510 * @return a list of validation results or an empty list if 511 * validation succeeded 512 * @throws DoesNotExistException validationTypeKey, catalogRateId, 513 * or rateTypeKey is not found 514 * @throws InvalidParameterException rateInfo or contextInfo is 515 * not valid 516 * @throws MissingParameterException validationTypeKey, 517 * catalogRateId, rateTypeKey, rateInfo, or contextInfo is 518 * missing or null 519 * @throws OperationFailedException unable to complete request 520 * @throws PermissionDeniedException an authorization failure occurred 521 */ 522 public List<ValidationResultInfo> validateRate(@WebParam(name = "validationTypeKey") String validationTypeKey, 523 @WebParam(name = "catalogRateId") String catalogRateId, 524 @WebParam(name = "rateTypeKey") String rateTypeKey, 525 @WebParam(name = "rateInfo") RateInfo rateInfo, 526 @WebParam(name = "contextInfo") ContextInfo contextInfo) 527 throws DoesNotExistException, 528 InvalidParameterException, 529 MissingParameterException, 530 OperationFailedException, 531 PermissionDeniedException; 532 533 /** 534 * Creates a new Rate. The Rate Id, Type, and Meta information may 535 * not be set in the supplied data. 536 * 537 * @param catalogRateId the identifier for the rate catalog entry 538 * @param rateTypeKey the identifier for the Type of the new Rate 539 * @param rateInfo the data with which to create the Rate 540 * @param contextInfo information containing the principalId and 541 * locale information about the caller of service operation 542 * @return the new Rate 543 * @throws DataValidationErrorException supplied data is invalid 544 * @throws DoesNotExistException catalogRateId or rateTypeKey does 545 * not exist or is not supported 546 * @throws InvalidParameterException rateInfo or contextInfo is not 547 * valid 548 * @throws MissingParameterException catalogRateId, rateTypeKey, 549 * rateInfo or contextInfo is missing or null 550 * @throws OperationFailedException unable to complete request 551 * @throws PermissionDeniedException an authorization failure occurred 552 * @throws ReadOnlyException an attempt at supplying information 553 * designated as read-only 554 */ 555 public RateInfo createRate(@WebParam(name = "catalogRateId") String catalogRateId, 556 @WebParam(name = "rateTypeKey") String rateTypeKey, 557 @WebParam(name = "rateInfo") RateInfo rateInfo, 558 @WebParam(name = "contextInfo") ContextInfo contextInfo) 559 throws DataValidationErrorException, 560 InvalidParameterException, 561 MissingParameterException, 562 OperationFailedException, 563 PermissionDeniedException, 564 ReadOnlyException; 565 566 /** 567 * Updates an existing Rate. The Rate Id, Type, and Meta 568 * information may not be changed. 569 * 570 * @param rateId the identifier for the Rate to be updated 571 * @param rateInfo the new data for the Rate 572 * @param contextInfo information containing the principalId and 573 * locale information about the caller of service operation 574 * @return the updated Rate 575 * @throws DataValidationErrorException supplied data is invalid 576 * @throws DoesNotExistException rateId not found 577 * @throws InvalidParameterException rateInfo or contextInfo is 578 * not valid 579 * @throws MissingParameterException rateId, rateInfo, or 580 * contextInfo is missing or null 581 * @throws OperationFailedException unable to complete request 582 * @throws PermissionDeniedException an authorization failure occurred 583 * @throws ReadOnlyException an attempt at changing information 584 * designated as read-only 585 * @throws VersionMismatchException optimistic locking failure or 586 * the action was attempted on an out of date version 587 */ 588 public RateInfo updateRate(@WebParam(name = "rateId") String rateId, 589 @WebParam(name = "rateInfo") RateInfo rateInfo, 590 @WebParam(name = "contextInfo") ContextInfo contextInfo) 591 throws DataValidationErrorException, 592 DoesNotExistException, 593 InvalidParameterException, 594 MissingParameterException, 595 OperationFailedException, 596 PermissionDeniedException, 597 ReadOnlyException, 598 VersionMismatchException; 599 600 /** 601 * Changes the state of a Rate. 602 * 603 * @param rateId the Id of the Rate 604 * @param stateKey the identifier for the new State 605 * @param contextInfo information containing the principalId and 606 * locale information about the caller of service operation 607 * @return the status of the operation. This must always be true. 608 * @throws DoesNotExistException rateId not found or stateKey 609 * not found in Rate Lifecycle 610 * @throws InvalidParameterException contextInfo is not valid 611 * @throws MissingParameterException rateId, stateKey, or 612 * contextInfo is missing or null 613 * @throws OperationFailedException unable to complete request 614 * @throws PermissionDeniedException an authorization failure occurred 615 */ 616 public StatusInfo changeRateState(@WebParam(name = "rateId") String rateId, 617 @WebParam(name = "stateKey") String stateKey, 618 @WebParam(name = "contextInfo") ContextInfo contextInfo) 619 throws DoesNotExistException, 620 InvalidParameterException, 621 MissingParameterException, 622 OperationFailedException, 623 PermissionDeniedException; 624 625 /** 626 * Deletes an existing Rate. 627 * 628 * @param rateId the identifier for the Rate to be deleted 629 * @param contextInfo information containing the principalId and 630 * locale information about the caller of service operation 631 * @return the status of the delete operation. This must always be 632 * true. 633 * @throws DoesNotExistException rateId not found 634 * @throws InvalidParameterException contextInfo is not valid 635 * @throws MissingParameterException rateId or contextInfo is 636 * missing or null 637 * @throws OperationFailedException unable to complete request 638 * @throws PermissionDeniedException an authorization failure occurred 639 */ 640 public StatusInfo deleteRate(@WebParam(name = "rateId") String rateId, 641 @WebParam(name = "contextInfo") ContextInfo contextInfo) 642 throws DoesNotExistException, 643 InvalidParameterException, 644 MissingParameterException, 645 OperationFailedException, 646 PermissionDeniedException; 647 }