granularity level: instruction

		.class  Lcom/google/firebase/components/OptionalProvider;
.super Ljava/lang/Object;
.source "OptionalProvider.java"
.implements Lcom/google/firebase/inject/Provider;
.implements Lcom/google/firebase/inject/Deferred;

.annotation system Ldalvik/annotation/Signature;
value = {
"<T:",
"Ljava/lang/Object;",
">",
"Ljava/lang/Object;",
"Lcom/google/firebase/inject/Provider<",
"TT;>;",
"Lcom/google/firebase/inject/Deferred<",
"TT;>;"
}
.end annotation

.field private static final EMPTY_PROVIDER:Lcom/google/firebase/inject/Provider;
.annotation system Ldalvik/annotation/Signature;
value = {
"Lcom/google/firebase/inject/Provider<",
"Ljava/lang/Object;",
">;"
}
.end annotation
.end field
.field private static final NOOP_HANDLER:Lcom/google/firebase/inject/Deferred$DeferredHandler;
.annotation system Ldalvik/annotation/Signature;
value = {
"Lcom/google/firebase/inject/Deferred$DeferredHandler<",
"Ljava/lang/Object;",
">;"
}
.end annotation
.end field
.field private volatile delegate:Lcom/google/firebase/inject/Provider;
.annotation system Ldalvik/annotation/Signature;
value = {
"Lcom/google/firebase/inject/Provider<",
"TT;>;"
}
.end annotation
.end field
.field private handler:Lcom/google/firebase/inject/Deferred$DeferredHandler;
.annotation system Ldalvik/annotation/Signature;
value = {
"Lcom/google/firebase/inject/Deferred$DeferredHandler<",
"TT;>;"
}
.end annotation
.end field


.method static constructor <clinit>()V
	.locals 1

	new-instance v0, Lcom/google/firebase/components/OptionalProvider$$ExternalSyntheticLambda0;
	invoke-direct {v0}, Lcom/google/firebase/components/OptionalProvider$$ExternalSyntheticLambda0;-><init>()V
	sput-object v0, Lcom/google/firebase/components/OptionalProvider;->NOOP_HANDLER:Lcom/google/firebase/inject/Deferred$DeferredHandler;
	new-instance v0, Lcom/google/firebase/components/OptionalProvider$$ExternalSyntheticLambda1;
	invoke-direct {v0}, Lcom/google/firebase/components/OptionalProvider$$ExternalSyntheticLambda1;-><init>()V
	sput-object v0, Lcom/google/firebase/components/OptionalProvider;->EMPTY_PROVIDER:Lcom/google/firebase/inject/Provider;
	return-void
.end method

.method private constructor <init>(Lcom/google/firebase/inject/Deferred$DeferredHandler;Lcom/google/firebase/inject/Provider;)V
	.locals 0
	.annotation system Ldalvik/annotation/Signature;
	value = {
	"(",
	"Lcom/google/firebase/inject/Deferred$DeferredHandler<",
	"TT;>;",
	"Lcom/google/firebase/inject/Provider<",
	"TT;>;)V"
	}
	.end annotation

	invoke-direct {p0}, Ljava/lang/Object;-><init>()V
	iput-object p1, p0, Lcom/google/firebase/components/OptionalProvider;->handler:Lcom/google/firebase/inject/Deferred$DeferredHandler;
	iput-object p2, p0, Lcom/google/firebase/components/OptionalProvider;->delegate:Lcom/google/firebase/inject/Provider;
	return-void
.end method

.method static empty()Lcom/google/firebase/components/OptionalProvider;
	.locals 3
	.annotation system Ldalvik/annotation/Signature;
	value = {
	"<T:",
	"Ljava/lang/Object;",
	">()",
	"Lcom/google/firebase/components/OptionalProvider<",
	"TT;>;"
	}
	.end annotation

	new-instance v0, Lcom/google/firebase/components/OptionalProvider;
	sget-object v1, Lcom/google/firebase/components/OptionalProvider;->NOOP_HANDLER:Lcom/google/firebase/inject/Deferred$DeferredHandler;
	sget-object v2, Lcom/google/firebase/components/OptionalProvider;->EMPTY_PROVIDER:Lcom/google/firebase/inject/Provider;
	invoke-direct {v0, v1, v2}, Lcom/google/firebase/components/OptionalProvider;-><init>(Lcom/google/firebase/inject/Deferred$DeferredHandler;Lcom/google/firebase/inject/Provider;)V
	return-object v0
.end method

.method static synthetic lambda$static$0(Lcom/google/firebase/inject/Provider;)V
	.locals 0

	return-void
.end method

.method static synthetic lambda$static$1()Ljava/lang/Object;
	.locals 1

	const/4 v0, 0x0
	return-object v0
.end method

.method static synthetic lambda$whenAvailable$2(Lcom/google/firebase/inject/Deferred$DeferredHandler;Lcom/google/firebase/inject/Deferred$DeferredHandler;Lcom/google/firebase/inject/Provider;)V
	.locals 0

	invoke-interface {p0, p2}, Lcom/google/firebase/inject/Deferred$DeferredHandler;->handle(Lcom/google/firebase/inject/Provider;)V
	invoke-interface {p1, p2}, Lcom/google/firebase/inject/Deferred$DeferredHandler;->handle(Lcom/google/firebase/inject/Provider;)V
	return-void
.end method

.method static of(Lcom/google/firebase/inject/Provider;)Lcom/google/firebase/components/OptionalProvider;
	.locals 2
	.annotation system Ldalvik/annotation/Signature;
	value = {
	"<T:",
	"Ljava/lang/Object;",
	">(",
	"Lcom/google/firebase/inject/Provider<",
	"TT;>;)",
	"Lcom/google/firebase/components/OptionalProvider<",
	"TT;>;"
	}
	.end annotation

	new-instance v0, Lcom/google/firebase/components/OptionalProvider;
	const/4 v1, 0x0
	invoke-direct {v0, v1, p0}, Lcom/google/firebase/components/OptionalProvider;-><init>(Lcom/google/firebase/inject/Deferred$DeferredHandler;Lcom/google/firebase/inject/Provider;)V
	return-object v0
.end method

.method public get()Ljava/lang/Object;
	.locals 1
	.annotation system Ldalvik/annotation/Signature;
	value = {
	"()TT;"
	}
	.end annotation

	iget-object v0, p0, Lcom/google/firebase/components/OptionalProvider;->delegate:Lcom/google/firebase/inject/Provider;
	invoke-interface {v0}, Lcom/google/firebase/inject/Provider;->get()Ljava/lang/Object;
	move-result-object v0
	return-object v0
.end method

.method  set(Lcom/google/firebase/inject/Provider;)V
	.locals 2
	.annotation system Ldalvik/annotation/Signature;
	value = {
	"(",
	"Lcom/google/firebase/inject/Provider<",
	"TT;>;)V"
	}
	.end annotation

	iget-object v0, p0, Lcom/google/firebase/components/OptionalProvider;->delegate:Lcom/google/firebase/inject/Provider;
	sget-object v1, Lcom/google/firebase/components/OptionalProvider;->EMPTY_PROVIDER:Lcom/google/firebase/inject/Provider;
	if-ne v0, v1, :cond_0
	monitor-enter p0
	:try_start_0
	iget-object v0, p0, Lcom/google/firebase/components/OptionalProvider;->handler:Lcom/google/firebase/inject/Deferred$DeferredHandler;
	const/4 v1, 0x0
	iput-object v1, p0, Lcom/google/firebase/components/OptionalProvider;->handler:Lcom/google/firebase/inject/Deferred$DeferredHandler;
	iput-object p1, p0, Lcom/google/firebase/components/OptionalProvider;->delegate:Lcom/google/firebase/inject/Provider;
	monitor-exit p0
	:try_end_0
	.catchall {:try_start_0 .. :try_end_0} :catchall_0
	invoke-interface {v0, p1}, Lcom/google/firebase/inject/Deferred$DeferredHandler;->handle(Lcom/google/firebase/inject/Provider;)V
	return-void
	:catchall_0
	move-exception p1
	:try_start_1
	monitor-exit p0
	:try_end_1
	.catchall {:try_start_1 .. :try_end_1} :catchall_0
	throw p1
	:cond_0
	new-instance p1, Ljava/lang/IllegalStateException;
	const-string v0, "provide() can be called only once."
	invoke-direct {p1, v0}, Ljava/lang/IllegalStateException;-><init>(Ljava/lang/String;)V
	throw p1
.end method

.method public whenAvailable(Lcom/google/firebase/inject/Deferred$DeferredHandler;)V
	.locals 4
	.annotation system Ldalvik/annotation/Signature;
	value = {
	"(",
	"Lcom/google/firebase/inject/Deferred$DeferredHandler<",
	"TT;>;)V"
	}
	.end annotation

	iget-object v0, p0, Lcom/google/firebase/components/OptionalProvider;->delegate:Lcom/google/firebase/inject/Provider;
	sget-object v1, Lcom/google/firebase/components/OptionalProvider;->EMPTY_PROVIDER:Lcom/google/firebase/inject/Provider;
	if-eq v0, v1, :cond_0
	invoke-interface {p1, v0}, Lcom/google/firebase/inject/Deferred$DeferredHandler;->handle(Lcom/google/firebase/inject/Provider;)V
	return-void
	:cond_0
	const/4 v0, 0x0
	monitor-enter p0
	:try_start_0
	iget-object v2, p0, Lcom/google/firebase/components/OptionalProvider;->delegate:Lcom/google/firebase/inject/Provider;
	if-eq v2, v1, :cond_1
	move-object v0, v2
	goto :goto_0
	:cond_1
	iget-object v1, p0, Lcom/google/firebase/components/OptionalProvider;->handler:Lcom/google/firebase/inject/Deferred$DeferredHandler;
	new-instance v3, Lcom/google/firebase/components/OptionalProvider$$ExternalSyntheticLambda2;
	invoke-direct {v3, v1, p1}, Lcom/google/firebase/components/OptionalProvider$$ExternalSyntheticLambda2;-><init>(Lcom/google/firebase/inject/Deferred$DeferredHandler;Lcom/google/firebase/inject/Deferred$DeferredHandler;)V
	iput-object v3, p0, Lcom/google/firebase/components/OptionalProvider;->handler:Lcom/google/firebase/inject/Deferred$DeferredHandler;
	:goto_0
	monitor-exit p0
	:try_end_0
	.catchall {:try_start_0 .. :try_end_0} :catchall_0
	if-eqz v0, :cond_2
	invoke-interface {p1, v2}, Lcom/google/firebase/inject/Deferred$DeferredHandler;->handle(Lcom/google/firebase/inject/Provider;)V
	:cond_2
	return-void
	:catchall_0
	move-exception p1
	:try_start_1
	monitor-exit p0
	:try_end_1
	.catchall {:try_start_1 .. :try_end_1} :catchall_0
	throw p1
.end method