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

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

There is a newer version: 2.6.0
Show newest version
package org.opentripplanner.ext.legacygraphqlapi.datafetchers;

import graphql.relay.Relay;
import graphql.schema.DataFetcher;
import graphql.schema.DataFetchingEnvironment;
import java.util.List;
import org.opentripplanner.ext.legacygraphqlapi.generated.LegacyGraphQLDataFetchers;
import org.opentripplanner.routing.vehicle_rental.VehicleRentalPlace;
import org.opentripplanner.routing.vehicle_rental.VehicleRentalStationUris;

public class LegacyGraphQLBikeRentalStationImpl
  implements LegacyGraphQLDataFetchers.LegacyGraphQLBikeRentalStation {

  final String STATE_ON = "Station on";
  final String STATE_OFF = "Station off";

  @Override
  public DataFetcher allowDropoff() {
    return environment -> getSource(environment).isAllowDropoff();
  }

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

  @Override
  public DataFetcher allowOverloading() {
    return environment -> getSource(environment).isAllowOverloading();
  }

  @Override
  public DataFetcher allowPickup() {
    return environment -> getSource(environment).isAllowPickup();
  }

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

  @Override
  public DataFetcher bikesAvailable() {
    return environment -> getSource(environment).getVehiclesAvailable();
  }

  @Override
  public DataFetcher capacity() {
    return environment -> getSource(environment).getCapacity();
  }

  @Override
  public DataFetcher id() {
    return environment ->
      new Relay.ResolvedGlobalId("BikeRentalStation", getSource(environment).getId().toString());
  }

  @Override
  public DataFetcher lat() {
    return environment -> getSource(environment).getLatitude();
  }

  @Override
  public DataFetcher lon() {
    return environment -> getSource(environment).getLongitude();
  }

  @Override
  public DataFetcher name() {
    return environment -> getSource(environment).getName().toString(environment.getLocale());
  }

  @Override
  public DataFetcher> networks() {
    return environment -> List.of(getSource(environment).getNetwork());
  }

  @Override
  public DataFetcher operative() {
    return environment ->
      getSource(environment).isAllowPickup() && getSource(environment).isAllowDropoff();
  }

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

  @Override
  public DataFetcher rentalUris() {
    return environment -> getSource(environment).getRentalUris();
  }

  @Override
  public DataFetcher spacesAvailable() {
    return environment -> getSource(environment).getSpacesAvailable();
  }

  @Override
  public DataFetcher state() {
    return environment -> {
      var rentalPlace = getSource(environment);

      if (rentalPlace.isFloatingVehicle() && rentalPlace.isAllowPickup()) {
        return STATE_ON;
      } else if (rentalPlace.isAllowDropoff() && rentalPlace.isAllowPickup()) {
        return STATE_ON;
      } else {
        return STATE_OFF;
      }
    };
  }

  @Override
  public DataFetcher stationId() {
    return environment -> getSource(environment).getStationId();
  }

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




© 2015 - 2025 Weber Informatics LLC | Privacy Policy