OSDN Git Service

Imported GNU Classpath 0.90
[pf3gnuchains/gcc-fork.git] / libjava / classpath / java / sql / Date.java
1 /* Date.java -- Wrapper around java.util.Date
2    Copyright (C) 1999, 2000, 2003, 2005, 2006 Free Software Foundation, Inc.
3
4 This file is part of GNU Classpath.
5
6 GNU Classpath is free software; you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by
8 the Free Software Foundation; either version 2, or (at your option)
9 any later version.
10  
11 GNU Classpath is distributed in the hope that it will be useful, but
12 WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14 General Public License for more details.
15
16 You should have received a copy of the GNU General Public License
17 along with GNU Classpath; see the file COPYING.  If not, write to the
18 Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
19 02110-1301 USA.
20
21 Linking this library statically or dynamically with other modules is
22 making a combined work based on this library.  Thus, the terms and
23 conditions of the GNU General Public License cover the whole
24 combination.
25
26 As a special exception, the copyright holders of this library give you
27 permission to link this library with independent modules to produce an
28 executable, regardless of the license terms of these independent
29 modules, and to copy and distribute the resulting executable under
30 terms of your choice, provided that you also meet, for each linked
31 independent module, the terms and conditions of the license of that
32 module.  An independent module is a module which is not derived from
33 or based on this library.  If you modify this library, you may extend
34 this exception to your version of the library, but you are not
35 obligated to do so.  If you do not wish to do so, delete this
36 exception statement from your version. */
37
38 package java.sql;
39
40 import java.text.ParseException;
41 import java.text.SimpleDateFormat;
42
43 /**
44   * This class is a wrapper around java.util.Date to allow the JDBC
45   * driver to identify the value as a SQL Date.
46   *
47   * @author Aaron M. Renn (arenn@urbanophile.com)
48   */
49 public class Date extends java.util.Date 
50 {
51   static final long serialVersionUID = 1511598038487230103L;
52
53   /**
54    * Used for parsing and formatting this date.
55    */
56   private static SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
57
58   /**
59    * This method initializes a new instance of this class with the
60    * specified year, month, and day.
61    *
62    * @param year The year of this date minue 1900.
63    * @param month The month of this date (0-11).
64    * @param day The day of this date (1-31).
65    *
66    * @deprecated
67    */
68   public Date(int year, int month, int day)
69   {
70     super(year, month, day);  
71   }
72
73   /**
74    * This method initializes a new instance of this class with the
75    * specified time value representing the number of milliseconds since 
76    * Jan 1, 1970 at 12:00 midnight GMT.
77    *
78    * @param date The time value to intialize this date to.
79    */
80   public Date(long date)
81   {
82     super(date);
83   }
84
85   /**
86    * This method always throws an IllegalArgumentException.
87    *
88    * @throws IllegalArgumentException when it's called.
89    * @deprecated
90    */
91   public int getHours() throws IllegalArgumentException
92   {
93     throw new IllegalArgumentException();
94   }
95
96   /**
97    * This method always throws an IllegalArgumentException.
98    *
99    * @throws IllegalArgumentException when it's called.
100    * @deprecated
101    */
102   public int getMinutes() throws IllegalArgumentException
103   {
104     throw new IllegalArgumentException();
105   }
106
107   /**
108    * This method always throws an IllegalArgumentException.
109    *
110    * @throws IllegalArgumentException when it's called.
111    * @deprecated
112    */
113   public int getSeconds() throws IllegalArgumentException
114   {
115     throw new IllegalArgumentException();
116   }
117
118   /**
119    * This method always throws an IllegalArgumentException.
120    *
121    * @throws IllegalArgumentException when it's called.
122    * @deprecated
123    */
124   public void setHours(int newValue) throws IllegalArgumentException
125   {
126     throw new IllegalArgumentException();
127   }
128
129   /**
130    * This method always throws an IllegalArgumentException.
131    *
132    * @throws IllegalArgumentException when it's called.
133    * @deprecated
134    */
135   public void setMinutes(int newValue) throws IllegalArgumentException
136   {
137     throw new IllegalArgumentException();
138   }
139
140   /**
141    * This method always throws an IllegalArgumentException.
142    *
143    * @throws IllegalArgumentException when it's called.
144    * @deprecated
145    */
146   public void setSeconds(int newValue) throws IllegalArgumentException
147   {
148     throw new IllegalArgumentException();
149   }
150
151   /**
152    * This method returns a new instance of this class by parsing a
153    * date in JDBC format into a Java date.
154    *
155    * @param str The string to parse.
156    * @return The resulting <code>java.sql.Date</code> value.
157    */
158   public static Date valueOf (String str)
159   {
160     try 
161       {
162         java.util.Date d = (java.util.Date) sdf.parseObject(str);
163
164         if (d == null)
165           throw new IllegalArgumentException(str);
166         else
167           return new Date(d.getTime());
168       }
169     catch (ParseException e)
170       {
171         throw new IllegalArgumentException(str);
172       }
173   }
174
175   /**
176    * This method returns this date in JDBC format.
177    *
178    * @return This date as a string.
179    */
180   public String toString()
181   {
182     return sdf.format(this);
183   }
184 }