org.opentripplanner.ext.transmodelapi.model.stop.BikeParkType Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of otp Show documentation
Show all versions of otp Show documentation
The OpenTripPlanner multimodal journey planning system
package org.opentripplanner.ext.transmodelapi.model.stop;
import graphql.Scalars;
import graphql.schema.GraphQLFieldDefinition;
import graphql.schema.GraphQLInterfaceType;
import graphql.schema.GraphQLNonNull;
import graphql.schema.GraphQLObjectType;
import org.opentripplanner.ext.transmodelapi.mapping.TransitIdMapper;
import org.opentripplanner.routing.vehicle_parking.VehicleParking;
public class BikeParkType {
public static final String NAME = "BikePark";
public static GraphQLObjectType createB(GraphQLInterfaceType placeInterface) {
return GraphQLObjectType.newObject()
.name(NAME)
.withInterface(placeInterface)
.field(GraphQLFieldDefinition.newFieldDefinition()
.name("id")
.type(new GraphQLNonNull(Scalars.GraphQLID))
.dataFetcher(environment -> TransitIdMapper.mapIDToApi(((VehicleParking) environment.getSource()).getId()))
.build())
.field(GraphQLFieldDefinition.newFieldDefinition()
.name("name")
.type(new GraphQLNonNull(Scalars.GraphQLString))
.dataFetcher(environment -> ((VehicleParking) environment.getSource()).getName().toString())
.build())
.field(GraphQLFieldDefinition.newFieldDefinition()
.name("spacesAvailable")
.type(Scalars.GraphQLInt)
.dataFetcher(environment -> {
var vehicleParking = ((VehicleParking) environment.getSource());
var availability = vehicleParking.getAvailability();
if (availability != null) {
return availability.getBicycleSpaces();
} else {
return Integer.MAX_VALUE;
}
})
.build())
.field(GraphQLFieldDefinition.newFieldDefinition()
.name("realtime")
.type(Scalars.GraphQLBoolean)
.dataFetcher(environment -> ((VehicleParking) environment.getSource()).hasRealTimeData())
.build())
.field(GraphQLFieldDefinition.newFieldDefinition()
.name("longitude")
.type(Scalars.GraphQLFloat)
.dataFetcher(environment -> ((VehicleParking) environment.getSource()).getX())
.build())
.field(GraphQLFieldDefinition.newFieldDefinition()
.name("latitude")
.type(Scalars.GraphQLFloat)
.dataFetcher(environment -> ((VehicleParking) environment.getSource()).getY())
.build())
.build();
}
}