Chromium Code Reviews| Index: third_party/libaddressinput/chromium/cpp/src/ruleset.cc |
| diff --git a/third_party/libaddressinput/chromium/cpp/src/ruleset.cc b/third_party/libaddressinput/chromium/cpp/src/ruleset.cc |
| index 3201750c391c32b57e6f4b52a9d94ec4232271c5..4df1b8a4d75f7d0eb5b5c71b9c03c0adca2eb7d4 100644 |
| --- a/third_party/libaddressinput/chromium/cpp/src/ruleset.cc |
| +++ b/third_party/libaddressinput/chromium/cpp/src/ruleset.cc |
| @@ -14,13 +14,13 @@ |
| #include "ruleset.h" |
| +#include <libaddressinput/address_field.h> |
| #include <libaddressinput/util/scoped_ptr.h> |
| #include <cassert> |
| #include <cstddef> |
| #include <map> |
| #include <string> |
| -#include <utility> |
| #include "rule.h" |
| #include "util/stl_util.h" |
| @@ -28,10 +28,13 @@ |
| namespace i18n { |
| namespace addressinput { |
| -Ruleset::Ruleset(scoped_ptr<Rule> rule) |
| - : rule_(rule.Pass()), |
| +Ruleset::Ruleset(AddressField field, scoped_ptr<Rule> rule) |
| + : field_(field), |
| + rule_(rule.Pass()), |
| sub_regions_(), |
| language_codes_() { |
| + assert(field_ >= COUNTRY); |
| + assert(field_ <= DEPENDENT_LOCALITY); |
| assert(rule_ != NULL); |
| } |
| @@ -43,14 +46,30 @@ Ruleset::~Ruleset() { |
| void Ruleset::AddSubRegionRuleset(const std::string& sub_region, |
| scoped_ptr<Ruleset> ruleset) { |
| assert(sub_regions_.find(sub_region) == sub_regions_.end()); |
| + assert(ruleset != NULL); |
| + assert(ruleset->field() == static_cast<AddressField>(field() + 1)); |
| sub_regions_[sub_region] = ruleset.release(); |
| } |
| void Ruleset::AddLanguageCodeRule(const std::string& language_code, |
| scoped_ptr<Rule> rule) { |
| assert(language_codes_.find(language_code) == language_codes_.end()); |
| + assert(rule != NULL); |
| language_codes_[language_code] = rule.release(); |
| } |
| +Ruleset* Ruleset::GetSubRegionRuleset(const std::string& sub_region) const { |
| + std::map<std::string, Ruleset*>::const_iterator it = |
| + sub_regions_.find(sub_region); |
| + return it != sub_regions_.end() ? it->second : NULL; |
| +} |
| + |
| +const Rule& Ruleset::GetLanguageCodeRule( |
| + const std::string& language_code) const { |
| + std::map<std::string, const Rule*>::const_iterator it = |
| + language_codes_.find(language_code); |
| + return it != language_codes_.end() ? *it->second : *rule_.get(); |
|
Evan Stade
2014/01/09 21:58:46
*rule_ (no .get())
please use gerrit instead
2014/01/09 22:10:53
Done.
|
| +} |
| + |
| } // namespace addressinput |
| } // namespace i18n |