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

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

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

import graphql.schema.DataFetcher;
import graphql.schema.DataFetchingEnvironment;
import org.opentripplanner.apis.gtfs.generated.GraphQLDataFetchers;
import org.opentripplanner.service.realtimevehicles.model.RealtimeVehicle;
import org.opentripplanner.service.realtimevehicles.model.RealtimeVehicle.StopRelationship;
import org.opentripplanner.transit.model.timetable.Trip;

public class VehiclePositionImpl implements GraphQLDataFetchers.GraphQLVehiclePosition {

  @Override
  public DataFetcher heading() {
    return env -> getSource(env).heading().orElse(null);
  }

  @Override
  public DataFetcher label() {
    return env -> getSource(env).label().orElse(null);
  }

  @Override
  public DataFetcher lastUpdated() {
    return env -> getSource(env).time().map(time -> time.getEpochSecond()).orElse(null);
  }

  @Override
  public DataFetcher lat() {
    return env ->
      getSource(env).coordinates().map(coordinates -> coordinates.latitude()).orElse(null);
  }

  @Override
  public DataFetcher lon() {
    return env ->
      getSource(env).coordinates().map(coordinates -> coordinates.longitude()).orElse(null);
  }

  @Override
  public DataFetcher speed() {
    return env -> getSource(env).speed().orElse(null);
  }

  @Override
  public DataFetcher stopRelationship() {
    return env -> getSource(env).stop().orElse(null);
  }

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

  @Override
  public DataFetcher vehicleId() {
    return env -> getSource(env).vehicleId().map(vehicleId -> vehicleId.toString()).orElse(null);
  }

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




© 2015 - 2025 Weber Informatics LLC | Privacy Policy