package com.optix.android.tools.engine;

import com.optix.android.domain.repository.SettingsRepository;
import dagger.internal.DaggerGenerated;
import dagger.internal.Factory;
import dagger.internal.QualifierMetadata;
import dagger.internal.ScopeMetadata;
import javax.annotation.processing.Generated;
import javax.inject.Provider;

@ScopeMetadata("javax.inject.Singleton")
@QualifierMetadata
@DaggerGenerated
@Generated(
    value = "dagger.internal.codegen.ComponentProcessor",
    comments = "https://dagger.dev"
)
@SuppressWarnings({
    "unchecked",
    "rawtypes",
    "KotlinInternal",
    "KotlinInternalInJava",
    "cast",
    "deprecation"
})
public final class ToolExecutionEngine_Factory implements Factory<ToolExecutionEngine> {
  private final Provider<SettingsRepository> settingsRepositoryProvider;

  private final Provider<ShellExecutor> shellExecutorProvider;

  private final Provider<EnvironmentManager> environmentManagerProvider;

  public ToolExecutionEngine_Factory(Provider<SettingsRepository> settingsRepositoryProvider,
      Provider<ShellExecutor> shellExecutorProvider,
      Provider<EnvironmentManager> environmentManagerProvider) {
    this.settingsRepositoryProvider = settingsRepositoryProvider;
    this.shellExecutorProvider = shellExecutorProvider;
    this.environmentManagerProvider = environmentManagerProvider;
  }

  @Override
  public ToolExecutionEngine get() {
    return newInstance(settingsRepositoryProvider.get(), shellExecutorProvider.get(), environmentManagerProvider.get());
  }

  public static ToolExecutionEngine_Factory create(
      Provider<SettingsRepository> settingsRepositoryProvider,
      Provider<ShellExecutor> shellExecutorProvider,
      Provider<EnvironmentManager> environmentManagerProvider) {
    return new ToolExecutionEngine_Factory(settingsRepositoryProvider, shellExecutorProvider, environmentManagerProvider);
  }

  public static ToolExecutionEngine newInstance(SettingsRepository settingsRepository,
      ShellExecutor shellExecutor, EnvironmentManager environmentManager) {
    return new ToolExecutionEngine(settingsRepository, shellExecutor, environmentManager);
  }
}
