View Javadoc

1   /**
2    * Copyright 2011 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.common.util.krms.proposition;
17  
18  import org.kuali.rice.krms.api.engine.ExecutionEnvironment;
19  import org.kuali.rice.krms.api.engine.Term;
20  import org.kuali.student.common.util.krms.RulesExecutionConstants;
21  
22  import java.util.Collection;
23  import java.util.Collections;
24  
25  /**
26   * Proposition that checks for current enrollment in a set of courses
27   *
28   * @author alubbers
29   */
30  public class CourseSetEnrollmentProposition extends CourseEnrollmentProposition {
31  
32      private String courseSetId;
33  
34      private Collection<String> courseIds;
35  
36      public CourseSetEnrollmentProposition(String courseSetId, Integer minToEnroll) {
37          super(minToEnroll);
38          this.courseSetId = courseSetId;
39      }
40  
41      public CourseSetEnrollmentProposition(String courseSetId) {
42          super();
43          this.courseSetId = courseSetId;
44      }
45  
46      @Override
47      protected Collection<String> getRequiredCourseIds(ExecutionEnvironment environment) {
48  
49          if(courseIds == null) {
50  
51              Term term = new Term(RulesExecutionConstants.COURSE_SET_TERM_NAME, Collections.singletonMap(RulesExecutionConstants.COURSE_SET_ID_TERM_PROPERTY, courseSetId));
52  
53              courseIds = environment.resolveTerm(term, this);
54          }
55  
56          return courseIds;
57      }
58  }