// Generated by dagger.internal.codegen.ComponentProcessor (https://google.github.io/dagger).
package com.example.dagger2_20210703.di;

import dagger.internal.DoubleCheck;
import dagger.internal.Preconditions;
import javax.inject.Provider;

public final class DaggerPresenterComponent implements PresenterComponent {
  private Provider<Presenter> providePresenterProvider;

  private DaggerPresenterComponent(Builder builder) {
    assert builder != null;
    initialize(builder);
  }

  public static Builder builder() {
    return new Builder();
  }

  @SuppressWarnings("unchecked")
  private void initialize(final Builder builder) {

    this.providePresenterProvider =
        DoubleCheck.provider(
            PresenterModule_ProvidePresenterFactory.create(builder.presenterModule));
  }

  @Override
  public Presenter providerPresenter() {
    return providePresenterProvider.get();
  }

  public static final class Builder {
    private PresenterModule presenterModule;

    private Builder() {}

    public PresenterComponent build() {
      if (presenterModule == null) {
        throw new IllegalStateException(PresenterModule.class.getCanonicalName() + " must be set");
      }
      return new DaggerPresenterComponent(this);
    }

    public Builder presenterModule(PresenterModule presenterModule) {
      this.presenterModule = Preconditions.checkNotNull(presenterModule);
      return this;
    }
  }
}
