View Javadoc

1   /**
2    * Copyright 2012 The Kuali Foundation
3    *
4    * Licensed under the the Educational Community License, Version 1.0
5    * (the "License"); you may not use this file except in compliance
6    * with the License.  You may obtain a copy of the License at
7    *
8    * http://www.opensource.org/licenses/ecl1.php
9    *
10   * Unless required by applicable law or agreed to in writing, software
11   * distributed under the License is distributed on an "AS IS" BASIS,
12   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13   * See the License for the specific language governing permissions and
14   * limitations under the License.
15   */
16  package org.kuali.student.enrollment.class2.courseoffering.service;
17  
18  import java.util.List;
19  import java.util.Map;
20  
21  import org.kuali.student.enrollment.courseoffering.dto.ActivityOfferingInfo;
22  import org.kuali.student.enrollment.courseoffering.infc.FormatOffering;
23  import org.kuali.student.enrollment.courseoffering.service.CourseOfferingService;
24  import org.kuali.student.r2.common.dto.ContextInfo;
25  
26  /**
27   * 
28   * Defines a way for the particulars of generating a registration group code to be externalized.
29   * The LUI stores the registration group code in the name field.  Separately, there is also a
30   * registration code which is unique over all registration groups within a term.  That is not yet
31   * implemented for M4.
32   * 
33   * @author ocleirig
34   *
35   */
36  public interface RegistrationGroupCodeGenerator {
37      /**
38       * Allows for an initialization phase in the registration group code generation phase to allow for, say,
39       * stateful generation of registration group codes
40       * @param coService Course offering service
41       * @param fo Format offering
42       * @param keyValues Allows for anything to be passed in
43       */
44  	public void initializeGenerator(CourseOfferingService coService, FormatOffering fo, ContextInfo context, Map<String, Object> keyValues);
45  	/**
46  	 * Generate a Registration Group Code.  This is what the student will see when selecting a Registration Group.
47  	 * 
48  	 * Note: This was created before M4 and before the exact standard format for this code has been determined by the Analysis Team.
49  	 * The parameters should be changed as needed to support easily generating that format.
50  	 * 
51  	 * @param fo the format Offering
52  	 * @param activities The list of Activities in the registration group
53       * @param keyValues Allows for anything to be passed in by key-values
54  	 * @return A registration code that is unique for the CourseOffering and is suitable for students to use during the registration process.
55  	 * 
56  	 */
57  	public String generateRegistrationGroupCode(FormatOffering fo, List<ActivityOfferingInfo> activities, Map<String, Object> keyValues);
58  
59  }