blob: 534cbe4268f208941c154c809cc406358278ef8f [file] [log] [blame]
tom29df6f42014-09-05 08:14:14 -07001package org.onlab.onos.net;
2
tomeadbb462014-09-07 16:10:19 -07003import static com.google.common.base.MoreObjects.toStringHelper;
tom29df6f42014-09-05 08:14:14 -07004
Jonathan Hartb79d6412014-09-19 11:24:06 -07005import java.util.Objects;
Yuta HIGUCHI9827a352014-09-21 17:01:29 -07006
tom29df6f42014-09-05 08:14:14 -07007/**
8 * Default port implementation.
9 */
10public class DefaultPort implements Port {
11
12 private final Element element;
13 private final PortNumber number;
14 private final boolean isEnabled;
15
Jonathan Hartb79d6412014-09-19 11:24:06 -070016 /**
17 * Creates a network element attributed to the specified provider.
18 *
19 * @param element parent network element
20 * @param number port number
21 * @param isEnabled indicator whether the port is up and active
Jonathan Hartb79d6412014-09-19 11:24:06 -070022 */
23 public DefaultPort(Element element, PortNumber number,
Jonathan Hart32129f22014-09-23 11:23:38 -070024 boolean isEnabled) {
tom29df6f42014-09-05 08:14:14 -070025 this.element = element;
26 this.number = number;
27 this.isEnabled = isEnabled;
28 }
29
30 @Override
31 public int hashCode() {
32 return Objects.hash(number, isEnabled);
33 }
34
35 @Override
36 public boolean equals(Object obj) {
tomfc9a4ff2014-09-22 18:22:47 -070037 if (this == obj) {
38 return true;
39 }
tom29df6f42014-09-05 08:14:14 -070040 if (obj instanceof DefaultPort) {
41 final DefaultPort other = (DefaultPort) obj;
42 return Objects.equals(this.element.id(), other.element.id()) &&
43 Objects.equals(this.number, other.number) &&
44 Objects.equals(this.isEnabled, other.isEnabled);
45 }
46 return false;
47 }
48
49 @Override
50 public String toString() {
51 return toStringHelper(this)
52 .add("element", element.id())
53 .add("number", number)
54 .add("isEnabled", isEnabled)
55 .toString();
56 }
57
58 @Override
59 public PortNumber number() {
60 return number;
61 }
62
63 @Override
64 public boolean isEnabled() {
65 return isEnabled;
66 }
67
68 @Override
69 public Element element() {
70 return element;
71 }
72
tom29df6f42014-09-05 08:14:14 -070073}