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

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

Issue 116363003: [rac] Validate an address. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Constify and remove .get() Created 6 years, 11 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.h
diff --git a/third_party/libaddressinput/chromium/cpp/src/ruleset.h b/third_party/libaddressinput/chromium/cpp/src/ruleset.h
index 224d8e9a6c17cafb07b7b82e635bba004be0c789..2e5dbbe5ff24bf6edb926034862e3d912e92f8fe 100644
--- a/third_party/libaddressinput/chromium/cpp/src/ruleset.h
+++ b/third_party/libaddressinput/chromium/cpp/src/ruleset.h
@@ -15,6 +15,7 @@
#ifndef I18N_ADDRESSINPUT_RULESET_H_
#define I18N_ADDRESSINPUT_RULESET_H_
+#include <libaddressinput/address_field.h>
#include <libaddressinput/util/basictypes.h>
#include <libaddressinput/util/scoped_ptr.h>
@@ -42,26 +43,49 @@ class Rule;
// language version.
class Ruleset {
public:
- // Builds a ruleset with a region-wide |rule| in the default language of the
- // country. The |rule| should not be NULL.
- explicit Ruleset(scoped_ptr<Rule> rule);
+ // Builds a ruleset for |field| with a region-wide |rule| in the default
+ // language of the country. The |field| should be between COUNTRY and
+ // DEPENDENT_LOCALITY (inclusively). The |rule| should not be NULL.
+ Ruleset(AddressField field, scoped_ptr<Rule> rule);
~Ruleset();
- // Returns the region-wide rule in the default language of the country.
- const Rule& rule() const { return *rule_.get(); }
+ // Returns the field type for this ruleset.
+ AddressField field() const { return field_; }
- // Adds and the |ruleset| for |sub_region|.
+ // Returns the region-wide rule for this ruleset in the default language of
+ // the country.
+ const Rule& rule() const { return *rule_; }
+
+ // Adds the |ruleset| for |sub_region|. A |sub_region| should be added at most
+ // once. The |ruleset| should not be NULL.
+ //
+ // The field of the |ruleset| parameter must be exactly one smaller than the
+ // field of this ruleset. For example, a COUNTRY ruleset can contain
+ // ADMIN_AREA rulesets, but should not contain COUNTRY or LOCALITY rulesets.
void AddSubRegionRuleset(const std::string& sub_region,
scoped_ptr<Ruleset> ruleset);
- // Adds a language-specific |rule| for |language_code| for this region.
+ // Adds a language-specific |rule| for |language_code| for this region. A
+ // |language_code| should be added at most once. The |rule| should not be
+ // NULL.
void AddLanguageCodeRule(const std::string& language_code,
scoped_ptr<Rule> rule);
+ // Returns the set of rules for |sub_region|. The result is NULL if there's no
+ // such |sub_region|. The caller does not own the result.
+ Ruleset* GetSubRegionRuleset(const std::string& sub_region) const;
+
+ // If there's a language-specific rule for |language_code|, then returns this
+ // rule. Otherwise returns the rule in the default language of the country.
+ const Rule& GetLanguageCodeRule(const std::string& language_code) const;
+
private:
+ // The field of this ruleset.
+ const AddressField field_;
+
// The region-wide rule in the default language of the country.
- scoped_ptr<const Rule> rule_;
+ const scoped_ptr<const Rule> rule_;
// Owned rulesets for sub-regions.
std::map<std::string, Ruleset*> sub_regions_;
« no previous file with comments | « third_party/libaddressinput/chromium/cpp/src/rule.cc ('k') | third_party/libaddressinput/chromium/cpp/src/ruleset.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698