in api/src/main/java/com/spotify/metrics/core/MetricId.java [384:431]
private int compareTags(
Set<Map.Entry<String, String>> left, Set<Map.Entry<String, String>> right
) {
if (left == null && right == null) {
return 0;
}
if (left == null) {
return 1;
}
if (right == null) {
return -1;
}
final Iterator<Map.Entry<String, String>> li = left.iterator();
final Iterator<Map.Entry<String, String>> ri = right.iterator();
while (li.hasNext()) {
if (!ri.hasNext()) {
return -1;
}
final Map.Entry<String, String> l = li.next();
final Map.Entry<String, String> r = ri.next();
final int k = l.getKey().compareTo(r.getKey());
if (k != 0) {
return k;
}
if (l.getValue() != null && r.getValue() != null) {
final int v = l.getValue().compareTo(r.getValue());
if (v != 0) {
return v;
}
}
}
if (ri.hasNext()) {
return 1;
}
return 0;
}