[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;
import org.eclipse.jdt.annotation.NonNullByDefault;
/**
* @author Connor Petty - Initial Contribution
*
*/
@NonNullByDefault
public interface MessageSupplier<M extends GattMessage> {
public M createMessage();

View File

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

View File

@ -44,7 +44,7 @@ public enum GoveeModel {
private final String label;
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) {
this.thingTypeUID = thingTypeUID;

View File

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

View File

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

View File

@ -27,6 +27,8 @@ import javax.xml.xpath.XPathConstants;
import javax.xml.xpath.XPathExpression;
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.w3c.dom.Document;
import org.w3c.dom.Node;
@ -36,10 +38,10 @@ import org.w3c.dom.NodeList;
* @author Connor Petty - Initial contribution
*
*/
@NonNullByDefault
public class ThingTypeTableGenerator {
public static void main(String[] args) throws Exception {
FileInputStream fileIS = new FileInputStream("src/main/resources/OH-INF/thing/thing-types.xml");
DocumentBuilderFactory builderFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = builderFactory.newDocumentBuilder();
@ -111,9 +113,9 @@ public class ThingTypeTableGenerator {
}
private static class ThingTypeData {
private String id;
private String label;
private String description;
private @Nullable String id;
private @Nullable String label;
private @Nullable String description;
}
private static String[] toRow(ThingTypeData data) {
@ -122,7 +124,7 @@ public class ThingTypeTableGenerator {
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))
.collect(Collectors.toList());
}