Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(9)

Unified Diff: third_party/libaddressinput/chromium/cpp/src/ruleset.cc

Issue 389863002: Remove Chrome's own version of libaddressinput in favor of the upstream. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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
deleted file mode 100644
index 201e407cd9ab0fb3faf66c93ac3304821eb735ee..0000000000000000000000000000000000000000
--- a/third_party/libaddressinput/chromium/cpp/src/ruleset.cc
+++ /dev/null
@@ -1,259 +0,0 @@
-// Copyright (C) 2014 Google Inc.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-#include "ruleset.h"
-
-#include <libaddressinput/address_field.h>
-#include <libaddressinput/util/scoped_ptr.h>
-
-#include <cassert>
-#include <cstddef>
-#include <map>
-#include <set>
-#include <string>
-#include <utility>
-
-#include "rule.h"
-#include "util/canonicalize_string.h"
-#include "util/stl_util.h"
-
-namespace i18n {
-namespace addressinput {
-
-Ruleset::Ruleset(AddressField field, scoped_ptr<Rule> rule)
- : tries_(),
- canonicalizer_(),
- parent_(NULL),
- field_(field),
- deepest_ruleset_level_(field),
- rule_(rule.Pass()),
- sub_regions_(),
- language_codes_() {
- assert(field_ >= COUNTRY);
- assert(field_ <= DEPENDENT_LOCALITY);
- assert(rule_ != NULL);
-}
-
-Ruleset::~Ruleset() {
- STLDeleteValues(&sub_regions_);
- STLDeleteValues(&language_codes_);
-
- // Delete the maps and trie objects owned by |tries_| field.
- for (LanguageCodeTries::const_iterator lang_it = tries_.begin();
- lang_it != tries_.end(); ++lang_it) {
- AddressFieldTries* address_field_tries = lang_it->second;
- assert(address_field_tries != NULL);
-
- for (AddressFieldTries::const_iterator address_field_it =
- address_field_tries->begin();
- address_field_it != address_field_tries->end();
- ++address_field_it) {
- IdentityFieldTries* identity_field_tries = address_field_it->second;
- assert(identity_field_tries != NULL);
-
- for (IdentityFieldTries::const_iterator identity_field_it =
- identity_field_tries->begin();
- identity_field_it != identity_field_tries->end();
- ++identity_field_it) {
- // The tries do not own the ruleset objects.
- Trie<const Ruleset*>* trie = identity_field_it->second;
- assert(trie != NULL);
- delete trie;
- }
- delete identity_field_tries;
- }
- delete address_field_tries;
- }
-}
-
-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));
-
- ruleset->parent_ = this;
- 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_;
-}
-
-void Ruleset::BuildPrefixSearchIndex() {
- assert(field_ == COUNTRY);
- assert(tries_.empty());
-
- // Default language tries.
- tries_[""] = new AddressFieldTries;
-
- // Non-default language tries.
- for (std::vector<std::string>::const_iterator lang_it =
- rule_->GetLanguages().begin();
- lang_it != rule_->GetLanguages().end();
- ++lang_it) {
- if (*lang_it != rule_->GetLanguage() && !lang_it->empty()) {
- tries_[*lang_it] = new AddressFieldTries;
- }
- }
-
- for (LanguageCodeTries::const_iterator lang_it = tries_.begin();
- lang_it != tries_.end(); ++lang_it) {
- AddressFieldTries* address_field_tries = lang_it->second;
- address_field_tries->insert(
- std::make_pair(ADMIN_AREA, new IdentityFieldTries));
- address_field_tries->insert(
- std::make_pair(LOCALITY, new IdentityFieldTries));
- address_field_tries->insert(
- std::make_pair(DEPENDENT_LOCALITY, new IdentityFieldTries));
-
- for (AddressFieldTries::const_iterator address_field_it =
- address_field_tries->begin();
- address_field_it != address_field_tries->end();
- ++address_field_it) {
- IdentityFieldTries* identity_field_tries = address_field_it->second;
- identity_field_tries->insert(
- std::make_pair(Rule::KEY, new Trie<const Ruleset*>));
- identity_field_tries->insert(
- std::make_pair(Rule::NAME, new Trie<const Ruleset*>));
- identity_field_tries->insert(
- std::make_pair(Rule::LATIN_NAME, new Trie<const Ruleset*>));
- }
- }
-
- canonicalizer_ = StringCanonicalizer::Build();
- AddSubRegionRulesetsToTrie(*this);
-}
-
-void Ruleset::FindRulesetsByPrefix(const std::string& language_code,
- AddressField ruleset_level,
- Rule::IdentityField identity_field,
- const std::string& prefix,
- std::set<const Ruleset*>* result) const {
- assert(field_ == COUNTRY);
- assert(ruleset_level >= ADMIN_AREA);
- assert(ruleset_level <= DEPENDENT_LOCALITY);
- assert(result != NULL);
- assert(canonicalizer_ != NULL);
-
- LanguageCodeTries::const_iterator lang_it = tries_.find(language_code);
- AddressFieldTries* address_field_tries = lang_it != tries_.end()
- ? lang_it->second : tries_.find("")->second;
- assert(address_field_tries != NULL);
-
- AddressFieldTries::const_iterator address_field_it =
- address_field_tries->find(ruleset_level);
- assert(address_field_it != address_field_tries->end());
-
- IdentityFieldTries* identity_field_tries = address_field_it->second;
- assert(identity_field_tries != NULL);
-
- IdentityFieldTries::const_iterator identity_field_it =
- identity_field_tries->find(identity_field);
- assert(identity_field_it != identity_field_tries->end());
-
- Trie<const Ruleset*>* trie = identity_field_it->second;
- assert(trie != NULL);
-
- trie->FindDataForKeyPrefix(
- canonicalizer_->CanonicalizeString(prefix), result);
-}
-
-void Ruleset::AddSubRegionRulesetsToTrie(const Ruleset& parent_ruleset) {
- assert(field_ == COUNTRY);
- assert(canonicalizer_ != NULL);
-
- for (std::map<std::string, Ruleset*>::const_iterator sub_region_it =
- parent_ruleset.sub_regions_.begin();
- sub_region_it != parent_ruleset.sub_regions_.end();
- ++sub_region_it) {
- const Ruleset* ruleset = sub_region_it->second;
- assert(ruleset != NULL);
-
- if (deepest_ruleset_level_ < ruleset->field()) {
- deepest_ruleset_level_ = ruleset->field();
- }
-
- for (LanguageCodeTries::const_iterator lang_it = tries_.begin();
- lang_it != tries_.end(); ++lang_it) {
- const std::string& language_code = lang_it->first;
- const Rule& rule = ruleset->GetLanguageCodeRule(language_code);
-
- AddressFieldTries* address_field_tries = lang_it->second;
- assert(address_field_tries != NULL);
-
- AddressFieldTries::const_iterator address_field_it =
- address_field_tries->find(ruleset->field());
- assert(address_field_it != address_field_tries->end());
-
- IdentityFieldTries* identity_field_tries = address_field_it->second;
- assert(identity_field_tries != NULL);
-
- IdentityFieldTries::const_iterator identity_field_it =
- identity_field_tries->find(Rule::KEY);
- assert(identity_field_it != identity_field_tries->end());
-
- Trie<const Ruleset*>* key_trie = identity_field_it->second;
- assert(key_trie != NULL);
-
- identity_field_it = identity_field_tries->find(Rule::NAME);
- assert(identity_field_it != identity_field_tries->end());
-
- Trie<const Ruleset*>* name_trie = identity_field_it->second;
- assert(name_trie != NULL);
-
- identity_field_it = identity_field_tries->find(Rule::LATIN_NAME);
- assert(identity_field_it != identity_field_tries->end());
-
- Trie<const Ruleset*>* latin_name_trie = identity_field_it->second;
- assert(latin_name_trie != NULL);
-
- if (!rule.GetKey().empty()) {
- key_trie->AddDataForKey(
- canonicalizer_->CanonicalizeString(rule.GetKey()), ruleset);
- }
-
- if (!rule.GetName().empty()) {
- name_trie->AddDataForKey(
- canonicalizer_->CanonicalizeString(rule.GetName()), ruleset);
- }
-
- if (!rule.GetLatinName().empty()) {
- latin_name_trie->AddDataForKey(
- canonicalizer_->CanonicalizeString(rule.GetLatinName()), ruleset);
- }
- }
-
- AddSubRegionRulesetsToTrie(*ruleset);
- }
-}
-
-} // namespace addressinput
-} // namespace i18n

Powered by Google App Engine
This is Rietveld 408576698