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(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;
}
}