RuleResult finalResult = RuleResult.createInitialTrue();
if (!getRoot().hasExternalCycles()) {
final PreviousYearsEnrolmentCurricularRule previousYearsEnrolmentCurricularRule =
new PreviousYearsEnrolmentCurricularRule(getRoot().getDegreeModule());
finalResult =
finalResult.and(previousYearsEnrolmentCurricularRule.evaluate(new EnroledCurriculumModuleWrapper(getRoot(),
getExecutionSemester()), this.enrolmentContext));
} else {
for (final CycleCurriculumGroup cycleCurriculumGroup : getRoot().getCycleCurriculumGroups()) {
final PreviousYearsEnrolmentCurricularRule previousYearsEnrolmentCurricularRule =