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

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

There is a newer version: 2.6.0
Show newest version
package org.opentripplanner.api.mapping;

import java.util.Collection;
import java.util.List;
import java.util.function.Supplier;
import java.util.stream.Collectors;
import org.opentripplanner.api.model.ApiPatternDetail;
import org.opentripplanner.api.model.ApiPatternShort;
import org.opentripplanner.transit.model.network.TripPattern;

public class TripPatternMapper {

  public static List mapToApiShort(Collection domainList) {
    if (domainList == null) {
      return null;
    }
    return domainList.stream().map(TripPatternMapper::mapToApiShort).collect(Collectors.toList());
  }

  public static ApiPatternShort mapToApiShort(TripPattern domain) {
    if (domain == null) {
      return null;
    }
    return mapToApiShort(domain, ApiPatternShort::new);
  }

  public static ApiPatternDetail mapToApiDetailed(TripPattern domain) {
    if (domain == null) {
      return null;
    }

    ApiPatternDetail api = mapToApiShort(domain, ApiPatternDetail::new);
    api.stops = StopMapper.mapToApiShort(domain.getStops());
    api.trips = TripMapper.mapToApiShort(domain.scheduledTripsAsStream());
    return api;
  }

  private static  T mapToApiShort(
    TripPattern domain,
    Supplier create
  ) {
    T api = create.get();
    api.id = FeedScopedIdMapper.mapToApi(domain.getId());
    api.desc = domain.getName();
    api.routeId = FeedScopedIdMapper.mapIdToApi(domain.getRoute());
    return api;
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy