diff options
author | Torne (Richard Coles) <torne@google.com> | 2014-06-20 14:52:47 +0100 |
---|---|---|
committer | Torne (Richard Coles) <torne@google.com> | 2014-06-20 14:52:47 +0100 |
commit | b8347ad8ead685b8afe0ff329ae047f17c7b817c (patch) | |
tree | 6b0965940e7059bb96891e00e9fe8da7a8383c33 /cpp/include/libaddressinput/address_problem.h | |
parent | be7edd6e608768a423c246f9f13c632349a31c5f (diff) | |
parent | d56141c71497da3224256e3d007f4ab1b8bf4ed4 (diff) | |
download | src-b8347ad8ead685b8afe0ff329ae047f17c7b817c.tar.gz |
Merge from Chromium at DEPS revision 278205
This commit was generated by merge_to_master.py.
Change-Id: I54dfe87045260dd68161b9e69e4e6d099ec06849
Diffstat (limited to 'cpp/include/libaddressinput/address_problem.h')
-rw-r--r-- | cpp/include/libaddressinput/address_problem.h | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/cpp/include/libaddressinput/address_problem.h b/cpp/include/libaddressinput/address_problem.h new file mode 100644 index 0000000..743b9e8 --- /dev/null +++ b/cpp/include/libaddressinput/address_problem.h @@ -0,0 +1,68 @@ +// 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. + +#ifndef I18N_ADDRESSINPUT_ADDRESS_PROBLEM_H_ +#define I18N_ADDRESSINPUT_ADDRESS_PROBLEM_H_ + +#include <iosfwd> + +namespace i18n { +namespace addressinput { + +// Address problem types, in no particular order. +enum AddressProblem { + // The field is not null and not whitespace, and the field should not be used + // by addresses in this country. For example, in the U.S. the SORTING_CODE + // field is unused, so its presence is an error. + UNEXPECTED_FIELD, + + // The field is null or whitespace, and the field is required. For example, + // in the U.S. ADMIN_AREA is a required field. + MISSING_REQUIRED_FIELD, + + // A list of values for the field is defined and the value does not occur in + // the list. Applies to hierarchical elements like REGION, ADMIN_AREA, + // LOCALITY, and DEPENDENT_LOCALITY. For example, in the US, the values for + // ADMIN_AREA include "CA" but not "XX". + UNKNOWN_VALUE, + + // A format for the field is defined and the value does not match. This is + // used to match POSTAL_CODE against the the format pattern generally. Formats + // indicate how many digits/letters should be present, and what punctuation is + // allowed. For example, in the U.S. postal codes are five digits with an + // optional hyphen followed by four digits. + INVALID_FORMAT, + + // A specific pattern for the field is defined based on a specific sub-region + // (an ADMIN_AREA for example) and the value does not match. This is used to + // match POSTAL_CODE against a regular expression. For example, in the U.S. + // postal codes in the state of California start with '9'. + MISMATCHING_VALUE, + + // The value contains a P.O. box and the widget options have acceptPostal set + // to false. For example, a street address line that contained "P.O. Box 3456" + // would fire this error. + USES_P_O_BOX +}; + +} // namespace addressinput +} // namespace i18n + +// Produces human-readable output in logging, for example in unit tests. Prints +// what you would expect for valid values, e.g. "UNEXPECTED_FIELD" for +// UNEXPECTED_FIELD. For invalid values, prints "[INVALID ENUM VALUE x]". +std::ostream& operator<<(std::ostream& o, + i18n::addressinput::AddressProblem problem); + +#endif // I18N_ADDRESSINPUT_ADDRESS_PROBLEM_H_ |