]> oss.titaniummirror.com Git - msp430-gcc.git/blobdiff - libjava/java/text/DateFormat.java
Imported gcc-4.4.3
[msp430-gcc.git] / libjava / java / text / DateFormat.java
diff --git a/libjava/java/text/DateFormat.java b/libjava/java/text/DateFormat.java
deleted file mode 100644 (file)
index c298ef2..0000000
+++ /dev/null
@@ -1,586 +0,0 @@
-/* DateFormat.java -- Class for formatting/parsing date/times
-   Copyright (C) 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING.  If not, write to the
-Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-02111-1307 USA.
-
-Linking this library statically or dynamically with other modules is
-making a combined work based on this library.  Thus, the terms and
-conditions of the GNU General Public License cover the whole
-combination.
-
-As a special exception, the copyright holders of this library give you
-permission to link this library with independent modules to produce an
-executable, regardless of the license terms of these independent
-modules, and to copy and distribute the resulting executable under
-terms of your choice, provided that you also meet, for each linked
-independent module, the terms and conditions of the license of that
-module.  An independent module is a module which is not derived from
-or based on this library.  If you modify this library, you may extend
-this exception to your version of the library, but you are not
-obligated to do so.  If you do not wish to do so, delete this
-exception statement from your version. */
-
-
-package java.text;
-
-import java.util.*;
-
-/**
- * @author Per Bothner <bothner@cygnus.com>
- * @date October 25, 1998.
- */
-/* Written using "Java Class Libraries", 2nd edition, plus online
- * API docs for JDK 1.2 beta from http://www.javasoft.com.
- * Status:  Mostly complete; search for FIXME to see omissions.
- */
-
-public abstract class DateFormat extends Format implements Cloneable
-{
-  protected Calendar calendar;
-  protected NumberFormat numberFormat;
-
-  // (Values determined using a test program.)
-  public static final int FULL = 0;
-  public static final int LONG = 1;
-  public static final int MEDIUM = 2;
-  public static final int SHORT = 3;
-  public static final int DEFAULT = MEDIUM;
-
-  /* These constants need to have these exact values.  They
-   * correspond to index positions within the localPatternChars
-   * string for a given locale.  For example, the US locale uses
-   * the string "GyMdkHmsSEDFwWahKz", where 'G' is the character
-   * for era, 'y' for year, and so on down to 'z' for time zone.
-   */
-  public static final int ERA_FIELD = 0;
-  public static final int YEAR_FIELD = 1;
-  public static final int MONTH_FIELD = 2;
-  public static final int DATE_FIELD = 3;
-  public static final int HOUR_OF_DAY1_FIELD = 4;
-  public static final int HOUR_OF_DAY0_FIELD = 5;
-  public static final int MINUTE_FIELD = 6;
-  public static final int SECOND_FIELD = 7;
-  public static final int MILLISECOND_FIELD = 8;
-  public static final int DAY_OF_WEEK_FIELD = 9;
-  public static final int DAY_OF_YEAR_FIELD = 10;
-  public static final int DAY_OF_WEEK_IN_MONTH_FIELD = 11;
-  public static final int WEEK_OF_YEAR_FIELD = 12;
-  public static final int WEEK_OF_MONTH_FIELD = 13;
-  public static final int AM_PM_FIELD = 14;
-  public static final int HOUR1_FIELD = 15;
-  public static final int HOUR0_FIELD = 16;
-  public static final int TIMEZONE_FIELD = 17;
-
-  /**
-   * This method initializes a new instance of <code>DateFormat</code>.
-   */
-  protected DateFormat ()
-  {
-  }
-
-  /**
-   * This method tests this object for equality against the specified object.
-   * The two objects will be considered equal if an only if the specified
-   * object:
-   * <P>
-   * <ul>
-   * <li>Is not <code>null</code>.
-   * <li>Is an instance of <code>DateFormat</code>.
-   * <li>Has the same calendar and numberFormat field values as this object.
-   * </ul>
-   *
-   * @param obj The object to test for equality against.
-   * 
-   * @return <code>true</code> if the specified object is equal to this object,
-   * <code>false</code> otherwise.
-   */
-  public boolean equals (Object obj)
-  {
-    if (! (obj instanceof DateFormat))
-      return false;
-    DateFormat d = (DateFormat) obj;
-    return calendar.equals(d.calendar) && numberFormat.equals(d.numberFormat);
-  }
-
-  /**
-   * This method returns a copy of this object.
-   *
-   * @return A copy of this object.
-   */
-  public Object clone ()
-  {
-    // We know the superclass just call's Object's generic cloner.
-    return super.clone ();
-  }
-
-  /**
-   * This method formats the specified <code>Object</code> into a date string
-   * and appends it to the specified <code>StringBuffer</code>.
-   * The specified object must be an instance of <code>Number</code> or
-   * <code>Date</code> or an <code>IllegalArgumentException</code> will be
-   * thrown.
-   *
-   * @param obj The <code>Object</code> to format.
-   * @param toAppendTo The <code>StringBuffer</code> to append the resultant
-   * <code>String</code> to.
-   * @param fieldPosition Is updated to the start and end index of the
-   * specified field.
-   *
-   * @return The <code>StringBuffer</code> supplied on input, with the
-   * formatted date/time appended.
-   */
-  public final StringBuffer format (Object obj,
-                                   StringBuffer buf, FieldPosition pos)
-  {
-    if (obj instanceof Number)
-      obj = new Date(((Number) obj).longValue());
-    return format ((Date) obj, buf, pos);
-  }
-
-  /**  
-    * Formats the date argument according to the pattern specified. 
-    *
-    * @param date The formatted date.
-    */
-  public final String format (Date date)
-  {
-    StringBuffer sb = new StringBuffer ();
-    format (date, sb, new FieldPosition (MONTH_FIELD));
-    return sb.toString();
-  }
-
-  /**
-   * This method formats a <code>Date</code> into a string and appends it
-   * to the specified <code>StringBuffer</code>.
-   *
-   * @param date The <code>Date</code> value to format.
-   * @param toAppendTo The <code>StringBuffer</code> to append the resultant
-   * <code>String</code> to.
-   * @param fieldPosition Is updated to the start and end index of the
-   * specified field.
-   *
-   * @return The <code>StringBuffer</code> supplied on input, with the
-   * formatted date/time appended.
-   */
-  public abstract StringBuffer format (Date date,
-                                      StringBuffer buf, FieldPosition pos);
-
-  /**
-   * This method returns a list of available locales supported by this
-   * class.
-   */
-  public static Locale[] getAvailableLocales ()
-  {
-    // FIXME
-    Locale[] l = new Locale[1];
-    l[0] = Locale.US;
-    return l;
-  }
-
-  /**
-    * This method returns the <code>Calendar</code> object being used by
-    * this object to parse/format datetimes.
-    *
-    * @return The <code>Calendar</code> being used by this object.
-    *
-    * @see java.util.Calendar
-    */
-  public Calendar getCalendar ()
-  {
-    return calendar;
-  }
-
-  private static final DateFormat computeInstance (int style, Locale loc,
-                                                  boolean use_date,
-                                                  boolean use_time)
-  {
-    return computeInstance (style, style, loc, use_date, use_time);
-  }
-
-  private static final DateFormat computeInstance (int dateStyle, 
-                                                  int timeStyle,
-                                                  Locale loc,
-                                                  boolean use_date,
-                                                  boolean use_time)
-  {
-    ResourceBundle res;
-    try
-      {
-       res = ResourceBundle.getBundle("gnu.java.locale.LocaleInformation",
-                                      loc);
-      }
-    catch (MissingResourceException x)
-      {
-       res = null;
-      }
-
-    String pattern = null;
-    if (use_date)
-      {
-       String name, def;
-       switch (dateStyle)
-         {
-         case FULL:
-           name = "fullDateFormat";
-           def = "EEEE MMMM d, yyyy G";
-           break;
-         case LONG:
-           name = "longDateFormat";
-           def = "MMMM d, yyyy";
-           break;
-         case MEDIUM:
-           name = "mediumDateFormat";
-           def = "d-MMM-yy";
-           break;
-         case SHORT:
-           name = "shortDateFormat";
-           def = "M/d/yy";
-           break;
-         default:
-           throw new IllegalArgumentException ();
-         }
-       try
-         {
-           pattern = res == null ? def : res.getString(name);
-         }
-       catch (MissingResourceException x)
-         {
-           pattern = def;
-         }
-      }
-
-    if (use_time)
-      {
-       if (pattern == null)
-         pattern = "";
-       else
-         pattern += " ";
-
-       String name, def;
-       switch (timeStyle)
-         {
-         case FULL:
-           name = "fullTimeFormat";
-           def = "h:mm:ss;S 'o''clock' a z";
-           break;
-         case LONG:
-           name = "longTimeFormat";
-           def = "h:mm:ss a z";
-           break;
-         case MEDIUM:
-           name = "mediumTimeFormat";
-           def = "h:mm:ss a";
-           break;
-         case SHORT:
-           name = "shortTimeFormat";
-           def = "h:mm a";
-           break;
-         default:
-           throw new IllegalArgumentException ();
-         }
-
-       String s;
-       try
-         {
-           s = res == null ? def : res.getString(name);
-         }
-       catch (MissingResourceException x)
-         {
-           s = def;
-         }
-       pattern += s;
-      }
-
-    return new SimpleDateFormat (pattern, loc);
-  }
-
- /**
-   * This method returns an instance of <code>DateFormat</code> that will
-   * format using the default formatting style for dates.
-   *
-   * @return A new <code>DateFormat</code> instance.
-   */
-  public static final DateFormat getDateInstance ()
-  {
-    return getDateInstance (DEFAULT, Locale.getDefault());
-  }
-
-  /**
-   * This method returns an instance of <code>DateFormat</code> that will
-   * format using the specified formatting style for dates.
-   *
-   * @param style The type of formatting to perform. 
-   * 
-   * @return A new <code>DateFormat</code> instance.
-   */
-  public static final DateFormat getDateInstance (int style)
-  {
-    return getDateInstance (style, Locale.getDefault());
-  }
-
-  /**
-   * This method returns an instance of <code>DateFormat</code> that will
-   * format using the specified formatting style for dates.  The specified
-   * localed will be used in place of the default.
-   *
-   * @param style The type of formatting to perform. 
-   * @param aLocale The desired locale.
-   * 
-   * @return A new <code>DateFormat</code> instance.
-   */
-  public static final DateFormat getDateInstance (int style, Locale loc)
-  {
-    return computeInstance (style, loc, true, false);
-  }
-
-  /**
-   * This method returns a new instance of <code>DateFormat</code> that
-   * formats both dates and times using the <code>SHORT</code> style.
-   *
-   * @return A new <code>DateFormat</code>instance.
-   */
-  public static final DateFormat getDateTimeInstance ()
-  {
-    return getDateTimeInstance (DEFAULT, DEFAULT, Locale.getDefault());
-  }
-
-  /**
-   * This method returns a new instance of <code>DateFormat</code> that
-   * formats both dates and times using the <code>DEFAULT</code> style.
-   *
-   * @return A new <code>DateFormat</code>instance.
-   */
-  public static final DateFormat getDateTimeInstance (int dateStyle, 
-                                                     int timeStyle)
-  {
-    return getDateTimeInstance (dateStyle, timeStyle, Locale.getDefault());
-  }
-
-  /**
-   * This method returns a new instance of <code>DateFormat</code> that
-   * formats both dates and times using the specified styles.
-   * 
-   * @param dateStyle The desired style for date formatting.
-   * @param timeStyle The desired style for time formatting
-   *
-   * @return A new <code>DateFormat</code>instance.
-   */
-  public static final DateFormat getDateTimeInstance (int dateStyle, 
-                                                     int timeStyle, 
-                                                     Locale loc)
-  {
-    return computeInstance (dateStyle, timeStyle, loc, true, true);
-  }
-
-  /**
-   * This method returns a new instance of <code>DateFormat</code> that
-   * formats both dates and times using the <code>SHORT</code> style.
-   *
-   * @return A new <code>DateFormat</code>instance.
-   */
-  public static final DateFormat getInstance ()
-  {
-    // JCL book says SHORT.
-    return getDateTimeInstance (SHORT, SHORT, Locale.getDefault());
-  }
-
-  /**
-   * This method returns the <code>NumberFormat</code> object being used
-   * by this object to parse/format time values.
-   *
-   * @return The <code>NumberFormat</code> in use by this object.
-   */
-  public NumberFormat getNumberFormat ()
-  {
-    return numberFormat;
-  }
-
- /**
-   * This method returns an instance of <code>DateFormat</code> that will
-   * format using the default formatting style for times.
-   *
-   * @return A new <code>DateFormat</code> instance.
-   */
-  public static final DateFormat getTimeInstance ()
-  {
-    return getTimeInstance (DEFAULT, Locale.getDefault());
-  }
-
-  /**
-   * This method returns an instance of <code>DateFormat</code> that will
-   * format using the specified formatting style for times.
-   *
-   * @param style The type of formatting to perform. 
-   * 
-   * @return A new <code>DateFormat</code> instance.
-   */
-  public static final DateFormat getTimeInstance (int style)
-  {
-    return getTimeInstance (style, Locale.getDefault());
-  }
-
-  /**
-   * This method returns an instance of <code>DateFormat</code> that will
-   * format using the specified formatting style for times.  The specified
-   * localed will be used in place of the default.
-   *
-   * @param style The type of formatting to perform. 
-   * @param aLocale The desired locale.
-   * 
-   * @return A new <code>DateFormat</code> instance.
-   */
-  public static final DateFormat getTimeInstance (int style, Locale loc)
-  {
-    return computeInstance (style, loc, false, true);
-  }
-
-  /**
-   * This method returns the <code>TimeZone</code> object being used by
-   * this instance.
-   *
-   * @return The time zone in use.
-   */
-  public TimeZone getTimeZone ()
-  {
-    return calendar.getTimeZone();
-  }
-
-  /**
-   * This method returns a hash value for this object.
-   * 
-   * @return A hash value for this object.
-   */
-  public int hashCode ()
-  {
-    int hash = calendar.hashCode();
-    if (numberFormat != null)
-      hash ^= numberFormat.hashCode();
-    return hash;
-  }
-
-  /**
-   * This method indicates whether or not the parsing of date and time
-   * values should be done in a lenient value.
-   *
-   * @return <code>true</code> if date/time parsing is lenient,
-   * <code>false</code> otherwise.
-   */
-  public boolean isLenient ()
-  {
-    return calendar.isLenient();
-  }
-
-  /**
-   * This method parses the specified date/time string.
-   *
-   * @return The resultant date.
-   *
-   * @exception ParseException If the specified string cannot be parsed.
-   */
-  public Date parse (String source) throws ParseException
-  {
-    ParsePosition pos = new ParsePosition(0);
-    Date result = parse (source, pos);
-    if (result == null)
-      {
-       int index = pos.getErrorIndex();
-       if (index < 0)
-         index = pos.getIndex();
-       throw new ParseException("invalid Date syntax", index);
-      }
-    return result;
-  }
-
-  /** 
-   * This method parses the specified <code>String</code> into a 
-   * <code>Date</code>.  The <code>pos</code> argument contains the
-   * starting parse position on method entry and the ending parse
-   * position on method exit.
-   *
-   * @param text The string to parse.
-   * @param pos The starting parse position in entry, the ending parse
-   * position on exit.
-   *
-   * @return The parsed date, or <code>null</code> if the string cannot
-   * be parsed.
-   */
-  public abstract Date parse (String source, ParsePosition pos);
-
-  /**
-   * This method is identical to <code>parse(String, ParsePosition)</code>,
-   * but returns its result as an <code>Object</code> instead of a
-   * <code>Date</code>.
-   * 
-   * @param source The string to parse.
-   * @param pos The starting parse position in entry, the ending parse
-   * position on exit.
-   *
-   * @return The parsed date, or <code>null</code> if the string cannot
-   * be parsed.
-   */
-  public Object parseObject (String source, ParsePosition pos)
-  {
-    return parse(source, pos);
-  }
-
-  /**
-   * This method specified the <code>Calendar</code> that should be used 
-   * by this object to parse/format datetimes.
-   *
-   * @param The new <code>Calendar</code> for this object.
-   *
-   * @see java.util.Calendar
-   */
-  public void setCalendar (Calendar calendar)
-  {
-    this.calendar = calendar;
-  }
-
-  /**
-   * This method specifies whether or not this object should be lenient in 
-   * the syntax it accepts while parsing date/time values.
-   *
-   * @param lenient <code>true</code> if parsing should be lenient,
-   * <code>false</code> otherwise.
-   */
-  public void setLenient (boolean lenient)
-  {
-    calendar.setLenient(lenient);
-  }
-
-  /**
-   * This method specifies the <code>NumberFormat</code> object that should
-   * be used by this object to parse/format times.
-   *
-   * @param The <code>NumberFormat</code> in use by this object.
-   */
-  public void setNumberFormat (NumberFormat numberFormat)
-  {
-    this.numberFormat = numberFormat;
-  }
-
-  /**
-   * This method sets the time zone that should be used by this object.
-   *
-   * @param The new time zone.
-   */
-  public void setTimeZone (TimeZone timeZone)
-  {
-    calendar.setTimeZone(timeZone);
-  }
-}