1dbc178c44b05b9f764cb7a40ee28b76768bb4e9dlararennie@google.com/* 2dbc178c44b05b9f764cb7a40ee28b76768bb4e9dlararennie@google.com * Copyright (C) 2010 Google Inc. 3dbc178c44b05b9f764cb7a40ee28b76768bb4e9dlararennie@google.com * 4dbc178c44b05b9f764cb7a40ee28b76768bb4e9dlararennie@google.com * Licensed under the Apache License, Version 2.0 (the "License"); 5dbc178c44b05b9f764cb7a40ee28b76768bb4e9dlararennie@google.com * you may not use this file except in compliance with the License. 6dbc178c44b05b9f764cb7a40ee28b76768bb4e9dlararennie@google.com * You may obtain a copy of the License at 7dbc178c44b05b9f764cb7a40ee28b76768bb4e9dlararennie@google.com * 8dbc178c44b05b9f764cb7a40ee28b76768bb4e9dlararennie@google.com * http://www.apache.org/licenses/LICENSE-2.0 9dbc178c44b05b9f764cb7a40ee28b76768bb4e9dlararennie@google.com * 10dbc178c44b05b9f764cb7a40ee28b76768bb4e9dlararennie@google.com * Unless required by applicable law or agreed to in writing, software 11dbc178c44b05b9f764cb7a40ee28b76768bb4e9dlararennie@google.com * distributed under the License is distributed on an "AS IS" BASIS, 12dbc178c44b05b9f764cb7a40ee28b76768bb4e9dlararennie@google.com * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13dbc178c44b05b9f764cb7a40ee28b76768bb4e9dlararennie@google.com * See the License for the specific language governing permissions and 14dbc178c44b05b9f764cb7a40ee28b76768bb4e9dlararennie@google.com * limitations under the License. 15dbc178c44b05b9f764cb7a40ee28b76768bb4e9dlararennie@google.com */ 16dbc178c44b05b9f764cb7a40ee28b76768bb4e9dlararennie@google.com 17dbc178c44b05b9f764cb7a40ee28b76768bb4e9dlararennie@google.compackage com.android.i18n.addressinput; 18dbc178c44b05b9f764cb7a40ee28b76768bb4e9dlararennie@google.com 19dbc178c44b05b9f764cb7a40ee28b76768bb4e9dlararennie@google.comimport java.util.HashMap; 20dbc178c44b05b9f764cb7a40ee28b76768bb4e9dlararennie@google.comimport java.util.Map; 21dbc178c44b05b9f764cb7a40ee28b76768bb4e9dlararennie@google.com 22dbc178c44b05b9f764cb7a40ee28b76768bb4e9dlararennie@google.com/** 23dbc178c44b05b9f764cb7a40ee28b76768bb4e9dlararennie@google.com * Defines the character codes used in the metadata to specify the types of fields used in address 242c25a6f4922225b619b0e389befde8b941e78834jeanine@google.com * formatting. Note that the metadata also has a character for newlines, which is not defined here. 25dbc178c44b05b9f764cb7a40ee28b76768bb4e9dlararennie@google.com */ 26dbc178c44b05b9f764cb7a40ee28b76768bb4e9dlararennie@google.compublic enum AddressField { 27c18e31ba9023fb443590722763c470c77e3b3272lararennie@google.com ADMIN_AREA('S'), 28c18e31ba9023fb443590722763c470c77e3b3272lararennie@google.com LOCALITY('C'), 29c18e31ba9023fb443590722763c470c77e3b3272lararennie@google.com RECIPIENT('N'), 30c18e31ba9023fb443590722763c470c77e3b3272lararennie@google.com ORGANIZATION('O'), 317ec1440a308d40ea6548625ca00ee0f6ac87a979roubert@google.com // Deprecated - use A instead. 32c18e31ba9023fb443590722763c470c77e3b3272lararennie@google.com ADDRESS_LINE_1('1'), 337ec1440a308d40ea6548625ca00ee0f6ac87a979roubert@google.com // Deprecated - use A instead. 34c18e31ba9023fb443590722763c470c77e3b3272lararennie@google.com ADDRESS_LINE_2('2'), 352c25a6f4922225b619b0e389befde8b941e78834jeanine@google.com DEPENDENT_LOCALITY('D'), 362c25a6f4922225b619b0e389befde8b941e78834jeanine@google.com POSTAL_CODE('Z'), 372c25a6f4922225b619b0e389befde8b941e78834jeanine@google.com SORTING_CODE('X'), 382c25a6f4922225b619b0e389befde8b941e78834jeanine@google.com STREET_ADDRESS('A'), 39dbc178c44b05b9f764cb7a40ee28b76768bb4e9dlararennie@google.com 402c25a6f4922225b619b0e389befde8b941e78834jeanine@google.com COUNTRY('R'); 41dbc178c44b05b9f764cb7a40ee28b76768bb4e9dlararennie@google.com 42e35bb3be4981ebf0f3d15645f6610681dfaf4627roubert@google.com /** 43e35bb3be4981ebf0f3d15645f6610681dfaf4627roubert@google.com * Enum for width types of address input fields. 44e35bb3be4981ebf0f3d15645f6610681dfaf4627roubert@google.com */ 45e35bb3be4981ebf0f3d15645f6610681dfaf4627roubert@google.com public enum WidthType { 46e35bb3be4981ebf0f3d15645f6610681dfaf4627roubert@google.com LONG, 47e35bb3be4981ebf0f3d15645f6610681dfaf4627roubert@google.com SHORT; 48e35bb3be4981ebf0f3d15645f6610681dfaf4627roubert@google.com } 49e35bb3be4981ebf0f3d15645f6610681dfaf4627roubert@google.com 500dbcfb4fae3e125550c534191627574ea69ec3aflararennie@google.com private static final Map<Character, AddressField> FIELD_MAPPING 512c25a6f4922225b619b0e389befde8b941e78834jeanine@google.com = new HashMap<Character, AddressField>(); 52dbc178c44b05b9f764cb7a40ee28b76768bb4e9dlararennie@google.com 532c25a6f4922225b619b0e389befde8b941e78834jeanine@google.com static { 5437ea1c8bb9bf0ee18a9ce7412ace03885098e348lararennie@google.com for (AddressField value : values()) { 550dbcfb4fae3e125550c534191627574ea69ec3aflararennie@google.com FIELD_MAPPING.put(value.getChar(), value); 562c25a6f4922225b619b0e389befde8b941e78834jeanine@google.com } 57dbc178c44b05b9f764cb7a40ee28b76768bb4e9dlararennie@google.com } 58dbc178c44b05b9f764cb7a40ee28b76768bb4e9dlararennie@google.com 5937ea1c8bb9bf0ee18a9ce7412ace03885098e348lararennie@google.com private final char mField; 60dbc178c44b05b9f764cb7a40ee28b76768bb4e9dlararennie@google.com 612c25a6f4922225b619b0e389befde8b941e78834jeanine@google.com private AddressField(char field) { 62c18e31ba9023fb443590722763c470c77e3b3272lararennie@google.com mField = field; 632c25a6f4922225b619b0e389befde8b941e78834jeanine@google.com } 64dbc178c44b05b9f764cb7a40ee28b76768bb4e9dlararennie@google.com 652c25a6f4922225b619b0e389befde8b941e78834jeanine@google.com /** 662c25a6f4922225b619b0e389befde8b941e78834jeanine@google.com * Gets the corresponding AddressField for the character code. Returns null if the character is 672c25a6f4922225b619b0e389befde8b941e78834jeanine@google.com * not recognized. 682c25a6f4922225b619b0e389befde8b941e78834jeanine@google.com */ 69dc4cdad9dd71a57be66262d1d6d46a09c0973818lararennie@google.com static AddressField of(char field) { 700dbcfb4fae3e125550c534191627574ea69ec3aflararennie@google.com return FIELD_MAPPING.get(field); 712c25a6f4922225b619b0e389befde8b941e78834jeanine@google.com } 72dbc178c44b05b9f764cb7a40ee28b76768bb4e9dlararennie@google.com 732c25a6f4922225b619b0e389befde8b941e78834jeanine@google.com /** 742c25a6f4922225b619b0e389befde8b941e78834jeanine@google.com * Gets the field's identification character, as used in the metadata. 752c25a6f4922225b619b0e389befde8b941e78834jeanine@google.com * 762c25a6f4922225b619b0e389befde8b941e78834jeanine@google.com * @return identification char. 772c25a6f4922225b619b0e389befde8b941e78834jeanine@google.com */ 78dc4cdad9dd71a57be66262d1d6d46a09c0973818lararennie@google.com char getChar() { 7937ea1c8bb9bf0ee18a9ce7412ace03885098e348lararennie@google.com return mField; 802c25a6f4922225b619b0e389befde8b941e78834jeanine@google.com } 81e35bb3be4981ebf0f3d15645f6610681dfaf4627roubert@google.com 82e35bb3be4981ebf0f3d15645f6610681dfaf4627roubert@google.com /** Returns default width type of the address field. */ 83e35bb3be4981ebf0f3d15645f6610681dfaf4627roubert@google.com WidthType getDefaulWidthType() { 84e35bb3be4981ebf0f3d15645f6610681dfaf4627roubert@google.com return this.equals(POSTAL_CODE) || this.equals(SORTING_CODE) 85e35bb3be4981ebf0f3d15645f6610681dfaf4627roubert@google.com ? WidthType.SHORT : WidthType.LONG; 86e35bb3be4981ebf0f3d15645f6610681dfaf4627roubert@google.com } 87dbc178c44b05b9f764cb7a40ee28b76768bb4e9dlararennie@google.com} 88