Skip to content

Commit 63e1fb3

Browse files
committed
add support for callback registration in ChargePointServiceClient
1 parent 722688f commit 63e1fb3

File tree

1 file changed

+135
-20
lines changed

1 file changed

+135
-20
lines changed

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

Lines changed: 135 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,8 @@
1919
package de.rwth.idsg.steve.service;
2020

2121
import de.rwth.idsg.steve.SteveException;
22-
import de.rwth.idsg.steve.ocpp.ChargePointServiceInvoker;
2322
import de.rwth.idsg.steve.ocpp.ChargePointServiceInvokerImpl;
23+
import de.rwth.idsg.steve.ocpp.OcppCallback;
2424
import de.rwth.idsg.steve.ocpp.OcppVersion;
2525
import de.rwth.idsg.steve.ocpp.task.CancelReservationTask;
2626
import de.rwth.idsg.steve.ocpp.task.ChangeAvailabilityTask;
@@ -70,6 +70,7 @@
7070
import lombok.RequiredArgsConstructor;
7171
import lombok.extern.slf4j.Slf4j;
7272
import ocpp.cp._2015._10.ChargingProfilePurposeType;
73+
import ocpp.cp._2015._10.GetCompositeScheduleResponse;
7374
import org.joda.time.DateTime;
7475
import org.springframework.stereotype.Service;
7576

@@ -97,59 +98,95 @@ public class ChargePointServiceClient {
9798
// Multiple Execution - since OCPP 1.2
9899
// -------------------------------------------------------------------------
99100

100-
public int changeAvailability(OcppVersion ocppVersion, ChangeAvailabilityParams params) {
101+
@SafeVarargs
102+
public final int changeAvailability(OcppVersion ocppVersion, ChangeAvailabilityParams params,
103+
OcppCallback<String>... callbacks) {
101104
ChangeAvailabilityTask task = new ChangeAvailabilityTask(ocppVersion, params);
102105

106+
for (var callback : callbacks) {
107+
task.addCallback(callback);
108+
}
109+
103110
BackgroundService.with(executorService)
104111
.forEach(task.getParams().getChargePointSelectList())
105112
.execute(c -> invoker.changeAvailability(c, task));
106113

107114
return taskStore.add(task);
108115
}
109116

110-
public int changeConfiguration(OcppVersion ocppVersion, ChangeConfigurationParams params) {
117+
@SafeVarargs
118+
public final int changeConfiguration(OcppVersion ocppVersion, ChangeConfigurationParams params,
119+
OcppCallback<String>... callbacks) {
111120
ChangeConfigurationTask task = new ChangeConfigurationTask(ocppVersion, params);
112121

122+
for (var callback : callbacks) {
123+
task.addCallback(callback);
124+
}
125+
113126
BackgroundService.with(executorService)
114127
.forEach(task.getParams().getChargePointSelectList())
115128
.execute(c -> invoker.changeConfiguration(c, task));
116129

117130
return taskStore.add(task);
118131
}
119132

120-
public int clearCache(OcppVersion ocppVersion, MultipleChargePointSelect params) {
133+
@SafeVarargs
134+
public final int clearCache(OcppVersion ocppVersion, MultipleChargePointSelect params,
135+
OcppCallback<String>... callbacks) {
121136
ClearCacheTask task = new ClearCacheTask(ocppVersion, params);
122137

138+
for (var callback : callbacks) {
139+
task.addCallback(callback);
140+
}
141+
123142
BackgroundService.with(executorService)
124143
.forEach(task.getParams().getChargePointSelectList())
125144
.execute(c -> invoker.clearCache(c, task));
126145

127146
return taskStore.add(task);
128147
}
129148

130-
public int getDiagnostics(OcppVersion ocppVersion, GetDiagnosticsParams params) {
149+
@SafeVarargs
150+
public final int getDiagnostics(OcppVersion ocppVersion, GetDiagnosticsParams params,
151+
OcppCallback<String>... callbacks) {
131152
GetDiagnosticsTask task = new GetDiagnosticsTask(ocppVersion, params);
132153

154+
for (var callback : callbacks) {
155+
task.addCallback(callback);
156+
}
157+
133158
BackgroundService.with(executorService)
134159
.forEach(task.getParams().getChargePointSelectList())
135160
.execute(c -> invoker.getDiagnostics(c, task));
136161

137162
return taskStore.add(task);
138163
}
139164

140-
public int reset(OcppVersion ocppVersion, ResetParams params) {
165+
@SafeVarargs
166+
public final int reset(OcppVersion ocppVersion, ResetParams params,
167+
OcppCallback<String>... callbacks) {
141168
ResetTask task = new ResetTask(ocppVersion, params);
142169

170+
for (var callback : callbacks) {
171+
task.addCallback(callback);
172+
}
173+
143174
BackgroundService.with(executorService)
144175
.forEach(task.getParams().getChargePointSelectList())
145176
.execute(c -> invoker.reset(c, task));
146177

147178
return taskStore.add(task);
148179
}
149180

150-
public int updateFirmware(OcppVersion ocppVersion, UpdateFirmwareParams params) {
181+
@SafeVarargs
182+
public final int updateFirmware(OcppVersion ocppVersion, UpdateFirmwareParams params,
183+
OcppCallback<String>... callbacks) {
151184
UpdateFirmwareTask task = new UpdateFirmwareTask(ocppVersion, params);
152185

186+
for (var callback : callbacks) {
187+
task.addCallback(callback);
188+
}
189+
153190
BackgroundService.with(executorService)
154191
.forEach(task.getParams().getChargePointSelectList())
155192
.execute(c -> invoker.updateFirmware(c, task));
@@ -161,29 +198,47 @@ public int updateFirmware(OcppVersion ocppVersion, UpdateFirmwareParams params)
161198
// Single Execution - since OCPP 1.2
162199
// -------------------------------------------------------------------------
163200

164-
public int remoteStartTransaction(OcppVersion ocppVersion, RemoteStartTransactionParams params) {
201+
@SafeVarargs
202+
public final int remoteStartTransaction(OcppVersion ocppVersion, RemoteStartTransactionParams params,
203+
OcppCallback<String>... callbacks) {
165204
RemoteStartTransactionTask task = new RemoteStartTransactionTask(ocppVersion, params);
166205

206+
for (var callback : callbacks) {
207+
task.addCallback(callback);
208+
}
209+
167210
BackgroundService.with(executorService)
168211
.forFirst(task.getParams().getChargePointSelectList())
169212
.execute(c -> invoker.remoteStartTransaction(c, task));
170213

171214
return taskStore.add(task);
172215
}
173216

174-
public int remoteStopTransaction(OcppVersion ocppVersion, RemoteStopTransactionParams params) {
217+
@SafeVarargs
218+
public final int remoteStopTransaction(OcppVersion ocppVersion, RemoteStopTransactionParams params,
219+
OcppCallback<String>... callbacks) {
175220
RemoteStopTransactionTask task = new RemoteStopTransactionTask(ocppVersion, params);
176221

222+
for (var callback : callbacks) {
223+
task.addCallback(callback);
224+
}
225+
177226
BackgroundService.with(executorService)
178227
.forFirst(task.getParams().getChargePointSelectList())
179228
.execute(c -> invoker.remoteStopTransaction(c, task));
180229

181230
return taskStore.add(task);
182231
}
183232

184-
public int unlockConnector(OcppVersion ocppVersion, UnlockConnectorParams params) {
233+
@SafeVarargs
234+
public final int unlockConnector(OcppVersion ocppVersion, UnlockConnectorParams params,
235+
OcppCallback<String>... callbacks) {
185236
UnlockConnectorTask task = new UnlockConnectorTask(ocppVersion, params);
186237

238+
for (var callback : callbacks) {
239+
task.addCallback(callback);
240+
}
241+
187242
BackgroundService.with(executorService)
188243
.forFirst(task.getParams().getChargePointSelectList())
189244
.execute(c -> invoker.unlockConnector(c, task));
@@ -195,39 +250,63 @@ public int unlockConnector(OcppVersion ocppVersion, UnlockConnectorParams params
195250
// Multiple Execution - since OCPP 1.5
196251
// -------------------------------------------------------------------------
197252

198-
public int dataTransfer(OcppVersion ocppVersion, DataTransferParams params) {
253+
@SafeVarargs
254+
public final int dataTransfer(OcppVersion ocppVersion, DataTransferParams params,
255+
OcppCallback<DataTransferTask.ResponseWrapper>... callbacks) {
199256
DataTransferTask task = new DataTransferTask(ocppVersion, params);
200257

258+
for (var callback : callbacks) {
259+
task.addCallback(callback);
260+
}
261+
201262
BackgroundService.with(executorService)
202263
.forEach(task.getParams().getChargePointSelectList())
203264
.execute(c -> invoker.dataTransfer(c, task));
204265

205266
return taskStore.add(task);
206267
}
207268

208-
public int getConfiguration(OcppVersion ocppVersion, GetConfigurationParams params) {
269+
@SafeVarargs
270+
public final int getConfiguration(OcppVersion ocppVersion, GetConfigurationParams params,
271+
OcppCallback<GetConfigurationTask.ResponseWrapper>... callbacks) {
209272
GetConfigurationTask task = new GetConfigurationTask(ocppVersion, params);
210273

274+
for (var callback : callbacks) {
275+
task.addCallback(callback);
276+
}
277+
211278
BackgroundService.with(executorService)
212279
.forEach(task.getParams().getChargePointSelectList())
213280
.execute(c -> invoker.getConfiguration(c, task));
214281

215282
return taskStore.add(task);
216283
}
217284

218-
public int getLocalListVersion(OcppVersion ocppVersion, MultipleChargePointSelect params) {
285+
@SafeVarargs
286+
public final int getLocalListVersion(OcppVersion ocppVersion, MultipleChargePointSelect params,
287+
OcppCallback<String>... callbacks) {
219288
GetLocalListVersionTask task = new GetLocalListVersionTask(ocppVersion, params);
220289

290+
for (var callback : callbacks) {
291+
task.addCallback(callback);
292+
}
293+
221294
BackgroundService.with(executorService)
222295
.forEach(task.getParams().getChargePointSelectList())
223296
.execute(c -> invoker.getLocalListVersion(c, task));
224297

225298
return taskStore.add(task);
226299
}
227300

228-
public int sendLocalList(OcppVersion ocppVersion, SendLocalListParams params) {
301+
@SafeVarargs
302+
public final int sendLocalList(OcppVersion ocppVersion, SendLocalListParams params,
303+
OcppCallback<String>... callbacks) {
229304
SendLocalListTask task = new SendLocalListTask(ocppVersion, params, ocppTagService);
230305

306+
for (var callback : callbacks) {
307+
task.addCallback(callback);
308+
}
309+
231310
BackgroundService.with(executorService)
232311
.forEach(task.getParams().getChargePointSelectList())
233312
.execute(c -> invoker.sendLocalList(c, task));
@@ -239,7 +318,9 @@ public int sendLocalList(OcppVersion ocppVersion, SendLocalListParams params) {
239318
// Single Execution - since OCPP 1.5
240319
// -------------------------------------------------------------------------
241320

242-
public int reserveNow(OcppVersion ocppVersion, ReserveNowParams params) {
321+
@SafeVarargs
322+
public final int reserveNow(OcppVersion ocppVersion, ReserveNowParams params,
323+
OcppCallback<String>... callbacks) {
243324
List<ChargePointSelect> list = params.getChargePointSelectList();
244325

245326
InsertReservationParams res = InsertReservationParams.builder()
@@ -256,16 +337,26 @@ public int reserveNow(OcppVersion ocppVersion, ReserveNowParams params) {
256337
EnhancedReserveNowParams enhancedParams = new EnhancedReserveNowParams(params, reservationId, parentIdTag);
257338
ReserveNowTask task = new ReserveNowTask(ocppVersion, enhancedParams, reservationRepository);
258339

340+
for (var callback : callbacks) {
341+
task.addCallback(callback);
342+
}
343+
259344
BackgroundService.with(executorService)
260345
.forFirst(task.getParams().getChargePointSelectList())
261346
.execute(c -> invoker.reserveNow(c, task));
262347

263348
return taskStore.add(task);
264349
}
265350

266-
public int cancelReservation(OcppVersion ocppVersion, CancelReservationParams params) {
351+
@SafeVarargs
352+
public final int cancelReservation(OcppVersion ocppVersion, CancelReservationParams params,
353+
OcppCallback<String>... callbacks) {
267354
CancelReservationTask task = new CancelReservationTask(ocppVersion, params, reservationRepository);
268355

356+
for (var callback : callbacks) {
357+
task.addCallback(callback);
358+
}
359+
269360
BackgroundService.with(executorService)
270361
.forFirst(task.getParams().getChargePointSelectList())
271362
.execute(c -> invoker.cancelReservation(c, task));
@@ -277,44 +368,68 @@ public int cancelReservation(OcppVersion ocppVersion, CancelReservationParams pa
277368
// Multiple Execution - since OCPP 1.6
278369
// -------------------------------------------------------------------------
279370

280-
public int triggerMessage(OcppVersion ocppVersion, TriggerMessageParams params) {
371+
@SafeVarargs
372+
public final int triggerMessage(OcppVersion ocppVersion, TriggerMessageParams params,
373+
OcppCallback<String>... callbacks) {
281374
TriggerMessageTask task = new TriggerMessageTask(ocppVersion, params);
282375

376+
for (var callback : callbacks) {
377+
task.addCallback(callback);
378+
}
379+
283380
BackgroundService.with(executorService)
284381
.forEach(task.getParams().getChargePointSelectList())
285382
.execute(c -> invoker.triggerMessage(c, task));
286383

287384
return taskStore.add(task);
288385
}
289386

290-
public int setChargingProfile(OcppVersion ocppVersion, SetChargingProfileParams params) {
387+
@SafeVarargs
388+
public final int setChargingProfile(OcppVersion ocppVersion, SetChargingProfileParams params,
389+
OcppCallback<String>... callbacks) {
291390
ChargingProfile.Details details = chargingProfileRepository.getDetails(params.getChargingProfilePk());
292391

293392
checkAdditionalConstraints(params, details);
294393

295394
EnhancedSetChargingProfileParams enhancedParams = new EnhancedSetChargingProfileParams(params, details);
296395
SetChargingProfileTask task = new SetChargingProfileTask(ocppVersion, enhancedParams, chargingProfileRepository);
297396

397+
for (var callback : callbacks) {
398+
task.addCallback(callback);
399+
}
400+
298401
BackgroundService.with(executorService)
299402
.forEach(task.getParams().getChargePointSelectList())
300403
.execute(c -> invoker.setChargingProfile(c, task));
301404

302405
return taskStore.add(task);
303406
}
304407

305-
public int clearChargingProfile(OcppVersion ocppVersion, ClearChargingProfileParams params) {
408+
@SafeVarargs
409+
public final int clearChargingProfile(OcppVersion ocppVersion, ClearChargingProfileParams params,
410+
OcppCallback<String>... callbacks) {
306411
ClearChargingProfileTask task = new ClearChargingProfileTask(ocppVersion, params, chargingProfileRepository);
307412

413+
for (var callback : callbacks) {
414+
task.addCallback(callback);
415+
}
416+
308417
BackgroundService.with(executorService)
309418
.forEach(task.getParams().getChargePointSelectList())
310419
.execute(c -> invoker.clearChargingProfile(c, task));
311420

312421
return taskStore.add(task);
313422
}
314423

315-
public int getCompositeSchedule(OcppVersion ocppVersion, GetCompositeScheduleParams params) {
424+
@SafeVarargs
425+
public final int getCompositeSchedule(OcppVersion ocppVersion, GetCompositeScheduleParams params,
426+
OcppCallback<GetCompositeScheduleResponse>... callbacks) {
316427
GetCompositeScheduleTask task = new GetCompositeScheduleTask(ocppVersion, params);
317428

429+
for (var callback : callbacks) {
430+
task.addCallback(callback);
431+
}
432+
318433
BackgroundService.with(executorService)
319434
.forEach(task.getParams().getChargePointSelectList())
320435
.execute(c -> invoker.getCompositeSchedule(c, task));

0 commit comments

Comments
 (0)