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

org.opentripplanner.standalone.configure.ConstructApplicationModule Maven / Gradle / Ivy

The newest version!
package org.opentripplanner.standalone.configure;

import dagger.Module;
import dagger.Provides;
import graphql.schema.GraphQLSchema;
import io.micrometer.core.instrument.Metrics;
import java.util.List;
import javax.annotation.Nullable;
import org.opentripplanner.astar.spi.TraverseVisitor;
import org.opentripplanner.ext.emissions.EmissionsService;
import org.opentripplanner.ext.geocoder.LuceneIndex;
import org.opentripplanner.ext.interactivelauncher.api.LauncherRequestDecorator;
import org.opentripplanner.ext.ridehailing.RideHailingService;
import org.opentripplanner.ext.sorlandsbanen.SorlandsbanenNorwayService;
import org.opentripplanner.ext.stopconsolidation.StopConsolidationService;
import org.opentripplanner.raptor.configure.RaptorConfig;
import org.opentripplanner.routing.algorithm.raptoradapter.transit.TripSchedule;
import org.opentripplanner.routing.graph.Graph;
import org.opentripplanner.routing.via.ViaCoordinateTransferFactory;
import org.opentripplanner.service.realtimevehicles.RealtimeVehicleService;
import org.opentripplanner.service.vehicleparking.VehicleParkingService;
import org.opentripplanner.service.vehiclerental.VehicleRentalService;
import org.opentripplanner.service.worldenvelope.WorldEnvelopeService;
import org.opentripplanner.standalone.api.OtpServerRequestContext;
import org.opentripplanner.standalone.config.DebugUiConfig;
import org.opentripplanner.standalone.config.RouterConfig;
import org.opentripplanner.standalone.server.DefaultServerRequestContext;
import org.opentripplanner.street.service.StreetLimitationParametersService;
import org.opentripplanner.transit.service.TransitService;
import org.opentripplanner.visualizer.GraphVisualizer;

@Module
public class ConstructApplicationModule {

  @Provides
  OtpServerRequestContext providesServerContext(
    RouterConfig routerConfig,
    DebugUiConfig debugUiConfig,
    RaptorConfig raptorConfig,
    Graph graph,
    TransitService transitService,
    WorldEnvelopeService worldEnvelopeService,
    RealtimeVehicleService realtimeVehicleService,
    VehicleRentalService vehicleRentalService,
    VehicleParkingService vehicleParkingService,
    List rideHailingServices,
    ViaCoordinateTransferFactory viaTransferResolver,
    @Nullable StopConsolidationService stopConsolidationService,
    StreetLimitationParametersService streetLimitationParametersService,
    @Nullable TraverseVisitor traverseVisitor,
    EmissionsService emissionsService,
    @Nullable GraphQLSchema schema,
    @Nullable SorlandsbanenNorwayService sorlandsbanenService,
    LauncherRequestDecorator launcherRequestDecorator,
    @Nullable LuceneIndex luceneIndex
  ) {
    var defaultRequest = launcherRequestDecorator.intercept(routerConfig.routingRequestDefaults());

    var transitRoutingConfig = routerConfig.transitTuningConfig();
    var vectorTileConfig = routerConfig.vectorTileConfig();
    var flexParameters = routerConfig.flexParameters();

    return new DefaultServerRequestContext(
      debugUiConfig,
      flexParameters,
      graph,
      Metrics.globalRegistry,
      raptorConfig,
      realtimeVehicleService,
      rideHailingServices,
      defaultRequest,
      streetLimitationParametersService,
      transitRoutingConfig,
      transitService,
      vectorTileConfig,
      vehicleParkingService,
      vehicleRentalService,
      viaTransferResolver,
      worldEnvelopeService,
      emissionsService,
      luceneIndex,
      schema,
      sorlandsbanenService,
      stopConsolidationService,
      traverseVisitor
    );
  }

  @Provides
  @Nullable
  TraverseVisitor traverseVisitor(@Nullable GraphVisualizer graphVisualizer) {
    return graphVisualizer == null ? null : graphVisualizer.traverseVisitor;
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy