001 /** 002 * Copyright 2011 The Kuali Foundation Licensed under the 003 * Educational Community License, Version 2.0 (the "License"); you may 004 * not use this file except in compliance with the License. You may 005 * obtain a copy of the License at 006 * 007 * http://www.osedu.org/licenses/ECL-2.0 008 * 009 * Unless required by applicable law or agreed to in writing, 010 * software distributed under the License is distributed on an "AS IS" 011 * BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 012 * or implied. See the License for the specific language governing 013 * permissions and limitations under the License. 014 */ 015 016 package org.kuali.student.common.util.krms.proposition; 017 018 import java.util.Collection; 019 import java.util.Collections; 020 021 import org.kuali.rice.krms.api.engine.ExecutionEnvironment; 022 import org.kuali.rice.krms.api.engine.Term; 023 import org.kuali.student.common.util.krms.RulesExecutionConstants; 024 025 /** 026 * Proposition that checks for completion of a set of courses 027 * 028 * @author alubbers 029 */ 030 public class CourseSetCompletionProposition extends CourseCompletionProposition { 031 032 private String courseSetId; 033 034 private Collection<String> courseIds; 035 036 public CourseSetCompletionProposition(String courseSetId, Integer minToComplete) { 037 super(minToComplete); 038 this.courseSetId = courseSetId; 039 } 040 041 public CourseSetCompletionProposition(String courseSetId) { 042 super(); 043 this.courseSetId = courseSetId; 044 } 045 046 @Override 047 protected Collection<String> getTermCourseIds(ExecutionEnvironment environment) { 048 049 if(courseIds == null) { 050 051 Term term = new Term(RulesExecutionConstants.COURSE_SET_TERM_NAME, Collections.singletonMap(RulesExecutionConstants.COURSE_SET_ID_TERM_PROPERTY, courseSetId)); 052 053 courseIds = environment.resolveTerm(term, this); 054 } 055 056 return courseIds; 057 } 058 059 }