bool FeatureStructure::hasListElements()

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;
  }