[bluetooth.govee] null annotations (#13978)

* null annotations and checkstyle
* Fix more warnings

Signed-off-by: lsiepel <leosiepel@gmail.com>
This commit is contained in:
lsiepel 2022-12-22 08:58:12 +01:00 committed by GitHub
parent a079603aab
commit fb31c14aff
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 26 additions and 15 deletions

View File

@ -12,10 +12,13 @@
*/ */
package org.openhab.binding.bluetooth.gattserial; package org.openhab.binding.bluetooth.gattserial;
import org.eclipse.jdt.annotation.NonNullByDefault;
/** /**
* @author Connor Petty - Initial Contribution * @author Connor Petty - Initial Contribution
* *
*/ */
@NonNullByDefault
public interface MessageSupplier<M extends GattMessage> { public interface MessageSupplier<M extends GattMessage> {
public M createMessage(); public M createMessage();

View File

@ -151,7 +151,6 @@ public class GoveeHygrometerHandler extends ConnectedBluetoothHandler {
} }
private CompletableFuture<@Nullable ?> createInitSettingsJob() { private CompletableFuture<@Nullable ?> createInitSettingsJob() {
logger.debug("Initializing Govee Hygrometer {} settings", address); logger.debug("Initializing Govee Hygrometer {} settings", address);
QuantityType<Temperature> temCali = config.getTemperatureCalibration(); QuantityType<Temperature> temCali = config.getTemperatureCalibration();

View File

@ -44,7 +44,7 @@ public enum GoveeModel {
private final String label; private final String label;
private final boolean supportsWarningBroadcast; private final boolean supportsWarningBroadcast;
private final static Logger logger = LoggerFactory.getLogger(GoveeModel.class); private static final Logger logger = LoggerFactory.getLogger(GoveeModel.class);
private GoveeModel(ThingTypeUID thingTypeUID, String label, boolean supportsWarningBroadcast) { private GoveeModel(ThingTypeUID thingTypeUID, String label, boolean supportsWarningBroadcast) {
this.thingTypeUID = thingTypeUID; this.thingTypeUID = thingTypeUID;

View File

@ -55,8 +55,11 @@ public class GetOrSetHumWarningCommand extends GoveeCommand {
return 3; return 3;
} }
private static short convertQuantity(QuantityType<Dimensionless> quantity) { private static short convertQuantity(@Nullable QuantityType<Dimensionless> quantity) {
var percentQuantity = quantity.toUnit(Units.PERCENT); if (quantity == null) {
throw new IllegalArgumentException("Unable to convert quantity to percent");
}
QuantityType<Dimensionless> percentQuantity = quantity.toUnit(Units.PERCENT);
if (percentQuantity == null) { if (percentQuantity == null) {
throw new IllegalArgumentException("Unable to convert quantity to percent"); throw new IllegalArgumentException("Unable to convert quantity to percent");
} }
@ -65,14 +68,15 @@ public class GetOrSetHumWarningCommand extends GoveeCommand {
@Override @Override
protected byte @Nullable [] getData() { protected byte @Nullable [] getData() {
if (settings == null) { WarningSettingsDTO<Dimensionless> localSettins = settings;
if (localSettins == null || localSettins.min == null || localSettins.max == null) {
return null; return null;
} }
ByteBuffer buffer = ByteBuffer.allocate(5).order(ByteOrder.LITTLE_ENDIAN); ByteBuffer buffer = ByteBuffer.allocate(5).order(ByteOrder.LITTLE_ENDIAN);
buffer.put(settings.enableAlarm == OnOffType.ON ? (byte) 1 : 0); buffer.put(localSettins.enableAlarm == OnOffType.ON ? (byte) 1 : 0);
buffer.putShort(convertQuantity(settings.min)); buffer.putShort(convertQuantity(localSettins.min));
buffer.putShort(convertQuantity(settings.max)); buffer.putShort(convertQuantity(localSettins.max));
return buffer.array(); return buffer.array();
} }

View File

@ -14,6 +14,7 @@ package org.openhab.binding.bluetooth.govee.internal;
import org.eclipse.jdt.annotation.NonNullByDefault; import org.eclipse.jdt.annotation.NonNullByDefault;
import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
import org.openhab.binding.bluetooth.MockBluetoothAdapter; import org.openhab.binding.bluetooth.MockBluetoothAdapter;
import org.openhab.binding.bluetooth.MockBluetoothDevice; import org.openhab.binding.bluetooth.MockBluetoothDevice;
@ -40,7 +41,8 @@ class GoveeModelTest {
} }
@Test @Test
void testGovee_H5074_84DD() { @DisplayName("testGovee_H5074_84DD")
void testGoveeH507484DD() {
MockBluetoothAdapter adapter = new MockBluetoothAdapter(); MockBluetoothAdapter adapter = new MockBluetoothAdapter();
MockBluetoothDevice mockDevice = adapter.getDevice(TestUtils.randomAddress()); MockBluetoothDevice mockDevice = adapter.getDevice(TestUtils.randomAddress());
mockDevice.setName("Govee_H5074_84DD"); mockDevice.setName("Govee_H5074_84DD");
@ -49,7 +51,8 @@ class GoveeModelTest {
} }
@Test @Test
void testGVH5102_77E9() { @DisplayName("testGVH5102_77E9")
void testGVH510277E9() {
MockBluetoothAdapter adapter = new MockBluetoothAdapter(); MockBluetoothAdapter adapter = new MockBluetoothAdapter();
MockBluetoothDevice mockDevice = adapter.getDevice(TestUtils.randomAddress()); MockBluetoothDevice mockDevice = adapter.getDevice(TestUtils.randomAddress());
mockDevice.setName("GVH5102_77E9"); mockDevice.setName("GVH5102_77E9");

View File

@ -27,6 +27,8 @@ import javax.xml.xpath.XPathConstants;
import javax.xml.xpath.XPathExpression; import javax.xml.xpath.XPathExpression;
import javax.xml.xpath.XPathFactory; import javax.xml.xpath.XPathFactory;
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.eclipse.jdt.annotation.Nullable;
import org.openhab.binding.bluetooth.govee.internal.GoveeModel; import org.openhab.binding.bluetooth.govee.internal.GoveeModel;
import org.w3c.dom.Document; import org.w3c.dom.Document;
import org.w3c.dom.Node; import org.w3c.dom.Node;
@ -36,10 +38,10 @@ import org.w3c.dom.NodeList;
* @author Connor Petty - Initial contribution * @author Connor Petty - Initial contribution
* *
*/ */
@NonNullByDefault
public class ThingTypeTableGenerator { public class ThingTypeTableGenerator {
public static void main(String[] args) throws Exception { public static void main(String[] args) throws Exception {
FileInputStream fileIS = new FileInputStream("src/main/resources/OH-INF/thing/thing-types.xml"); FileInputStream fileIS = new FileInputStream("src/main/resources/OH-INF/thing/thing-types.xml");
DocumentBuilderFactory builderFactory = DocumentBuilderFactory.newInstance(); DocumentBuilderFactory builderFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = builderFactory.newDocumentBuilder(); DocumentBuilder builder = builderFactory.newDocumentBuilder();
@ -111,9 +113,9 @@ public class ThingTypeTableGenerator {
} }
private static class ThingTypeData { private static class ThingTypeData {
private String id; private @Nullable String id;
private String label; private @Nullable String label;
private String description; private @Nullable String description;
} }
private static String[] toRow(ThingTypeData data) { private static String[] toRow(ThingTypeData data) {
@ -122,7 +124,7 @@ public class ThingTypeTableGenerator {
modelsForType(data.id).stream().map(model -> model.name()).collect(Collectors.joining(",")) }; modelsForType(data.id).stream().map(model -> model.name()).collect(Collectors.joining(",")) };
} }
private static List<GoveeModel> modelsForType(String typeUID) { private static List<GoveeModel> modelsForType(@Nullable String typeUID) {
return Arrays.stream(GoveeModel.values()).filter(model -> model.getThingTypeUID().getId().equals(typeUID)) return Arrays.stream(GoveeModel.values()).filter(model -> model.getThingTypeUID().getId().equals(typeUID))
.collect(Collectors.toList()); .collect(Collectors.toList());
} }