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

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

package org.opentripplanner.gtfs.mapping;

import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
import org.opentripplanner.model.Frequency;
import org.opentripplanner.util.MapUtils;

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

  private final TripMapper tripMapper;

  private final Map mappedFrequencys = new HashMap<>();

  FrequencyMapper(TripMapper tripMapper) {
    this.tripMapper = tripMapper;
  }

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

  /** Map from GTFS to OTP model, {@code null} safe. */
  Frequency map(org.onebusaway.gtfs.model.Frequency orginal) {
    return orginal == null ? null : mappedFrequencys.computeIfAbsent(orginal, this::doMap);
  }

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

    lhs.setTrip(tripMapper.map(rhs.getTrip()));
    lhs.setStartTime(rhs.getStartTime());
    lhs.setEndTime(rhs.getEndTime());
    lhs.setHeadwaySecs(rhs.getHeadwaySecs());
    lhs.setExactTimes(rhs.getExactTimes());
    lhs.setLabelOnly(rhs.getLabelOnly());

    return lhs;
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy