home *** CD-ROM | disk | FTP | other *** search
/ PC Pro 1999 April / DPPCPRO0499.ISO / April / Notes / 50b2wic.exe / DATA1.CAB / NotesProgramFilesJavaSupport / rt.jar / java / text / DateFormatSymbols.class (.txt) < prev    next >
Encoding:
Java Class File  |  1998-04-23  |  5.0 KB  |  213 lines

  1. package java.text;
  2.  
  3. import java.io.Serializable;
  4. import java.util.Hashtable;
  5. import java.util.Locale;
  6. import java.util.ResourceBundle;
  7.  
  8. public class DateFormatSymbols implements Serializable, Cloneable {
  9.    String[] eras;
  10.    String[] months;
  11.    String[] shortMonths;
  12.    String[] weekdays;
  13.    String[] shortWeekdays;
  14.    String[] ampms;
  15.    String[][] zoneStrings;
  16.    static final String patternChars = "GyMdkHmsSEDFwWahKz";
  17.    String localPatternChars;
  18.    static final long serialVersionUID = -5987973545549424702L;
  19.    static final int millisPerHour = 3600000;
  20.    private static final Hashtable cachedLocaleData = new Hashtable(3);
  21.  
  22.    public DateFormatSymbols() {
  23.       this.initializeData(Locale.getDefault());
  24.    }
  25.  
  26.    public DateFormatSymbols(Locale var1) {
  27.       this.initializeData(var1);
  28.    }
  29.  
  30.    public String[] getEras() {
  31.       return this.duplicate(this.eras);
  32.    }
  33.  
  34.    public void setEras(String[] var1) {
  35.       this.eras = this.duplicate(var1);
  36.    }
  37.  
  38.    public String[] getMonths() {
  39.       return this.duplicate(this.months);
  40.    }
  41.  
  42.    public void setMonths(String[] var1) {
  43.       this.months = this.duplicate(var1);
  44.    }
  45.  
  46.    public String[] getShortMonths() {
  47.       return this.duplicate(this.shortMonths);
  48.    }
  49.  
  50.    public void setShortMonths(String[] var1) {
  51.       this.shortMonths = this.duplicate(var1);
  52.    }
  53.  
  54.    public String[] getWeekdays() {
  55.       return this.duplicate(this.weekdays);
  56.    }
  57.  
  58.    public void setWeekdays(String[] var1) {
  59.       this.weekdays = this.duplicate(var1);
  60.    }
  61.  
  62.    public String[] getShortWeekdays() {
  63.       return this.duplicate(this.shortWeekdays);
  64.    }
  65.  
  66.    public void setShortWeekdays(String[] var1) {
  67.       this.shortWeekdays = this.duplicate(var1);
  68.    }
  69.  
  70.    public String[] getAmPmStrings() {
  71.       return this.duplicate(this.ampms);
  72.    }
  73.  
  74.    public void setAmPmStrings(String[] var1) {
  75.       this.ampms = this.duplicate(var1);
  76.    }
  77.  
  78.    public String[][] getZoneStrings() {
  79.       String[][] var1 = new String[this.zoneStrings.length][];
  80.  
  81.       for(int var2 = 0; var2 < this.zoneStrings.length; ++var2) {
  82.          var1[var2] = this.duplicate(this.zoneStrings[var2]);
  83.       }
  84.  
  85.       return var1;
  86.    }
  87.  
  88.    public void setZoneStrings(String[][] var1) {
  89.       String[][] var2 = new String[var1.length][];
  90.  
  91.       for(int var3 = 0; var3 < var1.length; ++var3) {
  92.          var2[var3] = this.duplicate(var1[var3]);
  93.       }
  94.  
  95.       this.zoneStrings = var2;
  96.    }
  97.  
  98.    public String getLocalPatternChars() {
  99.       return new String(this.localPatternChars);
  100.    }
  101.  
  102.    public void setLocalPatternChars(String var1) {
  103.       this.localPatternChars = new String(var1);
  104.    }
  105.  
  106.    public Object clone() {
  107.       try {
  108.          DateFormatSymbols var1 = (DateFormatSymbols)super.clone();
  109.          this.copyMembers(this, var1);
  110.          return var1;
  111.       } catch (CloneNotSupportedException var2) {
  112.          throw new InternalError();
  113.       }
  114.    }
  115.  
  116.    public int hashCode() {
  117.       int var1 = 0;
  118.  
  119.       for(int var2 = 0; var2 < this.zoneStrings[0].length; ++var2) {
  120.          var1 ^= this.zoneStrings[0][var2].hashCode();
  121.       }
  122.  
  123.       return var1;
  124.    }
  125.  
  126.    public boolean equals(Object var1) {
  127.       if (this == var1) {
  128.          return true;
  129.       } else if (var1 != null && this.getClass() == var1.getClass()) {
  130.          DateFormatSymbols var2 = (DateFormatSymbols)var1;
  131.          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);
  132.       } else {
  133.          return false;
  134.       }
  135.    }
  136.  
  137.    private void initializeData(Locale var1) {
  138.       ResourceBundle[] var5 = (ResourceBundle[])cachedLocaleData.get(var1);
  139.       if (var5 == null) {
  140.          var5 = new ResourceBundle[]{ResourceBundle.getBundle("java.text.resources.LocaleElements", var1), ResourceBundle.getBundle("java.text.resources.DateFormatZoneData", var1)};
  141.          cachedLocaleData.put(var1, var5);
  142.       }
  143.  
  144.       ResourceBundle var3 = var5[0];
  145.       ResourceBundle var4 = var5[1];
  146.       this.eras = (String[])var3.getObject("Eras");
  147.       this.months = var3.getStringArray("MonthNames");
  148.       this.shortMonths = var3.getStringArray("MonthAbbreviations");
  149.       String[] var6 = var3.getStringArray("DayNames");
  150.       this.weekdays = new String[8];
  151.       this.weekdays[0] = "";
  152.  
  153.       for(int var2 = 0; var2 < var6.length; ++var2) {
  154.          this.weekdays[var2 + 1] = var6[var2];
  155.       }
  156.  
  157.       String[] var7 = var3.getStringArray("DayAbbreviations");
  158.       this.shortWeekdays = new String[8];
  159.       this.shortWeekdays[0] = "";
  160.  
  161.       for(int var8 = 0; var8 < var7.length; ++var8) {
  162.          this.shortWeekdays[var8 + 1] = var7[var8];
  163.       }
  164.  
  165.       this.ampms = var3.getStringArray("AmPmMarkers");
  166.       this.zoneStrings = (String[][])var4.getObject("zoneStrings");
  167.       this.localPatternChars = (String)var4.getObject("localPatternChars");
  168.    }
  169.  
  170.    final int getZoneIndex(String var1) {
  171.       for(int var2 = 0; var2 < this.zoneStrings.length; ++var2) {
  172.          if (var1.equalsIgnoreCase(this.zoneStrings[var2][0])) {
  173.             return var2;
  174.          }
  175.       }
  176.  
  177.       return -1;
  178.    }
  179.  
  180.    private final String[] duplicate(String[] var1) {
  181.       String[] var2 = new String[var1.length];
  182.       System.arraycopy(var1, 0, var2, 0, var1.length);
  183.       return var2;
  184.    }
  185.  
  186.    private final void copyMembers(DateFormatSymbols var1, DateFormatSymbols var2) {
  187.       var2.eras = this.duplicate(var1.eras);
  188.       var2.months = this.duplicate(var1.months);
  189.       var2.shortMonths = this.duplicate(var1.shortMonths);
  190.       var2.weekdays = this.duplicate(var1.weekdays);
  191.       var2.shortWeekdays = this.duplicate(var1.shortWeekdays);
  192.       var2.ampms = this.duplicate(var1.ampms);
  193.  
  194.       for(int var3 = 0; var3 < var2.zoneStrings.length; ++var3) {
  195.          var2.zoneStrings[var3] = this.duplicate(var1.zoneStrings[var3]);
  196.       }
  197.  
  198.       var2.localPatternChars = new String(var1.localPatternChars);
  199.    }
  200.  
  201.    private final boolean equals(String[] var1, String[] var2) {
  202.       int var3 = var1.length;
  203.  
  204.       for(int var4 = 0; var4 < var3; ++var4) {
  205.          if (!var1[var4].equals(var2[var4])) {
  206.             return false;
  207.          }
  208.       }
  209.  
  210.       return true;
  211.    }
  212. }
  213.