finalizeArray(type, addr);
return;
}
// remap IDs for all nonprimtive, non-multivalued-property features
int[] feats = casBeingFilled.getTypeSystemImpl().ll_getAppropriateFeatures(type);
Feature feat;
for (int i = 0; i < feats.length; i++) {
feat = ts.ll_getFeatureForCode(feats[i]);
int typeCode = ts.ll_getRangeType(feats[i]);
if (casBeingFilled.ll_isRefType(typeCode)
&& (featureType[feats[i]] == LowLevelCAS.TYPE_CLASS_FS || feat
.isMultipleReferencesAllowed())) {
int featVal = casBeingFilled.getFeatureValue(addr, feats[i]);
if (featVal != CASImpl.NULL ) {
int fsValAddr = CASImpl.NULL;
try {
fsValAddr = getFsAddrForXmiId(featVal);
} catch (NoSuchElementException e) {
if (!lenient) {
throw createException(XCASParsingException.UNKNOWN_ID, Integer.toString(featVal));
}
else {
// we may not have deserialized the value of this feature because it
// was of unknown type. We set it to null, and record in the
// out-of-typesystem data.
this.sharedData.addOutOfTypeSystemAttribute(
addr, feat.getShortName(), Integer.toString(featVal));
}
}
casBeingFilled.setFeatureValue(addr, feats[i], fsValAddr);
}
}