blob: 45528a4e4e7283937983fc577cd8e327f2ab1551 [file] [log] [blame]
tom0eb04ca2014-08-25 14:34:51 -07001package org.onlab.onos.net;
2
3import java.net.URI;
tom64b7aac2014-08-26 00:18:21 -07004import java.util.Objects;
5
6import static com.google.common.base.Objects.toStringHelper;
tom0eb04ca2014-08-25 14:34:51 -07007
8/**
tom64b7aac2014-08-26 00:18:21 -07009 * Immutable representation of a device identity.
tom0eb04ca2014-08-25 14:34:51 -070010 */
11public class DeviceId {
12
13 private final URI uri;
14
15 public DeviceId(URI uri) {
16 this.uri = uri;
17 }
18
19 /**
20 * Returns the backing URI.
21 *
22 * @return backing device URI
23 */
24 public URI uri() {
25 return uri;
26 }
27
tom64b7aac2014-08-26 00:18:21 -070028 @Override
29 public int hashCode() {
30 return Objects.hash(uri);
31 }
32
33 @Override
34 public boolean equals(Object obj) {
35 if (this == obj) {
36 return true;
37 }
38 if (obj == null || getClass() != obj.getClass()) {
39 return false;
40 }
41 final DeviceId other = (DeviceId) obj;
42 return Objects.equals(this.uri, other.uri);
43 }
44 @Override
45 public String toString() {
46 return toStringHelper(this).add("uri", uri).toString();
47 }
48
tom0eb04ca2014-08-25 14:34:51 -070049}