in src/cas/featurestructure.cpp [534:563]
bool FeatureStructure::hasListElements(Feature const & f) const {
Type tRangeType;
f.getRangeType(tRangeType);
lowlevel::TyFSFeature tyRangeType = internal::FSPromoter::demoteType(tRangeType);
switch (tyRangeType) {
case uima::internal::gs_tyFSListType :
case uima::internal::gs_tyEListType :
case uima::internal::gs_tyNEListType :
return ListFS::hasListElements(*this, f);
case uima::internal::gs_tyFloatListType :
case uima::internal::gs_tyEFloatListType :
case uima::internal::gs_tyNEFloatListType :
return FloatListFS::hasListElements(*this, f);
case uima::internal::gs_tyIntListType :
case uima::internal::gs_tyEIntListType :
case uima::internal::gs_tyNEIntListType :
return IntListFS::hasListElements(*this, f);
case uima::internal::gs_tyStringListType :
case uima::internal::gs_tyEStringListType :
case uima::internal::gs_tyNEStringListType:
return StringListFS::hasListElements(*this, f);
}
UIMA_EXC_THROW_NEW(FSIsNotListException,
UIMA_ERR_FS_IS_NOT_LIST,
UIMA_MSG_ID_EXC_FS_IS_NOT_LIST,
ErrorMessage(UIMA_MSG_ID_EXCON_GETTING_LIST_ISEMPTY),
ErrorInfo::recoverable
);
return false;
}