bool IsInRangeList(const Integral val, const Teuchos::ParameterEntry &e) { if (!e.isType<Teuchos::Array<Integral> >()) throw std::runtime_error("Should not call until modified"); Teuchos::Array<Integral> *valPtr=NULL; Teuchos::Array<Integral> &valList = e.getValue(valPtr); typedef IntegerRangeListValidator<Integral> irl_t; RCP<const irl_t> irl; bool fail = false; RCP<const Teuchos::ParameterEntryValidator> valtor = e.validator(); if (!valtor.is_null()){ try{ irl = rcp_dynamic_cast<const irl_t>(valtor); } catch (...){ fail = true; } } else{ fail = true; } if (fail) throw std::runtime_error("wrong type of parameter entry"); bool sorted = irl->inputListWillBeSorted(); return IsInRangeList(val, valList, sorted); }
bool noValuesAreInRangeList(const Teuchos::ParameterEntry &e) { if (!e.isType<Teuchos::Array<Integral> >()) throw std::runtime_error("Should not call until modified"); Teuchos::Array<Integral> *valPtr=NULL; Teuchos::Array<Integral> &vals = e.getValue(valPtr); return noValuesAreInRangeList(vals); }