blob: 660f2b94b92b9a1b28a9bffbf146658a051515ba [file] [log] [blame]
Madan Jampaniab6d3112014-10-02 16:30:14 -07001package org.onlab.netty;
2
Yuta HIGUCHI97b81672014-10-06 23:07:56 -07003import java.util.Objects;
4
5import com.google.common.base.MoreObjects;
6
Madan Jampaniab6d3112014-10-02 16:30:14 -07007/**
8 * Representation of a TCP/UDP communication end point.
9 */
10public class Endpoint {
11
12 private final int port;
13 private final String host;
14
Madan Jampani86ed0552014-10-03 16:45:42 -070015 /**
16 * Used for serialization.
17 */
Madan Jampani938aa432014-10-04 17:37:23 -070018 @SuppressWarnings("unused")
Madan Jampani86ed0552014-10-03 16:45:42 -070019 private Endpoint() {
20 port = 0;
21 host = null;
22 }
23
Madan Jampaniab6d3112014-10-02 16:30:14 -070024 public Endpoint(String host, int port) {
25 this.host = host;
26 this.port = port;
27 }
28
29 public String host() {
30 return host;
31 }
32
33 public int port() {
34 return port;
35 }
36
37 @Override
38 public String toString() {
Yuta HIGUCHI97b81672014-10-06 23:07:56 -070039 return MoreObjects.toStringHelper(getClass())
40 .add("port", port)
41 .add("host", host)
42 .toString();
Madan Jampaniab6d3112014-10-02 16:30:14 -070043 }
44
45 @Override
46 public int hashCode() {
Yuta HIGUCHI97b81672014-10-06 23:07:56 -070047 return Objects.hash(host, port);
Madan Jampaniab6d3112014-10-02 16:30:14 -070048 }
49
50 @Override
51 public boolean equals(Object obj) {
52 if (this == obj) {
53 return true;
54 }
55 if (obj == null) {
56 return false;
57 }
58 if (getClass() != obj.getClass()) {
59 return false;
60 }
Yuta HIGUCHI97b81672014-10-06 23:07:56 -070061 Endpoint that = (Endpoint) obj;
62 return Objects.equals(this.port, that.port) &&
63 Objects.equals(this.host, that.host);
Madan Jampaniab6d3112014-10-02 16:30:14 -070064 }
Yuta HIGUCHI92626c02014-10-06 15:46:18 -070065}