diff options
Diffstat (limited to 'src/plugins/devices.services/src/com/motorola/studio/android/devices/services/lang/model/Country.java')
-rw-r--r-- | src/plugins/devices.services/src/com/motorola/studio/android/devices/services/lang/model/Country.java | 173 |
1 files changed, 173 insertions, 0 deletions
diff --git a/src/plugins/devices.services/src/com/motorola/studio/android/devices/services/lang/model/Country.java b/src/plugins/devices.services/src/com/motorola/studio/android/devices/services/lang/model/Country.java new file mode 100644 index 0000000..f2bcb93 --- /dev/null +++ b/src/plugins/devices.services/src/com/motorola/studio/android/devices/services/lang/model/Country.java @@ -0,0 +1,173 @@ +/* + * Copyright (C) 2012 The Android Open Source Project + * + * 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. + */ +package com.motorola.studio.android.devices.services.lang.model; + +import java.io.InputStream; +import java.net.URL; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import javax.xml.parsers.DocumentBuilder; +import javax.xml.parsers.DocumentBuilderFactory; + +import org.w3c.dom.Document; +import org.w3c.dom.Element; +import org.w3c.dom.NodeList; + +import com.motorola.studio.android.common.log.StudioLogger; +import com.motorola.studio.android.devices.services.DeviceServicesPlugin; + +/** + * Country representation + * + * The list of countries has been downloaded from: + * http://www.iso.org/iso/country_codes/iso_3166_code_lists.htm + */ +public class Country +{ + + private static final String FILE_PATH = "resources/iso_3166-1_list_en.xml"; + + private static final String COUNTRY_NODE = "ISO_3166-1_Entry"; + + private static final String COUNTRY_NAME = "ISO_3166-1_Country_name"; + + private static final String COUNTRY_ID = "ISO_3166-1_Alpha-2_Code_element"; + + private static List<Country> countryList = null; + + private static Map<String, Country> countryMap = null; + + private String name; + + private String id; + + /** + * Get the countries list + * + * @return the countries list + */ + public static List<Country> getCountryList() + { + if (countryList == null) + { + loadCountries(); + } + return countryList; + } + + /* + * Load countries from XML file + */ + private static void loadCountries() + { + countryList = new ArrayList<Country>(); + countryMap = new HashMap<String, Country>(); + + URL countriesURL = DeviceServicesPlugin.getDefault().getBundle().getResource(FILE_PATH); + + try + { + + InputStream countriesIS = countriesURL.openStream(); + + DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); + DocumentBuilder builder = factory.newDocumentBuilder(); + Document document = builder.parse(countriesIS); + + NodeList list = document.getDocumentElement().getElementsByTagName(COUNTRY_NODE); + + for (int i = 0; i < list.getLength(); i++) + { + + Element countryNode = (Element) list.item(i); + + String name = + countryNode.getElementsByTagName(COUNTRY_NAME).item(0).getChildNodes() + .item(0).getNodeValue(); + String ID = + countryNode.getElementsByTagName(COUNTRY_ID).item(0).getChildNodes() + .item(0).getNodeValue(); + + if (((ID != null) && (!ID.equals(""))) && ((name != null) && (!name.equals("")))) + { + Country country = new Country(name, ID); + countryList.add(country); + countryMap.put(name, country); + } + } + + } + catch (Exception e) + { + StudioLogger.error("Change Language TmL Service: could not load countries list"); + } + + } + + /** + * Get country ID from country name + * + * @param countryName country name + * @return country ID + */ + public static String getIdFromName(String countryName) + { + String id = null; + Country country = countryMap.get(countryName); + if (country != null) + { + id = country.getId(); + } + return id; + } + + /** + * Constructor + * + * @param name country name + * @param id country name + */ + public Country(String name, String id) + { + super(); + this.name = name; + this.id = id; + } + + public String getName() + { + return name; + } + + public void setName(String name) + { + this.name = name; + } + + public String getId() + { + return id; + } + + public void setId(String id) + { + this.id = id; + } + +} |