View Javadoc

1   package org.kuali.student.enrollment.class2.courseoffering.service.impl;
2   
3   import junit.framework.Assert;
4   import org.kuali.student.enrollment.class1.lui.service.impl.LuiServiceDataLoader;
5   import org.kuali.student.enrollment.class2.courseoffering.service.RegistrationGroupCodeGenerator;
6   import org.kuali.student.enrollment.courseoffering.dto.ActivityOfferingAdminDisplayInfo;
7   import org.kuali.student.enrollment.courseoffering.dto.ActivityOfferingClusterInfo;
8   import org.kuali.student.enrollment.courseoffering.dto.ActivityOfferingInfo;
9   import org.kuali.student.enrollment.courseoffering.dto.CourseOfferingAdminDisplayInfo;
10  import org.kuali.student.enrollment.courseoffering.dto.CourseOfferingInfo;
11  import org.kuali.student.enrollment.courseoffering.dto.FormatOfferingInfo;
12  import org.kuali.student.enrollment.courseoffering.dto.RegistrationGroupInfo;
13  import org.kuali.student.enrollment.courseoffering.dto.SeatPoolDefinitionInfo;
14  import org.kuali.student.enrollment.lui.dto.LuiInfo;
15  import org.kuali.student.enrollment.lui.dto.LuiLuiRelationInfo;
16  import org.kuali.student.enrollment.lui.service.LuiService;
17  import org.junit.Test;
18  import org.junit.runner.RunWith;
19  
20  import org.kuali.rice.core.api.criteria.QueryByCriteria;
21  
22  import org.kuali.student.enrollment.courseoffering.service.CourseOfferingService;
23  import org.kuali.student.r2.common.dto.ContextInfo;
24  
25  import org.kuali.student.r2.common.dto.RichTextInfo;
26  import org.kuali.student.r2.common.dto.StatusInfo;
27  import org.kuali.student.r2.common.dto.ValidationResultInfo;
28  import org.kuali.student.r2.common.exceptions.AlreadyExistsException;
29  import org.kuali.student.r2.common.exceptions.DataValidationErrorException;
30  import org.kuali.student.r2.common.exceptions.DependentObjectsExistException;
31  import org.kuali.student.r2.common.exceptions.DoesNotExistException;
32  import org.kuali.student.r2.common.exceptions.InvalidParameterException;
33  import org.kuali.student.r2.common.exceptions.MissingParameterException;
34  import org.kuali.student.r2.common.exceptions.OperationFailedException;
35  import org.kuali.student.r2.common.exceptions.PermissionDeniedException;
36  import org.kuali.student.r2.common.exceptions.ReadOnlyException;
37  import org.kuali.student.r2.common.exceptions.VersionMismatchException;
38  
39  import org.kuali.student.r2.common.util.ContextUtils;
40  import org.kuali.student.r2.core.class1.type.dto.TypeInfo;
41  import org.kuali.student.r2.core.constants.AtpServiceConstants;
42  import org.kuali.student.r2.common.util.constants.LuiServiceConstants;
43  import org.kuali.student.r2.core.constants.PopulationServiceConstants;
44  import org.kuali.student.r2.core.population.dto.PopulationInfo;
45  import org.kuali.student.r2.core.population.dto.PopulationRuleInfo;
46  import org.kuali.student.r2.core.population.service.PopulationService;
47  import org.springframework.test.context.ContextConfiguration;
48  import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
49  import org.springframework.test.context.transaction.TransactionConfiguration;
50  import org.springframework.transaction.annotation.Transactional;
51  
52  import javax.annotation.Resource;
53  import javax.jws.WebParam;
54  import java.util.ArrayList;
55  import java.util.HashMap;
56  import java.util.List;
57  import java.util.Map;
58  
59  import static org.junit.Assert.*;
60  import static org.junit.Assert.assertEquals;
61  
62  
63  /*
64   * This class was used to test the class1 backed implementation of CourseOfferingService for CourseOffering, FormatOffering and ActivityOffering.
65   *
66   * For M4 it has been refactored.  Most of the test are now in TestCourseOfferingServiceMockImpl and only db dependent tests go here.
67   *
68   * See TestLprServiceImpl for an example.
69   *
70   * Once the tests can be run this should be unignored.
71   *
72   */
73  
74  @RunWith(SpringJUnit4ClassRunner.class)
75  @ContextConfiguration(locations = {"classpath:co-test-context.xml"})
76  //@ContextConfiguration(locations = {"co-test-with-class2-mock-context.xml"})
77  
78  @TransactionConfiguration(transactionManager = "JtaTxManager", defaultRollback = true)
79  @Transactional
80  public class TestCourseOfferingServiceImplM4 {
81      @Resource
82      private CourseOfferingService coServiceImpl;
83      @Resource
84      private PopulationService populationService;
85      @Resource
86      private LuiService luiService;
87  
88      //private SeatPoolDefinitionDao seatPoolDefinitionDao;
89      private ContextInfo contextInfo;
90  
91      @Resource
92      protected LuiServiceDataLoader dataLoader = new LuiServiceDataLoader();
93  
94      private void before()  {
95          contextInfo = ContextUtils.createDefaultContextInfo();
96          contextInfo.setPrincipalId("admin");
97          contextInfo.setAuthenticatedPrincipalId("admin");
98          try {
99              dataLoader.loadData();
100         } catch (Exception ex) {
101             throw new RuntimeException(ex);
102         }
103     }
104 
105     private SeatPoolDefinitionInfo _constructSeatPoolDefinitionInfoById (Integer val) {
106         String extension = "";
107         if (val != null) {
108             extension += val;
109         }
110         SeatPoolDefinitionInfo seatPoolDefinitionInfo = new SeatPoolDefinitionInfo();
111         seatPoolDefinitionInfo.setName("TestSeatPoolDefinitionInfo-Id" + extension);
112         seatPoolDefinitionInfo.setStateKey("TestSeatPoolDefinitionInfo-StateKey1" + extension);
113         seatPoolDefinitionInfo.setTypeKey("TestSeatPoolDefinitionInfo-TypeKey1" + extension);
114         seatPoolDefinitionInfo.setExpirationMilestoneTypeKey("TestSeatPoolDefinitionInfo-MilestoneKey1" + extension);
115         seatPoolDefinitionInfo.setIsPercentage(false);
116         seatPoolDefinitionInfo.setSeatLimit(50);
117         seatPoolDefinitionInfo.setProcessingPriority(3);
118         return seatPoolDefinitionInfo;
119     }
120 
121     private List<SeatPoolDefinitionInfo> _constructSeatPoolDefinitionInfoByIdList() {
122         SeatPoolDefinitionInfo ref = _constructSeatPoolDefinitionInfoById(2);
123         SeatPoolDefinitionInfo three = _constructSeatPoolDefinitionInfoById(3);
124         SeatPoolDefinitionInfo four = _constructSeatPoolDefinitionInfoById(4);
125         SeatPoolDefinitionInfo five = _constructSeatPoolDefinitionInfoById(5);
126         List<SeatPoolDefinitionInfo> poolList = new ArrayList<SeatPoolDefinitionInfo>();
127         poolList.add(ref);
128         poolList.add(three);
129         poolList.add(four);
130         poolList.add(five);
131         return poolList;
132     }
133 
134     private PopulationInfo _constructPopulationInfo(Integer val) {
135         String extension = "";
136         if (val != null) {
137             extension += val;
138         }
139         PopulationInfo populationInfo = new PopulationInfo();
140         populationInfo.setName("TestPop" + extension);
141         RichTextInfo richTextInfo = new RichTextInfo();
142         richTextInfo.setPlain("plain" + extension);
143         richTextInfo.setFormatted("formatted" + extension);
144         populationInfo.setDescr(richTextInfo);
145         populationInfo.setStateKey(PopulationServiceConstants.POPULATION_ACTIVE_STATE_KEY);
146         populationInfo.setTypeKey(PopulationServiceConstants.POPULATION_STUDENT_TYPE_KEY);
147         return populationInfo;
148     }
149 
150     private List<PopulationInfo> _constructPopulationList() {
151         PopulationInfo ref = _constructPopulationInfo(2);
152         PopulationInfo three = _constructPopulationInfo(3);
153         PopulationInfo four = _constructPopulationInfo(4);
154         PopulationInfo five = _constructPopulationInfo(5);
155         List<PopulationInfo> popList = new ArrayList<PopulationInfo>();
156         popList.add(ref);
157         popList.add(three);
158         popList.add(four);
159         popList.add(five);
160         return popList;
161     }
162 
163     private PopulationRuleInfo _constructExclusionPopulationRuleInfo() {
164         PopulationRuleInfo populationRuleInfo = new PopulationRuleInfo();
165         populationRuleInfo.setName("TestPopRule");
166         RichTextInfo richTextInfo = new RichTextInfo();
167         richTextInfo.setPlain("rule-plain");
168         richTextInfo.setFormatted("rule-formatted");
169         populationRuleInfo.setDescr(richTextInfo);
170         populationRuleInfo.setStateKey(PopulationServiceConstants.POPULATION_RULE_ACTIVE_STATE_KEY);
171         populationRuleInfo.setTypeKey(PopulationServiceConstants.POPULATION_RULE_TYPE_EXCLUSION_KEY);
172         return populationRuleInfo;
173     }
174 
175     private RegistrationGroupInfo _constructRegistrationGroupInfoById (Integer val) {
176         String extension = "";
177         if (val != null) {
178             extension += val;
179         }
180         RegistrationGroupInfo registrationGroupInfo = new RegistrationGroupInfo();
181         registrationGroupInfo.setName("TestRegistrationGroupInfo-Id" + extension);
182         registrationGroupInfo.setStateKey("TestRegistrationGroupInfo-StateKey1" + extension);
183         registrationGroupInfo.setTypeKey("TestRegistrationGroupInfo-TypeKey1" + extension);
184         registrationGroupInfo.setFormatOfferingId("Lui-6");
185         registrationGroupInfo.setCourseOfferingId("Lui-1");
186         registrationGroupInfo.setTermId("20122");
187         registrationGroupInfo.setRegistrationCode("02" + extension);
188 
189         List<String> activityOfferingIds = new ArrayList<String>();
190         activityOfferingIds.add("Lui-2");
191         activityOfferingIds.add("Lui-5");
192 
193         registrationGroupInfo.setActivityOfferingIds(activityOfferingIds);
194         registrationGroupInfo.setIsGenerated(true);
195         registrationGroupInfo.setTypeKey(LuiServiceConstants.REGISTRATION_GROUP_TYPE_KEY);
196         registrationGroupInfo.setStateKey(LuiServiceConstants.REGISTRATION_GROUP_OPEN_STATE_KEY);
197         return registrationGroupInfo;
198     }
199 
200     private RegistrationGroupInfo _constructRegistrationGroupInfo2() {
201         String extension = "-foo";
202         RegistrationGroupInfo registrationGroupInfo = new RegistrationGroupInfo();
203         registrationGroupInfo.setName("TestRegistrationGroupInfo-Id" + extension);
204         registrationGroupInfo.setStateKey("TestRegistrationGroupInfo-StateKey1" + extension);
205         registrationGroupInfo.setTypeKey("TestRegistrationGroupInfo-TypeKey1" + extension);
206         registrationGroupInfo.setFormatOfferingId("Lui-6");
207         registrationGroupInfo.setCourseOfferingId("Lui-1");
208         registrationGroupInfo.setTermId("20122");
209         registrationGroupInfo.setRegistrationCode("02" + extension);
210 
211         List<String> activityOfferingIds = new ArrayList<String>();
212         activityOfferingIds.add("Lui-2");
213         activityOfferingIds.add("Lui-Lab2");
214 
215         registrationGroupInfo.setActivityOfferingIds(activityOfferingIds);
216         registrationGroupInfo.setIsGenerated(true);
217         registrationGroupInfo.setTypeKey(LuiServiceConstants.REGISTRATION_GROUP_TYPE_KEY);
218         registrationGroupInfo.setStateKey(LuiServiceConstants.REGISTRATION_GROUP_OPEN_STATE_KEY);
219         return registrationGroupInfo;
220     }
221 
222     private List<RegistrationGroupInfo> _constructRegistrationGroupInfoByIdList() {
223         RegistrationGroupInfo ref = _constructRegistrationGroupInfoById(2);
224         RegistrationGroupInfo three = _constructRegistrationGroupInfoById(3);
225         RegistrationGroupInfo four = _constructRegistrationGroupInfoById(4);
226         RegistrationGroupInfo five = _constructRegistrationGroupInfoById(5);
227         List<RegistrationGroupInfo> rgList = new ArrayList<RegistrationGroupInfo>();
228         rgList.add(ref);
229         rgList.add(three);
230         rgList.add(four);
231         rgList.add(five);
232         return rgList;
233     }
234 
235     // ============================================== TESTS ======================================================
236     @Test
237     public void testRegCodeGenerator() {
238         RegistrationGroupCodeGenerator generator = new FourDigitRegistrationGroupCodeGenerator();
239         CourseOfferingService coService = new FakeCOService();
240         try {
241             FormatOfferingInfo foInfo = coService.getFormatOffering("foo", null);
242             generator.initializeGenerator(coService, foInfo, null, null);
243             String prefix = "02";
244             for (int i = 1; i <= 99; i++) {
245                 String code = generator.generateRegistrationGroupCode(foInfo, null, null);
246                 String answer = prefix;
247                 if (i < 10) {
248                     answer += "0";
249                 }
250                 answer += i;
251                 assertEquals(answer, code);
252             }
253             // Now see if it throws an exception
254             boolean codeGenerated = true;
255             try {
256                 generator.generateRegistrationGroupCode(foInfo, null, null);
257             } catch (RuntimeException e) {
258                 codeGenerated = false;
259             }
260             assertFalse(codeGenerated);
261         } catch (Exception e) {
262             assert(false);
263         }
264     }
265     @Test
266     public void testGetAndRemoveRegistrationGroupsByFormatOffering() {
267         before();
268 
269         RegistrationGroupInfo info = _constructRegistrationGroupInfoById(null);
270         RegistrationGroupInfo info2 = _constructRegistrationGroupInfo2();
271         try {
272             String foId = "Lui-6";
273             RegistrationGroupInfo created = coServiceImpl.createRegistrationGroup(foId, LuiServiceConstants.REGISTRATION_GROUP_TYPE_KEY, info, contextInfo);
274             RegistrationGroupInfo created2 = coServiceImpl.createRegistrationGroup(foId, LuiServiceConstants.REGISTRATION_GROUP_TYPE_KEY, info2, contextInfo);
275 
276             List<RegistrationGroupInfo> rgInfos = coServiceImpl.getRegistrationGroupsByFormatOffering(foId, contextInfo);
277             assertEquals(2, rgInfos.size());
278             for (RegistrationGroupInfo rgInfo: rgInfos) {
279                 List<String> aoIds = rgInfo.getActivityOfferingIds();
280                 for (String aoId: aoIds) {
281                     // I would prefer to get AO via the coService, but the Lui Loader only handles LUIs
282                     LuiInfo luiInfo = luiService.getLui(aoId, contextInfo);
283                     assertNotNull(luiInfo); // Should be trivially true
284                 }
285             }
286             // Now remove the reg groups
287             coServiceImpl.deleteRegistrationGroupsByFormatOffering(foId, contextInfo);
288             List<RegistrationGroupInfo> rgInfos2 = coServiceImpl.getRegistrationGroupsByFormatOffering(foId, contextInfo);
289             assertEquals(0, rgInfos2.size());
290             for (RegistrationGroupInfo rgInfo: rgInfos) {
291                 boolean found = true;
292                 try {
293                     // Should not be able to find the old registration groups
294                     coServiceImpl.getRegistrationGroup(rgInfo.getId(), contextInfo);
295                 } catch (DoesNotExistException e) { // Should use DoesNot
296                     found = false;
297                 }
298                 if (found) {
299                     assert(false);
300                 }
301             }
302         } catch (Exception e) {
303             e.printStackTrace();
304             assert(false);
305         }
306     }
307     @Test
308     public void testCreateUpdateRegistrationGroupInfoGet() {
309         before();
310 
311         RegistrationGroupInfo info = _constructRegistrationGroupInfoById(null);
312         try {
313             RegistrationGroupInfo created = coServiceImpl.createRegistrationGroup("Lui-6", LuiServiceConstants.REGISTRATION_GROUP_TYPE_KEY, info, contextInfo);
314             RegistrationGroupInfo fetched = coServiceImpl.getRegistrationGroup(created.getId(), contextInfo);
315             Assert.assertEquals(created.getName(), fetched.getName());
316             Assert.assertEquals(created.getStateKey(), fetched.getStateKey());
317             Assert.assertEquals(created.getTypeKey(), fetched.getTypeKey());
318             Assert.assertEquals(created.getFormatOfferingId(), fetched.getFormatOfferingId());
319             Assert.assertEquals(created.getRegistrationCode(), fetched.getRegistrationCode());
320             Assert.assertEquals(created.getCourseOfferingId(), fetched.getCourseOfferingId());
321             Assert.assertEquals(created.getId(), fetched.getId());
322 
323             List<LuiLuiRelationInfo> llrs = luiService.getLuiLuiRelationsByLui(fetched.getId(), contextInfo);
324 
325             List<String> activityOfferingIds = new ArrayList<String>();
326             activityOfferingIds.add("Lui-2");
327             activityOfferingIds.add("Lui-Lab2");
328             fetched.setActivityOfferingIds(null);
329             fetched.setActivityOfferingIds(activityOfferingIds);
330             fetched.setFormatOfferingId(null);
331             fetched.setFormatOfferingId("Lui-7");
332             RegistrationGroupInfo updated = coServiceImpl.updateRegistrationGroup(fetched.getId(), fetched, contextInfo);
333 
334             List<LuiLuiRelationInfo> llrs1 = luiService.getLuiLuiRelationsByLui(updated.getId(), contextInfo);
335             coServiceImpl.deleteRegistrationGroup(updated.getId(), contextInfo);
336 
337             List<LuiLuiRelationInfo> llrsAfter = luiService.getLuiLuiRelationsByLui(updated.getId(), contextInfo);
338             try{
339                 RegistrationGroupInfo fetchedAfterDelete = coServiceImpl.getRegistrationGroup(updated.getId(), contextInfo);
340                 //This should throw an exception since the reg group was deleted
341                 assert(false);
342             }catch(DoesNotExistException e){
343                 assert(true);
344             }
345             System.out.println("here");
346 
347 
348         } catch (Exception e) {
349             e.printStackTrace();
350             assert(false);
351         }
352     }
353 
354     @Test
355     public void testPopulation() {
356         before();
357         List<PopulationInfo> popList = _constructPopulationList();
358         try {
359             PopulationInfo refCreated = populationService.createPopulation(popList.get(0), contextInfo);
360             PopulationInfo threeCreated = populationService.createPopulation(popList.get(1), contextInfo);
361             PopulationInfo fourCreated = populationService.createPopulation(popList.get(2), contextInfo);
362             // Now the pop rule
363             PopulationRuleInfo ruleInfo = _constructExclusionPopulationRuleInfo();
364             ruleInfo.setReferencePopulationId(refCreated.getId());
365             List<String> childIds = new ArrayList<String>();
366             childIds.add(threeCreated.getId());
367             childIds.add(fourCreated.getId());
368             ruleInfo.setChildPopulationIds(childIds);
369             // Create the rule info
370             PopulationRuleInfo ruleInfoCreated = populationService.createPopulationRule(ruleInfo, contextInfo);
371             // Fetch it
372             PopulationRuleInfo ruleInfoFetched = populationService.getPopulationRule(ruleInfoCreated.getId(), contextInfo);
373             PopulationInfo combined = populationService.createPopulation(popList.get(3), contextInfo);
374             populationService.applyPopulationRuleToPopulation(ruleInfoFetched.getId(), combined.getId(), contextInfo);
375             SeatPoolDefinitionInfo info = _constructSeatPoolDefinitionInfoById(null);
376             info.setPopulationId(combined.getId());
377             SeatPoolDefinitionInfo created = coServiceImpl.createSeatPoolDefinition(info, contextInfo);
378             PopulationInfo retrieved = populationService.getPopulation(created.getPopulationId(), contextInfo);
379             assertEquals(combined.getId(), retrieved.getId());
380         } catch (Exception e) {
381             e.printStackTrace();
382             assert(false);
383         }
384     }
385 
386     @Test
387     public void testCreateSeatPoolDefinitionGet() {
388         before();
389         SeatPoolDefinitionInfo info = _constructSeatPoolDefinitionInfoById(null);
390         try {
391             SeatPoolDefinitionInfo created = coServiceImpl.createSeatPoolDefinition(info, contextInfo);
392             SeatPoolDefinitionInfo fetched = coServiceImpl.getSeatPoolDefinition(created.getId(), contextInfo);
393             Assert.assertEquals(info.getName(), fetched.getName());
394             Assert.assertEquals(info.getStateKey(), fetched.getStateKey());
395             Assert.assertEquals(info.getTypeKey(), fetched.getTypeKey());
396             Assert.assertEquals(info.getExpirationMilestoneTypeKey(), fetched.getExpirationMilestoneTypeKey());
397             Assert.assertEquals(info.getIsPercentage(), fetched.getIsPercentage());
398             Assert.assertEquals(info.getSeatLimit(), fetched.getSeatLimit());
399             Assert.assertEquals(info.getProcessingPriority(), fetched.getProcessingPriority());
400         } catch (Exception e) {
401             e.printStackTrace();
402             assert(false);
403         }
404     }
405 
406     @Test
407     public void testCreateSeatPoolDefinitionUpdateDelete() {
408         before();
409         SeatPoolDefinitionInfo info = _constructSeatPoolDefinitionInfoById(null);
410         try {
411             SeatPoolDefinitionInfo created = coServiceImpl.createSeatPoolDefinition(info, contextInfo);
412             SeatPoolDefinitionInfo fetched = coServiceImpl.getSeatPoolDefinition(created.getId(), contextInfo);
413             fetched.setSeatLimit(5);
414             fetched.setExpirationMilestoneTypeKey(AtpServiceConstants.MILESTONE_SEATPOOL_FIRST_DAY_OF_CLASSES_TYPE_KEY);
415             coServiceImpl.updateSeatPoolDefinition(fetched.getId(), fetched, contextInfo);
416             SeatPoolDefinitionInfo fetched2 = coServiceImpl.getSeatPoolDefinition(created.getId(), contextInfo);
417             assertEquals(new Integer(5), fetched2.getSeatLimit());
418             assertEquals(AtpServiceConstants.MILESTONE_SEATPOOL_FIRST_DAY_OF_CLASSES_TYPE_KEY, fetched2.getExpirationMilestoneTypeKey());
419             coServiceImpl.deleteSeatPoolDefinition(fetched.getId(), contextInfo);
420             boolean found = true;
421             try {
422                 coServiceImpl.getSeatPoolDefinition(fetched.getId(), contextInfo);
423             } catch (DoesNotExistException e) {
424                 found = false;
425             }
426             if (found) {
427                 assert(false); // Exception should have been thrown
428             }
429         } catch (Exception e) {
430             e.printStackTrace();
431             assert(false);
432         }
433     }
434 
435     @Test
436     public void testGenerateRegistrationGroupsSimple() throws DoesNotExistException,
437        			InvalidParameterException, MissingParameterException,
438        			OperationFailedException, PermissionDeniedException, AlreadyExistsException {
439 
440         before();
441         try {
442             List<RegistrationGroupInfo> rgList = coServiceImpl.generateRegistrationGroupsForFormatOffering("Lui-6", contextInfo);
443             Assert.assertEquals(1, rgList.size());
444         } catch (Exception e) {
445             e.printStackTrace();
446             assert(false);
447         }
448     }
449 
450 }
451 
452 /**
453  * To test UMDRegGroupCodeGenerator
454  */
455 class FakeCOService implements CourseOfferingService {
456     Map<String, List<RegistrationGroupInfo>> foIdsToRegGroups = new HashMap<String, List<RegistrationGroupInfo>>();
457     CourseOfferingInfo coInfo;
458     List<FormatOfferingInfo> foInfoList = new ArrayList<FormatOfferingInfo>();
459 
460     private static RegistrationGroupInfo createRegGroup(String regGroupCode) {
461         RegistrationGroupInfo info = new RegistrationGroupInfo();
462         info.setName(regGroupCode);
463         return info;
464     }
465 
466     public FakeCOService() {
467         // Create a co
468         String coId = "CO";
469         String foId1 = "fo0100", foId2 = "fo0300", foId3 = "newFo";
470         coInfo = new CourseOfferingInfo();
471         coInfo.setId(coId);
472         // Create two fos
473         FormatOfferingInfo fo1 = new FormatOfferingInfo();
474         fo1.setCourseOfferingId(coId);
475         fo1.setId(foId1);
476         FormatOfferingInfo fo2 = new FormatOfferingInfo();
477         fo2.setCourseOfferingId(coId);
478         fo2.setId(foId2);
479         FormatOfferingInfo fo3 = new FormatOfferingInfo();
480         fo3.setCourseOfferingId(coId);
481         fo3.setId(foId3);
482         foInfoList.add(fo1);
483         foInfoList.add(fo2);
484         foInfoList.add(fo3);
485 
486         List<RegistrationGroupInfo> rg0100 = new ArrayList<RegistrationGroupInfo>();
487         List<RegistrationGroupInfo> rg0300 = new ArrayList<RegistrationGroupInfo>();
488         foIdsToRegGroups.put(foId1, rg0100);
489         foIdsToRegGroups.put(foId2, rg0300);
490 
491         // Create a 01-- reg group
492         rg0100.add(createRegGroup("0101"));
493         rg0100.add(createRegGroup("0102"));
494         rg0100.add(createRegGroup("0103"));
495 
496         // Create a 03-- reg group
497         rg0300.add(createRegGroup("0301"));
498         rg0300.add(createRegGroup("0302"));
499     }
500 
501     @Override
502     public CourseOfferingAdminDisplayInfo getCourseOfferingAdminDisplay(@WebParam(name = "courseOfferingId") String courseOfferingId, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException {
503         return null;  //To change body of implemented methods use File | Settings | File Templates.
504     }
505 
506     @Override
507     public List<CourseOfferingAdminDisplayInfo> getCourseOfferingAdminDisplaysByIds(@WebParam(name = "courseOfferingIds") List<String> courseOfferingIds, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException {
508         return null;  //To change body of implemented methods use File | Settings | File Templates.
509     }
510 
511     @Override
512     public ActivityOfferingAdminDisplayInfo getActivityOfferingAdminDisplay(@WebParam(name = "activityOfferingId") String activityOfferingId, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException {
513         return null;  //To change body of implemented methods use File | Settings | File Templates.
514     }
515 
516     @Override
517     public List<ActivityOfferingAdminDisplayInfo> getActivityOfferingAdminDisplaysByIds(@WebParam(name = "activityOfferingIds") List<String> activityOfferingIds, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException {
518         return null;  //To change body of implemented methods use File | Settings | File Templates.
519     }
520 
521     @Override
522     public List<ActivityOfferingAdminDisplayInfo> getActivityOfferingAdminDisplaysForCourseOffering(@WebParam(name = "courseOfferingId") String courseOfferingId, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException {
523         return null;  //To change body of implemented methods use File | Settings | File Templates.
524     }
525 
526     @Override
527     public TypeInfo getCourseOfferingType(@WebParam(name = "courseOfferingTypeKey") String courseOfferingTypeKey, @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException {
528         return null;  //To change body of implemented methods use File | Settings | File Templates.
529     }
530 
531     @Override
532     public List<TypeInfo> getCourseOfferingTypes(@WebParam(name = "context") ContextInfo context) throws InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException {
533         return null;  //To change body of implemented methods use File | Settings | File Templates.
534     }
535 
536     @Override
537     public List<TypeInfo> getInstructorTypesForCourseOfferingType(@WebParam(name = "courseOfferingTypeKey") String courseOfferingTypeKey, @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException {
538         return null;  //To change body of implemented methods use File | Settings | File Templates.
539     }
540 
541     @Override
542     public CourseOfferingInfo getCourseOffering(@WebParam(name = "courseOfferingId") String courseOfferingId, @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException {
543         return coInfo;
544     }
545 
546     @Override
547     public List<CourseOfferingInfo> getCourseOfferingsByIds(@WebParam(name = "courseOfferingIds") List<String> courseOfferingIds, @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException {
548         return null;  //To change body of implemented methods use File | Settings | File Templates.
549     }
550 
551     @Override
552     public List<CourseOfferingInfo> getCourseOfferingsByCourse(@WebParam(name = "courseId") String courseId, @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException {
553         return null;  //To change body of implemented methods use File | Settings | File Templates.
554     }
555 
556     @Override
557     public List<CourseOfferingInfo> getCourseOfferingsByCourseAndTerm(@WebParam(name = "courseId") String courseId, @WebParam(name = "termId") String termId, @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException {
558         return null;  //To change body of implemented methods use File | Settings | File Templates.
559     }
560 
561     @Override
562     public List<String> getCourseOfferingIdsByTerm(@WebParam(name = "termId") String termId, @WebParam(name = "useIncludedTerm") Boolean useIncludedTerm, @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException {
563         return null;  //To change body of implemented methods use File | Settings | File Templates.
564     }
565 
566     @Override
567     public List<String> getCourseOfferingIdsByTermAndSubjectArea(@WebParam(name = "termId") String termId, @WebParam(name = "subjectArea") String subjectArea, @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException {
568         return null;  //To change body of implemented methods use File | Settings | File Templates.
569     }
570 
571     @Override
572     public List<CourseOfferingInfo> getCourseOfferingsByTermAndInstructor(@WebParam(name = "termId") String termId, @WebParam(name = "instructorId") String instructorId, @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException {
573         return null;  //To change body of implemented methods use File | Settings | File Templates.
574     }
575 
576     @Override
577     public List<String> getCourseOfferingIdsByTermAndUnitsContentOwner(@WebParam(name = "termId") String termId, @WebParam(name = "unitsContentOwnerId") String unitsContentOwnerId, @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException {
578         return null;  //To change body of implemented methods use File | Settings | File Templates.
579     }
580 
581     @Override
582     public List<String> getCourseOfferingIdsByType(@WebParam(name = "typeKey") String typeKey, @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException {
583         return null;  //To change body of implemented methods use File | Settings | File Templates.
584     }
585 
586     @Override
587     public List<String> getValidCanonicalCourseToCourseOfferingOptionKeys(@WebParam(name = "context") ContextInfo context) throws InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException, ReadOnlyException {
588         return null;  //To change body of implemented methods use File | Settings | File Templates.
589     }
590 
591     @Override
592     public List<String> getValidRolloverOptionKeys(@WebParam(name = "context") ContextInfo context) throws InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException, ReadOnlyException {
593         return null;  //To change body of implemented methods use File | Settings | File Templates.
594     }
595 
596     @Override
597     public CourseOfferingInfo createCourseOffering(@WebParam(name = "courseId") String courseId, @WebParam(name = "termId") String termId, @WebParam(name = "courseOfferingTypeKey") String courseOfferingTypeKey, @WebParam(name = "courseOfferingInfo") CourseOfferingInfo courseOfferingInfo, @WebParam(name = "optionKeys") List<String> optionKeys, @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, DataValidationErrorException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException, ReadOnlyException {
598         return null;  //To change body of implemented methods use File | Settings | File Templates.
599     }
600 
601     @Override
602     public CourseOfferingInfo rolloverCourseOffering(@WebParam(name = "sourceCourseOfferingId") String sourceCourseOfferingId, @WebParam(name = "targetTermId") String targetTermId, @WebParam(name = "optionKeys") List<String> optionKeys, @WebParam(name = "context") ContextInfo context) throws AlreadyExistsException, DoesNotExistException, DataValidationErrorException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException, ReadOnlyException {
603         return null;  //To change body of implemented methods use File | Settings | File Templates.
604     }
605 
606     @Override
607     public CourseOfferingInfo updateCourseOffering(@WebParam(name = "courseOfferingId") String courseOfferingId, @WebParam(name = "courseOfferingInfo") CourseOfferingInfo courseOfferingInfo, @WebParam(name = "context") ContextInfo context) throws DataValidationErrorException, DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException, ReadOnlyException, VersionMismatchException {
608         return null;  //To change body of implemented methods use File | Settings | File Templates.
609     }
610 
611     @Override
612     public CourseOfferingInfo updateCourseOfferingFromCanonical(@WebParam(name = "courseOfferingId") String courseOfferingId, @WebParam(name = "optionKeys") List<String> optionKeys, @WebParam(name = "context") ContextInfo context) throws DataValidationErrorException, DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException, VersionMismatchException {
613         return null;  //To change body of implemented methods use File | Settings | File Templates.
614     }
615 
616     @Override
617     public StatusInfo deleteCourseOffering(@WebParam(name = "courseOfferingId") String courseOfferingId, @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException, DependentObjectsExistException {
618         return null;  //To change body of implemented methods use File | Settings | File Templates.
619     }
620 
621     @Override
622     public StatusInfo deleteCourseOfferingCascaded(@WebParam(name = "courseOfferingId") String courseOfferingId, @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException {
623         return null;  //To change body of implemented methods use File | Settings | File Templates.
624     }
625 
626     @Override
627     public List<ValidationResultInfo> validateCourseOffering(@WebParam(name = "validationType") String validationType, @WebParam(name = "courseOfferingInfo") CourseOfferingInfo courseOfferingInfo, @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException {
628         return null;  //To change body of implemented methods use File | Settings | File Templates.
629     }
630 
631     @Override
632     public List<ValidationResultInfo> validateCourseOfferingFromCanonical(@WebParam(name = "courseOfferingInfo") CourseOfferingInfo courseOfferingInfo, @WebParam(name = "optionKeys") List<String> optionKeys, @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException {
633         return null;  //To change body of implemented methods use File | Settings | File Templates.
634     }
635 
636     @Override
637     public List<RegistrationGroupInfo> generateRegistrationGroupsForFormatOffering(String formatOfferingId, ContextInfo context) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException, AlreadyExistsException {
638         return null;  //To change body of implemented methods use File | Settings | File Templates.
639     }
640 
641     @Override
642     public FormatOfferingInfo getFormatOffering(@WebParam(name = "formatOfferingId") String formatOfferingId, @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException {
643         return foInfoList.get(2);
644     }
645 
646     @Override
647     public List<FormatOfferingInfo> getFormatOfferingsByCourseOffering(@WebParam(name = "courseOfferingId") String courseOfferingId, @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException {
648         return foInfoList;
649     }
650 
651     @Override
652     public FormatOfferingInfo createFormatOffering(@WebParam(name = "courseOfferingId") String courseOfferingId, @WebParam(name = "formatId") String formatId, @WebParam(name = "formatOfferingType") String formatOfferingType, @WebParam(name = "formatOfferingInfo") FormatOfferingInfo formatOfferingInfo, @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, DataValidationErrorException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException, ReadOnlyException {
653         return null;  //To change body of implemented methods use File | Settings | File Templates.
654     }
655 
656     @Override
657     public FormatOfferingInfo updateFormatOffering(@WebParam(name = "formatOfferingId") String formatOfferingId, @WebParam(name = "formatOfferingInfo") FormatOfferingInfo formatOfferingInfo, @WebParam(name = "context") ContextInfo context) throws DataValidationErrorException, DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException, ReadOnlyException, VersionMismatchException {
658         return null;  //To change body of implemented methods use File | Settings | File Templates.
659     }
660 
661     @Override
662     public List<ValidationResultInfo> validateFormatOffering(@WebParam(name = "validationType") String validationType, @WebParam(name = "formatOfferingInfo") FormatOfferingInfo formatOfferingInfo, @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException {
663         return null;  //To change body of implemented methods use File | Settings | File Templates.
664     }
665 
666     @Override
667     public StatusInfo deleteFormatOffering(@WebParam(name = "formatOfferingId") String formatOfferingId, @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException, DependentObjectsExistException {
668         return null;  //To change body of implemented methods use File | Settings | File Templates.
669     }
670 
671     @Override
672     public StatusInfo deleteFormatOfferingCascaded(@WebParam(name = "formatOfferingId") String formatOfferingId, @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException {
673         return null;  //To change body of implemented methods use File | Settings | File Templates.
674     }
675 
676     @Override
677     public TypeInfo getActivityOfferingType(@WebParam(name = "activityOfferingTypeKey") String activityOfferingTypeKey, @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException {
678         return null;  //To change body of implemented methods use File | Settings | File Templates.
679     }
680 
681     @Override
682     public List<TypeInfo> getActivityOfferingTypes(@WebParam(name = "context") ContextInfo context) throws InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException {
683         return null;  //To change body of implemented methods use File | Settings | File Templates.
684     }
685 
686     @Override
687     public List<TypeInfo> getActivityOfferingTypesForActivityType(@WebParam(name = "activityTypeKey") String activityTypeKey, @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException {
688         return null;  //To change body of implemented methods use File | Settings | File Templates.
689     }
690 
691     @Override
692     public List<TypeInfo> getInstructorTypesForActivityOfferingType(@WebParam(name = "activityOfferingTypeKey") String activityOfferingTypeKey, @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException {
693         return null;  //To change body of implemented methods use File | Settings | File Templates.
694     }
695 
696     @Override
697     public ActivityOfferingInfo getActivityOffering(@WebParam(name = "activityOfferingId") String activityOfferingId, @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException {
698         return null;  //To change body of implemented methods use File | Settings | File Templates.
699     }
700 
701     @Override
702     public List<ActivityOfferingInfo> getActivityOfferingsByIds(@WebParam(name = "activityOfferingIds") List<String> activityOfferingIds, @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException {
703         return null;  //To change body of implemented methods use File | Settings | File Templates.
704     }
705 
706     @Override
707     public List<ActivityOfferingInfo> getActivityOfferingsByCourseOffering(@WebParam(name = "courseOfferingId") String courseOfferingId, @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException {
708         return null;  //To change body of implemented methods use File | Settings | File Templates.
709     }
710 
711     @Override
712     public List<ActivityOfferingInfo> getActivityOfferingsByFormatOffering(@WebParam(name = "formatOfferingId") String formatOfferingId, @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException {
713         return null;  //To change body of implemented methods use File | Settings | File Templates.
714     }
715 
716     @Override
717     public List<ActivityOfferingInfo> getActivityOfferingsWithoutClusterByFormatOffering(@WebParam(name = "formatOfferingId") String formatOfferingId, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException {
718         return null;  //To change body of implemented methods use File | Settings | File Templates.
719     }
720 
721     @Override
722     public List<ActivityOfferingInfo> getActivityOfferingsByFormatOfferingWithoutRegGroup(@WebParam(name = "formatOfferingId") String formatOfferingId, @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException {
723         return null;  //To change body of implemented methods use File | Settings | File Templates.
724     }
725 
726     @Override
727     public ActivityOfferingInfo createActivityOffering(@WebParam(name = "formatOfferingId") String formatOfferingId, @WebParam(name = "activityId") String activityId, @WebParam(name = "activityOfferingTypeKey") String activityOfferingTypeKey, @WebParam(name = "activityOfferingInfo") ActivityOfferingInfo activityOfferingInfo, @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, DataValidationErrorException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException, ReadOnlyException {
728         return null;  //To change body of implemented methods use File | Settings | File Templates.
729     }
730 
731     @Override
732     public ActivityOfferingInfo copyActivityOffering(@WebParam(name = "activityOfferingId") String activityOfferingId, @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, DataValidationErrorException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException, ReadOnlyException {
733         return null;  //To change body of implemented methods use File | Settings | File Templates.
734     }
735 
736     @Override
737     public List<ActivityOfferingInfo> generateActivityOfferings(@WebParam(name = "formatOfferingId") String formatOfferingId, @WebParam(name = "activityOfferingType") String activityOfferingType, @WebParam(name = "quantity") Integer quantity, @WebParam(name = "context") ContextInfo context) throws InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException {
738         return null;  //To change body of implemented methods use File | Settings | File Templates.
739     }
740 
741     @Override
742     public ActivityOfferingInfo updateActivityOffering(@WebParam(name = "activityOfferingId") String activityOfferingId, @WebParam(name = "activityOfferingInfo") ActivityOfferingInfo activityOfferingInfo, @WebParam(name = "context") ContextInfo context) throws DataValidationErrorException, DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException, VersionMismatchException, ReadOnlyException {
743         return null;  //To change body of implemented methods use File | Settings | File Templates.
744     }
745 
746     @Override
747     public StatusInfo deleteActivityOffering(@WebParam(name = "activityOfferingId") String activityOfferingId, @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException, DependentObjectsExistException {
748         return null;  //To change body of implemented methods use File | Settings | File Templates.
749     }
750 
751     @Override
752     public StatusInfo deleteActivityOfferingCascaded(@WebParam(name = "activityOfferingId") String activityOfferingId, @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException {
753         return null;  //To change body of implemented methods use File | Settings | File Templates.
754     }
755 
756     @Override
757     public List<ValidationResultInfo> validateActivityOffering(@WebParam(name = "validationType") String validationType, @WebParam(name = "activityOfferingInfo") ActivityOfferingInfo activityOfferingInfo, @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException {
758         return null;  //To change body of implemented methods use File | Settings | File Templates.
759     }
760 
761     @Override
762     public Float calculateInClassContactHoursForTerm(@WebParam(name = "activityOfferingId") String activityOfferingId, @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException {
763         return null;  //To change body of implemented methods use File | Settings | File Templates.
764     }
765 
766     @Override
767     public Float calculateOutofClassContactHoursForTerm(@WebParam(name = "activityOfferingId") String activityOfferingId, @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException {
768         return null;  //To change body of implemented methods use File | Settings | File Templates.
769     }
770 
771     @Override
772     public Float calculateTotalContactHoursForTerm(@WebParam(name = "activityOfferingId") String activityOfferingId, @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException {
773         return null;  //To change body of implemented methods use File | Settings | File Templates.
774     }
775 
776     @Override
777     public RegistrationGroupInfo getRegistrationGroup(@WebParam(name = "registrationGroupId") String registrationGroupId, @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException {
778         return null;  //To change body of implemented methods use File | Settings | File Templates.
779     }
780 
781     @Override
782     public List<RegistrationGroupInfo> getRegistrationGroupsByIds(@WebParam(name = "registrationGroupIds") List<String> registrationGroupIds, @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException {
783         return null;  //To change body of implemented methods use File | Settings | File Templates.
784     }
785 
786     @Override
787     public List<RegistrationGroupInfo> getRegistrationGroupsForCourseOffering(@WebParam(name = "courseOfferingId") String courseOfferingId, @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException {
788         return null;  //To change body of implemented methods use File | Settings | File Templates.
789     }
790 
791     @Override
792     public List<RegistrationGroupInfo> getRegistrationGroupsWithActivityOfferings(@WebParam(name = "activityOfferingIds") List<String> activityOfferingIds, @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException {
793         return null;  //To change body of implemented methods use File | Settings | File Templates.
794     }
795 
796     @Override
797     public List<RegistrationGroupInfo> getRegistrationGroupsByFormatOffering(@WebParam(name = "formatOfferingId") String formatOfferingId, @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException {
798         if (foIdsToRegGroups.containsKey(formatOfferingId)) {
799             return foIdsToRegGroups.get(formatOfferingId);
800         } else {
801             return new ArrayList<RegistrationGroupInfo>();
802         }
803     }
804 
805     @Override
806     public List<ValidationResultInfo> validateRegistrationGroup(@WebParam(name = "validationType") String validationType, @WebParam(name = "registrationGroupInfo") RegistrationGroupInfo registrationGroupInfo, @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException {
807         return null;  //To change body of implemented methods use File | Settings | File Templates.
808     }
809 
810     @Override
811     public RegistrationGroupInfo createRegistrationGroup(@WebParam(name = "formatOfferingId") String formatOfferingId, @WebParam(name = "registrationGroupType") String registrationGroupType, @WebParam(name = "registrationGroupInfo") RegistrationGroupInfo registrationGroupInfo, @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, DataValidationErrorException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException, ReadOnlyException {
812         return null;  //To change body of implemented methods use File | Settings | File Templates.
813     }
814 
815     @Override
816     public RegistrationGroupInfo updateRegistrationGroup(@WebParam(name = "registrationGroupId") String registrationGroupId, @WebParam(name = "registrationGroupInfo") RegistrationGroupInfo registrationGroupInfo, @WebParam(name = "context") ContextInfo context) throws DataValidationErrorException, DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException, ReadOnlyException, VersionMismatchException {
817         return null;  //To change body of implemented methods use File | Settings | File Templates.
818     }
819 
820     @Override
821     public StatusInfo deleteRegistrationGroup(@WebParam(name = "registrationGroupId") String registrationGroupId, @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException {
822         return null;  //To change body of implemented methods use File | Settings | File Templates.
823     }
824 
825     @Override
826     public StatusInfo deleteRegistrationGroupsByFormatOffering(@WebParam(name = "formatOfferingId") String formatOfferingId, @WebParam(name = "context") ContextInfo context) throws InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException {
827         return null;  //To change body of implemented methods use File | Settings | File Templates.
828     }
829 
830     @Override
831     public StatusInfo deleteGeneratedRegistrationGroupsByFormatOffering(@WebParam(name = "formatOfferingId") String formatOfferingId, @WebParam(name = "context") ContextInfo context) throws InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException {
832         return null;  //To change body of implemented methods use File | Settings | File Templates.
833     }
834 
835     @Override
836     public StatusInfo deleteRegistrationGroupsForCluster(@WebParam(name = "activityOfferingClusterId") String activityOfferingClusterId, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException {
837         return null;  //To change body of implemented methods use File | Settings | File Templates.
838     }
839 
840     @Override
841     public List<ValidationResultInfo> verifyRegistrationGroup(@WebParam(name = "registrationGroupId") String registrationGroupId, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException {
842         return null;  //To change body of implemented methods use File | Settings | File Templates.
843     }
844 
845     @Override
846     public ActivityOfferingClusterInfo getActivityOfferingCluster(@WebParam(name = "activityOfferingClusterId") String activityOfferingClusterId, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException {
847         return null;  //To change body of implemented methods use File | Settings | File Templates.
848     }
849 
850     @Override
851     public List<ActivityOfferingClusterInfo> getActivityOfferingClustersByFormatOffering(@WebParam(name = "formatOfferingId") String formatOfferingId, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException {
852         return null;  //To change body of implemented methods use File | Settings | File Templates.
853     }
854 
855     @Override
856     public List<ValidationResultInfo> validateActivityOfferingCluster(@WebParam(name = "validationTypeKey") String validationTypeKey, @WebParam(name = "formatOfferingId") String formatOfferingId, @WebParam(name = "activityOfferingClusterTypeKey") String activityOfferingClusterTypeKey, @WebParam(name = "activityOfferingClusterInfo") ActivityOfferingInfo activityOfferingClusterInfo, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException {
857         return null;  //To change body of implemented methods use File | Settings | File Templates.
858     }
859 
860     @Override
861     public ActivityOfferingClusterInfo createActivityOfferingCluster(@WebParam(name = "formatOfferingId") String formatOfferingId, @WebParam(name = "activityOfferingClusterTypeKey") String activityOfferingClusterTypeKey, @WebParam(name = "activityOfferingClusterInfo") ActivityOfferingClusterInfo activityOfferingClusterInfo, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DataValidationErrorException, DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException, ReadOnlyException {
862         return null;  //To change body of implemented methods use File | Settings | File Templates.
863     }
864 
865     @Override
866     public ActivityOfferingClusterInfo updateActivityOfferingCluster(@WebParam(name = "formatOfferingId") String formatOfferingId, @WebParam(name = "activityOfferingClusterId") String activityOfferingClusterId, @WebParam(name = "activityOfferingClusterInfo") ActivityOfferingClusterInfo activityOfferingClusterInfo, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DataValidationErrorException, DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException, ReadOnlyException, VersionMismatchException {
867         return null;  //To change body of implemented methods use File | Settings | File Templates.
868     }
869 
870     @Override
871     public StatusInfo deleteActivityOfferingCluster(@WebParam(name = "activityOfferingClusterId") String activityOfferingClusterId, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException {
872         return null;  //To change body of implemented methods use File | Settings | File Templates.
873     }
874 
875     @Override
876     public List<ValidationResultInfo> verifyActivityOfferingClusterForGeneration(@WebParam(name = "activityOfferingClusterId") String activityOfferingClusterId, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException {
877         return null;  //To change body of implemented methods use File | Settings | File Templates.
878     }
879 
880     @Override
881     public List<RegistrationGroupInfo> generateRegistrationGroupsForCluster(@WebParam(name = "activityOfferingClusterId") String activityOfferingClusterId, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException {
882         return null;  //To change body of implemented methods use File | Settings | File Templates.
883     }
884 
885     @Override
886     public SeatPoolDefinitionInfo getSeatPoolDefinition(@WebParam(name = "seatPoolDefinitionId") String seatPoolDefinitionId, @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException {
887         return null;  //To change body of implemented methods use File | Settings | File Templates.
888     }
889 
890     @Override
891     public List<SeatPoolDefinitionInfo> getSeatPoolDefinitionsForActivityOffering(@WebParam(name = "activityOfferingId") String activityOfferingId, @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException {
892         return null;  //To change body of implemented methods use File | Settings | File Templates.
893     }
894 
895     @Override
896     public SeatPoolDefinitionInfo createSeatPoolDefinition(@WebParam(name = "seatPoolDefinitionInfo") SeatPoolDefinitionInfo seatPoolDefinitionInfo, @WebParam(name = "context") ContextInfo context) throws DataValidationErrorException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException, ReadOnlyException {
897         return null;  //To change body of implemented methods use File | Settings | File Templates.
898     }
899 
900     @Override
901     public SeatPoolDefinitionInfo updateSeatPoolDefinition(@WebParam(name = "seatPoolDefinitionId") String seatPoolDefinitionId, @WebParam(name = "seatPoolDefinitionInfo") SeatPoolDefinitionInfo seatPoolDefinitionInfo, @WebParam(name = "context") ContextInfo context) throws DataValidationErrorException, DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException, ReadOnlyException, VersionMismatchException {
902         return null;  //To change body of implemented methods use File | Settings | File Templates.
903     }
904 
905     @Override
906     public List<ValidationResultInfo> validateSeatPoolDefinition(@WebParam(name = "validationTypeKey") String validationTypeKey, @WebParam(name = "seatPoolDefinitionInfo") SeatPoolDefinitionInfo seatPoolDefinitionInfo, @WebParam(name = "context") ContextInfo context) throws DataValidationErrorException, DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException, VersionMismatchException {
907         return null;  //To change body of implemented methods use File | Settings | File Templates.
908     }
909 
910     @Override
911     public StatusInfo deleteSeatPoolDefinition(@WebParam(name = "seatPoolDefinitionId") String seatPoolDefinitionId, @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException {
912         return null;  //To change body of implemented methods use File | Settings | File Templates.
913     }
914 
915     @Override
916     public StatusInfo addSeatPoolDefinitionToActivityOffering(@WebParam(name = "seatPoolDefinitionId") String seatPoolDefinitionId, @WebParam(name = "activityOfferingId") String activityOfferingId, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws AlreadyExistsException, DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException {
917         return null;  //To change body of implemented methods use File | Settings | File Templates.
918     }
919 
920     @Override
921     public StatusInfo removeSeatPoolDefinitionFromActivityOffering(@WebParam(name = "seatPoolDefinitionId") String seatPoolDefinitionId, @WebParam(name = "activityOfferingId") String activityOfferingId, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException {
922         return null;  //To change body of implemented methods use File | Settings | File Templates.
923     }
924 
925     @Override
926     public List<CourseOfferingInfo> searchForCourseOfferings(@WebParam(name = "criteria") QueryByCriteria criteria, @WebParam(name = "context") ContextInfo context) throws InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException {
927         return null;  //To change body of implemented methods use File | Settings | File Templates.
928     }
929 
930     @Override
931     public List<String> searchForCourseOfferingIds(@WebParam(name = "criteria") QueryByCriteria criteria, @WebParam(name = "context") ContextInfo context) throws InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException {
932         return null;  //To change body of implemented methods use File | Settings | File Templates.
933     }
934 
935     @Override
936     public List<ActivityOfferingInfo> searchForActivityOfferings(@WebParam(name = "criteria") QueryByCriteria criteria, @WebParam(name = "context") ContextInfo context) throws InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException {
937         return null;  //To change body of implemented methods use File | Settings | File Templates.
938     }
939 
940     @Override
941     public List<String> searchForActivityOfferingIds(@WebParam(name = "criteria") QueryByCriteria criteria, @WebParam(name = "context") ContextInfo context) throws InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException {
942         return null;  //To change body of implemented methods use File | Settings | File Templates.
943     }
944 
945     @Override
946     public List<RegistrationGroupInfo> searchForRegistrationGroups(@WebParam(name = "criteria") QueryByCriteria criteria, @WebParam(name = "context") ContextInfo context) throws InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException {
947         return null;  //To change body of implemented methods use File | Settings | File Templates.
948     }
949 
950     @Override
951     public List<String> searchForRegistrationGroupIds(@WebParam(name = "criteria") QueryByCriteria criteria, @WebParam(name = "context") ContextInfo context) throws InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException {
952         return null;  //To change body of implemented methods use File | Settings | File Templates.
953     }
954 
955     @Override
956     public List<SeatPoolDefinitionInfo> searchForSeatpoolDefinitions(@WebParam(name = "criteria") QueryByCriteria criteria, @WebParam(name = "context") ContextInfo context) throws InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException {
957         return null;  //To change body of implemented methods use File | Settings | File Templates.
958     }
959 
960     @Override
961     public List<String> searchForSeatpoolDefinitionIds(@WebParam(name = "criteria") QueryByCriteria criteria, @WebParam(name = "context") ContextInfo context) throws InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException {
962         return null;  //To change body of implemented methods use File | Settings | File Templates.
963     }
964 }