enforceConsistency static method
Implementation
static void enforceConsistency(List<Coordinate?>? array) {
if (array == null) {
return;
}
int maxDimension = -1;
int maxMeasures = -1;
bool isConsistent = true;
for (int i = 0; i < array.length; i++) {
Coordinate? coordinate = array[i];
if (coordinate != null) {
int d = Coordinates.dimension(coordinate);
int m = Coordinates.measures(coordinate);
if (maxDimension == (-1)) {
maxDimension = d;
maxMeasures = m;
continue;
}
if ((d != maxDimension) || (m != maxMeasures)) {
isConsistent = false;
maxDimension = max(maxDimension, d).toInt();
maxMeasures = max(maxMeasures, m).toInt();
}
}
}
if (!isConsistent) {
Coordinate sample = Coordinates.createWithMeasure(maxDimension, maxMeasures);
Type type = sample.runtimeType;
for (int i = 0; i < array.length; i++) {
Coordinate? coordinate = array[i];
if ((coordinate != null) && (coordinate.runtimeType != type)) {
Coordinate duplicate = Coordinates.createWithMeasure(maxDimension, maxMeasures);
duplicate.setCoordinate(coordinate);
array[i] = duplicate;
}
}
}
}