Skip to content

Commit 0adf340

Browse files
committed
update home page to contain 1.6 status values
1 parent 6bb8f8c commit 0adf340

4 files changed

Lines changed: 37 additions & 56 deletions

File tree

Lines changed: 34 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -1,74 +1,56 @@
11
package de.rwth.idsg.steve.utils;
22

33
import de.rwth.idsg.steve.repository.dto.ConnectorStatus;
4-
import ocpp.cs._2012._06.ChargePointStatus;
54

6-
import java.util.LinkedHashMap;
5+
import java.util.EnumSet;
6+
import java.util.HashSet;
77
import java.util.List;
88
import java.util.Map;
9-
10-
import static ocpp.cs._2012._06.ChargePointStatus.AVAILABLE;
11-
import static ocpp.cs._2012._06.ChargePointStatus.FAULTED;
12-
import static ocpp.cs._2012._06.ChargePointStatus.OCCUPIED;
13-
import static ocpp.cs._2012._06.ChargePointStatus.RESERVED;
14-
import static ocpp.cs._2012._06.ChargePointStatus.UNAVAILABLE;
9+
import java.util.Set;
10+
import java.util.TreeMap;
1511

1612
/**
1713
* @author Sevket Goekay <goekay@dbis.rwth-aachen.de>
1814
* @since 10.03.2016
1915
*/
2016
public final class ConnectorStatusCountFilter {
2117

22-
private ConnectorStatusCountFilter() { }
23-
24-
/**
25-
* ChargePointStatus in Ocpp 1.5 is a super set of the one in Ocpp 1.2. Therefore,
26-
* using Ocpp 1.5 will cover 1.2 too.
27-
*/
28-
public static Map<ChargePointStatus, Integer> getStatusCountMap(List<ConnectorStatus> latestList) {
29-
List<ConnectorStatus> filteredList = ConnectorStatusFilter.filterAndPreferZero(latestList);
30-
31-
int countAvailable = 0;
32-
int countOccupied = 0;
33-
int countFaulted = 0;
34-
int countUnavailable = 0;
35-
int countReserved = 0;
36-
37-
for (ConnectorStatus cs : filteredList) {
38-
ChargePointStatus cps = ChargePointStatus.fromValue(cs.getStatus());
39-
switch (cps) {
40-
case AVAILABLE:
41-
countAvailable++;
42-
break;
18+
private static final Set<String> allStatusValues = allStatusValues();
4319

44-
case OCCUPIED:
45-
countOccupied++;
46-
break;
47-
48-
case FAULTED:
49-
countFaulted++;
50-
break;
20+
private ConnectorStatusCountFilter() { }
5121

52-
case UNAVAILABLE:
53-
countUnavailable++;
54-
break;
22+
public static Map<String, Integer> getStatusCountMap(List<ConnectorStatus> latestList) {
23+
return getStatusCountMap(latestList, false);
24+
}
5525

56-
case RESERVED:
57-
countReserved++;
58-
break;
26+
public static Map<String, Integer> getStatusCountMap(List<ConnectorStatus> latestList, boolean printZero) {
27+
List<ConnectorStatus> filteredList = ConnectorStatusFilter.filterAndPreferZero(latestList);
5928

60-
default:
61-
break;
29+
// TreeMap because we want a consistent order of the listing on the page
30+
TreeMap<String, Integer> map = new TreeMap<>();
31+
for (ConnectorStatus item : filteredList) {
32+
Integer count = map.get(item.getStatus());
33+
if (count == null) {
34+
count = 1;
35+
} else {
36+
count += 1;
6237
}
38+
map.put(item.getStatus(), count);
39+
}
40+
41+
if (printZero) {
42+
allStatusValues.forEach(s -> map.putIfAbsent(s, 0));
6343
}
6444

65-
// LinkedHashMap because we want a consistent order of the listing on the page
66-
Map<ChargePointStatus, Integer> tmp = new LinkedHashMap<>(5);
67-
tmp.put(AVAILABLE, countAvailable);
68-
tmp.put(OCCUPIED, countOccupied);
69-
tmp.put(RESERVED, countReserved);
70-
tmp.put(UNAVAILABLE, countUnavailable);
71-
tmp.put(FAULTED, countFaulted);
72-
return tmp;
45+
return map;
7346
}
47+
48+
private static Set<String> allStatusValues() {
49+
HashSet<String> set = new HashSet<>();
50+
EnumSet.allOf(ocpp.cs._2010._08.ChargePointStatus.class).forEach(k -> set.add(k.value()));
51+
EnumSet.allOf(ocpp.cs._2012._06.ChargePointStatus.class).forEach(k -> set.add(k.value()));
52+
EnumSet.allOf(ocpp.cs._2015._10.ChargePointStatus.class).forEach(k -> set.add(k.value()));
53+
return set;
54+
}
55+
7456
}

src/main/java/de/rwth/idsg/steve/web/dto/Statistics.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
import lombok.Builder;
44
import lombok.Getter;
55
import lombok.Setter;
6-
import ocpp.cs._2012._06.ChargePointStatus;
76

87
import java.util.Map;
98

@@ -24,5 +23,5 @@ public final class Statistics {
2423
@Setter private int numOcpp12JChargeBoxes, numOcpp15JChargeBoxes, numOcpp16JChargeBoxes;
2524

2625
// Count of connectors based on their status
27-
@Setter private Map<ChargePointStatus, Integer> statusCountMap;
26+
@Setter private Map<String, Integer> statusCountMap;
2827
}

src/main/resources/webapp/WEB-INF/views/home.jsp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@
6060
<span class="baseTable">
6161
<c:forEach items="${stats.statusCountMap}" var="it">
6262
<span class="baseRow">
63-
<span class="baseCell">${it.key.value()} :</span>
63+
<span class="baseCell">${it.key} :</span>
6464
<span class="baseCell formatNumber">${it.value}</span>
6565
</span>
6666
</c:forEach>

src/main/resources/webapp/static/css/style.css

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -410,7 +410,7 @@ span.baseCell {
410410
display: table-cell;
411411
}
412412
span.baseCell:first-child {
413-
width:50%;
413+
width:62%;
414414
text-align: right;
415415
}
416416
span.baseCell:nth-child(2) {

0 commit comments

Comments
 (0)