blob: 833625dccafe49c1a3dba9c6af5f8cf416dff1ce [file] [log] [blame]
tomd1900f32014-09-03 14:08:16 -07001package org.onlab.onos.net.device;
2
3import java.net.URI;
4
tomeadbb462014-09-07 16:10:19 -07005import static com.google.common.base.MoreObjects.toStringHelper;
tomd1900f32014-09-03 14:08:16 -07006import static com.google.common.base.Preconditions.checkNotNull;
7import static org.onlab.onos.net.Device.Type;
8
9/**
10 * Default implementation of immutable device description entity.
11 */
12public class DefaultDeviceDescription implements DeviceDescription {
13 private final URI uri;
14 private final Type type;
15 private final String manufacturer;
16 private final String hwVersion;
17 private final String swVersion;
18 private final String serialNumber;
19
20 /**
21 * Creates a device description using the supplied information.
22 *
23 * @param uri device URI
24 * @param type device type
25 * @param manufacturer device manufacturer
26 * @param hwVersion device HW version
27 * @param swVersion device SW version
28 * @param serialNumber device serial number
29 */
30 public DefaultDeviceDescription(URI uri, Type type, String manufacturer,
31 String hwVersion, String swVersion,
32 String serialNumber) {
33 this.uri = checkNotNull(uri, "Device URI cannot be null");
34 this.type = checkNotNull(type, "Device type cannot be null");
35 this.manufacturer = manufacturer;
36 this.hwVersion = hwVersion;
37 this.swVersion = swVersion;
38 this.serialNumber = serialNumber;
39 }
40
41 @Override
42 public URI deviceURI() {
43 return uri;
44 }
45
46 @Override
47 public Type type() {
48 return type;
49 }
50
51 @Override
52 public String manufacturer() {
53 return manufacturer;
54 }
55
56 @Override
57 public String hwVersion() {
58 return hwVersion;
59 }
60
61 @Override
62 public String swVersion() {
63 return swVersion;
64 }
65
66 @Override
67 public String serialNumber() {
68 return serialNumber;
69 }
70
71 @Override
72 public String toString() {
73 return toStringHelper(this)
74 .add("uri", uri).add("type", type).add("mfr", manufacturer)
75 .add("hw", hwVersion).add("sw", swVersion)
76 .add("serial", serialNumber)
77 .toString();
78 }
79
80}