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/javax/print/attribute/DateTimeSyntax.java (1 of 18352 files). Show all

Unified · Split

java/pkg/javax/print/attribute/DateTimeSyntax.java+146−0
@@ -0,0 +1,146 @@
1+/*
2+ * Copyright (c) 2000, 2006, 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+
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+}