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

org.opentripplanner.api.mapping.WalkStepMapper Maven / Gradle / Ivy

package org.opentripplanner.api.mapping;

import static org.opentripplanner.api.mapping.AbsoluteDirectionMapper.mapAbsoluteDirection;
import static org.opentripplanner.api.mapping.ElevationMapper.mapElevation;
import static org.opentripplanner.api.mapping.RelativeDirectionMapper.mapRelativeDirection;

import java.util.Collection;
import java.util.List;
import java.util.Locale;
import java.util.stream.Collectors;
import org.opentripplanner.api.model.ApiWalkStep;
import org.opentripplanner.model.plan.WalkStep;

public class WalkStepMapper {

  private final StreetNoteMaperMapper alertsMapper;
  private final Locale locale;

  public WalkStepMapper(Locale locale) {
    this.locale = locale;
    this.alertsMapper = new StreetNoteMaperMapper(locale);
  }

  public List mapWalkSteps(Collection domain) {
    if (domain == null) {
      return null;
    }
    return domain.stream().map(this::mapWalkStep).collect(Collectors.toList());
  }

  public ApiWalkStep mapWalkStep(WalkStep domain) {
    if (domain == null) {
      return null;
    }
    ApiWalkStep api = new ApiWalkStep();

    api.distance = domain.getDistance();
    api.relativeDirection = mapRelativeDirection(domain.getRelativeDirection());
    api.streetName = domain.getStreetName().toString(locale);
    api.absoluteDirection = mapAbsoluteDirection(domain.getAbsoluteDirection());
    api.exit = domain.getExit();
    api.stayOn = domain.getStayOn();
    api.area = domain.getArea();
    api.bogusName = domain.getBogusName();
    if (domain.getStartLocation() != null) {
      api.lon = domain.getStartLocation().longitude();
      api.lat = domain.getStartLocation().latitude();
    }
    api.elevation = mapElevation(domain.getRoundedElevation());
    api.walkingBike = domain.isWalkingBike();
    api.alerts = alertsMapper.mapToApi(domain.getStreetNotes());

    return api;
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy