Save This Page
Home » openjdk-7 » javax » print » attribute » [javadoc | source]
    1   /*
    2    * Copyright 2000-2006 Sun Microsystems, Inc.  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.  Sun designates this
    8    * particular file as subject to the "Classpath" exception as provided
    9    * by Sun 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
   22    * CA 95054 USA or visit www.sun.com if you need additional information or
   23    * have any questions.
   24    */
   25   
   26   
   27   package javax.print.attribute;
   28   
   29   import java.io.Serializable;
   30   
   31   import java.util.Date;
   32   
   33   /**
   34    * Class DateTimeSyntax is an abstract base class providing the common
   35    * implementation of all attributes whose value is a date and time.
   36    * <P>
   37    * Under the hood, a date-time attribute is stored as a value of class <code>
   38    * java.util.Date</code>. You can get a date-time attribute's Date value by
   39    * calling {@link #getValue() <CODE>getValue()</CODE>}. A date-time attribute's
   40    * Date value is established when it is constructed (see {@link
   41    * #DateTimeSyntax(Date) <CODE>DateTimeSyntax(Date)</CODE>}). Once
   42    * constructed, a date-time attribute's value is immutable.
   43    * <P>
   44    * To construct a date-time attribute from separate values of the year, month,
   45    * day, hour, minute, and so on, use a <code>java.util.Calendar</code>
   46    * object to construct a <code>java.util.Date</code> object, then use the
   47    * <code>java.util.Date</code> object to construct the date-time attribute.
   48    * To convert
   49    * a date-time attribute to separate values of the year, month, day, hour,
   50    * minute, and so on, create a <code>java.util.Calendar</code> object and
   51    * set it to the <code>java.util.Date</code> from the date-time attribute. Class
   52    * DateTimeSyntax stores its value in the form of a <code>java.util.Date
   53    * </code>
   54    * rather than a <code>java.util.Calendar</code> because it typically takes
   55    * less memory to store and less time to compare a <code>java.util.Date</code>
   56    * than a <code>java.util.Calendar</code>.
   57    * <P>
   58    *
   59    * @author  Alan Kaminsky
   60    */
   61   public abstract class DateTimeSyntax implements Serializable, Cloneable {
   62   
   63       private static final long serialVersionUID = -1400819079791208582L;
   64   
   65       // Hidden data members.
   66   
   67       /**
   68        * This date-time attribute's<code>java.util.Date</code> value.
   69        * @serial
   70        */
   71       private Date value;
   72   
   73       // Hidden constructors.
   74   
   75       /**
   76        * Construct a new date-time attribute with the given
   77        * <code>java.util.Date </code> value.
   78        *
   79        * @param  value   <code>java.util.Date</code> value.
   80        *
   81        * @exception  NullPointerException
   82        *     (unchecked exception) Thrown if <CODE>theValue</CODE> is null.
   83        */
   84       protected DateTimeSyntax(Date value) {
   85           if (value == null) {
   86               throw new NullPointerException("value is null");
   87           }
   88           this.value = value;
   89       }
   90   
   91       // Exported operations.
   92   
   93       /**
   94        * Returns this date-time attribute's <code>java.util.Date</code>
   95        * value.
   96        * @return the Date.
   97        */
   98       public Date getValue() {
   99           return new Date (value.getTime());
  100       }
  101   
  102       // Exported operations inherited and overridden from class Object.
  103   
  104       /**
  105        * Returns whether this date-time attribute is equivalent to the passed in
  106        * object. To be equivalent, all of the following conditions must be true:
  107        * <OL TYPE=1>
  108        * <LI>
  109        * <CODE>object</CODE> is not null.
  110        * <LI>
  111        * <CODE>object</CODE> is an instance of class DateTimeSyntax.
  112        * <LI>
  113        * This date-time attribute's <code>java.util.Date</code> value and
  114        * <CODE>object</CODE>'s <code>java.util.Date</code> value are
  115        * equal. </OL>
  116        *
  117        * @param  object  Object to compare to.
  118        *
  119        * @return  True if <CODE>object</CODE> is equivalent to this date-time
  120        *          attribute, false otherwise.
  121        */
  122       public boolean equals(Object object) {
  123           return (object != null &&
  124                   object instanceof DateTimeSyntax &&
  125                   value.equals(((DateTimeSyntax) object).value));
  126       }
  127   
  128       /**
  129        * Returns a hash code value for this date-time attribute. The hashcode is
  130        * that of this attribute's <code>java.util.Date</code> value.
  131        */
  132       public int hashCode() {
  133           return value.hashCode();
  134       }
  135   
  136       /**
  137        * Returns a string value corresponding to this date-time attribute.
  138        * The string value is just this attribute's
  139        * <code>java.util.Date</code>  value
  140        * converted to a string.
  141        */
  142       public String toString() {
  143           return "" + value;
  144       }
  145   
  146   }

Save This Page
Home » openjdk-7 » javax » print » attribute » [javadoc | source]