in src/main/java/org/apache/sling/api/request/header/JakartaMediaRangeList.java [285:309]
public int compareTo(MediaRange o) {
double diff = this.q - o.getQ();
if (diff == 0) {
// Compare parameters
int paramDiff = o.getParameters().size() - this.getParameters().size();
if (paramDiff != 0) {
return paramDiff;
}
// Compare wildcards
if (this.supertype.equals(WILDCARD) && !o.getSupertype().equals(WILDCARD)) {
return 1;
} else if (!this.supertype.equals(WILDCARD) && o.getSupertype().equals(WILDCARD)) {
return -1;
}
if (this.subtype.equals(WILDCARD) && !o.getSubtype().equals(WILDCARD)) {
return 1;
} else if (!this.subtype.equals(WILDCARD) && o.getSubtype().equals(WILDCARD)) {
return -1;
}
// Compare names
return this.toString().compareTo(o.toString());
} else {
return diff > 0 ? -1 : 1;
}
}