diff --git a/src/main/java/se/su/dsv/scipro/match/GreedyMatchingAlgorithm.java b/src/main/java/se/su/dsv/scipro/match/GreedyMatchingAlgorithm.java index ceb2615bbf..860aba6767 100644 --- a/src/main/java/se/su/dsv/scipro/match/GreedyMatchingAlgorithm.java +++ b/src/main/java/se/su/dsv/scipro/match/GreedyMatchingAlgorithm.java @@ -1,9 +1,6 @@ package se.su.dsv.scipro.match; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.Iterator; -import java.util.List; +import java.util.*; import org.apache.log4j.Logger; import org.springframework.stereotype.Component; @@ -33,7 +30,7 @@ public class GreedyMatchingAlgorithm implements MatchingAlgorithm { List<String> availableProjectClasses = getAvailableProjectClass(unmatchedProjectIdeas, supervisorAvailability); - HashMap<String, List<ProjectIdea>> sortedProjectIdeas = getSortedProjectIdeas(availableProjectClasses, unmatchedProjectIdeas); + HashMap<String, List<ProjectIdea>> sortedProjectIdeas = getSortedProjectIdeas(availableProjectClasses, unmatchedProjectIdeas); HashMap<String, List<Availability>> sortedAvailability = getSortedAvailability(availableProjectClasses, supervisorAvailability); logger.info("SortedAvail.size: " + sortedAvailability.size()); logger.info("sortedProjIdeas.size: " + sortedProjectIdeas.size()); @@ -42,7 +39,7 @@ public class GreedyMatchingAlgorithm implements MatchingAlgorithm { matchList.addAll(matchProjectIdeas(sortedProjectIdeas.get(projectClassCode), sortedAvailability.get(projectClassCode))); } logger.info("Matchlist.size: " + matchList.size()); - + // If there are unmatched bachelor theses and unmatched master supervisors match them List<ProjectIdea> projectIdeaList = sortedProjectIdeas.get(ProjectClass.BACHELOR); List<Availability> availabilityList = sortedAvailability.get(ProjectClass.MASTER); @@ -120,7 +117,7 @@ public class GreedyMatchingAlgorithm implements MatchingAlgorithm { if (matchPair != null && matchPair.getMatch().getPoints() != -1) { matchList.add(matchPair.getMatch()); projectIdeaIterator.remove(); - } + } } return matchList; @@ -274,6 +271,18 @@ public class GreedyMatchingAlgorithm implements MatchingAlgorithm { for (Availability availability : supervisorAvailability) { sortedAvailability.get(availability.getProjectClass().getCode()).add(availability); } + + //start Tom+Anton test + //List<Availability> bachelorAvailabilities = sortedAvailability.get(ProjectClass.BACHELOR) != null ? + // sortedAvailability.get(ProjectClass.BACHELOR) : new ArrayList<Availability>(); + List<Availability> bachelorAvailabilities = sortedAvailability.get(ProjectClass.BACHELOR); + if (bachelorAvailabilities != null) + for (Availability av : supervisorAvailability) { + if(!bachelorAvailabilities.contains(av)) + bachelorAvailabilities.add(av); + } + //sortedAvailability.put(ProjectClass.BACHELOR, bachelorAvailabilities); + //end T+A return sortedAvailability; }