Skip to content

Commit e2b267f

Browse files
authored
Merge pull request #86 from matchews/codex/implement-operationconfig-and-actionconfig-classes
Refactor operation parsing
2 parents 99ac4b3 + c432cec commit e2b267f

9 files changed

Lines changed: 138 additions & 250 deletions

File tree

Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
package org.openhab.binding.haywardomnilogiclocal.internal.config;
2+
3+
import java.util.ArrayList;
4+
import java.util.List;
5+
6+
import org.eclipse.jdt.annotation.NonNullByDefault;
7+
import org.eclipse.jdt.annotation.Nullable;
8+
9+
import com.thoughtworks.xstream.annotations.XStreamAlias;
10+
import com.thoughtworks.xstream.annotations.XStreamConverter;
11+
import com.thoughtworks.xstream.annotations.XStreamImplicit;
12+
import com.thoughtworks.xstream.converters.extended.ToAttributedValueConverter;
13+
14+
/**
15+
* Representation of an Action element.
16+
*/
17+
@NonNullByDefault
18+
@XStreamAlias("Action")
19+
@XStreamConverter(value = ToAttributedValueConverter.class, strings = "type")
20+
public class ActionConfig {
21+
private @Nullable String type;
22+
23+
@XStreamImplicit(itemFieldName = "Device")
24+
private final List<DeviceConfig> devices = new ArrayList<>();
25+
26+
@XStreamImplicit(itemFieldName = "Parameter")
27+
private final List<ParameterConfig> parameters = new ArrayList<>();
28+
29+
@XStreamImplicit(itemFieldName = "Operation")
30+
private final List<OperationConfig> operations = new ArrayList<>();
31+
32+
public @Nullable String getType() {
33+
return type;
34+
}
35+
36+
public List<DeviceConfig> getDevices() {
37+
return devices;
38+
}
39+
40+
public List<ParameterConfig> getParameters() {
41+
return parameters;
42+
}
43+
44+
public List<OperationConfig> getOperations() {
45+
return operations;
46+
}
47+
}

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

Lines changed: 0 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,6 @@
99
import com.thoughtworks.xstream.annotations.XStreamAlias;
1010
import com.thoughtworks.xstream.annotations.XStreamAsAttribute;
1111
import com.thoughtworks.xstream.annotations.XStreamImplicit;
12-
import com.thoughtworks.xstream.annotations.XStreamConverter;
13-
import com.thoughtworks.xstream.converters.extended.ToAttributedValueConverter;
1412

1513
/**
1614
* Representation of a Chlorinator element.
@@ -102,47 +100,5 @@ public List<OperationConfig> getOperations() {
102100
return operations;
103101
}
104102

105-
@NonNullByDefault
106-
@XStreamAlias("Operation")
107-
@XStreamConverter(value = ToAttributedValueConverter.class, strings = "type")
108-
public static class OperationConfig {
109-
private @Nullable String type;
110-
111-
@XStreamImplicit(itemFieldName = "Action")
112-
private final List<ActionConfig> actions = new ArrayList<>();
113-
114-
public @Nullable String getType() {
115-
return type;
116-
}
117-
118-
public List<ActionConfig> getActions() {
119-
return actions;
120-
}
121-
}
122-
123-
@NonNullByDefault
124-
@XStreamAlias("Action")
125-
@XStreamConverter(value = ToAttributedValueConverter.class, strings = "type")
126-
public static class ActionConfig {
127-
private @Nullable String type;
128-
129-
@XStreamImplicit(itemFieldName = "Device")
130-
private final List<DeviceConfig> devices = new ArrayList<>();
131-
132-
@XStreamImplicit(itemFieldName = "Parameter")
133-
private final List<ParameterConfig> parameters = new ArrayList<>();
134-
135-
public @Nullable String getType() {
136-
return type;
137-
}
138-
139-
public List<DeviceConfig> getDevices() {
140-
return devices;
141-
}
142-
143-
public List<ParameterConfig> getParameters() {
144-
return parameters;
145-
}
146-
}
147103
}
148104

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

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,10 +18,11 @@ public final class ConfigParser {
1818
XSTREAM.ignoreUnknownElements();
1919
XSTREAM.addPermission(AnyTypePermission.ANY);
2020
XSTREAM.processAnnotations(new Class<?>[] { MspConfig.class, SystemConfig.class, BackyardConfig.class,
21-
BodyOfWaterConfig.class, PumpConfig.class, FilterConfig.class, HeaterConfig.class, SensorConfig.class,
22-
VirtualHeaterConfig.class, ChlorinatorConfig.class, ColorLogicLightConfig.class, RelayConfig.class,
23-
SchedulesConfig.class, ScheduleConfig.class, ScheduleActionConfig.class, DeviceConfig.class,
24-
ParameterConfig.class, DmtConfig.class });
21+
BodyOfWaterConfig.class, PumpConfig.class, FilterConfig.class, HeaterConfig.class,
22+
HeaterConfig.HeaterEquipmentConfig.class, SensorConfig.class, VirtualHeaterConfig.class,
23+
ChlorinatorConfig.class, ColorLogicLightConfig.class, RelayConfig.class, OperationConfig.class,
24+
ActionConfig.class, SchedulesConfig.class, ScheduleConfig.class, ScheduleActionConfig.class,
25+
DeviceConfig.class, ParameterConfig.class, DmtConfig.class });
2526
}
2627

2728
private ConfigParser() {

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

Lines changed: 0 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,6 @@
99
import com.thoughtworks.xstream.annotations.XStreamAlias;
1010
import com.thoughtworks.xstream.annotations.XStreamAsAttribute;
1111
import com.thoughtworks.xstream.annotations.XStreamImplicit;
12-
import com.thoughtworks.xstream.annotations.XStreamConverter;
13-
import com.thoughtworks.xstream.converters.extended.ToAttributedValueConverter;
1412

1513
/**
1614
* Representation of a Filter element.
@@ -135,47 +133,5 @@ public List<OperationConfig> getOperations() {
135133
return operations;
136134
}
137135

138-
@NonNullByDefault
139-
@XStreamAlias("Operation")
140-
@XStreamConverter(value = ToAttributedValueConverter.class, strings = "type")
141-
public static class OperationConfig {
142-
private @Nullable String type;
143-
144-
@XStreamImplicit(itemFieldName = "Action")
145-
private final List<ActionConfig> actions = new ArrayList<>();
146-
147-
public @Nullable String getType() {
148-
return type;
149-
}
150-
151-
public List<ActionConfig> getActions() {
152-
return actions;
153-
}
154-
}
155-
156-
@NonNullByDefault
157-
@XStreamAlias("Action")
158-
@XStreamConverter(value = ToAttributedValueConverter.class, strings = "type")
159-
public static class ActionConfig {
160-
private @Nullable String type;
161-
162-
@XStreamImplicit(itemFieldName = "Device")
163-
private final List<DeviceConfig> devices = new ArrayList<>();
164-
165-
@XStreamImplicit(itemFieldName = "Parameter")
166-
private final List<ParameterConfig> parameters = new ArrayList<>();
167-
168-
public @Nullable String getType() {
169-
return type;
170-
}
171-
172-
public List<DeviceConfig> getDevices() {
173-
return devices;
174-
}
175-
176-
public List<ParameterConfig> getParameters() {
177-
return parameters;
178-
}
179-
}
180136
}
181137

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

Lines changed: 0 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,6 @@
99
import com.thoughtworks.xstream.annotations.XStreamAlias;
1010
import com.thoughtworks.xstream.annotations.XStreamAsAttribute;
1111
import com.thoughtworks.xstream.annotations.XStreamImplicit;
12-
import com.thoughtworks.xstream.annotations.XStreamConverter;
13-
import com.thoughtworks.xstream.converters.extended.ToAttributedValueConverter;
1412

1513
/**
1614
* Representation of a Heater element.
@@ -106,56 +104,6 @@ public List<OperationConfig> getOperations() {
106104
return operations;
107105
}
108106

109-
@NonNullByDefault
110-
@XStreamAlias("Operation")
111-
@XStreamConverter(value = ToAttributedValueConverter.class, strings = "type")
112-
public static class OperationConfig {
113-
private @Nullable String type;
114-
115-
@XStreamImplicit(itemFieldName = "Action")
116-
private final List<ActionConfig> actions = new ArrayList<>();
117-
118-
@XStreamImplicit(itemFieldName = "Heater-Equipment")
119-
private final List<HeaterEquipmentConfig> heaterEquipment = new ArrayList<>();
120-
121-
public @Nullable String getType() {
122-
return type;
123-
}
124-
125-
public List<ActionConfig> getActions() {
126-
return actions;
127-
}
128-
129-
public List<HeaterEquipmentConfig> getHeaterEquipment() {
130-
return heaterEquipment;
131-
}
132-
}
133-
134-
@NonNullByDefault
135-
@XStreamAlias("Action")
136-
@XStreamConverter(value = ToAttributedValueConverter.class, strings = "type")
137-
public static class ActionConfig {
138-
private @Nullable String type;
139-
140-
@XStreamImplicit(itemFieldName = "Device")
141-
private final List<DeviceConfig> devices = new ArrayList<>();
142-
143-
@XStreamImplicit(itemFieldName = "Parameter")
144-
private final List<ParameterConfig> parameters = new ArrayList<>();
145-
146-
public @Nullable String getType() {
147-
return type;
148-
}
149-
150-
public List<DeviceConfig> getDevices() {
151-
return devices;
152-
}
153-
154-
public List<ParameterConfig> getParameters() {
155-
return parameters;
156-
}
157-
}
158-
159107
@NonNullByDefault
160108
@XStreamAlias("Heater-Equipment")
161109
public static class HeaterEquipmentConfig {
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
package org.openhab.binding.haywardomnilogiclocal.internal.config;
2+
3+
import java.util.ArrayList;
4+
import java.util.List;
5+
6+
import org.eclipse.jdt.annotation.NonNullByDefault;
7+
import org.eclipse.jdt.annotation.Nullable;
8+
9+
import org.openhab.binding.haywardomnilogiclocal.internal.config.HeaterConfig.HeaterEquipmentConfig;
10+
11+
import com.thoughtworks.xstream.annotations.XStreamAlias;
12+
import com.thoughtworks.xstream.annotations.XStreamConverter;
13+
import com.thoughtworks.xstream.annotations.XStreamImplicit;
14+
import com.thoughtworks.xstream.converters.extended.ToAttributedValueConverter;
15+
16+
/**
17+
* Representation of an Operation element.
18+
*/
19+
@NonNullByDefault
20+
@XStreamAlias("Operation")
21+
@XStreamConverter(value = ToAttributedValueConverter.class, strings = "type")
22+
public class OperationConfig {
23+
private @Nullable String type;
24+
25+
@XStreamImplicit(itemFieldName = "Action")
26+
private final List<ActionConfig> actions = new ArrayList<>();
27+
28+
@XStreamImplicit(itemFieldName = "Operation")
29+
private final List<OperationConfig> operations = new ArrayList<>();
30+
31+
@XStreamImplicit(itemFieldName = "Parameter")
32+
private final List<ParameterConfig> parameters = new ArrayList<>();
33+
34+
@XStreamImplicit(itemFieldName = "Heater-Equipment")
35+
private final List<HeaterEquipmentConfig> heaterEquipment = new ArrayList<>();
36+
37+
public @Nullable String getType() {
38+
return type;
39+
}
40+
41+
public List<ActionConfig> getActions() {
42+
return actions;
43+
}
44+
45+
public List<OperationConfig> getOperations() {
46+
return operations;
47+
}
48+
49+
public List<ParameterConfig> getParameters() {
50+
return parameters;
51+
}
52+
53+
public List<HeaterEquipmentConfig> getHeaterEquipment() {
54+
return heaterEquipment;
55+
}
56+
}

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

Lines changed: 0 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,6 @@
99
import com.thoughtworks.xstream.annotations.XStreamAlias;
1010
import com.thoughtworks.xstream.annotations.XStreamAsAttribute;
1111
import com.thoughtworks.xstream.annotations.XStreamImplicit;
12-
import com.thoughtworks.xstream.annotations.XStreamConverter;
13-
import com.thoughtworks.xstream.converters.extended.ToAttributedValueConverter;
1412

1513
/**
1614
* Representation of a Pump element.
@@ -122,47 +120,5 @@ public List<OperationConfig> getOperations() {
122120
return operations;
123121
}
124122

125-
@NonNullByDefault
126-
@XStreamAlias("Operation")
127-
@XStreamConverter(value = ToAttributedValueConverter.class, strings = "type")
128-
public static class OperationConfig {
129-
private @Nullable String type;
130-
131-
@XStreamImplicit(itemFieldName = "Action")
132-
private final List<ActionConfig> actions = new ArrayList<>();
133-
134-
public @Nullable String getType() {
135-
return type;
136-
}
137-
138-
public List<ActionConfig> getActions() {
139-
return actions;
140-
}
141-
}
142-
143-
@NonNullByDefault
144-
@XStreamAlias("Action")
145-
@XStreamConverter(value = ToAttributedValueConverter.class, strings = "type")
146-
public static class ActionConfig {
147-
private @Nullable String type;
148-
149-
@XStreamImplicit(itemFieldName = "Device")
150-
private final List<DeviceConfig> devices = new ArrayList<>();
151-
152-
@XStreamImplicit(itemFieldName = "Parameter")
153-
private final List<ParameterConfig> parameters = new ArrayList<>();
154-
155-
public @Nullable String getType() {
156-
return type;
157-
}
158-
159-
public List<DeviceConfig> getDevices() {
160-
return devices;
161-
}
162-
163-
public List<ParameterConfig> getParameters() {
164-
return parameters;
165-
}
166-
}
167123
}
168124

0 commit comments

Comments
 (0)