prevRec.getMetadata(GetMode.DEFAULT),
currRec.getMetadata(GetMode.DEFAULT));
final String prevAssocKey = prevRec.getAssocKey(GetMode.DEFAULT);
final String currAssocKey = currRec.getAssocKey(GetMode.DEFAULT);
final StringArray prevAssocKeys = prevRec.getAssocKeys(GetMode.DEFAULT);
final StringArray currAssocKeys = currRec.getAssocKeys(GetMode.DEFAULT);
// assocKey and assocKeys are mutually exclusive
assert((prevAssocKey == null || prevAssocKeys == null) && (currAssocKey == null || currAssocKeys == null));
// assocKey is deprecated
// assocKey upgrading to single-element assocKeys is compatible
// the opposite direction is deprecated thus incompatible
if (prevAssocKeys == null && currAssocKeys == null)
{
checkEqualSingleValue(prevRec.schema().getField("assocKey"), prevAssocKey, currAssocKey);
}
else if (prevAssocKey == null && currAssocKey == null)
{
checkEqualSingleValue(prevRec.schema().getField("assocKeys"), prevAssocKeys, currAssocKeys);
}
else if (prevAssocKeys == null)
{
// upgrade case
final StringArray upgradedPrevAssocKeys = new StringArray();
upgradedPrevAssocKeys.add(prevAssocKey);
checkEqualSingleValue(prevRec.schema().getField("assocKey"), upgradedPrevAssocKeys, currAssocKeys);
}
else
{
// downgrade case