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

org.opentripplanner.ext.legacygraphqlapi.datafetchers.LegacyGraphQLStopRelationshipImpl Maven / Gradle / Ivy

package org.opentripplanner.ext.legacygraphqlapi.datafetchers;

import graphql.schema.DataFetcher;
import graphql.schema.DataFetchingEnvironment;
import org.opentripplanner.ext.legacygraphqlapi.generated.LegacyGraphQLDataFetchers.LegacyGraphQLStopRelationship;
import org.opentripplanner.ext.legacygraphqlapi.generated.LegacyGraphQLTypes.LegacyGraphQLVehicleStopStatus;
import org.opentripplanner.model.vehicle_position.RealtimeVehiclePosition.StopRelationship;

public class LegacyGraphQLStopRelationshipImpl implements LegacyGraphQLStopRelationship {

  @Override
  public DataFetcher status() {
    return env ->
      switch (getSource(env).status()) {
        case INCOMING_AT -> LegacyGraphQLVehicleStopStatus.INCOMING_AT;
        case IN_TRANSIT_TO -> LegacyGraphQLVehicleStopStatus.IN_TRANSIT_TO;
        case STOPPED_AT -> LegacyGraphQLVehicleStopStatus.STOPPED_AT;
      };
  }

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

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