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.lum.lu.service; 17 18 import java.util.Date; 19 import java.util.List; 20 21 import javax.jws.WebParam; 22 import javax.jws.WebService; 23 import javax.jws.soap.SOAPBinding; 24 25 import org.kuali.student.common.dictionary.service.DictionaryService; 26 import org.kuali.student.common.dto.StatusInfo; 27 import org.kuali.student.common.exceptions.AlreadyExistsException; 28 import org.kuali.student.common.exceptions.CircularRelationshipException; 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.IllegalVersionSequencingException; 33 import org.kuali.student.common.exceptions.InvalidParameterException; 34 import org.kuali.student.common.exceptions.MissingParameterException; 35 import org.kuali.student.common.exceptions.OperationFailedException; 36 import org.kuali.student.common.exceptions.PermissionDeniedException; 37 import org.kuali.student.common.exceptions.UnsupportedActionException; 38 import org.kuali.student.common.exceptions.VersionMismatchException; 39 import org.kuali.student.common.search.service.SearchService; 40 import org.kuali.student.common.validation.dto.ValidationResultInfo; 41 import org.kuali.student.common.versionmanagement.service.VersionManagementService; 42 import org.kuali.student.lum.lu.dto.CluCluRelationInfo; 43 import org.kuali.student.lum.lu.dto.CluInfo; 44 import org.kuali.student.lum.lu.dto.CluLoRelationInfo; 45 import org.kuali.student.lum.lu.dto.CluLoRelationTypeInfo; 46 import org.kuali.student.lum.lu.dto.CluPublicationInfo; 47 import org.kuali.student.lum.lu.dto.CluResultInfo; 48 import org.kuali.student.lum.lu.dto.CluResultTypeInfo; 49 import org.kuali.student.lum.lu.dto.CluSetInfo; 50 import org.kuali.student.lum.lu.dto.CluSetTreeViewInfo; 51 import org.kuali.student.lum.lu.dto.CluSetTypeInfo; 52 import org.kuali.student.lum.lu.dto.DeliveryMethodTypeInfo; 53 import org.kuali.student.lum.lu.dto.InstructionalFormatTypeInfo; 54 import org.kuali.student.lum.lu.dto.LuCodeTypeInfo; 55 import org.kuali.student.lum.lu.dto.LuLuRelationTypeInfo; 56 import org.kuali.student.lum.lu.dto.LuPublicationTypeInfo; 57 import org.kuali.student.lum.lu.dto.LuTypeInfo; 58 import org.kuali.student.lum.lu.dto.LuiInfo; 59 import org.kuali.student.lum.lu.dto.LuiLuiRelationInfo; 60 import org.kuali.student.lum.lu.dto.ResultUsageTypeInfo; 61 62 63 /** 64 * 65 * @Author KSContractMojo 66 * @Author Kamal 67 * @Since Mon Jan 11 15:18:59 PST 2010 68 * @See <a href="https://test.kuali.org/confluence/display/KULSTU/LU+Service+v1.0-rc4">LUService</> 69 * 70 */ 71 @WebService(name = "LuService", targetNamespace = LuServiceConstants.LU_NAMESPACE) 72 @SOAPBinding(style = SOAPBinding.Style.DOCUMENT, use = SOAPBinding.Use.LITERAL, parameterStyle = SOAPBinding.ParameterStyle.WRAPPED) 73 public interface LuService extends DictionaryService, SearchService, VersionManagementService { 74 75 /** 76 * Retrieves the list of delivery method types 77 * @return list of delivery method type information 78 * @throws OperationFailedException unable to complete request 79 */ 80 public List<DeliveryMethodTypeInfo> getDeliveryMethodTypes() throws OperationFailedException; 81 82 /** 83 * Retrieves information about a delivery method type 84 * @param deliveryMethodTypeKey Key of the Delivery Method Type 85 * @return information about a Delivery Method Type 86 * @throws DoesNotExistException deliveryMethodType not found 87 * @throws InvalidParameterException invalid deliveryMethodType 88 * @throws MissingParameterException missing deliveryMethodType 89 * @throws OperationFailedException unable to complete request 90 */ 91 public DeliveryMethodTypeInfo getDeliveryMethodType(@WebParam(name="deliveryMethodTypeKey")String deliveryMethodTypeKey) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException; 92 93 /** 94 * Retrieves the list of instructional format types 95 * @return list of instructional format type information 96 * @throws OperationFailedException unable to complete request 97 */ 98 public List<InstructionalFormatTypeInfo> getInstructionalFormatTypes() throws OperationFailedException; 99 100 /** 101 * Retrieves information about a Instructional Format Type 102 * @param instructionalFormatTypeKey Key of the Instructional Format Type 103 * @return information about a Instructional Format Type 104 * @throws DoesNotExistException instructionalFormatType not found 105 * @throws InvalidParameterException invalid instructionalFormatType 106 * @throws MissingParameterException missing instructionalFormatType 107 * @throws OperationFailedException unable to complete request 108 */ 109 public InstructionalFormatTypeInfo getInstructionalFormatType(@WebParam(name="instructionalFormatTypeKey")String instructionalFormatTypeKey) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException; 110 111 /** 112 * Retrieves the list of LU types 113 * @return list of LU type information 114 * @throws OperationFailedException unable to complete request 115 */ 116 public List<LuTypeInfo> getLuTypes() throws OperationFailedException; 117 118 /** 119 * Retrieves information about a LU Type 120 * @param luTypeKey Key of the LU Type 121 * @return information about a LU Type 122 * @throws DoesNotExistException luType not found 123 * @throws InvalidParameterException invalid luType 124 * @throws MissingParameterException missing luType 125 * @throws OperationFailedException unable to complete request 126 */ 127 public LuTypeInfo getLuType(@WebParam(name="luTypeKey")String luTypeKey) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException; 128 129 /** 130 * Retrieves the list of learning unit code types 131 * @return list of lu code type information 132 * @throws OperationFailedException unable to complete request 133 */ 134 public List<LuCodeTypeInfo> getLuCodeTypes() throws OperationFailedException; 135 136 /** 137 * Retrieves information about a learning unit code type 138 * @param luCodeTypeKey Key of the learning unit code type 139 * @return information about a learning unit code type 140 * @throws DoesNotExistException luCodeTypeKey not found 141 * @throws InvalidParameterException invalid luCodeTypeKey 142 * @throws MissingParameterException missing luCodeTypeKey 143 * @throws OperationFailedException unable to complete request 144 */ 145 public LuCodeTypeInfo getLuCodeType(@WebParam(name="luCodeTypeKey")String luCodeTypeKey) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException; 146 147 /** 148 * Retrieves the complete list of LU to LU relation types 149 * @return list of LU to LU relation type information 150 * @throws OperationFailedException unable to complete request 151 */ 152 public List<LuLuRelationTypeInfo> getLuLuRelationTypes() throws OperationFailedException; 153 154 /** 155 * Retrieves the LU to LU relation type 156 * @param luLuRelationTypeKey Key of the LU to LU Relation Type 157 * @return LU to LU relation type information 158 * @throws OperationFailedException unable to complete request 159 * @throws MissingParameterException missing luLuRelationTypeKey 160 * @throws DoesNotExistException luLuRelationTypeKey not found 161 */ 162 public LuLuRelationTypeInfo getLuLuRelationType(@WebParam(name="luLuRelationTypeKey")String luLuRelationTypeKey) throws OperationFailedException, MissingParameterException, DoesNotExistException; 163 164 /** 165 * Retrieves the list of allowed relation types between the two specified LU Types 166 * @param luTypeKey Key of the first LU Type 167 * @param relatedLuTypeKey Key of the second LU Type 168 * @return list of LU to LU relation types 169 * @throws DoesNotExistException luTypeKey, relatedLuTypeKey not found 170 * @throws InvalidParameterException invalid luTypeKey, relatedLuTypeKey 171 * @throws MissingParameterException missing luTypeKey, relatedLuTypeKey 172 * @throws OperationFailedException unable to complete request 173 */ 174 public List<String> getAllowedLuLuRelationTypesForLuType(@WebParam(name="luTypeKey")String luTypeKey, @WebParam(name="relatedLuTypeKey")String relatedLuTypeKey) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException; 175 176 /** 177 * Retrieves the list of Learning Unit publication types 178 * @return list of Learning Unit publication type information 179 * @throws OperationFailedException unable to complete request 180 */ 181 public List<LuPublicationTypeInfo> getLuPublicationTypes() throws OperationFailedException; 182 183 /** 184 * Retrieves information about a publication type 185 * @param luPublicationTypeKey Key of the Learning Unit Publication Type 186 * @return information about a Learning Unit Publication Type 187 * @throws DoesNotExistException luPublicationType not found 188 * @throws InvalidParameterException invalid luPublicationType 189 * @throws MissingParameterException missing luPublicationType 190 * @throws OperationFailedException unable to complete request 191 */ 192 public LuPublicationTypeInfo getLuPublicationType(@WebParam(name="luPublicationTypeKey")String luPublicationTypeKey) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException; 193 194 /** 195 * Retrieves information about a publication type 196 * @param luTypeKey Key of the LU Type 197 * @return list of LU publication types 198 * @throws DoesNotExistException luPublicationType not found 199 * @throws InvalidParameterException invalid luPublicationType 200 * @throws MissingParameterException missing luPublicationType 201 * @throws OperationFailedException unable to complete request 202 */ 203 public List<String> getLuPublicationTypesForLuType(@WebParam(name="luTypeKey")String luTypeKey) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException; 204 205 /** 206 * Retrieves a list of types for clu result objects. 207 * @return list of clu result type information 208 * @throws OperationFailedException unable to complete request 209 */ 210 public List<CluResultTypeInfo> getCluResultTypes() throws OperationFailedException; 211 212 /** 213 * Retrieves information about a publication type 214 * @param cluResultTypeKey Key of the Canonical Learning Unit Result Type 215 * @return information about a Learning Unit Publication Type 216 * @throws DoesNotExistException luPublicationType not found 217 * @throws InvalidParameterException invalid luPublicationType 218 * @throws MissingParameterException missing luPublicationType 219 * @throws OperationFailedException unable to complete request 220 */ 221 public CluResultTypeInfo getCluResultType(@WebParam(name="cluResultTypeKey")String cluResultTypeKey) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException; 222 223 /** 224 * Retrieves the list of clu result types which are allowed to be used in conjunction with a particular lu type. 225 * @param luTypeKey luTypeKey 226 * @return list of clu result types 227 * @throws DoesNotExistException luTypeKey not found 228 * @throws InvalidParameterException invalid luTypeKey 229 * @throws MissingParameterException missing luTypeKey 230 * @throws OperationFailedException unable to complete request 231 */ 232 public List<CluResultTypeInfo> getCluResultTypesForLuType(@WebParam(name="luTypeKey")String luTypeKey) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException; 233 234 /** 235 * Retrieves a list of result usage types 236 * @return list of result usage type information 237 * @throws OperationFailedException unable to complete request 238 */ 239 public List<ResultUsageTypeInfo> getResultUsageTypes() throws OperationFailedException; 240 241 /** 242 * Retrieves information about a Result Usage Type 243 * @param resultUsageTypeKey Key of the Result Usage Type 244 * @return information about a Result Usage Type 245 * @throws DoesNotExistException resultUsageTypeKey not found 246 * @throws InvalidParameterException invalid resultUsageTypeKey 247 * @throws MissingParameterException missing resultUsageTypeKey 248 * @throws OperationFailedException unable to complete request 249 */ 250 public ResultUsageTypeInfo getResultUsageType(@WebParam(name="resultUsageTypeKey")String resultUsageTypeKey) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException; 251 252 /** 253 * Retrieves the list of result usage types which are allowed to be used in conjunction with an lu type. 254 * @param luTypeKey luTypeKey 255 * @return list of result usage types 256 * @throws DoesNotExistException luTypeKey not found 257 * @throws InvalidParameterException invalid luTypeKey 258 * @throws MissingParameterException missing luTypeKey 259 * @throws OperationFailedException unable to complete request 260 */ 261 public List<String> getAllowedResultUsageTypesForLuType(@WebParam(name="luTypeKey")String luTypeKey) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException; 262 263 /** 264 * Retrieves the list of result component types which are allowed to be used in conjunction with result usage type. 265 * @param resultUsageTypeKey resultUsageTypeKey 266 * @return list of result component types 267 * @throws DoesNotExistException resultUsageTypeKey not found 268 * @throws InvalidParameterException invalid resultUsageTypeKey 269 * @throws MissingParameterException missing resultUsageTypeKey 270 * @throws OperationFailedException unable to complete request 271 */ 272 public List<String> getAllowedResultComponentTypesForResultUsageType(@WebParam(name="resultUsageTypeKey")String resultUsageTypeKey) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException; 273 274 /** 275 * Retrieves the complete list of CLU to LO relation types 276 * @return list of CLU to LO relation type information 277 * @throws OperationFailedException unable to complete request 278 */ 279 public List<CluLoRelationTypeInfo> getCluLoRelationTypes() throws OperationFailedException; 280 281 /** 282 * Retrieves information for a specified CLU to LO relation type 283 * @param cluLoRelationTypeKey Key of the CLU to LO Relation Type 284 * @return CLU to LO relation type information 285 * @throws DoesNotExistException cluLoRelationTypeKey not found 286 * @throws InvalidParameterException invalid cluLoRelationTypeKey 287 * @throws MissingParameterException missing cluLoRelationTypeKey 288 * @throws OperationFailedException unable to complete request 289 */ 290 public CluLoRelationTypeInfo getCluLoRelationType(@WebParam(name="cluLoRelationTypeKey")String cluLoRelationTypeKey) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException; 291 292 /** 293 * Retrieves the list of CLU LO relation types which are allowed to be used in conjunction with an lu type. 294 * @param luTypeKey luTypeKey 295 * @return list of clu lo relation types 296 * @throws DoesNotExistException luTypeKey not found 297 * @throws InvalidParameterException invalid luTypeKey 298 * @throws MissingParameterException missing luTypeKey 299 * @throws OperationFailedException unable to complete request 300 */ 301 public List<String> getAllowedCluLoRelationTypesForLuType(@WebParam(name="luTypeKey")String luTypeKey) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException; 302 303 /** 304 * Retrieves the list of CLU set types known by the service 305 * @return list of CLU set type information 306 * @throws OperationFailedException unable to complete request 307 */ 308 public List<CluSetTypeInfo> getCluSetTypes() throws OperationFailedException; 309 310 /** 311 * Retrieves information about a specified CLU set type 312 * @param cluSetTypeKey Key of the CLU set type 313 * @return information about a CLU set type 314 * @throws DoesNotExistException cluSetTypeKey not found 315 * @throws InvalidParameterException invalid cluSetTypeKey 316 * @throws MissingParameterException missing cluSetTypeKey 317 * @throws OperationFailedException unable to complete request 318 */ 319 public CluSetTypeInfo getCluSetType(@WebParam(name="cluSetTypeKey")String cluSetTypeKey) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException; 320 321 /** 322 * Retrieves core information about a CLU 323 * @param cluId identifier of the CLU 324 * @return information about a CLU 325 * @throws DoesNotExistException cluId not found 326 * @throws InvalidParameterException invalid cluId 327 * @throws MissingParameterException missing cluId 328 * @throws OperationFailedException unable to complete request 329 */ 330 public CluInfo getClu(@WebParam(name="cluId")String cluId) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException; 331 332 /** 333 * Retrieves information about CLUs from a list of ids 334 * @param cluIdList List of CLU identifiers 335 * @return information a list of CLUs 336 * @throws DoesNotExistException One or more cluIds not found 337 * @throws InvalidParameterException One or more invalid cluIds 338 * @throws MissingParameterException missing cluIdList 339 * @throws OperationFailedException unable to complete request 340 */ 341 public List<CluInfo> getClusByIdList(@WebParam(name="cluIdList")List<String> cluIdList) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException; 342 343 /** 344 * Retrieves the list of CLUs for the specified LU Type and state 345 * @param luTypeKey Type of the CLUs to retrieve 346 * @param luState State of the CLUs to retrieve. 347 * @return list of CLU information 348 * @throws DoesNotExistException luType or luState not found 349 * @throws InvalidParameterException invalid luType or luState 350 * @throws MissingParameterException missing luType or luState 351 * @throws OperationFailedException unable to complete request 352 */ 353 public List<CluInfo> getClusByLuType(@WebParam(name="luTypeKey")String luTypeKey, @WebParam(name="luState")String luState) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException; 354 355 /** 356 * Retrieves the list of CLU ids for the specified LU Type and state 357 * @param luTypeKey Type of the CLUs whose identifiers should be retrieved 358 * @param luState State of the CLUs whose identifiers should be retrieved 359 * @return list of CLU identifiers 360 * @throws DoesNotExistException luType or luState not found 361 * @throws InvalidParameterException invalid luType or luState 362 * @throws MissingParameterException missing luType or luState 363 * @throws OperationFailedException unable to complete request 364 */ 365 public List<String> getCluIdsByLuType(@WebParam(name="luTypeKey")String luTypeKey, @WebParam(name="luState")String luState) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException; 366 367 /** 368 * Retrieves the list of allowed relation types between the two specified CLUs 369 * @param cluId identifier of the first CLU 370 * @param relatedCluId identifier of the second CLU 371 * @return list of LU to LU relation types 372 * @throws DoesNotExistException clu, relatedClu not found 373 * @throws InvalidParameterException invalid cluId, relatedCluId 374 * @throws MissingParameterException missing cluId, relatedCluId 375 * @throws OperationFailedException unable to complete request 376 */ 377 public List<String> getAllowedLuLuRelationTypesByCluId(@WebParam(name="cluId")String cluId, @WebParam(name="relatedCluId")String relatedCluId) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException; 378 379 /** 380 * Retrieves the list of CLU information for the CLUs related to a specified CLU Id with a certain LU to LU relation type (getRelatedClusByCluId from the other direction) 381 * @param relatedCluId identifier of the child or To CLU 382 * @param luLuRelationType the LU to LU relation type 383 * @return list of CLU information 384 * @throws DoesNotExistException relatedCluId, luLuRelationType not found 385 * @throws InvalidParameterException invalid relatedCluId, luLuRelationType 386 * @throws MissingParameterException missing relatedCluId, luLuRelationType 387 * @throws OperationFailedException unable to complete request 388 */ 389 public List<CluInfo> getClusByRelation(@WebParam(name="relatedCluId")String relatedCluId, @WebParam(name="luLuRelationType")String luLuRelationType) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException; 390 391 /** 392 * Retrieves the list of CLU Ids for the specified related CLU Id and LU to LU relation type (getRelatedCluIdsByCluId from the other direction) 393 * @param relatedCluId identifier of the child or To CLU 394 * @param luLuRelationType the LU to LU relation type 395 * @return list of CLU identifiers 396 * @throws DoesNotExistException relatedClu, luLuRelationType not found 397 * @throws InvalidParameterException invalid relatedCluId, luLuRelationType 398 * @throws MissingParameterException missing relatedCluId, luLuRelationType 399 * @throws OperationFailedException unable to complete request 400 */ 401 public List<String> getCluIdsByRelation(@WebParam(name="relatedCluId")String relatedCluId, @WebParam(name="luLuRelationType")String luLuRelationType) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException; 402 403 /** 404 * Retrieves the list of related CLU information for the specified CLU Id and LU to LU relation type (getClusByRelation from the other direction) 405 * @param cluId identifier of the parent or From CLU 406 * @param luLuRelationType the LU to LU relation type 407 * @return list of CLU information 408 * @throws DoesNotExistException clu, luLuRelationType not found 409 * @throws InvalidParameterException invalid cluId, luLuRelationType 410 * @throws MissingParameterException missing cluId, luLuRelationType 411 * @throws OperationFailedException unable to complete request 412 */ 413 public List<CluInfo> getRelatedClusByCluId(@WebParam(name="cluId")String cluId, @WebParam(name="luLuRelationType")String luLuRelationType) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException; 414 415 /** 416 * Retrieves the list of related CLU Ids for the specified CLU Id and LU to LU relation type (getCluIdsByRelation from the other direction) 417 * @param cluId identifier of the parent or From CLU 418 * @param luLuRelationType the LU to LU relation type 419 * @return list of CLU identifiers 420 * @throws DoesNotExistException clu, luLuRelationType not found 421 * @throws InvalidParameterException invalid cluId, luLuRelationType 422 * @throws MissingParameterException missing cluId, luLuRelationType 423 * @throws OperationFailedException unable to complete request 424 */ 425 public List<String> getRelatedCluIdsByCluId(@WebParam(name="cluId")String cluId, @WebParam(name="luLuRelationType")String luLuRelationType) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException; 426 427 /** 428 * Retrieves the relationship information between CLUs for a particular Relation instance 429 * @param cluCluRelationId identifier of the CLU to CLU relation 430 * @return information on the relation between two CLUs 431 * @throws DoesNotExistException cluCluRelation not found 432 * @throws InvalidParameterException invalid cluCluRelationId 433 * @throws MissingParameterException missing cluCluRelationId 434 * @throws OperationFailedException unable to complete request 435 */ 436 public CluCluRelationInfo getCluCluRelation(@WebParam(name="cluCluRelationId")String cluCluRelationId) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException; 437 438 /** 439 * Retrieves the list of relationship information for the specified CLU 440 * @param cluId identifier of the parent or From CLU 441 * @return list of CLU to CLU relation information 442 * @throws DoesNotExistException clu not found 443 * @throws InvalidParameterException invalid cluId 444 * @throws MissingParameterException missing cluId 445 * @throws OperationFailedException unable to complete request 446 */ 447 public List<CluCluRelationInfo> getCluCluRelationsByClu(@WebParam(name="cluId")String cluId) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException; 448 449 /** 450 * Retrieves a list of publication objects for a particular clu 451 * @param cluId clu identifier 452 * @return list of publication objects used by the specified clu 453 * @throws DoesNotExistException clu not found 454 * @throws InvalidParameterException invalid cluId 455 * @throws MissingParameterException cluId not specified 456 * @throws OperationFailedException unable to complete request 457 */ 458 public List<CluPublicationInfo> getCluPublicationsByCluId(@WebParam(name="cluId")String cluId) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException; 459 460 /** 461 * Retrieves a list of publication objects of a particular Type 462 * @param luPublicationTypeKey luPublicationType identifier 463 * @return list of CLU Publication objects using the specified type 464 * @throws DoesNotExistException luPublicationType not found 465 * @throws InvalidParameterException invalid luPublicationTypeKey 466 * @throws MissingParameterException luPublicationTypeKey not specified 467 * @throws OperationFailedException unable to complete request 468 */ 469 public List<CluPublicationInfo> getCluPublicationsByType(@WebParam(name="luPublicationTypeKey")String luPublicationTypeKey) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException; 470 471 /** 472 * Retrieves an LU publication object by its identifier 473 * @param cluPublicationId CLU publication identifier 474 * @return CLU Publication information 475 * @throws DoesNotExistException CLU Publication not found 476 * @throws InvalidParameterException invalid cluPublicationId 477 * @throws MissingParameterException cluPublicationId not specified 478 * @throws OperationFailedException unable to complete request 479 */ 480 public CluPublicationInfo getCluPublication(@WebParam(name="cluPublicationId")String cluPublicationId) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException; 481 482 /** 483 * Retrieves information about a Clu Result 484 * @param cluResultId identifier of the Clu Result 485 * @return information about a Clu Result 486 * @throws DoesNotExistException cluResult not found 487 * @throws InvalidParameterException invalid cluResultId 488 * @throws MissingParameterException missing cluResultId 489 * @throws OperationFailedException unable to complete request 490 */ 491 public CluResultInfo getCluResult(@WebParam(name="cluResultId")String cluResultId) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException; 492 493 /** 494 * Retrieves the cluResult for a particular clu 495 * @param cluId clu identifier 496 * @return result information for a clu 497 * @throws DoesNotExistException clu not found 498 * @throws InvalidParameterException invalid cluId 499 * @throws MissingParameterException cluId not specified 500 * @throws OperationFailedException unable to complete request 501 */ 502 public List<CluResultInfo> getCluResultByClu(@WebParam(name="cluId")String cluId) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException; 503 504 /** 505 * Retrieves the list of clu ids with the results of the specified usage type. This would for example allow requests for all clus which have a final grade. 506 * @param resultUsageTypeKey identifier of the result usage type 507 * @return list of clu ids 508 * @throws DoesNotExistException resultUsageType not found 509 * @throws InvalidParameterException invalid resultUsageTypeKey 510 * @throws MissingParameterException missing resultUsageTypeKey 511 * @throws OperationFailedException unable to complete request 512 */ 513 public List<String> getCluIdsByResultUsageType(@WebParam(name="resultUsageTypeKey")String resultUsageTypeKey) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException; 514 515 /** 516 * Retrieves the list of clu ids which use a particular result component 517 * @param resultComponentId identifier of the result component 518 * @return list of clu ids 519 * @throws DoesNotExistException resultComponent not found 520 * @throws InvalidParameterException invalid resultComponentId 521 * @throws MissingParameterException missing resultComponentId 522 * @throws OperationFailedException unable to complete request 523 */ 524 public List<String> getCluIdsByResultComponent(@WebParam(name="resultComponentId")String resultComponentId) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException; 525 526 /** 527 * Retrieve information on a CLU LO Relation. 528 * @param cluLoRelationId Identifier of the CLU LO Relation 529 * @return The retrieved CLU LO Relation information 530 * @throws DoesNotExistException cluLoRelation not found 531 * @throws InvalidParameterException invalid cluLoRelationId 532 * @throws MissingParameterException missing cluLoRelationId 533 * @throws OperationFailedException unable to complete request 534 * @throws PermissionDeniedException authorization failure 535 */ 536 public CluLoRelationInfo getCluLoRelation(@WebParam(name="cluLoRelationId")String cluLoRelationId) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; 537 538 /** 539 * Retrieves the list of canonical learning unit to learning objective relationships for a given CLU. 540 * @param cluId Identifier for the CLU 541 * @return List of canonical learning unit to learning objective relationships 542 * @throws DoesNotExistException clu not found 543 * @throws InvalidParameterException invalid cluId 544 * @throws MissingParameterException missing cluId 545 * @throws OperationFailedException unable to complete request 546 */ 547 public List<CluLoRelationInfo> getCluLoRelationsByClu(@WebParam(name="cluId")String cluId) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException; 548 549 /** 550 * Retrieves the list of CLU identifiers associated with a given learning objective identifier. 551 * @param loId Identifier for the learning objective 552 * @return List of CLU LO Relations 553 * @throws DoesNotExistException lo not found 554 * @throws InvalidParameterException invalid loId 555 * @throws MissingParameterException missing loId 556 * @throws OperationFailedException unable to complete request 557 */ 558 public List<CluLoRelationInfo> getCluLoRelationsByLo(@WebParam(name="loId")String loId) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException; 559 560 /** 561 * Retrieves the list of Resource requirements for the specified CLU 562 * @param cluId Unique identifier for the CLU 563 * @return List of resource requirements 564 * @throws DoesNotExistException clu not found 565 * @throws InvalidParameterException cluId invalid 566 * @throws MissingParameterException cluId missing 567 * @throws OperationFailedException unable to complete request 568 */ 569 public List<String> getResourceRequirementsForCluId(@WebParam(name="cluId")String cluId) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException; 570 571 /** 572 * Retrieve information on a CLU set. This information should be about the set itself, and in the case of a dynamic CLU set, should include the criteria used to generate the set. 573 * @param cluSetId Identifier of the CLU set 574 * @return The retrieved CLU set information 575 * @throws DoesNotExistException cluSet not found 576 * @throws InvalidParameterException invalid cluSetId 577 * @throws MissingParameterException missing cluSetId 578 * @throws OperationFailedException unable to complete request 579 * @throws PermissionDeniedException authorization failure 580 */ 581 public CluSetInfo getCluSetInfo(@WebParam(name="cluSetId")String cluSetId) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; 582 583 584 /** 585 * Retrieve information on a CLU set and its sub clu set fully expanded. 586 * @param cluSetId Identifier of the CLU set 587 * @return The retrieved CLU set tree view information 588 * @throws DoesNotExistException cluSet not found 589 * @throws InvalidParameterException invalid cluSetId 590 * @throws MissingParameterException missing cluSetId 591 * @throws OperationFailedException unable to complete request 592 * @throws PermissionDeniedException authorization failure 593 */ 594 public CluSetTreeViewInfo getCluSetTreeView(@WebParam(name="cluSetId")String cluSetId) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; 595 596 597 /** 598 * Retrieve information on CLU sets from a list of cluSet Ids. 599 * @param cluSetIdList List of identifiers of CLU sets 600 * @return The retrieved list of CLU set information 601 * @throws DoesNotExistException One or more cluSets not found 602 * @throws InvalidParameterException One or more cluSetIds invalid 603 * @throws MissingParameterException missing cluSetIdList 604 * @throws OperationFailedException unable to complete request 605 * @throws PermissionDeniedException authorization failure 606 */ 607 public List<CluSetInfo> getCluSetInfoByIdList(@WebParam(name="cluSetIdList")List<String> cluSetIdList) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; 608 609 /** 610 * Retrieve the list of CLU Set Ids within a CLU Set 611 * @param cluSetId Identifier of the CLU set 612 * @return The retrieved list of CLU Set Ids within the specified CLU set 613 * @throws DoesNotExistException cluSet not found 614 * @throws InvalidParameterException invalid cluSetId 615 * @throws MissingParameterException missing cluSetId 616 * @throws OperationFailedException unable to complete request 617 * @throws PermissionDeniedException authorization failure 618 */ 619 public List<String> getCluSetIdsFromCluSet(@WebParam(name="cluSetId")String cluSetId) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; 620 621 /** 622 * Check if the given CluSet is dynamic 623 * @param cluSetId Identifier of the CLU set 624 * @return The retrieved list of CLU Set Ids within the specified CLU set 625 * @throws DoesNotExistException cluSet not found 626 * @throws InvalidParameterException invalid cluSetId 627 * @throws MissingParameterException missing cluSetId 628 * @throws OperationFailedException unable to complete request 629 * @throws PermissionDeniedException authorization failure 630 */ 631 public Boolean isCluSetDynamic(@WebParam(name="cluSetId")String cluSetId) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; 632 633 634 /** 635 * Retrieves the list of CLUs in a CLU set. This only retrieves the direct members. 636 * @param cluSetId Identifier of the CLU set 637 * @return The retrieved list of information on the CLUs within the CLU set (flattened and de-duped) 638 * @throws DoesNotExistException cluSet not found 639 * @throws InvalidParameterException invalid cluSetId 640 * @throws MissingParameterException missing cluSetId 641 * @throws OperationFailedException unable to complete request 642 * @throws PermissionDeniedException authorization failure 643 */ 644 public List<CluInfo> getClusFromCluSet(@WebParam(name="cluSetId")String cluSetId) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; 645 646 /** 647 * Retrieves the list of CLU Identifiers within a CLU Set. This only retrieves the direct members. 648 * @param cluSetId Identifier of the CLU set 649 * @return The retrieved list of CLU Ids within the specified CLU set (flattened and de-duped) 650 * @throws DoesNotExistException cluSet not found 651 * @throws InvalidParameterException invalid cluSetId 652 * @throws MissingParameterException missing cluSetId 653 * @throws OperationFailedException unable to complete request 654 * @throws PermissionDeniedException authorization failure 655 */ 656 public List<String> getCluIdsFromCluSet(@WebParam(name="cluSetId")String cluSetId) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; 657 658 /** 659 * Retrieves the full list of CLUs in this CLU set or any cluset that is included within that. 660 * @param cluSetId Identifier of the CLU set 661 * @return The retrieved list of information on the CLUs 662 * @throws DoesNotExistException cluSet not found 663 * @throws InvalidParameterException invalid cluSetId 664 * @throws MissingParameterException missing cluSetId 665 * @throws OperationFailedException unable to complete request 666 * @throws PermissionDeniedException authorization failure 667 */ 668 public List<CluInfo> getAllClusInCluSet(@WebParam(name="cluSetId")String cluSetId) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; 669 670 /** 671 * Retrieves the list of CLU Identifiers within a CLU Set or any cluset that is included within that. 672 * @param cluSetId Identifier of the CLU set 673 * @return The retrieved list of CLU Ids within the specified CLU set 674 * @throws DoesNotExistException cluSet not found 675 * @throws InvalidParameterException invalid cluSetId 676 * @throws MissingParameterException missing cluSetId 677 * @throws OperationFailedException unable to complete request 678 * @throws PermissionDeniedException authorization failure 679 */ 680 public List<String> getAllCluIdsInCluSet(@WebParam(name="cluSetId")String cluSetId) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; 681 682 /** 683 * Checks if a CLU is a member of a CLU set or any contained CLU set 684 * @param cluId Identifier of the CLU to check 685 * @param cluSetId Identifier of the CLU set 686 * @return True if the CLU is a member of the CLU Set 687 * @throws DoesNotExistException clu, cluSet not found 688 * @throws InvalidParameterException invalid cluId, cluSetId 689 * @throws MissingParameterException missing cluId, cluSetId 690 * @throws OperationFailedException unable to complete request 691 * @throws PermissionDeniedException authorization failure 692 */ 693 public Boolean isCluInCluSet(@WebParam(name="cluId")String cluId, @WebParam(name="cluSetId")String cluSetId) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; 694 695 /** 696 * Retrieves information about a LUI 697 * @param luiId identifier of the LUI 698 * @return information about a LUI 699 * @throws DoesNotExistException lui not found 700 * @throws InvalidParameterException invalid luiId 701 * @throws MissingParameterException missing luiId 702 * @throws OperationFailedException unable to complete request 703 */ 704 public LuiInfo getLui(@WebParam(name="luiId")String luiId) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException; 705 706 /** 707 * Retrieves information about LUIs from a list of Ids 708 * @param luiIdList List of LUI identifiers 709 * @return information about a list of LUIs 710 * @throws DoesNotExistException One or more luis not found 711 * @throws InvalidParameterException One or more invalid luiIds 712 * @throws MissingParameterException missing luiIdList 713 * @throws OperationFailedException unable to complete request 714 */ 715 public List<LuiInfo> getLuisByIdList(@WebParam(name="luiIdList")List<String> luiIdList) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException; 716 717 /** 718 * Retrieves the list of LUIs for the specified CLU and period 719 * @param cluId identifier of the CLU 720 * @param atpKey identifier for the academic time period 721 * @return list of LUI information 722 * @throws DoesNotExistException clu, atp not found 723 * @throws InvalidParameterException invalid cluId, atpKey 724 * @throws MissingParameterException missing cluId, atpKey 725 * @throws OperationFailedException unable to complete request 726 */ 727 public List<LuiInfo> getLuisInAtpByCluId(@WebParam(name="cluId")String cluId, @WebParam(name="atpKey")String atpKey) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException; 728 729 /** 730 * Retrieves the list of LUI ids for the specified CLU 731 * @param cluId identifier of the CLU 732 * @return list of LUI identifiers 733 * @throws DoesNotExistException clu not found 734 * @throws InvalidParameterException invalid cluId 735 * @throws MissingParameterException missing cluId 736 * @throws OperationFailedException unable to complete request 737 */ 738 public List<String> getLuiIdsByCluId(@WebParam(name="cluId")String cluId) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException; 739 740 /** 741 * Retrieves the list of LUI ids for the specified CLU and Time period 742 * @param cluId identifier of the CLU 743 * @param atpKey identifier for the academic time period 744 * @return list of LUI identifiers 745 * @throws DoesNotExistException clu, atp not found 746 * @throws InvalidParameterException invalid cluId, atpKey 747 * @throws MissingParameterException missing cluId, atpKey 748 * @throws OperationFailedException unable to complete request 749 */ 750 public List<String> getLuiIdsInAtpByCluId(@WebParam(name="cluId")String cluId, @WebParam(name="atpKey")String atpKey) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException; 751 752 /** 753 * Retrieves the list of allowed relation types between the two specified LUIs 754 * @param luiId identifier of the first LUI 755 * @param relatedLuiId identifier of the second LUI 756 * @return list of LU to LU relation types 757 * @throws DoesNotExistException lui, relatedLui not found 758 * @throws InvalidParameterException invalid luiId, relatedLuiId 759 * @throws MissingParameterException missing luiId, relatedLuiId 760 * @throws OperationFailedException unable to complete request 761 */ 762 public List<String> getAllowedLuLuRelationTypesByLuiId(@WebParam(name="luiId")String luiId, @WebParam(name="relatedLuiId")String relatedLuiId) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException; 763 764 /** 765 * Retrieves the list of LUI information for the LUIs related to the specified LUI Id with a certain LU to LU relation type (getRelatedLuisByLuiId from the other direction) 766 * @param relatedLuiId identifier of the LUI 767 * @param luLuRelationType the LU to LU relation type 768 * @return list of LUI information 769 * @throws DoesNotExistException relatedLui, luLuRelationType not found 770 * @throws InvalidParameterException invalid relatedLuiId, luLuRelationType 771 * @throws MissingParameterException missing relatedLuiId, luLuRelationType 772 * @throws OperationFailedException unable to complete request 773 */ 774 public List<LuiInfo> getLuisByRelation(@WebParam(name="relatedLuiId")String relatedLuiId, @WebParam(name="luLuRelationType")String luLuRelationType) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException; 775 776 /** 777 * Retrieves the list of LUI Ids for the specified related LUI Id and LU to LU relation type (getRelatedLuiIdsByLuiId from the other direction) 778 * @param relatedLuiId identifier of the LUI 779 * @param luLuRelationType the LU to LU relation type 780 * @return list of LUI identifiers 781 * @throws DoesNotExistException relatedLui, luLuRelationType not found 782 * @throws InvalidParameterException invalid relatedLuiId, luLuRelationType 783 * @throws MissingParameterException missing relatedLuiId, luLuRelationType 784 * @throws OperationFailedException unable to complete request 785 */ 786 public List<String> getLuiIdsByRelation(@WebParam(name="relatedLuiId")String relatedLuiId, @WebParam(name="luLuRelationType")String luLuRelationType) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException; 787 788 /** 789 * Retrieves the list of related LUI information for the specified LUI Id and LU to LU relation type (getLuisByRelation from the other direction) 790 * @param luiId identifier of the LUI 791 * @param luLuRelationType the LU to LU relation type 792 * @return list of LUI information 793 * @throws DoesNotExistException lui, luLuRelationType not found 794 * @throws InvalidParameterException invalid luiId, luLuRelationType 795 * @throws MissingParameterException missing luiId, luLuRelationType 796 * @throws OperationFailedException unable to complete request 797 */ 798 public List<LuiInfo> getRelatedLuisByLuiId(@WebParam(name="luiId")String luiId, @WebParam(name="luLuRelationType")String luLuRelationType) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException; 799 800 /** 801 * Retrieves the list of related LUI Ids for the specified LUI Id and LU to LU relation type. (getLuiIdsByRelation from the other direction) 802 * @param luiId identifier of the LUI 803 * @param luLuRelationType the LU to LU relation type 804 * @return list of LUI identifiers 805 * @throws DoesNotExistException luiId, luLuRelationType not found 806 * @throws InvalidParameterException invalid luiId, luLuRelationType 807 * @throws MissingParameterException missing luiId, luLuRelationType 808 * @throws OperationFailedException unable to complete request 809 */ 810 public List<String> getRelatedLuiIdsByLuiId(@WebParam(name="luiId")String luiId, @WebParam(name="luLuRelationType")String luLuRelationType) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException; 811 812 /** 813 * Retrieves the relationship information between LUIs given a specific relation instance 814 * @param luiLuiRelationId identifier of LUI to LUI relation 815 * @return information on the relation between two LUIs 816 * @throws DoesNotExistException luiLuiRelation not found 817 * @throws InvalidParameterException invalid luiLuiRelationId 818 * @throws MissingParameterException missing luiLuiRelationId 819 * @throws OperationFailedException unable to complete request 820 */ 821 public LuiLuiRelationInfo getLuiLuiRelation(@WebParam(name="luiLuiRelationId")String luiLuiRelationId) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException; 822 823 /** 824 * Retrieves the list of relationship information for the specified LUI 825 * @param luiId identifier of the LUI 826 * @return list of LUI to LUI relation information 827 * @throws DoesNotExistException lui not found 828 * @throws InvalidParameterException invalid luiId 829 * @throws MissingParameterException missing luiId 830 * @throws OperationFailedException unable to complete request 831 */ 832 public List<LuiLuiRelationInfo> getLuiLuiRelationsByLui(@WebParam(name="luiId")String luiId) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException; 833 834 /** 835 * Validates a CLU. Depending on the value of validationType, this validation could be limited to tests on just the current object and its directly contained sub-objects or expanded to perform all tests related to this object. If an identifier is present for the CLU (and/or one of its contained sub-objects) and a record is found for that identifier, the validation checks if the CLU can be shifted to the new values. If an identifier is not present or 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. 836 * @param validationType identifier of the extent of validation 837 * @param cluInfo CLU information to be tested. 838 * @return results from performing the validation 839 * @throws DoesNotExistException validationTypeKey not found 840 * @throws InvalidParameterException invalid validationTypeKey, cluInfo 841 * @throws MissingParameterException missing validationTypeKey, cluInfo 842 * @throws OperationFailedException unable to complete request 843 */ 844 public List<ValidationResultInfo> validateClu(@WebParam(name="validationType")String validationType, @WebParam(name="cluInfo")CluInfo cluInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException; 845 846 /** 847 * Creates a new CLU 848 * @param luTypeKey identifier of the LU Type for the CLU being created 849 * @param cluInfo information about the CLU being created 850 * @return the created CLU information 851 * @throws AlreadyExistsException CLU already exists 852 * @throws DataValidationErrorException One or more values invalid for this operation 853 * @throws DoesNotExistException luTypeKey not found 854 * @throws InvalidParameterException invalid luTypeKey, cluInfo 855 * @throws MissingParameterException missing luTypeKey, cluInfo 856 * @throws OperationFailedException unable to complete request 857 * @throws PermissionDeniedException authorization failure 858 */ 859 public CluInfo createClu(@WebParam(name="luTypeKey")String luTypeKey, @WebParam(name="cluInfo")CluInfo cluInfo) throws AlreadyExistsException, DataValidationErrorException, DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; 860 861 /** 862 * Updates an existing CLU 863 * @param cluId identifier for the CLU to be updated 864 * @param cluInfo updated information about the CLU 865 * @return the updated CLU information 866 * @throws DataValidationErrorException One or more values invalid for this operation 867 * @throws DoesNotExistException cluId not found 868 * @throws InvalidParameterException invalid cluId, cluInfo 869 * @throws MissingParameterException missing cluId, cluInfo 870 * @throws OperationFailedException unable to complete request 871 * @throws PermissionDeniedException authorization failure 872 * @throws VersionMismatchException The action was attempted on an out of date version 873 */ 874 public CluInfo updateClu(@WebParam(name="cluId")String cluId, @WebParam(name="cluInfo")CluInfo cluInfo) throws DataValidationErrorException, DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException, VersionMismatchException; 875 876 /** 877 * Deletes an existing CLU 878 * @param cluId identifier for the CLU to be deleted 879 * @return status of the operation 880 * @throws DoesNotExistException cluId not found 881 * @throws InvalidParameterException invalid cluId 882 * @throws MissingParameterException missing cluId 883 * @throws DependentObjectsExistException delete would leave orphaned objects or violate integrity constraints 884 * @throws OperationFailedException unable to complete request 885 * @throws PermissionDeniedException authorization failure 886 */ 887 public StatusInfo deleteClu(@WebParam(name="cluId")String cluId) throws DoesNotExistException, InvalidParameterException, MissingParameterException, DependentObjectsExistException, OperationFailedException, PermissionDeniedException; 888 889 890 /** 891 * Creates a new CLU version based on the current clu 892 * @param cluId identifier for the CLU to be versioned 893 * @param versionComment comment for the current version 894 * @return the new versioned CLU information 895 * @throws DataValidationErrorException One or more values invalid for this operation 896 * @throws DoesNotExistException cluId not found 897 * @throws InvalidParameterException invalid cluId 898 * @throws MissingParameterException missing cluId 899 * @throws OperationFailedException unable to complete request 900 * @throws PermissionDeniedException authorization failure 901 * @throws VersionMismatchException The action was attempted on an out of date version 902 */ 903 public CluInfo createNewCluVersion(@WebParam(name="cluId")String cluId, @WebParam(name="versionComment")String versionComment) throws DataValidationErrorException, DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException, VersionMismatchException; 904 905 906 /** 907 * Sets a specific version of the Clu as current. The sequence number must be greater than the existing current Clu version. 908 * This will truncate the current version's end date to the currentVersionStart param. 909 * If a Clu exists which is set to become current in the future, that clu's currentVersionStart and CurrentVersionEnd will be nullified. 910 * The currentVersionStart must be in the future to prevent changing historic data. 911 * @param cluVersionId Version Specific Id of the Clu 912 * @param currentVersionStart Date when this clu becomes current. Must be in the future and be after the most current clu's start date. 913 * @return status of the operation 914 * @throws DoesNotExistException cluVersionId not found 915 * @throws InvalidParameterException invalid cluVersionId, previousState, newState 916 * @throws MissingParameterException missing cluVersionId, previousState, newState 917 * @throws IllegalVersionSequencingException a Clu with higher sequence number from the one provided is marked current 918 * @throws OperationFailedException unable to complete request 919 * @throws PermissionDeniedException authorization failure 920 */ 921 public StatusInfo setCurrentCluVersion(@WebParam(name="cluVersionId")String cluVersionId, @WebParam(name="currentVersionStart")Date currentVersionStart) throws DoesNotExistException, InvalidParameterException, MissingParameterException, IllegalVersionSequencingException, OperationFailedException, PermissionDeniedException; 922 923 /** 924 * Updates the state of the specified CLU 925 * @param cluId identifier for the CLU to be updated 926 * @param luState new state for the CLU. Value is expected to be constrained to those in the luState enumeration. 927 * @return the updated CLU information 928 * @throws DataValidationErrorException new state not valid for existing state of CLU 929 * @throws DoesNotExistException cluId, luState not found 930 * @throws InvalidParameterException invalid cluId, luState 931 * @throws MissingParameterException missing cluId, luState 932 * @throws OperationFailedException unable to complete request 933 * @throws PermissionDeniedException authorization failure 934 */ 935 public CluInfo updateCluState(@WebParam(name="cluId")String cluId, @WebParam(name="luState")String luState) throws DataValidationErrorException, DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; 936 937 /** 938 * Validates a cluCluRelation. Depending on the value of validationType, this validation could be limited to tests on just the current object and its directly contained sub-objects or expanded to perform all tests related to this object. If an identifier is present for the cluCluRelation (and/or one of its contained sub-objects) and a record is found for that identifier, the validation checks if the relationship can be shifted to the new values. If an identifier is not present or 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. 939 * @param validationType identifier of the extent of validation 940 * @param cluCluRelationInfo cluCluRelation information to be tested. 941 * @return results from performing the validation 942 * @throws DoesNotExistException validationTypeKey not found 943 * @throws InvalidParameterException invalid validationTypeKey, cluCluRelationInfo 944 * @throws MissingParameterException missing validationTypeKey, cluCluRelationInfo 945 * @throws OperationFailedException unable to complete request 946 */ 947 public List<ValidationResultInfo> validateCluCluRelation(@WebParam(name="validationType")String validationType, @WebParam(name="cluCluRelationInfo")CluCluRelationInfo cluCluRelationInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException; 948 949 /** 950 * Create a directional relationship between two CLUs 951 * @param cluId identifier of the first CLU in the relationship - The From or Parent of the relation 952 * @param relatedCluId identifier of the second CLU in the relationship to be related to - the To or Child of the Relation 953 * @param luLuRelationTypeKey the LU to LU relationship type of the relationship 954 * @param cluCluRelationInfo information about the relationship between the two CLUs 955 * @return the created CLU to CLU relation information 956 * @throws AlreadyExistsException relationship already exists 957 * @throws CircularRelationshipException cluId equals relatedCluId 958 * @throws DataValidationErrorException One or more values invalid for this operation 959 * @throws DoesNotExistException cluId, relatedCluId, luLuRelationType not found 960 * @throws InvalidParameterException invalid cluId, relatedCluId, luluRelationType, cluCluRelationInfo 961 * @throws MissingParameterException missing cluId, relatedCluId, luluRelationType, cluCluRelationInfo 962 * @throws OperationFailedException unable to complete request 963 * @throws PermissionDeniedException authorization failure 964 */ 965 public CluCluRelationInfo createCluCluRelation(@WebParam(name="cluId")String cluId, @WebParam(name="relatedCluId")String relatedCluId, @WebParam(name="luLuRelationTypeKey")String luLuRelationTypeKey, @WebParam(name="cluCluRelationInfo")CluCluRelationInfo cluCluRelationInfo) throws AlreadyExistsException, CircularRelationshipException, DataValidationErrorException, DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; 966 967 /** 968 * Updates a relationship between two CLUs 969 * @param cluCluRelationId identifier of the CLU to CLU relation to be updated 970 * @param cluCluRelationInfo changed information about the CLU to CLU relationship 971 * @return the updated CLU to CLU relation information 972 * @throws DataValidationErrorException One or more values invalid for this operation 973 * @throws DoesNotExistException cluCluRelation not found 974 * @throws InvalidParameterException invalid cluCluRelationId, cluCluRelationInfo 975 * @throws MissingParameterException missing cluCluRelationId, cluCluRelationInfo 976 * @throws OperationFailedException unable to complete request 977 * @throws PermissionDeniedException authorization failure 978 * @throws VersionMismatchException The action was attempted on an out of date version. 979 */ 980 public CluCluRelationInfo updateCluCluRelation(@WebParam(name="cluCluRelationId")String cluCluRelationId, @WebParam(name="cluCluRelationInfo")CluCluRelationInfo cluCluRelationInfo) throws DataValidationErrorException, DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException, VersionMismatchException; 981 982 /** 983 * Deletes a relationship between two CLUs 984 * @param cluCluRelationId identifier of CLU to CLU relationship to delete 985 * @return status of the operation (success or failure) 986 * @throws DoesNotExistException cluCluRelation not found 987 * @throws InvalidParameterException invalid cluCluRelationId 988 * @throws MissingParameterException missing cluCluRelationId 989 * @throws OperationFailedException unable to complete request 990 * @throws PermissionDeniedException authorization failure 991 */ 992 public StatusInfo deleteCluCluRelation(@WebParam(name="cluCluRelationId")String cluCluRelationId) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; 993 994 /** 995 * Validates information about publication for a clu. Depending on the value of validationType, this validation could be limited to tests on just the current object and its directly contained sub-objects or expanded to perform all tests related to this object. If an identifier is present for the clu publication object (and/or one of its contained sub-objects) and a record is found for that identifier, the validation checks if the clu publication object can be shifted to the new values. If an identifier is not present or 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. 996 * @param validationType identifier of the extent of validation 997 * @param cluPublicationInfo CLU publication information to be tested. 998 * @return results from performing the validation 999 * @throws DoesNotExistException validationTypeKey not found 1000 * @throws InvalidParameterException invalid validationTypeKey, cluPublicationInfo 1001 * @throws MissingParameterException missing validationTypeKey, cluPublicationInfo 1002 * @throws OperationFailedException unable to complete request 1003 */ 1004 public List<ValidationResultInfo> validateCluPublication(@WebParam(name="validationType")String validationType, @WebParam(name="cluPublicationInfo")CluPublicationInfo cluPublicationInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException; 1005 1006 /** 1007 * Create a clu publication object, which contains information about publication for a clu. 1008 * @param cluId identifier of a clu 1009 * @param luPublicationType type of lu publication 1010 * @param cluPublicationInfo information about publication for a clu 1011 * @return information about the created clu publication object 1012 * @throws AlreadyExistsException clu publication object already exists 1013 * @throws DataValidationErrorException One or more values invalid for this operation 1014 * @throws InvalidParameterException invalid cluId, luPublicationType, cluPublicationInfo 1015 * @throws MissingParameterException missing cluId, luPublicationType, cluPublicationInfo 1016 * @throws OperationFailedException unable to complete request 1017 * @throws PermissionDeniedException authorization failure 1018 */ 1019 public CluPublicationInfo createCluPublication(@WebParam(name="cluId")String cluId, @WebParam(name="luPublicationType")String luPublicationType, @WebParam(name="cluPublicationInfo")CluPublicationInfo cluPublicationInfo) throws AlreadyExistsException, DataValidationErrorException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; 1020 1021 /** 1022 * Updates an existing clu publication object 1023 * @param cluPublicationId identifier for the clu publication object to be updated 1024 * @param cluPublicationInfo updated information about the clu publication object 1025 * @return the updated clu publication information 1026 * @throws DataValidationErrorException One or more values invalid for this operation 1027 * @throws DoesNotExistException cluPublication not found 1028 * @throws InvalidParameterException invalid cluPublicationId, cluPublicationInfo 1029 * @throws MissingParameterException missing cluPublicationId, cluPublicationInfo 1030 * @throws OperationFailedException unable to complete request 1031 * @throws PermissionDeniedException authorization failure 1032 * @throws VersionMismatchException The action was attempted on an out of date version. 1033 */ 1034 public CluPublicationInfo updateCluPublication(@WebParam(name="cluPublicationId")String cluPublicationId, @WebParam(name="cluPublicationInfo")CluPublicationInfo cluPublicationInfo) throws DataValidationErrorException, DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException, VersionMismatchException; 1035 1036 /** 1037 * Deletes an existing clu publication object 1038 * @param cluPublicationId identifier for the clu publication object to be deleted 1039 * @return status of the operation 1040 * @throws DoesNotExistException cluPublication not found 1041 * @throws InvalidParameterException invalid cluPublicationId 1042 * @throws MissingParameterException missing cluPublicationId 1043 * @throws DependentObjectsExistException delete would leave orphaned objects or violate integrity constraints 1044 * @throws OperationFailedException unable to complete request 1045 * @throws PermissionDeniedException authorization failure 1046 */ 1047 public StatusInfo deleteCluPublication(@WebParam(name="cluPublicationId")String cluPublicationId) throws DoesNotExistException, InvalidParameterException, MissingParameterException, DependentObjectsExistException, OperationFailedException, PermissionDeniedException; 1048 1049 /** 1050 * Validates information about results for a clu. Depending on the value of validationType, this validation could be limited to tests on just the current object and its directly contained sub-objects or expanded to perform all tests related to this object. If an identifier is present for the clu result object (and/or one of its contained sub-objects) and a record is found for that identifier, the validation checks if the clu result object can be shifted to the new values. If an identifier is not present or 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. 1051 * @param validationType identifier of the extent of validation 1052 * @param cluResultInfo CLU result information to be tested. 1053 * @return results from performing the validation 1054 * @throws DoesNotExistException validationTypeKey not found 1055 * @throws InvalidParameterException invalid validationTypeKey, cluResultInfo 1056 * @throws MissingParameterException missing validationTypeKey, cluResultInfo 1057 * @throws OperationFailedException unable to complete request 1058 */ 1059 public List<ValidationResultInfo> validateCluResult(@WebParam(name="validationType")String validationType, @WebParam(name="cluResultInfo")CluResultInfo cluResultInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException; 1060 1061 /** 1062 * Create a clu result object, which contains information about potential results for a clu. 1063 * @param cluId identifier of a clu 1064 * @param cluResultType type of clu result 1065 * @param cluResultInfo information about potential results for a clu 1066 * @return information about the created clu result 1067 * @throws AlreadyExistsException clu result already exists 1068 * @throws DataValidationErrorException One or more values invalid for this operation 1069 * @throws InvalidParameterException invalid cluId, cluResultType, cluResultInfo 1070 * @throws MissingParameterException missing cluId, cluResultType, cluResultInfo 1071 * @throws OperationFailedException unable to complete request 1072 * @throws PermissionDeniedException authorization failure 1073 * @throws DoesNotExistException resultUsageTypeKey not found 1074 */ 1075 public CluResultInfo createCluResult(@WebParam(name="cluId")String cluId, @WebParam(name="cluResultType")String cluResultType, @WebParam(name="cluResultInfo")CluResultInfo cluResultInfo) throws AlreadyExistsException, DataValidationErrorException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException, DoesNotExistException; 1076 1077 /** 1078 * Updates an existing clu result 1079 * @param cluResultId identifier for the clu result to be updated 1080 * @param cluResultInfo updated information about the clu result 1081 * @return the updated clu result information 1082 * @throws DataValidationErrorException One or more values invalid for this operation 1083 * @throws DoesNotExistException cluResult not found 1084 * @throws InvalidParameterException invalid cluResultId, cluResultInfo 1085 * @throws MissingParameterException missing cluResultId, cluResultInfo 1086 * @throws OperationFailedException unable to complete request 1087 * @throws PermissionDeniedException authorization failure 1088 * @throws VersionMismatchException The action was attempted on an out of date version. 1089 */ 1090 public CluResultInfo updateCluResult(@WebParam(name="cluResultId")String cluResultId, @WebParam(name="cluResultInfo")CluResultInfo cluResultInfo) throws DataValidationErrorException, DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException, VersionMismatchException; 1091 1092 /** 1093 * Deletes an existing clu result 1094 * @param cluResultId identifier for the clu result to be deleted 1095 * @return status of the operation 1096 * @throws DoesNotExistException cluResult not found 1097 * @throws InvalidParameterException invalid cluResultId 1098 * @throws MissingParameterException missing cluResultId 1099 * @throws DependentObjectsExistException delete would leave orphaned objects or violate integrity constraints 1100 * @throws OperationFailedException unable to complete request 1101 * @throws PermissionDeniedException authorization failure 1102 */ 1103 public StatusInfo deleteCluResult(@WebParam(name="cluResultId")String cluResultId) throws DoesNotExistException, InvalidParameterException, MissingParameterException, DependentObjectsExistException, OperationFailedException, PermissionDeniedException; 1104 1105 /** 1106 * Validates a cluLoRelation. Depending on the value of validationType, this validation could be limited to tests on just the current object and its directly contained sub-objects or expanded to perform all tests related to this object. If an identifier is present for the cluLoRelation (and/or one of its contained sub-objects) and a record is found for that identifier, the validation checks if the relationship can be shifted to the new values. If an identifier is not present or 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. 1107 * @param validationType identifier of the extent of validation 1108 * @param cluLoRelationInfo cluLoRelation information to be tested. 1109 * @return results from performing the validation 1110 * @throws DoesNotExistException validationTypeKey not found 1111 * @throws InvalidParameterException invalid validationTypeKey, cluLoRelationInfo 1112 * @throws MissingParameterException missing validationTypeKey, cluLoRelationInfo 1113 * @throws OperationFailedException unable to complete request 1114 */ 1115 public List<ValidationResultInfo> validateCluLoRelation(@WebParam(name="validationType")String validationType, @WebParam(name="cluLoRelationInfo")CluLoRelationInfo cluLoRelationInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException; 1116 1117 /** 1118 * Creates a relationship between a learning objective and a CLU. 1119 * @param cluId CLU identifier 1120 * @param loId learning objective identifier 1121 * @param cluLoRelationType type of clu learning objective relationship 1122 * @param cluLoRelationInfo clu learning objective relationship information 1123 * @return the newly created clu learning objective relationship 1124 * @throws AlreadyExistsException connection between clu and learning objective already exists 1125 * @throws DoesNotExistException cluId, loId, cluLoRelationType not found 1126 * @throws InvalidParameterException one or more parameters invalid 1127 * @throws MissingParameterException one or more parameters not specified 1128 * @throws OperationFailedException unable to complete request 1129 * @throws PermissionDeniedException authorization failure 1130 * @throws DataValidationErrorException data validation error 1131 */ 1132 public CluLoRelationInfo createCluLoRelation(@WebParam(name="cluId")String cluId, @WebParam(name="loId")String loId, @WebParam(name="cluLoRelationType")String cluLoRelationType, @WebParam(name="cluLoRelationInfo")CluLoRelationInfo cluLoRelationInfo) throws AlreadyExistsException, DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException, DataValidationErrorException; 1133 1134 /** 1135 * Updates a relationship between a clu and learning objective 1136 * @param cluLoRelationId identifier of the clu learning objective relationship to be updated 1137 * @param cluLoRelationInfo information about the clu learning objective relationship to be updated 1138 * @return the updated clu learning objective relationship information 1139 * @throws DataValidationErrorException One or more values invalid for this operation 1140 * @throws DoesNotExistException cluLoRelation not found 1141 * @throws InvalidParameterException one or more parameters invalid 1142 * @throws MissingParameterException one or more parameters missing 1143 * @throws OperationFailedException unable to complete request 1144 * @throws PermissionDeniedException authorization failure 1145 * @throws VersionMismatchException The action was attempted on an out of date version. 1146 */ 1147 public CluLoRelationInfo updateCluLoRelation(@WebParam(name="cluLoRelationId")String cluLoRelationId, @WebParam(name="cluLoRelationInfo")CluLoRelationInfo cluLoRelationInfo) throws DataValidationErrorException, DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException, VersionMismatchException; 1148 1149 /** 1150 * Removes a relationship between a learning objective and a Clu. 1151 * @param cluLoRelationId CLU learning objective Relationship identifier 1152 * @return Status 1153 * @throws DoesNotExistException cluLoRelation not found 1154 * @throws InvalidParameterException invalid cluLoRelationId 1155 * @throws MissingParameterException cluLoRelationId not specified 1156 * @throws OperationFailedException unable to complete request 1157 * @throws PermissionDeniedException authorization failure 1158 */ 1159 public StatusInfo deleteCluLoRelation(@WebParam(name="cluLoRelationId")String cluLoRelationId) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; 1160 1161 /** 1162 * Add a Resource requirement to a CLU 1163 * @param resourceTypeKey identifier of the resource requirement type to be added to the CLU 1164 * @param cluId identifier of the CLU 1165 * @return status of the operation (success or failure) 1166 * @throws AlreadyExistsException resourceTypeKey is already associated with the cluId 1167 * @throws DoesNotExistException resourceTypeKey or cluId not found 1168 * @throws InvalidParameterException resourceTypeKey or cluId invalid 1169 * @throws MissingParameterException resourceTypeKey or cluId missing 1170 * @throws OperationFailedException unable to complete request 1171 * @throws PermissionDeniedException authorization failure 1172 */ 1173 public StatusInfo addCluResourceRequirement(@WebParam(name="resourceTypeKey")String resourceTypeKey, @WebParam(name="cluId")String cluId) throws AlreadyExistsException, DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; 1174 1175 /** 1176 * Remove a Resource requirement from a CLU 1177 * @param resourceTypeKey identifier of the resource type to be removed from the CLU 1178 * @param cluId identifier of the CLU 1179 * @return status of the operation (success or failure) 1180 * @throws DoesNotExistException resourceTypeKey or cluId or relationship not found 1181 * @throws InvalidParameterException resourceTypeKey or cluId invalid 1182 * @throws MissingParameterException resourceTypeKey or cluId missing 1183 * @throws OperationFailedException unable to complete request 1184 * @throws PermissionDeniedException authorization failure 1185 */ 1186 public StatusInfo removeCluResourceRequirement(@WebParam(name="resourceTypeKey")String resourceTypeKey, @WebParam(name="cluId")String cluId) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; 1187 1188 /** 1189 * Validates information about a clu set. Depending on the value of validationType, this validation could be limited to tests on just the current object and its directly contained sub-objects or expanded to perform all tests related to this object. If an identifier is present for the clu set (and/or one of its contained sub-objects) and a record is found for that identifier, the validation checks if the clu set can be shifted to the new values. If an identifier is not present or 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. 1190 * @param validationType identifier of the extent of validation 1191 * @param cluSetInfo CLU set information to be tested. 1192 * @return results from performing the validation 1193 * @throws DoesNotExistException validationTypeKey not found 1194 * @throws InvalidParameterException invalid validationTypeKey, cluSetInfo 1195 * @throws MissingParameterException missing validationTypeKey, cluSetInfo 1196 * @throws OperationFailedException unable to complete request 1197 */ 1198 public List<ValidationResultInfo> validateCluSet(@WebParam(name="validationType")String validationType, @WebParam(name="cluSetInfo")CluSetInfo cluSetInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException; 1199 1200 /** 1201 * Creates a CLU set. 1202 * @param cluSetType type of the CLU set to be created 1203 * @param cluSetInfo information required to create a CLU set 1204 * @return the created CLU set information 1205 * @throws AlreadyExistsException the cluSet already exists 1206 * @throws DataValidationErrorException One or more values invalid for this operation 1207 * @throws InvalidParameterException invalid cluSetName, cluSetInfo 1208 * @throws MissingParameterException missing cluSetName, cluSetInfo 1209 * @throws OperationFailedException unable to complete request 1210 * @throws PermissionDeniedException authorization failure 1211 * @throws UnsupportedActionException CLU set need to be static or dynamic but not both 1212 */ 1213 public CluSetInfo createCluSet(@WebParam(name="cluSetType")String cluSetType, @WebParam(name="cluSetInfo")CluSetInfo cluSetInfo) throws AlreadyExistsException, DataValidationErrorException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException, UnsupportedActionException; 1214 1215 /** 1216 * Update the information for a CLU set 1217 * @param cluSetId identifier of the CLU set to be updated 1218 * @param cluSetInfo updated information about the CLU set 1219 * @return the updated CLU set information 1220 * @throws DataValidationErrorException One or more values invalid for this operation 1221 * @throws DoesNotExistException cluSet not found 1222 * @throws InvalidParameterException invalid cluSetId, cluSetInfo 1223 * @throws MissingParameterException missing cluSetId, cluSetInfo 1224 * @throws OperationFailedException unable to complete request 1225 * @throws PermissionDeniedException authorization failure 1226 * @throws VersionMismatchException The action was attempted on an out of date version. 1227 * @throws UnsupportedActionException CLU set need to be static or dynamic but not both 1228 * @throws CircularRelationshipException addedCluSetId cannot be added to the cluSetId 1229 */ 1230 public CluSetInfo updateCluSet(@WebParam(name="cluSetId")String cluSetId, @WebParam(name="cluSetInfo")CluSetInfo cluSetInfo) throws DataValidationErrorException, DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException, VersionMismatchException, UnsupportedActionException, CircularRelationshipException; 1231 1232 /** 1233 * Delete a CLU set 1234 * @param cluSetId identifier of the CLU set to be deleted 1235 * @return status of the operation (success or failure) 1236 * @throws DoesNotExistException cluSet not found 1237 * @throws InvalidParameterException invalid cluSetId 1238 * @throws MissingParameterException missing cluSetId 1239 * @throws OperationFailedException unable to complete request 1240 * @throws PermissionDeniedException authorization failure 1241 */ 1242 public StatusInfo deleteCluSet(@WebParam(name="cluSetId")String cluSetId) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; 1243 1244 /** 1245 * Adds one CLU set to another 1246 * @param cluSetId identifier of the host CLU set 1247 * @param addedCluSetId identifier of the CLU set to be added 1248 * @return status of the operation (success or failure) 1249 * @throws CircularRelationshipException addedCluSetId cannot be added to the cluSetId 1250 * @throws DoesNotExistException cluSet, addedCluSet not found 1251 * @throws InvalidParameterException invalid cluSetId, addedCluSetId 1252 * @throws MissingParameterException missing cluSetId, addedCluSetId 1253 * @throws OperationFailedException unable to complete request 1254 * @throws PermissionDeniedException authorization failure 1255 * @throws UnsupportedActionException CLU set is dynamically determined 1256 */ 1257 public StatusInfo addCluSetToCluSet(@WebParam(name="cluSetId")String cluSetId, @WebParam(name="addedCluSetId")String addedCluSetId) throws CircularRelationshipException, DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException, UnsupportedActionException; 1258 1259 /** 1260 * Adds a list of CLU sets to another CluSet. If any individual one would fail, then an error is returned and none are added. 1261 * @param cluSetId identifier of the host CLU set 1262 * @param addedCluSetIdList list of identifiers of the CLU sets to be added 1263 * @return status of the operation (success or failure) 1264 * @throws CircularRelationshipException addedCluSetId cannot be added to the cluSetId 1265 * @throws DoesNotExistException cluSet, addedCluSet not found 1266 * @throws InvalidParameterException invalid cluSetId, addedCluSetId 1267 * @throws MissingParameterException missing cluSetId, addedCluSetId 1268 * @throws OperationFailedException unable to complete request 1269 * @throws PermissionDeniedException authorization failure 1270 * @throws UnsupportedActionException CLU set is dynamically determined 1271 */ 1272 public StatusInfo addCluSetsToCluSet(@WebParam(name="cluSetId")String cluSetId, @WebParam(name="addedCluSetIdList")List<String> addedCluSetIdList) throws CircularRelationshipException, DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException, UnsupportedActionException; 1273 1274 /** 1275 * Removes one CLU set from another 1276 * @param cluSetId identifier of the host CLU set 1277 * @param removedCluSetId identifier of the CLU set to be removed 1278 * @return status of the operation (success or failure) 1279 * @throws DoesNotExistException cluSet, removedCluSet not found 1280 * @throws InvalidParameterException invalid cluSetId, removedCluSetId 1281 * @throws MissingParameterException missing cluSetId, removedCluSetId 1282 * @throws OperationFailedException unable to complete request 1283 * @throws PermissionDeniedException authorization failure 1284 * @throws UnsupportedActionException CLU set is dynamically determined 1285 */ 1286 public StatusInfo removeCluSetFromCluSet(@WebParam(name="cluSetId")String cluSetId, @WebParam(name="removedCluSetId")String removedCluSetId) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException, UnsupportedActionException; 1287 1288 /** 1289 * Add a CLU to a CLU set 1290 * @param cluId identifier of CLU to add to the CLU set 1291 * @param cluSetId identifier of the CLU set 1292 * @return status of the operation (success or failure) 1293 * @throws DoesNotExistException clu, cluSet not found 1294 * @throws InvalidParameterException invalid cluId, cluSetId 1295 * @throws MissingParameterException missing cluId, cluSetId 1296 * @throws OperationFailedException unable to complete request 1297 * @throws PermissionDeniedException authorization failure 1298 * @throws UnsupportedActionException CLU set is dynamically determined 1299 */ 1300 public StatusInfo addCluToCluSet(@WebParam(name="cluId")String cluId, @WebParam(name="cluSetId")String cluSetId) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException, UnsupportedActionException; 1301 1302 /** 1303 * Adds a list of CLUs to a CLU set. If any individual one would fail, then an error is returned and none are added. 1304 * @param cluSetIds list of identifiers of CLUs to add to the CLU set 1305 * @param cluSetId identifier of the CLU set to be added 1306 * @return status of the operation (success or failure) 1307 * @throws DoesNotExistException clu, cluSet not found 1308 * @throws InvalidParameterException invalid cluId, cluSetId 1309 * @throws MissingParameterException missing cluId, cluSetId 1310 * @throws OperationFailedException unable to complete request 1311 * @throws PermissionDeniedException authorization failure 1312 * @throws UnsupportedActionException CLU set is dynamically determined 1313 */ 1314 public StatusInfo addClusToCluSet(@WebParam(name="cluIdList")List<String> cluIdList, @WebParam(name="cluSetId")String cluSetId) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException, UnsupportedActionException; 1315 1316 /** 1317 * Remove a CLU from a CLU set 1318 * @param cluId identifier of CLU to remove from the CLU set 1319 * @param cluSetId identifier of the CLU set 1320 * @return status of the operation (success or failure) 1321 * @throws DoesNotExistException clu, cluSet not found 1322 * @throws InvalidParameterException invalid cluId, cluSetId 1323 * @throws MissingParameterException missing cluId, cluSetId 1324 * @throws OperationFailedException unable to complete request 1325 * @throws PermissionDeniedException authorization failure 1326 * @throws UnsupportedActionException CLU set is dynamically determined 1327 */ 1328 public StatusInfo removeCluFromCluSet(@WebParam(name="cluId")String cluId, @WebParam(name="cluSetId")String cluSetId) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException, UnsupportedActionException; 1329 1330 /** 1331 * Validates a LUI. Depending on the value of validationType, this validation could be limited to tests on just the current object and its directly contained sub-objects or expanded to perform all tests related to this object. If an identifier is present for the LUI (and/or one of its contained sub-objects) and a record is found for that identifier, the validation checks if the LUI can be shifted to the new values. If an identifier is not present or 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. 1332 * @param validationType identifier of the extent of validation 1333 * @param luiInfo LUI information to be tested. 1334 * @return results from performing the validation 1335 * @throws DoesNotExistException validationTypeKey not found 1336 * @throws InvalidParameterException invalid validationTypeKey, luiInfo 1337 * @throws MissingParameterException missing validationTypeKey, luiInfo 1338 * @throws OperationFailedException unable to complete request 1339 */ 1340 public List<ValidationResultInfo> validateLui(@WebParam(name="validationType")String validationType, @WebParam(name="luiInfo")LuiInfo luiInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException; 1341 1342 /** 1343 * Creates a new LUI 1344 * @param cluId identifier of the CLU for the LUI being created 1345 * @param atpKey identifier of the academic time period for the LUI being created 1346 * @param luiInfo information about the LUI being created 1347 * @return the created LUI information 1348 * @throws AlreadyExistsException LUI already exists 1349 * @throws DataValidationErrorException One or more values invalid for this operation 1350 * @throws DoesNotExistException clu, atp not found 1351 * @throws InvalidParameterException invalid cluId, atpKey, luiInfo 1352 * @throws MissingParameterException missing cluId, atpKey, luiInfo 1353 * @throws OperationFailedException unable to complete request 1354 * @throws PermissionDeniedException authorization failure 1355 */ 1356 public LuiInfo createLui(@WebParam(name="cluId")String cluId, @WebParam(name="atpKey")String atpKey, @WebParam(name="luiInfo")LuiInfo luiInfo) throws AlreadyExistsException, DataValidationErrorException, DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; 1357 1358 /** 1359 * Updates an existing LUI 1360 * @param luiId identifier for the LUI to be updated 1361 * @param luiInfo updated information about the LUI 1362 * @return the updated LUI information 1363 * @throws DataValidationErrorException One or more values invalid for this operation 1364 * @throws DoesNotExistException lui not found 1365 * @throws InvalidParameterException invalid luiId, luiInfo 1366 * @throws MissingParameterException missing luiId, luiInfo 1367 * @throws OperationFailedException unable to complete request 1368 * @throws PermissionDeniedException authorization failure 1369 * @throws VersionMismatchException The action was attempted on an out of date version. 1370 */ 1371 public LuiInfo updateLui(@WebParam(name="luiId")String luiId, @WebParam(name="luiInfo")LuiInfo luiInfo) throws DataValidationErrorException, DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException, VersionMismatchException; 1372 1373 /** 1374 * Deletes a LUI record 1375 * @param luiId identifier for the LUI to be deleted 1376 * @return status of the operation 1377 * @throws DependentObjectsExistException delete would leave orphaned objects or violate integrity constraints 1378 * @throws DoesNotExistException lui not found 1379 * @throws InvalidParameterException invalid luiId 1380 * @throws MissingParameterException missing luiId 1381 * @throws OperationFailedException unable to complete request 1382 * @throws PermissionDeniedException authorization failure 1383 */ 1384 public StatusInfo deleteLui(@WebParam(name="luiId")String luiId) throws DependentObjectsExistException, DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; 1385 1386 /** 1387 * Updates the state of the LUI 1388 * @param luiId identifier for the LUI to be updated 1389 * @param luState New state for LUI. Value is expected to be constrained to those in the luState enumeration. 1390 * @return the updated LUI information 1391 * @throws DataValidationErrorException New state not valid for existing state of LUI 1392 * @throws DoesNotExistException lui, luState not found 1393 * @throws InvalidParameterException invalid luiId, luState 1394 * @throws MissingParameterException missing luiId, luState 1395 * @throws OperationFailedException unable to complete request 1396 * @throws PermissionDeniedException authorization failure 1397 */ 1398 public LuiInfo updateLuiState(@WebParam(name="luiId")String luiId, @WebParam(name="luState")String luState) throws DataValidationErrorException, DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; 1399 1400 /** 1401 * Validates a relationship between LUIs. Depending on the value of validationType, this validation could be limited to tests on just the current object and its directly contained sub-objects or expanded to perform all tests related to this object. If an identifier is present for the relationship (and/or one of its contained sub-objects) and a record is found for that identifier, the validation checks if the relationship can be shifted to the new values. If an identifier is not present or 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. 1402 * @param validationType identifier of the extent of validation 1403 * @param luiLuiRelationInfo LUI to LUI relationship information to be tested. 1404 * @return results from performing the validation 1405 * @throws DoesNotExistException validationTypeKey not found 1406 * @throws InvalidParameterException invalid validationTypeKey, luiLuiRelationInfo 1407 * @throws MissingParameterException missing validationTypeKey, luiLuiRelationInfo 1408 * @throws OperationFailedException unable to complete request 1409 */ 1410 public List<ValidationResultInfo> validateLuiLuiRelation(@WebParam(name="validationType")String validationType, @WebParam(name="luiLuiRelationInfo")LuiLuiRelationInfo luiLuiRelationInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException; 1411 1412 /** 1413 * Create a relationship between two LUIs 1414 * @param luiId identifier of the first LUI in the relationship 1415 * @param relatedLuiId identifier of the second LUI in the relationship to be related to 1416 * @param luLuRelationType the LU to LU relationship type of the relationship 1417 * @param luiLuiRelationInfo information about the relationship between the two LUIs 1418 * @return the created LUI to LUI relation information 1419 * @throws AlreadyExistsException relationship already exists 1420 * @throws CircularRelationshipException luiId equals relatedLuiId 1421 * @throws DataValidationErrorException One or more values invalid for this operation 1422 * @throws DoesNotExistException luiId, relatedLuiId, luLuRelationType not found 1423 * @throws InvalidParameterException invalid luiIds, luluRelationType, luiLuiRelationInfo 1424 * @throws MissingParameterException missing luiIds, luluRelationType, luiLuiRelationInfo 1425 * @throws OperationFailedException unable to complete request 1426 * @throws PermissionDeniedException authorization failure 1427 */ 1428 public LuiLuiRelationInfo createLuiLuiRelation(@WebParam(name="luiId")String luiId, @WebParam(name="relatedLuiId")String relatedLuiId, @WebParam(name="luLuRelationType")String luLuRelationType, @WebParam(name="luiLuiRelationInfo")LuiLuiRelationInfo luiLuiRelationInfo) throws AlreadyExistsException, CircularRelationshipException, DataValidationErrorException, DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; 1429 1430 /** 1431 * Updates a relationship between two LUIs 1432 * @param luiLuiRelationId identifier of the LUI to LUI relation to update 1433 * @param luiLuiRelationInfo changed information about the relationship between the two LUIs 1434 * @return the update LUI to LUI relation information 1435 * @throws DataValidationErrorException One or more values invalid for this operation 1436 * @throws DoesNotExistException luiLuiRelation not found 1437 * @throws InvalidParameterException invalid luiLuiRelationId, luiLuiRelationInfo 1438 * @throws MissingParameterException missing luiLuiRelationId, luiLuiRelationInfo 1439 * @throws OperationFailedException unable to complete request 1440 * @throws PermissionDeniedException authorization failure 1441 * @throws VersionMismatchException The action was attempted on an out of date version. 1442 */ 1443 public LuiLuiRelationInfo updateLuiLuiRelation(@WebParam(name="luiLuiRelationId")String luiLuiRelationId, @WebParam(name="luiLuiRelationInfo")LuiLuiRelationInfo luiLuiRelationInfo) throws DataValidationErrorException, DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException, VersionMismatchException; 1444 1445 /** 1446 * Deletes a relationship between two LUIs 1447 * @param luiLuiRelationId identifier of the LUI to LUI relation to delete 1448 * @return status of the operation (success or failure) 1449 * @throws DoesNotExistException luiLuiRelation not found 1450 * @throws InvalidParameterException invalid luiLuiRelationId 1451 * @throws MissingParameterException missing luiLuiRelationId 1452 * @throws OperationFailedException unable to complete request 1453 * @throws PermissionDeniedException authorization failure 1454 */ 1455 public StatusInfo deleteLuiLuiRelation(@WebParam(name="luiLuiRelationId")String luiLuiRelationId) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; 1456 1457 1458 1459 }