History

My first initial commit with all of mine experimental changes.

Dmitry Kabak (userdima committed 13 years ago

Commit d37b88d1 parent 3f5b46618352 files · +2598093 −-8690Browse files

Showing the changes to java/pkg/java/sql/Time.java (1 of 18352 files). Show all

Unified · Split

java/pkg/java/sql/Time.java+248−0
@@ -0,0 +1,248 @@
1+/*
2+ * Copyright (c) 1996, 2004, Oracle and/or its affiliates. All rights reserved.
3+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4+ *
5+ * This code is free software; you can redistribute it and/or modify it
6+ * under the terms of the GNU General Public License version 2 only, as
7+ * published by the Free Software Foundation. Oracle designates this
8+ * particular file as subject to the "Classpath" exception as provided
9+ * by Oracle in the LICENSE file that accompanied this code.
10+ *
11+ * This code is distributed in the hope that it will be useful, but WITHOUT
12+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
14+ * version 2 for more details (a copy is included in the LICENSE file that
15+ * accompanied this code).
16+ *
17+ * You should have received a copy of the GNU General Public License version
18+ * 2 along with this work; if not, write to the Free Software Foundation,
19+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
20+ *
21+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
22+ * or visit www.oracle.com if you need additional information or have any
23+ * questions.
24+ */
25+
26+package java.sql;
27+
28+/**
29+ * <P>A thin wrapper around the <code>java.util.Date</code> class that allows the JDBC
30+ * API to identify this as an SQL <code>TIME</code> value. The <code>Time</code>
31+ * class adds formatting and
32+ * parsing operations to support the JDBC escape syntax for time
33+ * values.
34+ * <p>The date components should be set to the "zero epoch"
35+ * value of January 1, 1970 and should not be accessed.
36+ */
37+public class Time extends java.util.Date {
38+
39+ /**
40+ * Constructs a <code>Time</code> object initialized with the
41+ * given values for the hour, minute, and second.
42+ * The driver sets the date components to January 1, 1970.
43+ * Any method that attempts to access the date components of a
44+ * <code>Time</code> object will throw a
45+ * <code>java.lang.IllegalArgumentException</code>.
46+ * <P>
47+ * The result is undefined if a given argument is out of bounds.
48+ *
49+ * @param hour 0 to 23
50+ * @param minute 0 to 59
51+ * @param second 0 to 59
52+ *
53+ * @deprecated Use the constructor that takes a milliseconds value
54+ * in place of this constructor
55+ */
56+ @Deprecated
57+ public Time(int hour, int minute, int second) {
58+ super(70, 0, 1, hour, minute, second);
59+ }
60+
61+ /**
62+ * Constructs a <code>Time</code> object using a milliseconds time value.
63+ *
64+ * @param time milliseconds since January 1, 1970, 00:00:00 GMT;
65+ * a negative number is milliseconds before
66+ * January 1, 1970, 00:00:00 GMT
67+ */
68+ public Time(long time) {
69+ super(time);
70+ }
71+
72+ /**
73+ * Sets a <code>Time</code> object using a milliseconds time value.
74+ *
75+ * @param time milliseconds since January 1, 1970, 00:00:00 GMT;
76+ * a negative number is milliseconds before
77+ * January 1, 1970, 00:00:00 GMT
78+ */
79+ public void setTime(long time) {
80+ super.setTime(time);
81+ }
82+
83+ /**
84+ * Converts a string in JDBC time escape format to a <code>Time</code> value.
85+ *
86+ * @param s time in format "hh:mm:ss"
87+ * @return a corresponding <code>Time</code> object
88+ */
89+ public static Time valueOf(String s) {
90+ int hour;
91+ int minute;
92+ int second;
93+ int firstColon;
94+ int secondColon;
95+
96+ if (s == null) throw new java.lang.IllegalArgumentException();
97+
98+ firstColon = s.indexOf(':');
99+ secondColon = s.indexOf(':', firstColon+1);
100+ if ((firstColon > 0) & (secondColon > 0) &
101+ (secondColon < s.length()-1)) {
102+ hour = Integer.parseInt(s.substring(0, firstColon));
103+ minute =
104+ Integer.parseInt(s.substring(firstColon+1, secondColon));
105+ second = Integer.parseInt(s.substring(secondColon+1));
106+ } else {
107+ throw new java.lang.IllegalArgumentException();
108+ }
109+
110+ return new Time(hour, minute, second);
111+ }
112+
113+ /**
114+ * Formats a time in JDBC time escape format.
115+ *
116+ * @return a <code>String</code> in hh:mm:ss format
117+ */
118+ public String toString () {
119+ int hour = super.getHours();
120+ int minute = super.getMinutes();
121+ int second = super.getSeconds();
122+ String hourString;
123+ String minuteString;
124+ String secondString;
125+
126+ if (hour < 10) {
127+ hourString = "0" + hour;
128+ } else {
129+ hourString = Integer.toString(hour);
130+ }
131+ if (minute < 10) {
132+ minuteString = "0" + minute;
133+ } else {
134+ minuteString = Integer.toString(minute);
135+ }
136+ if (second < 10) {
137+ secondString = "0" + second;
138+ } else {
139+ secondString = Integer.toString(second);
140+ }
141+ return (hourString + ":" + minuteString + ":" + secondString);
142+ }
143+
144+ // Override all the date operations inherited from java.util.Date;
145+
146+ /**
147+ * This method is deprecated and should not be used because SQL <code>TIME</code>
148+ * values do not have a year component.
149+ *
150+ * @deprecated
151+ * @exception java.lang.IllegalArgumentException if this
152+ * method is invoked
153+ * @see #setYear
154+ */
155+ @Deprecated
156+ public int getYear() {
157+ throw new java.lang.IllegalArgumentException();
158+ }
159+
160+ /**
161+ * This method is deprecated and should not be used because SQL <code>TIME</code>
162+ * values do not have a month component.
163+ *
164+ * @deprecated
165+ * @exception java.lang.IllegalArgumentException if this
166+ * method is invoked
167+ * @see #setMonth
168+ */
169+ @Deprecated
170+ public int getMonth() {
171+ throw new java.lang.IllegalArgumentException();
172+ }
173+
174+ /**
175+ * This method is deprecated and should not be used because SQL <code>TIME</code>
176+ * values do not have a day component.
177+ *
178+ * @deprecated
179+ * @exception java.lang.IllegalArgumentException if this
180+ * method is invoked
181+ */
182+ @Deprecated
183+ public int getDay() {
184+ throw new java.lang.IllegalArgumentException();
185+ }
186+
187+ /**
188+ * This method is deprecated and should not be used because SQL <code>TIME</code>
189+ * values do not have a date component.
190+ *
191+ * @deprecated
192+ * @exception java.lang.IllegalArgumentException if this
193+ * method is invoked
194+ * @see #setDate
195+ */
196+ @Deprecated
197+ public int getDate() {
198+ throw new java.lang.IllegalArgumentException();
199+ }
200+
201+ /**
202+ * This method is deprecated and should not be used because SQL <code>TIME</code>
203+ * values do not have a year component.
204+ *
205+ * @deprecated
206+ * @exception java.lang.IllegalArgumentException if this
207+ * method is invoked
208+ * @see #getYear
209+ */
210+ @Deprecated
211+ public void setYear(int i) {
212+ throw new java.lang.IllegalArgumentException();
213+ }
214+
215+ /**
216+ * This method is deprecated and should not be used because SQL <code>TIME</code>
217+ * values do not have a month component.
218+ *
219+ * @deprecated
220+ * @exception java.lang.IllegalArgumentException if this
221+ * method is invoked
222+ * @see #getMonth
223+ */
224+ @Deprecated
225+ public void setMonth(int i) {
226+ throw new java.lang.IllegalArgumentException();
227+ }
228+
229+ /**
230+ * This method is deprecated and should not be used because SQL <code>TIME</code>
231+ * values do not have a date component.
232+ *
233+ * @deprecated
234+ * @exception java.lang.IllegalArgumentException if this
235+ * method is invoked
236+ * @see #getDate
237+ */
238+ @Deprecated
239+ public void setDate(int i) {
240+ throw new java.lang.IllegalArgumentException();
241+ }
242+
243+ /**
244+ * Private serial version unique ID to ensure serialization
245+ * compatibility.
246+ */
247+ static final long serialVersionUID = 8397324403548013681L;
248+}