Coverage Report - org.kuali.student.r2.core.state.service.StateService
 
Classes in this File Line Coverage Branch Coverage Complexity
StateService
N/A
N/A
1
 
 1  
 /*
 2  
  * Copyright 2010 The Kuali Foundation 
 3  
  *
 4  
  * Licensed under the Educational Community License, Version 2.0 (the
 5  
  * "License"); you may not use this file except in compliance with the
 6  
  * License. You may obtain a copy of the License at
 7  
  *
 8  
  * http://www.osedu.org/licenses/ECL-2.0
 9  
  *
 10  
  * Unless required by applicable law or agreed to in writing, software
 11  
  * distributed under the License is distributed on an "AS IS" BASIS,
 12  
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
 13  
  * implied. See the License for the specific language governing
 14  
  * permissions and limitations under the License.
 15  
  */
 16  
 
 17  
 package org.kuali.student.r2.core.state.service;
 18  
 
 19  
 import java.util.List;
 20  
 
 21  
 import javax.jws.WebParam;
 22  
 import javax.jws.WebService;
 23  
 import javax.jws.soap.SOAPBinding;
 24  
 
 25  
 import org.kuali.rice.core.api.criteria.QueryByCriteria;
 26  
 import org.kuali.student.r2.common.dto.ContextInfo;
 27  
 import org.kuali.student.r2.common.dto.StatusInfo;
 28  
 import org.kuali.student.r2.common.dto.ValidationResultInfo;
 29  
 
 30  
 import org.kuali.student.r2.common.exceptions.AlreadyExistsException;
 31  
 import org.kuali.student.r2.common.exceptions.DataValidationErrorException;
 32  
 import org.kuali.student.r2.common.exceptions.DoesNotExistException;
 33  
 import org.kuali.student.r2.common.exceptions.InvalidParameterException;
 34  
 import org.kuali.student.r2.common.exceptions.MissingParameterException;
 35  
 import org.kuali.student.r2.common.exceptions.OperationFailedException;
 36  
 import org.kuali.student.r2.common.exceptions.PermissionDeniedException;
 37  
 import org.kuali.student.r2.common.exceptions.ReadOnlyException;
 38  
 import org.kuali.student.r2.common.exceptions.VersionMismatchException;
 39  
 
 40  
 import org.kuali.student.r2.core.state.dto.StateInfo;
 41  
 import org.kuali.student.r2.core.state.dto.LifecycleInfo;
 42  
 import org.kuali.student.r2.common.util.constants.StateServiceConstants;
 43  
 
 44  
 /**
 45  
  * Provides a state management and state flow information.
 46  
  *
 47  
  * @version 1.0 (Dev)
 48  
  *
 49  
  * @author kamal
 50  
  */
 51  
 
 52  
 @WebService(name = "StateService", serviceName = "StateService", portName = "StateService", targetNamespace = StateServiceConstants.NAMESPACE)
 53  
 @SOAPBinding(style = SOAPBinding.Style.DOCUMENT, use = SOAPBinding.Use.LITERAL, parameterStyle = SOAPBinding.ParameterStyle.WRAPPED)
 54  
 public interface StateService {
 55  
       
 56  
     //
 57  
     // Lookup Methods for Lifecycle Key Entity Pattern.
 58  
     //
 59  
 
 60  
     /**
 61  
      * Get Lifecycle Information by Key.
 62  
      *
 63  
      * @param lifecycleKey the lifecycle key
 64  
      * @param contextInfo information containing the principalId and
 65  
      *        locale information about the caller of service operation
 66  
      * @return the requested Lifecycle
 67  
      * @throws DoesNotExistException lifecycleKey not found
 68  
      * @throws InvalidParameterException contextInfo is not valid
 69  
      * @throws MissingParameterException lifecycleKey or contextInfo is
 70  
      *         missing or null
 71  
      * @throws OperationFailedException unable to complete request
 72  
      * @throws PermissionDeniedException an authorization failure occurred
 73  
      */
 74  
     public LifecycleInfo getLifecycle(@WebParam(name = "lifecycleKey") String lifecycleKey, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 75  
    
 76  
     /**
 77  
      * Retrieves a list of Lifecycles from a list of Lifecycle
 78  
      * keys. The returned list may be in any order and if duplicate
 79  
      * keys are supplied, a unique set may or may not be returned.
 80  
      * 
 81  
      * @param lifecycleKeys a list of Lifecycle keys
 82  
      * @param contextInfo information containing the principalId and
 83  
      *        locale information about the caller of service operation
 84  
      * @return a list of Lifecycles
 85  
      * @throws DoesNotExistException a lifecycleKey in the list not
 86  
      *         found
 87  
      * @throws InvalidParameterException contextInfo is not valid
 88  
      * @throws MissingParameterException lifecycleKeys, a key in
 89  
      *         lifecycleKeys, or contextInfo is missing or null
 90  
      * @throws OperationFailedException unable to complete request
 91  
      * @throws PermissionDeniedException an authorization failure occurred
 92  
      */
 93  
     public List<LifecycleInfo> getLifecyclesByKeys(@WebParam(name = "lifecycleKeys") List<String> lifecycleKeys, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 94  
 
 95  
     /**
 96  
      * This method retrieves the list of Lifecycle keys associated
 97  
      * with a type of object.
 98  
      * 
 99  
      * @param refObjectUri unique name for an object that states are
 100  
      *        attached
 101  
      * @param contextInfo information containing the principalId and
 102  
      *        locale information about the caller of service operation
 103  
      * @return  a list of lifecycle keys
 104  
      * @throws InvalidParameterException contextInfo is not valid
 105  
      * @throws MissingParameterException refObjectUri or contextInfo is
 106  
      *         missing or null
 107  
      * @throws OperationFailedException unable to complete request
 108  
      * @throws PermissionDeniedException an authorization failure occurred
 109  
      */
 110  
     public List<String> getLifecycleKeysByRefObjectUri(@WebParam(name = "refObjectUri") String refObjectUri, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 111  
 
 112  
     //
 113  
     // Search methods for Lifecycle Key Entity Pattern.
 114  
     //
 115  
 
 116  
     /**
 117  
      * Searches for Lifecycle keys that meet the given search
 118  
      * criteria.
 119  
      * 
 120  
      * @param criteria the search criteria
 121  
      * @param contextInfo information containing the principalId and
 122  
      *        locale information about the caller of service operation
 123  
      * @return list of Lifecycle identifiers matching the criteria
 124  
      * @throws InvalidParameterException criteria or contextInfo is
 125  
      *         not valid
 126  
      * @throws MissingParameterException criteria or contextInfo is
 127  
      *         missing or null
 128  
      * @throws OperationFailedException unable to complete request
 129  
      * @throws PermissionDeniedException an authorization failure occurred
 130  
      */
 131  
     public List<String> searchForLifecycleKeys(@WebParam(name = "criteria") QueryByCriteria criteria, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 132  
 
 133  
     /**
 134  
      * Searches for Lifecycles that meet the given search criteria.
 135  
      * 
 136  
      * @param criteria the search criteria
 137  
      * @param contextInfo information containing the principalId and
 138  
      *        locale information about the caller of service operation
 139  
      * @return list of Lifecycles matching the criteria
 140  
      * @throws InvalidParameterException criteria or contextInfo is
 141  
      *         not valid
 142  
      * @throws MissingParameterException criteria or contextInfo is
 143  
      *         missing or null
 144  
      * @throws OperationFailedException unable to complete request
 145  
      * @throws PermissionDeniedException an authorization failure occurred
 146  
      */
 147  
     public List<LifecycleInfo> searchForLifecycles(@WebParam(name = "criteria") QueryByCriteria criteria, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 148  
 
 149  
     //
 150  
     // CRUD methods for Lifecycle Key Entity Pattern.
 151  
     //
 152  
 
 153  
     /**
 154  
      * Validates a Lifecycle. Depending on the value of
 155  
      * validationType, this validation could be limited to tests on
 156  
      * just the current object and its directly contained sub-objects
 157  
      * or expanded to perform all tests related to this Lifecycle. If
 158  
      * an identifier is present for the Lifecycle (and/or one of its
 159  
      * contained sub-objects) and a record is found for that
 160  
      * identifier, the validation checks if the Lifecycle can be
 161  
      * shifted to the new values. If a an identifier is not present or
 162  
      * a record does not exist, the validation checks if the Lifecycle
 163  
      * with the given data can be created.
 164  
      * 
 165  
      * @param validationTypeKey the identifier for the validation Type
 166  
      * @param lifecycleInfo the identifier for the Lifecycle to be
 167  
      *        validated
 168  
      * @param contextInfo information containing the principalId and
 169  
      *        locale information about the caller of service operation
 170  
      * @return a list of validation results or an empty list if
 171  
      *         validation succeeded
 172  
      * @throws DoesNotExistException validationTypeKey is not found
 173  
      * @throws InvalidParameterException lifecycleInfo or contextInfo
 174  
      *         is not valid
 175  
      * @throws MissingParameterException validationTypeKey,
 176  
      *         lifecycleInfo, or contextInfo is missing or null
 177  
      * @throws OperationFailedException unable to complete request
 178  
      * @throws PermissionDeniedException an authorization failure occurred
 179  
      */
 180  
     public List<ValidationResultInfo> validateLifecycle(@WebParam(name = "validationTypeKey") String validationTypeKey, @WebParam(name = "lifecycleInfo") LifecycleInfo lifecycleInfo, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 181  
 
 182  
     /**
 183  
      * Creates a new Lifecycle. The Lifecycle Type and Meta
 184  
      * information may not be set in the supplied data object.
 185  
      * 
 186  
      * @param lifecycleKey a unique for the new Lifecycle
 187  
      * @param lifecycleInfo the data with which to create the
 188  
      *        Lifecycle
 189  
      * @param contextInfo information containing the principalId and
 190  
      *        locale information about the caller of service operation
 191  
      * @return the new Lifecycle
 192  
      * @throws AlreadyExistsException lifecycleKey already exists
 193  
      * @throws DataValidationErrorException supplied data is invalid
 194  
      * @throws InvalidParameterException lifecycleInfo or contextInfo
 195  
      *         is not valid
 196  
      * @throws MissingParameterException lifecycleKey, lifecycleInfo,
 197  
      *         or contextInfo is missing or null
 198  
      * @throws OperationFailedException unable to complete request
 199  
      * @throws PermissionDeniedException an authorization failure occurred
 200  
      * @throws ReadOnlyException an attempt at supplying information
 201  
      *         designated as read only
 202  
      */
 203  
     public LifecycleInfo createLifecycle(@WebParam(name = "lifecycleKey") String lifecycleKey, @WebParam(name = "lifecycleInfo") LifecycleInfo lifecycleInfo, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws AlreadyExistsException, DataValidationErrorException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException, ReadOnlyException;
 204  
 
 205  
     /**
 206  
      * Updates an existing Lifecycle. The Lifecycle Key, Type, and
 207  
      * Meta information may not be changed.
 208  
      * 
 209  
      * @param lifecycleKey the identifier for the Lifecycle to be
 210  
      *        updated
 211  
      * @param lifecycleInfo the new data for the Lifecycle
 212  
      * @param contextInfo information containing the principalId and
 213  
      *        locale information about the caller of service operation
 214  
      * @return the updated Lifecycle
 215  
      * @throws DataValidationErrorException supplied data is invalid
 216  
      * @throws DoesNotExistException lifecycleKey is not found
 217  
      * @throws InvalidParameterException lifecycleInfo or contextInfo
 218  
      *         is not valid
 219  
      * @throws MissingParameterException lifecycleKey, lifecycleInfo,
 220  
      *         or contextInfo is missing or null
 221  
      * @throws OperationFailedException unable to complete request
 222  
      * @throws PermissionDeniedException an authorization failure occurred
 223  
      * @throws ReadOnlyException an attempt at supplying information
 224  
      *         designated as read only
 225  
      * @throws VersionMismatchException an optimistic locking failure
 226  
      *         or the action was attempted on an out of date version
 227  
      */
 228  
     public LifecycleInfo updateLifecycle(@WebParam(name = "lifecycleKey") String lifecycleKey, @WebParam(name = "lifecycleInfo") LifecycleInfo lifecycleInfo, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DataValidationErrorException, DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException, ReadOnlyException, VersionMismatchException;
 229  
 
 230  
     /**
 231  
      * Deletes an existing Lifecycle.
 232  
      * 
 233  
      * @param lifecycleKey the identifier for the Lifecycle to be
 234  
      *        deleted
 235  
      * @param contextInfo information containing the principalId and
 236  
      *        locale information about the caller of service operation
 237  
      * @return the status of the operation. This must always be true.
 238  
      * @throws DoesNotExistException lifecycleKey is not found
 239  
      * @throws InvalidParameterException contextInfo is not valid
 240  
      * @throws MissingParameterException lifecycleKey or contextInfo
 241  
      *         is missing or null
 242  
      * @throws OperationFailedException unable to complete request
 243  
      * @throws PermissionDeniedException an authorization failure occurred
 244  
      */
 245  
     public StatusInfo deleteLifecycle(@WebParam(name = "lifecycleKey") String lifecycleKey, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 246  
 
 247  
     //
 248  
     // Lookup Methods for States. States are not full entities because
 249  
     // they do not have Types and States.
 250  
     //
 251  
 
 252  
     /**
 253  
      * This method returns information about a state.
 254  
      * 
 255  
      * @param stateKey Key of the state
 256  
      * @param contextInfo information containing the principalId and
 257  
      *        locale information about the caller of service operation
 258  
      * @return the requested State
 259  
      * @throws DoesNotExistException stateKey is not found
 260  
      * @throws InvalidParameterException contextInfo is not valid
 261  
      * @throws MissingParameterException stateKey or contextInfo is
 262  
      *         missing or null
 263  
      * @throws OperationFailedException unable to complete request
 264  
      * @throws PermissionDeniedException an authorization failure occurred
 265  
      */
 266  
     public StateInfo getState(@WebParam(name = "stateKey") String stateKey, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 267  
 
 268  
     /**
 269  
      * Retrieves a list of States from a list of State
 270  
      * keys. The returned list may be in any order and if duplicate
 271  
      * keys are supplied, a unique set may or may not be returned.
 272  
      * 
 273  
      * @param stateKeys a list of State keys
 274  
      * @param contextInfo information containing the principalId and
 275  
      *        locale information about the caller of service operation
 276  
      * @return a list of States
 277  
      * @throws DoesNotExistException a stateId in the list not found
 278  
      * @throws InvalidParameterException contextInfo is not valid
 279  
      * @throws MissingParameterException stateKeys, a key in
 280  
      *         stateKeys, or contextInfo is missing or null
 281  
      * @throws OperationFailedException unable to complete request
 282  
      * @throws PermissionDeniedException an authorization failure occurred
 283  
      */
 284  
     public List<StateInfo> getStatesByKeys(@WebParam(name = "stateKeys") List<String> stateKeys, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 285  
 
 286  
     /**
 287  
      * This method returns a list of States that belong to a
 288  
      * lifecycle. For e.g Clu states for clu proposal lifecycle.
 289  
      * 
 290  
      * @param lifecycleKey Key identifying the lifecycle
 291  
      * @param contextInfo information containing the principalId and
 292  
      *        locale information about the caller of service operation
 293  
      * @return the list of StateInfo objects associated with the lifecycle
 294  
      * @throws DoesNotExistException lifecycleKey is not found
 295  
      * @throws InvalidParameterException contextInfo is not valid
 296  
      * @throws MissingParameterException lifecycleKey is missing or null
 297  
      * @throws OperationFailedException unable to complete request
 298  
      * @throws PermissionDeniedException an authorization failure occurred
 299  
      */
 300  
     public List<StateInfo> getStatesByLifecycle(@WebParam(name = "lifecycleKey") String lifecycleKey, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 301  
 
 302  
     //
 303  
     // Search methods for State Key Pattern.
 304  
     //
 305  
 
 306  
     /**
 307  
      * Searches for State keys that meet the given search criteria.
 308  
      * 
 309  
      * @param criteria the search criteria
 310  
      * @param contextInfo information containing the principalId and
 311  
      *        locale information about the caller of service operation
 312  
      * @return list of State identifiers matching the criteria
 313  
      * @throws InvalidParameterException criteria or contextInfo is
 314  
      *         not valid
 315  
      * @throws MissingParameterException criteria or contextInfo is
 316  
      *         missing or null
 317  
      * @throws OperationFailedException unable to complete request
 318  
      * @throws PermissionDeniedException an authorization failure occurred
 319  
      */
 320  
     public List<String> searchForStateKeys(@WebParam(name = "criteria") QueryByCriteria criteria, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 321  
 
 322  
     /**
 323  
      * Searches for States that meet the given search criteria.
 324  
      * 
 325  
      * @param criteria the search criteria
 326  
      * @param contextInfo information containing the principalId and
 327  
      *        locale information about the caller of service operation
 328  
      * @return list of States matching the criteria
 329  
      * @throws InvalidParameterException criteria or contextInfo is
 330  
      *         not valid
 331  
      * @throws MissingParameterException criteria or contextInfo is
 332  
      *         missing or null
 333  
      * @throws OperationFailedException unable to complete request
 334  
      * @throws PermissionDeniedException an authorization failure occurred
 335  
      */
 336  
     public List<StateInfo> searchForStates(@WebParam(name = "criteria") QueryByCriteria criteria, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 337  
 
 338  
     //
 339  
     // CRUD methods for Dependent Key Pattern. States do not have
 340  
     // Types or States so they are not complete entities.
 341  
     //
 342  
 
 343  
     /**
 344  
      * Validates a State. Depending on the value of validationType,
 345  
      * this validation could be limited to tests on just the current
 346  
      * object and its directly contained sub-objects or expanded to
 347  
      * perform all tests related to this State. If an identifier is
 348  
      * present for the State (and/or one of its contained sub-objects)
 349  
      * and a record is found for that identifier, the validation
 350  
      * checks if the State can be shifted to the new values. If a an
 351  
      * identifier is not present or a record does not exist, the
 352  
      * validation checks if the State with the given data can be
 353  
      * created.
 354  
      * 
 355  
      * @param validationTypeKey the identifier for the validation Type
 356  
      * @param lifecycleKey the identifier for the Lifecycle to which
 357  
      *        the State belongs
 358  
      * @param stateInfo the identifier for the State to be validated
 359  
      * @param contextInfo information containing the principalId and
 360  
      *        locale information about the caller of service operation
 361  
      * @return a list of validation results or an empty list if validation
 362  
      *         succeeded
 363  
      * @throws DoesNotExistException validationTypeKey or lifecycleKey
 364  
      *         is not found
 365  
      * @throws InvalidParameterException stateInfo or contextInfo is
 366  
      *         not valid
 367  
      * @throws MissingParameterException validationTypeKey,
 368  
      *         lifecycleKey stateInfo, or contextInfo is missing or
 369  
      *         null
 370  
      * @throws OperationFailedException unable to complete request
 371  
      * @throws PermissionDeniedException an authorization failure occurred
 372  
      */
 373  
     public List<ValidationResultInfo> validateState(@WebParam(name = "validationTypeKey") String validationTypeKey, @WebParam(name = "lifecycleKey") String lifecycleKey, @WebParam(name = "stateInfo") StateInfo stateInfo, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 374  
 
 375  
     /**
 376  
      * Creates a new State. The State key and Meta information may not
 377  
      * be set in the supplied data object.
 378  
      * 
 379  
      * @param lifecycleKey the identifier for the Lifecycle to which
 380  
      *        the State belongs
 381  
      * @param stateKey a unique identifier for the new State
 382  
      * @param stateInfo the data with which to create the State
 383  
      * @param contextInfo information containing the principalId and
 384  
      *        locale information about the caller of service operation
 385  
      * @return the new State
 386  
      * @throws AlreadyExistsException stateKey already exists
 387  
      * @throws DataValidationErrorException supplied data is invalid
 388  
      * @throws DoesNotExistException lifecycleKey is not found
 389  
      * @throws InvalidParameterException stateInfo or contextInfo is
 390  
      *         not valid
 391  
      * @throws MissingParameterException lifecycleKey, stateKey,
 392  
      *         stateInfo, or contextInfo is missing or null
 393  
      * @throws OperationFailedException unable to complete request
 394  
      * @throws PermissionDeniedException an authorization failure occurred
 395  
      * @throws ReadOnlyException an attempt at supplying information
 396  
      *         designated as read only
 397  
      */
 398  
     public StateInfo createState(@WebParam(name = "lifecycleKey") String lifecycleKey, @WebParam(name = "stateKey") String stateKey, @WebParam(name = "stateInfo") StateInfo stateInfo, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws AlreadyExistsException, DataValidationErrorException, DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException, ReadOnlyException;
 399  
 
 400  
     /**
 401  
      * Updates an existing State. The State key and Meta information
 402  
      * may not be changed.
 403  
      * 
 404  
      * @param stateKey the identifier for the State to be updated
 405  
      * @param stateInfo the new data for the State
 406  
      * @param contextInfo information containing the principalId and
 407  
      *        locale information about the caller of service operation
 408  
      * @return the updated State
 409  
      * @throws DataValidationErrorException supplied data is invalid
 410  
      * @throws DoesNotExistException stateKey is not found
 411  
      * @throws InvalidParameterException stateInfo or contextInfo is
 412  
      *         not valid
 413  
      * @throws MissingParameterException stateKey, stateInfo, or
 414  
      *         contextInfo is missing or null
 415  
      * @throws OperationFailedException unable to complete request
 416  
      * @throws PermissionDeniedException an authorization failure occurred
 417  
      * @throws ReadOnlyException an attempt at supplying information
 418  
      *         designated as read only
 419  
      * @throws VersionMismatchException an optimistic locking failure
 420  
      *         or the action was attempted on an out of date version
 421  
      */
 422  
     public StateInfo updateState(@WebParam(name = "stateKey") String stateKey, @WebParam(name = "stateInfo") StateInfo stateInfo, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DataValidationErrorException, DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException, ReadOnlyException, VersionMismatchException;
 423  
 
 424  
     /**
 425  
      * Deletes an existing State.
 426  
      * 
 427  
      * @param stateKey the identifier for the State to be deleted
 428  
      * @param contextInfo information containing the principalId and
 429  
      *        locale information about the caller of service operation
 430  
      * @return the status of the operation. This must always be true.
 431  
      * @throws DoesNotExistException stateKey is not found
 432  
      * @throws InvalidParameterException contextInfo is not valid
 433  
      * @throws MissingParameterException stateKey or contextInfo is
 434  
      *         missing or null
 435  
      * @throws OperationFailedException unable to complete request
 436  
      * @throws PermissionDeniedException an authorization failure occurred
 437  
      */
 438  
     public StatusInfo deleteState(@WebParam(name = "stateKey") String stateKey, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 439  
 }