compareStructures static method
Compare two structures
Initial structure to compare with
Next structure to compare with the initial
DistributedConnection is required in case a structure holds items at the other end
Implementation
static int compareStructures(
Structure? initial, Structure? next, DistributedConnection connection) {
if (next == null) return StructureComparisonResult.Null;
if (initial == null) return StructureComparisonResult.Structure;
if (next == initial) return StructureComparisonResult.Same;
if (initial.length != next.length)
return StructureComparisonResult.Structure;
var previousKeys = initial.getKeys();
var nextKeys = next.getKeys();
for (var i = 0; i < previousKeys.length; i++)
if (previousKeys[i] != nextKeys[i])
return StructureComparisonResult.Structure;
var previousTypes = getStructureDateTypes(initial, connection);
var nextTypes = getStructureDateTypes(next, connection);
for (var i = 0; i < previousTypes.length; i++)
if (previousTypes[i] != nextTypes[i])
return StructureComparisonResult.StructureSameKeys;
return StructureComparisonResult.StructureSameTypes;
}