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

org.opentripplanner.apis.gtfs.datafetchers.StoptimeImpl Maven / Gradle / Ivy

The newest version!
package org.opentripplanner.apis.gtfs.datafetchers;

import static org.opentripplanner.apis.gtfs.GraphQLUtils.stopTimeToInt;

import graphql.schema.DataFetcher;
import graphql.schema.DataFetchingEnvironment;
import org.opentripplanner.apis.gtfs.generated.GraphQLDataFetchers;
import org.opentripplanner.apis.gtfs.generated.GraphQLTypes;
import org.opentripplanner.apis.gtfs.mapping.PickDropMapper;
import org.opentripplanner.apis.gtfs.mapping.RealtimeStateMapper;
import org.opentripplanner.framework.graphql.GraphQLUtils;
import org.opentripplanner.model.TripTimeOnDate;
import org.opentripplanner.transit.model.timetable.Trip;

public class StoptimeImpl implements GraphQLDataFetchers.GraphQLStoptime {

  @Override
  public DataFetcher arrivalDelay() {
    return environment -> stopTimeToInt(getSource(environment).getArrivalDelay());
  }

  @Override
  public DataFetcher departureDelay() {
    return environment -> getSource(environment).getDepartureDelay();
  }

  @Override
  public DataFetcher dropoffType() {
    return environment -> PickDropMapper.map(getSource(environment).getDropoffType());
  }

  @Override
  public DataFetcher headsign() {
    return environment ->
      GraphQLUtils.getTranslation(getSource(environment).getHeadsign(), environment);
  }

  @Override
  public DataFetcher pickupType() {
    return environment -> PickDropMapper.map(getSource(environment).getPickupType());
  }

  @Override
  public DataFetcher realtime() {
    return environment -> getSource(environment).isRealtime();
  }

  @Override
  public DataFetcher realtimeArrival() {
    return environment -> stopTimeToInt(getSource(environment).getRealtimeArrival());
  }

  @Override
  public DataFetcher realtimeDeparture() {
    return environment -> stopTimeToInt(getSource(environment).getRealtimeDeparture());
  }

  @Override
  public DataFetcher realtimeState() {
    return environment ->
      getSource(environment).isCanceledEffectively()
        ? GraphQLTypes.GraphQLRealtimeState.CANCELED
        : RealtimeStateMapper.map(getSource(environment).getRealTimeState());
  }

  @Override
  public DataFetcher scheduledArrival() {
    return environment -> stopTimeToInt(getSource(environment).getScheduledArrival());
  }

  @Override
  public DataFetcher scheduledDeparture() {
    return environment -> stopTimeToInt(getSource(environment).getScheduledDeparture());
  }

  @Override
  public DataFetcher stopPosition() {
    return environment -> getSource(environment).getGtfsSequence();
  }

  @Override
  public DataFetcher stopPositionInPattern() {
    return environment -> getSource(environment).getStopIndex();
  }

  @Override
  public DataFetcher serviceDay() {
    return environment -> getSource(environment).getServiceDayMidnight();
  }

  @Override
  public DataFetcher stop() {
    return environment -> getSource(environment).getStop();
  }

  @Override
  public DataFetcher timepoint() {
    return environment -> getSource(environment).isTimepoint();
  }

  @Override
  public DataFetcher trip() {
    return environment -> getSource(environment).getTrip();
  }

  private TripTimeOnDate getSource(DataFetchingEnvironment environment) {
    return environment.getSource();
  }
}