
org.opentripplanner.apis.gtfs.datafetchers.CarParkImpl Maven / Gradle / Ivy
The newest version!
package org.opentripplanner.apis.gtfs.datafetchers;
import graphql.relay.Relay;
import graphql.schema.DataFetcher;
import graphql.schema.DataFetchingEnvironment;
import org.opentripplanner.apis.gtfs.generated.GraphQLDataFetchers;
import org.opentripplanner.framework.graphql.GraphQLUtils;
import org.opentripplanner.model.calendar.openinghours.OHCalendar;
import org.opentripplanner.service.vehicleparking.model.VehicleParking;
public class CarParkImpl implements GraphQLDataFetchers.GraphQLCarPark {
@Override
public DataFetcher carParkId() {
return environment -> getSource(environment).getId().getId();
}
@Override
public DataFetcher id() {
return environment ->
new Relay.ResolvedGlobalId("CarPark", getSource(environment).getId().toString());
}
@Override
public DataFetcher lat() {
return environment -> getSource(environment).getCoordinate().latitude();
}
@Override
public DataFetcher lon() {
return environment -> getSource(environment).getCoordinate().longitude();
}
@Override
public DataFetcher maxCapacity() {
return environment -> {
var availability = getSource(environment).getCapacity();
if (availability == null) {
return null;
}
return availability.getCarSpaces();
};
}
@Override
public DataFetcher name() {
return environment ->
GraphQLUtils.getTranslation(getSource(environment).getName(), environment);
}
@Override
public DataFetcher openingHours() {
return environment -> getSource(environment).getOpeningHours();
}
@Override
public DataFetcher realtime() {
return environment -> getSource(environment).hasRealTimeData();
}
@Override
public DataFetcher spacesAvailable() {
return environment -> {
var availability = getSource(environment).getAvailability();
if (availability == null) {
return null;
}
return availability.getCarSpaces();
};
}
@Override
public DataFetcher> tags() {
return environment -> getSource(environment).getTags();
}
private VehicleParking getSource(DataFetchingEnvironment environment) {
return environment.getSource();
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy