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

org.opentripplanner.gtfs.mapping.TripMapper Maven / Gradle / Ivy

package org.opentripplanner.gtfs.mapping;

import org.opentripplanner.model.Trip;
import org.opentripplanner.util.MapUtils;

import java.util.Collection;
import java.util.HashMap;
import java.util.Map;

/** Responsible for mapping GTFS TripMapper into the OTP model. */
class TripMapper {

    private final RouteMapper routeMapper;

    private Map mappedTrips = new HashMap<>();

    TripMapper(RouteMapper routeMapper) {
        this.routeMapper = routeMapper;
    }

    Collection map(Collection trips) {
        return MapUtils.mapToList(trips, this::map);
    }

    Trip map(org.onebusaway.gtfs.model.Trip orginal) {
        return orginal == null ? null : mappedTrips.computeIfAbsent(orginal, this::doMap);
    }

    private Trip doMap(org.onebusaway.gtfs.model.Trip rhs) {
        Trip lhs = new Trip();

        lhs.setId(AgencyAndIdMapper.mapAgencyAndId(rhs.getId()));
        lhs.setRoute(routeMapper.map(rhs.getRoute()));
        lhs.setServiceId(AgencyAndIdMapper.mapAgencyAndId(rhs.getServiceId()));
        lhs.setTripShortName(rhs.getTripShortName());
        lhs.setTripHeadsign(rhs.getTripHeadsign());
        lhs.setRouteShortName(rhs.getRouteShortName());
        lhs.setDirectionId(rhs.getDirectionId());
        lhs.setBlockId(rhs.getBlockId());
        lhs.setShapeId(AgencyAndIdMapper.mapAgencyAndId(rhs.getShapeId()));
        lhs.setWheelchairAccessible(rhs.getWheelchairAccessible());
        lhs.setTripBikesAllowed(rhs.getTripBikesAllowed());
        lhs.setBikesAllowed(rhs.getBikesAllowed());
        lhs.setFareId(rhs.getFareId());

        return lhs;
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy