home *** CD-ROM | disk | FTP | other *** search
- package java.text;
-
- import java.io.Serializable;
- import java.lang.ref.SoftReference;
- import java.util.Enumeration;
- import java.util.Hashtable;
- import java.util.Locale;
- import java.util.ResourceBundle;
- import java.util.Vector;
-
- public class DateFormatSymbols implements Serializable, Cloneable {
- String[] eras = null;
- String[] months = null;
- String[] shortMonths = null;
- String[] weekdays = null;
- String[] shortWeekdays = null;
- String[] ampms = null;
- String[][] zoneStrings = null;
- static final String patternChars = "GyMdkHmsSEDFwWahKz";
- String localPatternChars = null;
- static final long serialVersionUID = -5987973545549424702L;
- static final int millisPerHour = 3600000;
- private static Hashtable cachedLocaleData = new Hashtable(3);
- private static Hashtable cachedZoneData = new Hashtable();
-
- public DateFormatSymbols() {
- this.initializeData(Locale.getDefault());
- }
-
- public DateFormatSymbols(Locale var1) {
- this.initializeData(var1);
- }
-
- public String[] getEras() {
- return this.duplicate(this.eras);
- }
-
- public void setEras(String[] var1) {
- this.eras = this.duplicate(var1);
- }
-
- public String[] getMonths() {
- return this.duplicate(this.months);
- }
-
- public void setMonths(String[] var1) {
- this.months = this.duplicate(var1);
- }
-
- public String[] getShortMonths() {
- return this.duplicate(this.shortMonths);
- }
-
- public void setShortMonths(String[] var1) {
- this.shortMonths = this.duplicate(var1);
- }
-
- public String[] getWeekdays() {
- return this.duplicate(this.weekdays);
- }
-
- public void setWeekdays(String[] var1) {
- this.weekdays = this.duplicate(var1);
- }
-
- public String[] getShortWeekdays() {
- return this.duplicate(this.shortWeekdays);
- }
-
- public void setShortWeekdays(String[] var1) {
- this.shortWeekdays = this.duplicate(var1);
- }
-
- public String[] getAmPmStrings() {
- return this.duplicate(this.ampms);
- }
-
- public void setAmPmStrings(String[] var1) {
- this.ampms = this.duplicate(var1);
- }
-
- public String[][] getZoneStrings() {
- String[][] var1 = new String[this.zoneStrings.length][];
-
- for(int var2 = 0; var2 < this.zoneStrings.length; ++var2) {
- var1[var2] = this.duplicate(this.zoneStrings[var2]);
- }
-
- return var1;
- }
-
- public void setZoneStrings(String[][] var1) {
- String[][] var2 = new String[var1.length][];
-
- for(int var3 = 0; var3 < var1.length; ++var3) {
- var2[var3] = this.duplicate(var1[var3]);
- }
-
- this.zoneStrings = var2;
- }
-
- public String getLocalPatternChars() {
- return new String(this.localPatternChars);
- }
-
- public void setLocalPatternChars(String var1) {
- this.localPatternChars = new String(var1);
- }
-
- public Object clone() {
- try {
- DateFormatSymbols var1 = (DateFormatSymbols)super.clone();
- this.copyMembers(this, var1);
- return var1;
- } catch (CloneNotSupportedException var2) {
- throw new InternalError();
- }
- }
-
- public int hashCode() {
- int var1 = 0;
-
- for(int var2 = 0; var2 < this.zoneStrings[0].length; ++var2) {
- var1 ^= this.zoneStrings[0][var2].hashCode();
- }
-
- return var1;
- }
-
- public boolean equals(Object var1) {
- if (this == var1) {
- return true;
- } else if (var1 != null && this.getClass() == var1.getClass()) {
- DateFormatSymbols var2 = (DateFormatSymbols)var1;
- return Utility.arrayEquals(this.eras, var2.eras) && Utility.arrayEquals(this.months, var2.months) && Utility.arrayEquals(this.shortMonths, var2.shortMonths) && Utility.arrayEquals(this.weekdays, var2.weekdays) && Utility.arrayEquals(this.shortWeekdays, var2.shortWeekdays) && Utility.arrayEquals(this.ampms, var2.ampms) && Utility.arrayEquals(this.zoneStrings, var2.zoneStrings) && Utility.arrayEquals(this.localPatternChars, var2.localPatternChars);
- } else {
- return false;
- }
- }
-
- private ResourceBundle getLocaleElements(Locale var1) {
- return ResourceBundle.getBundle("java.text.resources.LocaleElements", var1);
- }
-
- private ResourceBundle getZoneData(Locale var1) {
- return ResourceBundle.getBundle("java.text.resources.DateFormatZoneData", var1);
- }
-
- private ResourceBundle[] cacheLookup(Locale var1) {
- ResourceBundle[] var2 = new ResourceBundle[2];
- SoftReference[] var3 = (SoftReference[])cachedLocaleData.get(var1);
- if (var3 == null) {
- var2[0] = this.getLocaleElements(var1);
- var2[1] = this.getZoneData(var1);
- var3 = new SoftReference[]{new SoftReference(var2[0]), new SoftReference(var2[1])};
- cachedLocaleData.put(var1, var3);
- } else {
- ResourceBundle var4;
- if ((var4 = (ResourceBundle)var3[0].get()) == null) {
- var4 = this.getLocaleElements(var1);
- var3[0] = new SoftReference(var4);
- }
-
- var2[0] = var4;
- if ((var4 = (ResourceBundle)var3[1].get()) == null) {
- var4 = this.getZoneData(var1);
- var3[1] = new SoftReference(var4);
- }
-
- var2[1] = var4;
- }
-
- return var2;
- }
-
- private String[][] loadZoneStrings(Locale var1, ResourceBundle var2) {
- SoftReference var4 = (SoftReference)cachedZoneData.get(var1);
- String[][] var3;
- if (var4 == null || (var3 = (String[][])var4.get()) == null) {
- Vector var5 = new Vector();
- Enumeration var6 = var2.getKeys();
-
- while(var6.hasMoreElements()) {
- String var7 = (String)var6.nextElement();
- if (!var7.equals("localPatternChars") && !var7.equals("zoneStrings")) {
- var5.add(var2.getObject(var7));
- }
- }
-
- var3 = new String[var5.size()][];
- var5.toArray(var3);
- var4 = new SoftReference(var3);
- cachedZoneData.put(var1, var4);
- }
-
- return var3;
- }
-
- private void initializeData(Locale var1) {
- ResourceBundle[] var3 = this.cacheLookup(var1);
- ResourceBundle var4 = var3[0];
- ResourceBundle var5 = var3[1];
- this.eras = (String[])var4.getObject("Eras");
- this.months = var4.getStringArray("MonthNames");
- this.shortMonths = var4.getStringArray("MonthAbbreviations");
- String[] var6 = var4.getStringArray("DayNames");
- this.weekdays = new String[8];
- this.weekdays[0] = "";
-
- for(int var2 = 0; var2 < var6.length; ++var2) {
- this.weekdays[var2 + 1] = var6[var2];
- }
-
- String[] var7 = var4.getStringArray("DayAbbreviations");
- this.shortWeekdays = new String[8];
- this.shortWeekdays[0] = "";
-
- for(int var8 = 0; var8 < var7.length; ++var8) {
- this.shortWeekdays[var8 + 1] = var7[var8];
- }
-
- this.ampms = var4.getStringArray("AmPmMarkers");
- this.zoneStrings = this.loadZoneStrings(var1, var5);
- this.localPatternChars = (String)var5.getObject("localPatternChars");
- }
-
- final int getZoneIndex(String var1) {
- for(int var2 = 0; var2 < this.zoneStrings.length; ++var2) {
- if (var1.equalsIgnoreCase(this.zoneStrings[var2][0])) {
- return var2;
- }
- }
-
- return -1;
- }
-
- private final String[] duplicate(String[] var1) {
- String[] var2 = new String[var1.length];
- System.arraycopy(var1, 0, var2, 0, var1.length);
- return var2;
- }
-
- private final void copyMembers(DateFormatSymbols var1, DateFormatSymbols var2) {
- var2.eras = this.duplicate(var1.eras);
- var2.months = this.duplicate(var1.months);
- var2.shortMonths = this.duplicate(var1.shortMonths);
- var2.weekdays = this.duplicate(var1.weekdays);
- var2.shortWeekdays = this.duplicate(var1.shortWeekdays);
- var2.ampms = this.duplicate(var1.ampms);
-
- for(int var3 = 0; var3 < var2.zoneStrings.length; ++var3) {
- var2.zoneStrings[var3] = this.duplicate(var1.zoneStrings[var3]);
- }
-
- var2.localPatternChars = new String(var1.localPatternChars);
- }
-
- private final boolean equals(String[] var1, String[] var2) {
- int var3 = var1.length;
-
- for(int var4 = 0; var4 < var3; ++var4) {
- if (!var1[var4].equals(var2[var4])) {
- return false;
- }
- }
-
- return true;
- }
- }
-