Clover Coverage Report - Kuali Student 1.2.1-SNAPSHOT (Aggregated)
Coverage timestamp: Wed Nov 2 2011 04:03:58 EST
0   446   0   -
0   65   -   0
0     -  
1    
 
  AtpService       Line # 54 0 - 0 0 - -1.0
 
No Tests
 
1    /**
2    * Copyright 2010 The Kuali Foundation Licensed under the
3    * Educational Community License, Version 2.0 (the "License"); you may
4    * not use this file except in compliance with the License. You may
5    * obtain a copy of the License at
6    *
7    * http://www.osedu.org/licenses/ECL-2.0
8    *
9    * Unless required by applicable law or agreed to in writing,
10    * software distributed under the License is distributed on an "AS IS"
11    * BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
12    * or implied. See the License for the specific language governing
13    * permissions and limitations under the License.
14    */
15   
16    package org.kuali.student.core.atp.service;
17   
18    import java.util.Date;
19    import java.util.List;
20   
21    import javax.jws.WebParam;
22    import javax.jws.WebService;
23    import javax.jws.soap.SOAPBinding;
24   
25    import org.kuali.student.common.dictionary.service.DictionaryService;
26    import org.kuali.student.common.dto.StatusInfo;
27    import org.kuali.student.common.exceptions.AlreadyExistsException;
28    import org.kuali.student.common.exceptions.DataValidationErrorException;
29    import org.kuali.student.common.exceptions.DoesNotExistException;
30    import org.kuali.student.common.exceptions.InvalidParameterException;
31    import org.kuali.student.common.exceptions.MissingParameterException;
32    import org.kuali.student.common.exceptions.OperationFailedException;
33    import org.kuali.student.common.exceptions.PermissionDeniedException;
34    import org.kuali.student.common.exceptions.VersionMismatchException;
35    import org.kuali.student.common.search.service.SearchService;
36    import org.kuali.student.common.validation.dto.ValidationResultInfo;
37    import org.kuali.student.core.atp.dto.AtpDurationTypeInfo;
38    import org.kuali.student.core.atp.dto.AtpInfo;
39    import org.kuali.student.core.atp.dto.AtpSeasonalTypeInfo;
40    import org.kuali.student.core.atp.dto.AtpTypeInfo;
41    import org.kuali.student.core.atp.dto.DateRangeInfo;
42    import org.kuali.student.core.atp.dto.DateRangeTypeInfo;
43    import org.kuali.student.core.atp.dto.MilestoneInfo;
44    import org.kuali.student.core.atp.dto.MilestoneTypeInfo;
45   
46   
47    /**
48    * <b>Academic Time Period Service Description and Assumptions</b>
49    * <p>This service supports the management of Academic Time Periods and their associated Date Ranges and Milestones. The intent is to provide a flexible but structured way to define the various time frames that are used throughout the definition, offering and scheduling of Learning Units. This is a catalogue service with basic operations.</p>
50    *
51    */
52    @WebService(name = "AtpService", targetNamespace = "http://student.kuali.org/wsdl/atp")
53    @SOAPBinding(style = SOAPBinding.Style.DOCUMENT, use = SOAPBinding.Use.LITERAL, parameterStyle = SOAPBinding.ParameterStyle.WRAPPED)
 
54    public interface AtpService extends SearchService, DictionaryService {
55    /**
56    * Retrieves the list of academic time period types known by this service
57    * @return list of academic time period types
58    * @throws OperationFailedException unable to complete request
59    */
60    public List<AtpTypeInfo> getAtpTypes() throws OperationFailedException;
61   
62    /**
63    * Retrieves information about a particular academic time period type
64    * @param atpTypeKey academic time period type identifier
65    * @return academic time period type information
66    * @throws DoesNotExistException specified atp type not found
67    * @throws InvalidParameterException invalid atpTypeKey
68    * @throws MissingParameterException atpTypeKey not specified
69    * @throws OperationFailedException unable to complete request
70    */
71    public AtpTypeInfo getAtpType(@WebParam(name="atpTypeKey")String atpTypeKey) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException;
72   
73    /**
74    * Retrieves the list of Academic Time Period Seasonal Types known by this service
75    * @return List of academic time period seasonal types
76    * @throws OperationFailedException unable to complete request
77    */
78    public List<AtpSeasonalTypeInfo> getAtpSeasonalTypes() throws OperationFailedException;
79   
80    /**
81    * Retrieves information about a particular academic time period seasonal type
82    * @param atpSeasonalTypeKey academic time period seasonal type identifier
83    * @return academic time period seasonal type information
84    * @throws DoesNotExistException specified atp seasonal type not found
85    * @throws InvalidParameterException invalid atpSeasonalTypeKey
86    * @throws MissingParameterException atpSeasonalTypeKey not specified
87    * @throws OperationFailedException unable to complete request
88    */
89    public AtpSeasonalTypeInfo getAtpSeasonalType(@WebParam(name="atpSeasonalTypeKey")String atpSeasonalTypeKey) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException;
90   
91    /**
92    * Retrieves the list of Academic Time Period Duration Types known by this service
93    * @return List of academic time period duration types
94    * @throws OperationFailedException unable to complete request
95    */
96    public List<AtpDurationTypeInfo> getAtpDurationTypes() throws OperationFailedException;
97   
98    /**
99    * Retrieves information about a particular academic time period duration type
100    * @param atpDurationTypeKey academic time period duration type identifier
101    * @return academic time period duration type information
102    * @throws DoesNotExistException specified atp duration type not found
103    * @throws InvalidParameterException invalid atpDurationTypeKey
104    * @throws MissingParameterException atpDurationTypeKey not specified
105    * @throws OperationFailedException unable to complete request
106    */
107    public AtpDurationTypeInfo getAtpDurationType(@WebParam(name="atpDurationTypeKey")String atpDurationTypeKey) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException;
108   
109    /**
110    * Retrieves the list of milestone types known by this service
111    * @return List of milestone types
112    * @throws OperationFailedException unable to complete request
113    */
114    public List<MilestoneTypeInfo> getMilestoneTypes() throws OperationFailedException;
115   
116    /**
117    * Retrieves information about a particular milestone type
118    * @param milestoneTypeKey milestone type identifier
119    * @return milestone type information
120    * @throws DoesNotExistException specified milestone type not found
121    * @throws InvalidParameterException invalid milestoneTypeKey
122    * @throws MissingParameterException milestoneTypeKey not specified
123    * @throws OperationFailedException unable to complete request
124    */
125    public MilestoneTypeInfo getMilestoneType(@WebParam(name="milestoneTypeKey")String milestoneTypeKey) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException;
126   
127    /**
128    * Retrieves the list of milestone types that are defined for a particular Atp Type
129    * @param atpTypeKey atpTypeKey
130    * @return List of milestone types
131    * @throws DoesNotExistException specified atpTypeKey not found
132    * @throws InvalidParameterException invalid atpTypeKey
133    * @throws MissingParameterException atpTypeKey not specified
134    * @throws OperationFailedException unable to complete request
135    */
136    public List<MilestoneTypeInfo> getMilestoneTypesForAtpType(@WebParam(name="atpTypeKey")String atpTypeKey) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException;
137   
138    /**
139    * Retrieves the list of date range types known by this service
140    * @return List of date range types
141    * @throws OperationFailedException unable to complete request
142    */
143    public List<DateRangeTypeInfo> getDateRangeTypes() throws OperationFailedException;
144   
145    /**
146    * Retrieves information about a particular date range type
147    * @param dateRangeTypeKey date range type identifier
148    * @return date range type information
149    * @throws DoesNotExistException specified date range type not found
150    * @throws InvalidParameterException invalid dateRangeTypeKey
151    * @throws MissingParameterException dateRangeTypeKey not specified
152    * @throws OperationFailedException unable to complete request
153    */
154    public DateRangeTypeInfo getDateRangeType(@WebParam(name="dateRangeTypeKey")String dateRangeTypeKey) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException;
155   
156    /**
157    * Retrieves the list of dateRange types that are defined for a particular Atp Type
158    * @param atpTypeKey atpTypeKey
159    * @return List of milestone types
160    * @throws DoesNotExistException specified atpTypeKey not found
161    * @throws InvalidParameterException invalid atpTypeKey
162    * @throws MissingParameterException atpTypeKey not specified
163    * @throws OperationFailedException unable to complete request
164    */
165    public List<DateRangeTypeInfo> getDateRangeTypesForAtpType(@WebParam(name="atpTypeKey")String atpTypeKey) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException;
166   
167    /**
168    * Validates an academic time period. Depending on the value of validationType, this validation could be limited to tests on just the current object and its directly contained subobjects or expanded to perform all tests related to this object. If an identifier is present for the academic time period and a record is found for that identifier, the validation checks if the academic time period can be shifted to the new values. If a record cannot be found for the identifier, it is assumed that the record does not exist and as such, the checks performed will be much shallower, typically mimicking those performed by setting the validationType to the current object. This is a slightly different pattern from the standard validation as the caller provides the identifier in the create statement instead of the server assigning an identifier.
169    * @param validationType Identifier of the extent of validation
170    * @param atpInfo The academic time period information to be tested.
171    * @return Results from performing the validation
172    * @throws DoesNotExistException validationTypeKey not found
173    * @throws InvalidParameterException invalid validationTypeKey, atpInfo
174    * @throws MissingParameterException missing validationTypeKey, atpInfo
175    * @throws OperationFailedException unable to complete request
176    */
177    public List<ValidationResultInfo> validateAtp(@WebParam(name="validationType")String validationType, @WebParam(name="atpInfo")AtpInfo atpInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException;
178   
179    /**
180    * Validates a milestone. Depending on the value of validationType, this validation could be limited to tests on just the current object and its directly contained subobjects or expanded to perform all tests related to this object. If an identifier is present for the milestone and a record is found for that identifier, the validation checks if the milestone can be shifted to the new values. If a record cannot be found for the identifier, it is assumed that the record does not exist and as such, the checks performed will be much shallower, typically mimicking those performed by setting the validationType to the current object. This is a slightly different pattern from the standard validation as the caller provides the identifier in the create statement instead of the server assigning an identifier.
181    * @param validationType Identifier of the extent of validation
182    * @param milestoneInfo The milestone information to be tested.
183    * @return Results from performing the validation
184    * @throws DoesNotExistException validationTypeKey not found
185    * @throws InvalidParameterException invalid validationTypeKey, milestoneInfo
186    * @throws MissingParameterException missing validationTypeKey, milestoneInfo
187    * @throws OperationFailedException unable to complete request
188    */
189    public List<ValidationResultInfo> validateMilestone(@WebParam(name="validationType")String validationType, @WebParam(name="milestoneInfo")MilestoneInfo milestoneInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException;
190   
191    /**
192    * Validates a date range. Depending on the value of validationType, this validation could be limited to tests on just the current object and its directly contained subobjects or expanded to perform all tests related to this object. If an identifier is present for the date range and a record is found for that identifier, the validation checks if the academic time period can be shifted to the new values. If a record cannot be found for the identifier, it is assumed that the record does not exist and as such, the checks performed will be much shallower, typically mimicking those performed by setting the validationType to the current object. This is a slightly different pattern from the standard validation as the caller provides the identifier in the create statement instead of the server assigning an identifier.
193    * @param validationType Identifier of the extent of validation
194    * @param dateRangeInfo The date range information to be tested.
195    * @return Results from performing the validation
196    * @throws DoesNotExistException validationTypeKey not found
197    * @throws InvalidParameterException invalid validationTypeKey, dateRangeInfo
198    * @throws MissingParameterException missing validationTypeKey, dateRangeInfo
199    * @throws OperationFailedException unable to complete request
200    */
201    public List<ValidationResultInfo> validateDateRange(@WebParam(name="validationType")String validationType, @WebParam(name="dateRangeInfo")DateRangeInfo dateRangeInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException;
202   
203    /**
204    * Retrieves the details of a single Academic Time Period by atpKey
205    * @param atpKey Unique key of the Academic Time Period to be retrieved
206    * @return Details of the Academic Time Period requested
207    * @throws DoesNotExistException atpKey not found
208    * @throws InvalidParameterException invalid atpKey
209    * @throws MissingParameterException invalid atpKey
210    * @throws OperationFailedException unable to complete request
211    */
212    public AtpInfo getAtp(@WebParam(name="atpKey")String atpKey) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException;
213   
214    /**
215    * Retrieves the list of Academic Time Periods that the supplied date falls within
216    * @param searchDate Timestamp to be matched
217    * @return List of Academic Time Periods that contain the supplied searchDate
218    * @throws InvalidParameterException invalid searchDate
219    * @throws MissingParameterException invalid searchDate
220    * @throws OperationFailedException unable to complete request
221    */
222    public List<AtpInfo> getAtpsByDate(@WebParam(name="searchDate")Date searchDate) throws InvalidParameterException, MissingParameterException, OperationFailedException;
223   
224    /**
225    * Retrieves the list of Academic Time Periods that are totally contained within the supplied dates. The entire Atp falls within the supplied dates
226    * @param startDate Earliest Timestamp
227    * @param endDate Latest Timestamp
228    * @return List of Academic Time Periods that contain the supplied searchDate
229    * @throws InvalidParameterException invalid searchDate
230    * @throws MissingParameterException invalid searchDate
231    * @throws OperationFailedException unable to complete request
232    */
233    public List<AtpInfo> getAtpsByDates(@WebParam(name="startDate")Date startDate, @WebParam(name="endDate")Date endDate) throws InvalidParameterException, MissingParameterException, OperationFailedException;
234   
235    /**
236    * Retrieves a list of Academic Time Periods of the specified type
237    * @param atpTypeKey ATP type to be retrieved
238    * @return List of Academic Time Periods that contain the supplied date
239    * @throws InvalidParameterException invalid atpTypeKey
240    * @throws MissingParameterException invalid atpTypeKey
241    * @throws OperationFailedException unable to complete request
242    */
243    public List<AtpInfo> getAtpsByAtpType(@WebParam(name="atpTypeKey")String atpTypeKey) throws InvalidParameterException, MissingParameterException, OperationFailedException;
244   
245    /**
246    * Retrieves the details of the specified milestone
247    * @param milestoneKey Unique id of the milestone to be retrieved
248    * @return Details of requested milestone
249    * @throws DoesNotExistException milestoneKey not found
250    * @throws InvalidParameterException invalid milestoneKey
251    * @throws MissingParameterException invalid milestoneKey
252    * @throws OperationFailedException unable to complete request
253    */
254    public MilestoneInfo getMilestone(@WebParam(name="milestoneKey")String milestoneKey) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException;
255   
256    /**
257    * Retrieves the list of milestones for a specified Academic Time Period
258    * @param atpKey Unique key of the Academic Time Period to be retieved
259    * @return List of milestones for this Academic Time Period
260    * @throws InvalidParameterException invalid atpKey
261    * @throws MissingParameterException invalid atpKey
262    * @throws OperationFailedException unable to complete request
263    */
264    public List<MilestoneInfo> getMilestonesByAtp(@WebParam(name="atpKey")String atpKey) throws InvalidParameterException, MissingParameterException, OperationFailedException;
265   
266    /**
267    * Retrieves the list of milestones that fall within a specified set of dates
268    * @param startDate Start Date for date span
269    * @param endDate End Date for date span
270    * @return List of milestones that fall within this set of dates
271    * @throws InvalidParameterException One or more parameters invalid
272    * @throws MissingParameterException One or more parameter(s) missing
273    * @throws OperationFailedException unable to complete request
274    */
275    public List<MilestoneInfo> getMilestonesByDates(@WebParam(name="startDate")Date startDate, @WebParam(name="endDate")Date endDate) throws InvalidParameterException, MissingParameterException, OperationFailedException;
276   
277    /**
278    * Retrieves a list of milestones of a specified type that fall within a specified set of dates
279    * @param milestoneTypeKey Milestone type to be retrieved
280    * @param startDate Start Date for date range
281    * @param endDate End Date for date range
282    * @return List of milestones of this milestone type within this set of dates
283    * @throws InvalidParameterException One or more parameters invalid
284    * @throws MissingParameterException One or more parameters missing
285    * @throws OperationFailedException unable to complete request
286    */
287    public List<MilestoneInfo> getMilestonesByDatesAndType(@WebParam(name="milestoneTypeKey")String milestoneTypeKey, @WebParam(name="startDate")Date startDate, @WebParam(name="endDate")Date endDate) throws InvalidParameterException, MissingParameterException, OperationFailedException;
288   
289    /**
290    * Retrieves the details of the specified daterange
291    * @param dateRangeKey Unique id of the date range to be retrieved
292    * @return Details of requested daterange
293    * @throws DoesNotExistException dateRangeKey not found
294    * @throws InvalidParameterException invalid dateRangeKey
295    * @throws MissingParameterException missing dateRangeKey
296    * @throws OperationFailedException unable to complete request
297    */
298    public DateRangeInfo getDateRange(@WebParam(name="dateRangeKey")String dateRangeKey) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException;
299   
300    /**
301    * Retrieves the list of DateRanges for a specified Academic Time Period
302    * @param atpKey Unique key of the Academic Time Period to be retieved
303    * @return List of dateRanges for this Academic Time Period
304    * @throws InvalidParameterException invalid atpKey
305    * @throws MissingParameterException invalid atpKey
306    * @throws OperationFailedException unable to complete request
307    */
308    public List<DateRangeInfo> getDateRangesByAtp(@WebParam(name="atpKey")String atpKey) throws InvalidParameterException, MissingParameterException, OperationFailedException;
309   
310    /**
311    * Retrieves the list of DateRanges which encompass the specified date
312    * @param searchDate Timestamp to be matched
313    * @return List of dateRanges that contain the supplied searchDate
314    * @throws InvalidParameterException invalid searchDate
315    * @throws MissingParameterException invalid searchDate
316    * @throws OperationFailedException unable to complete request
317    */
318    public List<DateRangeInfo> getDateRangesByDate(@WebParam(name="searchDate")Date searchDate) throws InvalidParameterException, MissingParameterException, OperationFailedException;
319   
320    /**
321    * Creates a new Academic Time Period
322    * @param atpTypeKey Type of ATP to be created
323    * @param atpKey Key of ATP to be created
324    * @param atpInfo Details of ATP to be created
325    * @return Details of ATP just created
326    * @throws AlreadyExistsException ATP being created already exists
327    * @throws DataValidationErrorException One or more values invalid for this operation
328    * @throws InvalidParameterException One or more parameters invalid
329    * @throws MissingParameterException One or more parameters missing
330    * @throws OperationFailedException unable to complete request
331    * @throws PermissionDeniedException authorization failure
332    */
333    public AtpInfo createAtp(@WebParam(name="atpTypeKey")String atpTypeKey, @WebParam(name="atpKey")String atpKey, @WebParam(name="atpInfo")AtpInfo atpInfo) throws AlreadyExistsException, DataValidationErrorException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
334   
335    /**
336    * Updates an existing Academic Time Period
337    * @param atpKey Key of ATP to be updated
338    * @param atpInfo Details of updates to ATP being updated
339    * @return Details of ATP just updated
340    * @throws DataValidationErrorException One or more values invalid for this operation
341    * @throws DoesNotExistException ATP being updated does not exist
342    * @throws InvalidParameterException One or more parameters invalid
343    * @throws MissingParameterException One or more parameters missing
344    * @throws OperationFailedException unable to complete request
345    * @throws PermissionDeniedException authorization failure
346    * @throws VersionMismatchException The action was attempted on an out of date version.
347    */
348    public AtpInfo updateAtp(@WebParam(name="atpKey")String atpKey, @WebParam(name="atpInfo")AtpInfo atpInfo) throws DataValidationErrorException, DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException, VersionMismatchException;
349   
350    /**
351    * Deletes an existing Academic Time Period
352    * @param atpKey Key of ATP to be deleted
353    * @return status of the operation (success, failed)
354    * @throws DoesNotExistException ATP being deleted does not exist
355    * @throws InvalidParameterException One or more parameters invalid
356    * @throws MissingParameterException One or more parameters missing
357    * @throws OperationFailedException unable to complete request
358    * @throws PermissionDeniedException authorization failure
359    */
360    public StatusInfo deleteAtp(@WebParam(name="atpKey")String atpKey) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
361   
362    /**
363    * Add a new milestone to an existing Academic Time Period
364    * @param atpKey Key of ATP to be updated
365    * @param milestoneKey Id of milestone to be added
366    * @param milestoneInfo Details of milestone to be added
367    * @return Details of the newly created milestone
368    * @throws AlreadyExistsException Milestone being added already exists
369    * @throws DataValidationErrorException One or more values invalid for this operation
370    * @throws InvalidParameterException One or more parameters invalid
371    * @throws MissingParameterException One or more parameters missing
372    * @throws OperationFailedException unable to complete request
373    * @throws PermissionDeniedException authorization failure
374    */
375    public MilestoneInfo addMilestone(@WebParam(name="atpKey")String atpKey, @WebParam(name="milestoneKey")String milestoneKey, @WebParam(name="milestoneInfo")MilestoneInfo milestoneInfo) throws AlreadyExistsException, DataValidationErrorException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
376   
377    /**
378    * Updates an existing milestone.
379    * @param milestoneKey ID of milestone to be updated
380    * @param milestoneInfo Details of milestone to be updated
381    * @return Details of the updated milestone
382    * @throws DataValidationErrorException One or more values invalid for this operation
383    * @throws DoesNotExistException Milestone being updated does not exist
384    * @throws InvalidParameterException One or more parameters invalid
385    * @throws MissingParameterException One or more parameters missing
386    * @throws OperationFailedException unable to complete request
387    * @throws PermissionDeniedException authorization failure
388    * @throws VersionMismatchException The action was attempted on an out of date version.
389    */
390    public MilestoneInfo updateMilestone(@WebParam(name="milestoneKey")String milestoneKey, @WebParam(name="milestoneInfo")MilestoneInfo milestoneInfo) throws DataValidationErrorException, DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException, VersionMismatchException;
391   
392    /**
393    * Removes an existing milestone.
394    * @param milestoneKey Id of milestone to be removed
395    * @return Status of the operation (success, failed)
396    * @throws DoesNotExistException Milestone being removed does not exist
397    * @throws InvalidParameterException One or more parameters invalid
398    * @throws MissingParameterException One or more parameters missing
399    * @throws OperationFailedException unable to complete request
400    * @throws PermissionDeniedException authorization failure
401    */
402    public StatusInfo removeMilestone(@WebParam(name="milestoneKey")String milestoneKey) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
403   
404    /**
405    * Adds a new dateRange to an existing Academic Time Period
406    * @param atpKey key of the ATP to be associated with the dateRange
407    * @param dateRangeKey identifier of the dateRange to be added
408    * @param dateRangeInfo details of the dateRange to be added
409    * @return details of the newly created dateRange
410    * @throws AlreadyExistsException dateRange being added already exists
411    * @throws DataValidationErrorException one or more values invalid for this operation
412    * @throws InvalidParameterException one or more parameters invalid
413    * @throws MissingParameterException one or more parameters missing
414    * @throws OperationFailedException unable to complete request
415    * @throws PermissionDeniedException authorization failure
416    */
417    public DateRangeInfo addDateRange(@WebParam(name="atpKey")String atpKey, @WebParam(name="dateRangeKey")String dateRangeKey, @WebParam(name="dateRangeInfo")DateRangeInfo dateRangeInfo) throws AlreadyExistsException, DataValidationErrorException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
418   
419    /**
420    * Updates an existing daterange
421    * @param dateRangeKey identifier of daterange to be updated
422    * @param dateRangeInfo details of daterange to be updated
423    * @return details of the updated dateRange
424    * @throws DataValidationErrorException One or more values invalid for this operation
425    * @throws DoesNotExistException dateRange being updated does not exist
426    * @throws InvalidParameterException one or more parameters invalid
427    * @throws MissingParameterException one or more parameters missing
428    * @throws OperationFailedException unable to complete request
429    * @throws PermissionDeniedException authorization failure
430    * @throws VersionMismatchException action was attempted on an out of date version.
431    */
432    public DateRangeInfo updateDateRange(@WebParam(name="dateRangeKey")String dateRangeKey, @WebParam(name="dateRangeInfo")DateRangeInfo dateRangeInfo) throws DataValidationErrorException, DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException, VersionMismatchException;
433   
434    /**
435    * Removes an existing daterange.
436    * @param dateRangeKey key of daterange to be removed
437    * @return status of the operation (success, failed)
438    * @throws DoesNotExistException DateRange being removed does not exist
439    * @throws InvalidParameterException One or more parameters invalid
440    * @throws MissingParameterException One or more parameters missing
441    * @throws OperationFailedException unable to complete request
442    * @throws PermissionDeniedException authorization failure
443    */
444    public StatusInfo removeDateRange(@WebParam(name="dateRangeKey")String dateRangeKey) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
445   
446    }