1 /** 2 * Copyright 2010 The Kuali Foundation 3 * 4 * Licensed under the the Educational Community License, Version 1.0 5 * (the "License"); you may not use this file except in compliance 6 * with the License. You may obtain a copy of the License at 7 * 8 * http://www.opensource.org/licenses/ecl1.php 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 implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17 package org.kuali.student.enrollment.lui.service; 18 19 import org.kuali.rice.core.api.criteria.QueryByCriteria; 20 import org.kuali.student.enrollment.lui.dto.LuiCapacityInfo; 21 import org.kuali.student.enrollment.lui.dto.LuiInfo; 22 import org.kuali.student.enrollment.lui.dto.LuiLuiRelationInfo; 23 import org.kuali.student.r2.common.dto.ContextInfo; 24 import org.kuali.student.r2.common.dto.StatusInfo; 25 import org.kuali.student.r2.common.dto.ValidationResultInfo; 26 import org.kuali.student.r2.common.exceptions.CircularRelationshipException; 27 import org.kuali.student.r2.common.exceptions.DataValidationErrorException; 28 import org.kuali.student.r2.common.exceptions.DependentObjectsExistException; 29 import org.kuali.student.r2.common.exceptions.DoesNotExistException; 30 import org.kuali.student.r2.common.exceptions.InvalidParameterException; 31 import org.kuali.student.r2.common.exceptions.MissingParameterException; 32 import org.kuali.student.r2.common.exceptions.OperationFailedException; 33 import org.kuali.student.r2.common.exceptions.PermissionDeniedException; 34 import org.kuali.student.r2.common.exceptions.ReadOnlyException; 35 import org.kuali.student.r2.common.exceptions.VersionMismatchException; 36 import org.kuali.student.r2.common.util.constants.LuiServiceConstants; 37 38 import javax.jws.WebParam; 39 import javax.jws.WebService; 40 import javax.jws.soap.SOAPBinding; 41 import java.util.List; 42 43 /** 44 * Learning Unit Instance (LUI) Service 45 * 46 * Manages the creation of Instances of the canonical Learning unit. 47 * An instance is associated with a particular time period during 48 * which is is offered. 49 * 50 * This includes course and section offerings as well as program 51 * offerings 52 * 53 * @version 1.0 (Dev) 54 * 55 * @author tom 56 */ 57 58 @WebService(name = "LuiService", serviceName ="LuiService", portName = "LuiService", targetNamespace = LuiServiceConstants.NAMESPACE) 59 @SOAPBinding(style = SOAPBinding.Style.DOCUMENT, use = SOAPBinding.Use.LITERAL, parameterStyle = SOAPBinding.ParameterStyle.WRAPPED) 60 61 public interface LuiService { 62 63 /** 64 * Retrieves a single Lui by a Lui Id. 65 * 66 * @param luiId the identifier for the Lui to be retrieved 67 * @param contextInfo information containing the principalId and 68 * locale information about the caller of service operation 69 * @return the Lui requested 70 * @throws DoesNotExistException luiId not found 71 * @throws InvalidParameterException contextInfo is not valid 72 * @throws MissingParameterException luiId or contextInfo is 73 * missing or null 74 * @throws OperationFailedException unable to complete request 75 * @throws PermissionDeniedException an authorization failure occurred 76 */ 77 public LuiInfo getLui(@WebParam(name = "luiId") String luiId, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; 78 79 /** 80 * Retrieves a list of Luis from a list of Lui Ids. The 81 * returned list may be in any order and if duplicates Ids are 82 * supplied, a unique set may or may not be returned. 83 * 84 * @param luiIds a list of Lui identifiers 85 * @param contextInfo information containing the principalId and 86 * locale information about the caller of service operation 87 * @return a list of Luis 88 * @throws DoesNotExistException a luiId in the list was not found 89 * @throws InvalidParameterException contextInfo is not valid 90 * @throws MissingParameterException luiIds, an Id in luiIds, or 91 * contextInfo is missing or null 92 * @throws OperationFailedException unable to complete request 93 * @throws PermissionDeniedException an authorization failure occurred 94 */ 95 public List<LuiInfo> getLuisByIds(@WebParam(name = "luiIds") List<String> luiIds, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; 96 97 /** 98 * Retrieves a list of Lui Ids by Lui Type. 99 * 100 * @param luiTypeKey an identifier for a Lui Type 101 * @param contextInfo information containing the principalId and 102 * locale information about the caller of service operation 103 * @return a list of Lui identifiers matching luiTypeKey or an 104 * empty list if none found 105 * @throws InvalidParameterException contextInfo is not valid 106 * @throws MissingParameterException luiTypeKey or contextInfo is 107 * missing or null 108 * @throws OperationFailedException unable to complete request 109 * @throws PermissionDeniedException an authorization failure occurred 110 */ 111 public List<String> getLuiIdsByType(@WebParam(name = "luiTypeKey") String luiTypeKey, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; 112 113 /** 114 * Retrieves a list of Lui Ids by Clu. 115 * (the pattern says this should return the objects). 116 * 117 * @param cluId an identifier for the Clu 118 * @param contextInfo information containing the principalId and 119 * locale information about the caller of service operation 120 * @return list of Lui Ids for the Clu 121 * @throws InvalidParameterException contextInfo is not valid 122 * @throws MissingParameterException cluId or contextInfo is 123 * missing or null 124 * @throws OperationFailedException unable to complete request 125 * @throws PermissionDeniedException an authorization failure occurred 126 */ 127 public List<String> getLuiIdsByClu(@WebParam(name = "cluId") String cluId, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; 128 129 /** 130 * Retrieves the list of Lui Ids for the specified atp and Lui 131 * Type. 132 * 133 * @param atpId an identifier for the Atp 134 * @param luiTypeKey an identifier for the Lui Type 135 * @param contextInfo information containing the principalId and 136 * locale information about the caller of service operation 137 * @return a list of identifiers of Luis offered in the given Atp 138 * of the specified luiType 139 * @throws InvalidParameterException contextInfo is not valid 140 * @throws MissingParameterException atpId, luiTypeKey, or contextInfo 141 * is missing or null 142 * @throws OperationFailedException unable to complete request 143 * @throws PermissionDeniedException an authorization failure occurred 144 */ 145 public List<String> getLuiIdsByAtpAndType(@WebParam(name = "atpId") String atpId, @WebParam(name = "luiTypeKey") String luiTypeKey, @WebParam(name = "contextInfo") ContextInfo contextInfo ) throws InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; 146 147 /** 148 * Retrieves the list of Lui Ids for the specified Clu and Time 149 * period. 150 * 151 * @param cluId an identifier for the Clu 152 * @param atpId an identifier for the Atp 153 * @param contextInfo information containing the principalId and 154 * locale information about the caller of service operation 155 * @return a list of identifiers of Luis offered in atpId and 156 * related to cluId 157 * @throws InvalidParameterException contextInfo is not valid 158 * @throws MissingParameterException cluId, atpId, or contextInfo 159 * is missing or null 160 * @throws OperationFailedException unable to complete request 161 * @throws PermissionDeniedException an authorization failure occurred 162 */ 163 public List<String> getLuiIdsByAtpAndClu(@WebParam(name = "cluId") String cluId, @WebParam(name = "atpId") String atpId, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; 164 165 /** 166 * Retrieves the list of Luis for the specified Clu and Atp. 167 * 168 * @param cluId an identifier for the Clu 169 * @param atpId an identifier for the Atp 170 * @param contextInfo information containing the principalId and 171 * locale information about the caller of service operation 172 * @return a list of Luis offered in atpId and related to cluId 173 * @throws InvalidParameterException contextInfo is not valid 174 * @throws MissingParameterException cluId, atpId, or contextInfo 175 * is missing or null 176 * @throws OperationFailedException unable to complete request 177 * @throws PermissionDeniedException an authorization failure occurred 178 */ 179 public List<LuiInfo> getLuisByAtpAndClu(@WebParam(name = "cluId") String cluId, @WebParam(name = "atpId") String atpId, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; 180 181 /** 182 * Searches for Luis that meet the given search criteria and 183 * returns a list of Lui identifiers that meet the criteria. 184 * 185 * @param criteria the search criteria 186 * @param contextInfo information containing the principalId and 187 * locale information about the caller of service operation 188 * @return a list of Lui Ids matching the criteria 189 * @throws InvalidParameterException criteria or contextInfo is 190 * not valid 191 * @throws MissingParameterException criteria or contextInfo is 192 * missing or null 193 * @throws OperationFailedException unable to complete request 194 * @throws PermissionDeniedException an authorization failure occurred 195 */ 196 public List<String> searchForLuiIds(@WebParam(name = "criteria") QueryByCriteria criteria, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; 197 198 /** 199 * Searches for Luis that meet the given search criteria. 200 * 201 * @param criteria the search criteria 202 * @param contextInfo information containing the principalId and 203 * locale information about the caller of service operation 204 * @return a list of Luis matching the criteria 205 * @throws InvalidParameterException criteria or contextInfo is 206 * not valid 207 * @throws MissingParameterException criteria or contextInfo is 208 * missing or null 209 * @throws OperationFailedException unable to complete request 210 * @throws PermissionDeniedException an authorization failure occurred 211 */ 212 public List<LuiInfo> searchForLuis(@WebParam(name = "criteria") QueryByCriteria criteria, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; 213 214 /** 215 * Validates a Lui. Depending on the value of validationType, this 216 * validation could be limited to tests on just the current Lui 217 * and its directly contained sub-objects or expanded to perform 218 * all tests related to this Lui. If an identifier is present for 219 * the Lui (and/or one of its contained sub-objects) and a record 220 * is found for that identifier, the validation checks if the Lui 221 * can be updated to the new values. If an identifier is not 222 * present or a record does not exist, the validation checks if 223 * the object with the given data can be created. 224 * 225 * @param validationTypeKey the identifier for the validation Type 226 * @param cluId the identifier for the Clu to which the Lui is 227 * attached 228 * @param atpId the identifier for the Atp to which the Lui if 229 * offered 230 * @param luiTypeKey the identifier for the Lui Type 231 * @param luiInfo the object to be validated 232 * @param contextInfo information containing the principalId and 233 * locale information about the caller of service operation 234 * @return a list of validation results or an empty list if 235 * validation succeeded 236 * @throws DoesNotExistException validationTypeKey, cluId, atpId, 237 * or luiTypeKey is not found 238 * @throws InvalidParameterException luiInfo or contextInfo is not 239 * valid 240 * @throws MissingParameterException validationTypeKey, cluId, 241 * atpId, luiTypeKey, luiInfo, or contextInfo is missing 242 * or null 243 * @throws OperationFailedException unable to complete request 244 * @throws PermissionDeniedException an authorization failure occurred 245 */ 246 public List<ValidationResultInfo> validateLui(@WebParam(name = "validationTypeKey") String validationTypeKey, @WebParam(name = "cluId") String cluId, @WebParam(name="atpId") String atpId, @WebParam(name = "luiTypeKey") String luiTypeKey, @WebParam(name = "luiInfo") LuiInfo luiInfo, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;; 247 248 /** 249 * Creates a new LUI. The Lui Id, Type, Clu Id, Atp Id, and Meta 250 * information may not be set in the supplied data. 251 * 252 * @param cluId the identifier for the Clu 253 * @param atpId the identifier for the Atp 254 * @param luiTypeKey an identifier for the Type of the new Lui 255 * @param luiInfo the data with which to create the Lui 256 * @param contextInfo information containing the principalId and 257 * locale information about the caller of service operation 258 * @return the new Lui 259 * @throws DataValidationErrorException supplied data is invalid 260 * @throws DoesNotExistException cluId, atpId, or luiTypeKey is 261 * not found 262 * @throws InvalidParameterException luiInfo or contextInfo is not valid 263 * @throws MissingParameterException cluId, atpId, luiTypeKey, 264 * luiInfo, or contextInfo is missing or null 265 * @throws OperationFailedException unable to complete request 266 * @throws PermissionDeniedException an authorization failure occurred 267 * @throws ReadOnlyException an attempt at supplying information 268 * designated as read only 269 */ 270 public LuiInfo createLui(@WebParam(name = "cluId") String cluId, @WebParam(name = "atpId") String atpId, @WebParam(name = "luiTypeKey") String luiTypeKey, @WebParam(name = "luiInfo") LuiInfo luiInfo, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DataValidationErrorException, DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException, ReadOnlyException; 271 272 /** 273 * Updates an existing Lui. The Lui Id, Type, Clu Id, Atp Id, and 274 * Meta information may not be changed. 275 * 276 * @param luiId the identifier for the LUI to be updated 277 * @param luiInfo the new data for the Lui 278 * @param contextInfo information containing the principalId and 279 * locale information about the caller of service operation 280 * @return the updated Lui 281 * @throws DataValidationErrorException supplied data is invalid 282 * @throws DoesNotExistException luiId not found 283 * @throws InvalidParameterException luiInfo or contextInfo is not valid 284 * @throws MissingParameterException luiId, luiInfo, or 285 * contextInfo is missing or null 286 * @throws OperationFailedException unable to complete request 287 * @throws PermissionDeniedException an authorization failure occurred 288 * @throws ReadOnlyException an attempt at changing information 289 * designated as read only 290 * @throws VersionMismatchException optimistic locking failure or 291 * the action was attempted on an out of date version 292 */ 293 public LuiInfo updateLui(@WebParam(name = "luiId") String luiId, @WebParam(name = "luiInfo") LuiInfo luiInfo, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DataValidationErrorException, DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException, ReadOnlyException, VersionMismatchException; 294 295 /** 296 * Deletes an existing Lui. 297 * 298 * @param luiId the identifier for the LUI to be deleted 299 * @param contextInfo information containing the principalId and 300 * locale information about the caller of service operation 301 * @return the status of the delete operation. This must always be true. 302 * @throws DependentObjectsExistException the delete operation 303 * would leave orphaned objects or violate integrity 304 * constraints 305 * @throws DoesNotExistException luiId not found 306 * @throws InvalidParameterException contextInfo is not valid 307 * @throws MissingParameterException luiId or contextInfo is 308 * missing or null 309 * @throws OperationFailedException unable to complete request 310 * @throws PermissionDeniedException an authorization failure occurred 311 */ 312 public StatusInfo deleteLui(@WebParam(name = "luiId") String luiId, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DependentObjectsExistException, DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; 313 314 /** 315 * Retrieves a single LuiLuiRelation by a LuiLuiRelation Id. 316 * 317 * @param luiLuiRelationId a unique identifier for the 318 * LuiLuiRelation to be retrieved 319 * @param contextInfo information containing the principalId and 320 * locale information about the caller of service operation 321 * @return the LuiLuiRelation requested 322 * @throws DoesNotExistException luiLuiRelationId is not found 323 * @throws InvalidParameterException contextInfo is not valid 324 * @throws MissingParameterException luiLuiRetaionId or 325 * contextInfo is missing or null 326 * @throws OperationFailedException unable to complete request 327 * @throws PermissionDeniedException an authorization failure occurred 328 */ 329 public LuiLuiRelationInfo getLuiLuiRelation(@WebParam(name = "luiLuiRelationId") String luiLuiRelationId, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; 330 331 /** 332 * Retrieves a list of LuiLuiRelations from a list of 333 * LuiLuiRelation Ids. The returned list may be in any order and 334 * if duplicates Ids are supplied, a unique set may or may not be 335 * returned. 336 * 337 * @param luiLuiRelationIds a list of LuiLuiRelation identifiers 338 * @param contextInfo Context information containing the principalId 339 * and locale information about the caller of 340 * service operation 341 * @return information about a list of LuiLuiRelations 342 * @throws DoesNotExistException a luiLuiRelationId in the list 343 * was not found 344 * @throws InvalidParameterException contextInfo is not valid 345 * @throws MissingParameterException luiLuiRelationIds, a 346 * luiLuiRelationId in luiLuiRelationIds, or contextInfo 347 * is missing or null 348 * @throws OperationFailedException unable to complete request 349 * @throws PermissionDeniedException an authorization failure occurred 350 */ 351 public List<LuiLuiRelationInfo> getLuiLuiRelationsByIds(@WebParam(name = "luiLuiRelationIds") List<String> luiLuiRelationIds, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; 352 353 /** 354 * Retrieves a list of LuiLuiRelation Ids by a LuiLuiRelation 355 * Type. 356 * 357 * @param luiLuiRelationTypeKey an identifier for a LuiLuiRelation 358 * Type 359 * @param contextInfo information containing the principalId and 360 * locale information about the caller of service operation 361 * @return a list of LuiLuiRelation identifiers 362 * @throws InvalidParameterException contextInfo is not valid 363 * @throws MissingParameterException luiLuiRelationTypeKey or 364 * contextInfo is missing or null 365 * @throws OperationFailedException unable to complete request 366 * @throws PermissionDeniedException an authorization failure occurred 367 */ 368 public List<String> getLuiLuiRelationIdsByType(@WebParam(name = "luiLuiRelationTypeKey") String luiLuiRelationTypeKey, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; 369 370 /** 371 * Retrieves all LuiLuiRelations to the given Lui. 372 * 373 * @param luiId a unique identifier of the LUI 374 * @param contextInfo information containing the principalId and 375 * locale information about the caller of service operation 376 * @return the LuiLuiRelations to the Lui 377 * @throws InvalidParameterException contextInfo is not valid 378 * @throws MissingParameterException luiId or contextInfo is 379 * missing or null 380 * @throws OperationFailedException unable to complete request 381 * @throws PermissionDeniedException an authorization failure occurred 382 */ 383 public List<LuiLuiRelationInfo> getLuiLuiRelationsByLui(@WebParam(name = "luiId") String luiId, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; 384 385 /** 386 * Retrieves all LuiLuiRelations between the given Luis. 387 * 388 * @param luiId a unique identifier of the LUI 389 * @param relatedLuiId a unique identifier of another LUI 390 * @param contextInfo information containing the principalId and 391 * locale information about the caller of service operation 392 * @return the LuiLuiRelations between the given Luis 393 * @throws InvalidParameterException contextInfo is not valid 394 * @throws MissingParameterException luiId, relatedLuiId, or 395 * contextInfo is missing or null 396 * @throws OperationFailedException unable to complete request 397 * @throws PermissionDeniedException an authorization failure occurred 398 */ 399 public List<LuiLuiRelationInfo> getLuiLuiRelationsByLuiAndRelatedLui(@WebParam(name = "luiId") String luiId, @WebParam(name = "relatedLuiId") String relatedLuiId, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; 400 401 /** 402 * Retrieves a list of LUI Ids for the specified related LUI Id 403 * and LU to LU relation type (getRelatedLuiIdsByLuiId from the 404 * other direction). 405 * 406 * (??? this method seems unnecessary) 407 * 408 * @param relatedLuiId identifier of the LUI 409 * @param luiLuiRelationTypeKey the LU to LU relation type 410 * @param contextInfo Context information containing the principalId 411 * and locale information about the caller of service 412 * operation 413 * @return list of LUI identifiers, empty list of none found 414 * @throws InvalidParameterException invalid parameter 415 * @throws MissingParameterException missing parameter 416 * @throws OperationFailedException unable to complete request 417 * @throws PermissionDeniedException an authorization failure occurred 418 */ 419 public List<String> getLuiIdsByRelatedLuiAndRelationType(@WebParam(name = "relatedLuiId") String relatedLuiId, @WebParam(name = "luiLuiRelationTypeKey") String luiLuiRelationTypeKey, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; 420 421 /** TODO 422 * Retrieves the list of LUI information for the LUIs related to 423 * the specified LUI Id with a certain LU to LU relation type. 424 * (getRelatedLuisByLuiId from the other direction) 425 * 426 * @param relatedLuiId identifier of the LUI 427 * @param luiLuiRelationTypeKey the LU to LU relation type 428 * @param contextInfo Context information containing the principalId 429 * and locale information about the caller of service 430 * operation 431 * @return list of LUI information, empty list if none 432 * @throws InvalidParameterException invalid parameter 433 * @throws MissingParameterException missing paremeter 434 * @throws OperationFailedException unable to complete request 435 * @throws PermissionDeniedException an authorization failure occurred 436 */ 437 public List<LuiInfo> getLuisByRelatedLuiAndRelationType(@WebParam(name = "relatedLuiId") String relatedLuiId, @WebParam(name = "luiLuiRelationTypeKey") String luiLuiRelationTypeKey, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; 438 439 /** TODO ??? 440 * Retrieves the list of related LUI Ids for the specified LUI Id 441 * and LU to LU relation type. (getLuiIdsByRelatedLuiAndRelationType from the other 442 * direction). 443 * 444 * @param luiId identifier of the LUI 445 * @param luiLuiRelationTypeKey the LU to LU relation type 446 * @param contextInfo Context information containing the principalId 447 * and locale information about the caller of service 448 * operation 449 * @return list of LUI identifier, empty list if none found 450 * @throws InvalidParameterException invalid parameter 451 * @throws MissingParameterException missing parameter 452 * @throws OperationFailedException unable to complete request 453 * @throws PermissionDeniedException an authorization failure occurred 454 */ 455 public List<String> getLuiIdsByLuiAndRelationType(@WebParam(name = "luiId") String luiId, @WebParam(name = "luiLuiRelationTypeKey") String luiLuiRelationTypeKey, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; 456 457 /** TODO ??? 458 * Retrieves the list of related LUI information for the specified 459 * LUI Id and LU to LU relation type (getLuisByRelatedLuiAndRelationType from the 460 * other direction). 461 * 462 * @param luiId identifier of the LUI 463 * @param luiLuiRelationTypeKey the LU to LU relation type 464 * @param contextInfo Context information containing the principalId 465 * and locale information about the caller of service 466 * operation 467 * @return list of LUI information, empty list if none found 468 * @throws InvalidParameterException invalid luiId, luiLuiRelationTypeKey 469 * @throws MissingParameterException missing luiId, luiLuiRelationTypeKey 470 * @throws OperationFailedException unable to complete request 471 * @throws PermissionDeniedException an authorization failure occurred 472 */ 473 public List<LuiInfo> getRelatedLuisByLuiAndRelationType(@WebParam(name = "luiId") String luiId, @WebParam(name = "luiLuiRelationTypeKey") String luiLuiRelationTypeKey, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; 474 475 /** 476 * Retrieves all LuiLuiRelations between a Lui and Luis of the 477 * given Lui Type. 478 * 479 * @param luiId a unique identifier for the Lui 480 * @param relatedLuiTypeKey a unique identifier for a Lui Type 481 * @param contextInfo information containing the principalId and 482 * locale information about the caller of service operation 483 * @return a list of LuiLuiRelations between luiId and Luis of 484 * relatedLuiTypeKey 485 * @throws InvalidParameterException contextInfo is not valid 486 * @throws MissingParameterException luiId, relatedLuiTypeKey, or 487 * contextInfo is missing or null 488 * @throws OperationFailedException unable to complete request 489 * @throws PermissionDeniedException an authorization failure occurred 490 */ 491 public List<LuiInfo> getLuiLuiRelationsByLuiAndRelatedLuiType(@WebParam(name = "luiId") String luiId, @WebParam(name = "relatedLuiTypeKey") String relatedLuiTypeKey, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; 492 493 /** 494 * Searches for LuiLuiRelations that meet the search criteria and 495 * returns a list of LuiLuiRelation identifiers that meet the 496 * criteria. 497 * 498 * @param criteria the search criteria 499 * @param contextInfo information containing the principalId and 500 * locale information about the caller of service operation 501 * @return list of LuiLuiRelationIds 502 * @throws InvalidParameterException criteria or contextInfo is 503 * not valid 504 * @throws MissingParameterException criteria or contextInfo is 505 * missing os null 506 * @throws OperationFailedException unable to complete request 507 * @throws PermissionDeniedException an authorization failure occurred 508 */ 509 public List<String> searchForLuiLuiRelationIds(@WebParam(name = "criteria") QueryByCriteria criteria, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; 510 511 /** 512 * Searches for LuiLuiRelations that meet the search criteria and 513 * returns a list of LuiLuiRelations that meet the criteria. 514 * 515 * @param criteria the search criteria 516 * @param contextInfo information containing the principalId and 517 * locale information about the caller of service operation 518 * @return list of LuiLuiRelations 519 * @throws InvalidParameterException criteria or contextInfo is 520 * not valid 521 * @throws MissingParameterException criteria or contextInfo is 522 * missing os null 523 * @throws PermissionDeniedException an authorization failure occurred 524 */ 525 public List<LuiLuiRelationInfo> searchForLuiLuiRelations(@WebParam(name = "criteria") QueryByCriteria criteria, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; 526 527 /** 528 * Validates a LuiLuiRelations. Depending on the value of 529 * validationType, this validation could be limited to tests on 530 * just the current LuiLuiRelation and its directly contained 531 * sub-objects or expanded to perform all tests related to this 532 * LuiLuiRelation. If an identifier is present for the 533 * LuiLuiRelation (and/or one of its contained sub-objects) and a 534 * record is found for that identifier, the validation checks if 535 * the LuiLuiRelation can be updated to the new values. If an 536 * identifier is not present or a record does not exist, the 537 * validation checks if the object with the given data can be 538 * created. 539 * 540 * @param validationTypeKey the identifier for the validation Type 541 * @param luiId the identifier for the Lui 542 * @param relatedLuiId the identifier for the related Lui 543 * @param luiLuiRelationTypeKey the identifier for LuiLuiRelation Type 544 * @param luiLuiRelationInfo the LuiLuiRelation to ve validated 545 * @param contextInfo information containing the principalId and 546 * locale information about the caller of service operation 547 * @return a list of validation results or an empty list if 548 * validation succeeded 549 * @throws DoesNotExistException validationTypeKey, luiId, 550 * relatedLuiId, or luiLuiRelationTypeKey is not found 551 * @throws InvalidParameterException luiLuiRelationInfo or 552 * contextInfo is missing or null 553 * @throws MissingParameterException validationTypeKey, luiId, 554 * relatedLuiId, luiLuiRelationTypeKey, 555 * luiLuiRelationInfo, or contextInfo is missing or null 556 * @throws OperationFailedException unable to complete request 557 * @throws PermissionDeniedException an authorization failure occurred 558 */ 559 public List<ValidationResultInfo> validateLuiLuiRelation(@WebParam(name = "validationTypeKey") String validationTypeKey, @WebParam(name = "luiId") String luiId, @WebParam(name = "relatedLuiId") String relatedLuiId, @WebParam(name = "luiLuiRelationTypeKey") String luiLuiRelationTypeKey, @WebParam(name = "luiLuiRelationInfo") LuiLuiRelationInfo luiLuiRelationInfo, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;; 560 561 /** 562 * Create new LuiLuiRelation. The LuiLuiRelation Id, Type, luiId, 563 * relatedLuiId, and Meta information may not be set in the 564 * supplied data. 565 * 566 * @param luiId identifier of the first LUI in the relationship 567 * @param relatedLuiId identifier of the second LUI in the 568 * relationship to be related 569 * @param luiLuiRelationTypeKey a unique key fo rthe Type or new 570 * LuiLuiRelation 571 * @param luiLuiRelationInfo the data with which to create the 572 * LuiLuiRelation 573 * @param contextInfo information containing the principalId and 574 * locale information about the caller of service operation 575 * @return the new LuiLuiRelation 576 * @throws CircularRelationshipException luiId equals relatedLuiId 577 * (why is this a contract failure?) 578 * @throws DataValidationErrorException supplied data is invalid 579 * @throws DoesNotExistException luiId, relatedLuiId, or 580 * luiLuiRelationTypeKey is not found 581 * @throws InvalidParameterException luiLuiRelationInfo ro 582 * contextInfo is not valid 583 * @throws MissingParameterException luiId, relatedLuiId, 584 * luiLuiRelationTypeKey, luiLuiRelationInfo, or 585 * contextInfo is missing or null 586 * @throws OperationFailedException unable to complete request 587 * @throws PermissionDeniedException an authorization failure occurred 588 * @throws ReadOnlyException an attempt at supplying information 589 * designated as read only 590 */ 591 public LuiLuiRelationInfo createLuiLuiRelation(@WebParam(name = "luiId") String luiId, @WebParam(name = "relatedLuiId") String relatedLuiId, @WebParam(name = "luiLuiRelationTypeKey") String luiLuiRelationTypeKey, @WebParam(name = "luiLuiRelationInfo") LuiLuiRelationInfo luiLuiRelationInfo, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws CircularRelationshipException, DataValidationErrorException, DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException, ReadOnlyException; 592 593 /** 594 * Updates an existing LuiLuiRelation. The LuiLuiRelation Id, 595 * luiId, relatedLuiId, and Meta information may not be changed. 596 * 597 * @param luiLuiRelationId the identifier for the LuiLuiRelation 598 * to be updated 599 * @param luiLuiRelationInfo the new data for the LuiLuiRelation 600 * @param contextInfo information containing the principalId and 601 * locale information about the caller of service operation 602 * @return the updated LuiLuiRelation 603 * @throws DataValidationErrorException supplied data is invalid 604 * @throws DoesNotExistException luiLuiRelationId is not found 605 * @throws InvalidParameterException luiLuiRelationInfo or contextInfo 606 * is not valid 607 * @throws MissingParameterException luiLuiRelationId, 608 * luiLuiRelationInfo, or contextInfo is missing or null 609 * @throws OperationFailedException unable to complete request 610 * @throws PermissionDeniedException an authorization failure occurred 611 * @throws ReadOnlyException an attempt at changing information 612 * designated as read only 613 * @throws VersionMismatchException optimistic locking failure or 614 * the action was attempted on an out of date version 615 */ 616 public LuiLuiRelationInfo updateLuiLuiRelation(@WebParam(name = "luiLuiRelationId") String luiLuiRelationId, @WebParam(name = "luiLuiRelationInfo") LuiLuiRelationInfo luiLuiRelationInfo, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DataValidationErrorException, DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException, ReadOnlyException, VersionMismatchException; 617 618 /** 619 * Deletes an existing LuiLuiRelation. 620 * 621 * @param luiLuiRelationId identifier or the LuiLuiRelation to be 622 * deleted 623 * @param contextInfo information containing the principalId and 624 * locale information about the caller of service operation 625 * @return the status of the delete operation. This must always be true. 626 * @throws DoesNotExistException luiLuiRelationId not found 627 * @throws InvalidParameterException contextInfo is not valid 628 * @throws MissingParameterException luiLuiRelationId 629 * or contextInfo is missing or null 630 * @throws OperationFailedException unable to complete request 631 * @throws PermissionDeniedException an authorization failure occurred 632 */ 633 public StatusInfo deleteLuiLuiRelation(@WebParam(name = "luiLuiRelationId") String luiLuiRelationId, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; 634 635 /** 636 * Retrieves a single LuiCapacity by a LuiCapacity Id. 637 * 638 * @param luiCapacityId the identifier for the LuiCapacity to be 639 * retrieved 640 * @param contextInfo information containing the principalId and 641 * locale information about the caller of service operation 642 * @return the LuiCapacity requested 643 * @throws DoesNotExistException luiCapacityId not found 644 * @throws InvalidParameterException contextInfo is not valid 645 * @throws MissingParameterException luiCapacityId or contextInfo 646 * is missing or null 647 * @throws OperationFailedException unable to complete request 648 * @throws PermissionDeniedException an authorization failure occurred 649 */ 650 public LuiCapacityInfo getLuiCapacity(@WebParam(name = "luiCapacityId") String luiCapacityId, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; 651 652 /** 653 * Retrieves a list of LuiCapacity from a list of LuiCapacity 654 * Ids. The returned list may be in any order and if duplicate Ids 655 * are supplied, a unique set may or may not be returned. 656 * 657 * @param luiCapacityIds a list of LuiCapacity identifiers 658 * @param contextInfo information containing the principalId and 659 * locale information about the caller of service operation 660 * @return a list of LuiCapacities 661 * @throws DoesNotExistException a luiCapacityId in the list was 662 * not found 663 * @throws InvalidParameterException contextInfo is not valid 664 * @throws MissingParameterException luiCapacityIds, an Id in 665 * luiCapacityIds, or contextInfo is missing or null 666 * @throws OperationFailedException unable to complete request 667 * @throws PermissionDeniedException an authorization failure occurred 668 */ 669 public List<LuiCapacityInfo> getLuiCapacitiesByIds(@WebParam(name = "luiCapacityIds") List<String> luiCapacityIds, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; 670 671 /** 672 * Retrieves a list of LuiCapacity Ids by LuiCapacity Type. 673 * 674 * @param luiCapacityTypeKey a unique identifier for a LuiCapacity Type 675 * @param contextInfo information containing the principalId and 676 * locale information about the caller of service operation 677 * @return information about a list of Lui Capacities 678 * @throws InvalidParameterException contextInfo is not valid 679 * @throws MissingParameterException luiCapacityTypeKey or 680 * contextInfo is missing or null 681 * @throws OperationFailedException unable to complete request 682 * @throws PermissionDeniedException an authorization failure occurred 683 */ 684 public List<String> getLuiCapacityIdsByType(@WebParam(name = "luiCapacityTypeKey") String luiCapacityTypeKey, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; 685 686 /** 687 * Retrieves LuiCapacities associated with a Lui. 688 * 689 * @param luiId a unique identifier for a Lui 690 * @param contextInfo information containing the principalId and 691 * locale information about the caller of service operation 692 * @return a list of LuiCapacities associated with the given Lui 693 * @throws InvalidParameterException contextInfo is not valid 694 * @throws MissingParameterException luiId or contextInfo is 695 * missing or null 696 * @throws OperationFailedException unable to complete request 697 * @throws PermissionDeniedException an authorization failure occurred 698 */ 699 public List<LuiCapacityInfo> getLuiCapacitiesByLui(@WebParam(name = "luiId") String luiId, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; 700 701 /** 702 * Searches for LuiCapacities that meet the search criteria and 703 * returns a list of LuiCapacity identifiers that meet the 704 * criteria. 705 * 706 * @param criteria the search criteria 707 * @param contextInfo information containing the principalId and 708 * locale information about the caller of service operation 709 * @return list of LuiCapacity Ids 710 * @throws InvalidParameterException criteria or contextInfo is 711 * not valid 712 * @throws MissingParameterException criteria or contextInfo is 713 * missing or null 714 * @throws OperationFailedException unable to complete request 715 * @throws PermissionDeniedException an authorization failure occurred 716 */ 717 public List<String> searchForLuiCapacityIds(@WebParam(name = "criteria") QueryByCriteria criteria, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; 718 719 /** 720 * Searches for LuiCapacities that meet the search criteria and 721 * returns a list of LuiCapacities that meet the criteria. 722 * 723 * @param criteria the search criteria 724 * @param contextInfo information containing the principalId and 725 * locale information about the caller of service operation 726 * @return list of LuiCapacitiess 727 * @throws InvalidParameterException criteria or contextInfo is 728 * not valid 729 * @throws MissingParameterException criteria or contextInfo is 730 * missing or null 731 * @throws OperationFailedException unable to complete request 732 * @throws PermissionDeniedException an authorization failure occurred 733 */ 734 public List<LuiCapacityInfo> searchForLuiCapacities(@WebParam(name = "criteria") QueryByCriteria criteria, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; 735 736 /** 737 * Validates a LuiCapacity. Depending on the value of 738 * validationType, this validation could be limited to tests on 739 * just the current LuiCapacity and its directly contained 740 * sub-objects or expanded to perform all tests related to this 741 * LuiCapacity. If an identifier is present for the LuiCapacity 742 * (and/or one of its contained sub-objects) and a record is 743 * found for that identifier, the validation checks if the 744 * LuiCpacity can be updated to the new values. If an identifier 745 * is not present or a record does not exist, the validation 746 * checks if the object with the given data can be created. 747 * 748 * @param validationTypeKey the identifier for the validation Type 749 * @param luiCapacityInfo the LuiCapacity to be validated 750 * @param contextInfo information containing the principalId and 751 * locale information about the caller of service operation 752 * @return a list of validation results or an empty list if validation succeeded 753 * @throws DoesNotExistException validationTypeKey or 754 * luiCapacityTypeKey not found 755 * @throws InvalidParameterException luiInfo or contextInfo is not 756 * valid 757 * @throws MissingParameterException validationTypeKey, luiInfo, 758 * or contextInfo is missing or null 759 * @throws PermissionDeniedException an authorization failure occurred 760 */ 761 public List<ValidationResultInfo> validateLuiCapacity(@WebParam(name = "validationTypeKey") String validationTypeKey, @WebParam(name = "luiCapacityTypeKey") String luiCapacityTypeKey, @WebParam(name = "luiCapacityInfo") LuiCapacityInfo luiCapacityInfo, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; 762 763 /** 764 * Creates a new LuiCapacity. The LuiCapacity Id, Type, and Meta 765 * information may not be set in the supplied data. 766 * 767 * @param luiCapacityTypeKey an identifier for the Type of the new 768 * LuiCapacity 769 * @param luiCapacityInfo the data with which to create the 770 * LuiCapacity 771 * @param contextInfo information containing the principalId and 772 * locale information about the caller of service operation 773 * @return the new LuiCapacity 774 * @throws DataValidationErrorException supplied data is invalid 775 * @throws DoesNotExistException luiCapacityTypeKey not found 776 * @throws InvalidParameterException luiCapacityInfo or 777 * contextInfo is not valid 778 * @throws MissingParameterException luiCapacityTypeKey, 779 * luiCapacityInfo, or contextInfo is missing or null 780 * @throws OperationFailedException unable to complete request 781 * @throws PermissionDeniedException an authorization failure occurred 782 * @throws ReadOnlyException an attempt at supplying information 783 * designated as read only 784 */ 785 public LuiCapacityInfo createLuiCapacity(@WebParam(name = "luiCapacityTypeKey") String luiCapacityTypeKey, @WebParam(name = "luiCapacityInfo") LuiCapacityInfo luiCapacityInfo, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DataValidationErrorException, DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException, ReadOnlyException; 786 787 /** 788 * Updates an existing LuiCapacity. The LuiCapacity Id, Type, and 789 * Meta information may not be changed. 790 * 791 * @param luiCapacityId the identifier for the LuiCapacity to be 792 * updated 793 * @param luiCapacityInfo the new data for the LuiCapacity 794 * @param contextInfo information containing the principalId and 795 * locale information about the caller of service operation 796 * @return the updated LuiCapacity 797 * @throws DataValidationErrorException supplied data is invalid 798 * @throws DoesNotExistException luiCapacityId not found 799 * @throws InvalidParameterException luiCapacityInfo or contextInfo 800 * is not valid 801 * @throws MissingParameterException luiCapacityId, 802 * luiCapacityInfo, or contextInfo is missing or null 803 * @throws OperationFailedException unable to complete request 804 * @throws PermissionDeniedException an authorization failure occurred 805 * @throws ReadOnlyException an attempt at changing information 806 * designated as read only 807 * @throws VersionMismatchException optimistic locking failure or 808 * the action was attempted on an out of date version 809 */ 810 public LuiCapacityInfo updateLuiCapacity(@WebParam(name = "luiCapacityId") String luiCapacityId, @WebParam(name = "luiCapacityInfo") LuiCapacityInfo luiCapacityInfo, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DataValidationErrorException, DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException, ReadOnlyException, VersionMismatchException; 811 812 /** 813 * Deletes an existing LuiCapacity. 814 * 815 * @param luiCapacityId the identifier for the LuiCapacity to be 816 * deleted 817 * @param contextInfo information containing the principalId and 818 * locale information about the caller of service operation 819 * @return the status of the delete operation. This must always be 820 * true. 821 * @throws DoesNotExistException luiCapacityId not found 822 * @throws InvalidParameterException contextInfo is invalid 823 * @throws MissingParameterException luiCapacityId or contextInfo 824 * is missing or null 825 * @throws OperationFailedException unable to complete request 826 * @throws PermissionDeniedException an authorization failure occurred 827 */ 828 public StatusInfo deleteLuiCapacity(@WebParam(name = "luiCapacityId") String luiCapacityId, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; 829 }