mirror of git://gcc.gnu.org/git/gcc.git
				
				
				
			
		
			
				
	
	
		
			284 lines
		
	
	
		
			7.0 KiB
		
	
	
	
		
			Java
		
	
	
	
			
		
		
	
	
			284 lines
		
	
	
		
			7.0 KiB
		
	
	
	
		
			Java
		
	
	
	
/* Copyright (C) 1998, 1999, 2000  Free Software Foundation
 | 
						|
 | 
						|
   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());
 | 
						|
  }
 | 
						|
 | 
						|
  // Copy constructor.
 | 
						|
  private DateFormatSymbols (DateFormatSymbols old)
 | 
						|
  {
 | 
						|
    ampms = old.ampms;
 | 
						|
    eras = old.eras;
 | 
						|
    localPatternChars = old.localPatternChars;
 | 
						|
    months = old.months;
 | 
						|
    shortMonths = old.shortMonths;
 | 
						|
    shortWeekdays = old.shortWeekdays;
 | 
						|
    weekdays = old.weekdays;
 | 
						|
    zoneStrings = old.zoneStrings;
 | 
						|
  }
 | 
						|
 | 
						|
  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 Object clone ()
 | 
						|
  {
 | 
						|
    return new DateFormatSymbols (this);
 | 
						|
  }
 | 
						|
 | 
						|
  public int hashCode ()
 | 
						|
  {
 | 
						|
    return (hashCode(ampms)
 | 
						|
	    ^ hashCode(eras)
 | 
						|
	    ^ hashCode(localPatternChars)
 | 
						|
	    ^ hashCode(months)
 | 
						|
	    ^ hashCode(shortMonths)
 | 
						|
	    ^ hashCode(shortWeekdays)
 | 
						|
	    ^ hashCode(weekdays)
 | 
						|
	    ^ hashCode(zoneStrings));
 | 
						|
  }
 | 
						|
}
 |