[homematic] checkstyle fixes (#15604)
Signed-off-by: Leo Siepel <leosiepel@gmail.com>
This commit is contained in:
parent
1b122a53b9
commit
e847139f97
@ -58,7 +58,6 @@ public class HomematicConfig {
|
|||||||
private int bufferSize = 2048;
|
private int bufferSize = 2048;
|
||||||
|
|
||||||
private HmGatewayInfo gatewayInfo;
|
private HmGatewayInfo gatewayInfo;
|
||||||
private int callbackRegistrationRetries;
|
|
||||||
private int callbackRegTimeout;
|
private int callbackRegTimeout;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@ -39,7 +39,7 @@ public class XmlRpcRequest implements RpcRequest<String> {
|
|||||||
private List<Object> parms;
|
private List<Object> parms;
|
||||||
private StringBuilder sb;
|
private StringBuilder sb;
|
||||||
private TYPE type;
|
private TYPE type;
|
||||||
public static SimpleDateFormat xmlRpcDateFormat = new SimpleDateFormat("yyyyMMdd'T'HH:mm:ss");
|
public static final SimpleDateFormat XML_RPC_DATEFORMAT = new SimpleDateFormat("yyyyMMdd'T'HH:mm:ss");
|
||||||
|
|
||||||
public XmlRpcRequest(String methodName) {
|
public XmlRpcRequest(String methodName) {
|
||||||
this(methodName, TYPE.REQUEST);
|
this(methodName, TYPE.REQUEST);
|
||||||
@ -135,7 +135,9 @@ public class XmlRpcRequest implements RpcRequest<String> {
|
|||||||
} else if (clazz == Boolean.class) {
|
} else if (clazz == Boolean.class) {
|
||||||
tag("boolean", ((Boolean) value).booleanValue() ? "1" : "0");
|
tag("boolean", ((Boolean) value).booleanValue() ? "1" : "0");
|
||||||
} else if (clazz == Date.class) {
|
} else if (clazz == Date.class) {
|
||||||
tag("dateTime.iso8601", xmlRpcDateFormat.format(((Date) value)));
|
synchronized (XML_RPC_DATEFORMAT) {
|
||||||
|
tag("dateTime.iso8601", XML_RPC_DATEFORMAT.format(((Date) value)));
|
||||||
|
}
|
||||||
} else if (value instanceof Calendar calendar) {
|
} else if (value instanceof Calendar calendar) {
|
||||||
generateValue(calendar.getTime());
|
generateValue(calendar.getTime());
|
||||||
} else if (value instanceof byte[] bytes) {
|
} else if (value instanceof byte[] bytes) {
|
||||||
|
|||||||
@ -149,7 +149,7 @@ public class XmlRpcResponse implements RpcResponse {
|
|||||||
break;
|
break;
|
||||||
case "datetime.iso8601":
|
case "datetime.iso8601":
|
||||||
try {
|
try {
|
||||||
data.add(XmlRpcRequest.xmlRpcDateFormat.parse(currentValue));
|
data.add(XmlRpcRequest.XML_RPC_DATEFORMAT.parse(currentValue));
|
||||||
} catch (ParseException ex) {
|
} catch (ParseException ex) {
|
||||||
throw new SAXException(ex.getMessage(), ex);
|
throw new SAXException(ex.getMessage(), ex);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -34,7 +34,7 @@ import org.slf4j.LoggerFactory;
|
|||||||
|
|
||||||
public class DisplayOptionsParser extends CommonRpcParser<Object, Void> {
|
public class DisplayOptionsParser extends CommonRpcParser<Object, Void> {
|
||||||
private final Logger logger = LoggerFactory.getLogger(DisplayOptionsParser.class);
|
private final Logger logger = LoggerFactory.getLogger(DisplayOptionsParser.class);
|
||||||
private static final String[] onOff = new String[] { "ON", "OFF" };
|
private static final String[] ON_OFF = new String[] { "ON", "OFF" };
|
||||||
private static final int IDX_NOT_FOUND = -1;
|
private static final int IDX_NOT_FOUND = -1;
|
||||||
private HmChannel channel;
|
private HmChannel channel;
|
||||||
private String text;
|
private String text;
|
||||||
@ -128,7 +128,7 @@ public class DisplayOptionsParser extends CommonRpcParser<Object, Void> {
|
|||||||
String[] dpOpts = dp.getOptions();
|
String[] dpOpts = dp.getOptions();
|
||||||
String[] options = new String[dpOpts.length - 1];
|
String[] options = new String[dpOpts.length - 1];
|
||||||
options = Arrays.copyOfRange(dpOpts, 1, dpOpts.length);
|
options = Arrays.copyOfRange(dpOpts, 1, dpOpts.length);
|
||||||
for (String onOffString : onOff) {
|
for (String onOffString : ON_OFF) {
|
||||||
int onIdx = findInArray(options, onOffString);
|
int onIdx = findInArray(options, onOffString);
|
||||||
if (onIdx != IDX_NOT_FOUND) {
|
if (onIdx != IDX_NOT_FOUND) {
|
||||||
options[onIdx] = datapointName + "_" + onOffString;
|
options[onIdx] = datapointName + "_" + onOffString;
|
||||||
|
|||||||
@ -33,12 +33,12 @@ import org.slf4j.LoggerFactory;
|
|||||||
public class BatteryTypeVirtualDatapointHandler extends AbstractVirtualDatapointHandler {
|
public class BatteryTypeVirtualDatapointHandler extends AbstractVirtualDatapointHandler {
|
||||||
private final Logger logger = LoggerFactory.getLogger(BatteryTypeVirtualDatapointHandler.class);
|
private final Logger logger = LoggerFactory.getLogger(BatteryTypeVirtualDatapointHandler.class);
|
||||||
|
|
||||||
private static final Properties batteries = new Properties();
|
private static final Properties BATT_PROPERTIES = new Properties();
|
||||||
|
|
||||||
public BatteryTypeVirtualDatapointHandler() {
|
public BatteryTypeVirtualDatapointHandler() {
|
||||||
Bundle bundle = FrameworkUtil.getBundle(getClass());
|
Bundle bundle = FrameworkUtil.getBundle(getClass());
|
||||||
try (InputStream stream = bundle.getResource("homematic/batteries.properties").openStream()) {
|
try (InputStream stream = bundle.getResource("homematic/batteries.properties").openStream()) {
|
||||||
batteries.load(stream);
|
BATT_PROPERTIES.load(stream);
|
||||||
} catch (IllegalStateException | IOException e) {
|
} catch (IllegalStateException | IOException e) {
|
||||||
logger.warn("The resource homematic/batteries.properties could not be loaded! Battery types not available",
|
logger.warn("The resource homematic/batteries.properties could not be loaded! Battery types not available",
|
||||||
e);
|
e);
|
||||||
@ -52,7 +52,7 @@ public class BatteryTypeVirtualDatapointHandler extends AbstractVirtualDatapoint
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void initialize(HmDevice device) {
|
public void initialize(HmDevice device) {
|
||||||
String batteryType = batteries.getProperty(device.getType());
|
String batteryType = BATT_PROPERTIES.getProperty(device.getType());
|
||||||
if (batteryType != null) {
|
if (batteryType != null) {
|
||||||
addDatapoint(device, 0, getName(), HmValueType.STRING, batteryType, true);
|
addDatapoint(device, 0, getName(), HmValueType.STRING, batteryType, true);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -22,13 +22,12 @@ import org.openhab.binding.homematic.internal.model.HmDatapoint;
|
|||||||
import org.openhab.binding.homematic.internal.model.HmDevice;
|
import org.openhab.binding.homematic.internal.model.HmDevice;
|
||||||
import org.openhab.binding.homematic.internal.model.HmValueType;
|
import org.openhab.binding.homematic.internal.model.HmValueType;
|
||||||
import org.openhab.core.thing.CommonTriggerEvents;
|
import org.openhab.core.thing.CommonTriggerEvents;
|
||||||
import org.openhab.core.thing.DefaultSystemChannelTypeProvider;
|
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A virtual String datapoint which adds a BUTTON datapoint. It will forward key events to the
|
* A virtual String datapoint which adds a BUTTON datapoint. It will forward key events to the
|
||||||
* system channel {@link DefaultSystemChannelTypeProvider#SYSTEM_BUTTON}.
|
* system channel {@link org.openhab.core.thing.DefaultSystemChannelTypeProvider#SYSTEM_BUTTON}.
|
||||||
*
|
*
|
||||||
* @author Michael Reitler - Initial contribution
|
* @author Michael Reitler - Initial contribution
|
||||||
*/
|
*/
|
||||||
|
|||||||
@ -43,15 +43,15 @@ public abstract class AbstractTypeConverter<T extends State> implements TypeConv
|
|||||||
/**
|
/**
|
||||||
* Defines all devices where the state datapoint must be inverted.
|
* Defines all devices where the state datapoint must be inverted.
|
||||||
*/
|
*/
|
||||||
private static final List<StateInvertInfo> stateInvertDevices = new ArrayList<>(3);
|
private static final List<StateInvertInfo> STATE_INVERT_INFO_LIST = new ArrayList<>(3);
|
||||||
|
|
||||||
static {
|
static {
|
||||||
stateInvertDevices.add(new StateInvertInfo(DEVICE_TYPE_SHUTTER_CONTACT));
|
STATE_INVERT_INFO_LIST.add(new StateInvertInfo(DEVICE_TYPE_SHUTTER_CONTACT));
|
||||||
stateInvertDevices.add(new StateInvertInfo(DEVICE_TYPE_SHUTTER_CONTACT_2));
|
STATE_INVERT_INFO_LIST.add(new StateInvertInfo(DEVICE_TYPE_SHUTTER_CONTACT_2));
|
||||||
stateInvertDevices.add(new StateInvertInfo(DEVICE_TYPE_INCLINATION_SENSOR));
|
STATE_INVERT_INFO_LIST.add(new StateInvertInfo(DEVICE_TYPE_INCLINATION_SENSOR));
|
||||||
stateInvertDevices.add(new StateInvertInfo(DEVICE_TYPE_WIRED_IO_MODULE, 15, 26));
|
STATE_INVERT_INFO_LIST.add(new StateInvertInfo(DEVICE_TYPE_WIRED_IO_MODULE, 15, 26));
|
||||||
stateInvertDevices.add(new StateInvertInfo(DEVICE_TYPE_MAX_WINDOW_SENSOR));
|
STATE_INVERT_INFO_LIST.add(new StateInvertInfo(DEVICE_TYPE_MAX_WINDOW_SENSOR));
|
||||||
stateInvertDevices.add(new StateInvertInfo(DEVICE_TYPE_SHUTTER_CONTACT_INTERFACE));
|
STATE_INVERT_INFO_LIST.add(new StateInvertInfo(DEVICE_TYPE_SHUTTER_CONTACT_INTERFACE));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -59,7 +59,7 @@ public abstract class AbstractTypeConverter<T extends State> implements TypeConv
|
|||||||
*/
|
*/
|
||||||
protected boolean isStateInvertDatapoint(HmDatapoint dp) {
|
protected boolean isStateInvertDatapoint(HmDatapoint dp) {
|
||||||
if (DATAPOINT_NAME_STATE.equals(dp.getName())) {
|
if (DATAPOINT_NAME_STATE.equals(dp.getName())) {
|
||||||
for (StateInvertInfo stateInvertInfo : stateInvertDevices) {
|
for (StateInvertInfo stateInvertInfo : STATE_INVERT_INFO_LIST) {
|
||||||
if (stateInvertInfo.isToInvert(dp)) {
|
if (stateInvertInfo.isToInvert(dp)) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -32,11 +32,11 @@ import org.openhab.core.types.Type;
|
|||||||
public class QuantityTypeConverter extends AbstractTypeConverter<QuantityType<? extends Quantity<?>>> {
|
public class QuantityTypeConverter extends AbstractTypeConverter<QuantityType<? extends Quantity<?>>> {
|
||||||
|
|
||||||
// this literal is required because some gateway types are mixing up encodings in their XML-RPC responses
|
// this literal is required because some gateway types are mixing up encodings in their XML-RPC responses
|
||||||
private final String UNCORRECT_ENCODED_CELSIUS = "°C";
|
private static final String UNCORRECT_ENCODED_CELSIUS = "°C";
|
||||||
|
|
||||||
// "100%" is a commonly used "unit" in datapoints. Generated channel-type is of DecimalType,
|
// "100%" is a commonly used "unit" in datapoints. Generated channel-type is of DecimalType,
|
||||||
// but clients may define a QuantityType if preferred
|
// but clients may define a QuantityType if preferred
|
||||||
private final String HUNDRED_PERCENT = "100%";
|
private static final String HUNDRED_PERCENT = "100%";
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected boolean toBindingValidation(HmDatapoint dp, Class<? extends Type> typeClass) {
|
protected boolean toBindingValidation(HmDatapoint dp, Class<? extends Type> typeClass) {
|
||||||
|
|||||||
@ -26,7 +26,7 @@ public class Eq3UdpRequest {
|
|||||||
private static final byte UDP_IDENTIFY = 73;
|
private static final byte UDP_IDENTIFY = 73;
|
||||||
private static final byte UDP_SEPARATOR = 0;
|
private static final byte UDP_SEPARATOR = 0;
|
||||||
|
|
||||||
private static final int senderId = new Random().nextInt() & 0xFFFFFF;
|
private static final int SENDER_ID = new Random().nextInt() & 0xFFFFFF;
|
||||||
private static final String EQ3_DEVICE_TYPE = "eQ3-*";
|
private static final String EQ3_DEVICE_TYPE = "eQ3-*";
|
||||||
private static final String EQ3_SERIAL_NUMBER = "*";
|
private static final String EQ3_SERIAL_NUMBER = "*";
|
||||||
|
|
||||||
@ -41,7 +41,7 @@ public class Eq3UdpRequest {
|
|||||||
* Returns the sender id.
|
* Returns the sender id.
|
||||||
*/
|
*/
|
||||||
public static int getSenderId() {
|
public static int getSenderId() {
|
||||||
return senderId;
|
return SENDER_ID;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -51,7 +51,7 @@ public class Eq3UdpRequest {
|
|||||||
ByteArrayOutputStream baos = new ByteArrayOutputStream();
|
ByteArrayOutputStream baos = new ByteArrayOutputStream();
|
||||||
baos.write(2);
|
baos.write(2);
|
||||||
for (int i = 2; i >= 0; i--) {
|
for (int i = 2; i >= 0; i--) {
|
||||||
byte temp = (byte) (senderId >> i * 8 & 0xFF);
|
byte temp = (byte) (SENDER_ID >> i * 8 & 0xFF);
|
||||||
baos.write(temp);
|
baos.write(temp);
|
||||||
}
|
}
|
||||||
baos.write(UDP_SEPARATOR);
|
baos.write(UDP_SEPARATOR);
|
||||||
|
|||||||
@ -27,7 +27,6 @@ import java.util.Objects;
|
|||||||
import java.util.concurrent.Future;
|
import java.util.concurrent.Future;
|
||||||
|
|
||||||
import org.eclipse.jdt.annotation.Nullable;
|
import org.eclipse.jdt.annotation.Nullable;
|
||||||
import org.openhab.binding.homematic.internal.HomematicBindingConstants;
|
|
||||||
import org.openhab.binding.homematic.internal.common.HomematicConfig;
|
import org.openhab.binding.homematic.internal.common.HomematicConfig;
|
||||||
import org.openhab.binding.homematic.internal.communicator.HomematicGateway;
|
import org.openhab.binding.homematic.internal.communicator.HomematicGateway;
|
||||||
import org.openhab.binding.homematic.internal.converter.ConverterException;
|
import org.openhab.binding.homematic.internal.converter.ConverterException;
|
||||||
@ -372,8 +371,10 @@ public class HomematicThingHandler extends BaseThingHandler {
|
|||||||
* @param datapointName The datapoint that will be updated on the device
|
* @param datapointName The datapoint that will be updated on the device
|
||||||
* @param currentValue The current value of the datapoint
|
* @param currentValue The current value of the datapoint
|
||||||
* @param newValue The value that will be sent to the device
|
* @param newValue The value that will be sent to the device
|
||||||
* @return The rxMode ({@link HomematicBindingConstants#RX_BURST_MODE "BURST"} for burst mode,
|
* @return The rxMode ({@link org.openhab.binding.homematic.internal.HomematicBindingConstants#RX_BURST_MODE
|
||||||
* {@link HomematicBindingConstants#RX_WAKEUP_MODE "WAKEUP"} for wakeup mode, or null for the default mode)
|
* "BURST"} for burst mode,
|
||||||
|
* {@link org.openhab.binding.homematic.internal.HomematicBindingConstants#RX_WAKEUP_MODE "WAKEUP"} for
|
||||||
|
* wakeup mode, or null for the default mode)
|
||||||
*/
|
*/
|
||||||
protected String getRxModeForDatapointTransmission(String datapointName, Object currentValue, Object newValue) {
|
protected String getRxModeForDatapointTransmission(String datapointName, Object currentValue, Object newValue) {
|
||||||
return null;
|
return null;
|
||||||
|
|||||||
@ -22,7 +22,7 @@ import java.util.List;
|
|||||||
* @author Gerhard Riegler - Initial contribution
|
* @author Gerhard Riegler - Initial contribution
|
||||||
*/
|
*/
|
||||||
public class SimplePortPool {
|
public class SimplePortPool {
|
||||||
private static int START_PORT = 9125;
|
private static int startPort = 9125;
|
||||||
|
|
||||||
private List<PortInfo> availablePorts = new ArrayList<>();
|
private List<PortInfo> availablePorts = new ArrayList<>();
|
||||||
|
|
||||||
@ -48,9 +48,9 @@ public class SimplePortPool {
|
|||||||
}
|
}
|
||||||
|
|
||||||
PortInfo portInfo = new PortInfo();
|
PortInfo portInfo = new PortInfo();
|
||||||
while (isPortInUse(START_PORT++)) {
|
while (isPortInUse(startPort++)) {
|
||||||
}
|
}
|
||||||
portInfo.port = START_PORT - 1;
|
portInfo.port = startPort - 1;
|
||||||
portInfo.free = false;
|
portInfo.free = false;
|
||||||
availablePorts.add(portInfo);
|
availablePorts.add(portInfo);
|
||||||
|
|
||||||
|
|||||||
@ -21,7 +21,7 @@ import org.slf4j.LoggerFactory;
|
|||||||
* @author Gerhard Riegler - Initial contribution
|
* @author Gerhard Riegler - Initial contribution
|
||||||
*/
|
*/
|
||||||
public class MiscUtils {
|
public class MiscUtils {
|
||||||
private static final Logger logger = LoggerFactory.getLogger(MiscUtils.class);
|
private static final Logger LOGGER = LoggerFactory.getLogger(MiscUtils.class);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Replaces invalid characters of the text to fit into an openHAB UID.
|
* Replaces invalid characters of the text to fit into an openHAB UID.
|
||||||
@ -32,7 +32,7 @@ public class MiscUtils {
|
|||||||
}
|
}
|
||||||
String cleanedText = text.replaceAll("[^A-Za-z0-9_-]", replaceChar);
|
String cleanedText = text.replaceAll("[^A-Za-z0-9_-]", replaceChar);
|
||||||
if (!text.equals(cleanedText)) {
|
if (!text.equals(cleanedText)) {
|
||||||
logger.info("{} '{}' contains invalid characters, new {} '{}'", textType, text, textType, cleanedText);
|
LOGGER.info("{} '{}' contains invalid characters, new {} '{}'", textType, text, textType, cleanedText);
|
||||||
}
|
}
|
||||||
return cleanedText;
|
return cleanedText;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -47,7 +47,7 @@ import org.slf4j.LoggerFactory;
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
public class MetadataUtils {
|
public class MetadataUtils {
|
||||||
private static final Logger logger = LoggerFactory.getLogger(MetadataUtils.class);
|
private static final Logger LOGGER = LoggerFactory.getLogger(MetadataUtils.class);
|
||||||
private static ResourceBundle descriptionsBundle;
|
private static ResourceBundle descriptionsBundle;
|
||||||
private static Map<String, String> descriptions = new HashMap<>();
|
private static Map<String, String> descriptions = new HashMap<>();
|
||||||
private static Map<String, Set<String>> standardDatapoints = new HashMap<>();
|
private static Map<String, Set<String>> standardDatapoints = new HashMap<>();
|
||||||
@ -98,7 +98,7 @@ public class MetadataUtils {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
} catch (IllegalStateException | IOException e) {
|
} catch (IllegalStateException | IOException e) {
|
||||||
logger.warn("Can't load standard-datapoints.properties file!", e);
|
LOGGER.warn("Can't load standard-datapoints.properties file!", e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -112,7 +112,7 @@ public class MetadataUtils {
|
|||||||
public static <T> List<T> generateOptions(HmDatapoint dp, OptionsBuilder<T> optionsBuilder) {
|
public static <T> List<T> generateOptions(HmDatapoint dp, OptionsBuilder<T> optionsBuilder) {
|
||||||
List<T> options = null;
|
List<T> options = null;
|
||||||
if (dp.getOptions() == null) {
|
if (dp.getOptions() == null) {
|
||||||
logger.warn("No options for ENUM datapoint {}", dp);
|
LOGGER.warn("No options for ENUM datapoint {}", dp);
|
||||||
} else {
|
} else {
|
||||||
options = new ArrayList<>();
|
options = new ArrayList<>();
|
||||||
for (int i = 0; i < dp.getOptions().length; i++) {
|
for (int i = 0; i < dp.getOptions().length; i++) {
|
||||||
@ -214,8 +214,8 @@ public class MetadataUtils {
|
|||||||
}
|
}
|
||||||
sb.append(key).append(", ");
|
sb.append(key).append(", ");
|
||||||
}
|
}
|
||||||
if (logger.isTraceEnabled()) {
|
if (LOGGER.isTraceEnabled()) {
|
||||||
logger.trace("Description not found for: {}", sb.toString().substring(0, sb.length() - 2));
|
LOGGER.trace("Description not found for: {}", sb.toString().substring(0, sb.length() - 2));
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
@ -271,7 +271,7 @@ public class MetadataUtils {
|
|||||||
try {
|
try {
|
||||||
return new BigDecimal(number.toString());
|
return new BigDecimal(number.toString());
|
||||||
} catch (Exception ex) {
|
} catch (Exception ex) {
|
||||||
logger.warn("Can't create BigDecimal for number: {}", number.toString());
|
LOGGER.warn("Can't create BigDecimal for number: {}", number.toString());
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -18,7 +18,6 @@ import java.util.Set;
|
|||||||
import org.openhab.core.thing.ThingTypeUID;
|
import org.openhab.core.thing.ThingTypeUID;
|
||||||
import org.openhab.core.thing.type.ChannelGroupTypeUID;
|
import org.openhab.core.thing.type.ChannelGroupTypeUID;
|
||||||
import org.openhab.core.thing.type.ChannelTypeUID;
|
import org.openhab.core.thing.type.ChannelTypeUID;
|
||||||
import org.openhab.core.thing.type.ThingType;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Allows external definition of
|
* Allows external definition of
|
||||||
@ -35,7 +34,7 @@ public interface HomematicThingTypeExcluder {
|
|||||||
* are henceforth responsible to ...
|
* are henceforth responsible to ...
|
||||||
* <li>provide any excluded ThingType on their own - e.g. in a custom
|
* <li>provide any excluded ThingType on their own - e.g. in a custom
|
||||||
* {@link org.openhab.core.thing.binding.ThingTypeProvider} or by
|
* {@link org.openhab.core.thing.binding.ThingTypeProvider} or by
|
||||||
* defining those {@link ThingType}s in XML.</li>
|
* defining those {@link org.openhab.core.thing.type.ThingType}s in XML.</li>
|
||||||
* <li>provide {@link org.openhab.core.thing.type.ChannelType}s
|
* <li>provide {@link org.openhab.core.thing.type.ChannelType}s
|
||||||
* which are introduced by the provided thing-types</li>
|
* which are introduced by the provided thing-types</li>
|
||||||
* <li>ensure compatibility and completeness of those thing-types (for any
|
* <li>ensure compatibility and completeness of those thing-types (for any
|
||||||
@ -55,7 +54,7 @@ public interface HomematicThingTypeExcluder {
|
|||||||
* {@link HomematicThingTypeExcluder} or not
|
* {@link HomematicThingTypeExcluder} or not
|
||||||
*
|
*
|
||||||
* @param thingType a specific ThingType, specified by its {@link ThingTypeUID}
|
* @param thingType a specific ThingType, specified by its {@link ThingTypeUID}
|
||||||
* @return <i>true</i>, if the {@link ThingType} is excluded
|
* @return <i>true</i>, if the {@link org.openhab.core.thing.type.ThingType} is excluded
|
||||||
*/
|
*/
|
||||||
boolean isThingTypeExcluded(ThingTypeUID thingType);
|
boolean isThingTypeExcluded(ThingTypeUID thingType);
|
||||||
|
|
||||||
|
|||||||
@ -16,18 +16,17 @@ import static org.hamcrest.CoreMatchers.*;
|
|||||||
import static org.hamcrest.MatcherAssert.assertThat;
|
import static org.hamcrest.MatcherAssert.assertThat;
|
||||||
|
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
import org.openhab.binding.homematic.internal.converter.type.AbstractTypeConverter;
|
|
||||||
import org.openhab.binding.homematic.internal.model.HmDatapoint;
|
import org.openhab.binding.homematic.internal.model.HmDatapoint;
|
||||||
import org.openhab.core.library.types.DecimalType;
|
import org.openhab.core.library.types.DecimalType;
|
||||||
import org.openhab.core.library.types.QuantityType;
|
import org.openhab.core.library.types.QuantityType;
|
||||||
import org.openhab.core.library.unit.ImperialUnits;
|
import org.openhab.core.library.unit.ImperialUnits;
|
||||||
|
import org.openhab.core.library.unit.SIUnits;
|
||||||
import org.openhab.core.library.unit.Units;
|
import org.openhab.core.library.unit.Units;
|
||||||
import org.openhab.core.types.State;
|
import org.openhab.core.types.State;
|
||||||
|
|
||||||
import tech.units.indriya.unit.UnitDimension;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Tests for {@link AbstractTypeConverter#convertFromBinding(HmDatapoint)}.
|
* Tests for
|
||||||
|
* {@link org.openhab.binding.homematic.internal.converter.type.AbstractTypeConverter#convertFromBinding(HmDatapoint)}.
|
||||||
*
|
*
|
||||||
* @author Michael Reitler - Initial Contribution
|
* @author Michael Reitler - Initial Contribution
|
||||||
*
|
*
|
||||||
@ -75,20 +74,19 @@ public class ConvertFromBindingTest extends BaseConverterTest {
|
|||||||
floatQuantityDp.setUnit("°C");
|
floatQuantityDp.setUnit("°C");
|
||||||
convertedState = temperatureConverter.convertFromBinding(floatQuantityDp);
|
convertedState = temperatureConverter.convertFromBinding(floatQuantityDp);
|
||||||
assertThat(convertedState, instanceOf(QuantityType.class));
|
assertThat(convertedState, instanceOf(QuantityType.class));
|
||||||
assertThat(((QuantityType<?>) convertedState).getDimension(), is(UnitDimension.TEMPERATURE));
|
assertThat(((QuantityType<?>) convertedState).getDimension(), is(equalTo(SIUnits.CELSIUS.getDimension())));
|
||||||
assertThat(((QuantityType<?>) convertedState).doubleValue(), is(10.5));
|
assertThat(((QuantityType<?>) convertedState).doubleValue(), is(10.5));
|
||||||
assertThat(((QuantityType<?>) convertedState).toUnit(ImperialUnits.FAHRENHEIT).doubleValue(), is(50.9));
|
assertThat(((QuantityType<?>) convertedState).toUnit(ImperialUnits.FAHRENHEIT).doubleValue(), is(50.9));
|
||||||
|
|
||||||
floatQuantityDp.setUnit("°C");
|
floatQuantityDp.setUnit("°C");
|
||||||
assertThat(((QuantityType<?>) convertedState).getDimension(), is(UnitDimension.TEMPERATURE));
|
assertThat(((QuantityType<?>) convertedState).getDimension(), is(equalTo(SIUnits.CELSIUS.getDimension())));
|
||||||
assertThat(((QuantityType<?>) convertedState).doubleValue(), is(10.5));
|
assertThat(((QuantityType<?>) convertedState).doubleValue(), is(10.5));
|
||||||
|
|
||||||
integerQuantityDp.setValue(50000);
|
integerQuantityDp.setValue(50000);
|
||||||
integerQuantityDp.setUnit("mHz");
|
integerQuantityDp.setUnit("mHz");
|
||||||
convertedState = frequencyConverter.convertFromBinding(integerQuantityDp);
|
convertedState = frequencyConverter.convertFromBinding(integerQuantityDp);
|
||||||
assertThat(convertedState, instanceOf(QuantityType.class));
|
assertThat(convertedState, instanceOf(QuantityType.class));
|
||||||
assertThat(((QuantityType<?>) convertedState).getDimension(),
|
assertThat(((QuantityType<?>) convertedState).getDimension(), is(equalTo(Units.HERTZ.getDimension())));
|
||||||
is(UnitDimension.NONE.divide(UnitDimension.TIME)));
|
|
||||||
assertThat(((QuantityType<?>) convertedState).intValue(), is(50000));
|
assertThat(((QuantityType<?>) convertedState).intValue(), is(50000));
|
||||||
assertThat(((QuantityType<?>) convertedState).toUnit(Units.HERTZ).intValue(), is(50));
|
assertThat(((QuantityType<?>) convertedState).toUnit(Units.HERTZ).intValue(), is(50));
|
||||||
|
|
||||||
@ -96,7 +94,7 @@ public class ConvertFromBindingTest extends BaseConverterTest {
|
|||||||
floatQuantityDp.setUnit("100%");
|
floatQuantityDp.setUnit("100%");
|
||||||
convertedState = timeConverter.convertFromBinding(floatQuantityDp);
|
convertedState = timeConverter.convertFromBinding(floatQuantityDp);
|
||||||
assertThat(convertedState, instanceOf(QuantityType.class));
|
assertThat(convertedState, instanceOf(QuantityType.class));
|
||||||
assertThat(((QuantityType<?>) convertedState).getDimension(), is(UnitDimension.NONE));
|
assertThat(((QuantityType<?>) convertedState).getDimension(), is(equalTo(Units.ONE.getDimension())));
|
||||||
assertThat(((QuantityType<?>) convertedState).doubleValue(), is(70.0));
|
assertThat(((QuantityType<?>) convertedState).doubleValue(), is(70.0));
|
||||||
assertThat(((QuantityType<?>) convertedState).getUnit(), is(Units.PERCENT));
|
assertThat(((QuantityType<?>) convertedState).getUnit(), is(Units.PERCENT));
|
||||||
assertThat(((QuantityType<?>) convertedState).toUnit(Units.ONE).doubleValue(), is(0.7));
|
assertThat(((QuantityType<?>) convertedState).toUnit(Units.ONE).doubleValue(), is(0.7));
|
||||||
|
|||||||
@ -17,15 +17,14 @@ import static org.hamcrest.MatcherAssert.assertThat;
|
|||||||
import static org.junit.jupiter.api.Assertions.assertThrows;
|
import static org.junit.jupiter.api.Assertions.assertThrows;
|
||||||
|
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
import org.openhab.binding.homematic.internal.converter.type.AbstractTypeConverter;
|
|
||||||
import org.openhab.binding.homematic.internal.converter.type.DecimalTypeConverter;
|
import org.openhab.binding.homematic.internal.converter.type.DecimalTypeConverter;
|
||||||
import org.openhab.binding.homematic.internal.converter.type.QuantityTypeConverter;
|
import org.openhab.binding.homematic.internal.converter.type.QuantityTypeConverter;
|
||||||
import org.openhab.binding.homematic.internal.model.HmDatapoint;
|
|
||||||
import org.openhab.core.library.types.DecimalType;
|
import org.openhab.core.library.types.DecimalType;
|
||||||
import org.openhab.core.library.types.QuantityType;
|
import org.openhab.core.library.types.QuantityType;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Tests for {@link AbstractTypeConverter#convertToBinding(org.openhab.core.types.Type, HmDatapoint)}.
|
* Tests for
|
||||||
|
* {@link org.openhab.binding.homematic.internal.converter.type.AbstractTypeConverter#convertToBinding(org.openhab.core.types.Type, HmDatapoint)}.
|
||||||
*
|
*
|
||||||
* @author Michael Reitler - Initial Contribution
|
* @author Michael Reitler - Initial Contribution
|
||||||
*
|
*
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user