Throwables.smali
.class public final Lcom/facebook/common/internal/Throwables;
.super Ljava/lang/Object;
.source "Throwables.java"
# direct methods
.method private constructor <init>()V
.registers 1
.line 39
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
.method public static getCausalChain(Ljava/lang/Throwable;)Ljava/util/List;
.registers 3
.annotation system Ldalvik/annotation/MethodParameters;
accessFlags = {
0x0
}
names = {
"throwable"
}
.end annotation
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/lang/Throwable;",
")",
"Ljava/util/List<",
"Ljava/lang/Throwable;",
">;"
}
.end annotation
.line 190
invoke-static {p0}, Lcom/facebook/common/internal/Preconditions;->checkNotNull(Ljava/lang/Object;)Ljava/lang/Object;
.line 191
new-instance v0, Ljava/util/ArrayList;
const/4 v1, 0x4
invoke-direct {v0, v1}, Ljava/util/ArrayList;-><init>(I)V
:goto_9
if-eqz p0, :cond_13
.line 193
invoke-interface {v0, p0}, Ljava/util/List;->add(Ljava/lang/Object;)Z
.line 194
invoke-virtual {p0}, Ljava/lang/Throwable;->getCause()Ljava/lang/Throwable;
move-result-object p0
goto :goto_9
.line 196
:cond_13
invoke-static {v0}, Ljava/util/Collections;->unmodifiableList(Ljava/util/List;)Ljava/util/List;
move-result-object p0
return-object p0
.end method
.method public static getRootCause(Ljava/lang/Throwable;)Ljava/lang/Throwable;
.registers 2
.annotation system Ldalvik/annotation/MethodParameters;
accessFlags = {
0x0
}
names = {
"throwable"
}
.end annotation
.line 168
:goto_0
invoke-virtual {p0}, Ljava/lang/Throwable;->getCause()Ljava/lang/Throwable;
move-result-object v0
if-eqz v0, :cond_8
move-object p0, v0
goto :goto_0
:cond_8
return-object p0
.end method
.method public static getStackTraceAsString(Ljava/lang/Throwable;)Ljava/lang/String;
.registers 3
.annotation system Ldalvik/annotation/MethodParameters;
accessFlags = {
0x0
}
names = {
"throwable"
}
.end annotation
.line 206
new-instance v0, Ljava/io/StringWriter;
invoke-direct {v0}, Ljava/io/StringWriter;-><init>()V
.line 207
new-instance v1, Ljava/io/PrintWriter;
invoke-direct {v1, v0}, Ljava/io/PrintWriter;-><init>(Ljava/io/Writer;)V
invoke-virtual {p0, v1}, Ljava/lang/Throwable;->printStackTrace(Ljava/io/PrintWriter;)V
.line 208
invoke-virtual {v0}, Ljava/io/StringWriter;->toString()Ljava/lang/String;
move-result-object p0
return-object p0
.end method
.method public static propagate(Ljava/lang/Throwable;)Ljava/lang/RuntimeException;
.registers 2
.annotation system Ldalvik/annotation/MethodParameters;
accessFlags = {
0x0
}
names = {
"throwable"
}
.end annotation
.line 153
invoke-static {p0}, Lcom/facebook/common/internal/Preconditions;->checkNotNull(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Ljava/lang/Throwable;
invoke-static {v0}, Lcom/facebook/common/internal/Throwables;->propagateIfPossible(Ljava/lang/Throwable;)V
.line 154
new-instance v0, Ljava/lang/RuntimeException;
invoke-direct {v0, p0}, Ljava/lang/RuntimeException;-><init>(Ljava/lang/Throwable;)V
throw v0
.end method
.method public static propagateIfInstanceOf(Ljava/lang/Throwable;Ljava/lang/Class;)V
.registers 3
.param p0 # Ljava/lang/Throwable;
.annotation runtime Ljavax/annotation/Nullable;
.end annotation
.end param
.annotation system Ldalvik/annotation/MethodParameters;
accessFlags = {
0x0,
0x0
}
names = {
"throwable",
"declaredType"
}
.end annotation
.annotation system Ldalvik/annotation/Signature;
value = {
"<X:",
"Ljava/lang/Throwable;",
">(",
"Ljava/lang/Throwable;",
"Ljava/lang/Class<",
"TX;>;)V^TX;"
}
.end annotation
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/lang/Throwable;
}
.end annotation
if-eqz p0, :cond_10
.line 60
invoke-virtual {p1, p0}, Ljava/lang/Class;->isInstance(Ljava/lang/Object;)Z
move-result v0
if-nez v0, :cond_9
goto :goto_10
.line 61
:cond_9
invoke-virtual {p1, p0}, Ljava/lang/Class;->cast(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object p0
check-cast p0, Ljava/lang/Throwable;
throw p0
:cond_10
:goto_10
return-void
.end method
.method public static propagateIfPossible(Ljava/lang/Throwable;)V
.registers 2
.param p0 # Ljava/lang/Throwable;
.annotation runtime Ljavax/annotation/Nullable;
.end annotation
.end param
.annotation system Ldalvik/annotation/MethodParameters;
accessFlags = {
0x0
}
names = {
"throwable"
}
.end annotation
.line 81
const-class v0, Ljava/lang/Error;
invoke-static {p0, v0}, Lcom/facebook/common/internal/Throwables;->propagateIfInstanceOf(Ljava/lang/Throwable;Ljava/lang/Class;)V
.line 82
const-class v0, Ljava/lang/RuntimeException;
invoke-static {p0, v0}, Lcom/facebook/common/internal/Throwables;->propagateIfInstanceOf(Ljava/lang/Throwable;Ljava/lang/Class;)V
return-void
.end method
.method public static propagateIfPossible(Ljava/lang/Throwable;Ljava/lang/Class;)V
.registers 2
.param p0 # Ljava/lang/Throwable;
.annotation runtime Ljavax/annotation/Nullable;
.end annotation
.end param
.annotation system Ldalvik/annotation/MethodParameters;
accessFlags = {
0x0,
0x0
}
names = {
"throwable",
"declaredType"
}
.end annotation
.annotation system Ldalvik/annotation/Signature;
value = {
"<X:",
"Ljava/lang/Throwable;",
">(",
"Ljava/lang/Throwable;",
"Ljava/lang/Class<",
"TX;>;)V^TX;"
}
.end annotation
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/lang/Throwable;
}
.end annotation
.line 105
invoke-static {p0, p1}, Lcom/facebook/common/internal/Throwables;->propagateIfInstanceOf(Ljava/lang/Throwable;Ljava/lang/Class;)V
.line 106
invoke-static {p0}, Lcom/facebook/common/internal/Throwables;->propagateIfPossible(Ljava/lang/Throwable;)V
return-void
.end method
.method public static propagateIfPossible(Ljava/lang/Throwable;Ljava/lang/Class;Ljava/lang/Class;)V
.registers 3
.param p0 # Ljava/lang/Throwable;
.annotation runtime Ljavax/annotation/Nullable;
.end annotation
.end param
.annotation system Ldalvik/annotation/MethodParameters;
accessFlags = {
0x0,
0x0,
0x0
}
names = {
"throwable",
"declaredType1",
"declaredType2"
}
.end annotation
.annotation system Ldalvik/annotation/Signature;
value = {
"<X1:",
"Ljava/lang/Throwable;",
"X2:",
"Ljava/lang/Throwable;",
">(",
"Ljava/lang/Throwable;",
"Ljava/lang/Class<",
"TX1;>;",
"Ljava/lang/Class<",
"TX2;>;)V^TX1;^TX2;"
}
.end annotation
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/lang/Throwable;,
Ljava/lang/Throwable;
}
.end annotation
.line 123
invoke-static {p2}, Lcom/facebook/common/internal/Preconditions;->checkNotNull(Ljava/lang/Object;)Ljava/lang/Object;
.line 124
invoke-static {p0, p1}, Lcom/facebook/common/internal/Throwables;->propagateIfInstanceOf(Ljava/lang/Throwable;Ljava/lang/Class;)V
.line 125
invoke-static {p0, p2}, Lcom/facebook/common/internal/Throwables;->propagateIfPossible(Ljava/lang/Throwable;Ljava/lang/Class;)V
return-void
.end method