1
2
3
4
5
6
7
8
9
10
11 package org.mule.transport.tcp;
12
13 import org.mule.api.endpoint.ImmutableEndpoint;
14
15 import java.net.InetAddress;
16 import java.net.InetSocketAddress;
17
18
19
20
21
22
23
24 public class TcpSocketKey
25 {
26
27 private InetSocketAddress address;
28 private ImmutableEndpoint endpoint;
29
30 public TcpSocketKey(ImmutableEndpoint endpoint)
31 {
32 if (!(endpoint.getConnector() instanceof TcpConnector))
33 {
34 throw new IllegalArgumentException("Sockets must be keyed via a TCP endpoint");
35 }
36 this.endpoint = endpoint;
37 address = new InetSocketAddress(
38 endpoint.getEndpointURI().getHost(),
39 endpoint.getEndpointURI().getPort());
40 }
41
42 @Override
43 public boolean equals(Object obj)
44 {
45 return obj instanceof TcpSocketKey && address.equals(((TcpSocketKey) obj).address);
46 }
47
48 @Override
49 public int hashCode()
50 {
51 return address.hashCode();
52 }
53
54 public ImmutableEndpoint getEndpoint()
55 {
56 return endpoint;
57 }
58
59 public TcpConnector getConnector()
60 {
61 return (TcpConnector) endpoint.getConnector();
62 }
63
64 public InetAddress getInetAddress()
65 {
66 return address.getAddress();
67 }
68
69 public int getPort()
70 {
71 return address.getPort();
72 }
73
74 @Override
75 public String toString()
76 {
77 return getInetAddress() + ":" + getPort();
78 }
79
80 }