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

org.opentripplanner.ext.transmodelapi.model.stop.BikeParkType Maven / Gradle / Ivy

There is a newer version: 2.5.0
Show newest version
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();
  }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy