l.smali

.class public Lcom/subgraph/orchid/directory/l;
.super Ljava/lang/Object;
.source "StateFile.java"


# static fields
.field static final logger:Ljava/util/logging/Logger;


# instance fields
.field final bBs:Lcom/subgraph/orchid/j;

.field final bCk:Lcom/subgraph/orchid/crypto/q;

.field final bIg:Ljava/util/List;
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "Ljava/util/List",
            "<",
            "Lcom/subgraph/orchid/directory/j;",
            ">;"
        }
    .end annotation
.end field

.field final bIh:Ljava/text/DateFormat;

.field private final bIi:Lcom/subgraph/orchid/DirectoryStore;


# direct methods
.method static constructor <clinit>()V
    .registers 1

    .prologue
    .line 21
    const-class v0, Lcom/subgraph/orchid/directory/l;

    invoke-virtual {v0}, Ljava/lang/Class;->getName()Ljava/lang/String;

    move-result-object v0

    invoke-static {v0}, Ljava/util/logging/Logger;->getLogger(Ljava/lang/String;)Ljava/util/logging/Logger;

    move-result-object v0

    sput-object v0, Lcom/subgraph/orchid/directory/l;->logger:Ljava/util/logging/Logger;

    return-void
.end method

.method constructor <init>(Lcom/subgraph/orchid/DirectoryStore;Lcom/subgraph/orchid/j;)V
    .registers 5

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

    .line 30
    new-instance v0, Ljava/util/ArrayList;

    invoke-direct {v0}, Ljava/util/ArrayList;-><init>()V

    iput-object v0, p0, Lcom/subgraph/orchid/directory/l;->bIg:Ljava/util/List;

    .line 31
    new-instance v0, Lcom/subgraph/orchid/crypto/q;

    invoke-direct {v0}, Lcom/subgraph/orchid/crypto/q;-><init>()V

    iput-object v0, p0, Lcom/subgraph/orchid/directory/l;->bCk:Lcom/subgraph/orchid/crypto/q;

    .line 32
    new-instance v0, Ljava/text/SimpleDateFormat;

    const-string v1, "yyyy-MM-dd HH:mm:ss"

    invoke-direct {v0, v1}, Ljava/text/SimpleDateFormat;-><init>(Ljava/lang/String;)V

    iput-object v0, p0, Lcom/subgraph/orchid/directory/l;->bIh:Ljava/text/DateFormat;

    .line 101
    iput-object p1, p0, Lcom/subgraph/orchid/directory/l;->bIi:Lcom/subgraph/orchid/DirectoryStore;

    .line 102
    iput-object p2, p0, Lcom/subgraph/orchid/directory/l;->bBs:Lcom/subgraph/orchid/j;

    .line 103
    return-void
.end method

.method private Np()Ljava/nio/ByteBuffer;
    .registers 5

    .prologue
    .line 158
    new-instance v1, Ljava/lang/StringBuilder;

    invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V

    .line 159
    iget-object v2, p0, Lcom/subgraph/orchid/directory/l;->bIg:Ljava/util/List;

    monitor-enter v2

    .line 160
    :try_start_8
    iget-object v0, p0, Lcom/subgraph/orchid/directory/l;->bIg:Ljava/util/List;

    invoke-interface {v0}, Ljava/util/List;->iterator()Ljava/util/Iterator;

    move-result-object v3

    :goto_e
    invoke-interface {v3}, Ljava/util/Iterator;->hasNext()Z

    move-result v0

    if-eqz v0, :cond_25

    invoke-interface {v3}, Ljava/util/Iterator;->next()Ljava/lang/Object;

    move-result-object v0

    check-cast v0, Lcom/subgraph/orchid/directory/j;

    .line 161
    invoke-virtual {v0}, Lcom/subgraph/orchid/directory/j;->Nl()Ljava/lang/String;

    move-result-object v0

    invoke-virtual {v1, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    goto :goto_e

    .line 163
    :catchall_22
    move-exception v0

    monitor-exit v2
    :try_end_24
    .catchall {:try_start_8 .. :try_end_24} :catchall_22

    throw v0

    :cond_25
    :try_start_25
    monitor-exit v2
    :try_end_26
    .catchall {:try_start_25 .. :try_end_26} :catchall_22

    .line 164
    invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v0

    invoke-static {}, Lcom/subgraph/orchid/ac;->JX()Ljava/nio/charset/Charset;

    move-result-object v1

    invoke-virtual {v0, v1}, Ljava/lang/String;->getBytes(Ljava/nio/charset/Charset;)[B

    move-result-object v0

    invoke-static {v0}, Ljava/nio/ByteBuffer;->wrap([B)Ljava/nio/ByteBuffer;

    move-result-object v0

    return-object v0
.end method

.method static synthetic a(Lcom/subgraph/orchid/directory/l;)Ljava/text/DateFormat;
    .registers 2

    .prologue
    .line 20
    iget-object v0, p0, Lcom/subgraph/orchid/directory/l;->bIh:Ljava/text/DateFormat;

    return-object v0
.end method

.method static a(Lcom/subgraph/orchid/directory/m;Lcom/subgraph/orchid/directory/j;)V
    .registers 5

    .prologue
    .line 223
    if-nez p1, :cond_a

    .line 224
    sget-object v0, Lcom/subgraph/orchid/directory/l;->logger:Ljava/util/logging/Logger;

    const-string v1, "EntryGuardAddedBy line seen before EntryGuard in state file"

    invoke-virtual {v0, v1}, Ljava/util/logging/Logger;->warning(Ljava/lang/String;)V

    .line 236
    :goto_9
    return-void

    .line 227
    :cond_a
    invoke-virtual {p0}, Lcom/subgraph/orchid/directory/m;->nextToken()Ljava/lang/String;

    move-result-object v0

    .line 228
    invoke-virtual {p0}, Lcom/subgraph/orchid/directory/m;->nextToken()Ljava/lang/String;

    move-result-object v1

    .line 229
    invoke-virtual {p0}, Lcom/subgraph/orchid/directory/m;->Ns()Ljava/util/Date;

    move-result-object v2

    .line 230
    if-eqz v0, :cond_28

    invoke-virtual {v0}, Ljava/lang/String;->isEmpty()Z

    move-result v0

    if-nez v0, :cond_28

    if-eqz v1, :cond_28

    invoke-virtual {v1}, Ljava/lang/String;->isEmpty()Z

    move-result v0

    if-nez v0, :cond_28

    if-nez v2, :cond_30

    .line 231
    :cond_28
    sget-object v0, Lcom/subgraph/orchid/directory/l;->logger:Ljava/util/logging/Logger;

    const-string v1, "Missing EntryGuardAddedBy field in state file"

    invoke-virtual {v0, v1}, Ljava/util/logging/Logger;->warning(Ljava/lang/String;)V

    goto :goto_9

    .line 1038
    :cond_30
    iput-object v1, p1, Lcom/subgraph/orchid/directory/j;->version:Ljava/lang/String;

    .line 1042
    iput-object v2, p1, Lcom/subgraph/orchid/directory/j;->bHZ:Ljava/util/Date;

    goto :goto_9
.end method

.method static b(Lcom/subgraph/orchid/directory/m;Lcom/subgraph/orchid/directory/j;)V
    .registers 5

    .prologue
    .line 239
    if-nez p1, :cond_a

    .line 240
    sget-object v0, Lcom/subgraph/orchid/directory/l;->logger:Ljava/util/logging/Logger;

    const-string v1, "EntryGuardDownSince line seen before EntryGuard in state file"

    invoke-virtual {v0, v1}, Ljava/util/logging/Logger;->warning(Ljava/lang/String;)V

    .line 1055
    :goto_9
    return-void

    .line 244
    :cond_a
    invoke-virtual {p0}, Lcom/subgraph/orchid/directory/m;->Ns()Ljava/util/Date;

    move-result-object v0

    .line 245
    invoke-virtual {p0}, Lcom/subgraph/orchid/directory/m;->Ns()Ljava/util/Date;

    move-result-object v1

    .line 246
    if-nez v0, :cond_1c

    .line 247
    sget-object v0, Lcom/subgraph/orchid/directory/l;->logger:Ljava/util/logging/Logger;

    const-string v1, "Failed to parse date field in EntryGuardDownSince line in state file"

    invoke-virtual {v0, v1}, Ljava/util/logging/Logger;->warning(Ljava/lang/String;)V

    goto :goto_9

    .line 1052
    :cond_1c
    iget-object v2, p1, Lcom/subgraph/orchid/directory/j;->lock:Ljava/lang/Object;

    monitor-enter v2

    .line 1053
    :try_start_1f
    iput-object v0, p1, Lcom/subgraph/orchid/directory/j;->bIc:Ljava/util/Date;

    .line 1054
    iput-object v1, p1, Lcom/subgraph/orchid/directory/j;->bId:Ljava/util/Date;

    .line 1055
    monitor-exit v2

    goto :goto_9

    :catchall_25
    move-exception v0

    monitor-exit v2
    :try_end_27
    .catchall {:try_start_1f .. :try_end_27} :catchall_25

    throw v0
.end method

.method static c(Lcom/subgraph/orchid/directory/m;Lcom/subgraph/orchid/directory/j;)V
    .registers 4

    .prologue
    .line 254
    if-nez p1, :cond_a

    .line 255
    sget-object v0, Lcom/subgraph/orchid/directory/l;->logger:Ljava/util/logging/Logger;

    const-string v1, "EntryGuardUnlistedSince line seen before EntryGuard in state file"

    invoke-virtual {v0, v1}, Ljava/util/logging/Logger;->warning(Ljava/lang/String;)V

    .line 2048
    :goto_9
    return-void

    .line 258
    :cond_a
    invoke-virtual {p0}, Lcom/subgraph/orchid/directory/m;->Ns()Ljava/util/Date;

    move-result-object v0

    .line 259
    if-nez v0, :cond_18

    .line 260
    sget-object v0, Lcom/subgraph/orchid/directory/l;->logger:Ljava/util/logging/Logger;

    const-string v1, "Failed to parse date field in EntryGuardUnlistedSince line in state file"

    invoke-virtual {v0, v1}, Ljava/util/logging/Logger;->warning(Ljava/lang/String;)V

    goto :goto_9

    .line 2046
    :cond_18
    iget-object v1, p1, Lcom/subgraph/orchid/directory/j;->lock:Ljava/lang/Object;

    monitor-enter v1

    .line 2047
    :try_start_1b
    iput-object v0, p1, Lcom/subgraph/orchid/directory/j;->bIb:Ljava/util/Date;

    .line 2048
    monitor-exit v1

    goto :goto_9

    :catchall_1f
    move-exception v0

    monitor-exit v1
    :try_end_21
    .catchall {:try_start_1b .. :try_end_21} :catchall_1f

    throw v0
.end method


# virtual methods
.method public final Jh()Ljava/util/List;
    .registers 4
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "()",
            "Ljava/util/List",
            "<",
            "Lcom/subgraph/orchid/p;",
            ">;"
        }
    .end annotation

    .prologue
    .line 121
    iget-object v1, p0, Lcom/subgraph/orchid/directory/l;->bIg:Ljava/util/List;

    monitor-enter v1

    .line 122
    :try_start_3
    new-instance v0, Ljava/util/ArrayList;

    iget-object v2, p0, Lcom/subgraph/orchid/directory/l;->bIg:Ljava/util/List;

    invoke-direct {v0, v2}, Ljava/util/ArrayList;-><init>(Ljava/util/Collection;)V

    monitor-exit v1

    return-object v0

    .line 123
    :catchall_c
    move-exception v0

    monitor-exit v1
    :try_end_e
    .catchall {:try_start_3 .. :try_end_e} :catchall_c

    throw v0
.end method

.method final No()V
    .registers 4

    .prologue
    .line 154
    iget-object v0, p0, Lcom/subgraph/orchid/directory/l;->bIi:Lcom/subgraph/orchid/DirectoryStore;

    sget-object v1, Lcom/subgraph/orchid/DirectoryStore$CacheFile;->STATE:Lcom/subgraph/orchid/DirectoryStore$CacheFile;

    invoke-direct {p0}, Lcom/subgraph/orchid/directory/l;->Np()Ljava/nio/ByteBuffer;

    move-result-object v2

    invoke-interface {v0, v1, v2}, Lcom/subgraph/orchid/DirectoryStore;->a(Lcom/subgraph/orchid/DirectoryStore$CacheFile;Ljava/nio/ByteBuffer;)V

    .line 155
    return-void
.end method

.method final a(Lcom/subgraph/orchid/directory/j;)V
    .registers 4

    .prologue
    const/4 v1, 0x0

    .line 267
    .line 2273
    if-eqz p1, :cond_1c

    .line 3096
    iget-object v0, p1, Lcom/subgraph/orchid/directory/j;->bHl:Ljava/lang/String;

    .line 2274
    if-eqz v0, :cond_1c

    .line 3100
    iget-object v0, p1, Lcom/subgraph/orchid/directory/j;->XG:Ljava/lang/String;

    .line 2275
    if-eqz v0, :cond_1c

    .line 3104
    iget-object v0, p1, Lcom/subgraph/orchid/directory/j;->version:Ljava/lang/String;

    .line 2276
    if-eqz v0, :cond_1c

    .line 2277
    invoke-virtual {p1}, Lcom/subgraph/orchid/directory/j;->Jn()Ljava/util/Date;

    move-result-object v0

    if-eqz v0, :cond_1c

    const/4 v0, 0x1

    .line 267
    :goto_16
    if-eqz v0, :cond_1b

    .line 268
    invoke-virtual {p0, p1, v1}, Lcom/subgraph/orchid/directory/l;->a(Lcom/subgraph/orchid/p;Z)V

    .line 270
    :cond_1b
    return-void

    :cond_1c
    move v0, v1

    .line 2277
    goto :goto_16
.end method

.method final a(Lcom/subgraph/orchid/p;Z)V
    .registers 5

    .prologue
    .line 138
    iget-object v1, p0, Lcom/subgraph/orchid/directory/l;->bIg:Ljava/util/List;

    monitor-enter v1

    .line 139
    :try_start_3
    iget-object v0, p0, Lcom/subgraph/orchid/directory/l;->bIg:Ljava/util/List;

    invoke-interface {v0, p1}, Ljava/util/List;->contains(Ljava/lang/Object;)Z

    move-result v0

    if-eqz v0, :cond_d

    .line 140
    monitor-exit v1

    .line 150
    :goto_c
    return-void

    .line 142
    :cond_d
    check-cast p1, Lcom/subgraph/orchid/directory/j;

    .line 143
    iget-object v0, p0, Lcom/subgraph/orchid/directory/l;->bIg:Ljava/util/List;

    invoke-interface {v0, p1}, Ljava/util/List;->add(Ljava/lang/Object;)Z

    .line 144
    monitor-enter p1
    :try_end_15
    .catchall {:try_start_3 .. :try_end_15} :catchall_20

    .line 1034
    const/4 v0, 0x1

    :try_start_16
    iput-boolean v0, p1, Lcom/subgraph/orchid/directory/j;->bIa:Z

    .line 146
    if-eqz p2, :cond_1d

    .line 147
    invoke-virtual {p0}, Lcom/subgraph/orchid/directory/l;->No()V

    .line 149
    :cond_1d
    monitor-exit p1
    :try_end_1e
    .catchall {:try_start_16 .. :try_end_1e} :catchall_23

    .line 150
    :try_start_1e
    monitor-exit v1

    goto :goto_c

    :catchall_20
    move-exception v0

    monitor-exit v1
    :try_end_22
    .catchall {:try_start_1e .. :try_end_22} :catchall_20

    throw v0

    .line 149
    :catchall_23
    move-exception v0

    :try_start_24
    monitor-exit p1
    :try_end_25
    .catchall {:try_start_24 .. :try_end_25} :catchall_23

    :try_start_25
    throw v0
    :try_end_26
    .catchall {:try_start_25 .. :try_end_26} :catchall_20
.end method