Skip to content

Commit 4c2b469

Browse files
committed
Review comments
Signed-off-by: Leo Siepel <leosiepel@gmail.com>
1 parent 4f25329 commit 4c2b469

6 files changed

Lines changed: 17 additions & 32 deletions

File tree

bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/converter/type/AbstractTypeConverter.java

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -74,11 +74,12 @@ protected boolean isStateInvertDatapoint(HmDatapoint dp) {
7474
/**
7575
* Rounds a double value.
7676
*/
77-
protected BigDecimal round(@Nullable Double number) {
78-
BigDecimal bd = new BigDecimal(number == null ? "0" : number.toString());
79-
String stringBd = bd.toPlainString();
80-
int scale = stringBd.length() - (stringBd.lastIndexOf('.') + 1);
81-
return bd.setScale(scale > 2 ? 6 : 2, RoundingMode.HALF_UP);
77+
protected BigDecimal round(double number) {
78+
BigDecimal bd = new BigDecimal(Double.toString(number));
79+
int scale = bd.scale();
80+
final int maxScale = 6;
81+
final int minScale = 2;
82+
return bd.setScale(scale > minScale ? maxScale : minScale, RoundingMode.HALF_UP);
8283
}
8384

8485
@SuppressWarnings("unchecked")

bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/converter/type/PercentTypeConverter.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ protected boolean toBindingValidation(HmDatapoint dp, Class<? extends Type> type
7373
@Override
7474
protected Object toBinding(PercentType type, HmDatapoint dp) throws ConverterException {
7575
double maxValue = getCorrectedMaxValue(dp);
76-
Double number = (type.doubleValue() / 100) * maxValue;
76+
double number = (type.doubleValue() / 100) * maxValue;
7777

7878
if (MetadataUtils.isRollerShutter(dp)) {
7979
if (PercentType.HUNDRED.equals(type)) { // means DOWN
@@ -88,7 +88,7 @@ protected Object toBinding(PercentType type, HmDatapoint dp) throws ConverterExc
8888
number = number < 0.0 ? 0.0 : 100.0;
8989
}
9090
if (dp.isIntegerType()) {
91-
return number.intValue();
91+
return (int) Math.round(number);
9292
}
9393
return round(number).doubleValue();
9494
}

bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/handler/HomematicThingHandler.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -661,7 +661,6 @@ public void handleConfigurationUpdate(Map<String, Object> configurationParameter
661661
}
662662
}
663663

664-
@SuppressWarnings("null")
665664
@Override
666665
public synchronized void handleRemoval() {
667666
final Bridge bridge;

bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/model/HmDatapoint.java

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -175,9 +175,6 @@ public int getOptionIndex(@Nullable String option) {
175175

176176
public @Nullable Integer getIntegerValue() {
177177
Object value = this.value;
178-
if (value instanceof Integer intValue) {
179-
return intValue;
180-
}
181178
if (value instanceof Number numberValue) {
182179
return numberValue.intValue();
183180
}
@@ -470,12 +467,13 @@ public HmDatapoint clone() {
470467

471468
@Override
472469
public String toString() {
473-
String[] options = Objects.requireNonNullElse(this.options, new String[0]);
470+
String @Nullable [] options = this.options;
474471
return String.format("""
475472
%s[name=%s,value=%s,defaultValue=%s,type=%s,minValue=%s,maxValue=%s,specialValues=%s,options=%s,\
476473
readOnly=%b,readable=%b,unit=%s,description=%s,info=%s,paramsetType=%s,virtual=%b,trigger=%b]\
477474
""", getClass().getSimpleName(), name, value, defaultValue, type, minValue, maxValue, specialValues,
478-
String.join(";", options), readOnly, readable, unit, description, info, paramsetType, virtual, trigger);
475+
(options == null ? null : String.join(";", options)), readOnly, readable, unit, description, info,
476+
paramsetType, virtual, trigger);
479477
}
480478

481479
private String sanitizeName(String name) {

bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/model/HmRssiInfo.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ public HmRssiInfo(String address, Integer device, Integer peer) {
3737
*/
3838
private int convert(Integer intValue) {
3939
if (intValue == 65536) {
40+
return 0;
4041
}
4142
return intValue;
4243
}

bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/type/MetadataUtils.java

Lines changed: 5 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -78,25 +78,11 @@ private static void loadStandardDatapoints() {
7878
try (InputStream stream = bundle.getResource("homematic/standard-datapoints.properties").openStream();
7979
BufferedReader reader = new BufferedReader(new InputStreamReader(stream))) {
8080
String line;
81-
int lineNumber = 0;
8281
while ((line = reader.readLine()) != null) {
83-
lineNumber++;
84-
if (!line.trim().isEmpty() && !line.startsWith("#")) {
82+
if (!line.isBlank() && !line.startsWith("#")) {
8583
String[] parts = line.split("\\|");
86-
String channelType = null;
87-
String datapointName = null;
88-
if (parts.length > 0) {
89-
channelType = parts[0].trim();
90-
if (parts.length > 1) {
91-
datapointName = parts[1].trim();
92-
}
93-
}
94-
95-
if (channelType == null || channelType.isEmpty() || datapointName == null
96-
|| datapointName.isEmpty()) {
97-
throw new IllegalStateException(
98-
String.format("Malformed standard datapoint entry at line %d: %s", lineNumber, line));
99-
}
84+
String channelType = parts[0].trim();
85+
String datapointName = parts.length > 1 ? parts[1].trim() : null;
10086

10187
Set<@Nullable String> channelDatapoints = standardDatapoints.get(channelType);
10288
if (channelDatapoints == null) {
@@ -107,8 +93,8 @@ private static void loadStandardDatapoints() {
10793
channelDatapoints.add(datapointName);
10894
}
10995
}
110-
} catch (IOException e) {
111-
throw new IllegalStateException("Can't load standard-datapoints.properties file!", e);
96+
} catch (IllegalStateException | IOException e) {
97+
throw new IllegalStateException("Cannot load standard-datapoints.properties file!", e);
11298
}
11399
}
114100

0 commit comments

Comments
 (0)