compareTo method

  1. @override
int compareTo(
  1. XPathAtomic other
)
override

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 XPathBinary && type == other.type) {
    final len = value.length < other.value.length
        ? value.length
        : other.value.length;
    for (var i = 0; i < len; i++) {
      final cmp = value[i].compareTo(other.value[i]);
      if (cmp != 0) return cmp;
    }
    return value.length.compareTo(other.value.length);
  }
  return super.compareTo(other);
}