Skip to content

Commit 8eaf84f

Browse files
committed
refactor ChargePointSelect to use OcppProtocol
this DTO should include the protocol which contains transport and version info. this would enable to unify some logic wrt. Invoker and Client classes.
1 parent 415e1d5 commit 8eaf84f

File tree

7 files changed

+23
-11
lines changed

7 files changed

+23
-11
lines changed

src/main/java/de/rwth/idsg/steve/ocpp/OcppProtocol.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,4 +65,13 @@ public static OcppProtocol fromCompositeValue(String v) {
6565
}
6666
throw new IllegalArgumentException(v);
6767
}
68+
69+
public static OcppProtocol from(OcppVersion version, OcppTransport transport) {
70+
for (OcppProtocol value : OcppProtocol.values()) {
71+
if (value.getVersion() == version && value.getTransport() == transport) {
72+
return value;
73+
}
74+
}
75+
throw new IllegalArgumentException("Could not find OcppProtocol for " + version + " and " + transport);
76+
}
6877
}

src/main/java/de/rwth/idsg/steve/repository/dto/ChargePointSelect.java

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
*/
1919
package de.rwth.idsg.steve.repository.dto;
2020

21+
import de.rwth.idsg.steve.ocpp.OcppProtocol;
2122
import de.rwth.idsg.steve.ocpp.OcppTransport;
2223
import lombok.Getter;
2324
import lombok.RequiredArgsConstructor;
@@ -29,21 +30,21 @@
2930
@RequiredArgsConstructor
3031
@Getter
3132
public final class ChargePointSelect {
32-
private final OcppTransport ocppTransport;
33+
private final OcppProtocol ocppProtocol;
3334
private final String chargeBoxId;
3435
private final String endpointAddress;
3536

36-
public ChargePointSelect(OcppTransport ocppTransport, String chargeBoxId) {
37+
public ChargePointSelect(OcppProtocol ocppProtocol, String chargeBoxId) {
3738
// Provide a non-null value (or placeholder if you will) to frontend for JSON charge points.
3839
// This is clearly a hack. Not my proudest moment.
39-
this(ocppTransport, chargeBoxId, "-");
40+
this(ocppProtocol, chargeBoxId, "-");
4041
}
4142

4243
public boolean isEndpointAddressSet() {
4344
return !("-".equals(endpointAddress));
4445
}
4546

4647
public boolean isSoap() {
47-
return OcppTransport.SOAP == ocppTransport;
48+
return OcppTransport.SOAP == ocppProtocol.getTransport();
4849
}
4950
}

src/main/java/de/rwth/idsg/steve/repository/impl/ChargePointRepositoryImpl.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,7 @@ public List<ChargePointSelect> getChargePointSelect(OcppProtocol protocol, List<
100100
.and(CHARGE_BOX.REGISTRATION_STATUS.in(inStatusFilter))
101101
.and(chargeBoxIdCondition)
102102
.fetch()
103-
.map(r -> new ChargePointSelect(protocol.getTransport(), r.value1(), r.value2()));
103+
.map(r -> new ChargePointSelect(protocol, r.value1(), r.value2()));
104104
}
105105

106106
@Override

src/main/java/de/rwth/idsg/steve/service/ChargePointHelperService.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -229,8 +229,10 @@ private List<ChargePointSelect> getChargePoints(OcppProtocol protocol, List<Regi
229229
? jsonEndpoint.getChargeBoxIdList()
230230
: jsonEndpoint.getChargeBoxIdList().stream().filter(chargeBoxIdFilter::contains).collect(Collectors.toList());
231231

232+
var jsonProtocol = OcppProtocol.from(jsonEndpoint.getVersion(), OcppTransport.JSON);
233+
232234
for (String chargeBoxId : chargeBoxIdList) {
233-
returnList.add(new ChargePointSelect(OcppTransport.JSON, chargeBoxId));
235+
returnList.add(new ChargePointSelect(jsonProtocol, chargeBoxId));
234236
}
235237

236238
return returnList;

src/main/java/de/rwth/idsg/steve/web/ChargePointSelectEditor.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
*/
1919
package de.rwth.idsg.steve.web;
2020

21-
import de.rwth.idsg.steve.ocpp.OcppTransport;
21+
import de.rwth.idsg.steve.ocpp.OcppProtocol;
2222
import de.rwth.idsg.steve.repository.dto.ChargePointSelect;
2323

2424
import java.beans.PropertyEditorSupport;
@@ -34,11 +34,11 @@ public void setAsText(String text) {
3434
if (!text.isEmpty()) {
3535
String[] chargePointItem = text.split(";");
3636

37-
// chargePointItem[0] : ocpp transport type
37+
// chargePointItem[0] : ocpp protocol
3838
// chargePointItem[1] : chargebox id
3939
// chargePointItem[2] : endpoint (IP) address
4040
ChargePointSelect cps = new ChargePointSelect(
41-
OcppTransport.fromName(chargePointItem[0]),
41+
OcppProtocol.fromCompositeValue(chargePointItem[0]),
4242
chargePointItem[1],
4343
chargePointItem[2]
4444
);

src/main/resources/webapp/WEB-INF/views/00-cp-multiple.jsp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@
2727
<td>
2828
<form:select path="chargePointSelectList" size="5" multiple="true">
2929
<c:forEach items="${cpList}" var="cp">
30-
<form:option value="${cp.ocppTransport};${cp.chargeBoxId};${cp.endpointAddress}" label="${cp.chargeBoxId}"/>
30+
<form:option value="${cp.ocppProtocol};${cp.chargeBoxId};${cp.endpointAddress}" label="${cp.chargeBoxId}"/>
3131
</c:forEach>
3232
</form:select>
3333
</td>

src/main/resources/webapp/WEB-INF/views/00-cp-single.jsp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525
<td>
2626
<form:select path="chargePointSelectList" size="5" multiple="false">
2727
<c:forEach items="${cpList}" var="cp">
28-
<form:option value="${cp.ocppTransport};${cp.chargeBoxId};${cp.endpointAddress}" label="${cp.chargeBoxId}"/>
28+
<form:option value="${cp.ocppProtocol};${cp.chargeBoxId};${cp.endpointAddress}" label="${cp.chargeBoxId}"/>
2929
</c:forEach>
3030
</form:select>
3131
</td>

0 commit comments

Comments
 (0)