@Override
 public boolean isMember(User user) {
   if (user == null || user.getPerson().getCoordinatorsSet().isEmpty()) {
     return false;
   }
   for (Coordinator coordinator : user.getPerson().getCoordinatorsSet()) {
     ExecutionDegree executionDegree = coordinator.getExecutionDegree();
     if (executionDegree.getExecutionYear().isCurrent()) {
       if (degreeType != null && degreeType != executionDegree.getDegree().getDegreeType()) {
         continue;
       }
       if (degree != null && !executionDegree.getDegree().equals(degree)) {
         continue;
       }
       return true;
     }
   }
   return false;
 }
 private String executionDegreesCompareHash(final Set<ExecutionDegree> executionDegreeSet) {
   final SortedSet<String> strings = new TreeSet<String>();
   for (final ExecutionDegree executionDegree : executionDegreeSet) {
     strings.add(executionDegree.getDegree().getSigla());
   }
   final StringBuilder builder = new StringBuilder();
   for (final String string : strings) {
     builder.append(string);
   }
   return builder.toString();
 }
 public Registration findBestRegistration(final Student student) {
   for (final Registration registration : student.getRegistrationsSet()) {
     for (final ExecutionDegree executionDegree :
         getOutboundMobilityCandidacyContestGroup().getExecutionDegreeSet()) {
       if (executionDegree.getDegree() == registration.getDegree()) {
         final ExecutionYear executionYear =
             (ExecutionYear) getOutboundMobilityCandidacyPeriod().getExecutionInterval();
         final RegistrationState registrationState =
             registration.getLastRegistrationState(executionYear);
         if (registrationState != null && registrationState.getStateType().isActive()) {
           return registration;
         }
       }
     }
   }
   return null;
 }