aboutsummaryrefslogtreecommitdiff
path: root/cpp/include/libaddressinput/address_problem.h
diff options
context:
space:
mode:
authorTorne (Richard Coles) <torne@google.com>2014-06-20 14:52:47 +0100
committerTorne (Richard Coles) <torne@google.com>2014-06-20 14:52:47 +0100
commitb8347ad8ead685b8afe0ff329ae047f17c7b817c (patch)
tree6b0965940e7059bb96891e00e9fe8da7a8383c33 /cpp/include/libaddressinput/address_problem.h
parentbe7edd6e608768a423c246f9f13c632349a31c5f (diff)
parentd56141c71497da3224256e3d007f4ab1b8bf4ed4 (diff)
downloadsrc-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.h68
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_