in uimafit-core/src/main/java/org/apache/uima/fit/util/FSUtil.java [271:320]
public static void setFeature(FeatureStructure aFS, Feature feat, Collection aValue) {
if (aValue == null) {
aFS.setFeatureValue(feat, null);
} else if (feat.getRange().isArray()) {
switch (feat.getRange().getName()) {
case CAS.TYPE_NAME_BOOLEAN_ARRAY:
aFS.setFeatureValue(feat, createBooleanArrayFS(aFS.getCAS(), aValue));
break;
case CAS.TYPE_NAME_BYTE_ARRAY:
aFS.setFeatureValue(feat, createByteArrayFS(aFS.getCAS(), aValue));
break;
case CAS.TYPE_NAME_DOUBLE_ARRAY:
aFS.setFeatureValue(feat, createDoubleArrayFS(aFS.getCAS(), aValue));
break;
case CAS.TYPE_NAME_FLOAT_ARRAY:
aFS.setFeatureValue(feat, createFloatArrayFS(aFS.getCAS(), aValue));
break;
case CAS.TYPE_NAME_INTEGER_ARRAY:
aFS.setFeatureValue(feat, createIntArrayFS(aFS.getCAS(), aValue));
break;
case CAS.TYPE_NAME_LONG_ARRAY:
aFS.setFeatureValue(feat, createLongArrayFS(aFS.getCAS(), aValue));
break;
case CAS.TYPE_NAME_SHORT_ARRAY:
aFS.setFeatureValue(feat, createShortArrayFS(aFS.getCAS(), aValue));
break;
case CAS.TYPE_NAME_STRING_ARRAY:
aFS.setFeatureValue(feat, createStringArrayFS(aFS.getCAS(), aValue));
break;
default:
aFS.setFeatureValue(feat, createArrayFS(aFS.getCAS(), aValue));
break;
}
} else {
switch (feat.getRange().getName()) {
case CAS.TYPE_NAME_FLOAT_LIST:
aFS.setFeatureValue(feat, createFloatList(aFS.getCAS(), aValue));
break;
case CAS.TYPE_NAME_INTEGER_LIST:
aFS.setFeatureValue(feat, createIntegerList(aFS.getCAS(), aValue));
break;
case CAS.TYPE_NAME_STRING_LIST:
aFS.setFeatureValue(feat, createStringList(aFS.getCAS(), aValue));
break;
default:
aFS.setFeatureValue(feat, createFSList(aFS.getCAS(), aValue));
break;
}
}
}