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

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

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

import dagger.BindsInstance;
import dagger.Component;
import graphql.schema.GraphQLSchema;
import jakarta.inject.Singleton;
import javax.annotation.Nullable;
import org.opentripplanner.apis.gtfs.configure.SchemaModule;
import org.opentripplanner.ext.emissions.EmissionsDataModel;
import org.opentripplanner.ext.emissions.EmissionsServiceModule;
import org.opentripplanner.ext.geocoder.LuceneIndex;
import org.opentripplanner.ext.geocoder.configure.GeocoderModule;
import org.opentripplanner.ext.interactivelauncher.configuration.InteractiveLauncherModule;
import org.opentripplanner.ext.ridehailing.configure.RideHailingServicesModule;
import org.opentripplanner.ext.sorlandsbanen.SorlandsbanenNorwayService;
import org.opentripplanner.ext.sorlandsbanen.configure.SorlandsbanenNorwayModule;
import org.opentripplanner.ext.stopconsolidation.StopConsolidationRepository;
import org.opentripplanner.ext.stopconsolidation.configure.StopConsolidationServiceModule;
import org.opentripplanner.graph_builder.issue.api.DataImportIssueSummary;
import org.opentripplanner.raptor.configure.RaptorConfig;
import org.opentripplanner.routing.algorithm.raptoradapter.transit.TripSchedule;
import org.opentripplanner.routing.api.request.RouteRequest;
import org.opentripplanner.routing.graph.Graph;
import org.opentripplanner.routing.via.ViaCoordinateTransferFactory;
import org.opentripplanner.routing.via.configure.ViaModule;
import org.opentripplanner.service.realtimevehicles.RealtimeVehicleRepository;
import org.opentripplanner.service.realtimevehicles.RealtimeVehicleService;
import org.opentripplanner.service.realtimevehicles.configure.RealtimeVehicleRepositoryModule;
import org.opentripplanner.service.realtimevehicles.configure.RealtimeVehicleServiceModule;
import org.opentripplanner.service.vehicleparking.VehicleParkingRepository;
import org.opentripplanner.service.vehicleparking.VehicleParkingService;
import org.opentripplanner.service.vehicleparking.configure.VehicleParkingServiceModule;
import org.opentripplanner.service.vehiclerental.VehicleRentalRepository;
import org.opentripplanner.service.vehiclerental.VehicleRentalService;
import org.opentripplanner.service.vehiclerental.configure.VehicleRentalRepositoryModule;
import org.opentripplanner.service.vehiclerental.configure.VehicleRentalServiceModule;
import org.opentripplanner.service.worldenvelope.WorldEnvelopeRepository;
import org.opentripplanner.service.worldenvelope.WorldEnvelopeService;
import org.opentripplanner.service.worldenvelope.configure.WorldEnvelopeServiceModule;
import org.opentripplanner.standalone.api.OtpServerRequestContext;
import org.opentripplanner.standalone.config.ConfigModel;
import org.opentripplanner.standalone.config.configure.ConfigModule;
import org.opentripplanner.standalone.server.MetricsLogging;
import org.opentripplanner.street.model.StreetLimitationParameters;
import org.opentripplanner.street.service.StreetLimitationParametersServiceModule;
import org.opentripplanner.transit.configure.TransitModule;
import org.opentripplanner.transit.service.TimetableRepository;
import org.opentripplanner.transit.service.TransitService;
import org.opentripplanner.updater.trip.TimetableSnapshotManager;
import org.opentripplanner.visualizer.GraphVisualizer;

/**
 * A Factory used by the Dagger dependency injection system to create the components of OTP, which
 * are then wired up to construct the application.
 */
@Singleton
@Component(
  modules = {
    ConfigModule.class,
    ConstructApplicationModule.class,
    EmissionsServiceModule.class,
    GeocoderModule.class,
    InteractiveLauncherModule.class,
    RealtimeVehicleServiceModule.class,
    RealtimeVehicleRepositoryModule.class,
    RideHailingServicesModule.class,
    SchemaModule.class,
    SorlandsbanenNorwayModule.class,
    StopConsolidationServiceModule.class,
    StreetLimitationParametersServiceModule.class,
    TransitModule.class,
    VehicleParkingServiceModule.class,
    VehicleRentalRepositoryModule.class,
    VehicleRentalServiceModule.class,
    ViaModule.class,
    WorldEnvelopeServiceModule.class,
  }
)
public interface ConstructApplicationFactory {
  ConfigModel config();
  RaptorConfig raptorConfig();
  Graph graph();
  TimetableRepository timetableRepository();
  WorldEnvelopeRepository worldEnvelopeRepository();
  WorldEnvelopeService worldEnvelopeService();
  RealtimeVehicleRepository realtimeVehicleRepository();
  RealtimeVehicleService realtimeVehicleService();
  VehicleRentalRepository vehicleRentalRepository();
  VehicleRentalService vehicleRentalService();
  VehicleParkingRepository vehicleParkingRepository();
  VehicleParkingService vehicleParkingService();
  TimetableSnapshotManager timetableSnapshotManager();
  DataImportIssueSummary dataImportIssueSummary();

  @Nullable
  EmissionsDataModel emissionsDataModel();

  @Nullable
  GraphVisualizer graphVisualizer();

  TransitService transitService();
  OtpServerRequestContext createServerContext();

  MetricsLogging metricsLogging();

  ViaCoordinateTransferFactory viaTransferResolver();

  @Nullable
  StopConsolidationRepository stopConsolidationRepository();

  StreetLimitationParameters streetLimitationParameters();

  @Nullable
  SorlandsbanenNorwayService enturSorlandsbanenService();

  @Nullable
  GraphQLSchema schema();

  @Nullable
  LuceneIndex luceneIndex();

  @Component.Builder
  interface Builder {
    @BindsInstance
    Builder configModel(ConfigModel config);

    @BindsInstance
    Builder graph(Graph graph);

    @BindsInstance
    Builder timetableRepository(TimetableRepository timetableRepository);

    @BindsInstance
    Builder graphVisualizer(@Nullable GraphVisualizer graphVisualizer);

    @BindsInstance
    Builder worldEnvelopeRepository(WorldEnvelopeRepository worldEnvelopeRepository);

    @BindsInstance
    Builder stopConsolidationRepository(
      @Nullable StopConsolidationRepository stopConsolidationRepository
    );

    @BindsInstance
    Builder vehicleParkingRepository(VehicleParkingRepository parkingRepository);

    @BindsInstance
    Builder dataImportIssueSummary(DataImportIssueSummary issueSummary);

    @BindsInstance
    Builder emissionsDataModel(EmissionsDataModel emissionsDataModel);

    @BindsInstance
    Builder schema(RouteRequest defaultRouteRequest);

    @BindsInstance
    Builder streetLimitationParameters(StreetLimitationParameters streetLimitationParameters);

    ConstructApplicationFactory build();
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy