@Override public void handle(ReserveNowRequestedEvent event, CorrelationToken correlationToken) { LOG.info("ReserveNowRequestedEvent"); NumberedReservationId reservationIdentifier = domainService.generateReservationIdentifier(event.getChargingStationId(), event.getProtocol()); ReservationStatus reservationStatus = chargingStationOcpp15Client.reserveNow(event.getChargingStationId(), event.getEvseId(), event.getIdentifyingToken(), event.getExpiryDate(), event.getParentIdentifyingToken(), reservationIdentifier.getNumber()); switch (reservationStatus) { case ACCEPTED: domainService.informReserved(event.getChargingStationId(), reservationIdentifier, event.getEvseId(), event.getExpiryDate(), correlationToken, addOnIdentity); break; case FAULTED: domainService.informReservationFaulted(event.getChargingStationId(), event.getEvseId(), correlationToken, addOnIdentity); break; case OCCUPIED: domainService.informChargingStationOccupied(event.getChargingStationId(), event.getEvseId(), correlationToken, addOnIdentity); break; case UNAVAILABLE: domainService.informChargingStationUnavailable(event.getChargingStationId(), event.getEvseId(), correlationToken, addOnIdentity); break; case REJECTED: domainService.informReservationRejected(event.getChargingStationId(), event.getEvseId(), correlationToken, addOnIdentity); break; default: throw new AssertionError(String.format("Unkown reserve now response response status: '%s'", reservationStatus)); } }