protected RuleResult verifyEnrolmentWithRules(ICurricularRule curricularRule, EnrolmentContext enrolmentContext,
DegreeModule degreeModuleToVerify, CourseGroup rootOrCycleCourseGroup) {
final Exclusiveness exclusiveness = (Exclusiveness) curricularRule;
final DegreeModule exclusiveDegreeModule = exclusiveness.getExclusiveDegreeModule();
final IDegreeModuleToEvaluate degreeModuleToEvaluate =
getDegreeModuleToEvaluate(enrolmentContext, exclusiveDegreeModule, rootOrCycleCourseGroup);
if (degreeModuleToEvaluate != null) {
if (!degreeModuleToEvaluate.isLeaf()) {
return RuleResult.createFalse(degreeModuleToVerify);
}
final CurricularCourse curricularCourse = (CurricularCourse) exclusiveDegreeModule;
if (isApproved(enrolmentContext, curricularCourse, rootOrCycleCourseGroup) || degreeModuleToEvaluate.isEnroled()
|| degreeModuleToEvaluate.isEnroling()) {
return RuleResult.createFalse(degreeModuleToVerify);
}
}
return RuleResult.createTrue(degreeModuleToVerify);