
uk.co.mruoc.nac.api.converter.ApiLocationConverter Maven / Gradle / Ivy
package uk.co.mruoc.nac.api.converter;
import java.util.Collection;
import java.util.Map;
import lombok.RequiredArgsConstructor;
import uk.co.mruoc.nac.api.dto.ApiLocation;
import uk.co.mruoc.nac.entities.Location;
import uk.co.mruoc.nac.entities.Locations;
@RequiredArgsConstructor
public class ApiLocationConverter {
private final ApiCoordinatesConverter coordinatesConverter;
public ApiLocationConverter() {
this(new ApiCoordinatesConverter());
}
public Collection toApiLocations(Collection locations) {
return locations.stream().map(this::toApiLocation).toList();
}
public ApiLocation toApiLocation(Location location) {
return ApiLocation.builder()
.coordinates(coordinatesConverter.toApiCoordinates(location.getCoordinates()))
.token(location.getToken())
.winner(location.isWinner())
.build();
}
public Map toLocationsMap(Collection apiLocations) {
return Locations.toMap(toLocations(apiLocations));
}
public Collection toLocations(Collection apiLocations) {
return apiLocations.stream().map(this::toLocation).toList();
}
public Location toLocation(ApiLocation apiLocation) {
return Location.builder()
.coordinates(coordinatesConverter.toCoordinates(apiLocation.getCoordinates()))
.token(apiLocation.getToken())
.winner(apiLocation.isWinner())
.build();
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy