package br.com.caelum.vraptor.serialization.gson;
import java.util.Comparator;
public final class PackageComparator implements Comparator<Object> {
private static final String CORE_ADAPTER = "br.com.caelum.vraptor.serialization.gson.adapters";
private static final String ISO8601_ADAPTER = "br.com.caelum.vraptor.serialization.iso8601.gson";
public int compare(Object o1, Object o2) {
return giveMorePriorityToISO8601Adapters(o1, o2);
}
private int giveMorePriorityToISO8601Adapters(Object o1, Object o2) {
String packageNameO1 = o1.getClass().getPackage().getName();
String packageNameO2 = o2.getClass().getPackage().getName();
if (packageNameO1.startsWith(CORE_ADAPTER) && packageNameO2.startsWith(ISO8601_ADAPTER))
return -1;
if (packageNameO1.startsWith(ISO8601_ADAPTER) && packageNameO2.startsWith(CORE_ADAPTER))
return 1;
return packageNameO1.compareTo(packageNameO2);
}
}