12621d3d889dcaeb23858c5386844531be4acddfdjeanine@google.com/*
22621d3d889dcaeb23858c5386844531be4acddfdjeanine@google.com * Copyright (C) 2010 Google Inc.
32621d3d889dcaeb23858c5386844531be4acddfdjeanine@google.com *
42621d3d889dcaeb23858c5386844531be4acddfdjeanine@google.com * Licensed under the Apache License, Version 2.0 (the "License");
52621d3d889dcaeb23858c5386844531be4acddfdjeanine@google.com * you may not use this file except in compliance with the License.
62621d3d889dcaeb23858c5386844531be4acddfdjeanine@google.com * You may obtain a copy of the License at
72621d3d889dcaeb23858c5386844531be4acddfdjeanine@google.com *
82621d3d889dcaeb23858c5386844531be4acddfdjeanine@google.com * http://www.apache.org/licenses/LICENSE-2.0
92621d3d889dcaeb23858c5386844531be4acddfdjeanine@google.com *
102621d3d889dcaeb23858c5386844531be4acddfdjeanine@google.com * Unless required by applicable law or agreed to in writing, software
112621d3d889dcaeb23858c5386844531be4acddfdjeanine@google.com * distributed under the License is distributed on an "AS IS" BASIS,
122621d3d889dcaeb23858c5386844531be4acddfdjeanine@google.com * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
132621d3d889dcaeb23858c5386844531be4acddfdjeanine@google.com * See the License for the specific language governing permissions and
142621d3d889dcaeb23858c5386844531be4acddfdjeanine@google.com * limitations under the License.
152621d3d889dcaeb23858c5386844531be4acddfdjeanine@google.com */
162621d3d889dcaeb23858c5386844531be4acddfdjeanine@google.com
172621d3d889dcaeb23858c5386844531be4acddfdjeanine@google.compackage com.android.i18n.addressinput;
182621d3d889dcaeb23858c5386844531be4acddfdjeanine@google.com
192621d3d889dcaeb23858c5386844531be4acddfdjeanine@google.comimport java.util.Arrays;
202621d3d889dcaeb23858c5386844531be4acddfdjeanine@google.comimport java.util.Collections;
212621d3d889dcaeb23858c5386844531be4acddfdjeanine@google.comimport java.util.HashMap;
222621d3d889dcaeb23858c5386844531be4acddfdjeanine@google.comimport java.util.List;
232621d3d889dcaeb23858c5386844531be4acddfdjeanine@google.comimport java.util.Map;
242621d3d889dcaeb23858c5386844531be4acddfdjeanine@google.com
252621d3d889dcaeb23858c5386844531be4acddfdjeanine@google.com/**
262621d3d889dcaeb23858c5386844531be4acddfdjeanine@google.com * Loader for a map defining the standard checks to perform on AddressFields.
272621d3d889dcaeb23858c5386844531be4acddfdjeanine@google.com */
282621d3d889dcaeb23858c5386844531be4acddfdjeanine@google.compublic class StandardChecks {
292621d3d889dcaeb23858c5386844531be4acddfdjeanine@google.com
302c25a6f4922225b619b0e389befde8b941e78834jeanine@google.com    private StandardChecks() {
312c25a6f4922225b619b0e389befde8b941e78834jeanine@google.com    }
322621d3d889dcaeb23858c5386844531be4acddfdjeanine@google.com
332c25a6f4922225b619b0e389befde8b941e78834jeanine@google.com    public static final Map<AddressField, List<AddressProblemType>> PROBLEM_MAP;
342c25a6f4922225b619b0e389befde8b941e78834jeanine@google.com
352c25a6f4922225b619b0e389befde8b941e78834jeanine@google.com    static {
362c25a6f4922225b619b0e389befde8b941e78834jeanine@google.com        Map<AddressField, List<AddressProblemType>> map =
372c25a6f4922225b619b0e389befde8b941e78834jeanine@google.com                new HashMap<AddressField, List<AddressProblemType>>();
382c25a6f4922225b619b0e389befde8b941e78834jeanine@google.com
392d77bd892a00b3761360aff3c421cc76949b2630lararennie@google.com        addToMap(map, AddressField.COUNTRY, AddressProblemType.USING_UNUSED_FIELD,
402c25a6f4922225b619b0e389befde8b941e78834jeanine@google.com                AddressProblemType.MISSING_REQUIRED_FIELD, AddressProblemType.UNKNOWN_VALUE);
412d77bd892a00b3761360aff3c421cc76949b2630lararennie@google.com        addToMap(map, AddressField.ADMIN_AREA, AddressProblemType.USING_UNUSED_FIELD,
422c25a6f4922225b619b0e389befde8b941e78834jeanine@google.com                AddressProblemType.MISSING_REQUIRED_FIELD, AddressProblemType.UNKNOWN_VALUE);
432d77bd892a00b3761360aff3c421cc76949b2630lararennie@google.com        addToMap(map, AddressField.LOCALITY, AddressProblemType.USING_UNUSED_FIELD,
442c25a6f4922225b619b0e389befde8b941e78834jeanine@google.com                AddressProblemType.MISSING_REQUIRED_FIELD, AddressProblemType.UNKNOWN_VALUE);
452d77bd892a00b3761360aff3c421cc76949b2630lararennie@google.com        addToMap(map, AddressField.DEPENDENT_LOCALITY, AddressProblemType.USING_UNUSED_FIELD,
462c25a6f4922225b619b0e389befde8b941e78834jeanine@google.com                AddressProblemType.MISSING_REQUIRED_FIELD, AddressProblemType.UNKNOWN_VALUE);
472d77bd892a00b3761360aff3c421cc76949b2630lararennie@google.com        addToMap(map, AddressField.POSTAL_CODE, AddressProblemType.USING_UNUSED_FIELD,
482c25a6f4922225b619b0e389befde8b941e78834jeanine@google.com                AddressProblemType.MISSING_REQUIRED_FIELD, AddressProblemType.UNRECOGNIZED_FORMAT,
492c25a6f4922225b619b0e389befde8b941e78834jeanine@google.com                AddressProblemType.MISMATCHING_VALUE);
502d77bd892a00b3761360aff3c421cc76949b2630lararennie@google.com        addToMap(map, AddressField.STREET_ADDRESS, AddressProblemType.USING_UNUSED_FIELD,
512c25a6f4922225b619b0e389befde8b941e78834jeanine@google.com                AddressProblemType.MISSING_REQUIRED_FIELD);
522d77bd892a00b3761360aff3c421cc76949b2630lararennie@google.com        addToMap(map, AddressField.SORTING_CODE, AddressProblemType.USING_UNUSED_FIELD,
532c25a6f4922225b619b0e389befde8b941e78834jeanine@google.com                AddressProblemType.MISSING_REQUIRED_FIELD);
542d77bd892a00b3761360aff3c421cc76949b2630lararennie@google.com        addToMap(map, AddressField.ORGANIZATION, AddressProblemType.USING_UNUSED_FIELD,
552c25a6f4922225b619b0e389befde8b941e78834jeanine@google.com                AddressProblemType.MISSING_REQUIRED_FIELD);
562d77bd892a00b3761360aff3c421cc76949b2630lararennie@google.com        addToMap(map, AddressField.RECIPIENT, AddressProblemType.USING_UNUSED_FIELD,
572c25a6f4922225b619b0e389befde8b941e78834jeanine@google.com                AddressProblemType.MISSING_REQUIRED_FIELD);
582c25a6f4922225b619b0e389befde8b941e78834jeanine@google.com
592c25a6f4922225b619b0e389befde8b941e78834jeanine@google.com        PROBLEM_MAP = Collections.unmodifiableMap(map);
602c25a6f4922225b619b0e389befde8b941e78834jeanine@google.com    }
612c25a6f4922225b619b0e389befde8b941e78834jeanine@google.com
622c25a6f4922225b619b0e389befde8b941e78834jeanine@google.com    private static void addToMap(Map<AddressField, List<AddressProblemType>> map,
632c25a6f4922225b619b0e389befde8b941e78834jeanine@google.com            AddressField field,
642c25a6f4922225b619b0e389befde8b941e78834jeanine@google.com            AddressProblemType... problems) {
652c25a6f4922225b619b0e389befde8b941e78834jeanine@google.com        map.put(field, Collections.unmodifiableList(Arrays.asList(problems)));
662c25a6f4922225b619b0e389befde8b941e78834jeanine@google.com    }
672621d3d889dcaeb23858c5386844531be4acddfdjeanine@google.com}
68