compareTo method
Compares this object to another object.
Returns a value like a Comparator when comparing this to other.
That is, it returns a negative integer if this is ordered before other,
a positive integer if this is ordered after other,
and zero if this and other are ordered together.
The other argument must be a value that is comparable to this object.
Implementation
@override
int compareTo(XPathAtomic other) {
if (other is XPathInteger) {
if (intValue != null && other.intValue != null) {
return intValue!.compareTo(other.intValue!);
}
return value.compareTo(other.value);
}
if (other is XPathDecimal) return toDecimal().compareTo(other);
if (other is XPathDouble) {
if (other.value.isNaN) return -1;
final d = toDouble();
if (d == other.value) return 0;
return d.compareTo(other.value);
}
return super.compareTo(other);
}