compareTo method

  1. @override
int compareTo(
  1. SQLBuilder 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(SQLBuilder other) {
  if (other is CreateIndexSQL) {
    return 0;
  }
  if (other is CreateTableSQL) {
    if (other.table == table) {
      return 1;
    }

    var ref1 = referenceTablesLength;
    var ref2 = other.referenceTablesLength + other.relationshipsTables.length;

    var cmp = ref1.compareTo(ref2);
    if (cmp != 0) return cmp;

    return table.compareTo(other.table);
  } else {
    var referenceTables = other.referenceTables;
    return referenceTables != null && referenceTables.contains(table)
        ? -1
        : 0;
  }
}