23663d38021d7e3e9b0fdc4483a6c03852ed94d8
[onosfw.git] /
1 package org.onosproject.incubator.net.resource.label;
2
3 import java.util.Objects;
4
5 import com.google.common.annotations.Beta;
6 import org.onosproject.net.Annotations;
7 import org.onosproject.net.DeviceId;
8 import org.onosproject.net.provider.ProviderId;
9 import static com.google.common.base.MoreObjects.toStringHelper;
10
11 /**
12  * the implementation of a label resource of a device.
13  */
14 @Beta
15 public 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 }