package proj.zoie.perf.client; import java.util.Comparator; public class ZoiePerfVersion implements Comparable<ZoiePerfVersion> { public final long countVersion; public final long offsetVersion; ZoiePerfVersion(long v1, long v2) { countVersion = v1; offsetVersion = v2; } public static String toString(ZoiePerfVersion version) { return toString(version.countVersion, version.offsetVersion); } public static String toString(long count, long offset) { StringBuilder buf = new StringBuilder(); buf.append(count).append(":").append(offset); return buf.toString(); } public static ZoiePerfVersion fromString(String version) { long v1 = 0, v2 = 0; if (version != null && version.length() > 0) { String[] parts = version.split(":"); v1 = Long.parseLong(parts[0]); v2 = Long.parseLong(parts[1]); } return new ZoiePerfVersion(v1, v2); } public static final Comparator<String> COMPARATOR = new ZoiePerfVersionComparator(); private static class ZoiePerfVersionComparator implements Comparator<String> { @Override public int compare(String o1, String o2) { ZoiePerfVersion v1 = ZoiePerfVersion.fromString(o1); ZoiePerfVersion v2 = ZoiePerfVersion.fromString(o2); return v1.compareTo(v2); } } @Override public int compareTo(ZoiePerfVersion o) { if (offsetVersion == o.offsetVersion) return 0; if (offsetVersion < o.offsetVersion) return -1; return 1; } }