Coverage Report - org.kuali.student.enrollment.acal.service.AcademicCalendarService
 
Classes in this File Line Coverage Branch Coverage Complexity
AcademicCalendarService
N/A
N/A
1
 
 1  
 /**
 2  
  * Copyright 2010 The Kuali Foundation Licensed under the Educational Community
 3  
  * License, Version 2.0 (the "License"); you may not use this file except in
 4  
  * compliance with the License. You may obtain a copy of the License at
 5  
  * http://www.osedu.org/licenses/ECL-2.0 Unless required by applicable law or
 6  
  * agreed to in writing, software distributed under the License is distributed
 7  
  * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
 8  
  * express or implied. See the License for the specific language governing
 9  
  * permissions and limitations under the License.
 10  
  */
 11  
 
 12  
 package org.kuali.student.enrollment.acal.service;
 13  
 
 14  
 import java.util.ArrayList;
 15  
 import java.util.Date;
 16  
 import java.util.List;
 17  
 
 18  
 import javax.jws.WebParam;
 19  
 import javax.jws.WebService;
 20  
 import javax.jws.soap.SOAPBinding;
 21  
 
 22  
 import org.kuali.rice.core.api.criteria.QueryByCriteria;
 23  
 
 24  
 import org.kuali.student.enrollment.acal.constants.AcademicCalendarServiceConstants;
 25  
 import org.kuali.student.enrollment.acal.dto.AcademicCalendarInfo;
 26  
 import org.kuali.student.enrollment.acal.dto.HolidayCalendarInfo;
 27  
 import org.kuali.student.enrollment.acal.dto.AcalEventInfo;
 28  
 import org.kuali.student.enrollment.acal.dto.HolidayInfo;
 29  
 import org.kuali.student.enrollment.acal.dto.KeyDateInfo;
 30  
 import org.kuali.student.enrollment.acal.dto.TermInfo;
 31  
 
 32  
 
 33  
 import org.kuali.student.r2.common.dto.ContextInfo;
 34  
 import org.kuali.student.r2.common.dto.RichTextInfo;
 35  
 import org.kuali.student.r2.common.dto.StatusInfo;
 36  
 import org.kuali.student.r2.common.dto.ValidationResultInfo;
 37  
 
 38  
 import org.kuali.student.r2.common.exceptions.AlreadyExistsException;
 39  
 import org.kuali.student.r2.common.exceptions.DataValidationErrorException;
 40  
 import org.kuali.student.r2.common.exceptions.DoesNotExistException;
 41  
 import org.kuali.student.r2.common.exceptions.InvalidParameterException;
 42  
 import org.kuali.student.r2.common.exceptions.MissingParameterException;
 43  
 import org.kuali.student.r2.common.exceptions.OperationFailedException;
 44  
 import org.kuali.student.r2.common.exceptions.PermissionDeniedException;
 45  
 import org.kuali.student.r2.common.exceptions.ReadOnlyException;
 46  
 import org.kuali.student.r2.common.exceptions.VersionMismatchException;
 47  
 import org.kuali.student.r2.common.util.constants.AtpServiceConstants;
 48  
 import org.kuali.student.r2.core.state.dto.StateInfo;
 49  
 import org.kuali.student.r2.core.type.dto.TypeInfo;
 50  
 
 51  
 /**
 52  
  * This service manages Academic Calendars. There are three kinds of calendars
 53  
  * in this service.
 54  
  * <p/>
 55  
  * 1. HolidayCalendar:  a HolidayCalendar relates to a Campus and is intended to
 56  
  * define all the Holiday dates and other non-instructional days on a designated
 57  
  * campus.
 58  
  * <p/>
 59  
  * 2. AcademicCalendar: an AcademicCalendar is a calendar of Terms. The Academic
 60  
  * Calendar may have one or more HolidayCalendars. This distinction is to allow
 61  
  * multiple AcademicCalendars to exist on a Campus without having to manage
 62  
  * multiple sets of Holidays. An AcademicCalendar may be referenced from a
 63  
  * ProgramOffering.
 64  
  * <p/>
 65  
  * An AcademicCalendar may have its own milestones called AcalEvents.
 66  
  * <p/>
 67  
  * 3. Term:             A Term has KeyDates and may have Terms nested within.
 68  
  * <p/>
 69  
  * For example, an AcademicCalendar for the undergraduate program in a given
 70  
  * year may have a HolidayCalendar for the holidays of that year, Fall, Spring,
 71  
  * and Summer Terms, the Fall and Spring mini-mesters, all with their own
 72  
  * managed dates.
 73  
  * <p/>
 74  
  * Not all of the relations among the entities are maintained within the
 75  
  * entities. To maximize flexibility and to easily reference calendars and terms
 76  
  * externally, these mappings are often implied by the service operations.
 77  
  * <p/>
 78  
  * Each of the calendaring entities have their own milestone structures.
 79  
  * <p/>
 80  
  * 1. Holiday:   A milestone used with HolidayCalendars (e.g. Labor Day). 2.
 81  
  * AcalEvent: A milestone used with AcademicCalendars (e.g. Commencement). 3.
 82  
  * KeyDate:   A milestone used with Terms (e.g. Registration Period).
 83  
  * <p/>
 84  
  * Version: 1.0 (Dev)
 85  
  *
 86  
  * @author tom
 87  
  * @since Sun Apr 10 14:22:34 EDT 2011
 88  
  */
 89  
 
 90  
 @WebService(name = "AcademicCalendarService", serviceName = "AcademicCalendarService", portName = "AcademicCalendarService", targetNamespace = AcademicCalendarServiceConstants.NAMESPACE)
 91  
 @SOAPBinding(style = SOAPBinding.Style.DOCUMENT, use = SOAPBinding.Use.LITERAL, parameterStyle = SOAPBinding.ParameterStyle.WRAPPED)
 92  
 
 93  
 public interface AcademicCalendarService {
 94  
 
 95  
     /**
 96  
      * Retrieves an AcademicCalendar Type by Type key.
 97  
      *
 98  
      * @param academicCalendarTypeKey the key of an AcademicCalendar Type
 99  
      * @param contextInfo             information containing the principalId and
 100  
      *                                locale information about the caller of
 101  
      *                                service operation
 102  
      * @return the type requested
 103  
      * @throws DoesNotExistException     academicCalendarTypeKey is not found
 104  
      * @throws InvalidParameterException contextInfo is not valid
 105  
      * @throws MissingParameterException academicCalendarTypeKey or contextInfo
 106  
      *                                   is missing or null
 107  
      * @throws OperationFailedException  unable to complete request
 108  
      * @throws PermissionDeniedException an authorization failure occurred
 109  
      */
 110  
     public TypeInfo getAcademicCalendarType(@WebParam(name = "academicCalendarTypeKey") String academicCalendarTypeKey, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 111  
 
 112  
     /**
 113  
      * Gets the valid AcademicCalendar types.
 114  
      *
 115  
      * @param contextInfo information containing the principalId and locale
 116  
      *                    information about the caller of service operation
 117  
      * @return a list of valid AcademicCalendar Types
 118  
      * @throws InvalidParameterException contextInfo is not value
 119  
      * @throws MissingParameterException contextInfo is missing or null
 120  
      * @throws OperationFailedException  unable to complete request
 121  
      * @throws PermissionDeniedException an authorization failure occurred
 122  
      */
 123  
     public List<TypeInfo> getAcademicCalendarTypes(@WebParam(name = "contextInfo") ContextInfo contextInfo) throws InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 124  
 
 125  
     /**
 126  
      * Gets an AcademicCalendar State by key.
 127  
      *
 128  
      * @param academicCalendarStateKey a key for an AcademicCalendar State
 129  
      * @param contextInfo              information containing the principalId
 130  
      *                                 and locale information about the caller
 131  
      *                                 of service operation
 132  
      * @return the AcademicCalendar State requested
 133  
      * @throws DoesNotExistException     academicCalendarStateKey is not found
 134  
      * @throws InvalidParameterException contextInfo is invalid
 135  
      * @throws MissingParameterException academicCalendarStateKey or contextInfo
 136  
      *                                   is missing or null
 137  
      * @throws OperationFailedException  unable to complete request
 138  
      * @throws PermissionDeniedException an authorization failure occurred
 139  
      */
 140  
     public StateInfo getAcademicCalendarState(@WebParam(name = "academicCalendarStateKey") String academicCalendarStateKey, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 141  
 
 142  
     /**
 143  
      * Gets the valid AcademicCalendar States.
 144  
      *
 145  
      * @param contextInfo information containing the principalId and locale
 146  
      *                    information about the caller of service operation
 147  
      * @return a list of valid AcademicCalendar States
 148  
      * @throws InvalidParameterException contextInfo is not valid
 149  
      * @throws MissingParameterException contextInfo is missing or null
 150  
      * @throws OperationFailedException  unable to complete request
 151  
      * @throws PermissionDeniedException an authorization failure occurred
 152  
      */
 153  
     public List<StateInfo> getAcademicCalendarStates(@WebParam(name = "contextInfo") ContextInfo contextInfo) throws InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 154  
 
 155  
     /**
 156  
      * Retrieves a single AcademicCalendar by an AcademicCalendar Id.
 157  
      *
 158  
      * @param academicCalendarId the identifier for the AcademicCalendar to be
 159  
      *                           retrieved
 160  
      * @param contextInfo        information containing the principalId and
 161  
      *                           locale information about the caller of service
 162  
      *                           operation
 163  
      * @return the AcademicCalendar requested
 164  
      * @throws DoesNotExistException     academicCalendarIs is not found
 165  
      * @throws InvalidParameterException contextInfo isnot valid
 166  
      * @throws MissingParameterException academicCalendarId or contextInfo is
 167  
      *                                   missing or null
 168  
      * @throws OperationFailedException  unable to complete request
 169  
      * @throws PermissionDeniedException an authorization failure occurred
 170  
      */
 171  
     public AcademicCalendarInfo getAcademicCalendar(@WebParam(name = "academicCalendarId") String academicCalendarId, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 172  
 
 173  
     /**
 174  
      * Retrieves a list AcademicCalendars from a list of AcademicCalendar Ids.
 175  
      * The returned list may be in any order and if duplicate Ids are supplied,
 176  
      * a unique set may or may not be returned.
 177  
      *
 178  
      * @param academicCalendarIds list of AcademicCalendar Ids
 179  
      * @param contextInfo         information containing the principalId and
 180  
      *                            locale information about the caller of service
 181  
      *                            operation
 182  
      * @return a list of AcademicCalendars
 183  
      * @throws DoesNotExistException     an academicCalendarId in list was not
 184  
      *                                   found
 185  
      * @throws InvalidParameterException contextInfo is not valid
 186  
      * @throws MissingParameterException academicCalendarIds, an Id in
 187  
      *                                   academicCalendarIds, or contextInfo is
 188  
      *                                   missing or null
 189  
      * @throws OperationFailedException  unable to complete request
 190  
      * @throws PermissionDeniedException an authorization failure occurred
 191  
      */
 192  
     public List<AcademicCalendarInfo> getAcademicCalendarsByIds(@WebParam(name = "academicCalendarIds") List<String> academicCalendarIds, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 193  
 
 194  
     /**
 195  
      * Retrieves a list of AcademicCalendar Ids by Type.
 196  
      *
 197  
      * @param academicCalendarTypeKey an identifier for an AcademicCalendar
 198  
      *                                Type
 199  
      * @param contextInfo             information containing the principalId and
 200  
      *                                locale information about the caller of
 201  
      *                                service operation
 202  
      * @return a list of AcademicCalendars matching academicCalendarTypeKey or
 203  
      *         an empty list if none found
 204  
      * @throws InvalidParameterException contextInfo is not valid
 205  
      * @throws MissingParameterException academicCalendarTypeKey or contextInfo
 206  
      *                                   is missing or null
 207  
      * @throws OperationFailedException  unable to complete request
 208  
      * @throws PermissionDeniedException an authorization failure occurred
 209  
      */
 210  
     public List<String> getAcademicCalendarIdsByType(@WebParam(name = "academicCalendarTypeKey") String academicCalendarTypeKey, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 211  
 
 212  
     /**
 213  
      * Retrieves a list of AcademicCalendars that start in the given year.
 214  
      *
 215  
      * @param year        calendar year during which the academic calendar
 216  
      *                    starts
 217  
      * @param contextInfo information containing the principalId and locale
 218  
      *                    information about the caller of service operation
 219  
      * @return a list of AcademicCalendars starting in the given year
 220  
      * @throws InvalidParameterException contextInfo i snot valid
 221  
      * @throws MissingParameterException year or context is missing or null
 222  
      * @throws OperationFailedException  unable to complete request
 223  
      * @throws PermissionDeniedException an authorization failure occurred
 224  
      */
 225  
     public List<AcademicCalendarInfo> getAcademicCalendarsByStartYear(@WebParam(name = "year") Integer year, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 226  
 
 227  
 
 228  
     /**
 229  
      * Gets the list of academic calendars that use this term.
 230  
      *
 231  
      * @param termId  term identifier
 232  
      * @param contextInfo information containing the principalId and locale
 233  
      *                    information about the caller of service operation
 234  
      * @return a list of AcademicCalendars using this term
 235  
      * @throws DoesNotExistException termId is not found
 236  
      * @throws InvalidParameterException contextInfo is not valid
 237  
      * @throws MissingParameterException termId or contextInfo is missing or null
 238  
      * @throws OperationFailedException unable to complete request
 239  
      * @throws PermissionDeniedException an authorization failure occurred
 240  
      */
 241  
     public List<AcademicCalendarInfo> getAcademicCalendarsForTerm(@WebParam(name = "termId") String termId, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 242  
 
 243  
     /**
 244  
      * Searches for AcademicCalendars that meet the given search criteria.
 245  
      *
 246  
      * @param criteria    the search criteria
 247  
      * @param contextInfo information containing the principalId and locale
 248  
      *                    information about the caller of service operation
 249  
      * @return a list of AcademicCalendar identifiers matching the criteria
 250  
      * @throws InvalidParameterException criteria or contextInfo is not valid
 251  
      * @throws MissingParameterException criteria or contextInfo is missing or
 252  
      *                                   null
 253  
      * @throws OperationFailedException  unable to complete request
 254  
      * @throws PermissionDeniedException an authorization failure occurred
 255  
      */
 256  
     public List<String> searchForAcademicCalendarIds(@WebParam(name = "criteria") QueryByCriteria criteria, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 257  
 
 258  
     /**
 259  
      * Searches for AcademicCalendars that meet the given search criteria.
 260  
      *
 261  
      * @param criteria    the search criteria
 262  
      * @param contextInfo information containing the principalId and locale
 263  
      *                    information about the caller of service operation
 264  
      * @return a list of AcademicCalendars matching the criteria
 265  
      * @throws InvalidParameterException criteria or contextInfo is not valid
 266  
      * @throws MissingParameterException criteria or contextInfo is missing or
 267  
      *                                   null
 268  
      * @throws OperationFailedException  unable to complete request
 269  
      * @throws PermissionDeniedException an authorization failure occurred
 270  
      */
 271  
     public List<AcademicCalendarInfo> searchForAcademicCalendars(@WebParam(name = "criteria") QueryByCriteria criteria, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 272  
 
 273  
     /**
 274  
      * Validates an AcademicCalendar. Depending on the value of validationType,
 275  
      * this validation could be limited to tests on just the current
 276  
      * AcademicCalendar and its directly contained subobjects or expanded to
 277  
      * perform all tests related to this AcademicCalendar. If an identifier is
 278  
      * present for the AcademicCalendar (and/or one of its contained
 279  
      * sub-objects) and a record is found for that identifier, the validation
 280  
      * checks if the AcademicCalendar can be updated to the new values. If an
 281  
      * identifier is not present or a record does not exist, the validation
 282  
      * checks if the AcademicCalendar with the given data can be created.
 283  
      *
 284  
      * @param validationTypeKey       the identifier for the validation Type
 285  
      * @param academicCalendarTypeKey the identifier for the AcademicCalendar
 286  
      *                                Type to be validated
 287  
      * @param academicCalendarInfo    the AcademicCalendar to be validated
 288  
      * @param contextInfo             information containing the principalId and
 289  
      *                                locale information about the caller of
 290  
      *                                service operation
 291  
      * @return a list of validation results or an empty list if validation
 292  
      *         succeeded
 293  
      * @throws DoesNotExistException     validationTypeKey or academicCalendarTypeKey
 294  
      *                                   is not found
 295  
      * @throws InvalidParameterException academicCalendarInfo or contextInfo is
 296  
      *                                   not valid
 297  
      * @throws MissingParameterException validationTypeKey, academicCalendarTypeKey,
 298  
      *                                   academicCalendarInfo, or contextInfo is
 299  
      *                                   missing or null
 300  
      * @throws OperationFailedException  unable to complete request
 301  
      * @throws PermissionDeniedException an authorization failure occurred
 302  
      */
 303  
     public List<ValidationResultInfo> validateAcademicCalendar(@WebParam(name = "validationTypeKey") String validationTypeKey, @WebParam(name = "academicCalendarTypeKey") String academicCalendarTypeKey, @WebParam(name = "academicCalendarInfo") AcademicCalendarInfo academicCalendarInfo, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 304  
 
 305  
     /**
 306  
      * Creates a new AcademicCalendar. The AcademicCalendar Id, Type, and Meta
 307  
      * information may not be set in the supplied data object.
 308  
      *
 309  
      * @param academicCalendarTypeKey the identifier for the Type of
 310  
      *                                AcademicCalendar to be created
 311  
      * @param academicCalendarInfo    the data with which to create the
 312  
      *                                AcademicCalendar
 313  
      * @param contextInfo             information containing the principalId and
 314  
      *                                locale information about the caller of
 315  
      *                                service operation
 316  
      * @return the new AcademicCalendar
 317  
      * @throws DataValidationErrorException supplied data is invalid
 318  
      * @throws DoesNotExistException        academicCalendarTypeKey does not
 319  
      *                                      exist or is not supported
 320  
      * @throws InvalidParameterException    academicCalendarInfo or contextInfo
 321  
      *                                      is not valid
 322  
      * @throws MissingParameterException    academicCalendarTypeKey, academicCalendarInfo,
 323  
      *                                      or contextInfo is missing or null
 324  
      * @throws OperationFailedException     unable to complete request
 325  
      * @throws PermissionDeniedException    an authorization failure occurred
 326  
      * @throws ReadOnlyException            an attempt at supplying information
 327  
      *                                      designated as read only
 328  
      */
 329  
     public AcademicCalendarInfo createAcademicCalendar(@WebParam(name = "academicCalendarTypeKey") String academicCalendarTypeKey, @WebParam(name = "academicCalendarInfo") AcademicCalendarInfo academicCalendarInfo, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DataValidationErrorException, DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException, ReadOnlyException;
 330  
 
 331  
 
 332  
     /**
 333  
      * Updates an existing AcademicCalendar. The AcademicCalendar Id, Type, and
 334  
      * Meta information may not be changed.
 335  
      *
 336  
      * @param academicCalendarId   the identifier for the AcademicCalendar to be
 337  
      *                             updated
 338  
      * @param academicCalendarInfo the new data for the AcademicCalendar
 339  
      * @param contextInfo          information containing the principalId and
 340  
      *                             locale information about the caller of
 341  
      *                             service operation
 342  
      * @return the updated AcademicCalendar
 343  
      * @throws DataValidationErrorException supplied data is invalid
 344  
      * @throws DoesNotExistException AcademicCalendarId is not found
 345  
      * @throws InvalidParameterException academicCalendarInfo or
 346  
      *         contextInfo is not valid
 347  
      * @throws MissingParameterException academicCalendarId,
 348  
      *         academicCalendarInfo, or contextInfo is missing or null
 349  
      * @throws OperationFailedException unable to complete request
 350  
      * @throws PermissionDeniedException an authorization failure
 351  
      *         occurred
 352  
      * @throws ReadOnlyException an attempt at changing information
 353  
      *         deisgnated as read only
 354  
      * @throws VersionMismatchException an optimistic locking failure
 355  
      *         or the action was attempted on an out of date version
 356  
      */
 357  
     public AcademicCalendarInfo updateAcademicCalendar(@WebParam(name = "academicCalendarId") String academicCalendarId, @WebParam(name = "academicCalendarInfo") AcademicCalendarInfo academicCalendarInfo, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DataValidationErrorException, DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException, ReadOnlyException, VersionMismatchException;
 358  
 
 359  
     /**
 360  
      * Deletes an existing AcademicCalendar.
 361  
      *
 362  
      * @param academicCalendarId the identifier for the AcademicCalendar to be
 363  
      *                           deleted
 364  
      * @param contextInfo        information containing the principalId and
 365  
      *                           locale information about the caller of service
 366  
      *                           operation
 367  
      * @return the status of the operation. This must always be true.
 368  
      * @throws DoesNotExistException     AcademicCalendarId is not found
 369  
      * @throws InvalidParameterException contextInfo is not valid
 370  
      * @throws MissingParameterException academicCalendarId or contextInfo is
 371  
      *                                   missing or null
 372  
      * @throws OperationFailedException  unable to complete request
 373  
      * @throws PermissionDeniedException an authorization failure occurred
 374  
      */
 375  
     public StatusInfo deleteAcademicCalendar(@WebParam(name = "academicCalendarId") String academicCalendarId, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 376  
 
 377  
     /**
 378  
      * Copy an AcademicCalendar. The associated Terms and key dates are also
 379  
      * copied and related to this new calendar. This copy operation allows for a
 380  
      * AcademicCalendar to be created from an existing AcademicCalendar in which
 381  
      * the dates of the Terms and Key Dates will be updated.
 382  
      * <p/>
 383  
      * This method may perform date transformations on the Terms and key dates
 384  
      * to make them applicable under the new academic calendar.
 385  
      *
 386  
      * @param academicCalendarId the identifier for the Academic Calendar to be
 387  
      *                           copied
 388  
      * @param startDate          the start of the new calendar
 389  
      * @param endDate            the end of the new calendar
 390  
      * @param contextInfo        information containing the principalId and
 391  
      *                           locale information about the caller of service
 392  
      *                           operation
 393  
      * @return new AcademicCalendarInfo created from the copy
 394  
      * @throws DoesNotExistException     academicCalendarId is not found
 395  
      * @throws InvalidParameterException contextInfo is not valid
 396  
      * @throws MissingParameterException academicCalendarId, startYear, endYear,
 397  
      *                                   or contextInfo is missing or null
 398  
      * @throws OperationFailedException  unable to complete request
 399  
      * @throws PermissionDeniedException an authorization failure occurred
 400  
      */
 401  
     public AcademicCalendarInfo copyAcademicCalendar(@WebParam(name = "academicCalendarId") String academicCalendarId, @WebParam(name = "startDate") Date startDate, @WebParam(name = "endDate") Date endDate, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 402  
 
 403  
     /**
 404  
      * Generates calendaring data for the Terms and key dates in an Academic
 405  
      * Calendar. The format of the data is specified by the
 406  
      * calendarDataFormatType. An example of such a type is VCALENDAR.
 407  
      * <p/>
 408  
      * NOTE: this might be better placed in the Calendar (interface) Service.
 409  
      *
 410  
      * @param academicCalendarId        the key of the AcademicCalendar to be
 411  
      *                                  retrieved
 412  
      * @param calendarDataFormatTypeKey the type of format
 413  
      * @param context                   information containing the principalId
 414  
      *                                  and locale information about the caller
 415  
      *                                  of service operation
 416  
      * @return calendar data
 417  
      * @throws DoesNotExistException     the AcademicCalendar or format type
 418  
      *                                   does not exist
 419  
      * @throws InvalidParameterException One or more parameters invalid
 420  
      * @throws MissingParameterException One or more parameters missing
 421  
      * @throws OperationFailedException  unable to complete request
 422  
      * @throws PermissionDeniedException authorization failure
 423  
      */
 424  
     public String getAcademicCalendarData(@WebParam(name = "academicCalendarId") String academicCalendarId, @WebParam(name = "calendarDataFormatTypeKey") String calendarDataFormatTypeKey, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 425  
 
 426  
     /**
 427  
      * Rerieves a HolidayCalendar Type by Type key.
 428  
      *
 429  
      * @param holidayCalendarTypeKey the key of a HolidayCalendar Type
 430  
      * @param contextInfo            information containing the principalId and
 431  
      *                               locale information about the caller of
 432  
      *                               service operation
 433  
      * @return the type requested
 434  
      * @throws DoesNotExistException     holidayCalendarTypeKey is not found
 435  
      * @throws InvalidParameterException contextInfo is not valid
 436  
      * @throws MissingParameterException holidayCalendarTypeKey or contextInfo
 437  
      *                                   is missing or null
 438  
      * @throws OperationFailedException  unable to complete request
 439  
      * @throws PermissionDeniedException an authorization failure occurred
 440  
      */
 441  
     public TypeInfo getHolidayCalendarType(@WebParam(name = "holidayCalendarTypeKey") String holidayCalendarTypeKey, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 442  
 
 443  
     /**
 444  
      * Gets the valid HolidayCalendar types.
 445  
      *
 446  
      * @param contextInfo information containing the principalId and locale
 447  
      *                    information about the caller of service operation
 448  
      * @return a list of valid HolidayCalendar Types
 449  
      * @throws InvalidParameterException contextInfo is not value
 450  
      * @throws MissingParameterException contextInfo is missing or null
 451  
      * @throws OperationFailedException  unable to complete request
 452  
      * @throws PermissionDeniedException an authorization failure occurred
 453  
      */
 454  
     public List<TypeInfo> getHolidayCalendarTypes(@WebParam(name = "contextInfo") ContextInfo contextInfo) throws InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 455  
 
 456  
     /**
 457  
      * Gets a HolidayCalendar State by key.
 458  
      *
 459  
      * @param holidayCalendarStateKey a key for a HolidayCalendar State
 460  
      * @param contextInfo             information containing the principalId and
 461  
      *                                locale information about the caller of
 462  
      *                                service operation
 463  
      * @return the HolidayCalendar State requested
 464  
      * @throws DoesNotExistException     holidayCalendarStateKey is not found
 465  
      * @throws InvalidParameterException contextInfo is invalid
 466  
      * @throws MissingParameterException holidayCalendarStateKey or contextInfo
 467  
      *                                   is missing or null
 468  
      * @throws OperationFailedException  unable to complete request
 469  
      * @throws PermissionDeniedException an authorization failure occurred
 470  
      */
 471  
     public StateInfo getHolidayCalendarState(@WebParam(name = "holidayCalendarStateKey") String holidayCalendarStateKey, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 472  
 
 473  
     /**
 474  
      * Gets the valid HolidayCalendar States.
 475  
      *
 476  
      * @param contextInfo information containing the principalId and locale
 477  
      *                    information about the caller of service operation
 478  
      * @return a list of valid HolidayCalendar States
 479  
      * @throws InvalidParameterException contextInfo is not valid
 480  
      * @throws MissingParameterException contextInfo is missing or null
 481  
      * @throws OperationFailedException  unable to complete request
 482  
      * @throws PermissionDeniedException an authorization failure occurred
 483  
      */
 484  
     public List<StateInfo> getHolidayCalendarStates(@WebParam(name = "contextInfo") ContextInfo contextInfo) throws InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 485  
 
 486  
     /**
 487  
      * Retrieves a single HolidayCalendar by a HolidayCalendar Id.
 488  
      *
 489  
      * @param holidayCalendarId the identifier for the HolidayCalendar to be
 490  
      *                          retrieved
 491  
      * @param contextInfo       information containing the principalId and
 492  
      *                          locale information about the caller of service
 493  
      *                          operation
 494  
      * @return the HolidayCalendar requested
 495  
      * @throws DoesNotExistException     holidayCalendarIs is not found
 496  
      * @throws InvalidParameterException contextInfo is not valid
 497  
      * @throws MissingParameterException holidayCalendarId or contextInfo is
 498  
      *                                   missing or null
 499  
      * @throws OperationFailedException  unable to complete request
 500  
      * @throws PermissionDeniedException an authorization failure occurred
 501  
      */
 502  
     public HolidayCalendarInfo getHolidayCalendar(@WebParam(name = "holidayCalendarId") String holidayCalendarId, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 503  
 
 504  
     /**
 505  
      * Retrieves a list HolidayCalendars from a list of HolidayCalendar Ids. The
 506  
      * returned list may be in any order and if duplicate Ids are supplied, a
 507  
      * unique set may or may not be returned.
 508  
      *
 509  
      * @param holidayCalendarIds list of HolidayCalendar Ids
 510  
      * @param contextInfo        information containing the principalId and
 511  
      *                           locale information about the caller of service
 512  
      *                           operation
 513  
      * @return a list of HolidayCalendars
 514  
      * @throws DoesNotExistException     a holidayCalendarId in list was not
 515  
      *                                   found
 516  
      * @throws InvalidParameterException contextInfo is not valid
 517  
      * @throws MissingParameterException holidayCalendarIds, an Id in
 518  
      *                                   holidayCalendarIds, or contextInfo is
 519  
      *                                   missing or null
 520  
      * @throws OperationFailedException  unable to complete request
 521  
      * @throws PermissionDeniedException an authorization failure occurred
 522  
      */
 523  
     public List<HolidayCalendarInfo> getHolidayCalendarsByIds(@WebParam(name = "holidayCalendarIds") List<String> holidayCalendarIds, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 524  
 
 525  
     /**
 526  
      * Retrieves a list of HolidayCalendar Ids by Type.
 527  
      *
 528  
      * @param holidayCalendarTypeKey an identifier for an HolidayCalendar Type
 529  
      * @param contextInfo            information containing the principalId and
 530  
      *                               locale information about the caller of
 531  
      *                               service operation
 532  
      * @return a list of HolidayCalendars matching holidayCalendarTypeKey or an
 533  
      *         empty list if none found
 534  
      * @throws InvalidParameterException contextInfo is not valid
 535  
      * @throws MissingParameterException holidayCalendarTypeKey or contextInfo
 536  
      *                                   is missing or null
 537  
      * @throws OperationFailedException  unable to complete request
 538  
      * @throws PermissionDeniedException an authorization failure occurred
 539  
      */
 540  
     public List<String> getHolidayCalendarIdsByType(@WebParam(name = "holidayCalendarTypeKey") String holidayCalendarTypeKey, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 541  
 
 542  
     /**
 543  
      * Retrieves a list of HolidayCalendars that start in the given year.
 544  
      *
 545  
      * @param year        calendar year during which the holiday calendar
 546  
      *                    starts
 547  
      * @param contextInfo information containing the principalId and locale
 548  
      *                    information about the caller of service operation
 549  
      * @return a list of HolidayCalendars starting in the given year
 550  
      * @throws InvalidParameterException contextInfo i snot valid
 551  
      * @throws MissingParameterException year or context is missing or null
 552  
      * @throws OperationFailedException  unable to complete request
 553  
      * @throws PermissionDeniedException an authorization failure occurred
 554  
      */
 555  
     public List<HolidayCalendarInfo> getHolidayCalendarsByStartYear(@WebParam(name = "year") Integer year, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 556  
 
 557  
     /**
 558  
      * Searches for HolidayCalendars that meet the given search criteria.
 559  
      *
 560  
      * @param criteria    the search criteria
 561  
      * @param contextInfo information containing the principalId and locale
 562  
      *                    information about the caller of service operation
 563  
      * @return a list of HolidayCalendar identifiers matching the criteria
 564  
      * @throws InvalidParameterException criteria or contextInfo is not valid
 565  
      * @throws MissingParameterException criteria or contextInfo is missing or
 566  
      *                                   null
 567  
      * @throws OperationFailedException  unable to complete request
 568  
      * @throws PermissionDeniedException an authorization failure occurred
 569  
      */
 570  
     public List<String> searchForHolidayCalendarIds(@WebParam(name = "criteria") QueryByCriteria criteria, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 571  
 
 572  
     /**
 573  
      * Searches for HolidayCalendars that meet the given search criteria.
 574  
      *
 575  
      * @param criteria    the search criteria
 576  
      * @param contextInfo information containing the principalId and locale
 577  
      *                    information about the caller of service operation
 578  
      * @return a list of HolidayCalendars matching the criteria
 579  
      * @throws InvalidParameterException criteria or contextInfo is not valid
 580  
      * @throws MissingParameterException criteria or contextInfo is missing or
 581  
      *                                   null
 582  
      * @throws OperationFailedException  unable to complete request
 583  
      * @throws PermissionDeniedException an authorization failure occurred
 584  
      */
 585  
     public List<HolidayCalendarInfo> searchForHolidayCalendars(@WebParam(name = "criteria") QueryByCriteria criteria, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 586  
 
 587  
     /**
 588  
      * Validates a HolidayCalendar. Depending on the value of validationType,
 589  
      * this validation could be limited to tests on just the current
 590  
      * HolidayCalendar and its directly contained subobjects or expanded to
 591  
      * perform all tests related to this HolidayCalendar. If an identifier is
 592  
      * present for the HolidayCalendar (and/or one of its contained sub-objects)
 593  
      * and a record is found for that identifier, the validation checks if the
 594  
      * HolidayCalendar can be updated to the new values. If an identifier is not
 595  
      * present or a record does not exist, the validation checks if the
 596  
      * HolidayCalendar with the given data can be created.
 597  
      *
 598  
      * @param validationTypeKey      the identifier for the validation Type
 599  
      * @param holidayCalendarTypeKey the identifier for the HolidayCalendar Type
 600  
      *                               to be validated
 601  
      * @param holidayCalendarInfo    the HolidayCalendar to be validated
 602  
      * @param contextInfo            information containing the principalId and
 603  
      *                               locale information about the caller of
 604  
      *                               service operation
 605  
      * @return a list of validation results or an empty list if validation
 606  
      *         succeeded
 607  
      * @throws DoesNotExistException     validationTypeKey or holidayCalendarTypeKey
 608  
      *                                   is not found
 609  
      * @throws InvalidParameterException holidayCalendarInfo or contextInfo is
 610  
      *                                   not valid
 611  
      * @throws MissingParameterException validationTypeKey, holidayCalendarTypeKey,
 612  
      *                                   holidayCalendarInfo, or contextInfo is
 613  
      *                                   missing or null
 614  
      * @throws OperationFailedException  unable to complete request
 615  
      * @throws PermissionDeniedException an authorization failure occurred
 616  
      */
 617  
     public List<ValidationResultInfo> validateHolidayCalendar(@WebParam(name = "validationTypeKey") String validationTypeKey, @WebParam(name = "holidayCalendarTypeKey") String holidayCalendarTypeKey, @WebParam(name = "holidayCalendarInfo") HolidayCalendarInfo holidayCalendarInfo, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 618  
 
 619  
     /**
 620  
      * Creates a new HolidayCalendar. The HolidayCalendar Id, Type, and Meta
 621  
      * information may not be set in the supplied data object.
 622  
      *
 623  
      * @param holidayCalendarTypeKey the identifier for the Type of
 624  
      *                               HolidayCalendar to be created
 625  
      * @param holidayCalendarInfo    the data with which to create the
 626  
      *                               HolidayCalendar
 627  
      * @param contextInfo            information containing the principalId and
 628  
      *                               locale information about the caller of
 629  
      *                               service operation
 630  
      * @return the new HolidayCalendar
 631  
      * @throws DataValidationErrorException supplied data is invalid
 632  
      * @throws DoesNotExistException        holidayCalendarTypeKey does not
 633  
      *                                      exist or is not supported
 634  
      * @throws InvalidParameterException    holidayCalendarInfo or contextInfo
 635  
      *                                      is not valid
 636  
      * @throws MissingParameterException    holidayCalendarTypeKey, holidayCalendarInfo,
 637  
      *                                      or contextInfo is missing or null
 638  
      * @throws OperationFailedException     unable to complete request
 639  
      * @throws PermissionDeniedException    an authorization failure occurred
 640  
      * @throws ReadOnlyException            an attempt at supplying information
 641  
      *                                      designated as read only
 642  
      */
 643  
     public HolidayCalendarInfo createHolidayCalendar(@WebParam(name = "holidayCalendarTypeKey") String holidayCalendarTypeKey, @WebParam(name = "holidayCalendarInfo") HolidayCalendarInfo holidayCalendarInfo, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DataValidationErrorException, DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException, ReadOnlyException;
 644  
 
 645  
 
 646  
 
 647  
     /**
 648  
      * Copy an HolidayCalendar.  This copy
 649  
      * operation allows for a HolidayCalendar to be created from an
 650  
      * existing HolidayCalendar .
 651  
      *
 652  
      *
 653  
      * @param holidayCalendarId the identifier for the Holiday
 654  
      *        Calendar to be copied
 655  
      * @param startDate the start of the new calendar
 656  
      * @param endDate the end of the new calendar
 657  
      * @param contextInfo information containing the principalId and
 658  
      *        locale information about the caller of service operation
 659  
      * @return new HolidayCalendarInfo created from the copy
 660  
      * @throws DoesNotExistException academicCalendarId is not found
 661  
      * @throws InvalidParameterException contextInfo is not valid
 662  
      * @throws MissingParameterException academicCalendarId, startYear,
 663  
      *         endYear, or contextInfo is missing or null
 664  
      * @throws OperationFailedException unable to complete request
 665  
      * @throws PermissionDeniedException an authorization failure occurred
 666  
      */
 667  
     public HolidayCalendarInfo copyHolidayCalendar(@WebParam(name = "holidayCalendarId") String holidayCalendarId, @WebParam(name = "startDate") Date startDate, @WebParam(name = "endDate") Date endDate,  @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException ;
 668  
 
 669  
 
 670  
     /**
 671  
      * Updates an existing Holiday Calendar. The HolidayCalendar Id,
 672  
      * Type, and Meta information may not be changed.
 673  
      * 
 674  
      * @param holidayCalendarId the identifier for the
 675  
      *        HolidayCalendar to be updated
 676  
      * @param holidayCalendarInfo the new data for the HolidayCalendar
 677  
      * @param contextInfo         information containing the principalId and
 678  
      *                            locale information about the caller of service
 679  
      *                            operation
 680  
      * @return the updated HolidayCalendar
 681  
      * @throws DataValidationErrorException supplied data is invalid
 682  
      * @throws DoesNotExistException        HolidayCalendarId is not found
 683  
      * @throws InvalidParameterException    holidayCalendarInfo or contextInfo
 684  
      *                                      is not valid
 685  
      * @throws MissingParameterException    holidayCalendarId, holidayCalendarInfo,
 686  
      *                                      or contextInfo is missing or null
 687  
      * @throws OperationFailedException     unable to complete request
 688  
      * @throws PermissionDeniedException    an authorization failure occurred
 689  
      * @throws ReadOnlyException           an attempt at changing information
 690  
      *                                      designated as read only
 691  
      * @throws VersionMismatchException     an optimistic locking failure or the
 692  
      *                                      action was attempted on an out of
 693  
      *                                      date version
 694  
      */
 695  
     public HolidayCalendarInfo updateHolidayCalendar(@WebParam(name = "holidayCalendarId") String holidayCalendarId, @WebParam(name = "holidayCalendarInfo") HolidayCalendarInfo holidayCalendarInfo, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DataValidationErrorException, DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException, ReadOnlyException, VersionMismatchException;
 696  
 
 697  
     /**
 698  
      * Deletes an existing HolidayCalendar.
 699  
      *
 700  
      * @param holidayCalendarId the identifier for the HolidayCalendar to be
 701  
      *                          deleted
 702  
      * @param contextInfo       information containing the principalId and
 703  
      *                          locale information about the caller of service
 704  
      *                          operation
 705  
      * @return the status of the operation. This must always be true.
 706  
      * @throws DoesNotExistException     HolidayCalendarId is not found
 707  
      * @throws InvalidParameterException contextInfo is not valid
 708  
      * @throws MissingParameterException holidayCalendarId or contextInfo is
 709  
      *                                   missing or null
 710  
      * @throws OperationFailedException  unable to complete request
 711  
      * @throws PermissionDeniedException an authorization failure occurred
 712  
      */
 713  
     public StatusInfo deleteHolidayCalendar(@WebParam(name = "holidayCalendarId") String holidayCalendarId, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 714  
 
 715  
     /**
 716  
      * Retrieves a Term Type by Type key.
 717  
      *
 718  
      * @param termTypeKey the key of a Term Type
 719  
      * @param contextInfo information containing the principalId and locale
 720  
      *                    information about the caller of service operation
 721  
      * @return the type requested
 722  
      * @throws DoesNotExistException     termTypeKey is not found
 723  
      * @throws InvalidParameterException contextInfo is not valid
 724  
      * @throws MissingParameterException termTypeKey or contextInfo is missing
 725  
      *                                   or null
 726  
      * @throws OperationFailedException  unable to complete request
 727  
      * @throws PermissionDeniedException an authorization failure occurred
 728  
      */
 729  
     public TypeInfo getTermType(@WebParam(name = "termTypeKey") String termTypeKey, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 730  
 
 731  
     /**
 732  
      * Gets the valid Term types.
 733  
      *
 734  
      * @param contextInfo information containing the principalId and locale
 735  
      *                    information about the caller of service operation
 736  
      * @return a list of valid Term Types
 737  
      * @throws InvalidParameterException contextInfo is not value
 738  
      * @throws MissingParameterException contextInfo is missing or null
 739  
      * @throws OperationFailedException  unable to complete request
 740  
      * @throws PermissionDeniedException an authorization failure occurred
 741  
      */
 742  
     public List<TypeInfo> getTermTypes(@WebParam(name = "contextInfo") ContextInfo contextInfo) throws InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 743  
 
 744  
     /**
 745  
      * This method returns the valid Term types for an AcademicCalendar Type.
 746  
      * Only Terms of allowed Types can be mapped to an AcademicCalendar.
 747  
      *
 748  
      * @param academicCalendarTypeKey an identifier for an AcademicCalendar
 749  
      *                                Type
 750  
      * @param contextInfo             information containing the principalId and
 751  
      *                                locale information about the caller of
 752  
      *                                service operation
 753  
      * @return a list of valid Term Types for the AcademicCalendar Type
 754  
      * @throws DoesNotExistException     academicCalendarTypeKey is not found
 755  
      * @throws InvalidParameterException contextInfo is not valid
 756  
      * @throws MissingParameterException academicCalendarTypeKey or contextInfo
 757  
      *                                   is missing or null
 758  
      * @throws OperationFailedException  unable to complete request
 759  
      * @throws PermissionDeniedException an authorization failure occurred
 760  
      */
 761  
     public List<TypeInfo> getTermTypesForAcademicCalendarType(@WebParam(name = "academicCalendarTypeKey") String academicCalendarTypeKey, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 762  
 
 763  
     /**
 764  
      * This method returns the valid Term types for a Term Type. Only Terms of
 765  
      * allowed Types can be included inside another Term.
 766  
      *
 767  
      * @param termTypeKey a identifier for a Term Type
 768  
      * @param contextInfo information containing the principalId and locale
 769  
      *                    information about the caller of service operation
 770  
      * @return a list of valid Term Types
 771  
      * @throws DoesNotExistException     termTypeKey is not found
 772  
      * @throws InvalidParameterException contextInfo is not valid
 773  
      * @throws MissingParameterException termTypeKey or contextInfo is missing
 774  
      *                                   or null
 775  
      * @throws OperationFailedException  unable to complete request
 776  
      * @throws PermissionDeniedException an authorization failure occurred
 777  
      */
 778  
     public List<TypeInfo> getTermTypesForTermType(@WebParam(name = "termTypeKey") String termTypeKey, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 779  
 
 780  
     /**
 781  
      * Gets a Term State by key.
 782  
      *
 783  
      * @param termStateKey a key for a Term State
 784  
      * @param contextInfo  information containing the principalId and locale
 785  
      *                     information about the caller of service operation
 786  
      * @return the Term State requested
 787  
      * @throws DoesNotExistException     termStateKey is not found
 788  
      * @throws InvalidParameterException contextInfo is invalid
 789  
      * @throws MissingParameterException termStateKey or contextInfo is missing
 790  
      *                                   or null
 791  
      * @throws OperationFailedException  unable to complete request
 792  
      * @throws PermissionDeniedException an authorization failure occurred
 793  
      */
 794  
     public StateInfo getTermState(@WebParam(name = "termStateKey") String termStateKey, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 795  
 
 796  
     /**
 797  
      * Gets the valid Term States.
 798  
      *
 799  
      * @param contextInfo information containing the principalId and locale
 800  
      *                    information about the caller of service operation
 801  
      * @return a list of valid Term States
 802  
      * @throws InvalidParameterException contextInfo is not valid
 803  
      * @throws MissingParameterException contextInfo is missing or null
 804  
      * @throws OperationFailedException  unable to complete request
 805  
      */
 806  
     public List<StateInfo> getTermStates(@WebParam(name = "contextInfo") ContextInfo contextInfo) throws InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 807  
 
 808  
     /**
 809  
      * Retrieves a single Term by a Term Id.
 810  
      *
 811  
      * @param termId      the identifier for the Term to be retrieved
 812  
      * @param contextInfo information containing the principalId and locale
 813  
      *                    information about the caller of service operation
 814  
      * @return the Term requested
 815  
      * @throws DoesNotExistException     termIs is not found
 816  
      * @throws InvalidParameterException contextInfo isnot valid
 817  
      * @throws MissingParameterException termId or contextInfo is missing or
 818  
      *                                   null
 819  
      * @throws OperationFailedException  unable to complete request
 820  
      * @throws PermissionDeniedException an authorization failure occurred
 821  
      */
 822  
     public TermInfo getTerm(@WebParam(name = "termId") String termId, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 823  
 
 824  
     /**
 825  
      * Retrieves a list Terms from a list of Term Ids. The returned list may be
 826  
      * in any order and if duplicate Ids are supplied, a unique set may or may
 827  
      * not be returned.
 828  
      *
 829  
      * @param termIds     list of Term Ids
 830  
      * @param contextInfo information containing the principalId and locale
 831  
      *                    information about the caller of service operation
 832  
      * @return a list of Terms
 833  
      * @throws DoesNotExistException     a termId in list was not found
 834  
      * @throws InvalidParameterException contextInfo is not valid
 835  
      * @throws MissingParameterException termIds, an Id in termIds, or
 836  
      *                                   contextInfo is missing or null
 837  
      * @throws OperationFailedException  unable to complete request
 838  
      * @throws PermissionDeniedException an authorization failure occurred
 839  
      */
 840  
     public List<TermInfo> getTermsByIds(@WebParam(name = "termIds") List<String> termIds, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 841  
 
 842  
     /**
 843  
      * Retrieves a list of Term Ids by Type.
 844  
      *
 845  
      * @param termTypeKey an identifier for a Term Type
 846  
      * @param contextInfo information containing the principalId and locale
 847  
      *                    information about the caller of service operation
 848  
      * @return a list of Terms matching termTypeKey or an empty list if none
 849  
      *         found
 850  
      * @throws DoesNotExistException     a termTypeKey in list was not found
 851  
      * @throws InvalidParameterException contextInfo is not valid
 852  
      * @throws MissingParameterException termTypeKey or contextInfo is missing
 853  
      *                                   or null
 854  
      * @throws OperationFailedException  unable to complete request
 855  
      * @throws PermissionDeniedException an authorization failure occurred
 856  
      */
 857  
     public List<String> getTermIdsByType(@WebParam(name = "termTypeKey") String termTypeKey, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 858  
 
 859  
     /**
 860  
      * Gets a list of Terms by Code. Typically, a Term Code is unique.
 861  
      *
 862  
      * @param code        a Term Code
 863  
      * @param contextInfo information containing the principalId and locale
 864  
      *                    information about the caller of service operation
 865  
      * @return a list of Terms with the given Term Code
 866  
      * @throws InvalidParameterException contextInfo is not valid
 867  
      * @throws MissingParameterException code or contextInfo is missing or null
 868  
      * @throws OperationFailedException  unable to complete request
 869  
      * @throws PermissionDeniedException an authorization failure occurred
 870  
      */
 871  
     public List<TermInfo> getTermsByCode(@WebParam(name = "code") String code, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 872  
 
 873  
     /**
 874  
      * Retrieves a list of the top level Terms mapped to the given
 875  
      * AcademicCalendar ordered by Term start date.
 876  
      *
 877  
      * @param academicCalendarId an identifier for an AcademicCalendar
 878  
      * @param contextInfo        information containing the principalId and
 879  
      *                           locale information about the caller of service
 880  
      *                           operation
 881  
      * @return a list of Terms mapped to the given AcademicCalendar
 882  
      * @throws DoesNotExistException     academicCalendarId is not found
 883  
      * @throws InvalidParameterException contextInfo is not valid
 884  
      * @throws MissingParameterException academicCalendarId or contextInfo is
 885  
      *                                   missing or null
 886  
      * @throws OperationFailedException  unable to complete request
 887  
      * @throws PermissionDeniedException authorization failure
 888  
      */
 889  
     public List<TermInfo> getTermsForAcademicCalendar(@WebParam(name = "academicCalendarId") String academicCalendarId, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 890  
 
 891  
     /**
 892  
      * Retrieves a list Terms included immediately inside the given Term ordered
 893  
      * by Term start date. This method should be called recursively to get
 894  
      * sub-terms of the returned Terms.
 895  
      *
 896  
      * @param termId      an identifier for a Term
 897  
      * @param contextInfo information containing the principalId and locale
 898  
      *                    information about the caller of service operation
 899  
      * @return a list of Terms or an empty list if there are no included Terms
 900  
      * @throws DoesNotExistException     termId is not found
 901  
      * @throws InvalidParameterException contextInfo is not valid
 902  
      * @throws MissingParameterException termId or contextInfo is missing or
 903  
      *                                   null
 904  
      * @throws OperationFailedException  unable to complete request
 905  
      * @throws PermissionDeniedException authorization failure
 906  
      */
 907  
     public List<TermInfo> getIncludedTermsInTerm(@WebParam(name = "termId") String termId, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 908  
 
 909  
     /**
 910  
      * Gets the containing terms of a given term. A term may be "included"
 911  
      * inside other terms using addTermToTerm(). This method returns the list of
 912  
      * Terms that the given Term has been placed inside. Typically, a term is
 913  
      * placed inside a single parent term.
 914  
      *
 915  
      * @param termId      an identifier for a Term
 916  
      * @param contextInfo information containing the principalId and locale
 917  
      *                    information about the caller of service operation
 918  
      * @return the parent terms or an empty list if it is a root
 919  
      * @throws DoesNotExistException     termId is not found
 920  
      * @throws InvalidParameterException contextInfo is not valid
 921  
      * @throws MissingParameterException termId or contextInfo is missing or
 922  
      *                                   null
 923  
      * @throws OperationFailedException  unable to complete request
 924  
      * @throws PermissionDeniedException authorization failure
 925  
      */
 926  
     public List<TermInfo> getContainingTerms(@WebParam(name = "termId") String termId, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 927  
 
 928  
     /**
 929  
      * Searches for Terms that meet the given search criteria.
 930  
      *
 931  
      * @param criteria    the search criteria
 932  
      * @param contextInfo information containing the principalId and locale
 933  
      *                    information about the caller of service operation
 934  
      * @return a list of Term identifiers matching the criteria
 935  
      * @throws InvalidParameterException criteria or contextInfo is not valid
 936  
      * @throws MissingParameterException criteria or contextInfo is missing or
 937  
      *                                   null
 938  
      * @throws OperationFailedException  unable to complete request
 939  
      * @throws PermissionDeniedException an authorization failure occurred
 940  
      */
 941  
     public List<String> searchForTermIds(@WebParam(name = "criteria") QueryByCriteria criteria, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 942  
 
 943  
     /**
 944  
      * Searches for Terms that meet the given search criteria.
 945  
      *
 946  
      * @param criteria    the search criteria
 947  
      * @param contextInfo information containing the principalId and locale
 948  
      *                    information about the caller of service operation
 949  
      * @return a list of Terms matching the criteria
 950  
      * @throws InvalidParameterException criteria or contextInfo is not valid
 951  
      * @throws MissingParameterException criteria or contextInfo is missing or
 952  
      *                                   null
 953  
      * @throws OperationFailedException  unable to complete request
 954  
      * @throws PermissionDeniedException an authorization failure occurred
 955  
      */
 956  
     public List<TermInfo> searchForTerms(@WebParam(name = "criteria") QueryByCriteria criteria, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 957  
 
 958  
     /**
 959  
      * Validates a Term. Depending on the value of validationType, this
 960  
      * validation could be limited to tests on just the current Term and its
 961  
      * directly contained subobjects or expanded to perform all tests related to
 962  
      * this Term. If an identifier is present for the Term (and/or one of its
 963  
      * contained sub-objects) and a record is found for that identifier, the
 964  
      * validation checks if the Term can be updated to the new values. If an
 965  
      * identifier is not present or a record does not exist, the validation
 966  
      * checks if the Term with the given data can be created.
 967  
      *
 968  
      * @param validationTypeKey the identifier for the validation Type
 969  
      * @param termTypeKey       the identifier for the Term Type to be
 970  
      *                          validated
 971  
      * @param termInfo          the Term to be validated
 972  
      * @param contextInfo       information containing the principalId and
 973  
      *                          locale information about the caller of service
 974  
      *                          operation
 975  
      * @return a list of validation results or an empty list if validation
 976  
      *         succeeded
 977  
      * @throws DoesNotExistException     validationTypeKey or termTypeKey is not
 978  
      *                                   found
 979  
      * @throws InvalidParameterException termInfo or contextInfo is not valid
 980  
      * @throws MissingParameterException validationTypeKey, termTypeKey,
 981  
      *                                   termInfo, or contextInfo is missing or
 982  
      *                                   null
 983  
      * @throws OperationFailedException  unable to complete request
 984  
      * @throws PermissionDeniedException an authorization failure occurred
 985  
      */
 986  
     public List<ValidationResultInfo> validateTerm(@WebParam(name = "validationTypeKey") String validationTypeKey, @WebParam(name = "termTypeKey") String termTypeKey, @WebParam(name = "termInfo") TermInfo termInfo, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 987  
 
 988  
     /**
 989  
      * Creates a new Term. The Term Type and Meta information may not be set in
 990  
      * the supplied data object.
 991  
      *
 992  
      * @param termTypeKey the identifier for the Type of Term to be created
 993  
      * @param termInfo    the data with which to create the Term
 994  
      * @param contextInfo information containing the principalId and locale
 995  
      *                    information about the caller of service operation
 996  
      * @return the new Term
 997  
      * @throws DataValidationErrorException supplied data is invalid
 998  
      * @throws DoesNotExistException        termTypeKey does not exist or is not
 999  
      *                                      supported
 1000  
      * @throws InvalidParameterException    termInfo or contextInfo is not
 1001  
      *                                      valid
 1002  
      * @throws MissingParameterException    termTypeKey, termInfo, or
 1003  
      *                                      contextInfo is missing or null
 1004  
      * @throws OperationFailedException     unable to complete request
 1005  
      * @throws PermissionDeniedException    an authorization failure occurred
 1006  
      * @throws ReadOnlyException            an attempt at supplying information
 1007  
      *                                      designated as read only
 1008  
      */
 1009  
     public TermInfo createTerm(@WebParam(name = "termTypeKey") String termTypeKey, @WebParam(name = "termInfo") TermInfo termInfo, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DataValidationErrorException, DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException, ReadOnlyException;
 1010  
 
 1011  
     /**
 1012  
      * Updates an existing Term. The Term Id, Type, and Meta information may not
 1013  
      * be changed.
 1014  
      *
 1015  
      * @param termId      the identifier for the Term to be updated
 1016  
      * @param termInfo    the new data for the Term
 1017  
      * @param contextInfo information containing the principalId and locale
 1018  
      *                    information about the caller of service operation
 1019  
      * @return the updated Term
 1020  
      * @throws DataValidationErrorException supplied data is invalid
 1021  
      * @throws DoesNotExistException        TermId is not found
 1022  
      * @throws InvalidParameterException    termInfo or contextInfo is not
 1023  
      *                                      valid
 1024  
      * @throws MissingParameterException    termId, termInfo, or contextInfo is
 1025  
      *                                      missing or null
 1026  
      * @throws OperationFailedException     unable to complete request
 1027  
      * @throws PermissionDeniedException    an authorization failure occurred
 1028  
      * @throws ReadOnlyException           an attempt at changing information
 1029  
      *                                      deisgnated as read only
 1030  
      * @throws VersionMismatchException     an optimistic locking failure or the
 1031  
      *                                      action was attempted on an out of
 1032  
      *                                      date version
 1033  
      */
 1034  
     public TermInfo updateTerm(@WebParam(name = "termId") String termId, @WebParam(name = "termInfo") TermInfo termInfo, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DataValidationErrorException, DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException, ReadOnlyException, VersionMismatchException;
 1035  
 
 1036  
     /**
 1037  
      * Deletes an existing Term.
 1038  
      *
 1039  
      * @param termId      the identifier for the Term to be deleted
 1040  
      * @param contextInfo information containing the principalId and locale
 1041  
      *                    information about the caller of service operation
 1042  
      * @return the status of the operation. This must always be true.
 1043  
      * @throws DoesNotExistException     TermId is not found
 1044  
      * @throws InvalidParameterException contextInfo is not valid
 1045  
      * @throws MissingParameterException termId or contextInfo is missing or
 1046  
      *                                   null
 1047  
      * @throws OperationFailedException  unable to complete request
 1048  
      * @throws PermissionDeniedException an authorization failure occurred
 1049  
      */
 1050  
     public StatusInfo deleteTerm(@WebParam(name = "termId") String termId, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 1051  
 
 1052  
     /**
 1053  
      * Adds a Term to an AcademicCalendar.
 1054  
      *
 1055  
      * @param academicCalendarId an identifier for an AcademicCalendar
 1056  
      * @param termId             the Id of Term to be added
 1057  
      * @param contextInfo        information containing the principalId and
 1058  
      *                           locale information about the caller of service
 1059  
      *                           operation
 1060  
      * @return the status of the operation. This must always be true.
 1061  
      * @throws AlreadyExistsException    The Term is already mapped to the
 1062  
      *                                   AcademicCalendar
 1063  
      * @throws DoesNotExistException     academicCalendarId or termId is not
 1064  
      *                                   found
 1065  
      * @throws InvalidParameterException contextInfo is not valid
 1066  
      * @throws MissingParameterException academicCalendarId, termId, or
 1067  
      *                                   contextInfo is missing or null
 1068  
      * @throws OperationFailedException  unable to complete request
 1069  
      * @throws PermissionDeniedException authorization failure
 1070  
      */
 1071  
     public StatusInfo addTermToAcademicCalendar(@WebParam(name = "academicCalendarId") String academicCalendarId, @WebParam(name = "termId") String termId, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws AlreadyExistsException, DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 1072  
 
 1073  
     /**
 1074  
      * Removes a Term from an AcademicCalendar.
 1075  
      *
 1076  
      * @param academicCalendarId an identifier for an AcademicCalendar
 1077  
      * @param termId             the Id of Term to be unmapped
 1078  
      * @param contextInfo        information containing the principalId and
 1079  
      *                           locale information about the caller of service
 1080  
      *                           operation
 1081  
      * @return the status of the operation. This must always be true.
 1082  
      * @throws DoesNotExistException     termId or academicCalendarId is not
 1083  
      *                                   found or termId is not mapped to
 1084  
      *                                   academicCalendarId
 1085  
      * @throws InvalidParameterException contextInfo is not valid
 1086  
      * @throws MissingParameterException academicCalendarId, termId, or
 1087  
      *                                   contextInfo is missing or null
 1088  
      * @throws OperationFailedException  unable to complete request
 1089  
      * @throws PermissionDeniedException authorization failure
 1090  
      */
 1091  
     public StatusInfo removeTermFromAcademicCalendar(@WebParam(name = "academicCalendarId") String academicCalendarId, @WebParam(name = "termId") String termId, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 1092  
 
 1093  
     /**
 1094  
      * Adds a Term as an included term within another Term.
 1095  
      *
 1096  
      * @param termId         an identifier for a Term
 1097  
      * @param includedTermId the identifier for the Term to be included
 1098  
      * @param contextInfo    information containing the principalId and locale
 1099  
      *                       information about the caller of service operation
 1100  
      * @return the status of the operation. This must always be true.
 1101  
      * @throws AlreadyExistsException    includedTermId is already mapped to
 1102  
      *                                   termId
 1103  
      * @throws DoesNotExistException     temId or includedTermId is not found
 1104  
      * @throws InvalidParameterException contextInfo is not valid
 1105  
      * @throws MissingParameterException temId, includedTermId, or contextInfo
 1106  
      *                                   is missing or null
 1107  
      * @throws OperationFailedException  unable to complete request
 1108  
      * @throws PermissionDeniedException authorization failure
 1109  
      */
 1110  
     public StatusInfo addTermToTerm(@WebParam(name = "termId") String termId, @WebParam(name = "includedTermId") String includedTermId, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws AlreadyExistsException, DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 1111  
 
 1112  
     /**
 1113  
      * Removes an included Term from a Term.
 1114  
      *
 1115  
      * @param termId         an identifier for a Term
 1116  
      * @param includedTermId the identifier for the Term to be removed
 1117  
      * @param contextInfo    information containing the principalId and locale
 1118  
      *                       information about the caller of service operation
 1119  
      * @return the status of the operation. This must always be true.
 1120  
      * @throws DoesNotExistException     termId or includedTermId is not found
 1121  
      *                                   or includedTermId is not mapped to
 1122  
      *                                   termId
 1123  
      * @throws InvalidParameterException contextInfo is not valid
 1124  
      * @throws MissingParameterException termId, includedTermId, or contextInfo
 1125  
      *                                   is missing or null
 1126  
      * @throws OperationFailedException  unable to complete request
 1127  
      * @throws PermissionDeniedException authorization failure
 1128  
      */
 1129  
     public StatusInfo removeTermFromTerm(@WebParam(name = "termId") String termId, @WebParam(name = "includedTermId") String includedTermId, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 1130  
 
 1131  
     /**
 1132  
      * Rerieves a KeyDate Type by Type key.
 1133  
      *
 1134  
      * @param keyDateTypeKey the key of a keyDate Type
 1135  
      * @param contextInfo    information containing the principalId and locale
 1136  
      *                       information about the caller of service operation
 1137  
      * @return the type requested
 1138  
      * @throws DoesNotExistException     keyDateTypeKey is not found
 1139  
      * @throws InvalidParameterException contextInfo is not valid
 1140  
      * @throws MissingParameterException keyDateTypeKey or contextInfo is
 1141  
      *                                   missing or null
 1142  
      * @throws OperationFailedException  unable to complete request
 1143  
      * @throws PermissionDeniedException an authorization failure occurred
 1144  
      */
 1145  
     public TypeInfo getKeyDateType(@WebParam(name = "keyDateTypeKey") String keyDateTypeKey, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 1146  
 
 1147  
     /**
 1148  
      * Gets the valid KeyDate types.
 1149  
      *
 1150  
      * @param contextInfo information containing the principalId and locale
 1151  
      *                    information about the caller of service operation
 1152  
      * @return a list of valid KeyDate Types
 1153  
      * @throws InvalidParameterException contextInfo is not value
 1154  
      * @throws MissingParameterException contextInfo is missing or null
 1155  
      * @throws OperationFailedException  unable to complete request
 1156  
      * @throws PermissionDeniedException an authorization failure occurred
 1157  
      */
 1158  
     public List<TypeInfo> getKeyDateTypes(@WebParam(name = "contextInfo") ContextInfo contextInfo) throws InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 1159  
 
 1160  
     /**
 1161  
      * This method returns the valid KeyDate Types for the given Term Type.
 1162  
      *
 1163  
      * @param termTypeKey identifier for a Term Type
 1164  
      * @param contextInfo information containing the principalId and locale
 1165  
      *                    information about the caller of service operation
 1166  
      * @return a list of valid KeyDate Types
 1167  
      * @throws DoesNotExistException     termTypeKey not found
 1168  
      * @throws InvalidParameterException contextInfo is not valid
 1169  
      * @throws MissingParameterException termTypeKey or contextInfo is missing
 1170  
      *                                   or null
 1171  
      * @throws OperationFailedException  unable to complete request
 1172  
      * @throws PermissionDeniedException an authorization failure occurred
 1173  
      */
 1174  
     public List<TypeInfo> getKeyDateTypesForTermType(@WebParam(name = "termTypeKey") String termTypeKey, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 1175  
 
 1176  
     /**
 1177  
      * Gets a KeyDate State by key.
 1178  
      *
 1179  
      * @param keyDateStateKey a key for a keyDate State
 1180  
      * @param contextInfo     information containing the principalId and locale
 1181  
      *                        information about the caller of service operation
 1182  
      * @return the KeyDate State requested
 1183  
      * @throws DoesNotExistException     keyDateStateKey is not found
 1184  
      * @throws InvalidParameterException contextInfo is invalid
 1185  
      * @throws MissingParameterException keyDateStateKey or contextInfo is
 1186  
      *                                   missing or null
 1187  
      * @throws OperationFailedException  unable to complete request
 1188  
      * @throws PermissionDeniedException an authorization failure occurred
 1189  
      */
 1190  
     public StateInfo getKeyDateState(@WebParam(name = "keyDateStateKey") String keyDateStateKey, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 1191  
 
 1192  
     /**
 1193  
      * Gets the valid KeyDate States.
 1194  
      *
 1195  
      * @param contextInfo information containing the principalId and locale
 1196  
      *                    information about the caller of service operation
 1197  
      * @return a list of valid KeyDate States
 1198  
      * @throws InvalidParameterException contextInfo is not valid
 1199  
      * @throws MissingParameterException contextInfo is missing or null
 1200  
      * @throws OperationFailedException  unable to complete request
 1201  
      * @throws PermissionDeniedException an authorization failure occurred
 1202  
      */
 1203  
     public List<StateInfo> getKeyDateStates(@WebParam(name = "contextInfo") ContextInfo contextInfo) throws InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 1204  
 
 1205  
     /**
 1206  
      * Retrieves a single KeyDate by a KeyDate Id.
 1207  
      *
 1208  
      * @param keyDateId   the identifier for the KeyDate to be retrieved
 1209  
      * @param contextInfo information containing the principalId and locale
 1210  
      *                    information about the caller of service operation
 1211  
      * @return the KeyDate requested
 1212  
      * @throws DoesNotExistException     keyDateIs is not found
 1213  
      * @throws InvalidParameterException contextInfo is not valid
 1214  
      * @throws MissingParameterException keyDateId or contextInfo is missing or
 1215  
      *                                   null
 1216  
      * @throws OperationFailedException  unable to complete request
 1217  
      * @throws PermissionDeniedException an authorization failure occurred
 1218  
      */
 1219  
     public KeyDateInfo getKeyDate(@WebParam(name = "keyDateId") String keyDateId, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 1220  
 
 1221  
     /**
 1222  
      * Retrieves a list KeyDates from a list of KeyDate Ids. The returned list
 1223  
      * may be in any order and if duplicate Ids are supplied, a unique set may
 1224  
      * or may not be returned.
 1225  
      *
 1226  
      * @param keyDateIds  list of KeyDate Ids
 1227  
      * @param contextInfo information containing the principalId and locale
 1228  
      *                    information about the caller of service operation
 1229  
      * @return a list of KeyDates
 1230  
      * @throws DoesNotExistException     a keyDateId in list was not found
 1231  
      * @throws InvalidParameterException contextInfo is not valid
 1232  
      * @throws MissingParameterException keyDateIds, an Id in keyDateIds, or
 1233  
      *                                   contextInfo is missing or null
 1234  
      * @throws OperationFailedException  unable to complete request
 1235  
      * @throws PermissionDeniedException an authorization failure occurred
 1236  
      */
 1237  
     public List<KeyDateInfo> getKeyDatesByIds(@WebParam(name = "keyDateIds") List<String> keyDateIds, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 1238  
 
 1239  
     /**
 1240  
      * Retrieves a list of KeyDate Ids by Type.
 1241  
      *
 1242  
      * @param keyDateTypeKey an identifier for a KeyDate Type
 1243  
      * @param contextInfo    information containing the principalId and locale
 1244  
      *                       information about the caller of service operation
 1245  
      * @return a list of KeyDates matching keyDateTypeKey or an empty list if
 1246  
      *         none found
 1247  
      * @throws DoesNotExistException     a keyDateTypeKey is not found
 1248  
      * @throws InvalidParameterException contextInfo is not valid
 1249  
      * @throws MissingParameterException keyDateTypeKey or contextInfo is
 1250  
      *                                   missing or null
 1251  
      * @throws OperationFailedException  unable to complete request
 1252  
      * @throws PermissionDeniedException an authorization failure occurred
 1253  
      */
 1254  
     public List<String> getKeyDateIdsByType(@WebParam(name = "keyDateTypeKey") String keyDateTypeKey, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 1255  
 
 1256  
     /**
 1257  
      * Retrieves a list of KeyDate Ids by Type and for a specific Term
 1258  
      *
 1259  
      * @param keyDateTypeKey an identifier for a KeyDate Type
 1260  
      * @param termId      an identifier for a term
 1261  
      * @param contextInfo    information containing the principalId and locale
 1262  
      *                       information about the caller of service operation
 1263  
      * @return a list of KeyDates matching keyDateTypeKey and for termId or an empty list if none found
 1264  
      * @throws DoesNotExistException     a keyDateTypeKey is not found
 1265  
      * @throws InvalidParameterException contextInfo is not valid
 1266  
      * @throws MissingParameterException keyDateTypeKey or contextInfo is
 1267  
      *                                   missing or null
 1268  
      * @throws OperationFailedException  unable to complete request
 1269  
      * @throws PermissionDeniedException an authorization failure occurred
 1270  
      */
 1271  
     public List<String> getKeyDateIdsByTypeForTerm(@WebParam(name = "keyDateTypeKey") String keyDateTypeKey, @WebParam(name = "termId") String termId, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 1272  
 
 1273  
     /**
 1274  
      * Retrieves a list of KeyDates immediately mapped to a Term ordered by
 1275  
      * date.
 1276  
      *
 1277  
      * @param termId      an identifier for a term
 1278  
      * @param contextInfo information containing the principalId and locale
 1279  
      *                    information about the caller of service operation
 1280  
      * @return a list of KeyDates mapped to the given Term
 1281  
      * @throws DoesNotExistException     termId is not found
 1282  
      * @throws InvalidParameterException contextInfo is not valid
 1283  
      * @throws MissingParameterException termId or contextInfo is missing or
 1284  
      *                                   null
 1285  
      * @throws OperationFailedException  unable to complete request
 1286  
      * @throws PermissionDeniedException authorization failure
 1287  
      */
 1288  
     public List<KeyDateInfo> getKeyDatesForTerm(@WebParam(name = "termId") String termId, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 1289  
 
 1290  
     /**
 1291  
      * Retrieves a list of KeyDates immediately mapped to a Term that fall
 1292  
      * within the given date range inclusive ordered by date. The dates include
 1293  
      * only those dates immediate mapped to the Term.
 1294  
      *
 1295  
      * @param termId      an identifier for a Term
 1296  
      * @param startDate   the start of date range
 1297  
      * @param endDate     the end of date range
 1298  
      * @param contextInfo information containing the principalId and locale
 1299  
      *                    information about the caller of service operation
 1300  
      * @return a list of KeyDates for the given Term in the given dates
 1301  
      * @throws DoesNotExistException     termId is not found
 1302  
      * @throws InvalidParameterException contextInfo is not valid
 1303  
      * @throws MissingParameterException termId, startDate, endDate, or
 1304  
      *                                   contextInfo is missing or null
 1305  
      * @throws OperationFailedException  unable to complete request
 1306  
      * @throws PermissionDeniedException authorization failure
 1307  
      */
 1308  
     public List<KeyDateInfo> getKeyDatesForTermByDate(@WebParam(name = "termId") String termId, @WebParam(name = "startDate") Date startDate, @WebParam(name = "endDate") Date endDate, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 1309  
 
 1310  
     /**
 1311  
      * Gets a list of KeyDates impacted by a change to a given KeyDate. Rules
 1312  
      * may exist to calculate key dates based on a KeyDate Type. Management of
 1313  
      * these calculation rules are not at this time exposed in this service.
 1314  
      *
 1315  
      * @param keyDateId   an identifier for a KeyDate
 1316  
      * @param contextInfo information containing the principalId and locale
 1317  
      *                    information about the caller of service operation
 1318  
      * @return a list of KeyDates impacted by the given KeyDate
 1319  
      * @throws DoesNotExistException     keyDateId is not found
 1320  
      * @throws InvalidParameterException contextInfo is not valid
 1321  
      * @throws MissingParameterException keyDateId or contextInfo is missing or
 1322  
      *                                   null
 1323  
      * @throws OperationFailedException  unable to complete request
 1324  
      * @throws PermissionDeniedException an authorization failure occurred
 1325  
      * @deprecated Key Dates are to be calculated when calender is copied.
 1326  
      */
 1327  
     public List<KeyDateInfo> getImpactedKeyDates(@WebParam(name = "keyDateId") String keyDateId, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 1328  
 
 1329  
     /**
 1330  
      * Searches for KeyDates that meet the given search criteria.
 1331  
      *
 1332  
      * @param criteria    the search criteria
 1333  
      * @param contextInfo information containing the principalId and locale
 1334  
      *                    information about the caller of service operation
 1335  
      * @return a list of KeyDate identifiers matching the criteria
 1336  
      * @throws InvalidParameterException criteria or contextInfo is not valid
 1337  
      * @throws MissingParameterException criteria or contextInfo is missing or
 1338  
      *                                   null
 1339  
      * @throws OperationFailedException  unable to complete request
 1340  
      * @throws PermissionDeniedException an authorization failure occurred
 1341  
      */
 1342  
     public List<String> searchForKeyDateIds(@WebParam(name = "criteria") QueryByCriteria criteria, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 1343  
 
 1344  
     /**
 1345  
      * Searches for KeyDates that meet the given search criteria.
 1346  
      *
 1347  
      * @param criteria    the search criteria
 1348  
      * @param contextInfo information containing the principalId and locale
 1349  
      *                    information about the caller of service operation
 1350  
      * @return a list of KeyDates matching the criteria
 1351  
      * @throws InvalidParameterException criteria or contextInfo is not valid
 1352  
      * @throws MissingParameterException criteria or contextInfo is missing or
 1353  
      *                                   null
 1354  
      * @throws OperationFailedException  unable to complete request
 1355  
      * @throws PermissionDeniedException an authorization failure occurred
 1356  
      */
 1357  
     public List<KeyDateInfo> searchForKeyDates(@WebParam(name = "criteria") QueryByCriteria criteria, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 1358  
 
 1359  
     /**
 1360  
      * Validates a KeyDate. Depending on the value of validationType, this
 1361  
      * validation could be limited to tests on just the current KeyDate and its
 1362  
      * directly contained subobjects or expanded to perform all tests related to
 1363  
      * this KeyDate. If an identifier is present for the KeyDate (and/or one of
 1364  
      * its contained sub-objects) and a record is found for that identifier, the
 1365  
      * validation checks if the KeyDate can be updated to the new values. If an
 1366  
      * identifier is not present or a record does not exist, the validation
 1367  
      * checks if the KeyDate with the given data can be created.
 1368  
      *
 1369  
      * @param validationTypeKey the identifier for the validation Type
 1370  
      * @param termId            the identifier for the Term
 1371  
      * @param keyDateTypeKey    the identifier for the KeyDate Type to be
 1372  
      *                          validated
 1373  
      * @param keyDateInfo       the KeyDate to be validated
 1374  
      * @param contextInfo       information containing the principalId and
 1375  
      *                          locale information about the caller of service
 1376  
      *                          operation
 1377  
      * @return a list of validation results or an empty list if validation
 1378  
      *         succeeded
 1379  
      * @throws DoesNotExistException     validationTypeKey, termId, or
 1380  
      *                                   keyDateTypeKey is not found
 1381  
      * @throws InvalidParameterException keyDateInfo or contextInfo is not
 1382  
      *                                   valid
 1383  
      * @throws MissingParameterException validationTypeKey, termId, keyDateTypeKey,
 1384  
      *                                   keyDateInfo, or contextInfo is missing
 1385  
      *                                   or null
 1386  
      * @throws OperationFailedException  unable to complete request
 1387  
      * @throws PermissionDeniedException an authorization failure occurred
 1388  
      */
 1389  
     public List<ValidationResultInfo> validateKeyDate(@WebParam(name = "validationTypeKey") String validationTypeKey, @WebParam(name = "termId") String termId, @WebParam(name = "keyDateTypeKey") String keyDateTypeKey, @WebParam(name = "keyDateInfo") KeyDateInfo keyDateInfo, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 1390  
 
 1391  
     /**
 1392  
      * Creates a new KeyDate. The KeyDate Id, Type, and Meta information may not
 1393  
      * be set in the supplied data object.
 1394  
      *
 1395  
      * @param termId         the identifier for the Term in which to create the
 1396  
      *                       KeyDate
 1397  
      * @param keyDateTypeKey the identifier for the Type of KeyDate to be
 1398  
      *                       created
 1399  
      * @param keyDateInfo    the data with which to create the KeyDate
 1400  
      * @param contextInfo    information containing the principalId and locale
 1401  
      *                       information about the caller of service operation
 1402  
      * @return the new KeyDate
 1403  
      * @throws DataValidationErrorException supplied data is invalid
 1404  
      * @throws DoesNotExistException        termId is not found or keyDateTypeKey
 1405  
      *                                      does not exist or is not supported
 1406  
      * @throws InvalidParameterException    keyDateInfo or contextInfo is not
 1407  
      *                                      valid
 1408  
      * @throws MissingParameterException    termId, keyDateTypeKey, keyDateInfo,
 1409  
      *                                      or contextInfo is missing or null
 1410  
      * @throws OperationFailedException     unable to complete request
 1411  
      * @throws PermissionDeniedException    an authorization failure occurred
 1412  
      * @throws ReadOnlyException            an attempt at supplying information
 1413  
      *                                      designated as read only
 1414  
      */
 1415  
     public KeyDateInfo createKeyDate(@WebParam(name = "termId") String termId, @WebParam(name = "keyDateTypeKey") String keyDateTypeKey, @WebParam(name = "keyDateInfo") KeyDateInfo keyDateInfo, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DataValidationErrorException, DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException, ReadOnlyException;
 1416  
 
 1417  
     /**
 1418  
      * Updates an existing KeyDate. The KeyDate Id, Type, and Meta information
 1419  
      * may not be changed.
 1420  
      *
 1421  
      * @param keyDateId   the identifier for the KeyDate to be updated
 1422  
      * @param keyDateInfo the new data for the Key`Date
 1423  
      * @param contextInfo information containing the principalId and locale
 1424  
      *                    information about the caller of service operation
 1425  
      * @return the updated KeyDate
 1426  
      * @throws DataValidationErrorException supplied data is invalid
 1427  
      * @throws DoesNotExistException        KeyDateId is not found
 1428  
      * @throws InvalidParameterException    keyDateInfo or contextInfo is not
 1429  
      *                                      valid
 1430  
      * @throws MissingParameterException    keyDateId, keyDateInfo, or
 1431  
      *                                      contextInfo is missing or null
 1432  
      * @throws OperationFailedException     unable to complete request
 1433  
      * @throws PermissionDeniedException    an authorization failure occurred
 1434  
      * @throws ReadOnlyException           an attempt at changing information
 1435  
      *                                      designated as read only
 1436  
      * @throws VersionMismatchException     an optimistic locking failure or the
 1437  
      *                                      action was attempted on an out of
 1438  
      *                                      date version
 1439  
      */
 1440  
     public KeyDateInfo updateKeyDate(@WebParam(name = "keyDateId") String keyDateId, @WebParam(name = "keyDateInfo") KeyDateInfo keyDateInfo, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DataValidationErrorException, DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException, ReadOnlyException, VersionMismatchException;
 1441  
 
 1442  
     /**
 1443  
      * Deletes an existing KeyDate.
 1444  
      *
 1445  
      * @param keyDateId   the identifier for the KeyDate to be deleted
 1446  
      * @param contextInfo information containing the principalId and locale
 1447  
      *                    information about the caller of service operation
 1448  
      * @return the status of the operation. This must always be true.
 1449  
      * @throws DoesNotExistException     KeyDateId is not found
 1450  
      * @throws InvalidParameterException contextInfo is not valid
 1451  
      * @throws MissingParameterException keyDateId or contextInfo is missing or
 1452  
      *                                   null
 1453  
      * @throws OperationFailedException  unable to complete request
 1454  
      * @throws PermissionDeniedException an authorization failure occurred
 1455  
      */
 1456  
     public StatusInfo deleteKeyDate(@WebParam(name = "keyDateId") String keyDateId, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 1457  
 
 1458  
     /**
 1459  
      * Calculates the dates in the KeyDate based on a rule attached to the
 1460  
      * KeyDate Type. If there is no rule available for the Type of the given
 1461  
      * KeyDate, then no changes to the KeyDate occur.
 1462  
      *
 1463  
      * @param keyDateId   an identifier for a KeyDate
 1464  
      * @param contextInfo information containing the principalId and locale
 1465  
      *                    information about the caller of service operation
 1466  
      * @return the KeyDate with the calculated dates
 1467  
      * @throws DoesNotExistException     keyDateId is not found
 1468  
      * @throws InvalidParameterException contextInfo is not valid
 1469  
      * @throws MissingParameterException keyDateId or contextInfo is missing or
 1470  
      *                                   null
 1471  
      * @throws OperationFailedException  unable to complete request
 1472  
      * @throws PermissionDeniedException an authorization failure occurred
 1473  
      * @deprecated Key Dates are to be calculated when calender is copied.
 1474  
      */
 1475  
     public KeyDateInfo calculateKeyDate(@WebParam(name = "keyDateId") String keyDateId, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 1476  
 
 1477  
     /**
 1478  
      * Rerieves a AcalEvent Type by Type key.
 1479  
      *
 1480  
      * @param acalEventTypeKey the key of a acalEvent Type
 1481  
      * @param contextInfo      information containing the principalId and locale
 1482  
      *                         information about the caller of service
 1483  
      *                         operation
 1484  
      * @return the type requested
 1485  
      * @throws DoesNotExistException     acalEventTypeKey is not found
 1486  
      * @throws InvalidParameterException contextInfo is not valid
 1487  
      * @throws MissingParameterException acalEventTypeKey or contextInfo is
 1488  
      *                                   missing or null
 1489  
      * @throws OperationFailedException  unable to complete request
 1490  
      * @throws PermissionDeniedException an authorization failure occurred
 1491  
      */
 1492  
     public TypeInfo getAcalEventType(@WebParam(name = "acalEventTypeKey") String acalEventTypeKey, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 1493  
 
 1494  
     /**
 1495  
      * Gets the valid AcalEvent types.
 1496  
      *
 1497  
      * @param contextInfo information containing the principalId and locale
 1498  
      *                    information about the caller of service operation
 1499  
      * @return a list of valid AcalEvent Types
 1500  
      * @throws InvalidParameterException contextInfo is not value
 1501  
      * @throws MissingParameterException contextInfo is missing or null
 1502  
      * @throws OperationFailedException  unable to complete request
 1503  
      * @throws PermissionDeniedException an authorization failure occurred
 1504  
      */
 1505  
     public List<TypeInfo> getAcalEventTypes(@WebParam(name = "contextInfo") ContextInfo contextInfo) throws InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 1506  
 
 1507  
     /**
 1508  
      * This method returns the valid AcalEvent Types for the given
 1509  
      * AcademicCalendar Type.
 1510  
      *
 1511  
      * @param academicCalendarTypeKey identifier for an AcademicCalendar Type
 1512  
      * @param contextInfo             information containing the principalId and
 1513  
      *                                locale information about the caller of
 1514  
      *                                service operation
 1515  
      * @return a list of valid AcalEvent Types
 1516  
      * @throws DoesNotExistException     academicCalendarTypeKey not found
 1517  
      * @throws InvalidParameterException contextInfo is not valid
 1518  
      * @throws MissingParameterException academicCalendarTypeKey or contextInfo
 1519  
      *                                   is missing or null
 1520  
      * @throws OperationFailedException  unable to complete request
 1521  
      * @throws PermissionDeniedException an authorization failure occurred
 1522  
      */
 1523  
     public List<TypeInfo> getAcalEventTypesForAcademicCalendarType(@WebParam(name = "academicCalendarTypeKey") String academicCalendarTypeKey, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 1524  
 
 1525  
     /**
 1526  
      * Gets a AcalEvent State by key.
 1527  
      *
 1528  
      * @param acalEventStateKey a key for a acalEvent State
 1529  
      * @param contextInfo       information containing the principalId and
 1530  
      *                          locale information about the caller of service
 1531  
      *                          operation
 1532  
      * @return the AcalEvent State requested
 1533  
      * @throws DoesNotExistException     acalEventStateKey is not found
 1534  
      * @throws InvalidParameterException contextInfo is invalid
 1535  
      * @throws MissingParameterException acalEventStateKey or contextInfo is
 1536  
      *                                   missing or null
 1537  
      * @throws OperationFailedException  unable to complete request
 1538  
      * @throws PermissionDeniedException an authorization failure occurred
 1539  
      */
 1540  
     public StateInfo getAcalEventState(@WebParam(name = "acalEventStateKey") String acalEventStateKey, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 1541  
 
 1542  
     /**
 1543  
      * Gets the valid AcalEvent States.
 1544  
      *
 1545  
      * @param contextInfo information containing the principalId and locale
 1546  
      *                    information about the caller of service operation
 1547  
      * @return a list of valid AcalEvent States
 1548  
      * @throws InvalidParameterException contextInfo is not valid
 1549  
      * @throws MissingParameterException contextInfo is missing or null
 1550  
      * @throws OperationFailedException  unable to complete request
 1551  
      * @throws PermissionDeniedException an authorization failure occurred
 1552  
      */
 1553  
     public List<StateInfo> getAcalEventStates(@WebParam(name = "contextInfo") ContextInfo contextInfo) throws InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 1554  
 
 1555  
     /**
 1556  
      * Retrieves a single AcalEvent by an AcalEvent Id.
 1557  
      *
 1558  
      * @param acalEventId the identifier for the AcalEvent to be retrieved
 1559  
      * @param contextInfo information containing the principalId and locale
 1560  
      *                    information about the caller of service operation
 1561  
      * @return the AcalEvent requested
 1562  
      * @throws DoesNotExistException     acalEventIs is not found
 1563  
      * @throws InvalidParameterException contextInfo isnot valid
 1564  
      * @throws MissingParameterException acalEventKey or contextInfo is missing
 1565  
      *                                   or null
 1566  
      * @throws OperationFailedException  unable to complete request
 1567  
      * @throws PermissionDeniedException an authorization failure occurred
 1568  
      */
 1569  
     public AcalEventInfo getAcalEvent(@WebParam(name = "acalEventId") String acalEventId, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 1570  
 
 1571  
     /**
 1572  
      * Retrieves a list AcalEvents from a list of AcalEvent Ids. The returned
 1573  
      * list may be in any order and if duplicate Ids are supplied, a unique set
 1574  
      * may or may not be returned.
 1575  
      *
 1576  
      * @param acalEventIds list of AcalEvent Ids
 1577  
      * @param contextInfo  information containing the principalId and locale
 1578  
      *                     information about the caller of service operation
 1579  
      * @return a list of AcalEvents
 1580  
      * @throws DoesNotExistException     an acalEventId in list was not found
 1581  
      * @throws InvalidParameterException contextInfo is not valid
 1582  
      * @throws MissingParameterException acalEventIds, an Id in acalEventIds, or
 1583  
      *                                   contextInfo is missing or null
 1584  
      * @throws OperationFailedException  unable to complete request
 1585  
      * @throws PermissionDeniedException an authorization failure occurred
 1586  
      */
 1587  
     public List<AcalEventInfo> getAcalEventsByIds(@WebParam(name = "acalEventIds") List<String> acalEventIds, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 1588  
 
 1589  
     /**
 1590  
      * Retrieves a list of AcalEvent Ids by Type.
 1591  
      *
 1592  
      * @param acalEventTypeKey an identifier for an AcalEvent Type
 1593  
      * @param contextInfo      information containing the principalId and locale
 1594  
      *                         information about the caller of service
 1595  
      *                         operation
 1596  
      * @return a list of AcalEvents matching acalEventTypeKey or an empty list
 1597  
      *         if none found
 1598  
      * @throws InvalidParameterException contextInfo is not valid
 1599  
      * @throws MissingParameterException acalEventTypeKey or contextInfo is
 1600  
      *                                   missing or null
 1601  
      * @throws OperationFailedException  unable to complete request
 1602  
      * @throws PermissionDeniedException an authorization failure occurred
 1603  
      */
 1604  
     public List<String> getAcalEventIdsByType(@WebParam(name = "acalEventTypeKey") String acalEventTypeKey, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 1605  
 
 1606  
     /**
 1607  
      * Retrieves a list of AcalEvents immediately mapped to an AcademicCalendar
 1608  
      * ordered by date.
 1609  
      *
 1610  
      * @param academicCalendarId an identifier for an AcademicCalendar
 1611  
      * @param contextInfo        information containing the principalId and
 1612  
      *                           locale information about the caller of service
 1613  
      *                           operation
 1614  
      * @return a list of AcalEvents mapped to the given AcademicCalendar
 1615  
      * @throws DoesNotExistException     academicCalendarId is not found
 1616  
      * @throws InvalidParameterException contextInfo is not valid
 1617  
      * @throws MissingParameterException academicCalendarId or contextInfo is
 1618  
      *                                   missing or null
 1619  
      * @throws OperationFailedException  unable to complete request
 1620  
      * @throws PermissionDeniedException authorization failure
 1621  
      */
 1622  
     public List<AcalEventInfo> getAcalEventsForAcademicCalendar(@WebParam(name = "academicCalendarId") String academicCalendarId, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 1623  
 
 1624  
     /**
 1625  
      * Retrieves a list of AcalEvents immediately mapped to an AcademicCalendar
 1626  
      * that fall within the given date range inclusive ordered by date.
 1627  
      *
 1628  
      * @param academicCalendarId an identifier for an AcademicCalendar
 1629  
      * @param startDate          the start of date range
 1630  
      * @param endDate            the end of date range
 1631  
      * @param contextInfo        information containing the principalId and
 1632  
      *                           locale information about the caller of service
 1633  
      *                           operation
 1634  
      * @return a list of AcalEvents for the given AcademicCalendar in the given
 1635  
      *         dates
 1636  
      * @throws DoesNotExistException     academicCalendarId is not found
 1637  
      * @throws InvalidParameterException contextInfo is not valid
 1638  
      * @throws MissingParameterException academicCalendarId, startDate, endDate,
 1639  
      *                                   or contextInfo is missing or null
 1640  
      * @throws OperationFailedException  unable to complete request
 1641  
      * @throws PermissionDeniedException authorization failure
 1642  
      */
 1643  
     public List<AcalEventInfo> getAcalEventsForAcademicCalendarByDate(@WebParam(name = "academicCalendarId") String academicCalendarId, @WebParam(name = "startDate") Date startDate, @WebParam(name = "endDate") Date endDate, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 1644  
 
 1645  
     /**
 1646  
      * Gets a list of AcalEvents impacted by a change to a given AcalEvent.
 1647  
      * Rules may exist to calculate key dates based on a AcalEvent Type.
 1648  
      * Management of these calculation rules are not at this time exposed in
 1649  
      * this service.
 1650  
      *
 1651  
      * @param acalEventId an identifier for an AcalEvent
 1652  
      * @param contextInfo information containing the principalId and locale
 1653  
      *                    information about the caller of service operation
 1654  
      * @return a list of AcalEvents impacted by the given AcalEvent
 1655  
      * @throws DoesNotExistException     keyDateId is not found
 1656  
      * @throws InvalidParameterException contextInfo is not valid
 1657  
      * @throws MissingParameterException acalEventId or contextInfo is missing
 1658  
      *                                   or null
 1659  
      * @throws OperationFailedException  unable to complete request
 1660  
      * @throws PermissionDeniedException an authorization failure occurred
 1661  
      */
 1662  
     public List<AcalEventInfo> getImpactedAcalEvents(@WebParam(name = "acalEventId") String acalEventId, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 1663  
 
 1664  
     /**
 1665  
      * Searches for AcalEvents that meet the given search criteria.
 1666  
      *
 1667  
      * @param criteria    the search criteria
 1668  
      * @param contextInfo information containing the principalId and locale
 1669  
      *                    information about the caller of service operation
 1670  
      * @return a list of AcalEvent identifiers matching the criteria
 1671  
      * @throws InvalidParameterException criteria or contextInfo is not valid
 1672  
      * @throws MissingParameterException criteria or contextInfo is missing or
 1673  
      *                                   null
 1674  
      * @throws OperationFailedException  unable to complete request
 1675  
      * @throws PermissionDeniedException an authorization failure occurred
 1676  
      */
 1677  
     public List<String> searchForAcalEventIds(@WebParam(name = "criteria") QueryByCriteria criteria, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 1678  
 
 1679  
     /**
 1680  
      * Searches for AcalEvents that meet the given search criteria.
 1681  
      *
 1682  
      * @param criteria    the search criteria
 1683  
      * @param contextInfo information containing the principalId and locale
 1684  
      *                    information about the caller of service operation
 1685  
      * @return a list of AcalEvents matching the criteria
 1686  
      * @throws InvalidParameterException criteria or contextInfo is not valid
 1687  
      * @throws MissingParameterException criteria or contextInfo is missing or
 1688  
      *                                   null
 1689  
      * @throws OperationFailedException  unable to complete request
 1690  
      * @throws PermissionDeniedException an authorization failure occurred
 1691  
      */
 1692  
     public List<AcalEventInfo> searchForAcalEvents(@WebParam(name = "criteria") QueryByCriteria criteria, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 1693  
 
 1694  
     /**
 1695  
      * Validates an AcalEvent. Depending on the value of validationType, this
 1696  
      * validation could be limited to tests on just the current AcalEvent and
 1697  
      * its directly contained subobjects or expanded to perform all tests
 1698  
      * related to this AcalEvent. If an identifier is present for the AcalEvent
 1699  
      * (and/or one of its contained sub-objects) and a record is found for that
 1700  
      * identifier, the validation checks if the AcalEvent can be updated to the
 1701  
      * new values. If an identifier is not present or a record does not exist,
 1702  
      * the validation checks if the AcalEvent with the given data can be
 1703  
      * created.
 1704  
      *
 1705  
      * @param validationTypeKey the identifier for the validation Type
 1706  
      * @param termId            the identifier for the Term
 1707  
      * @param acalEventTypeKey  the identifier for the AcalEvent Type to be
 1708  
      *                          validated
 1709  
      * @param acalEventInfo     the AcalEvent to be validated
 1710  
      * @param contextInfo       information containing the principalId and
 1711  
      *                          locale information about the caller of service
 1712  
      *                          operation
 1713  
      * @return a list of validation results or an empty list if validation
 1714  
      *         succeeded
 1715  
      * @throws DoesNotExistException     validationTypeKey, termId, or
 1716  
      *                                   acalEventTypeKey is not found
 1717  
      * @throws InvalidParameterException acalEventInfo or contextInfo is not
 1718  
      *                                   valid
 1719  
      * @throws MissingParameterException validationTypeKey, termId, acalEventTypeKey,
 1720  
      *                                   acalEventInfo, or contextInfo is
 1721  
      *                                   missing or null
 1722  
      * @throws OperationFailedException  unable to complete request
 1723  
      * @throws PermissionDeniedException an authorization failure occurred
 1724  
      */
 1725  
     public List<ValidationResultInfo> validateAcalEvent(@WebParam(name = "validationTypeKey") String validationTypeKey, @WebParam(name = "termId") String termId, @WebParam(name = "acalEventTypeKey") String acalEventTypeKey, @WebParam(name = "acalEventInfo") AcalEventInfo acalEventInfo, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 1726  
 
 1727  
     /**
 1728  
      * Creates a new AcalEvent. The AcalEvent Id, Type, and Meta information may
 1729  
      * not be set in the supplied data object.
 1730  
      *
 1731  
      * @param academicCalendarId the identifier for the AcademicCalendar in
 1732  
      *                           which to create the AcalEvent
 1733  
      * @param acalEventTypeKey   the identifier for the Type of AcalEvent to be
 1734  
      *                           created
 1735  
      * @param acalEventInfo      the data with which to create the AcalEvent
 1736  
      * @param contextInfo        information containing the principalId and
 1737  
      *                           locale information about the caller of service
 1738  
      *                           operation
 1739  
      * @return the new AcalEvent
 1740  
      * @throws DataValidationErrorException supplied data is invalid
 1741  
      * @throws DoesNotExistException        academicCalendarId is not found or
 1742  
      *                                      acalEventTypeKey does not exist or
 1743  
      *                                      is not supported
 1744  
      * @throws InvalidParameterException    acalEventInfo or contextInfo is not
 1745  
      *                                      valid
 1746  
      * @throws MissingParameterException    academicCalendarId, acalEventTypeKey,
 1747  
      *                                      acalEventInfo, or contextInfo is
 1748  
      *                                      missing or null
 1749  
      * @throws OperationFailedException     unable to complete request
 1750  
      * @throws PermissionDeniedException    an authorization failure occurred
 1751  
      * @throws ReadOnlyException            an attempt at supplying information
 1752  
      *                                      designated as read only
 1753  
      */
 1754  
     public AcalEventInfo createAcalEvent(@WebParam(name = "academicCalendarId") String academicCalendarId, @WebParam(name = "acalEventTypeKey") String acalEventTypeKey, @WebParam(name = "acalEventInfo") AcalEventInfo acalEventInfo, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DataValidationErrorException, DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException, ReadOnlyException;
 1755  
 
 1756  
     /**
 1757  
      * Updates an existing AcalEvent. The AcalEvent Id, Type, and Meta
 1758  
      * information may not be changed.
 1759  
      *
 1760  
      * @param acalEventId   the identifier for the AcalEvent to be updated
 1761  
      * @param acalEventInfo the new data for the AcalEvent
 1762  
      * @param contextInfo   information containing the principalId and locale
 1763  
      *                      information about the caller of service operation
 1764  
      * @return the updated AcalEvent
 1765  
      * @throws DataValidationErrorException supplied data is invalid
 1766  
      * @throws DoesNotExistException        AcalEventId is not found
 1767  
      * @throws InvalidParameterException    acalEventInfo or contextInfo is not
 1768  
      *                                      valid
 1769  
      * @throws MissingParameterException    acalEventId, acalEventInfo, or
 1770  
      *                                      contextInfo is missing or null
 1771  
      * @throws OperationFailedException     unable to complete request
 1772  
      * @throws PermissionDeniedException    an authorization failure occurred
 1773  
      * @throws ReadOnlyException           an attempt at changing information
 1774  
      *                                      deisgnated as read only
 1775  
      * @throws VersionMismatchException     an optimistic locking failure or the
 1776  
      *                                      action was attempted on an out of
 1777  
      *                                      date version
 1778  
      */
 1779  
     public AcalEventInfo updateAcalEvent(@WebParam(name = "acalEventId") String acalEventId, @WebParam(name = "acalEventInfo") AcalEventInfo acalEventInfo, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DataValidationErrorException, DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException, ReadOnlyException, VersionMismatchException;
 1780  
 
 1781  
     /**
 1782  
      * Deletes an existing AcalEvent.
 1783  
      *
 1784  
      * @param acalEventId the identifier for the AcalEvent to be deleted
 1785  
      * @param contextInfo information containing the principalId and locale
 1786  
      *                    information about the caller of service operation
 1787  
      * @return the status of the operation. This must always be true.
 1788  
      * @throws DoesNotExistException     AcalEventId is not found
 1789  
      * @throws InvalidParameterException contextInfo is not valid
 1790  
      * @throws MissingParameterException acalEventId or contextInfo is missing
 1791  
      *                                   or null
 1792  
      * @throws OperationFailedException  unable to complete request
 1793  
      * @throws PermissionDeniedException an authorization failure occurred
 1794  
      */
 1795  
     public StatusInfo deleteAcalEvent(@WebParam(name = "acalEventId") String acalEventId, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 1796  
 
 1797  
     /**
 1798  
      * Calculates the dates in the AcalEvent based on a rule attached to the
 1799  
      * AcalEvent Type. If there is no rule available for the Type of the given
 1800  
      * AcalEvent, then no changes to the AcalEvent occur.
 1801  
      *
 1802  
      * @param acalEventId an identifier for a AcalEvent
 1803  
      * @param contextInfo information containing the principalId and locale
 1804  
      *                    information about the caller of service operation
 1805  
      * @return the AcalEvent with the calculated dates
 1806  
      * @throws DoesNotExistException     acalEventId is not found
 1807  
      * @throws InvalidParameterException contextInfo is not valid
 1808  
      * @throws MissingParameterException acalEventId or contextInfo is missing
 1809  
      *                                   or null
 1810  
      * @throws OperationFailedException  unable to complete request
 1811  
      * @throws PermissionDeniedException an authorization failure occurred
 1812  
      */
 1813  
     public AcalEventInfo calculateAcalEvent(@WebParam(name = "acalEventId") String acalEventId, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 1814  
 
 1815  
     /**
 1816  
      * Rerieves a Holiday Type by Type key.
 1817  
      *
 1818  
      * @param holidayTypeKey the key of a holiday Type
 1819  
      * @param contextInfo    information containing the principalId and locale
 1820  
      *                       information about the caller of service operation
 1821  
      * @return the type requested
 1822  
      * @throws DoesNotExistException     holidayTypeKey is not found
 1823  
      * @throws InvalidParameterException contextInfo is not valid
 1824  
      * @throws MissingParameterException holidayTypeKey or contextInfo is
 1825  
      *                                   missing or null
 1826  
      * @throws OperationFailedException  unable to complete request
 1827  
      * @throws PermissionDeniedException an authorization failure occurred
 1828  
      */
 1829  
     public TypeInfo getHolidayType(@WebParam(name = "holidayTypeKey") String holidayTypeKey, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 1830  
 
 1831  
     /**
 1832  
      * Gets the valid Holiday types.
 1833  
      *
 1834  
      * @param contextInfo information containing the principalId and locale
 1835  
      *                    information about the caller of service operation
 1836  
      * @return a list of valid Holiday Types
 1837  
      * @throws InvalidParameterException contextInfo is not value
 1838  
      * @throws MissingParameterException contextInfo is missing or null
 1839  
      * @throws OperationFailedException  unable to complete request
 1840  
      * @throws PermissionDeniedException an authorization failure occurred
 1841  
      */
 1842  
     public List<TypeInfo> getHolidayTypes(@WebParam(name = "contextInfo") ContextInfo contextInfo) throws InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 1843  
 
 1844  
     /**
 1845  
      * This method returns the valid Holiday Types for the given HolidayCalendar
 1846  
      * Type.
 1847  
      *
 1848  
      * @param holidayCalendarTypeKey identifier for a HolidayCalendar Type
 1849  
      * @param contextInfo            information containing the principalId and
 1850  
      *                               locale information about the caller of
 1851  
      *                               service operation
 1852  
      * @return a list of valid Holiday Types
 1853  
      * @throws DoesNotExistException     holidayCalendarTypeKey not found
 1854  
      * @throws InvalidParameterException contextInfo is not valid
 1855  
      * @throws MissingParameterException holidayCalendarTypeKey or contextInfo
 1856  
      *                                   is missing or null
 1857  
      * @throws OperationFailedException  unable to complete request
 1858  
      * @throws PermissionDeniedException an authorization failure occurred
 1859  
      */
 1860  
     public List<TypeInfo> getHolidayTypesForHolidayCalendarType(@WebParam(name = "holidayCalendarTypeKey") String holidayCalendarTypeKey, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 1861  
 
 1862  
     /**
 1863  
      * Gets a Holiday State by key.
 1864  
      *
 1865  
      * @param holidayStateKey a key for a holiday State
 1866  
      * @param contextInfo     information containing the principalId and locale
 1867  
      *                        information about the caller of service operation
 1868  
      * @return the Holiday State requested
 1869  
      * @throws DoesNotExistException     holidayStateKey is not found
 1870  
      * @throws InvalidParameterException contextInfo is invalid
 1871  
      * @throws MissingParameterException holidayStateKey or contextInfo is
 1872  
      *                                   missing or null
 1873  
      * @throws OperationFailedException  unable to complete request
 1874  
      * @throws PermissionDeniedException an authorization failure occurred
 1875  
      */
 1876  
     public StateInfo getHolidayState(@WebParam(name = "holidayStateKey") String holidayStateKey, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 1877  
 
 1878  
     /**
 1879  
      * Gets the valid Holiday States.
 1880  
      *
 1881  
      * @param contextInfo information containing the principalId and locale
 1882  
      *                    information about the caller of service operation
 1883  
      * @return a list of valid Holiday States
 1884  
      * @throws InvalidParameterException contextInfo is not valid
 1885  
      * @throws MissingParameterException contextInfo is missing or null
 1886  
      * @throws OperationFailedException  unable to complete request
 1887  
      * @throws PermissionDeniedException an authorization failure occurred
 1888  
      */
 1889  
     public List<StateInfo> getHolidayStates(@WebParam(name = "contextInfo") ContextInfo contextInfo) throws InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 1890  
 
 1891  
     /**
 1892  
      * Retrieves a single Holiday by a Holiday Id.
 1893  
      *
 1894  
      * @param holidayId   the identifier for the Holiday to be retrieved
 1895  
      * @param contextInfo information containing the principalId and locale
 1896  
      *                    information about the caller of service operation
 1897  
      * @return the Holiday requested
 1898  
      * @throws DoesNotExistException     holidayIs is not found
 1899  
      * @throws InvalidParameterException contextInfo isnot valid
 1900  
      * @throws MissingParameterException holidayId or contextInfo is missing or
 1901  
      *                                   null
 1902  
      * @throws OperationFailedException  unable to complete request
 1903  
      * @throws PermissionDeniedException an authorization failure occurred
 1904  
      */
 1905  
     public HolidayInfo getHoliday(@WebParam(name = "holidayId") String holidayId, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 1906  
 
 1907  
     /**
 1908  
      * Retrieves a list Holidays from a list of Holiday Ids. The returned list
 1909  
      * may be in any order and if duplicate Ids are supplied, a unique set may
 1910  
      * or may not be returned.
 1911  
      *
 1912  
      * @param holidayIds  list of Holiday Ids
 1913  
      * @param contextInfo information containing the principalId and locale
 1914  
      *                    information about the caller of service operation
 1915  
      * @return a list of Holidays
 1916  
      * @throws DoesNotExistException     a holidayId in list was not found
 1917  
      * @throws InvalidParameterException contextInfo is not valid
 1918  
      * @throws MissingParameterException holidayIds, an Id in holidayIds, or
 1919  
      *                                   contextInfo is missing or null
 1920  
      * @throws OperationFailedException  unable to complete request
 1921  
      * @throws PermissionDeniedException an authorization failure occurred
 1922  
      */
 1923  
     public List<HolidayInfo> getHolidaysByIds(@WebParam(name = "holidayIds") List<String> holidayIds, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 1924  
 
 1925  
     /**
 1926  
      * Retrieves a list of Holiday Ids by Type.
 1927  
      *
 1928  
      * @param holidayTypeKey an identifier for an Holiday Type
 1929  
      * @param contextInfo    information containing the principalId and locale
 1930  
      *                       information about the caller of service operation
 1931  
      * @return a list of Holidays matching holidayTypeKey or an empty list if
 1932  
      *         none found
 1933  
      * @throws DoesNotExistException     a holidayTypeKey was not found
 1934  
      * @throws InvalidParameterException contextInfo is not valid
 1935  
      * @throws MissingParameterException holidayTypeKey or contextInfo is
 1936  
      *                                   missing or null
 1937  
      * @throws OperationFailedException  unable to complete request
 1938  
      * @throws PermissionDeniedException an authorization failure occurred
 1939  
      */
 1940  
     public List<String> getHolidayIdsByType(@WebParam(name = "holidayTypeKey") String holidayTypeKey, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 1941  
 
 1942  
     /**
 1943  
      * Retrieves a list of Holidays immediately mapped to a HolidayCalendar
 1944  
      * ordered by date.
 1945  
      *
 1946  
      * @param holidayCalendarId an identifier for a HolidayCalendar
 1947  
      * @param contextInfo       information containing the principalId and
 1948  
      *                          locale information about the caller of service
 1949  
      *                          operation
 1950  
      * @return a list of Holidays mapped to the given HolidayCalendar
 1951  
      * @throws DoesNotExistException     holidayCalendarId is not found
 1952  
      * @throws InvalidParameterException contextInfo is not valid
 1953  
      * @throws MissingParameterException holidayCalendarId or contextInfo is
 1954  
      *                                   missing or null
 1955  
      * @throws OperationFailedException  unable to complete request
 1956  
      * @throws PermissionDeniedException authorization failure
 1957  
      */
 1958  
     public List<HolidayInfo> getHolidaysForHolidayCalendar(@WebParam(name = "holidayCalendarId") String holidayCalendarId, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 1959  
 
 1960  
     /**
 1961  
      * Retrieves a list of Holidays immediately mapped to a HolidayCalendar that
 1962  
      * fall within the given date range inclusive ordered by date.
 1963  
      *
 1964  
      * @param holidayCalendarId an identifier for a HolidayCalendar
 1965  
      * @param startDate         the start of date range
 1966  
      * @param endDate           the end of date range
 1967  
      * @param contextInfo       information containing the principalId and
 1968  
      *                          locale information about the caller of service
 1969  
      *                          operation
 1970  
      * @return a list of Holidays for the given HolidayCalendar in the given
 1971  
      *         dates
 1972  
      * @throws DoesNotExistException     holidayCalendarId is not found
 1973  
      * @throws InvalidParameterException contextInfo is not valid
 1974  
      * @throws MissingParameterException holidayCalendarId, startDate, endDate,
 1975  
      *                                   or contextInfo is missing or null
 1976  
      * @throws OperationFailedException  unable to complete request
 1977  
      * @throws PermissionDeniedException authorization failure
 1978  
      */
 1979  
     public List<HolidayInfo> getHolidaysForHolidayCalendarByDate(@WebParam(name = "holidayCalendarId") String holidayCalendarId, @WebParam(name = "startDate") Date startDate, @WebParam(name = "endDate") Date endDate, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 1980  
 
 1981  
     /**
 1982  
      * Gets a list of holidays for a particular Academic Calendar further
 1983  
      * qualified by the dates. Can be used to get holidays for a term or any
 1984  
      * time period within the specified dates
 1985  
      *
 1986  
      * @param academicCalendarId an identifier for an Academic Calendar
 1987  
      * @param startDate                  the start of date range
 1988  
      * @param endDate                    the end of date range
 1989  
      * @param contextInfo                information containing the principalId and
 1990  
      *                                   locale information about the caller of service
 1991  
      *                                   operation
 1992  
      * @return a list of holidays for a particular Academic Calendar in the given dates
 1993  
      * @throws DoesNotExistException     academicCalendarId is not found
 1994  
      * @throws InvalidParameterException If the academicCalendarId is invalid or
 1995  
      *                                   the dates are out of the range
 1996  
      * @throws MissingParameterException Missing dates or academic Calendar Id
 1997  
      * @throws OperationFailedException  unable to complete request for any
 1998  
      *                                   reason
 1999  
      * @throws PermissionDeniedException authorization failure
 2000  
      */
 2001  
     public List<HolidayInfo> getHolidaysByDateForAcademicCalendar(@WebParam(name = "academicCalendarId") String academicCalendarId, @WebParam(name = "startDate") Date startDate, @WebParam(name = "endDate") Date endDate, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 2002  
 
 2003  
     /**
 2004  
      * Gets a list of Holidays impacted by a change to a given Holiday. Rules
 2005  
      * may exist to calculate key dates based on a Holiday Type. Management of
 2006  
      * these calculation rules are not at this time exposed in this service.
 2007  
      *
 2008  
      * @param holidayId   an identifier for a Holiday
 2009  
      * @param contextInfo information containing the principalId and locale
 2010  
      *                    information about the caller of service operation
 2011  
      * @return a list of Holidays impacted by the given Holiday
 2012  
      * @throws DoesNotExistException     keyDateId is not found
 2013  
      * @throws InvalidParameterException contextInfo is not valid
 2014  
      * @throws MissingParameterException holidayId or contextInfo is missing or
 2015  
      *                                   null
 2016  
      * @throws OperationFailedException  unable to complete request
 2017  
      * @throws PermissionDeniedException an authorization failure occurred
 2018  
      * @deprecated Holidays are to be calculated when calender is copied.
 2019  
      */
 2020  
     public List<HolidayInfo> getImpactedHolidays(@WebParam(name = "holidayId") String holidayId, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 2021  
 
 2022  
     /**
 2023  
      * Searches for Holidays that meet the given search criteria.
 2024  
      *
 2025  
      * @param criteria    the search criteria
 2026  
      * @param contextInfo information containing the principalId and locale
 2027  
      *                    information about the caller of service operation
 2028  
      * @return a list of Holiday identifiers matching the criteria
 2029  
      * @throws InvalidParameterException criteria or contextInfo is not valid
 2030  
      * @throws MissingParameterException criteria or contextInfo is missing or
 2031  
      *                                   null
 2032  
      * @throws OperationFailedException  unable to complete request
 2033  
      * @throws PermissionDeniedException an authorization failure occurred
 2034  
      */
 2035  
     public List<String> searchForHolidayIds(@WebParam(name = "criteria") QueryByCriteria criteria, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 2036  
 
 2037  
     /**
 2038  
      * Searches for Holidays that meet the given search criteria.
 2039  
      *
 2040  
      * @param criteria    the search criteria
 2041  
      * @param contextInfo information containing the principalId and locale
 2042  
      *                    information about the caller of service operation
 2043  
      * @return a list of Holidays matching the criteria
 2044  
      * @throws InvalidParameterException criteria or contextInfo is not valid
 2045  
      * @throws MissingParameterException criteria or contextInfo is missing or
 2046  
      *                                   null
 2047  
      * @throws OperationFailedException  unable to complete request
 2048  
      * @throws PermissionDeniedException an authorization failure occurred
 2049  
      */
 2050  
     public List<HolidayInfo> searchForHolidays(@WebParam(name = "criteria") QueryByCriteria criteria, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 2051  
 
 2052  
     /**
 2053  
      * Validates a Holiday. Depending on the value of validationType, this
 2054  
      * validation could be limited to tests on just the current Holiday and its
 2055  
      * directly contained subobjects or expanded to perform all tests related to
 2056  
      * this Holiday. If an identifier is present for the Holiday (and/or one of
 2057  
      * its contained sub-objects) and a record is found for that identifier, the
 2058  
      * validation checks if the Holiday can be updated to the new values. If an
 2059  
      * identifier is not present or a record does not exist, the validation
 2060  
      * checks if the Holiday with the given data can be created.
 2061  
      *
 2062  
      * @param validationTypeKey the identifier for the validation Type
 2063  
      * @param holidayCalendarId the identifier for the HolidayCalendar
 2064  
      * @param holidayTypeKey    the identifier for the Holiday Type to be
 2065  
      *                          validated
 2066  
      * @param holidayInfo       the Holiday to be validated
 2067  
      * @param contextInfo       information containing the principalId and
 2068  
      *                          locale information about the caller of service
 2069  
      *                          operation
 2070  
      * @return a list of validation results or an empty list if validation
 2071  
      *         succeeded
 2072  
      * @throws DoesNotExistException     validationTypeKey, holidayCalendarId,
 2073  
      *                                   or holidayTypeKey is not found
 2074  
      * @throws InvalidParameterException holidayInfo or contextInfo is not
 2075  
      *                                   valid
 2076  
      * @throws MissingParameterException validationTypeKey, holidayCalendarId,
 2077  
      *                                   holidayTypeKey, holidayInfo, or
 2078  
      *                                   contextInfo is missing or null
 2079  
      * @throws OperationFailedException  unable to complete request
 2080  
      * @throws PermissionDeniedException an authorization failure occurred
 2081  
      */
 2082  
     public List<ValidationResultInfo> validateHoliday(@WebParam(name = "validationTypeKey") String validationTypeKey, @WebParam(name = "holidayCalendarId") String holidayCalendarId, @WebParam(name = "holidayTypeKey") String holidayTypeKey, @WebParam(name = "holidayInfo") HolidayInfo holidayInfo, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 2083  
 
 2084  
     /**
 2085  
      * Creates a new Holiday. The Holiday Id, Type, and Meta information may not
 2086  
      * be set in the supplied data object.
 2087  
      *
 2088  
      * @param holidayCalendarId the identifier for the HolidayCalendar in which
 2089  
      *                          to create the Holiday
 2090  
      * @param holidayTypeKey    the identifier for the Type of Holiday to be
 2091  
      *                          created
 2092  
      * @param holidayInfo       the data with which to create the Holiday
 2093  
      * @param contextInfo       information containing the principalId and
 2094  
      *                          locale information about the caller of service
 2095  
      *                          operation
 2096  
      * @return the new Holiday
 2097  
      * @throws DataValidationErrorException supplied data is invalid
 2098  
      * @throws DoesNotExistException        holidayCalendarId is not found or
 2099  
      *                                      holidayTypeKey does not exist or is
 2100  
      *                                      not supported
 2101  
      * @throws InvalidParameterException    holidayInfo or contextInfo is not
 2102  
      *                                      valid
 2103  
      * @throws MissingParameterException    holidayCalendarId, holidayTypeKey,
 2104  
      *                                      holidayInfo, or contextInfo is
 2105  
      *                                      missing or null
 2106  
      * @throws OperationFailedException     unable to complete request
 2107  
      * @throws PermissionDeniedException    an authorization failure occurred
 2108  
      * @throws ReadOnlyException            an attempt at supplying information
 2109  
      *                                      designated as read only
 2110  
      */
 2111  
     public HolidayInfo createHoliday(@WebParam(name = "holidayCalendarId") String holidayCalendarId, @WebParam(name = "holidayTypeKey") String holidayTypeKey, @WebParam(name = "holidayInfo") HolidayInfo holidayInfo, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DataValidationErrorException, DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException, ReadOnlyException;
 2112  
 
 2113  
     /**
 2114  
      * Updates an existing Holiday. The Holiday Id, Type, and Meta information
 2115  
      * may not be changed.
 2116  
      *
 2117  
      * @param holidayId   the identifier for the Holiday to be updated
 2118  
      * @param holidayInfo the new data for the Holiday
 2119  
      * @param contextInfo information containing the principalId and locale
 2120  
      *                    information about the caller of service operation
 2121  
      * @return the updated Holiday
 2122  
      * @throws DataValidationErrorException supplied data is invalid
 2123  
      * @throws DoesNotExistException        HolidayId is not found
 2124  
      * @throws InvalidParameterException    holidayInfo or contextInfo is not
 2125  
      *                                      valid
 2126  
      * @throws MissingParameterException    holidayId, holidayInfo, or
 2127  
      *                                      contextInfo is missing or null
 2128  
      * @throws OperationFailedException     unable to complete request
 2129  
      * @throws PermissionDeniedException    an authorization failure occurred
 2130  
      * @throws ReadOnlyException           an attempt at changing information
 2131  
      *                                      deisgnated as read only
 2132  
      * @throws VersionMismatchException     an optimistic locking failure or the
 2133  
      *                                      action was attempted on an out of
 2134  
      *                                      date version
 2135  
      */
 2136  
     public HolidayInfo updateHoliday(@WebParam(name = "holidayId") String holidayId, @WebParam(name = "holidayInfo") HolidayInfo holidayInfo, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DataValidationErrorException, DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException, ReadOnlyException, VersionMismatchException;
 2137  
 
 2138  
     /**
 2139  
      * Deletes an existing Holiday.
 2140  
      *
 2141  
      * @param holidayId   the identifier for the Holiday to be deleted
 2142  
      * @param contextInfo information containing the principalId and locale
 2143  
      *                    information about the caller of service operation
 2144  
      * @return the status of the operation. This must always be true.
 2145  
      * @throws DoesNotExistException     HolidayId is not found
 2146  
      * @throws InvalidParameterException contextInfo is not valid
 2147  
      * @throws MissingParameterException holidayId or contextInfo is missing or
 2148  
      *                                   null
 2149  
      * @throws OperationFailedException  unable to complete request
 2150  
      * @throws PermissionDeniedException an authorization failure occurred
 2151  
      */
 2152  
     public StatusInfo deleteHoliday(@WebParam(name = "holidayId") String holidayId, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 2153  
 
 2154  
     /**
 2155  
      * Calculates the dates in the Holiday based on a rule attached to the
 2156  
      * Holiday Type. If there is no rule available for the Type of the given
 2157  
      * Holiday, then no changes to the Holiday occur.
 2158  
      *
 2159  
      * @param holidayId   an identifier for a Holiday
 2160  
      * @param contextInfo information containing the principalId and locale
 2161  
      *                    information about the caller of service operation
 2162  
      * @return the Holiday with the calculated dates
 2163  
      * @throws DoesNotExistException     holidayId is not found
 2164  
      * @throws InvalidParameterException contextInfo is not valid
 2165  
      * @throws MissingParameterException holidayId or contextInfo is missing or
 2166  
      *                                   null
 2167  
      * @throws OperationFailedException  unable to complete request
 2168  
      * @throws PermissionDeniedException an authorization failure occurred
 2169  
      * @deprecated Holidays are to be calculated when calender is copied.
 2170  
      */
 2171  
     public HolidayInfo calculateHoliday(@WebParam(name = "holidayId") String holidayId, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 2172  
 
 2173  
     /**
 2174  
      * Calculates the number of instructional days for a Term. The number of
 2175  
      * instructional days is the number of class days in a Term minus the
 2176  
      * non-instructional holidays on the related holiday calendar.
 2177  
      *
 2178  
      * @param termId      an identifier for a Term
 2179  
      * @param contextInfo information containing the principalId and locale
 2180  
      *                    information about the caller of service operation
 2181  
      * @return the number of instructional days in the given Term
 2182  
      * @throws DoesNotExistException     termId is not found
 2183  
      * @throws InvalidParameterException contextInfo is not valid
 2184  
      * @throws MissingParameterException termId or contextInfo is missing or
 2185  
      *                                   null
 2186  
      * @throws OperationFailedException  unable to complete request
 2187  
      * @throws PermissionDeniedException authorization failure
 2188  
      */
 2189  
     public Integer getInstructionalDaysForTerm(@WebParam(name = "termId") String termId, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 2190  
 
 2191  
     /**
 2192  
      * Convenience method added for core-slice development to get a current
 2193  
      * term. The method will be redesigned later to be more generic so that it
 2194  
      * finds the unique term based on process key and academic calendar -
 2195  
      * "current" is a misnomer.
 2196  
      *
 2197  
      * @param usageKey    we don't know what this means
 2198  
      * @param contextInfo information containing the principalId and locale
 2199  
      *                    information about the caller of service operation
 2200  
      * @return a list of "current" Terms
 2201  
      * @throws DoesNotExistException     usageKey is not found
 2202  
      * @throws InvalidParameterException contextInfo is not valid
 2203  
      * @throws MissingParameterException usageKey or contextInfo is missing or
 2204  
      *                                   null
 2205  
      * @throws OperationFailedException  unable to complete request
 2206  
      * @throws PermissionDeniedException authorization failure
 2207  
      * @deprecated This was a hack for core-slice but it is being used by
 2208  
      *             MyPlan.
 2209  
      */
 2210  
     public List<TermInfo> getCurrentTerms(@WebParam(name = "usageKey") String usageKey, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 2211  
 }