package knorxx.framework.generator.order;
import java.util.Comparator;
import java.util.List;
import knorxx.framework.generator.NamedResult;
/**
*
* @author sj
*/
public class GenerationResultComparator implements Comparator<NamedResult> {
private final List<String> sortedJavaClassNames;
public GenerationResultComparator(List<String> sortedJavaClassNames) {
this.sortedJavaClassNames = sortedJavaClassNames;
}
@Override
public int compare(NamedResult first, NamedResult second) {
boolean containsFirst = sortedJavaClassNames.contains(first.getName());
boolean containsSecond = sortedJavaClassNames.contains(second.getName());
if (!containsFirst && !containsSecond) {
return 0;
} else if (containsFirst && !containsSecond) {
return 1;
} else if (!containsFirst && containsSecond) {
return -1;
} else {
int firstIndex = sortedJavaClassNames.indexOf(first.getName());
int secondIndex = sortedJavaClassNames.indexOf(second.getName());
return firstIndex < secondIndex ? -1 : 1;
}
}
}