compareTo method

  1. @override
int compareTo(
  1. SemanticVersion 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(SemanticVersion other) {
  // Compare major
  if (major != other.major) return major.compareTo(other.major);

  // Compare minor
  if (minor != other.minor) return minor.compareTo(other.minor);

  // Compare patch
  if (patch != other.patch) return patch.compareTo(other.patch);

  // Pre-release versions have lower precedence
  if (preRelease != null && other.preRelease == null) return -1;
  if (preRelease == null && other.preRelease != null) return 1;
  if (preRelease != null && other.preRelease != null) {
    return preRelease!.compareTo(other.preRelease!);
  }

  return 0;
}