1 package org.metricshub.ipmi.client.model;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25 import org.metricshub.ipmi.core.coding.commands.sdr.GetSensorReadingResponseData;
26 import org.metricshub.ipmi.core.coding.commands.sdr.record.CompactSensorRecord;
27 import org.metricshub.ipmi.core.coding.commands.sdr.record.EntityId;
28 import org.metricshub.ipmi.core.coding.commands.sdr.record.FullSensorRecord;
29 import org.metricshub.ipmi.core.coding.commands.sdr.record.SensorRecord;
30
31
32
33
34
35
36
37
38
39
40
41 public class Sensor {
42
43 private SensorRecord sensorRecord;
44 private GetSensorReadingResponseData data;
45 private String states;
46
47 public Sensor(SensorRecord sensorRecord, GetSensorReadingResponseData data, String states) {
48 this.sensorRecord = sensorRecord;
49 this.data = data;
50 this.states = states;
51 }
52
53 public SensorRecord getRecord() {
54 return sensorRecord;
55 }
56
57 public GetSensorReadingResponseData getData() {
58 return data;
59 }
60
61 public boolean isCompact() {
62 return sensorRecord instanceof CompactSensorRecord;
63 }
64
65 public boolean isFull() {
66 return sensorRecord instanceof FullSensorRecord;
67 }
68
69
70
71
72
73
74 private CompactSensorRecord getCompactSensorRecord() {
75 return (CompactSensorRecord) sensorRecord;
76 }
77
78
79
80
81
82
83 private FullSensorRecord getFullSensorRecord() {
84 return (FullSensorRecord) sensorRecord;
85 }
86
87
88
89
90
91
92 public EntityId getEntityId() {
93
94 if (isCompact()) {
95 return getCompactSensorRecord().getEntityId();
96 } else if (isFull()) {
97 return getFullSensorRecord().getEntityId();
98 }
99 return null;
100 }
101
102
103
104
105
106
107 public Byte getDeviceId() {
108 if (isCompact()) {
109 return getCompactSensorRecord().getEntityInstanceNumber();
110 } else if (isFull()) {
111 return getFullSensorRecord().getEntityInstanceNumber();
112 }
113 return null;
114 }
115
116
117
118
119
120
121 public String getName() {
122 if (isCompact()) {
123 return getCompactSensorRecord().getName();
124 } else if (isFull()) {
125 return getFullSensorRecord().getName();
126 }
127 return null;
128 }
129
130
131
132
133 public String getStates() {
134 return states;
135 }
136 }