diff options
Diffstat (limited to 'libjava/java/text/DateFormatSymbols.java')
-rw-r--r-- | libjava/java/text/DateFormatSymbols.java | 265 |
1 files changed, 265 insertions, 0 deletions
diff --git a/libjava/java/text/DateFormatSymbols.java b/libjava/java/text/DateFormatSymbols.java new file mode 100644 index 00000000000..d21cdeada10 --- /dev/null +++ b/libjava/java/text/DateFormatSymbols.java @@ -0,0 +1,265 @@ +/* Copyright (C) 1998, 1999 Cygnus Solutions + + This file is part of libgcj. + +This software is copyrighted work licensed under the terms of the +Libgcj License. Please consult the file "LIBGCJ_LICENSE" for +details. */ + +package java.text; + +import java.util.Locale; +import java.util.MissingResourceException; +import java.util.ResourceBundle; + +/** + * @author Per Bothner <bothner@cygnus.com> + * @date October 24, 1998. + */ + +/* Written using "Java Class Libraries", 2nd edition, ISBN 0-201-31002-3. + * Status: Believed complete and correct. + */ + +public class DateFormatSymbols extends Object + implements java.io.Serializable, Cloneable +{ + private String[] ampms; + private String[] eras; + private String localPatternChars; + private String[] months; + private String[] shortMonths; + private String[] shortWeekdays; + private String[] weekdays; + private String[][] zoneStrings; + + private static final String[] ampmsDefault = {"AM", "PM" }; + private static final String[] erasDefault = {"BC", "AD" }; + // localPatternCharsDefault is used by SimpleDateFormat. + protected static final String localPatternCharsDefault + = "GyMdkHmsSEDFwWahKz"; + private static final String[] monthsDefault = { + "January", "February", "March", "April", "May", "June", + "July", "August", "September", "October", "November", "December", "" + }; + private static final String[] shortMonthsDefault = { + "Jan", "Feb", "Mar", "Apr", "May", "Jun", + "Jul", "Aug", "Sep", "Oct", "Nov", "Dec", "" + }; + private static final String[] shortWeekdaysDefault = { + "", "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat" + }; + private static final String[] weekdaysDefault = { + "", "Sunday", "Monday", "Tuesday", + "Wednesday", "Thursday", "Friday", "Saturday" + }; + + private static String[][] zoneStringsDefault = { + { "PST", "Pacific Standard Time", "PST", + /**/ "Pacific Daylight Time", "PDT", "San Francisco" }, + { "MST", "Mountain Standard Time", "MST", + /**/ "Mountain Daylight Time", "MDT", "Denver" }, + { "PNT", "Mountain Standard Time", "MST", + /**/ "Mountain Standard Time", "MST", "Phoenix" }, + { "CST", "Central Standard Time", "CST", + /**/ "Central Daylight Time", "CDT", "Chicago" }, + { "EST", "Eastern Standard Time", "EST", + /**/ "Eastern Daylight Time", "EDT", "Boston" }, + { "IET", "Eastern Standard Time", "EST", + /**/ "Eastern Standard Time", "EST", "Indianapolis" }, + { "PRT", "Atlantic Standard Time", "AST", + /**/ "Atlantic Daylight Time", "ADT", "Halifax" }, + { "HST", "Hawaii Standard Time", "HST", + /**/ "Hawaii Daylight Time", "HDT", "Honolulu" }, + { "AST", "Alaska Standard Time", "AST", + /**/ "Alaska Daylight Time", "ADT", "Anchorage" } + }; + + private final Object safeGetResource (ResourceBundle res, + String key, Object def) + { + if (res != null) + { + try + { + return res.getObject(key); + } + catch (MissingResourceException x) + { + } + } + return def; + } + + public DateFormatSymbols (Locale locale) + { + ResourceBundle res; + try + { + res = ResourceBundle.getBundle("gnu.gcj.text.LocaleData", locale); + } + catch (MissingResourceException x) + { + res = null; + } + ampms = (String[]) safeGetResource (res, "ampm", ampmsDefault); + eras = (String[]) safeGetResource (res, "eras", erasDefault); + localPatternChars = (String) safeGetResource (res, "datePatternChars", + localPatternCharsDefault); + months = (String[]) safeGetResource (res, "months", monthsDefault); + shortMonths = (String[]) safeGetResource (res, "shortMonths", + shortMonthsDefault); + shortWeekdays = (String[]) safeGetResource (res, "shortWeekdays", + shortWeekdaysDefault); + weekdays = (String[]) safeGetResource (res, "weekdays", weekdaysDefault); + zoneStrings = (String[][]) safeGetResource (res, "zoneStrings", + zoneStringsDefault); + } + + public DateFormatSymbols () + { + this (Locale.getDefault()); + } + + public String[] getAmPmStrings() + { + return ampms; + } + + public String[] getEras() + { + return eras; + } + + + public String getLocalPatternChars() + { + return localPatternChars; + } + + public String[] getMonths () + { + return months; + } + + public String[] getShortMonths () + { + return shortMonths; + } + + public String[] getShortWeekdays () + { + return shortWeekdays; + } + + public String[] getWeekdays () + { + return weekdays; + } + + public String[] [] getZoneStrings () + { + return zoneStrings; + } + + public void setAmPmStrings (String[] value) + { + ampms = value; + } + + public void setEras (String[] value) + { + eras = value; + } + + public void setLocalPatternChars (String value) + { + localPatternChars = value; + } + + public void setMonths (String[] value) + { + months = value; + } + + public void setShortMonths (String[] value) + { + shortMonths = value; + } + + public void setShortWeekdays (String[] value) + { + shortWeekdays = value; + } + + public void setWeekdays (String[] value) + { + weekdays = value; + } + + public void setZoneStrings (String[][] value) + { + zoneStrings = value; + } + + /* Does a "deep" equality test - recurses into arrays. */ + protected static boolean equals (Object x, Object y) + { + if (x == y) + return true; + if (x == null || y == null) + return false; + if (! (x instanceof Object[]) || ! (y instanceof Object[])) + return x.equals(y); + Object[] xa = (Object[]) x; + Object[] ya = (Object[]) y; + if (xa.length != ya.length) + return false; + for (int i = xa.length; --i >= 0; ) + { + if (! equals(xa[i], ya[i])) + return false; + } + return true; + } + + private static int hashCode (Object x) + { + if (x == null) + return 0; + if (! (x instanceof Object[])) + return x.hashCode(); + Object[] xa = (Object[]) x; + int hash = 0; + for (int i = 0; i < xa.length; i++) + hash = 37 * hashCode(xa[i]); + return hash; + } + + public boolean equals (Object obj) + { + if (obj == null || ! (obj instanceof DateFormatSymbols)) + return false; + DateFormatSymbols other = (DateFormatSymbols) obj; + return (equals(ampms, other.ampms) + && equals(eras, other.eras) + && equals(localPatternChars, other.localPatternChars) + && equals(months, other.months) + && equals(shortMonths, other.shortMonths) + && equals(shortWeekdays, other.shortWeekdays) + && equals(weekdays, other.weekdays) + && equals(zoneStrings, other.zoneStrings)); + } + + public int hashCode () + { + return (hashCode(ampms) + ^ hashCode(eras) + ^ hashCode(localPatternChars) + ^ hashCode(months) + ^ hashCode(shortMonths) + ^ hashCode(shortWeekdays) + ^ hashCode(weekdays) + ^ hashCode(zoneStrings)); + } +} |