View Javadoc

1   /**
2    *
3    * Copyright 2003-2006 The Apache Software Foundation
4    *
5    *  Licensed under the Apache License, Version 2.0 (the "License");
6    *  you may not use this file except in compliance with the License.
7    *  You may obtain a copy of the License at
8    *
9    *     http://www.apache.org/licenses/LICENSE-2.0
10   *
11   *  Unless required by applicable law or agreed to in writing, software
12   *  distributed under the License is distributed on an "AS IS" BASIS,
13   *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14   *  See the License for the specific language governing permissions and
15   *  limitations under the License.
16   */
17  
18  package javax.mail.search;
19  
20  import javax.mail.Address;
21  
22  /**
23   * Term that compares two addresses.
24   *
25   * @version $Rev: 421852 $ $Date: 2006-07-14 03:02:19 -0700 (Fri, 14 Jul 2006) $
26   */
27  public abstract class AddressTerm extends SearchTerm {
28      /**
29       * The address.
30       */
31      protected Address address;
32  
33      /**
34       * Constructor taking the address for this term.
35       * @param address the address
36       */
37      protected AddressTerm(Address address) {
38          this.address = address;
39      }
40  
41      /**
42       * Return the address of this term.
43       *
44       * @return the addre4ss
45       */
46      public Address getAddress() {
47          return address;
48      }
49  
50      /**
51       * Match to the supplied address.
52       *
53       * @param address the address to match with
54       * @return true if the addresses match
55       */
56      protected boolean match(Address address) {
57          return this.address.equals(address);
58      }
59  
60      public boolean equals(Object other) {
61          if (this == other) return true;
62          if (other instanceof AddressTerm == false) return false;
63  
64          return address.equals(((AddressTerm) other).address);
65      }
66  
67      public int hashCode() {
68          return address.hashCode();
69      }
70  }