KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > javax > mail > search > DateTerm


1 /*
2  * The contents of this file are subject to the terms
3  * of the Common Development and Distribution License
4  * (the "License"). You may not use this file except
5  * in compliance with the License.
6  *
7  * You can obtain a copy of the license at
8  * glassfish/bootstrap/legal/CDDLv1.0.txt or
9  * https://glassfish.dev.java.net/public/CDDLv1.0.html.
10  * See the License for the specific language governing
11  * permissions and limitations under the License.
12  *
13  * When distributing Covered Code, include this CDDL
14  * HEADER in each file and include the License file at
15  * glassfish/bootstrap/legal/CDDLv1.0.txt. If applicable,
16  * add the following below this CDDL HEADER, with the
17  * fields enclosed by brackets "[]" replaced with your
18  * own identifying information: Portions Copyright [yyyy]
19  * [name of copyright owner]
20  */

21
22 /*
23  * @(#)DateTerm.java 1.10 05/08/29
24  *
25  * Copyright 1997-2005 Sun Microsystems, Inc. All Rights Reserved.
26  */

27
28 package javax.mail.search;
29
30 import java.util.Date JavaDoc;
31
32 /**
33  * This class implements comparisons for Dates
34  *
35  * @author Bill Shannon
36  * @author John Mani
37  */

38 public abstract class DateTerm extends ComparisonTerm JavaDoc {
39     /**
40      * The date.
41      *
42      * @serial
43      */

44     protected Date JavaDoc date;
45
46     private static final long serialVersionUID = 4818873430063720043L;
47
48     /**
49      * Constructor.
50      * @param comparison the comparison type
51      * @param date The Date to be compared against
52      */

53     protected DateTerm(int comparison, Date JavaDoc date) {
54     this.comparison = comparison;
55     this.date = date;
56     }
57
58     /**
59      * Return the Date to compare with.
60      */

61     public Date JavaDoc getDate() {
62     return new Date JavaDoc(date.getTime());
63     }
64
65     /**
66      * Return the type of comparison.
67      */

68     public int getComparison() {
69     return comparison;
70     }
71
72     /**
73      * The date comparison method.
74      *
75      * @param d the date in the constructor is compared with this date
76      * @return true if the dates match, otherwise false
77      */

78     protected boolean match(Date JavaDoc d) {
79     switch (comparison) {
80         case LE:
81         return d.before(date) || d.equals(date);
82         case LT:
83         return d.before(date);
84         case EQ:
85         return d.equals(date);
86         case NE:
87         return !d.equals(date);
88         case GT:
89         return d.after(date);
90         case GE:
91         return d.after(date) || d.equals(date);
92         default:
93         return false;
94     }
95     }
96
97     /**
98      * Equality comparison.
99      */

100     public boolean equals(Object JavaDoc obj) {
101     if (!(obj instanceof DateTerm JavaDoc))
102         return false;
103     DateTerm JavaDoc dt = (DateTerm JavaDoc)obj;
104     return dt.date.equals(this.date) && super.equals(obj);
105     }
106
107     /**
108      * Compute a hashCode for this object.
109      */

110     public int hashCode() {
111     return date.hashCode() + super.hashCode();
112     }
113 }
114
Popular Tags