[bluetooth.govee] null annotations (#13978)
* null annotations and checkstyle * Fix more warnings Signed-off-by: lsiepel <leosiepel@gmail.com>
This commit is contained in:
parent
a079603aab
commit
fb31c14aff
@ -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();
|
||||||
|
|||||||
@ -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();
|
||||||
|
|||||||
@ -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;
|
||||||
|
|||||||
@ -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();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -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");
|
||||||
|
|||||||
@ -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());
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user