Skip to content

Commit 3fbc49d

Browse files
authored
Merge pull request #83 from matchews/codex/modify-bodyofwaterconfig.java-with-new-fields
Refine body of water parsing and discovery
2 parents b27d354 + 8fae2cd commit 3fbc49d

5 files changed

Lines changed: 454 additions & 183 deletions

File tree

bundles/org.openhab.binding.haywardomnilogiclocal/src/main/java/org/openhab/binding/haywardomnilogiclocal/internal/config/BackyardConfig.java

Lines changed: 0 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -42,27 +42,9 @@ public class BackyardConfig {
4242
@XStreamImplicit(itemFieldName = "Pump")
4343
private final List<PumpConfig> pumps = new ArrayList<>();
4444

45-
@XStreamImplicit(itemFieldName = "Filter")
46-
private final List<FilterConfig> filters = new ArrayList<>();
47-
48-
@XStreamImplicit(itemFieldName = "Heater")
49-
private final List<HeaterConfig> heaters = new ArrayList<>();
50-
5145
@XStreamImplicit(itemFieldName = "VirtualHeater")
5246
private final List<VirtualHeaterConfig> virtualHeaters = new ArrayList<>();
5347

54-
@XStreamImplicit(itemFieldName = "Chlorinator")
55-
private final List<ChlorinatorConfig> chlorinators = new ArrayList<>();
56-
57-
@XStreamImplicit(itemFieldName = "ColorLogic-Light")
58-
private final List<ColorLogicLightConfig> colorLogicLights = new ArrayList<>();
59-
60-
@XStreamImplicit(itemFieldName = "Relay")
61-
private final List<RelayConfig> relays = new ArrayList<>();
62-
63-
@XStreamImplicit(itemFieldName = "Sensor")
64-
private final List<SensorConfig> sensors = new ArrayList<>();
65-
6648
public @Nullable String getSystemId() {
6749
return systemId != null ? systemId : systemIdElement;
6850
}
@@ -83,32 +65,8 @@ public List<PumpConfig> getPumps() {
8365
return pumps;
8466
}
8567

86-
public List<FilterConfig> getFilters() {
87-
return filters;
88-
}
89-
90-
public List<HeaterConfig> getHeaters() {
91-
return heaters;
92-
}
93-
9468
public List<VirtualHeaterConfig> getVirtualHeaters() {
9569
return virtualHeaters;
9670
}
97-
98-
public List<ChlorinatorConfig> getChlorinators() {
99-
return chlorinators;
100-
}
101-
102-
public List<ColorLogicLightConfig> getColorLogicLights() {
103-
return colorLogicLights;
104-
}
105-
106-
public List<RelayConfig> getRelays() {
107-
return relays;
108-
}
109-
110-
public List<SensorConfig> getSensors() {
111-
return sensors;
112-
}
11371
}
11472

bundles/org.openhab.binding.haywardomnilogiclocal/src/main/java/org/openhab/binding/haywardomnilogiclocal/internal/config/BodyOfWaterConfig.java

Lines changed: 229 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,14 @@
11
package org.openhab.binding.haywardomnilogiclocal.internal.config;
22

3+
import java.util.ArrayList;
4+
import java.util.List;
5+
36
import org.eclipse.jdt.annotation.NonNullByDefault;
47
import org.eclipse.jdt.annotation.Nullable;
58

69
import com.thoughtworks.xstream.annotations.XStreamAlias;
710
import com.thoughtworks.xstream.annotations.XStreamAsAttribute;
11+
import com.thoughtworks.xstream.annotations.XStreamImplicit;
812

913
/**
1014
* Representation of a BodyOfWater element.
@@ -16,8 +20,232 @@ public class BodyOfWaterConfig {
1620
@XStreamAlias("systemId")
1721
private @Nullable String systemId;
1822

23+
@XStreamAlias("System-Id")
24+
private @Nullable String systemIdElement;
25+
26+
@XStreamAsAttribute
27+
private @Nullable String name;
28+
29+
@XStreamAlias("Name")
30+
private @Nullable String nameElement;
31+
32+
@XStreamAsAttribute
33+
private @Nullable String type;
34+
35+
@XStreamAlias("Type")
36+
private @Nullable String typeElement;
37+
38+
@XStreamAsAttribute
39+
@XStreamAlias("sharedType")
40+
private @Nullable String sharedTypeAttribute;
41+
42+
@XStreamAlias("Shared-Type")
43+
private @Nullable String sharedTypeElement;
44+
45+
@XStreamAsAttribute
46+
@XStreamAlias("sharedPriority")
47+
private @Nullable String sharedPriorityAttribute;
48+
49+
@XStreamAlias("Shared-Priority")
50+
private @Nullable String sharedPriorityElement;
51+
52+
@XStreamAsAttribute
53+
@XStreamAlias("sharedEquipmentSystemId")
54+
private @Nullable String sharedEquipmentSystemIdAttribute;
55+
56+
@XStreamAlias("Shared-Equipment-System-ID")
57+
private @Nullable String sharedEquipmentSystemIdElement;
58+
59+
@XStreamAsAttribute
60+
@XStreamAlias("supportsSpillover")
61+
private @Nullable String supportsSpilloverAttribute;
62+
63+
@XStreamAlias("Supports-Spillover")
64+
private @Nullable String supportsSpilloverElement;
65+
66+
@XStreamAsAttribute
67+
@XStreamAlias("useSpilloverForFilterOperations")
68+
private @Nullable String useSpilloverForFilterOperationsAttribute;
69+
70+
@XStreamAlias("Use-Spillover-For-Filter-Operations")
71+
private @Nullable String useSpilloverForFilterOperationsElement;
72+
73+
@XStreamAsAttribute
74+
@XStreamAlias("spilloverMode")
75+
private @Nullable String spilloverModeAttribute;
76+
77+
@XStreamAlias("Spillover-Mode")
78+
private @Nullable String spilloverModeElement;
79+
80+
@XStreamAsAttribute
81+
@XStreamAlias("spilloverManualTimeout")
82+
private @Nullable String spilloverManualTimeoutAttribute;
83+
84+
@XStreamAlias("Spillover-Manual-Timeout")
85+
private @Nullable String spilloverManualTimeoutElement;
86+
87+
@XStreamAsAttribute
88+
@XStreamAlias("spilloverTimedPercent")
89+
private @Nullable String spilloverTimedPercentAttribute;
90+
91+
@XStreamAlias("Spillover-Timed-Percent")
92+
private @Nullable String spilloverTimedPercentElement;
93+
94+
@XStreamAsAttribute
95+
@XStreamAlias("spilloverTimedTimeout")
96+
private @Nullable String spilloverTimedTimeoutAttribute;
97+
98+
@XStreamAlias("Spillover-Timed-Timeout")
99+
private @Nullable String spilloverTimedTimeoutElement;
100+
101+
@XStreamAsAttribute
102+
@XStreamAlias("freezeProtectEnabled")
103+
private @Nullable String freezeProtectEnabledAttribute;
104+
105+
@XStreamAlias("Freeze-Protect-Enabled")
106+
private @Nullable String freezeProtectEnabledElement;
107+
108+
@XStreamAsAttribute
109+
@XStreamAlias("freezeProtectOverride")
110+
private @Nullable String freezeProtectOverrideAttribute;
111+
112+
@XStreamAlias("Freeze-Protect-Override")
113+
private @Nullable String freezeProtectOverrideElement;
114+
115+
@XStreamAsAttribute
116+
@XStreamAlias("freezeProtectSetPoint")
117+
private @Nullable String freezeProtectSetPointAttribute;
118+
119+
@XStreamAlias("Freeze-Protect-Set-Point")
120+
private @Nullable String freezeProtectSetPointElement;
121+
122+
@XStreamAsAttribute
123+
@XStreamAlias("sizeInGallons")
124+
private @Nullable String sizeInGallonsAttribute;
125+
126+
@XStreamAlias("Size-In-Gallons")
127+
private @Nullable String sizeInGallonsElement;
128+
129+
@XStreamAsAttribute
130+
@XStreamAlias("sizeInLiters")
131+
private @Nullable String sizeInLitersAttribute;
132+
133+
@XStreamAlias("Size-In-Liters")
134+
private @Nullable String sizeInLitersElement;
135+
136+
@XStreamImplicit(itemFieldName = "Filter")
137+
private final List<FilterConfig> filters = new ArrayList<>();
138+
139+
@XStreamImplicit(itemFieldName = "Heater")
140+
private final List<HeaterConfig> heaters = new ArrayList<>();
141+
142+
@XStreamImplicit(itemFieldName = "Relay")
143+
private final List<RelayConfig> relays = new ArrayList<>();
144+
145+
@XStreamImplicit(itemFieldName = "ColorLogic-Light")
146+
private final List<ColorLogicLightConfig> colorLogicLights = new ArrayList<>();
147+
148+
@XStreamImplicit(itemFieldName = "Sensor")
149+
private final List<SensorConfig> sensors = new ArrayList<>();
150+
151+
@XStreamImplicit(itemFieldName = "Chlorinator")
152+
private final List<ChlorinatorConfig> chlorinators = new ArrayList<>();
153+
19154
public @Nullable String getSystemId() {
20-
return systemId;
155+
return systemId != null ? systemId : systemIdElement;
156+
}
157+
158+
public @Nullable String getName() {
159+
return name != null ? name : nameElement;
160+
}
161+
162+
public @Nullable String getType() {
163+
return type != null ? type : typeElement;
164+
}
165+
166+
public @Nullable String getSharedType() {
167+
return sharedTypeAttribute != null ? sharedTypeAttribute : sharedTypeElement;
168+
}
169+
170+
public @Nullable String getSharedPriority() {
171+
return sharedPriorityAttribute != null ? sharedPriorityAttribute : sharedPriorityElement;
172+
}
173+
174+
public @Nullable String getSharedEquipmentSystemId() {
175+
return sharedEquipmentSystemIdAttribute != null ? sharedEquipmentSystemIdAttribute
176+
: sharedEquipmentSystemIdElement;
177+
}
178+
179+
public @Nullable String getSupportsSpillover() {
180+
return supportsSpilloverAttribute != null ? supportsSpilloverAttribute : supportsSpilloverElement;
181+
}
182+
183+
public @Nullable String getUseSpilloverForFilterOperations() {
184+
return useSpilloverForFilterOperationsAttribute != null ? useSpilloverForFilterOperationsAttribute
185+
: useSpilloverForFilterOperationsElement;
186+
}
187+
188+
public @Nullable String getSpilloverMode() {
189+
return spilloverModeAttribute != null ? spilloverModeAttribute : spilloverModeElement;
190+
}
191+
192+
public @Nullable String getSpilloverManualTimeout() {
193+
return spilloverManualTimeoutAttribute != null ? spilloverManualTimeoutAttribute
194+
: spilloverManualTimeoutElement;
195+
}
196+
197+
public @Nullable String getSpilloverTimedPercent() {
198+
return spilloverTimedPercentAttribute != null ? spilloverTimedPercentAttribute
199+
: spilloverTimedPercentElement;
200+
}
201+
202+
public @Nullable String getSpilloverTimedTimeout() {
203+
return spilloverTimedTimeoutAttribute != null ? spilloverTimedTimeoutAttribute
204+
: spilloverTimedTimeoutElement;
205+
}
206+
207+
public @Nullable String getFreezeProtectEnabled() {
208+
return freezeProtectEnabledAttribute != null ? freezeProtectEnabledAttribute : freezeProtectEnabledElement;
209+
}
210+
211+
public @Nullable String getFreezeProtectOverride() {
212+
return freezeProtectOverrideAttribute != null ? freezeProtectOverrideAttribute : freezeProtectOverrideElement;
213+
}
214+
215+
public @Nullable String getFreezeProtectSetPoint() {
216+
return freezeProtectSetPointAttribute != null ? freezeProtectSetPointAttribute : freezeProtectSetPointElement;
217+
}
218+
219+
public @Nullable String getSizeInGallons() {
220+
return sizeInGallonsAttribute != null ? sizeInGallonsAttribute : sizeInGallonsElement;
221+
}
222+
223+
public @Nullable String getSizeInLiters() {
224+
return sizeInLitersAttribute != null ? sizeInLitersAttribute : sizeInLitersElement;
225+
}
226+
227+
public List<FilterConfig> getFilters() {
228+
return filters;
229+
}
230+
231+
public List<HeaterConfig> getHeaters() {
232+
return heaters;
233+
}
234+
235+
public List<RelayConfig> getRelays() {
236+
return relays;
237+
}
238+
239+
public List<ColorLogicLightConfig> getColorLogicLights() {
240+
return colorLogicLights;
241+
}
242+
243+
public List<SensorConfig> getSensors() {
244+
return sensors;
245+
}
246+
247+
public List<ChlorinatorConfig> getChlorinators() {
248+
return chlorinators;
21249
}
22250
}
23251

0 commit comments

Comments
 (0)