Skip to content

Commit 4946aa9

Browse files
authored
[monopriceaudio] Fix compiler warnings and code improvements (openhab#16991)
* Fix compiler warnings and code improvements Signed-off-by: Michael Lobstein <[email protected]>
1 parent f9c8d04 commit 4946aa9

File tree

6 files changed

+228
-265
lines changed

6 files changed

+228
-265
lines changed

bundles/org.openhab.binding.monopriceaudio/src/main/java/org/openhab/binding/monopriceaudio/internal/communication/AmplifierModel.java

+39-50
Original file line numberDiff line numberDiff line change
@@ -12,11 +12,13 @@
1212
*/
1313
package org.openhab.binding.monopriceaudio.internal.communication;
1414

15+
import java.util.Collections;
1516
import java.util.HashMap;
1617
import java.util.List;
1718
import java.util.Map;
1819
import java.util.regex.Matcher;
1920
import java.util.regex.Pattern;
21+
import java.util.stream.IntStream;
2022

2123
import org.eclipse.jdt.annotation.NonNullByDefault;
2224
import org.openhab.binding.monopriceaudio.internal.configuration.MonopriceAudioThingConfiguration;
@@ -82,7 +84,7 @@ public List<StateOption> getSourceLabels(MonopriceAudioThingConfiguration config
8284
2, false, List.of("1", "2", "3", "4", "5", "6")) {
8385
@Override
8486
public MonopriceAudioZoneDTO getZoneData(String newZoneData) {
85-
MonopriceAudioZoneDTO zoneData = new MonopriceAudioZoneDTO();
87+
final MonopriceAudioZoneDTO zoneData = new MonopriceAudioZoneDTO();
8688

8789
Matcher matcher = MONOPRICE70_PATTERN.matcher(newZoneData);
8890
if (matcher.find()) {
@@ -127,8 +129,8 @@ public List<StateOption> getSourceLabels(MonopriceAudioThingConfiguration config
127129
false, List.of("1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16")) {
128130
@Override
129131
public MonopriceAudioZoneDTO getZoneData(String newZoneData) {
130-
MonopriceAudioZoneDTO zoneData = new MonopriceAudioZoneDTO();
131-
Matcher matcher = XANTECH_PATTERN.matcher(newZoneData);
132+
final MonopriceAudioZoneDTO zoneData = new MonopriceAudioZoneDTO();
133+
final Matcher matcher = XANTECH_PATTERN.matcher(newZoneData);
132134

133135
if (matcher.find()) {
134136
zoneData.setZone(matcher.group(1));
@@ -156,8 +158,8 @@ public List<StateOption> getSourceLabels(MonopriceAudioThingConfiguration config
156158

157159
// Used by 10761/DAX66 and DAX88
158160
private static MonopriceAudioZoneDTO getMonopriceZoneData(String newZoneData) {
159-
MonopriceAudioZoneDTO zoneData = new MonopriceAudioZoneDTO();
160-
Matcher matcher = MONOPRICE_PATTERN.matcher(newZoneData);
161+
final MonopriceAudioZoneDTO zoneData = new MonopriceAudioZoneDTO();
162+
final Matcher matcher = MONOPRICE_PATTERN.matcher(newZoneData);
161163

162164
if (matcher.find()) {
163165
zoneData.setZone(matcher.group(1));
@@ -191,31 +193,31 @@ private static MonopriceAudioZoneDTO getMonopriceZoneData(String newZoneData) {
191193
private static final Pattern XANTECH_PATTERN = Pattern.compile(
192194
"^#(\\d{1,2})ZS PR(\\d{1}) SS(\\d{1}) VO(\\d{1,2}) MU(\\d{1}) TR(\\d{1,2}) BS(\\d{1,2}) BA(\\d{1,2}) LS(\\d{1}) PS(\\d{1})+");
193195

194-
private String cmdPrefix;
195-
private String cmdSuffix;
196-
private String queryPrefix;
197-
private String querySuffix;
198-
private String respPrefix;
199-
private String powerCmd;
200-
private String sourceCmd;
201-
private String volumeCmd;
202-
private String muteCmd;
203-
private String trebleCmd;
204-
private String bassCmd;
205-
private String balanceCmd;
206-
private String dndCmd;
207-
private int maxVol;
208-
private int minTone;
209-
private int maxTone;
210-
private int toneOffset;
211-
private int minBal;
212-
private int maxBal;
213-
private int balOffset;
214-
private int maxZones;
215-
private int numSources;
216-
private boolean padNumbers;
217-
private List<String> zoneIds;
218-
private Map<String, String> zoneIdMap = new HashMap<>();
196+
private final String cmdPrefix;
197+
private final String cmdSuffix;
198+
private final String queryPrefix;
199+
private final String querySuffix;
200+
private final String respPrefix;
201+
private final String powerCmd;
202+
private final String sourceCmd;
203+
private final String volumeCmd;
204+
private final String muteCmd;
205+
private final String trebleCmd;
206+
private final String bassCmd;
207+
private final String balanceCmd;
208+
private final String dndCmd;
209+
private final int maxVol;
210+
private final int minTone;
211+
private final int maxTone;
212+
private final int toneOffset;
213+
private final int minBal;
214+
private final int maxBal;
215+
private final int balOffset;
216+
private final int maxZones;
217+
private final int numSources;
218+
private final boolean padNumbers;
219+
private final List<String> zoneIds;
220+
private final Map<String, String> zoneIdMap;
219221

220222
private static final String ON_STR = "1";
221223
private static final String OFF_STR = "0";
@@ -256,11 +258,10 @@ private static MonopriceAudioZoneDTO getMonopriceZoneData(String newZoneData) {
256258
this.padNumbers = padNumbers;
257259
this.zoneIds = zoneIds;
258260

259-
int i = 1;
260-
for (String zoneId : zoneIds) {
261-
zoneIdMap.put(zoneId, "zone" + i);
262-
i++;
263-
}
261+
// Build a map between the amp's physical zone IDs and the thing's logical zone names
262+
final Map<String, String> zoneIdMap = new HashMap<>();
263+
IntStream.range(0, zoneIds.size()).forEach(i -> zoneIdMap.put(zoneIds.get(i), "zone" + (i + 1)));
264+
this.zoneIdMap = Collections.unmodifiableMap(zoneIdMap);
264265
}
265266

266267
public abstract MonopriceAudioZoneDTO getZoneData(String newZoneData);
@@ -378,26 +379,14 @@ public List<String> getZoneIds() {
378379
}
379380

380381
public String getFormattedValue(Integer value) {
381-
if (padNumbers) {
382-
return String.format("%02d", value);
383-
} else {
384-
return value.toString();
385-
}
382+
return padNumbers ? String.format("%02d", value) : value.toString();
386383
}
387384

388385
public String getOnStr() {
389-
if (padNumbers) {
390-
return ON_STR_PAD;
391-
} else {
392-
return ON_STR;
393-
}
386+
return padNumbers ? ON_STR_PAD : ON_STR;
394387
}
395388

396389
public String getOffStr() {
397-
if (padNumbers) {
398-
return OFF_STR_PAD;
399-
} else {
400-
return OFF_STR;
401-
}
390+
return padNumbers ? OFF_STR_PAD : OFF_STR;
402391
}
403392
}

bundles/org.openhab.binding.monopriceaudio/src/main/java/org/openhab/binding/monopriceaudio/internal/communication/MonopriceAudioConnector.java

+2-11
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ public abstract class MonopriceAudioConnector {
5252
private boolean connected;
5353
private boolean pingResponseOnly;
5454

55-
private @Nullable AmplifierModel amp;
55+
protected AmplifierModel amp = AmplifierModel.MONOPRICE;
5656

5757
private @Nullable Thread readerThread;
5858

@@ -77,15 +77,6 @@ protected void setConnected(boolean connected) {
7777
this.pingResponseOnly = false;
7878
}
7979

80-
/**
81-
* Set the AmplifierModel
82-
*
83-
* @param amp the AmplifierModel being used
84-
*/
85-
protected void setAmplifierModel(AmplifierModel amp) {
86-
this.amp = amp;
87-
}
88-
8980
/**
9081
* Set the thread that handles the feedback messages
9182
*
@@ -177,7 +168,7 @@ protected int readInput(byte[] dataBuffer) throws MonopriceAudioException {
177168
public void sendPing() throws MonopriceAudioException {
178169
pingResponseOnly = true;
179170
// poll zone 1 status only to see if the amp responds
180-
queryZone(amp.getZoneIds().get(0));
171+
queryZone(amp.getZoneIds().iterator().next());
181172
}
182173

183174
/**

bundles/org.openhab.binding.monopriceaudio/src/main/java/org/openhab/binding/monopriceaudio/internal/communication/MonopriceAudioDefaultConnector.java

-50
This file was deleted.

bundles/org.openhab.binding.monopriceaudio/src/main/java/org/openhab/binding/monopriceaudio/internal/communication/MonopriceAudioIpConnector.java

+10-1
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,16 @@ public MonopriceAudioIpConnector(@Nullable String address, int port, String uid,
5454
this.address = address;
5555
this.port = port;
5656
this.uid = uid;
57-
setAmplifierModel(amp);
57+
super.amp = amp;
58+
}
59+
60+
/**
61+
* Default constructor for temporary connector object that gets replaced during initialize()
62+
*/
63+
public MonopriceAudioIpConnector() {
64+
this.address = "";
65+
this.port = -1;
66+
this.uid = "";
5867
}
5968

6069
@Override

bundles/org.openhab.binding.monopriceaudio/src/main/java/org/openhab/binding/monopriceaudio/internal/communication/MonopriceAudioSerialConnector.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ public MonopriceAudioSerialConnector(SerialPortManager serialPortManager, String
5858
this.serialPortManager = serialPortManager;
5959
this.serialPortName = serialPortName;
6060
this.uid = uid;
61-
setAmplifierModel(amp);
61+
super.amp = amp;
6262
}
6363

6464
@Override

0 commit comments

Comments
 (0)