diff options
author | Ilya Zverev <zverik@textual.ru> | 2016-07-15 18:01:19 +0300 |
---|---|---|
committer | Ilya Zverev <zverik@textual.ru> | 2016-07-19 12:53:21 +0300 |
commit | 46a5d58ba1fe3b274df149214fe1bbc7bb97b6e1 (patch) | |
tree | 3d9baa51399d40e78102e3e1c7a6add4573c0059 /indexer/feature_meta.cpp | |
parent | 989c84e7bb93994a02ba482e83e8ec3a90ff91fa (diff) |
[generator] Add region info section to mwms
Diffstat (limited to 'indexer/feature_meta.cpp')
-rw-r--r-- | indexer/feature_meta.cpp | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/indexer/feature_meta.cpp b/indexer/feature_meta.cpp index 6e614d5cb3..73e9451b2d 100644 --- a/indexer/feature_meta.cpp +++ b/indexer/feature_meta.cpp @@ -99,6 +99,50 @@ bool Metadata::TypeFromString(string const & k, Metadata::EType & outType) return true; } + +void RegionData::SetLanguages(vector<string> const & codes) +{ + string value; + for (string const & code : codes) + { + int8_t const lang = StringUtf8Multilang::GetLangIndex(code); + if (lang != StringUtf8Multilang::kUnsupportedLanguageCode) + value.push_back(lang); + } + MetadataBase::Set(RegionData::Type::RD_LANGUAGES, value); +} + +void RegionData::GetLanguages(vector<int8_t> & langs) const +{ + for (auto const lang : Get(RegionData::Type::RD_LANGUAGES)) + langs.push_back(lang); +} + +bool RegionData::HasLanguage(int8_t const lang) const +{ + for (auto const lng : Get(RegionData::Type::RD_LANGUAGES)) + { + if (lng == lang) + return true; + } + return false; +} + +bool RegionData::IsSingleLanguage(int8_t const lang) const +{ + string const value = Get(RegionData::Type::RD_LANGUAGES); + if (value.size() != 1) + return false; + return value.front() == lang; +} + +void RegionData::AddPublicHoliday(int8_t month, int8_t offset) +{ + string value = Get(RegionData::Type::RD_PUBLIC_HOLIDAYS); + value.push_back(month); + value.push_back(offset); + Set(RegionData::Type::RD_PUBLIC_HOLIDAYS, value); +} } // namespace feature // Warning: exact osm tag keys should be returned for valid enum values. |