void setStringMapAttribute_(const nstr& key, const nvar& value){ nvec values; if(value.isString()){ values.push_back(value); } else{ if(!value.hasVector()){ error_(key, value); } for(size_t i = 0; i < value.size(); ++i){ if(!value[i].isString()){ error_(key, value); } values.push_back(value[i]); } } nvar& r = attrs_(key); for(const nstr& k : values){ r(k) = true; } }
bool NConcept::isInteger(const nvar& v, bool allowNegative){ if(v.hasVector()){ for(const nvar& vi : v){ if(vi == undef){ return false; } if(!vi.isInteger()){ return false; } if(!allowNegative && vi < 0){ return false; } } return true; } if(v == undef){ return false; } if(v.isInteger()){ if(allowNegative){ return true; } return v >= 0; } return false; }
void setStringAttribute_(const nstr& key, const nvar& value){ nstr str; if(value.isString()){ str = value; } else{ if(!value.hasVector()){ error_(key, value); } for(size_t i = 0; i < value.size(); ++i){ if(!value[i].isString()){ error_(key, value); } } str = nstr::join(value.vec(), "; "); } attrs_(key) = str; }