package com.uaihebert.uaimockserver.util;
import com.uaihebert.uaimockserver.model.UaiRequest;
import com.uaihebert.uaimockserver.model.UaiRoute;
import java.util.Comparator;
/**
* This will order the route with more queryParam and header first
*/
public class RouteComparator implements Comparator<UaiRoute> {
@Override
public int compare(final UaiRoute firstRoute, final UaiRoute secondRoute) {
final UaiRequest firstRequest = firstRoute.getRequest();
final UaiRequest secondRequest = secondRoute.getRequest();
Integer totalFirstRequest = countTotalItemsOfRequest(firstRequest);
Integer totalSecondRequest = countTotalItemsOfRequest(secondRequest);
return totalSecondRequest.compareTo(totalFirstRequest);
}
private Integer countTotalItemsOfRequest(final UaiRequest firstRequest) {
Integer total = 0;
total += firstRequest.getRequiredHeaderList().size();
total += firstRequest.getRequiredQueryParamList().size();
total += firstRequest.getOptionalHeaderList().size();
total += firstRequest.getOptionalQueryParamList().size();
return total;
}
}