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

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

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

import dagger.BindsInstance;
import dagger.Component;
import jakarta.inject.Singleton;
import org.opentripplanner.datastore.OtpDataStore;
import org.opentripplanner.datastore.configure.DataStoreModule;
import org.opentripplanner.ext.datastore.gs.GsDataSourceModule;
import org.opentripplanner.ext.emissions.EmissionsDataModel;
import org.opentripplanner.ext.stopconsolidation.StopConsolidationRepository;
import org.opentripplanner.ext.stopconsolidation.configure.StopConsolidationRepositoryModule;
import org.opentripplanner.graph_builder.GraphBuilderDataSources;
import org.opentripplanner.routing.graph.Graph;
import org.opentripplanner.service.osminfo.OsmInfoGraphBuildRepository;
import org.opentripplanner.service.osminfo.configure.OsmInfoGraphBuildRepositoryModule;
import org.opentripplanner.service.vehicleparking.VehicleParkingRepository;
import org.opentripplanner.service.vehicleparking.configure.VehicleParkingRepositoryModule;
import org.opentripplanner.service.worldenvelope.WorldEnvelopeRepository;
import org.opentripplanner.service.worldenvelope.configure.WorldEnvelopeRepositoryModule;
import org.opentripplanner.standalone.config.CommandLineParameters;
import org.opentripplanner.standalone.config.ConfigModel;
import org.opentripplanner.standalone.config.configure.LoadConfigModule;
import org.opentripplanner.street.model.StreetLimitationParameters;
import org.opentripplanner.transit.service.TimetableRepository;

/**
 * Dagger dependency injection Factory to create components for the OTP load application phase.
 */
@Singleton
@Component(
  modules = {
    LoadConfigModule.class,
    DataStoreModule.class,
    GsDataSourceModule.class,
    OsmInfoGraphBuildRepositoryModule.class,
    WorldEnvelopeRepositoryModule.class,
    StopConsolidationRepositoryModule.class,
    VehicleParkingRepositoryModule.class,
  }
)
public interface LoadApplicationFactory {
  OtpDataStore datastore();

  ConfigModel configModel();

  @Singleton
  Graph emptyGraph();

  @Singleton
  OsmInfoGraphBuildRepository emptyOsmInfoGraphBuildRepository();

  @Singleton
  TimetableRepository emptyTimetableRepository();

  @Singleton
  WorldEnvelopeRepository emptyWorldEnvelopeRepository();

  @Singleton
  GraphBuilderDataSources graphBuilderDataSources();

  @Singleton
  EmissionsDataModel emptyEmissionsDataModel();

  @Singleton
  StopConsolidationRepository emptyStopConsolidationRepository();

  @Singleton
  StreetLimitationParameters emptyStreetLimitationParameters();

  @Singleton
  VehicleParkingRepository emptyVehicleParkingRepository();

  @Component.Builder
  interface Builder {
    @BindsInstance
    Builder commandLineParameters(CommandLineParameters cli);

    LoadApplicationFactory build();
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy