|
20 | 20 |
|
21 | 21 | import org.eclipse.jdt.annotation.NonNullByDefault;
|
22 | 22 | import org.eclipse.jdt.annotation.Nullable;
|
23 |
| -import org.freedesktop.dbus.DBusMap; |
24 | 23 | import org.freedesktop.dbus.handlers.AbstractPropertiesChangedHandler;
|
25 | 24 | import org.freedesktop.dbus.interfaces.Properties.PropertiesChanged;
|
26 | 25 | import org.freedesktop.dbus.types.UInt16;
|
@@ -138,102 +137,84 @@ public void handle(@Nullable PropertiesChanged properties) {
|
138 | 137 | }
|
139 | 138 |
|
140 | 139 | private void onDiscoveringUpdate(String dbusPath, Variant<?> variant) {
|
141 |
| - Object discovered = variant.getValue(); |
142 |
| - if (discovered instanceof Boolean) { |
143 |
| - notifyListeners(new AdapterDiscoveringChangedEvent(dbusPath, (boolean) discovered)); |
| 140 | + if (variant.getValue() instanceof Boolean discovered) { |
| 141 | + notifyListeners(new AdapterDiscoveringChangedEvent(dbusPath, discovered)); |
144 | 142 | }
|
145 | 143 | }
|
146 | 144 |
|
147 | 145 | private void onPoweredUpdate(String dbusPath, Variant<?> variant) {
|
148 |
| - Object powered = variant.getValue(); |
149 |
| - if (powered instanceof Boolean) { |
150 |
| - notifyListeners(new AdapterPoweredChangedEvent(dbusPath, (boolean) powered)); |
| 146 | + if (variant.getValue() instanceof Boolean powered) { |
| 147 | + notifyListeners(new AdapterPoweredChangedEvent(dbusPath, powered)); |
151 | 148 | }
|
152 | 149 | }
|
153 | 150 |
|
154 | 151 | private void onServicesResolved(String dbusPath, Variant<?> variant) {
|
155 |
| - Object resolved = variant.getValue(); |
156 |
| - if (resolved instanceof Boolean) { |
157 |
| - notifyListeners(new ServicesResolvedEvent(dbusPath, (boolean) resolved)); |
| 152 | + if (variant.getValue() instanceof Boolean resolved) { |
| 153 | + notifyListeners(new ServicesResolvedEvent(dbusPath, resolved)); |
158 | 154 | }
|
159 | 155 | }
|
160 | 156 |
|
161 | 157 | private void onNameUpdate(String dbusPath, Variant<?> variant) {
|
162 |
| - Object name = variant.getValue(); |
163 |
| - if (name instanceof String) { |
164 |
| - notifyListeners(new NameEvent(dbusPath, (String) name)); |
| 158 | + if (variant.getValue() instanceof String name) { |
| 159 | + notifyListeners(new NameEvent(dbusPath, name)); |
165 | 160 | }
|
166 | 161 | }
|
167 | 162 |
|
168 | 163 | private void onTXPowerUpdate(String dbusPath, Variant<?> variant) {
|
169 |
| - Object txPower = variant.getValue(); |
170 |
| - if (txPower instanceof Short) { |
171 |
| - notifyListeners(new TXPowerEvent(dbusPath, (short) txPower)); |
| 164 | + if (variant.getValue() instanceof Short txPower) { |
| 165 | + notifyListeners(new TXPowerEvent(dbusPath, txPower)); |
172 | 166 | }
|
173 | 167 | }
|
174 | 168 |
|
175 | 169 | private void onConnectedUpdate(String dbusPath, Variant<?> variant) {
|
176 |
| - Object connected = variant.getValue(); |
177 |
| - if (connected instanceof Boolean) { |
178 |
| - notifyListeners(new ConnectedEvent(dbusPath, (boolean) connected)); |
| 170 | + if (variant.getValue() instanceof Boolean connected) { |
| 171 | + notifyListeners(new ConnectedEvent(dbusPath, connected)); |
179 | 172 | }
|
180 | 173 | }
|
181 | 174 |
|
182 | 175 | private void onManufacturerDataUpdate(String dbusPath, Variant<?> variant) {
|
183 |
| - Map<Short, byte[]> eventData = new HashMap<>(); |
184 |
| - |
185 |
| - Object map = variant.getValue(); |
186 |
| - if (map instanceof DBusMap) { |
187 |
| - DBusMap<?, ?> dbm = (DBusMap<?, ?>) map; |
188 |
| - for (Map.Entry<?, ?> entry : dbm.entrySet()) { |
189 |
| - Object key = entry.getKey(); |
190 |
| - Object value = entry.getValue(); |
191 |
| - if (key instanceof UInt16 && value instanceof Variant<?>) { |
192 |
| - value = ((Variant<?>) value).getValue(); |
193 |
| - if (value instanceof byte[]) { |
194 |
| - eventData.put(((UInt16) key).shortValue(), ((byte[]) value)); |
195 |
| - } |
| 176 | + if (variant.getValue() instanceof Map<?, ?> map) { |
| 177 | + Map<Short, byte[]> eventData = new HashMap<>(); |
| 178 | + |
| 179 | + map.forEach((key, value) -> { |
| 180 | + if (key instanceof UInt16 iKey && value instanceof Variant<?> vValue |
| 181 | + && vValue.getValue() instanceof byte[] bValue) { |
| 182 | + eventData.put(iKey.shortValue(), bValue); |
196 | 183 | }
|
| 184 | + }); |
| 185 | + |
| 186 | + if (!eventData.isEmpty()) { |
| 187 | + notifyListeners(new ManufacturerDataEvent(dbusPath, eventData)); |
197 | 188 | }
|
198 | 189 | }
|
199 |
| - if (!eventData.isEmpty()) { |
200 |
| - notifyListeners(new ManufacturerDataEvent(dbusPath, eventData)); |
201 |
| - } |
202 | 190 | }
|
203 | 191 |
|
204 | 192 | private void onServiceDataUpdate(String dbusPath, Variant<?> variant) {
|
205 |
| - Map<String, byte[]> serviceData = new HashMap<>(); |
206 |
| - |
207 |
| - Object map = variant.getValue(); |
208 |
| - if (map instanceof DBusMap) { |
209 |
| - DBusMap<?, ?> dbm = (DBusMap<?, ?>) map; |
210 |
| - for (Map.Entry<?, ?> entry : dbm.entrySet()) { |
211 |
| - Object key = entry.getKey(); |
212 |
| - Object value = entry.getValue(); |
213 |
| - if (key instanceof String && value instanceof Variant<?>) { |
214 |
| - value = ((Variant<?>) value).getValue(); |
215 |
| - if (value instanceof byte[]) { |
216 |
| - serviceData.put(((String) key), ((byte[]) value)); |
217 |
| - } |
| 193 | + if (variant.getValue() instanceof Map<?, ?> map) { |
| 194 | + Map<String, byte[]> serviceData = new HashMap<>(); |
| 195 | + |
| 196 | + map.forEach((key, value) -> { |
| 197 | + if (key instanceof String sKey && value instanceof Variant<?> vValue |
| 198 | + && vValue.getValue() instanceof byte[] bValue) { |
| 199 | + serviceData.put(sKey, bValue); |
218 | 200 | }
|
| 201 | + }); |
| 202 | + |
| 203 | + if (!serviceData.isEmpty()) { |
| 204 | + notifyListeners(new ServiceDataEvent(dbusPath, serviceData)); |
219 | 205 | }
|
220 | 206 | }
|
221 |
| - if (!serviceData.isEmpty()) { |
222 |
| - notifyListeners(new ServiceDataEvent(dbusPath, serviceData)); |
223 |
| - } |
224 | 207 | }
|
225 | 208 |
|
226 | 209 | private void onValueUpdate(String dbusPath, Variant<?> variant) {
|
227 |
| - Object value = variant.getValue(); |
228 |
| - if (value instanceof byte[]) { |
229 |
| - notifyListeners(new CharacteristicUpdateEvent(dbusPath, (byte[]) value)); |
| 210 | + if (variant.getValue() instanceof byte[] bytes) { |
| 211 | + notifyListeners(new CharacteristicUpdateEvent(dbusPath, bytes)); |
230 | 212 | }
|
231 | 213 | }
|
232 | 214 |
|
233 | 215 | private void onRSSIUpdate(String dbusPath, Variant<?> variant) {
|
234 |
| - Object rssi = variant.getValue(); |
235 |
| - if (rssi instanceof Short) { |
236 |
| - notifyListeners(new RssiEvent(dbusPath, (short) rssi)); |
| 216 | + if (variant.getValue() instanceof Short rssi) { |
| 217 | + notifyListeners(new RssiEvent(dbusPath, rssi)); |
237 | 218 | }
|
238 | 219 | }
|
239 | 220 | }
|
0 commit comments