blob: 48830c5ed7812542eba541046f2482820efa6bcc [file] [log] [blame]
package org.unicode.cldr.util;
import java.util.HashMap;
import java.util.Map;
import org.unicode.cldr.icu.LDMLConstants;
/**
* @deprecated
*/
public class PathUtilities {
// ===== types of data and menu names
public static final String LOCALEDISPLAYNAMES = "//ldml/localeDisplayNames/";
/**
* All of the data items under LOCALEDISPLAYNAMES (menu items)
*/
public static final String LOCALEDISPLAYNAMES_ITEMS[] = { LDMLConstants.LANGUAGES,
LDMLConstants.SCRIPTS, LDMLConstants.TERRITORIES, LDMLConstants.VARIANTS, LDMLConstants.KEYS,
LDMLConstants.TYPES, PathUtilities.CURRENCIES, PathUtilities.TIMEZONES,
PathUtilities.CODEPATTERNS, PathUtilities.MEASNAMES };
public static final String OTHER_CALENDARS_XPATH = "//ldml/dates/calendars/calendar";
public static final String LOCALEDISPLAYPATTERN_XPATH = LOCALEDISPLAYNAMES
+ LDMLConstants.LOCALEDISPLAYPATTERN;
public static final String NUMBERSCURRENCIES = LDMLConstants.NUMBERS + "/"
+ PathUtilities.CURRENCIES;
public static final String CURRENCIES = "currencies";
public static final String TIMEZONES = "timezones";
public static final String METAZONES = "metazones";
public static String xOTHER = "misc";
public static final String CODEPATTERNS = "codePatterns";
public static final String MEASNAMES = "measurementSystemNames";
public static String xpathToMenu(String path) {
String theMenu = null;
if (path.startsWith(LOCALEDISPLAYNAMES)) {
for (int i = 0; i < LOCALEDISPLAYNAMES_ITEMS.length; i++) {
if (path.startsWith(LOCALEDISPLAYNAMES
+ LOCALEDISPLAYNAMES_ITEMS[i])) {
theMenu = LOCALEDISPLAYNAMES_ITEMS[i];
}
}
if (path.startsWith(LOCALEDISPLAYPATTERN_XPATH)) {
theMenu = LDMLConstants.LOCALEDISPLAYPATTERN;
}
// } else if(path.startsWith(GREGO_XPATH)) {
// theMenu=GREGORIAN_CALENDAR;
} else if (path.startsWith(OTHER_CALENDARS_XPATH)) {
String items[] = getCalendarsItems();
for (String which : items) {
String CAL_XPATH = "//ldml/dates/calendars/calendar[@type=\"" + which + "\"]";
if (path.startsWith(CAL_XPATH)) {
theMenu = which;
break;
}
}
} else if (path.startsWith(LOCALEDISPLAYPATTERN_XPATH)) {
theMenu = LDMLConstants.LOCALEDISPLAYPATTERN;
} else if (path.startsWith("//ldml/" + NUMBERSCURRENCIES)) {
theMenu = CURRENCIES;
} else if (path.startsWith("//ldml/" + "dates/timeZoneNames/zone")) {
theMenu = TIMEZONES;
} else if (path.startsWith("//ldml/" + "units")) {
theMenu = "units";
} else if (path.startsWith("//ldml/" + "dates/timeZoneNames/metazone")) {
theMenu = getMetazoneContinent(path);
if (theMenu == null) {
theMenu = METAZONES;
}
} else if (path.startsWith("//ldml/" + LDMLConstants.CHARACTERS + "/" + LDMLConstants.EXEMPLAR_CHARACTERS)) {
theMenu = LDMLConstants.CHARACTERS;
} else if (path.startsWith("//ldml/" + LDMLConstants.NUMBERS)) {
theMenu = LDMLConstants.NUMBERS;
} else if (path.startsWith("//ldml/" + LDMLConstants.REFERENCES)) {
theMenu = LDMLConstants.REFERENCES;
} else {
theMenu = xOTHER;
// other?
}
return theMenu;
}
public static String[] getCalendarsItems() {
// TODO : Make this data driven from supplementalMetaData ;
// I couldn't get the xpath right....
// CLDRFile mySupp = getFactory().make("supplementalMetaData",false);
// String xpath =
// "//supplementalData/metadata/validity/variable[@id=\"$calendar\"][@type=\"choice\"]";
// String items = mySupp.getStringValue(xpath);
// if ( items != null ) {
// return (items.split(" "));
// }
// else {
String defaultCalendarsItems = "gregorian buddhist coptic ethiopic chinese hebrew indian islamic japanese persian roc";
return (defaultCalendarsItems.split(" "));
// }
}
public static String[] getMetazonesItems()
{
String defaultMetazonesItems = "Africa America Antarctica Asia Australia Europe Atlantic Indian Pacific";
return (defaultMetazonesItems.split(" "));
}
private static Map<String, String> mzXpathToContinent = new HashMap<String, String>();
private synchronized static String getMetazoneContinent(String xpath) {
String continent = mzXpathToContinent.get(xpath);
if (continent == null) {
XPathParts parts = new XPathParts(null, null);
// SupplementalDataInfo mySupp = getSupplementalDataInfo();
parts.set(xpath);
String thisMetazone = parts.getAttributeValue(3, "type");
continent = getMetazoneToContinentMap().get(thisMetazone);
}
return continent;
}
static Map<String, String> mzToContinentMap = null;
private static Map<String, String> getMetazoneToContinentMap() {
if (mzToContinentMap == null) {
System.err
.println("PathUtilities.java getMetazoneToContinentMap(): TODO: Get this data from supplemental data! http://unicode.org/cldr/trac/ticket/3761");
HashMap<String, String> newMap = new HashMap<String, String>();
for (int i = 0; i < mzToContinentStatic.length; i += 2) {
newMap.put(mzToContinentStatic[i + 0], mzToContinentStatic[i + 1]);
}
mzToContinentMap = newMap;
}
return mzToContinentMap;
}
private static final String mzToContinentStatic[] = {
"Philippines", "Asia",
"Gambier", "Pacific",
"Ecuador", "America",
"Kuybyshev", "Europe",
"Europe_Western", "Atlantic",
"Chile", "America",
"Afghanistan", "Asia",
"Pierre_Miquelon", "America",
"Solomon", "Pacific",
"Arabian", "Asia",
"Krasnoyarsk", "Asia",
"Vladivostok", "Asia",
"Fiji", "Pacific",
"Niue", "Pacific",
"Marquesas", "Pacific",
"Karachi", "Asia",
"Aqtobe", "Asia",
"Irish", "Europe",
"Yakutsk", "Asia",
"Galapagos", "Pacific",
"Bangladesh", "Asia",
"America_Pacific", "America",
"Urumqi", "Asia",
"Tahiti", "Pacific",
"Samoa", "Pacific",
"Uzbekistan", "Asia",
"Turkey", "Europe",
"Kyrgystan", "Asia",
"Europe_Eastern", "Europe",
"Casey", "Antarctica",
"Lord_Howe", "Australia",
"Kizilorda", "Asia",
"Kashgar", "Asia",
"Africa_Western", "Africa",
"Macquarie", "Antarctica",
"Wake", "Pacific",
"Australia_Eastern", "Australia",
"Guyana", "America",
"Taipei", "Asia",
"Samarkand", "Asia",
"Mawson", "Antarctica",
"Africa_Eastern", "Africa",
"Guam", "Pacific",
"Kazakhstan_Western", "Asia",
"Aqtau", "Asia",
"Cook", "Pacific",
"Wallis", "Pacific",
"Irkutsk", "Asia",
"Africa_Southern", "Africa",
"French_Guiana", "America",
"Chatham", "Pacific",
"Oral", "Asia",
"Noronha", "America",
"Paraguay", "America",
"Moscow", "Europe",
"Hong_Kong", "Asia",
"Yerevan", "Asia",
"Vostok", "Antarctica",
"Rothera", "Antarctica",
"Colombia", "America",
"Newfoundland", "America",
"Hawaii_Aleutian", "Pacific",
"East_Timor", "Asia",
"GMT", "Atlantic",
"Indian_Ocean", "Indian",
"Reunion", "Indian",
"Vanuatu", "Pacific",
"Malaysia", "Asia",
"Kwajalein", "Pacific",
"Line_Islands", "Pacific",
"Shevchenko", "Asia",
"Azores", "Atlantic",
"Frunze", "Asia",
"Greenland_Eastern", "America",
"Hovd", "Asia",
"Lanka", "Asia",
"Almaty", "Asia",
"Macau", "Asia",
"Mongolia", "Asia",
"Easter", "Pacific",
"British", "Europe",
"Korea", "Asia",
"Papua_New_Guinea", "Pacific",
"Bering", "America",
"Cocos", "Indian",
"Mauritius", "Indian",
"Argentina", "America",
"Tokelau", "Pacific",
"America_Central", "America",
"Alaska", "America",
"Georgia", "Asia",
"Choibalsan", "Asia",
"Sakhalin", "Asia",
"Anadyr", "Asia",
"Dushanbe", "Asia",
"Indonesia_Eastern", "Asia",
"Japan", "Asia",
"Omsk", "Asia",
"Nauru", "Pacific",
"Cuba", "America",
"Iran", "Asia",
"Sverdlovsk", "Asia",
"Maldives", "Indian",
"Europe_Central", "Europe",
"Kamchatka", "Asia",
"Tajikistan", "Asia",
"Pitcairn", "Pacific",
"Gilbert_Islands", "Pacific",
"Novosibirsk", "Asia",
"Brunei", "Asia",
"Tonga", "Pacific",
"Changbai", "Asia",
"India", "Asia",
"Indonesia_Western", "Asia",
"Malaya", "Asia",
"Dacca", "Asia",
"Tashkent", "Asia",
"New_Zealand", "Pacific",
"Indonesia_Central", "Asia",
"Myanmar", "Asia",
"South_Georgia", "Atlantic",
"Truk", "Pacific",
"Pakistan", "Asia",
"Borneo", "Asia",
"DumontDUrville", "Antarctica",
"Argentina_Western", "America",
"Uruguay", "America",
"Dutch_Guiana", "America",
"Ponape", "Pacific",
"Gulf", "Asia",
"Aktyubinsk", "Asia",
"America_Mountain", "America",
"Dominican", "America",
"North_Mariana", "Pacific",
"Yukon", "America",
"Armenia", "Asia",
"Falkland", "Atlantic",
"Tbilisi", "Asia",
"Baku", "Asia",
"Venezuela", "America",
"Ashkhabad", "Asia",
"Cape_Verde", "Atlantic",
"Phoenix_Islands", "Pacific",
"Brasilia", "America",
"Marshall_Islands", "Pacific",
"Volgograd", "Europe",
"Yekaterinburg", "Asia",
"Kosrae", "Pacific",
"Tuvalu", "Pacific",
"Africa_Central", "Africa",
"Palau", "Pacific",
"Alaska_Hawaii", "America",
"Qyzylorda", "Asia",
"Bhutan", "Asia",
"Israel", "Asia",
"America_Eastern", "America",
"Nepal", "Asia",
"Azerbaijan", "Asia",
"Uralsk", "Asia",
"Bolivia", "America",
"Liberia", "Africa",
"Turkmenistan", "Asia",
"Davis", "Antarctica",
"Norfolk", "Pacific",
"Indochina", "Asia",
"Peru", "America",
"Acre", "America",
"China", "Asia",
"Chamorro", "Pacific",
"Atlantic", "America",
"Syowa", "Antarctica",
"Africa_FarWestern", "Africa",
"New_Caledonia", "Pacific",
"Greenland_Western", "America",
"Suriname", "America",
"Seychelles", "Indian",
"Christmas", "Indian",
"Australia_CentralWestern", "Australia",
"Greenland_Central", "America",
"French_Southern", "Indian",
"Australia_Central", "Australia",
"Australia_Western", "Australia",
"Magadan", "Asia",
"Kazakhstan_Eastern", "Asia",
"Goose_Bay", "America",
"Singapore", "Asia",
"Amazon", "America",
"Long_Shu", "Asia",
"Samara", "Europe",
};
}