blob: 69c10b7918f78667c472535611297b5c3e4a80b5 [file] [log] [blame]
tom3065d122014-09-03 21:56:43 -07001package org.onlab.onos.net;
2
3import org.onlab.onos.net.provider.ProviderId;
4
5import java.util.Objects;
6
tomeadbb462014-09-07 16:10:19 -07007import static com.google.common.base.MoreObjects.toStringHelper;
tom3065d122014-09-03 21:56:43 -07008
9/**
tom4c6606f2014-09-07 11:11:21 -070010 * Default infrastructure device model implementation.
tom3065d122014-09-03 21:56:43 -070011 */
12public class DefaultDevice extends AbstractElement implements Device {
13
14 private final Type type;
15 private final String manufacturer;
16 private final String serialNumber;
17 private final String hwVersion;
18 private final String swVersion;
19
20 /**
21 * Creates a network element attributed to the specified provider.
22 *
23 * @param providerId identity of the provider
24 * @param id device identifier
25 * @param type device type
26 * @param manufacturer device manufacturer
27 * @param hwVersion device HW version
28 * @param swVersion device SW version
29 * @param serialNumber device serial number
30 */
31 public DefaultDevice(ProviderId providerId, DeviceId id, Type type,
32 String manufacturer, String hwVersion, String swVersion,
33 String serialNumber) {
34 super(providerId, id);
35 this.type = type;
36 this.manufacturer = manufacturer;
37 this.hwVersion = hwVersion;
38 this.swVersion = swVersion;
39 this.serialNumber = serialNumber;
40 }
41
42 @Override
43 public DeviceId id() {
44 return (DeviceId) super.id();
45 }
46
47 @Override
48 public Type type() {
49 return type;
50 }
51
52 @Override
53 public String manufacturer() {
54 return manufacturer;
55 }
56
57 @Override
58 public String hwVersion() {
59 return hwVersion;
60 }
61
62 @Override
63 public String swVersion() {
64 return swVersion;
65 }
66
67 @Override
68 public String serialNumber() {
69 return serialNumber;
70 }
71
72 @Override
73 public int hashCode() {
74 return Objects.hash(id, type, manufacturer, hwVersion, swVersion, serialNumber);
75 }
76
77 @Override
78 public boolean equals(Object obj) {
79 if (obj instanceof DefaultDevice) {
80 final DefaultDevice other = (DefaultDevice) obj;
81 return Objects.equals(this.id, other.id) &&
82 Objects.equals(this.type, other.type) &&
83 Objects.equals(this.manufacturer, other.manufacturer) &&
84 Objects.equals(this.hwVersion, other.hwVersion) &&
85 Objects.equals(this.swVersion, other.swVersion) &&
86 Objects.equals(this.serialNumber, other.serialNumber);
87 }
88 return false;
89 }
90
91 @Override
92 public String toString() {
93 return toStringHelper(this)
94 .add("id", id)
95 .add("type", type)
96 .add("manufacturer", manufacturer)
97 .add("hwVersion", hwVersion)
98 .add("swVersion", swVersion)
99 .add("serialNumber", serialNumber)
100 .toString();
101 }
102
103}