Coverage Report - org.kuali.student.r2.core.appointment.service.AppointmentService
 
Classes in this File Line Coverage Branch Coverage Complexity
AppointmentService
N/A
N/A
1
 
 1  
 /*
 2  
  * Copyright 2012 The Kuali Foundation Licensed under the
 3  
  *  Educational Community License, Version 2.0 (the "License"); you may
 4  
  *  not use this file except in compliance with the License. You may
 5  
  *  obtain a copy of the License at
 6  
  *
 7  
  *   http://www.osedu.org/licenses/ECL-2.0
 8  
  *
 9  
  *  Unless required by applicable law or agreed to in writing,
 10  
  *  software distributed under the License is distributed on an "AS IS"
 11  
  *  BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
 12  
  *  or implied. See the License for the specific language governing
 13  
  *  permissions and limitations under the License.
 14  
  */
 15  
 
 16  
 package org.kuali.student.r2.core.appointment.service;
 17  
 
 18  
 import org.kuali.rice.core.api.criteria.QueryByCriteria;
 19  
 import org.kuali.student.r2.common.dto.ContextInfo;
 20  
 import org.kuali.student.r2.common.dto.StatusInfo;
 21  
 import org.kuali.student.r2.common.dto.ValidationResultInfo;
 22  
 import org.kuali.student.r2.common.exceptions.DataValidationErrorException;
 23  
 import org.kuali.student.r2.common.exceptions.DependentObjectsExistException;
 24  
 import org.kuali.student.r2.common.exceptions.DoesNotExistException;
 25  
 import org.kuali.student.r2.common.exceptions.InvalidParameterException;
 26  
 import org.kuali.student.r2.common.exceptions.MissingParameterException;
 27  
 import org.kuali.student.r2.common.exceptions.OperationFailedException;
 28  
 import org.kuali.student.r2.common.exceptions.PermissionDeniedException;
 29  
 import org.kuali.student.r2.common.exceptions.ReadOnlyException;
 30  
 import org.kuali.student.r2.common.exceptions.VersionMismatchException;
 31  
 import org.kuali.student.r2.core.appointment.constants.AppointmentServiceConstants;
 32  
 import org.kuali.student.r2.core.appointment.dto.AppointmentInfo;
 33  
 import org.kuali.student.r2.core.appointment.dto.AppointmentSlotInfo;
 34  
 import org.kuali.student.r2.core.appointment.dto.AppointmentWindowInfo;
 35  
 
 36  
 import javax.jws.WebParam;
 37  
 import javax.jws.WebService;
 38  
 import javax.jws.soap.SOAPBinding;
 39  
 import java.util.List;
 40  
 
 41  
 /**
 42  
  * @Version 1.0
 43  
  * @Author Sri komandur@uw.edu
 44  
  */
 45  
 @WebService(name = "AppointmentService", serviceName = "AppointmentService", portName = "AppointmentService", targetNamespace = AppointmentServiceConstants.NAMESPACE)
 46  
 @SOAPBinding(style = SOAPBinding.Style.DOCUMENT, use = SOAPBinding.Use.LITERAL, parameterStyle = SOAPBinding.ParameterStyle.WRAPPED)
 47  
 public interface AppointmentService {
 48  
 
 49  
     /**
 50  
      * Retrieves an Appointment
 51  
      *
 52  
      * @param appointmentId a unique Id of an Appointment
 53  
      * @param contextInfo   Context information containing the principalId and
 54  
      *                      locale information about the caller of service
 55  
      *                      operation
 56  
      * @return an Appointment
 57  
      * @throws DoesNotExistException     appointmentId not found
 58  
      * @throws InvalidParameterException invalid contextInfo
 59  
      * @throws MissingParameterException appointmentId or contextInfo is missing
 60  
      *                                   or null
 61  
      * @throws OperationFailedException  unable to complete request
 62  
      * @throws PermissionDeniedException an authorization failure occurred
 63  
      */
 64  
     public AppointmentInfo getAppointment(@WebParam(name = "appointmentId") String appointmentId, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 65  
 
 66  
     /**
 67  
      * Retrieves a list of Appointments corresponding to the given list of
 68  
      * Appointment Ids.
 69  
      *
 70  
      * @param appointmentIds list of Appointments to be retrieved
 71  
      * @param contextInfo    Context information containing the principalId and
 72  
      *                       locale information about the caller of service
 73  
      *                       operation
 74  
      * @return a list of Appointments
 75  
      * @throws DoesNotExistException     a appointmentId in list not found
 76  
      * @throws InvalidParameterException invalid contextInfo
 77  
      * @throws MissingParameterException appointmentId or contextInfo is
 78  
      *                                   missing or null
 79  
      * @throws OperationFailedException  unable to complete request
 80  
      * @throws PermissionDeniedException an authorization failure occurred
 81  
      */
 82  
     public List<AppointmentInfo> getAppointmentsByIds(@WebParam(name = "appointmentIds") List<String> appointmentIds, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 83  
 
 84  
     /**
 85  
      * Retrieves a list of Appointment Ids by Appointment Type.
 86  
      *
 87  
      * @param appointmentTypeKey an identifier for an Appointment Type
 88  
      * @param contextInfo        Context information containing the principalId
 89  
      *                           and locale information about the caller of
 90  
      *                           service operation
 91  
      * @return a list of Appointment identifiers matching appointmentTypeKey or
 92  
      *         an empty list if none found
 93  
      * @throws InvalidParameterException invalid contextInfo
 94  
      * @throws MissingParameterException appointmentTypeKey or contextInfo is
 95  
      *                                   missing or null
 96  
      * @throws OperationFailedException  unable to complete request
 97  
      * @throws PermissionDeniedException an authorization failure occurred
 98  
      */
 99  
     public List<String> getAppointmentIdsByType(@WebParam(name = "appointmentTypeKey") String appointmentTypeKey, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 100  
 
 101  
     /**
 102  
      * Retrieves all Appointments to the given AppointmentSlot
 103  
      *
 104  
      * @param appointmentSlotId the identifier for the AppointmentSlot
 105  
      * @param contextInfo       Context information containing the principalId
 106  
      *                          and locale information about the caller of
 107  
      *                          service operation
 108  
      * @return a list of Appointments to the given AppointmentSlot or an empty
 109  
      *         list if none found
 110  
      * @throws InvalidParameterException contextInfo is not valid
 111  
      * @throws MissingParameterException appointmentSlotId or contextInfo is
 112  
      *                                   missing or null
 113  
      * @throws OperationFailedException  unable to complete request
 114  
      * @throws PermissionDeniedException an authorization failure occurred
 115  
      */
 116  
     public List<AppointmentInfo> getAppointmentsBySlot(@WebParam(name = "appointmentSlotId") String appointmentSlotId, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 117  
 
 118  
     /**
 119  
      * Retrieves all Appointments to the given Person
 120  
      *
 121  
      * @param personId    the identifier for the Person
 122  
      * @param contextInfo Context information containing the principalId and
 123  
      *                    locale information about the caller of service
 124  
      *                    operation
 125  
      * @return a list of Appointments to the given Person or an empty list if
 126  
      *         none found
 127  
      * @throws InvalidParameterException invalid contextInfo
 128  
      * @throws MissingParameterException personId or contextInfo is missing or
 129  
      *                                   null
 130  
      * @throws OperationFailedException  unable to complete request
 131  
      * @throws PermissionDeniedException an authorization failure occurred
 132  
      */
 133  
     public List<String> getAppointmentIdsByPerson(@WebParam(name = "personId") String personId, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 134  
 
 135  
     /**
 136  
      * Retrieves all Appointments to the given Person and Slot
 137  
      *
 138  
      * @param personId          the identifier for the Person
 139  
      * @param appointmentSlotId the identifier for the AppointmentSlot
 140  
      * @param contextInfo       Context information containing the principalId
 141  
      *                          and locale information about the caller of
 142  
      *                          service operation
 143  
      * @return a list of Appointments to the given Person and Slot or an empty
 144  
      *         list if none found
 145  
      * @throws InvalidParameterException invalid contextInfo
 146  
      * @throws MissingParameterException personId, appointmentSlotId or contextInfo is missing or
 147  
      *                                   null
 148  
      * @throws OperationFailedException  unable to complete request
 149  
      * @throws PermissionDeniedException an authorization failure occurred
 150  
      */
 151  
     public List<AppointmentInfo> getAppointmentsByPersonAndSlot(@WebParam(name = "personId") String personId, @WebParam(name = "appointmentSlotId") String appointmentSlotId, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 152  
 
 153  
     /**
 154  
      * Searches for Appointments based on the criteria and returns a list of
 155  
      * Appointment identifiers which match the search criteria.
 156  
      *
 157  
      * @param criteria    the search criteria
 158  
      * @param contextInfo Context information containing the principalId and
 159  
      *                    locale information about the caller of service
 160  
      *                    operation
 161  
      * @return list of Appointment Ids
 162  
      * @throws InvalidParameterException invalid contextInfo
 163  
      * @throws MissingParameterException criteria, contextInfo is missing or
 164  
      *                                   null
 165  
      * @throws OperationFailedException  unable to complete request
 166  
      * @throws PermissionDeniedException an authorization failure occurred
 167  
      */
 168  
     public List<String> searchForAppointmentIds(@WebParam(name = "criteria") QueryByCriteria criteria, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 169  
 
 170  
     /**
 171  
      * Searches for Appointments based on the criteria and returns a list of
 172  
      * Appointments which match the search criteria.
 173  
      *
 174  
      * @param criteria    the search criteria
 175  
      * @param contextInfo Context information containing the principalId and
 176  
      *                    locale information about the caller of service
 177  
      *                    operation
 178  
      * @return list of Appointment information
 179  
      * @throws InvalidParameterException invalid contextInfo
 180  
      * @throws MissingParameterException criteria, contextInfo is missing or
 181  
      *                                   null
 182  
      * @throws OperationFailedException  unable to complete request
 183  
      * @throws PermissionDeniedException an authorization failure occurred
 184  
      */
 185  
     public List<AppointmentInfo> searchForAppointments(@WebParam(name = "criteria") QueryByCriteria criteria, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 186  
 
 187  
     /**
 188  
      * Validates an Appointment. Depending on the value of validationType, this
 189  
      * validation could be limited to tests on just the current Appointment and
 190  
      * its directly contained sub-objects or expanded to perform all tests
 191  
      * related to this Appointment. If an identifier is present for the
 192  
      * Appointment (and/or one of its contained sub-objects) and a record is
 193  
      * found for that identifier, the validation checks if the Appointment can
 194  
      * be updated to the new values. If an identifier is not present or a record
 195  
      * does not exist, the validation checks if the object with the given data
 196  
      * can be created.
 197  
      *
 198  
      * @param validationTypeKey  the identifier for the validation Type
 199  
      * @param personId           identifier of the person
 200  
      * @param appointmentSlotId  appointment slot of the person
 201  
      * @param appointmentTypeKey appointment type
 202  
      * @param appointmentInfo    detailed information about the appointment
 203  
      * @param contextInfo        Context information containing the principalId
 204  
      *                           and locale information about the caller of
 205  
      *                           service operation
 206  
      * @return a list of validation results or an empty list if validation
 207  
      *         succeeded
 208  
      * @throws DoesNotExistException     validationTypeKey, personId,
 209  
      *                                   appointmentSlotId or appointmentTypeKey
 210  
      *                                   not found
 211  
      * @throws InvalidParameterException invalid appointmentInfo or contextInfo
 212  
      * @throws MissingParameterException validationTypeKey, personId,
 213  
      *                                   appointmentSlotId, appointmentTypeKey
 214  
      *                                   or contextInfo is missing or null
 215  
      * @throws OperationFailedException  unable to complete request
 216  
      * @throws PermissionDeniedException an authorization failure occurred
 217  
      */
 218  
     public List<ValidationResultInfo> validateAppointment(@WebParam(name = "validationTypeKey") String validationTypeKey, @WebParam(name = "personId") String personId, @WebParam(name = "appointmentSlotId") String appointmentSlotId, @WebParam(name = "appointmentTypeKey") String appointmentTypeKey, @WebParam(name = "appointmentInfo") AppointmentInfo appointmentInfo, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 219  
 
 220  
     /**
 221  
      * Creates an Appointment. Most of the time the personId is from the
 222  
      * Population in the AppointmentWindow.
 223  
      *
 224  
      * @param personId           identifier of the person
 225  
      * @param appointmentSlotId  appointment slot of the person
 226  
      * @param appointmentTypeKey appointment type
 227  
      * @param appointmentInfo    detailed information about the appointment
 228  
      * @param contextInfo        Context information containing the principalId
 229  
      *                           and locale information about the caller of
 230  
      *                           service operation
 231  
      * @return detailed information about the appointment
 232  
      * @throws DataValidationErrorException supplied data is invalid
 233  
      * @throws DoesNotExistException        appointmentSlotId or appointmentTypeKey
 234  
      *                                      does not exist
 235  
      * @throws InvalidParameterException    invalid appointmentInfo or
 236  
      *                                      contextInfo
 237  
      * @throws MissingParameterException    personId, appointmentSlotId,
 238  
      *                                      appointmentTypeKey or contextInfo is
 239  
      *                                      missing or null
 240  
      * @throws OperationFailedException     unable to complete request
 241  
      * @throws PermissionDeniedException    an authorization failure occurred
 242  
      * @throws ReadOnlyException            an attempt at supplying information
 243  
      *                                      designated as read only
 244  
      */
 245  
     public AppointmentInfo createAppointment(@WebParam(name = "personId") String personId, @WebParam(name = "appointmentSlotId") String appointmentSlotId, @WebParam(name = "appointmentTypeKey") String appointmentTypeKey, @WebParam(name = "appointmentInfo") AppointmentInfo appointmentInfo, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DataValidationErrorException, DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException, ReadOnlyException;
 246  
 
 247  
     /**
 248  
      * Generate Appointments for an AppointmentWindow.
 249  
      *
 250  
      * @param appointmentWindowId appointment window to which these appointments belong
 251  
      * @param appointmentTypeKey  appointment type
 252  
      * @param contextInfo         Context information containing the principalId
 253  
      *                            and locale information about the caller of
 254  
      *                            service operation
 255  
      * @return status of the operation (success, failed)
 256  
      * @throws DataValidationErrorException supplied data is invalid
 257  
      * @throws DoesNotExistException        appointmentWindowId or appointmentTypeKey
 258  
      *                                      does not exist
 259  
      * @throws InvalidParameterException    invalid appointmentInfo or
 260  
      *                                      contextInfo
 261  
      * @throws MissingParameterException    personId, appointmentWindowId,
 262  
      *                                      appointmentTypeKey or contextInfo is
 263  
      *                                      missing or null
 264  
      * @throws OperationFailedException     unable to complete request
 265  
      * @throws PermissionDeniedException    an authorization failure occurred
 266  
      * @throws ReadOnlyException            an attempt at supplying information
 267  
      *                                      designated as read only
 268  
      * @impl AppointmentSlots are assumed to be already generated for the
 269  
      * AppointmentWindow
 270  
      * @impl Return the number of appointments created as part of StatusInfo
 271  
      * message field
 272  
      */
 273  
     public StatusInfo generateAppointmentsByWindow(@WebParam(name = "appointmentWindowId") String appointmentWindowId, @WebParam(name = "appointmentTypeKey") String appointmentTypeKey, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DataValidationErrorException, DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException, ReadOnlyException;
 274  
 
 275  
     /**
 276  
      * Updates a relationship between a person and their appointment.
 277  
      *
 278  
      * @param appointmentId   identifier of the appointment relationship to be
 279  
      *                        updated
 280  
      * @param appointmentInfo information about the object appointmentInfo to be
 281  
      *                        updated
 282  
      * @param contextInfo     context information containing the principalId and
 283  
      *                        locale information about the caller of service
 284  
      *                        operation
 285  
      * @return updated appointment relationship information
 286  
      * @throws DataValidationErrorException one or more values invalid for this
 287  
      *                                      operation
 288  
      * @throws DoesNotExistException        appointmentId not found
 289  
      * @throws InvalidParameterException    invalid appointmentInfo or
 290  
      *                                      contextInfo
 291  
      * @throws MissingParameterException    appointmentId, appointmentInfo or
 292  
      *                                      contextInfo is missing or null
 293  
      * @throws OperationFailedException     unable to complete request
 294  
      * @throws PermissionDeniedException    an authorization failure occurred
 295  
      * @throws ReadOnlyException            an attempt at supplying information
 296  
      *                                      designated as read-only
 297  
      * @throws VersionMismatchException     optimistic locking failure or the
 298  
      *                                      action was attempted on an out of
 299  
      *                                      date version
 300  
      */
 301  
     public AppointmentInfo updateAppointment(@WebParam(name = "appointmentId") String appointmentId, @WebParam(name = "appointmentInfo") AppointmentInfo appointmentInfo, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DataValidationErrorException, DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException, ReadOnlyException, VersionMismatchException;
 302  
 
 303  
     /**
 304  
      * Removes appointment relationship between a person and a slot.
 305  
      *
 306  
      * @param appointmentId object Appointment relationship identifier
 307  
      * @param contextInfo   context information containing the principalId and
 308  
      *                      locale information about the caller of service
 309  
      *                      operation
 310  
      * @return status of the operation (success, failed)
 311  
      * @throws DoesNotExistException     appointmentId not found
 312  
      * @throws InvalidParameterException invalid contextInfo
 313  
      * @throws MissingParameterException appointmentId or contextInfo is missing
 314  
      *                                   or null
 315  
      * @throws OperationFailedException  unable to complete request
 316  
      * @throws PermissionDeniedException an authorization failure occurred
 317  
      */
 318  
     public StatusInfo deleteAppointment(@WebParam(name = "appointmentId") String appointmentId, 
 319  
             @WebParam(name = "contextInfo") ContextInfo contextInfo) 
 320  
             throws DoesNotExistException, InvalidParameterException, 
 321  
             MissingParameterException, OperationFailedException, PermissionDeniedException;
 322  
 
 323  
     /**
 324  
      * Delete all appointments connected to this slot.
 325  
      * 
 326  
      * This does NOT delete the slot itself.
 327  
      *
 328  
      * @param appointmentSlotId object Appointment relationship identifier
 329  
      * @param contextInfo       context information containing the principalId
 330  
      *                          and locale information about the caller of
 331  
      *                          service operation
 332  
      * @return status of the operation (success, failed)
 333  
      * @throws DoesNotExistException     appointmentSlotId not found
 334  
      * @throws InvalidParameterException invalid contextInfo
 335  
      * @throws MissingParameterException appointmentSlotId or contextInfo is
 336  
      *                                   missing or null
 337  
      * @throws OperationFailedException  unable to complete request
 338  
      * @throws PermissionDeniedException an authorization failure occurred
 339  
      * @impl capture number of appointments deleted in the message field of
 340  
      * StatusInfo
 341  
      */
 342  
     public StatusInfo deleteAppointmentsBySlot(@WebParam(name = "appointmentSlotId") String appointmentSlotId, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 343  
 
 344  
     /**
 345  
      * Delete all appointments connected to the AppointmentWindow
 346  
      * 
 347  
      * This chains through and deletes all appointments attached to slots that
 348  
      * are attached to the window.
 349  
      * 
 350  
      * This does NOT delete the slots.
 351  
      *
 352  
      * @param appointmentWindowId object Appointment relationship identifier
 353  
      * @param contextInfo         context information containing the principalId
 354  
      *                            and locale information about the caller of
 355  
      *                            service operation
 356  
      * @return status of the operation (success, failed)
 357  
      * @throws DoesNotExistException     appointmentWindowId not found
 358  
      * @throws InvalidParameterException invalid contextInfo
 359  
      * @throws MissingParameterException appointmentWindowId or contextInfo is
 360  
      *                                   missing or null
 361  
      * @throws OperationFailedException  unable to complete request
 362  
      * @throws PermissionDeniedException an authorization failure occurred
 363  
      * @impl capture number of appointments deleted in the message field of
 364  
      * StatusInfo
 365  
      */
 366  
     public StatusInfo deleteAppointmentsByWindow(@WebParam(name = "appointmentWindowId") String appointmentWindowId, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 367  
 
 368  
     /**
 369  
      * Retrieves an AppointmentWindow
 370  
      *
 371  
      * @param appointmentWindowId a unique Id of an AppointmentWindow
 372  
      * @param contextInfo         Context information containing the principalId
 373  
      *                            and locale information about the caller of
 374  
      *                            service operation
 375  
      * @return an AppointmentWindow
 376  
      * @throws DoesNotExistException     appointmentWindowId not found
 377  
      * @throws InvalidParameterException invalid contextInfo
 378  
      * @throws MissingParameterException appointmentWindowId or contextInfo is
 379  
      *                                   missing or null
 380  
      * @throws OperationFailedException  unable to complete request
 381  
      * @throws PermissionDeniedException an authorization failure occurred
 382  
      */
 383  
     public AppointmentWindowInfo getAppointmentWindow(@WebParam(name = "appointmentWindowId") String appointmentWindowId, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 384  
 
 385  
     /**
 386  
      * Retrieves a list of AppointmentWindows corresponding to the given list of
 387  
      * AppointmentWindow Ids.
 388  
      *
 389  
      * @param appointmentWindowIds list of AppointmentWindows to be retrieved
 390  
      * @param contextInfo          Context information containing the
 391  
      *                             principalId and locale information about the
 392  
      *                             caller of service operation
 393  
      * @return a list of AppointmentWindows
 394  
      * @throws DoesNotExistException     a appointmentWindowId in list not
 395  
      *                                   found
 396  
      * @throws InvalidParameterException invalid contextInfo
 397  
      * @throws MissingParameterException appointmentWindowId or contextInfo is
 398  
      *                                   missing or null
 399  
      * @throws OperationFailedException  unable to complete request
 400  
      * @throws PermissionDeniedException an authorization failure occurred
 401  
      */
 402  
     public List<AppointmentWindowInfo> getAppointmentWindowsByIds(@WebParam(name = "appointmentWindowIds") List<String> appointmentWindowIds, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 403  
 
 404  
     /**
 405  
      * Retrieves a list of AppointmentWindow Ids by AppointmentWindow Type.
 406  
      *
 407  
      * @param appointmentWindowTypeKey an identifier for an AppointmentWindow
 408  
      *                                 Type
 409  
      * @param contextInfo              Context information containing the
 410  
      *                                 principalId and locale information about
 411  
      *                                 the caller of service operation
 412  
      * @return a list of AppointmentWindow identifiers matching
 413  
      *         appointmentWindowTypeKey or an empty list if none found
 414  
      * @throws InvalidParameterException invalid contextInfo
 415  
      * @throws MissingParameterException appointmentWindowTypeKey or contextInfo
 416  
      *                                   is missing or null
 417  
      * @throws OperationFailedException  unable to complete request
 418  
      * @throws PermissionDeniedException an authorization failure occurred
 419  
      */
 420  
     public List<String> getAppointmentWindowIdsByType(@WebParam(name = "appointmentWindowTypeKey") String appointmentWindowTypeKey, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 421  
 
 422  
     /**
 423  
      * Retrieves all AppointmentWindows associated with a Population
 424  
      *
 425  
      * @param populationId the identifier for the AppointmentSlot
 426  
      * @param contextInfo  Context information containing the principalId and
 427  
      *                     locale information about the caller of service
 428  
      *                     operation
 429  
      * @return AppointmentWindows associated with the given Population or an
 430  
      *         empty list if none found
 431  
      * @throws InvalidParameterException contextInfo is not valid
 432  
      * @throws MissingParameterException populationId or contextInfo is missing
 433  
      *                                   or null
 434  
      * @throws OperationFailedException  unable to complete request
 435  
      * @throws PermissionDeniedException an authorization failure occurred
 436  
      */
 437  
     public List<String> getAppointmentWindowIdsByPopulation(@WebParam(name = "populationId") String populationId, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 438  
 
 439  
 
 440  
     /**
 441  
      * Retrieves all AppointmentWindows associated with a Period milestone
 442  
      *
 443  
      * @param periodMilestoneId the identifier for the AppointmentSlot
 444  
      * @param contextInfo       Context information containing the principalId
 445  
      *                          and locale information about the caller of
 446  
      *                          service operation
 447  
      * @return AppointmentWindows associated with the given Population or an
 448  
      *         empty list if none found
 449  
      * @throws InvalidParameterException contextInfo is not valid
 450  
      * @throws MissingParameterException periodMilestoneId or contextInfo is
 451  
      *                                   missing or null
 452  
      * @throws OperationFailedException  unable to complete request
 453  
      * @throws PermissionDeniedException an authorization failure occurred
 454  
      */
 455  
     public List<AppointmentWindowInfo> getAppointmentWindowsByPeriod(@WebParam(name = "periodMilestoneId") String periodMilestoneId, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 456  
 
 457  
     /**
 458  
      * Searches for AppointmentWindows based on the criteria and returns a list
 459  
      * of AppointmentWindow identifiers which match the search criteria.
 460  
      *
 461  
      * @param criteria    the search criteria
 462  
      * @param contextInfo Context information containing the principalId and
 463  
      *                    locale information about the caller of service
 464  
      *                    operation
 465  
      * @return list of AppointmentWindow Ids
 466  
      * @throws InvalidParameterException invalid contextInfo
 467  
      * @throws MissingParameterException criteria, contextInfo is missing or
 468  
      *                                   null
 469  
      * @throws OperationFailedException  unable to complete request
 470  
      * @throws PermissionDeniedException an authorization failure occurred
 471  
      */
 472  
     public List<String> searchForAppointmentWindowIds(@WebParam(name = "criteria") QueryByCriteria criteria, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 473  
 
 474  
     /**
 475  
      * Searches for AppointmentWindows based on the criteria and returns a list
 476  
      * of AppointmentWindows which match the search criteria.
 477  
      *
 478  
      * @param criteria    the search criteria
 479  
      * @param contextInfo Context information containing the principalId and
 480  
      *                    locale information about the caller of service
 481  
      *                    operation
 482  
      * @return list of Appointment information
 483  
      * @throws InvalidParameterException invalid contextInfo
 484  
      * @throws MissingParameterException criteria, contextInfo is missing or
 485  
      *                                   null
 486  
      * @throws OperationFailedException  unable to complete request
 487  
      * @throws PermissionDeniedException an authorization failure occurred
 488  
      */
 489  
     public List<AppointmentWindowInfo> searchForAppointmentWindows(@WebParam(name = "criteria") QueryByCriteria criteria, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 490  
 
 491  
     /**
 492  
      * Validates an AppointmentWindow. Depending on the value of validationType,
 493  
      * this validation could be limited to tests on just the current
 494  
      * AppointmentWindow and its directly contained sub-objects or expanded to
 495  
      * perform all tests related to this AppointmentWindow. If an identifier is
 496  
      * present for the AppointmentWindow (and/or one of its contained
 497  
      * sub-objects) and a record is found for that identifier, the validation
 498  
      * checks if the AppointmentWindow can be updated to the new values. If an
 499  
      * identifier is not present or a record does not exist, the validation
 500  
      * checks if the object with the given data can be created.
 501  
      *
 502  
      * @param validationTypeKey        the identifier for the validation Type
 503  
      * @param appointmentWindowTypeKey appointment type
 504  
      * @param appointmentWindowInfo    detailed information about the
 505  
      *                                 appointment
 506  
      * @param contextInfo              Context information containing the
 507  
      *                                 principalId and locale information about
 508  
      *                                 the caller of service operation
 509  
      * @return a list of validation results or an empty list if validation
 510  
      *         succeeded
 511  
      * @throws DoesNotExistException     assignedOrderTypeKey or appointmentWindowTypeKey
 512  
      *                                   does not exist
 513  
      * @throws InvalidParameterException invalid appointmentWindowInfo or
 514  
      *                                   contextInfo
 515  
      * @throws MissingParameterException periodMilestoneId, populationId,
 516  
      *                                   assignedOrderTypeKey, appointmentWindowTypeKey
 517  
      *                                   or contextInfo is missing or null
 518  
      * @throws OperationFailedException  unable to complete request
 519  
      * @throws PermissionDeniedException an authorization failure occurred
 520  
      */
 521  
     public List<ValidationResultInfo> validateAppointmentWindow(@WebParam(name = "validationTypeKey") String validationTypeKey, @WebParam(name = "appointmentWindowTypeKey") String appointmentWindowTypeKey, @WebParam(name = "appointmentWindowInfo") AppointmentWindowInfo appointmentWindowInfo, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 522  
 
 523  
 
 524  
     /**
 525  
      * Creates an AppointmentWindow
 526  
      *
 527  
      * @param appointmentWindowTypeKey appointment type
 528  
      * @param appointmentWindowInfo    detailed information about the
 529  
      *                                 appointment
 530  
      * @param contextInfo              Context information containing the
 531  
      *                                 principalId and locale information about
 532  
      *                                 the caller of service operation
 533  
      * @return detailed information about the appointment
 534  
      * @throws DataValidationErrorException supplied data is invalid
 535  
      * @throws DoesNotExistException        assignedOrderTypeKey or appointmentWindowTypeKey
 536  
      *                                      does not exist
 537  
      * @throws InvalidParameterException    invalid appointmentWindowInfo or
 538  
      *                                      contextInfo
 539  
      * @throws MissingParameterException    periodMilestoneId, populationId,
 540  
      *                                      assignedOrderTypeKey, appointmentWindowTypeKey
 541  
      *                                      or contextInfo is missing or null
 542  
      * @throws OperationFailedException     unable to complete request
 543  
      * @throws PermissionDeniedException    an authorization failure occurred
 544  
      * @throws ReadOnlyException            an attempt at supplying information
 545  
      *                                      designated as read only
 546  
      */
 547  
     public AppointmentWindowInfo createAppointmentWindow(@WebParam(name = "appointmentWindowTypeKey") String appointmentWindowTypeKey, @WebParam(name = "appointmentWindowInfo") AppointmentWindowInfo appointmentWindowInfo, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DataValidationErrorException, DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException, ReadOnlyException;
 548  
 
 549  
     /**
 550  
      * Updates an AppointmentWindow
 551  
      *
 552  
      * @param appointmentWindowId   identifier of the appointment relationship
 553  
      *                              to be updated
 554  
      * @param appointmentWindowInfo information about the object appointmentWindow
 555  
      *                              to be updated
 556  
      * @param contextInfo           context information containing the
 557  
      *                              principalId and locale information about the
 558  
      *                              caller of service operation
 559  
      * @return updated appointment relationship information
 560  
      * @throws DataValidationErrorException one or more values invalid for this
 561  
      *                                      operation
 562  
      * @throws DoesNotExistException        appointmentWindowId not found
 563  
      * @throws InvalidParameterException    invalid appointmentWindowInfo or
 564  
      *                                      contextInfo
 565  
      * @throws MissingParameterException    appointmentWindowId, appointmentWindowInfo
 566  
      *                                      or contextInfo is missing or null
 567  
      * @throws OperationFailedException     unable to complete request
 568  
      * @throws PermissionDeniedException    an authorization failure occurred
 569  
      * @throws ReadOnlyException            an attempt at supplying information
 570  
      *                                      designated as read-only
 571  
      * @throws VersionMismatchException     optimistic locking failure or the
 572  
      *                                      action was attempted on an out of
 573  
      *                                      date version
 574  
      */
 575  
     public AppointmentWindowInfo updateAppointmentWindow(@WebParam(name = "appointmentWindowId") String appointmentWindowId, @WebParam(name = "appointmentWindowInfo") AppointmentWindowInfo appointmentWindowInfo, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DataValidationErrorException, DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException, ReadOnlyException, VersionMismatchException;
 576  
 
 577  
     /**
 578  
      * Deletes an AppointmentWindow and associated slots/appointments (i.e., cascading delete)
 579  
      *
 580  
      * @param appointmentWindowId AppointmentWindow identifier
 581  
      * @param contextInfo         context information containing the principalId
 582  
      *                            and locale information about the caller of
 583  
      *                            service operation
 584  
      * @return status of the operation (success, failed)
 585  
      * @throws DoesNotExistException     appointmentWindowId not found
 586  
      * @throws InvalidParameterException invalid contextInfo
 587  
      * @throws MissingParameterException appointmentWindowId or contextInfo is
 588  
      *                                   missing or null
 589  
      * @throws OperationFailedException  unable to complete request
 590  
      * @throws PermissionDeniedException an authorization failure occurred
 591  
      */
 592  
     public StatusInfo deleteAppointmentWindowCascading(String appointmentWindowId,
 593  
             ContextInfo contextInfo)
 594  
             throws DoesNotExistException, InvalidParameterException, MissingParameterException,
 595  
             OperationFailedException, PermissionDeniedException;
 596  
 
 597  
     /**
 598  
      * Retrieves an AppointmentSlot
 599  
      *
 600  
      * @param appointmentSlotId a unique Id of an AppointmentSlot
 601  
      * @param contextInfo         Context information containing the principalId
 602  
      *                            and locale information about the caller of
 603  
      *                            service operation
 604  
      * @return an AppointmentSlot
 605  
      * @throws DoesNotExistException     appointmentSlotId not found
 606  
      * @throws InvalidParameterException invalid contextInfo
 607  
      * @throws MissingParameterException appointmentSlotId or contextInfo is
 608  
      *                                   missing or null
 609  
      * @throws OperationFailedException  unable to complete request
 610  
      * @throws PermissionDeniedException an authorization failure occurred
 611  
      */
 612  
     public AppointmentSlotInfo getAppointmentSlot(@WebParam(name = "appointmentSlotId") String appointmentSlotId, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 613  
 
 614  
     /**
 615  
      * Retrieves a list of AppointmentSlots corresponding to the given list of
 616  
      * AppointmentSlot Ids.
 617  
      *
 618  
      * @param appointmentSlotIds list of Appointments to be retrieved
 619  
      * @param contextInfo    Context information containing the principalId and
 620  
      *                       locale information about the caller of service
 621  
      *                       operation
 622  
      * @return a list of Appointments
 623  
      * @throws DoesNotExistException     an appointmentSlotId in list not found
 624  
      * @throws InvalidParameterException invalid contextInfo
 625  
      * @throws MissingParameterException appointmentSlotId or contextInfo is
 626  
      *                                   missing or null
 627  
      * @throws OperationFailedException  unable to complete request
 628  
      * @throws PermissionDeniedException an authorization failure occurred
 629  
      */
 630  
     public List<AppointmentSlotInfo> getAppointmentSlotsByIds(@WebParam(name = "appointmentSlotIds") List<String> appointmentSlotIds, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 631  
 
 632  
     /**
 633  
      * Retrieves all AppointmentWindows belonging to the person and period
 634  
      *
 635  
      * @param personId          the identifier for the Person
 636  
      * @param periodMilestoneId the identifier of the Period milestone
 637  
      * @param contextInfo       Context information containing the principalId
 638  
      *                          and locale information about the caller of
 639  
      *                          service operation
 640  
      * @return AppointmentSlots belonging to the Person or an empty list if none
 641  
      *         found
 642  
      * @throws InvalidParameterException contextInfo is not valid
 643  
      * @throws MissingParameterException personId or contextInfo is missing or
 644  
      *                                   null
 645  
      * @throws OperationFailedException  unable to complete request
 646  
      * @throws PermissionDeniedException an authorization failure occurred
 647  
      */
 648  
     public List<AppointmentSlotInfo> getAppointmentSlotsByPersonAndPeriod(@WebParam(name = "personId") String personId, @WebParam(name = "periodMilestoneId") String periodMilestoneId, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 649  
 
 650  
     /**
 651  
      * Retrieves all AppointmentWindows to the given AppointmentWindowSlot
 652  
      *
 653  
      * @param appointmentWindowId the identifier for the AppointmentWindow
 654  
      * @param contextInfo         Context information containing the principalId
 655  
      *                            and locale information about the caller of
 656  
      *                            service operation
 657  
      * @return AppointmentSlots belonging to the AppointmentWindow or an empty
 658  
      *         list if none found
 659  
      * @throws InvalidParameterException contextInfo is not valid
 660  
      * @throws MissingParameterException appointmentWindowId or contextInfo is
 661  
      *                                   missing or null
 662  
      * @throws OperationFailedException  unable to complete request
 663  
      * @throws PermissionDeniedException an authorization failure occurred
 664  
      */
 665  
     public List<AppointmentSlotInfo> getAppointmentSlotsByWindow(@WebParam(name = "appointmentWindowId") String appointmentWindowId, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 666  
 
 667  
 
 668  
     /**
 669  
      * Searches for AppointmentSlots based on the criteria and returns a list of
 670  
      * AppointmentSlot identifiers which match the search criteria.
 671  
      *
 672  
      * @param criteria    the search criteria
 673  
      * @param contextInfo Context information containing the principalId and
 674  
      *                    locale information about the caller of service
 675  
      *                    operation
 676  
      * @return list of AppointmentSlot Ids
 677  
      * @throws InvalidParameterException invalid contextInfo
 678  
      * @throws MissingParameterException criteria, contextInfo is missing or
 679  
      *                                   null
 680  
      * @throws OperationFailedException  unable to complete request
 681  
      * @throws PermissionDeniedException an authorization failure occurred
 682  
      */
 683  
     public List<String> searchForAppointmentSlotIds(@WebParam(name = "criteria") QueryByCriteria criteria, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 684  
 
 685  
     /**
 686  
      * Searches for AppointmentSlots based on the criteria and returns a list of
 687  
      * AppointmentSlots which match the search criteria.
 688  
      *
 689  
      * @param criteria    the search criteria
 690  
      * @param contextInfo Context information containing the principalId and
 691  
      *                    locale information about the caller of service
 692  
      *                    operation
 693  
      * @return list of AppointmentSlot information
 694  
      * @throws InvalidParameterException invalid contextInfo
 695  
      * @throws MissingParameterException criteria, contextInfo is missing or
 696  
      *                                   null
 697  
      * @throws OperationFailedException  unable to complete request
 698  
      * @throws PermissionDeniedException an authorization failure occurred
 699  
      */
 700  
     public List<AppointmentSlotInfo> searchForAppointmentSlots(@WebParam(name = "criteria") QueryByCriteria criteria, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 701  
 
 702  
     /**
 703  
      * Validate an AppointmentSlot
 704  
      *
 705  
      * @param validationTypeKey      the identifier for the validation Type
 706  
      * @param appointmentWindowId    appointment slot of the person
 707  
      * @param appointmentSlotTypeKey appointment slot type
 708  
      * @param appointmentSlotInfo    detailed information about the
 709  
      *                               AppointmentSlot
 710  
      * @param contextInfo            context information containing the
 711  
      *                               principalId and locale information about
 712  
      *                               the caller of service operation
 713  
      * @return a list of validation results or an empty list if validation
 714  
      *         succeeded
 715  
      * @throws DoesNotExistException        validationTypeKey, appointmentWindowId
 716  
      *                                      or appointmentSlotTypeKey does not
 717  
      *                                      exist
 718  
      * @throws InvalidParameterException    invalid contextInfo
 719  
      * @throws MissingParameterException    validationTypeKey, appointmentWindowId,
 720  
      *                                      appointmentSlotTypeKey or
 721  
      *                                      contextInfo is missing or null
 722  
      * @throws OperationFailedException     unable to complete request
 723  
      * @throws PermissionDeniedException    an authorization failure occurred
 724  
      */
 725  
     public List<ValidationResultInfo> validateAppointmentSlot(@WebParam(name = "validationTypeKey") String validationTypeKey, @WebParam(name = "appointmentWindowId") String appointmentWindowId, @WebParam(name = "appointmentSlotTypeKey") String appointmentSlotTypeKey, @WebParam(name = "appointmentSlotInfo") AppointmentSlotInfo appointmentSlotInfo, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 726  
 
 727  
     /**
 728  
      * Create an AppointmentSlot
 729  
      *
 730  
      * @param appointmentWindowId    appointment slot of the person
 731  
      * @param appointmentSlotTypeKey appointment slot type
 732  
      * @param appointmentSlotInfo    detailed information about the
 733  
      *                               AppointmentSlot
 734  
      * @param contextInfo            context information containing the
 735  
      *                               principalId and locale information about
 736  
      *                               the caller of service operation
 737  
      * @return created AppointmentSlot for the given AppointmentWindow and slot
 738  
      *         information
 739  
      * @throws DataValidationErrorException supplied data is invalid
 740  
      * @throws DoesNotExistException        appointmentWindowId or appointmentSlotTypeKey
 741  
      *                                      does not exist
 742  
      * @throws InvalidParameterException    invalid contextInfo
 743  
      * @throws MissingParameterException    appointmentWindowId, appointmentSlotTypeKey
 744  
      *                                      or contextInfo is missing or null
 745  
      * @throws OperationFailedException     unable to complete request
 746  
      * @throws PermissionDeniedException    an authorization failure occurred
 747  
      * @throws ReadOnlyException            an attempt at supplying information
 748  
      *                                      designated as read only
 749  
      * @impl Check out blackout milestone type and corresponding milestones
 750  
      */
 751  
     public AppointmentSlotInfo createAppointmentSlot(@WebParam(name = "appointmentWindowId") String appointmentWindowId, @WebParam(name = "appointmentSlotTypeKey") String appointmentSlotTypeKey, @WebParam(name = "appointmentSlotInfo") AppointmentSlotInfo appointmentSlotInfo, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DataValidationErrorException, DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException, ReadOnlyException;
 752  
 
 753  
     /**
 754  
      * Generate AppointmentSlots for the AppointmentWindow using its
 755  
      * AppointmentSlotRule information
 756  
      *
 757  
      * @param appointmentWindowId appointment window to which these slots belong
 758  
      * @param contextInfo         context information containing the principalId
 759  
      *                            and locale information about the caller of
 760  
      *                            service operation
 761  
      * @return created AppointmentSlots for the window using its
 762  
      *         AppointmentSlotRule information
 763  
      * @throws DataValidationErrorException supplied data is invalid
 764  
      * @throws DoesNotExistException        appointmentWindowId does not exist
 765  
      * @throws InvalidParameterException    invalid contextInfo
 766  
      * @throws MissingParameterException    appointmentWindowId or contextInfo
 767  
      *                                      is missing or null
 768  
      * @throws OperationFailedException     unable to complete request
 769  
      * @throws PermissionDeniedException    an authorization failure occurred
 770  
      * @throws ReadOnlyException            an attempt at supplying information
 771  
      *                                      designated as read only
 772  
      * @impl Check out blackout milestone type and corresponding milestones
 773  
      * @impl throw OperationFailedException if unable to create needed slots either because  both EndDate and MaxAppointmentsPerSlot were specified and cannot be satisfied or due to some other reason
 774  
      */
 775  
     public List<AppointmentSlotInfo> generateAppointmentSlotsByWindow(@WebParam(name = "appointmentWindowId") String appointmentWindowId, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DataValidationErrorException, DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException, ReadOnlyException;
 776  
 
 777  
     /**
 778  
      * Updates an appointment slot
 779  
      *
 780  
      * @param appointmentSlotId   identifier of the appointmentSlot to be
 781  
      *                            updated
 782  
      * @param appointmentSlotInfo information about the object appointmentSlot
 783  
      *                            to be updated
 784  
      * @param contextInfo         context information containing the principalId
 785  
      *                            and locale information about the caller of
 786  
      *                            service operation
 787  
      * @return updated appointment slot  information
 788  
      * @throws DataValidationErrorException one or more values invalid for this
 789  
      *                                      operation
 790  
      * @throws DoesNotExistException        appointmentSlotId not found
 791  
      * @throws InvalidParameterException    invalid appointmentSlotInfo or
 792  
      *                                      contextInfo
 793  
      * @throws MissingParameterException    appointmentSlotId, appointmentSlotInfo
 794  
      *                                      or contextInfo is missing or null
 795  
      * @throws OperationFailedException     unable to complete request
 796  
      * @throws PermissionDeniedException    an authorization failure occurred
 797  
      * @throws ReadOnlyException            an attempt at supplying information
 798  
      *                                      designated as read-only
 799  
      * @throws VersionMismatchException     optimistic locking failure or the
 800  
      *                                      action was attempted on an out of
 801  
      *                                      date version
 802  
      */
 803  
     public AppointmentSlotInfo updateAppointmentSlot(@WebParam(name = "appointmentSlotId") String appointmentSlotId, @WebParam(name = "appointmentSlotInfo") AppointmentSlotInfo appointmentSlotInfo, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DataValidationErrorException, DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException, ReadOnlyException, VersionMismatchException;
 804  
 
 805  
     /**
 806  
      * Delete an AppointmentSlot, including all associated Appointments (i.e., cascading delete)
 807  
      *
 808  
      * @param appointmentSlotId the identifier for the AppointmentSlot
 809  
      * @param contextInfo       context information containing the principalId
 810  
      *                          and locale information about the caller of
 811  
      *                          service operation
 812  
      * @return status of the operation (success, failed)
 813  
      * @throws DoesNotExistException          appointmentWindowId or appointmentSlotId
 814  
      *                                        not found
 815  
      * @throws InvalidParameterException      invalid contextInfo
 816  
      * @throws MissingParameterException      appointmentWindowId, appointmentSlotId
 817  
      *                                        or contextInfo is missing or null
 818  
      * @throws OperationFailedException       unable to complete request
 819  
      * @throws PermissionDeniedException      an authorization failure occurred
 820  
      */
 821  
     public StatusInfo deleteAppointmentSlotCascading(@WebParam(name = "appointmentSlotId") String appointmentSlotId, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 822  
 
 823  
     /**
 824  
      * Deletes AppointmentSlots belonging to an AppointmentWindow, including associated appointments (i.e., cascading
 825  
      * delete)
 826  
      *
 827  
      * @param appointmentWindowId object Appointment relationship identifier
 828  
      * @param contextInfo         context information containing the principalId
 829  
      *                            and locale information about the caller of
 830  
      *                            service operation
 831  
      * @return status of the operation (success, failed)
 832  
      * @throws DoesNotExistException          appointmentWindowId not found
 833  
      * @throws InvalidParameterException      invalid contextInfo
 834  
      * @throws MissingParameterException      appointmentWindowId or contextInfo
 835  
      *                                        is missing or null
 836  
      * @throws OperationFailedException       unable to complete request
 837  
      * @throws PermissionDeniedException      an authorization failure occurred
 838  
      * @impl delete the corresponding appointments
 839  
      */
 840  
     public StatusInfo deleteAppointmentSlotsByWindowCascading(@WebParam(name = "appointmentWindowId") String appointmentWindowId, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 841  
 
 842  
 }