package fr.openwide.maven.artifact.notifier.core.business.artifact.util; import java.io.Serializable; import java.util.Collections; import java.util.Comparator; import fr.openwide.maven.artifact.notifier.core.business.artifact.model.IComparableVersion; public class MavenCentralVersionComparator implements Comparator<IComparableVersion>, Serializable { private static final long serialVersionUID = -6062668831010678541L; private static final MavenCentralVersionComparator INSTANCE = new MavenCentralVersionComparator(); private static final Comparator<IComparableVersion> REVERSE_ORDER_INSTANCE = Collections.reverseOrder(INSTANCE); @Override public int compare(IComparableVersion v1, IComparableVersion v2) { int order = 0; if (v1 == null && v2 == null) { order = 0; } else if (v1 == null) { order = 1; } else if (v2 == null) { order = -1; } else { MavenCentralComparableVersion cv1 = new MavenCentralComparableVersion(v1); MavenCentralComparableVersion cv2 = new MavenCentralComparableVersion(v2); order = cv1.compareTo(cv2); } return order; } public static MavenCentralVersionComparator get() { return INSTANCE; } public static Comparator<IComparableVersion> reverse() { return REVERSE_ORDER_INSTANCE; } }