All Downloads are FREE. Search and download functionalities are using the official Maven repository.

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