1 // Copyright (C) 2008 Philip Aston
2 // All rights reserved.
3 //
4 // This file is part of The Grinder software distribution. Refer to
5 // the file LICENSE which is part of The Grinder distribution for
6 // licensing details. The Grinder distribution is available on the
7 // Internet at http://grinder.sourceforge.net/
8 //
9 // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
10 // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
11 // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
12 // FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
13 // COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
14 // INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
15 // (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
16 // SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
17 // HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
18 // STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
19 // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
20 // OF THE POSSIBILITY OF SUCH DAMAGE.
21
22 package net.grinder.communication;
23
24 import java.util.Random;
25
26 /**
27 * Stub implementation of {@link Address}.
28 *
29 * @author Philip Aston
30 */
31 public final class StubAddress implements Address {
32 private static final Random s_random = new Random();
33
34 private final Object m_identity;
35
36 public StubAddress() {
37 this(new Integer(s_random.nextInt()));
38 }
39
40 public StubAddress(Object identity) {
41 m_identity = identity;
42 }
43
44 public int hashCode() {
45 return m_identity.hashCode();
46 }
47
48 public boolean equals(Object o) {
49 if (o == this) {
50 return true;
51 }
52
53 if (o == null || o.getClass() != this.getClass()) {
54 return false;
55 }
56
57 return m_identity.equals(((StubAddress)o).m_identity);
58 }
59
60 public boolean includes(Address address) {
61 return equals(address);
62 }
63 }