private void load(final DegreeModule degreeModule) {
   degreeModule.getName();
   if (degreeModule.isCourseGroup()) {
     final CourseGroup courseGroup = (CourseGroup) degreeModule;
     for (final org.fenixedu.academic.domain.degreeStructure.Context context :
         courseGroup.getChildContextsSet()) {
       final DegreeModule child = context.getChildDegreeModule();
       load(child);
     }
   } else {
     final CurricularCourse curricularCourse = (CurricularCourse) degreeModule;
     final CompetenceCourse competenceCourse = curricularCourse.getCompetenceCourse();
     if (competenceCourse != null) {
       competenceCourse.getName();
     }
   }
 }
        @Override
        public boolean evaluate(Context context) {
          User user = Authenticate.getUser();
          if (RoleType.SCIENTIFIC_COUNCIL.isMember(user)) {
            return true;
          }

          final DegreeCurricularPlan parentDegreeCurricularPlan =
              context.getParentCourseGroup().getParentDegreeCurricularPlan();
          if (!parentDegreeCurricularPlan.isBolonhaDegree()) {
            return true;
          }

          if (AcademicAuthorizationGroup.get(AcademicOperationType.MANAGE_DEGREE_CURRICULAR_PLANS)
                  .isMember(user)
              || RoleType.MANAGER.isMember(user)
              || RoleType.OPERATOR.isMember(user)) {
            return true;
          }

          return parentDegreeCurricularPlan.getCurricularPlanMembersGroup().isMember(user);
        }