
org.opentripplanner.routing.algorithm.mapping.TripPlanMapper Maven / Gradle / Ivy
package org.opentripplanner.routing.algorithm.mapping;
import java.util.List;
import org.opentripplanner.model.GenericLocation;
import org.opentripplanner.model.plan.Itinerary;
import org.opentripplanner.model.plan.Leg;
import org.opentripplanner.model.plan.Place;
import org.opentripplanner.model.plan.TripPlan;
import org.opentripplanner.routing.api.request.RouteRequest;
import org.opentripplanner.transit.model.basic.I18NString;
import org.opentripplanner.transit.model.basic.LocalizedString;
import org.opentripplanner.transit.model.basic.NonLocalizedString;
public class TripPlanMapper {
/** This is a utility class with static method only. */
private TripPlanMapper() {}
public static TripPlan mapTripPlan(RouteRequest request, List itineraries) {
Place from;
Place to;
if (itineraries.isEmpty()) {
from = placeFromGeoLocation(request.from(), new LocalizedString("origin"));
to = placeFromGeoLocation(request.to(), new LocalizedString("destination"));
} else {
List legs = itineraries.get(0).getLegs();
from = legs.get(0).getFrom();
to = legs.get(legs.size() - 1).getTo();
}
return new TripPlan(from, to, request.dateTime(), itineraries);
}
private static Place placeFromGeoLocation(GenericLocation location, I18NString defaultName) {
return Place.normal(
location.lat,
location.lng,
NonLocalizedString.ofNullableOrElse(location.label, defaultName)
);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy