package cz.agents.agentpolis.darptestbed.simmodel.agent.data.comparator;
import cz.agents.agentpolis.darptestbed.simmodel.agent.data.Request;
import java.util.Comparator;
import java.util.HashSet;
import java.util.Set;
public class RequestLatestDepComparatorWithFrontloadedSubset implements Comparator<Request> {
private final RequestLatestDepComparator comparator;
private final Set<Request> frontloadedRequests;
public RequestLatestDepComparatorWithFrontloadedSubset(Set<Request> frontloadedRequests) {
if (frontloadedRequests == null)
frontloadedRequests = new HashSet<>();
this.frontloadedRequests = frontloadedRequests;
comparator = new RequestLatestDepComparator();
}
@Override
public int compare(Request o1, Request o2) {
if (frontloadedRequests.contains(o1)) {
if (frontloadedRequests.contains(o2)) {
return comparator.compare(o1, o2);
} else {
return -1;
}
} else {
if (frontloadedRequests.contains(o2)) {
return 1;
} else {
return comparator.compare(o1, o2);
}
}
}
}