Hack.smali

.class public Lorg/acdd/hack/Hack;
.super Ljava/lang/Object;
.source "Hack.java"


# annotations
.annotation system Ldalvik/annotation/MemberClasses;
    value = {
        Lorg/acdd/hack/Hack$HackedMethod;,
        Lorg/acdd/hack/Hack$HackedField;,
        Lorg/acdd/hack/Hack$HackedConstructor;,
        Lorg/acdd/hack/Hack$HackedClass;,
        Lorg/acdd/hack/Hack$HackDeclaration;,
        Lorg/acdd/hack/Hack$AssertionFailureHandler;
    }
.end annotation


# static fields
.field private static sFailureHandler:Lorg/acdd/hack/Hack$AssertionFailureHandler;


# direct methods
.method private constructor <init>()V
    .registers 1

    .prologue
    .line 331
    invoke-direct {p0}, Ljava/lang/Object;-><init>()V

    .line 332
    return-void
.end method

.method static synthetic access$000(Lorg/acdd/hack/Hack$HackDeclaration$HackAssertionException;)V
    .registers 1
    .annotation system Ldalvik/annotation/Throws;
        value = {
            Lorg/acdd/hack/Hack$HackDeclaration$HackAssertionException;
        }
    .end annotation

    .prologue
    .line 39
    invoke-static {p0}, Lorg/acdd/hack/Hack;->fail(Lorg/acdd/hack/Hack$HackDeclaration$HackAssertionException;)V

    return-void
.end method

.method private static fail(Lorg/acdd/hack/Hack$HackDeclaration$HackAssertionException;)V
    .registers 2
    .annotation system Ldalvik/annotation/Throws;
        value = {
            Lorg/acdd/hack/Hack$HackDeclaration$HackAssertionException;
        }
    .end annotation

    .prologue
    .line 320
    sget-object v0, Lorg/acdd/hack/Hack;->sFailureHandler:Lorg/acdd/hack/Hack$AssertionFailureHandler;

    if-eqz v0, :cond_c

    sget-object v0, Lorg/acdd/hack/Hack;->sFailureHandler:Lorg/acdd/hack/Hack$AssertionFailureHandler;

    .line 321
    invoke-interface {v0, p0}, Lorg/acdd/hack/Hack$AssertionFailureHandler;->onAssertionFailure(Lorg/acdd/hack/Hack$HackDeclaration$HackAssertionException;)Z

    move-result v0

    if-nez v0, :cond_d

    .line 322
    :cond_c
    throw p0

    .line 324
    :cond_d
    return-void
.end method

.method public static into(Ljava/lang/Class;)Lorg/acdd/hack/Hack$HackedClass;
    .registers 2
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "<T:",
            "Ljava/lang/Object;",
            ">(",
            "Ljava/lang/Class",
            "<TT;>;)",
            "Lorg/acdd/hack/Hack$HackedClass",
            "<TT;>;"
        }
    .end annotation

    .prologue
    .line 305
    new-instance v0, Lorg/acdd/hack/Hack$HackedClass;

    invoke-direct {v0, p0}, Lorg/acdd/hack/Hack$HackedClass;-><init>(Ljava/lang/Class;)V

    return-object v0
.end method

.method public static into(Ljava/lang/String;)Lorg/acdd/hack/Hack$HackedClass;
    .registers 3
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "<T:",
            "Ljava/lang/Object;",
            ">(",
            "Ljava/lang/String;",
            ")",
            "Lorg/acdd/hack/Hack$HackedClass",
            "<TT;>;"
        }
    .end annotation

    .annotation system Ldalvik/annotation/Throws;
        value = {
            Lorg/acdd/hack/Hack$HackDeclaration$HackAssertionException;
        }
    .end annotation

    .prologue
    .line 311
    :try_start_0
    new-instance v0, Lorg/acdd/hack/Hack$HackedClass;

    invoke-static {p0}, Ljava/lang/Class;->forName(Ljava/lang/String;)Ljava/lang/Class;

    move-result-object v1

    invoke-direct {v0, v1}, Lorg/acdd/hack/Hack$HackedClass;-><init>(Ljava/lang/Class;)V
    :try_end_9
    .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_9} :catch_a

    .line 314
    :goto_9
    return-object v0

    .line 312
    :catch_a
    move-exception v0

    .line 313
    new-instance v1, Lorg/acdd/hack/Hack$HackDeclaration$HackAssertionException;

    invoke-direct {v1, v0}, Lorg/acdd/hack/Hack$HackDeclaration$HackAssertionException;-><init>(Ljava/lang/Exception;)V

    invoke-static {v1}, Lorg/acdd/hack/Hack;->fail(Lorg/acdd/hack/Hack$HackDeclaration$HackAssertionException;)V

    .line 314
    new-instance v0, Lorg/acdd/hack/Hack$HackedClass;

    const/4 v1, 0x0

    invoke-direct {v0, v1}, Lorg/acdd/hack/Hack$HackedClass;-><init>(Ljava/lang/Class;)V

    goto :goto_9
.end method

.method public static setAssertionFailureHandler(Lorg/acdd/hack/Hack$AssertionFailureHandler;)V
    .registers 1

    .prologue
    .line 328
    sput-object p0, Lorg/acdd/hack/Hack;->sFailureHandler:Lorg/acdd/hack/Hack$AssertionFailureHandler;

    .line 329
    return-void
.end method