Save This Page
Home » openjdk-7 » java » sql » [javadoc | source]
    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   }

Save This Page
Home » openjdk-7 » java » sql » [javadoc | source]