blob: 23663d38021d7e3e9b0fdc4483a6c03852ed94d8 [file] [log] [blame]
Brian O'Connor6de2e202015-05-21 14:30:41 -07001package org.onosproject.incubator.net.resource.label;
jccfff0de92015-03-28 01:40:08 -07002
3import java.util.Objects;
4
Brian O'Connor893b9222015-06-25 15:07:04 -04005import com.google.common.annotations.Beta;
jccfff0de92015-03-28 01:40:08 -07006import org.onosproject.net.Annotations;
7import org.onosproject.net.DeviceId;
8import org.onosproject.net.provider.ProviderId;
9import static com.google.common.base.MoreObjects.toStringHelper;
10
11/**
12 * the implementation of a label resource of a device.
13 */
Brian O'Connor893b9222015-06-25 15:07:04 -040014@Beta
jccfff0de92015-03-28 01:40:08 -070015public final class DefaultLabelResource implements LabelResource {
16
17 private DeviceId deviceId;
18
19 private LabelResourceId labelResourceId;
20
21 /**
22 * Initialize a label resource object.
23 * @param deviceId device identifier
24 * @param labelResourceId label resource id
25 */
26 public DefaultLabelResource(String deviceId, long labelResourceId) {
27 this.deviceId = DeviceId.deviceId(deviceId);
28 this.labelResourceId = LabelResourceId.labelResourceId(labelResourceId);
29 }
30
31 /**
32 * Initialize a label resource object.
33 * @param deviceId device identifier
34 * @param labelResourceId label resource id
35 */
36 public DefaultLabelResource(DeviceId deviceId,
37 LabelResourceId labelResourceId) {
38 this.deviceId = deviceId;
39 this.labelResourceId = labelResourceId;
40 }
41
42 @Override
43 public DeviceId deviceId() {
44 return deviceId;
45 }
46
47 @Override
48 public LabelResourceId labelResourceId() {
49 return labelResourceId;
50 }
51
52 @Override
53 public Annotations annotations() {
54 return null;
55 }
56
57 @Override
58 public ProviderId providerId() {
59 return null;
60 }
61
62 @Override
63 public int hashCode() {
64 return Objects.hash(deviceId, labelResourceId);
65 }
66
67 @Override
68 public boolean equals(Object obj) {
69 if (obj instanceof DefaultLabelResource) {
70 DefaultLabelResource that = (DefaultLabelResource) obj;
71 return Objects.equals(this.deviceId, that.deviceId)
72 && Objects.equals(this.labelResourceId,
73 that.labelResourceId);
74 }
75 return false;
76 }
77
78 @Override
79 public String toString() {
80 return toStringHelper(this).add("deviceId", deviceId)
81 .add("labelResourceId", labelResourceId).toString();
82 }
83}