text:
.class public Lorg/apache/commons/compress/archivers/tar/TarArchiveEntry;
.super Ljava/lang/Object;
.source "TarArchiveEntry.java"

# interfaces
.implements Lorg/apache/commons/compress/archivers/tar/TarConstants;
.implements Lorg/apache/commons/compress/archivers/ArchiveEntry;

# static fields
.field public static final DEFAULT_DIR_MODE:I = 0x41ed

.field public static final DEFAULT_FILE_MODE:I = 0x81a4

.field public static final MAX_NAMELEN:I = 0x1f

.field public static final MILLIS_PER_SECOND:I = 0x3e8

# instance fields
.field private devMajor:I

.field private devMinor:I

.field private file:Ljava/io/File;

.field private groupId:I

.field private groupName:Ljava/lang/String;

.field private isExtended:Z

.field private linkFlag:B

.field private linkName:Ljava/lang/String;

.field private magic:Ljava/lang/String;

.field private modTime:J

.field private mode:I

.field private name:Ljava/lang/String;

.field private realSize:J

.field private size:J

.field private userId:I

.field private userName:Ljava/lang/String;

.field private version:Ljava/lang/String;

# direct methods
.method private constructor <init>()V
    .locals 5

    .prologue
    const/16 v4, 0x1f

    const/4 v3, 0x0

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

    .line 183
    const-string v1, "ustar\u0000"

    iput-object v1, p0, Lorg/apache/commons/compress/archivers/tar/TarArchiveEntry;->magic:Ljava/lang/String;

    .line 184
    const-string v1, "00"

    iput-object v1, p0, Lorg/apache/commons/compress/archivers/tar/TarArchiveEntry;->version:Ljava/lang/String;

    .line 185
    const-string v1, ""

    iput-object v1, p0, Lorg/apache/commons/compress/archivers/tar/TarArchiveEntry;->name:Ljava/lang/String;

    .line 186
    const-string v1, ""

    iput-object v1, p0, Lorg/apache/commons/compress/archivers/tar/TarArchiveEntry;->linkName:Ljava/lang/String;

    .line 188
    const-string v1, "user.name"

    const-string v2, ""

    invoke-static {v1, v2}, Ljava/lang/System;->getProperty(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;

    move-result-object v0

    .line 190
    .local v0, "user":Ljava/lang/String;
    invoke-virtual {v0}, Ljava/lang/String;->length()I

    move-result v1

    if-le v1, v4, :cond_0

    .line 191
    invoke-virtual {v0, v3, v4}, Ljava/lang/String;->substring(II)Ljava/lang/String;

    move-result-object v0

    .line 194
    :cond_0
    iput v3, p0, Lorg/apache/commons/compress/archivers/tar/TarArchiveEntry;->userId:I

    .line 195
    iput v3, p0, Lorg/apache/commons/compress/archivers/tar/TarArchiveEntry;->groupId:I

    .line 196
    iput-object v0, p0, Lorg/apache/commons/compress/archivers/tar/TarArchiveEntry;->userName:Ljava/lang/String;

    .line 197
    const-string v1, ""

    iput-object v1, p0, Lorg/apache/commons/compress/archivers/tar/TarArchiveEntry;->groupName:Ljava/lang/String;

    .line 198
    const/4 v1, 0x0

    iput-object v1, p0, Lorg/apache/commons/compress/archivers/tar/TarArchiveEntry;->file:Ljava/io/File;

    .line 199
    return-void
.end method

.method public constructor <init>(Ljava/io/File;)V
    .locals 2
    .param p1, "file"    # Ljava/io/File;

    .prologue
    .line 264
    invoke-virtual {p1}, Ljava/io/File;->getPath()Ljava/lang/String;

    move-result-object v0

    const/4 v1, 0x0

    invoke-static {v0, v1}, Lorg/apache/commons/compress/archivers/tar/TarArchiveEntry;->normalizeFileName(Ljava/lang/String;Z)Ljava/lang/String;

    move-result-object v0

    invoke-direct {p0, p1, v0}, Lorg/apache/commons/compress/archivers/tar/TarArchiveEntry;-><init>(Ljava/io/File;Ljava/lang/String;)V

    .line 265
    return-void
.end method

.method public constructor <init>(Ljava/io/File;Ljava/lang/String;)V
    .locals 7
    .param p1, "file"    # Ljava/io/File;
    .param p2, "fileName"    # Ljava/lang/String;

    .prologue
    const/4 v6, 0x0

    .line 275
    invoke-direct {p0}, Lorg/apache/commons/compress/archivers/tar/TarArchiveEntry;-><init>()V

    .line 277
    iput-object p1, p0, Lorg/apache/commons/compress/archivers/tar/TarArchiveEntry;->file:Ljava/io/File;

    .line 279
    const-string v1, ""

    iput-object v1, p0, Lorg/apache/commons/compress/archivers/tar/TarArchiveEntry;->linkName:Ljava/lang/String;

    .line 281
    invoke-virtual {p1}, Ljava/io/File;->isDirectory()Z

    move-result v1

    if-eqz v1, :cond_2

    .line 282
    const/16 v1, 0x41ed

    iput v1, p0, Lorg/apache/commons/compress/archivers/tar/TarArchiveEntry;->mode:I

    .line 283
    const/16 v1, 0x35

    iput-byte v1, p0, Lorg/apache/commons/compress/archivers/tar/TarArchiveEntry;->linkFlag:B

    .line 285
    invoke-virtual {p2}, Ljava/lang/String;->length()I

    move-result v0

    .line 286
    .local v0, "nameLength":I
    if-eqz v0, :cond_0

    add-int/lit8 v1, v0, -0x1

    invoke-virtual {p2, v1}, Ljava/lang/String;->charAt(I)C

    move-result v1

    const/16 v2, 0x2f

    if-eq v1, v2, :cond_1

    .line 287
    :cond_0
    new-instance v1, Ljava/lang/StringBuilder;

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

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

    move-result-object v1

    const-string v2, "/"

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

    move-result-object v1

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

    move-result-object v1

    iput-object v1, p0, Lorg/apache/commons/compress/archivers/tar/TarArchiveEntry;->name:Ljava/lang/String;

    .line 291
    :goto_0
    const-wide/16 v2, 0x0

    iput-wide v2, p0, Lorg/apache/commons/compress/archivers/tar/TarArchiveEntry;->size:J

    .line 299
    .end local v0    # "nameLength":I
    :goto_1
    invoke-virtual {p1}, Ljava/io/File;->lastModified()J

    move-result-wide v2

    const-wide/16 v4, 0x3e8

    div-long/2addr v2, v4

    iput-wide v2, p0, Lorg/apache/commons/compress/archivers/tar/TarArchiveEntry;->modTime:J

    .line 300
    iput v6, p0, Lorg/apache/commons/compress/archivers/tar/TarArchiveEntry;->devMajor:I

    .line 301
    iput v6, p0, Lorg/apache/commons/compress/archivers/tar/TarArchiveEntry;->devMinor:I

    .line 302
    return-void

    .line 289
    .restart local v0    # "nameLength":I
    :cond_1
    iput-object p2, p0, Lorg/apache/commons/compress/archivers/tar/TarArchiveEntry;->name:Ljava/lang/String;

    goto :goto_0

    .line 293
    .end local v0    # "nameLength":I
    :cond_2
    const v1, 0x81a4

    iput v1, p0, Lorg/apache/commons/compress/archivers/tar/TarArchiveEntry;->mode:I

    .line 294
    const/16 v1, 0x30

    iput-byte v1, p0, Lorg/apache/commons/compress/archivers/tar/TarArchiveEntry;->linkFlag:B

    .line 295
    invoke-virtual {p1}, Ljava/io/File;->length()J

    move-result-wide v2

    iput-wide v2, p0, Lorg/apache/commons/compress/archivers/tar/TarArchiveEntry;->size:J

    .line 296
    iput-object p2, p0, Lorg/apache/commons/compress/archivers/tar/TarArchiveEntry;->name:Ljava/lang/String;

    goto :goto_1
.end method

.method public constructor <init>(Ljava/lang/String;)V
    .locals 1
    .param p1, "name"    # Ljava/lang/String;

    .prologue
    .line 208
    const/4 v0, 0x0

    invoke-direct {p0, p1, v0}, Lorg/apache/commons/compress/archivers/tar/TarArchiveEntry;-><init>(Ljava/lang/String;Z)V

    .line 209
    return-void
.end method

.method public constructor <init>(Ljava/lang/String;B)V
    .locals 1
    .param p1, "name"    # Ljava/lang/String;
    .param p2, "linkFlag"    # B

    .prologue
    .line 248
    invoke-direct {p0, p1}, Lorg/apache/commons/compress/archivers/tar/TarArchiveEntry;-><init>(Ljava/lang/String;)V

    .line 249
    iput-byte p2, p0, Lorg/apache/commons/compress/archivers/tar/TarArchiveEntry;->linkFlag:B

    .line 250
    const/16 v0, 0x4c

    if-ne p2, v0, :cond_0

    .line 251
    const-string v0, "ustar "

    iput-object v0, p0, Lorg/apache/commons/compress/archivers/tar/TarArchiveEntry;->magic:Ljava/lang/String;

    .line 252
    const-string v0, " \u0000"

    iput-object v0, p0, Lorg/apache/commons/compress/archivers/tar/TarArchiveEntry;->version:Ljava/lang/String;

    .line 254
    :cond_0
    return-void
.end method

.method public constructor <init>(Ljava/lang/String;Z)V
    .locals 6
    .param p1, "name"    # Ljava/lang/String;
    .param p2, "preserveLeadingSlashes"    # Z

    .prologue
    const/4 v2, 0x0

    .line 222
    invoke-direct {p0}, Lorg/apache/commons/compress/archivers/tar/TarArchiveEntry;-><init>()V

    .line 224
    invoke-static {p1, p2}, Lorg/apache/commons/compress/archivers/tar/TarArchiveEntry;->normalizeFileName(Ljava/lang/String;Z)Ljava/lang/String;

    move-result-object p1

    .line 225
    const-string v1, "/"

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

    move-result v0

    .line 227
    .local v0, "isDir":Z
    iput v2, p0, Lorg/apache/commons/compress/archivers/tar/TarArchiveEntry;->devMajor:I

    .line 228
    iput v2, p0, Lorg/apache/commons/compress/archivers/tar/TarArchiveEntry;->devMinor:I

    .line 229
    iput-object p1, p0, Lorg/apache/commons/compress/archivers/tar/TarArchiveEntry;->name:Ljava/lang/String;

    .line 230
    if-eqz v0, :cond_0

    const/16 v1, 0x41ed

    :goto_0
    iput v1, p0, Lorg/apache/commons/compress/archivers/tar/TarArchiveEntry;->mode:I

    .line 231
    if-eqz v0, :cond_1

    const/16 v1, 0x35

    :goto_1
    iput-byte v1, p0, Lorg/apache/commons/compress/archivers/tar/TarArchiveEntry;->linkFlag:B

    .line 232
    iput v2, p0, Lorg/apache/commons/compress/archivers/tar/TarArchiveEntry;->userId:I

    .line 233
    iput v2, p0, Lorg/apache/commons/compress/archivers/tar/TarArchiveEntry;->groupId:I

    .line 234
    const-wide/16 v2, 0x0

    iput-wide v2, p0, Lorg/apache/commons/compress/archivers/tar/TarArchiveEntry;->size:J

    .line 235
    new-instance v1, Ljava/util/Date;

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

    invoke-virtual {v1}, Ljava/util/Date;->getTime()J

    move-result-wide v2

    const-wide/16 v4, 0x3e8

    div-long/2addr v2, v4

    iput-wide v2, p0, Lorg/apache/commons/compress/archivers/tar/TarArchiveEntry;->modTime:J

    .line 236
    const-string v1, ""

    iput-object v1, p0, Lorg/apache/commons/compress/archivers/tar/TarArchiveEntry;->linkName:Ljava/lang/String;

    .line 237
    const-string v1, ""

    iput-object v1, p0, Lorg/apache/commons/compress/archivers/tar/TarArchiveEntry;->userName:Ljava/lang/String;

    .line 238
    const-string v1, ""

    iput-object v1, p0, Lorg/apache/commons/compress/archivers/tar/TarArchiveEntry;->groupName:Ljava/lang/String;

    .line 239
    return-void

    .line 230
    :cond_0
    const v1, 0x81a4

    goto :goto_0

    .line 231
    :cond_1
    const/16 v1, 0x30

    goto :goto_1
.end method

.method public constructor <init>([B)V
    .locals 0
    .param p1, "headerBuf"    # [B

    .prologue
    .line 312
    invoke-direct {p0}, Lorg/apache/commons/compress/archivers/tar/TarArchiveEntry;-><init>()V

    .line 313
    invoke-virtual {p0, p1}, Lorg/apache/commons/compress/archivers/tar/TarArchiveEntry;->parseTarHeader([B)V

    .line 314
    return-void
.end method

.method public constructor <init>([BLorg/apache/commons/compress/archivers/zip/ZipEncoding;)V
    .locals 0
    .param p1, "headerBuf"    # [B
    .param p2, "encoding"    # Lorg/apache/commons/compress/archivers/zip/ZipEncoding;
    .annotation system Ldalvik/annotation/Throws;
        value = {
            Ljava/io/IOException;
        }
    .end annotation

    .prologue
    .line 327
    invoke-direct {p0}, Lorg/apache/commons/compress/archivers/tar/TarArchiveEntry;-><init>()V

    .line 328
    invoke-virtual {p0, p1, p2}, Lorg/apache/commons/compress/archivers/tar/TarArchiveEntry;->parseTarHeader([BLorg/apache/commons/compress/archivers/zip/ZipEncoding;)V

    .line 329
    return-void
.end method

.method private evaluateType([B)I
    .locals 3
    .param p1, "header"    # [B

    .prologue
    const/16 v2, 0x101

    const/4 v1, 0x6

    .line 1047
    const-string v0, "ustar "

    invoke-static {v0, p1, v2, v1}, Lorg/apache/commons/compress/utils/ArchiveUtils;->matchAsciiBuffer(Ljava/lang/String;[BII)Z

    move-result v0

    if-eqz v0, :cond_0

    .line 1048
    const/4 v0, 0x2

    .line 1053
    :goto_0
    return v0

    .line 1050
    :cond_0
    const-string v0, "ustar\u0000"

    invoke-static {v0, p1, v2, v1}, Lorg/apache/commons/compress/utils/ArchiveUtils;->matchAsciiBuffer(Ljava/lang/String;[BII)Z

    move-result v0

    if-eqz v0, :cond_1

    .line 1051
    const/4 v0, 0x3

    goto :goto_0

    .line 1053
    :cond_1
    const/4 v0, 0x0

    goto :goto_0
.end method

.method private static normalizeFileName(Ljava/lang/String;Z)Ljava/lang/String;
    .locals 10
    .param p0, "fileName"    # Ljava/lang/String;
    .param p1, "preserveLeadingSlashes"    # Z

    .prologue
    const/16 v9, 0x3a

    const/4 v8, 0x2

    const/4 v7, 0x1

    const/4 v6, -0x1

    .line 1003
    const-string v4, "os.name"

    invoke-static {v4}, Ljava/lang/System;->getProperty(Ljava/lang/String;)Ljava/lang/String;

    move-result-object v4

    sget-object v5, Ljava/util/Locale;->ENGLISH:Ljava/util/Locale;

    invoke-virtual {v4, v5}, Ljava/lang/String;->toLowerCase(Ljava/util/Locale;)Ljava/lang/String;

    move-result-object v3

    .line 1005
    .local v3, "osname":Ljava/lang/String;
    if-eqz v3, :cond_2

    .line 1010
    const-string v4, "windows"

    invoke-virtual {v3, v4}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z

    move-result v4

    if-eqz v4, :cond_3

    .line 1011
    invoke-virtual {p0}, Ljava/lang/String;->length()I

    move-result v4

    if-le v4, v8, :cond_2

    .line 1012
    const/4 v4, 0x0

    invoke-virtual {p0, v4}, Ljava/lang/String;->charAt(I)C

    move-result v0

    .line 1013
    .local v0, "ch1":C
    invoke-virtual {p0, v7}, Ljava/lang/String;->charAt(I)C

    move-result v1

    .line 1015
    .local v1, "ch2":C
    if-ne v1, v9, :cond_2

    const/16 v4, 0x61

    if-lt v0, v4, :cond_0

    const/16 v4, 0x7a

    if-le v0, v4, :cond_1

    :cond_0
    const/16 v4, 0x41

    if-lt v0, v4, :cond_2

    const/16 v4, 0x5a

    if-gt v0, v4, :cond_2

    .line 1018
    :cond_1
    invoke-virtual {p0, v8}, Ljava/lang/String;->substring(I)Ljava/lang/String;

    move-result-object p0

    .line 1029
    .end local v0    # "ch1":C
    .end local v1    # "ch2":C
    :cond_2
    :goto_0
    sget-char v4, Ljava/io/File;->separatorChar:C

    const/16 v5, 0x2f

    invoke-virtual {p0, v4, v5}, Ljava/lang/String;->replace(CC)Ljava/lang/String;

    move-result-object p0

    .line 1034
    :goto_1
    if-nez p1, :cond_4

    const-string v4, "/"

    invoke-virtual {p0, v4}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z

    move-result v4

    if-eqz v4, :cond_4

    .line 1035
    invoke-virtual {p0, v7}, Ljava/lang/String;->substring(I)Ljava/lang/String;

    move-result-object p0

    goto :goto_1

    .line 1021
    :cond_3
    const-string v4, "netware"

    invoke-virtual {v3, v4}, Ljava/lang/String;->indexOf(Ljava/lang/String;)I

    move-result v4

    if-le v4, v6, :cond_2

    .line 1022
    invoke-virtual {p0, v9}, Ljava/lang/String;->indexOf(I)I

    move-result v2

    .line 1023
    .local v2, "colon":I
    if-eq v2, v6, :cond_2

    .line 1024
    add-int/lit8 v4, v2, 0x1

    invoke-virtual {p0, v4}, Ljava/lang/String;->substring(I)Ljava/lang/String;

    move-result-object p0

    goto :goto_0

    .line 1037
    .end local v2    # "colon":I
    :cond_4
    return-object p0
.end method

.method private parseTarHeader([BLorg/apache/commons/compress/archivers/zip/ZipEncoding;Z)V
    .locals 11
    .param p1, "header"    # [B
    .param p2, "encoding"    # Lorg/apache/commons/compress/archivers/zip/ZipEncoding;
    .param p3, "oldStyle"    # Z
    .annotation system Ldalvik/annotation/Throws;
        value = {
            Ljava/io/IOException;
        }
    .end annotation

    .prologue
    const/16 v10, 0x9b

    const/16 v9, 0xc

    const/16 v8, 0x64

    const/16 v7, 0x20

    const/16 v6, 0x8

    .line 930
    const/4 v0, 0x0

    .line 932
    .local v0, "offset":I
    if-eqz p3, :cond_2

    invoke-static {p1, v0, v8}, Lorg/apache/commons/compress/archivers/tar/TarUtils;->parseName([BII)Ljava/lang/String;

    move-result-object v4

    :goto_0
    iput-object v4, p0, Lorg/apache/commons/compress/archivers/tar/TarArchiveEntry;->name:Ljava/lang/String;

    .line 934
    add-int/lit8 v0, v0, 0x64

    .line 935
    invoke-static {p1, v0, v6}, Lorg/apache/commons/compress/archivers/tar/TarUtils;->parseOctalOrBinary([BII)J

    move-result-wide v4

    long-to-int v4, v4

    iput v4, p0, Lorg/apache/commons/compress/archivers/tar/TarArchiveEntry;->mode:I

    .line 936
    add-int/lit8 v0, v0, 0x8

    .line 937
    invoke-static {p1, v0, v6}, Lorg/apache/commons/compress/archivers/tar/TarUtils;->parseOctalOrBinary([BII)J

    move-result-wide v4

    long-to-int v4, v4

    iput v4, p0, Lorg/apache/commons/compress/archivers/tar/TarArchiveEntry;->userId:I

    .line 938
    add-int/lit8 v0, v0, 0x8

    .line 939
    invoke-static {p1, v0, v6}, Lorg/apache/commons/compress/archivers/tar/TarUtils;->parseOctalOrBinary([BII)J

    move-result-wide v4

    long-to-int v4, v4

    iput v4, p0, Lorg/apache/commons/compress/archivers/tar/TarArchiveEntry;->groupId:I

    .line 940
    add-int/lit8 v0, v0, 0x8

    .line 941
    invoke-static {p1, v0, v9}, Lorg/apache/commons/compress/archivers/tar/TarUtils;->parseOctalOrBinary([BII)J

    move-result-wide v4

    iput-wide v4, p0, Lorg/apache/commons/compress/archivers/tar/TarArchiveEntry;->size:J

    .line 942
    add-int/lit8 v0, v0, 0xc

    .line 943
    invoke-static {p1, v0, v9}, Lorg/apache/commons/compress/archivers/tar/TarUtils;->parseOctalOrBinary([BII)J

    move-result-wide v4

    iput-wide v4, p0, Lorg/apache/commons/compress/archivers/tar/TarArchiveEntry;->modTime:J

    .line 944
    add-int/lit8 v0, v0, 0xc

    .line 945
    add-int/lit8 v0, v0, 0x8

    .line 946
    add-int/lit8 v1, v0, 0x1

    .end local v0    # "offset":I
    .local v1, "offset":I
    aget-byte v4, p1, v0

    iput-byte v4, p0, Lorg/apache/commons/compress/archivers/tar/TarArchiveEntry;->linkFlag:B

    .line 947
    if-eqz p3, :cond_3

    invoke-static {p1, v1, v8}, Lorg/apache/commons/compress/archivers/tar/TarUtils;->parseName([BII)Ljava/lang/String;

    move-result-object v4

    :goto_1
    iput-object v4, p0, Lorg/apache/commons/compress/archivers/tar/TarArchiveEntry;->linkName:Ljava/lang/String;

    .line 949
    add-int/lit8 v0, v1, 0x64

    .line 950
    .end local v1    # "offset":I
    .restart local v0    # "offset":I
    const/4 v4, 0x6

    invoke-static {p1, v0, v4}, Lorg/apache/commons/compress/archivers/tar/TarUtils;->parseName([BII)Ljava/lang/String;

    move-result-object v4

    iput-object v4, p0, Lorg/apache/commons/compress/archivers/tar/TarArchiveEntry;->magic:Ljava/lang/String;

    .line 951
    add-int/lit8 v0, v0, 0x6

    .line 952
    const/4 v4, 0x2

    invoke-static {p1, v0, v4}, Lorg/apache/commons/compress/archivers/tar/TarUtils;->parseName([BII)Ljava/lang/String;

    move-result-object v4

    iput-object v4, p0, Lorg/apache/commons/compress/archivers/tar/TarArchiveEntry;->version:Ljava/lang/String;

    .line 953
    add-int/lit8 v0, v0, 0x2

    .line 954
    if-eqz p3, :cond_4

    invoke-static {p1, v0, v7}, Lorg/apache/commons/compress/archivers/tar/TarUtils;->parseName([BII)Ljava/lang/String;

    move-result-object v4

    :goto_2
    iput-object v4, p0, Lorg/apache/commons/compress/archivers/tar/TarArchiveEntry;->userName:Ljava/lang/String;

    .line 956
    add-int/lit8 v0, v0, 0x20

    .line 957
    if-eqz p3, :cond_5

    invoke-static {p1, v0, v7}, Lorg/apache/commons/compress/archivers/tar/TarUtils;->parseName([BII)Ljava/lang/String;

    move-result-object v4

    :goto_3
    iput-object v4, p0, Lorg/apache/commons/compress/archivers/tar/TarArchiveEntry;->groupName:Ljava/lang/String;

    .line 959
    add-int/lit8 v0, v0, 0x20

    .line 960
    invoke-static {p1, v0, v6}, Lorg/apache/commons/compress/archivers/tar/TarUtils;->parseOctalOrBinary([BII)J

    move-result-wide v4

    long-to-int v4, v4

    iput v4, p0, Lorg/apache/commons/compress/archivers/tar/TarArchiveEntry;->devMajor:I

    .line 961
    add-int/lit8 v0, v0, 0x8

    .line 962
    invoke-static {p1, v0, v6}, Lorg/apache/commons/compress/archivers/tar/TarUtils;->parseOctalOrBinary([BII)J

    move-result-wide v4

    long-to-int v4, v4

    iput v4, p0, Lorg/apache/commons/compress/archivers/tar/TarArchiveEntry;->devMinor:I

    .line 963
    add-int/lit8 v0, v0, 0x8

    .line 965
    invoke-direct {p0, p1}, Lorg/apache/commons/compress/archivers/tar/TarArchiveEntry;->evaluateType([B)I

    move-result v3

    .line 966
    .local v3, "type":I
    packed-switch v3, :pswitch_data_0

    .line 982
    if-eqz p3, :cond_6

    invoke-static {p1, v0, v10}, Lorg/apache/commons/compress/archivers/tar/TarUtils;->parseName([BII)Ljava/lang/String;

    move-result-object v2

    .line 987
    .local v2, "prefix":Ljava/lang/String;
    :goto_4
    invoke-virtual {p0}, Lorg/apache/commons/compress/archivers/tar/TarArchiveEntry;->isDirectory()Z

    move-result v4

    if-eqz v4, :cond_0

    iget-object v4, p0, Lorg/apache/commons/compress/archivers/tar/TarArchiveEntry;->name:Ljava/lang/String;

    const-string v5, "/"

    invoke-virtual {v4, v5}, Ljava/lang/String;->endsWith(Ljava/lang/String;)Z

    move-result v4

    if-nez v4, :cond_0

    .line 988
    new-instance v4, Ljava/lang/StringBuilder;

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

    iget-object v5, p0, Lorg/apache/commons/compress/archivers/tar/TarArchiveEntry;->name:Ljava/lang/String;

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

    move-result-object v4

    const-string v5, "/"

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

    move-result-object v4

    invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v4

    iput-object v4, p0, Lorg/apache/commons/compress/archivers/tar/TarArchiveEntry;->name:Ljava/lang/String;

    .line 990
    :cond_0
    invoke-virtual {v2}, Ljava/lang/String;->length()I

    move-result v4

    if-lez v4, :cond_1

    .line 991
    new-instance v4, Ljava/lang/StringBuilder;

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

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

    move-result-object v4

    const-string v5, "/"

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

    move-result-object v4

    iget-object v5, p0, Lorg/apache/commons/compress/archivers/tar/TarArchiveEntry;->name:Ljava/lang/String;

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

    move-result-object v4

    invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v4

    iput-object v4, p0, Lorg/apache/commons/compress/archivers/tar/TarArchiveEntry;->name:Ljava/lang/String;

    .line 995
    .end local v2    # "prefix":Ljava/lang/String;
    :cond_1
    :goto_5
    return-void

    .line 932
    .end local v3    # "type":I
    :cond_2
    invoke-static {p1, v0, v8, p2}, Lorg/apache/commons/compress/archivers/tar/TarUtils;->parseName([BIILorg/apache/commons/compress/archivers/zip/ZipEncoding;)Ljava/lang/String;

    move-result-object v4

    goto/16 :goto_0

    .line 947
    .end local v0    # "offset":I
    .restart local v1    # "offset":I
    :cond_3
    invoke-static {p1, v1, v8, p2}, Lorg/apache/commons/compress/archivers/tar/TarUtils;->parseName([BIILorg/apache/commons/compress/archivers/zip/ZipEncoding;)Ljava/lang/String;

    move-result-object v4

    goto/16 :goto_1

    .line 954
    .end local v1    # "offset":I
    .restart local v0    # "offset":I
    :cond_4
    invoke-static {p1, v0, v7, p2}, Lorg/apache/commons/compress/archivers/tar/TarUtils;->parseName([BIILorg/apache/commons/compress/archivers/zip/ZipEncoding;)Ljava/lang/String;

    move-result-object v4

    goto/16 :goto_2

    .line 957
    :cond_5
    invoke-static {p1, v0, v7, p2}, Lorg/apache/commons/compress/archivers/tar/TarUtils;->parseName([BIILorg/apache/commons/compress/archivers/zip/ZipEncoding;)Ljava/lang/String;

    move-result-object v4

    goto/16 :goto_3

    .line 968
    .restart local v3    # "type":I
    :pswitch_0
    add-int/lit8 v0, v0, 0xc

    .line 969
    add-int/lit8 v0, v0, 0xc

    .line 970
    add-int/lit8 v0, v0, 0xc

    .line 971
    add-int/lit8 v0, v0, 0x4

    .line 972
    add-int/lit8 v0, v0, 0x1

    .line 973
    add-int/lit8 v0, v0, 0x60

    .line 974
    invoke-static {p1, v0}, Lorg/apache/commons/compress/archivers/tar/TarUtils;->parseBoolean([BI)Z

    move-result v4

    iput-boolean v4, p0, Lorg/apache/commons/compress/archivers/tar/TarArchiveEntry;->isExtended:Z

    .line 975
    add-int/lit8 v0, v0, 0x1

    .line 976
    invoke-static {p1, v0, v9}, Lorg/apache/commons/compress/archivers/tar/TarUtils;->parseOctal([BII)J

    move-result-wide v4

    iput-wide v4, p0, Lorg/apache/commons/compress/archivers/tar/TarArchiveEntry;->realSize:J

    .line 977
    add-int/lit8 v0, v0, 0xc

    .line 978
    goto :goto_5

    .line 982
    :cond_6
    invoke-static {p1, v0, v10, p2}, Lorg/apache/commons/compress/archivers/tar/TarUtils;->parseName([BIILorg/apache/commons/compress/archivers/zip/ZipEncoding;)Ljava/lang/String;

    move-result-object v2

    goto/16 :goto_4

    .line 966
    nop

    :pswitch_data_0
    .packed-switch 0x2
        :pswitch_0
    .end packed-switch
.end method

.method private writeEntryHeaderField(J[BIIZ)I
    .locals 7
    .param p1, "value"    # J
    .param p3, "outbuf"    # [B
    .param p4, "offset"    # I
    .param p5, "length"    # I
    .param p6, "starMode"    # Z

    .prologue
    const-wide/16 v4, 0x0

    .line 883
    if-nez p6, :cond_1

    cmp-long v0, p1, v4

    if-ltz v0, :cond_0

    const-wide/16 v0, 0x1

    add-int/lit8 v2, p5, -0x1

    mul-int/lit8 v2, v2, 0x3

    shl-long/2addr v0, v2

    cmp-long v0, p1, v0

    if-ltz v0, :cond_1

    .line 888
    :cond_0
    invoke-static {v4, v5, p3, p4, p5}, Lorg/apache/commons/compress/archivers/tar/TarUtils;->formatLongOctalBytes(J[BII)I

    move-result v0

    .line 890
    :goto_0
    return v0

    :cond_1
    invoke-static {p1, p2, p3, p4, p5}, Lorg/apache/commons/compress/archivers/tar/TarUtils;->formatLongOctalOrBinaryBytes(J[BII)I

    move-result v0

    goto :goto_0
.end method

# virtual methods
.method public equals(Ljava/lang/Object;)Z
    .locals 2
    .param p1, "it"    # Ljava/lang/Object;

    .prologue
    .line 351
    if-eqz p1, :cond_0

    invoke-virtual {p0}, Ljava/lang/Object;->getClass()Ljava/lang/Class;

    move-result-object v0

    invoke-virtual {p1}, Ljava/lang/Object;->getClass()Ljava/lang/Class;

    move-result-object v1

    if-eq v0, v1, :cond_1

    .line 352
    :cond_0
    const/4 v0, 0x0

    .line 354
    .end local p1    # "it":Ljava/lang/Object;
    :goto_0
    return v0

    .restart local p1    # "it":Ljava/lang/Object;
    :cond_1
    check-cast p1, Lorg/apache/commons/compress/archivers/tar/TarArchiveEntry;

    .end local p1    # "it":Ljava/lang/Object;
    invoke-virtual {p0, p1}, Lorg/apache/commons/compress/archivers/tar/TarArchiveEntry;->equals(Lorg/apache/commons/compress/archivers/tar/TarArchiveEntry;)Z

    move-result v0

    goto :goto_0
.end method

.method public equals(Lorg/apache/commons/compress/archivers/tar/TarArchiveEntry;)Z
    .locals 2
    .param p1, "it"    # Lorg/apache/commons/compress/archivers/tar/TarArchiveEntry;

    .prologue
    .line 339
    invoke-virtual {p0}, Lorg/apache/commons/compress/archivers/tar/TarArchiveEntry;->getName()Ljava/lang/String;

    move-result-object v0

    invoke-virtual {p1}, Lorg/apache/commons/compress/archivers/tar/TarArchiveEntry;->getName()Ljava/lang/String;

    move-result-object v1

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

    move-result v0

    return v0
.end method

.method public getDevMajor()I
    .locals 1

    .prologue
    .line 600
    iget v0, p0, Lorg/apache/commons/compress/archivers/tar/TarArchiveEntry;->devMajor:I

    return v0
.end method

.method public getDevMinor()I
    .locals 1

    .prologue
    .line 625
    iget v0, p0, Lorg/apache/commons/compress/archivers/tar/TarArchiveEntry;->devMinor:I

    return v0
.end method

.method public getDirectoryEntries()[Lorg/apache/commons/compress/archivers/tar/TarArchiveEntry;
    .locals 7

    .prologue
    .line 793
    iget-object v3, p0, Lorg/apache/commons/compress/archivers/tar/TarArchiveEntry;->file:Ljava/io/File;

    if-eqz v3, :cond_0

    iget-object v3, p0, Lorg/apache/commons/compress/archivers/tar/TarArchiveEntry;->file:Ljava/io/File;

    invoke-virtual {v3}, Ljava/io/File;->isDirectory()Z

    move-result v3

    if-nez v3, :cond_2

    .line 794
    :cond_0
    const/4 v3, 0x0

    new-array v2, v3, [Lorg/apache/commons/compress/archivers/tar/TarArchiveEntry;

    .line 804
    :cond_1
    return-object v2

    .line 797
    :cond_2
    iget-object v3, p0, Lorg/apache/commons/compress/archivers/tar/TarArchiveEntry;->file:Ljava/io/File;

    invoke-virtual {v3}, Ljava/io/File;->list()[Ljava/lang/String;

    move-result-object v1

    .line 798
    .local v1, "list":[Ljava/lang/String;
    array-length v3, v1

    new-array v2, v3, [Lorg/apache/commons/compress/archivers/tar/TarArchiveEntry;

    .line 800
    .local v2, "result":[Lorg/apache/commons/compress/archivers/tar/TarArchiveEntry;
    const/4 v0, 0x0

    .local v0, "i":I
    :goto_0
    array-length v3, v1

    if-ge v0, v3, :cond_1

    .line 801
    new-instance v3, Lorg/apache/commons/compress/archivers/tar/TarArchiveEntry;

    new-instance v4, Ljava/io/File;

    iget-object v5, p0, Lorg/apache/commons/compress/archivers/tar/TarArchiveEntry;->file:Ljava/io/File;

    aget-object v6, v1, v0

    invoke-direct {v4, v5, v6}, Ljava/io/File;-><init>(Ljava/io/File;Ljava/lang/String;)V

    invoke-direct {v3, v4}, Lorg/apache/commons/compress/archivers/tar/TarArchiveEntry;-><init>(Ljava/io/File;)V

    aput-object v3, v2, v0

    .line 800
    add-int/lit8 v0, v0, 0x1

    goto :goto_0
.end method

.method public getFile()Ljava/io/File;
    .locals 1

    .prologue
    .line 559
    iget-object v0, p0, Lorg/apache/commons/compress/archivers/tar/TarArchiveEntry;->file:Ljava/io/File;

    return-object v0
.end method

.method public getGroupId()I
    .locals 1

    .prologue
    .line 450
    iget v0, p0, Lorg/apache/commons/compress/archivers/tar/TarArchiveEntry;->groupId:I

    return v0
.end method

.method public getGroupName()Ljava/lang/String;
    .locals 1

    .prologue
    .line 486
    iget-object v0, p0, Lorg/apache/commons/compress/archivers/tar/TarArchiveEntry;->groupName:Ljava/lang/String;

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

    move-result-object v0

    return-object v0
.end method

.method public getLastModifiedDate()Ljava/util/Date;
    .locals 1

    .prologue
    .line 550
    invoke-virtual {p0}, Lorg/apache/commons/compress/archivers/tar/TarArchiveEntry;->getModTime()Ljava/util/Date;

    move-result-object v0

    return-object v0
.end method

.method public getLinkName()Ljava/lang/String;
    .locals 1

    .prologue
    .line 412
    iget-object v0, p0, Lorg/apache/commons/compress/archivers/tar/TarArchiveEntry;->linkName:Ljava/lang/String;

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

    move-result-object v0

    return-object v0
.end method

.method public getModTime()Ljava/util/Date;
    .locals 6

    .prologue
    .line 545
    new-instance v0, Ljava/util/Date;

    iget-wide v2, p0, Lorg/apache/commons/compress/archivers/tar/TarArchiveEntry;->modTime:J

    const-wide/16 v4, 0x3e8

    mul-long/2addr v2, v4

    invoke-direct {v0, v2, v3}, Ljava/util/Date;-><init>(J)V

    return-object v0
.end method

.method public getMode()I
    .locals 1

    .prologue
    .line 568
    iget v0, p0, Lorg/apache/commons/compress/archivers/tar/TarArchiveEntry;->mode:I

    return v0
.end method

.method public getName()Ljava/lang/String;
    .locals 1

    .prologue
    .line 385
    iget-object v0, p0, Lorg/apache/commons/compress/archivers/tar/TarArchiveEntry;->name:Ljava/lang/String;

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

    move-result-object v0

    return-object v0
.end method

.method public getRealSize()J
    .locals 2

    .prologue
    .line 659
    iget-wide v0, p0, Lorg/apache/commons/compress/archivers/tar/TarArchiveEntry;->realSize:J

    return-wide v0
.end method

.method public getSize()J
    .locals 2

    .prologue
    .line 577
    iget-wide v0, p0, Lorg/apache/commons/compress/archivers/tar/TarArchiveEntry;->size:J

    return-wide v0
.end method

.method public getUserId()I
    .locals 1

    .prologue
    .line 432
    iget v0, p0, Lorg/apache/commons/compress/archivers/tar/TarArchiveEntry;->userId:I

    return v0
.end method

.method public getUserName()Ljava/lang/String;
    .locals 1

    .prologue
    .line 468
    iget-object v0, p0, Lorg/apache/commons/compress/archivers/tar/TarArchiveEntry;->userName:Ljava/lang/String;

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

    move-result-object v0

    return-object v0
.end method

.method public hashCode()I
    .locals 1

    .prologue
    .line 364
    invoke-virtual {p0}, Lorg/apache/commons/compress/archivers/tar/TarArchiveEntry;->getName()Ljava/lang/String;

    move-result-object v0

    invoke-virtual {v0}, Ljava/lang/String;->hashCode()I

    move-result v0

    return v0
.end method

.method public isBlockDevice()Z
    .locals 2

    .prologue
    .line 774
    iget-byte v0, p0, Lorg/apache/commons/compress/archivers/tar/TarArchiveEntry;->linkFlag:B

    const/16 v1, 0x34

    if-ne v0, v1, :cond_0

    const/4 v0, 0x1

    :goto_0
    return v0

    :cond_0
    const/4 v0, 0x0

    goto :goto_0
.end method

.method public isCharacterDevice()Z
    .locals 2

    .prologue
    .line 765
    iget-byte v0, p0, Lorg/apache/commons/compress/archivers/tar/TarArchiveEntry;->linkFlag:B

    const/16 v1, 0x33

    if-ne v0, v1, :cond_0

    const/4 v0, 0x1

    :goto_0
    return v0

    :cond_0
    const/4 v0, 0x0

    goto :goto_0
.end method

.method public isDescendent(Lorg/apache/commons/compress/archivers/tar/TarArchiveEntry;)Z
    .locals 2
    .param p1, "desc"    # Lorg/apache/commons/compress/archivers/tar/TarArchiveEntry;

    .prologue
    .line 376
    invoke-virtual {p1}, Lorg/apache/commons/compress/archivers/tar/TarArchiveEntry;->getName()Ljava/lang/String;

    move-result-object v0

    invoke-virtual {p0}, Lorg/apache/commons/compress/archivers/tar/TarArchiveEntry;->getName()Ljava/lang/String;

    move-result-object v1

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

    move-result v0

    return v0
.end method

.method public isDirectory()Z
    .locals 3

    .prologue
    const/4 v0, 0x1

    .line 711
    iget-object v1, p0, Lorg/apache/commons/compress/archivers/tar/TarArchiveEntry;->file:Ljava/io/File;

    if-eqz v1, :cond_1

    .line 712
    iget-object v0, p0, Lorg/apache/commons/compress/archivers/tar/TarArchiveEntry;->file:Ljava/io/File;

    invoke-virtual {v0}, Ljava/io/File;->isDirectory()Z

    move-result v0

    .line 723
    :cond_0
    :goto_0
    return v0

    .line 715
    :cond_1
    iget-byte v1, p0, Lorg/apache/commons/compress/archivers/tar/TarArchiveEntry;->linkFlag:B

    const/16 v2, 0x35

    if-eq v1, v2, :cond_0

    .line 719
    invoke-virtual {p0}, Lorg/apache/commons/compress/archivers/tar/TarArchiveEntry;->getName()Ljava/lang/String;

    move-result-object v1

    const-string v2, "/"

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

    move-result v1

    if-nez v1, :cond_0

    .line 723
    const/4 v0, 0x0

    goto :goto_0
.end method

.method public isExtended()Z
    .locals 1

    .prologue
    .line 650
    iget-boolean v0, p0, Lorg/apache/commons/compress/archivers/tar/TarArchiveEntry;->isExtended:Z

    return v0
.end method

.method public isFIFO()Z
    .locals 2

    .prologue
    .line 783
    iget-byte v0, p0, Lorg/apache/commons/compress/archivers/tar/TarArchiveEntry;->linkFlag:B

    const/16 v1, 0x36

    if-ne v0, v1, :cond_0

    const/4 v0, 0x1

    :goto_0
    return v0

    :cond_0
    const/4 v0, 0x0

    goto :goto_0
.end method

.method public isFile()Z
    .locals 3

    .prologue
    const/4 v0, 0x1

    .line 732
    iget-object v1, p0, Lorg/apache/commons/compress/archivers/tar/TarArchiveEntry;->file:Ljava/io/File;

    if-eqz v1, :cond_1

    .line 733
    iget-object v0, p0, Lorg/apache/commons/compress/archivers/tar/TarArchiveEntry;->file:Ljava/io/File;

    invoke-virtual {v0}, Ljava/io/File;->isFile()Z

    move-result v0

    .line 738
    :cond_0
    :goto_0
    return v0

    .line 735
    :cond_1
    iget-byte v1, p0, Lorg/apache/commons/compress/archivers/tar/TarArchiveEntry;->linkFlag:B

    if-eqz v1, :cond_0

    iget-byte v1, p0, Lorg/apache/commons/compress/archivers/tar/TarArchiveEntry;->linkFlag:B

    const/16 v2, 0x30

    if-eq v1, v2, :cond_0

    .line 738
    invoke-virtual {p0}, Lorg/apache/commons/compress/archivers/tar/TarArchiveEntry;->getName()Ljava/lang/String;

    move-result-object v1

    const-string v2, "/"

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

    move-result v1

    if-eqz v1, :cond_0

    const/4 v0, 0x0

    goto :goto_0
.end method

.method public isGNULongNameEntry()Z
    .locals 2

    .prologue
    .line 677
    iget-byte v0, p0, Lorg/apache/commons/compress/archivers/tar/TarArchiveEntry;->linkFlag:B

    const/16 v1, 0x4c

    if-ne v0, v1, :cond_0

    iget-object v0, p0, Lorg/apache/commons/compress/archivers/tar/TarArchiveEntry;->name:Ljava/lang/String;

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

    move-result-object v0

    const-string v1, "././@LongLink"

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

    move-result v0

    if-eqz v0, :cond_0

    const/4 v0, 0x1

    :goto_0
    return v0

    :cond_0
    const/4 v0, 0x0

    goto :goto_0
.end method

.method public isGNUSparse()Z
    .locals 2

    .prologue
    .line 668
    iget-byte v0, p0, Lorg/apache/commons/compress/archivers/tar/TarArchiveEntry;->linkFlag:B

    const/16 v1, 0x53

    if-ne v0, v1, :cond_0

    const/4 v0, 0x1

    :goto_0
    return v0

    :cond_0
    const/4 v0, 0x0

    goto :goto_0
.end method

.method public isGlobalPaxHeader()Z
    .locals 2

    .prologue
    .line 702
    iget-byte v0, p0, Lorg/apache/commons/compress/archivers/tar/TarArchiveEntry;->linkFlag:B

    const/16 v1, 0x67

    if-ne v0, v1, :cond_0

    const/4 v0, 0x1

    :goto_0
    return v0

    :cond_0
    const/4 v0, 0x0

    goto :goto_0
.end method

.method public isLink()Z
    .locals 2

    .prologue
    .line 756
    iget-byte v0, p0, Lorg/apache/commons/compress/archivers/tar/TarArchiveEntry;->linkFlag:B

    const/16 v1, 0x31

    if-ne v0, v1, :cond_0

    const/4 v0, 0x1

    :goto_0
    return v0

    :cond_0
    const/4 v0, 0x0

    goto :goto_0
.end method

.method public isPaxHeader()Z
    .locals 2

    .prologue
    .line 690
    iget-byte v0, p0, Lorg/apache/commons/compress/archivers/tar/TarArchiveEntry;->linkFlag:B

    const/16 v1, 0x78

    if-eq v0, v1, :cond_0

    iget-byte v0, p0, Lorg/apache/commons/compress/archivers/tar/TarArchiveEntry;->linkFlag:B

    const/16 v1, 0x58

    if-ne v0, v1, :cond_1

    :cond_0
    const/4 v0, 0x1

    :goto_0
    return v0

    :cond_1
    const/4 v0, 0x0

    goto :goto_0
.end method

.method public isSymbolicLink()Z
    .locals 2

    .prologue
    .line 747
    iget-byte v0, p0, Lorg/apache/commons/compress/archivers/tar/TarArchiveEntry;->linkFlag:B

    const/16 v1, 0x32

    if-ne v0, v1, :cond_0

    const/4 v0, 0x1

    :goto_0
    return v0

    :cond_0
    const/4 v0, 0x0

    goto :goto_0
.end method

.method public parseTarHeader([B)V
    .locals 4
    .param p1, "header"    # [B

    .prologue
    .line 902
    :try_start_0
    sget-object v2, Lorg/apache/commons/compress/archivers/tar/TarUtils;->DEFAULT_ENCODING:Lorg/apache/commons/compress/archivers/zip/ZipEncoding;

    invoke-virtual {p0, p1, v2}, Lorg/apache/commons/compress/archivers/tar/TarArchiveEntry;->parseTarHeader([BLorg/apache/commons/compress/archivers/zip/ZipEncoding;)V
    :try_end_0
    .catch Ljava/io/IOException; {:try_start_0 .. :try_end_0} :catch_0

    .line 911
    :goto_0
    return-void

    .line 903
    :catch_0
    move-exception v0

    .line 905
    .local v0, "ex":Ljava/io/IOException;
    :try_start_1
    sget-object v2, Lorg/apache/commons/compress/archivers/tar/TarUtils;->DEFAULT_ENCODING:Lorg/apache/commons/compress/archivers/zip/ZipEncoding;

    const/4 v3, 0x1

    invoke-direct {p0, p1, v2, v3}, Lorg/apache/commons/compress/archivers/tar/TarArchiveEntry;->parseTarHeader([BLorg/apache/commons/compress/archivers/zip/ZipEncoding;Z)V
    :try_end_1
    .catch Ljava/io/IOException; {:try_start_1 .. :try_end_1} :catch_1

    goto :goto_0

    .line 906
    :catch_1
    move-exception v1

    .line 908
    .local v1, "ex2":Ljava/io/IOException;
    new-instance v2, Ljava/lang/RuntimeException;

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

    throw v2
.end method

.method public parseTarHeader([BLorg/apache/commons/compress/archivers/zip/ZipEncoding;)V
    .locals 1
    .param p1, "header"    # [B
    .param p2, "encoding"    # Lorg/apache/commons/compress/archivers/zip/ZipEncoding;
    .annotation system Ldalvik/annotation/Throws;
        value = {
            Ljava/io/IOException;
        }
    .end annotation

    .prologue
    .line 924
    const/4 v0, 0x0

    invoke-direct {p0, p1, p2, v0}, Lorg/apache/commons/compress/archivers/tar/TarArchiveEntry;->parseTarHeader([BLorg/apache/commons/compress/archivers/zip/ZipEncoding;Z)V

    .line 925
    return-void
.end method

.method public setDevMajor(I)V
    .locals 3
    .param p1, "devNo"    # I

    .prologue
    .line 611
    if-gez p1, :cond_0

    .line 612
    new-instance v0, Ljava/lang/IllegalArgumentException;

    new-instance v1, Ljava/lang/StringBuilder;

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

    const-string v2, "Major device number is out of range: "

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

    move-result-object v1

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

    move-result-object v1

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

    move-result-object v1

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

    throw v0

    .line 615
    :cond_0
    iput p1, p0, Lorg/apache/commons/compress/archivers/tar/TarArchiveEntry;->devMajor:I

    .line 616
    return-void
.end method

.method public setDevMinor(I)V
    .locals 3
    .param p1, "devNo"    # I

    .prologue
    .line 636
    if-gez p1, :cond_0

    .line 637
    new-instance v0, Ljava/lang/IllegalArgumentException;

    new-instance v1, Ljava/lang/StringBuilder;

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

    const-string v2, "Minor device number is out of range: "

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

    move-result-object v1

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

    move-result-object v1

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

    move-result-object v1

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

    throw v0

    .line 640
    :cond_0
    iput p1, p0, Lorg/apache/commons/compress/archivers/tar/TarArchiveEntry;->devMinor:I

    .line 641
    return-void
.end method

.method public setGroupId(I)V
    .locals 0
    .param p1, "groupId"    # I

    .prologue
    .line 459
    iput p1, p0, Lorg/apache/commons/compress/archivers/tar/TarArchiveEntry;->groupId:I

    .line 460
    return-void
.end method

.method public setGroupName(Ljava/lang/String;)V
    .locals 0
    .param p1, "groupName"    # Ljava/lang/String;

    .prologue
    .line 495
    iput-object p1, p0, Lorg/apache/commons/compress/archivers/tar/TarArchiveEntry;->groupName:Ljava/lang/String;

    .line 496
    return-void
.end method

.method public setIds(II)V
    .locals 0
    .param p1, "userId"    # I
    .param p2, "groupId"    # I

    .prologue
    .line 505
    invoke-virtual {p0, p1}, Lorg/apache/commons/compress/archivers/tar/TarArchiveEntry;->setUserId(I)V

    .line 506
    invoke-virtual {p0, p2}, Lorg/apache/commons/compress/archivers/tar/TarArchiveEntry;->setGroupId(I)V

    .line 507
    return-void
.end method

.method public setLinkName(Ljava/lang/String;)V
    .locals 0
    .param p1, "link"    # Ljava/lang/String;

    .prologue
    .line 423
    iput-object p1, p0, Lorg/apache/commons/compress/archivers/tar/TarArchiveEntry;->linkName:Ljava/lang/String;

    .line 424
    return-void
.end method

.method public setModTime(J)V
    .locals 3
    .param p1, "time"    # J

    .prologue
    .line 527
    const-wide/16 v0, 0x3e8

    div-long v0, p1, v0

    iput-wide v0, p0, Lorg/apache/commons/compress/archivers/tar/TarArchiveEntry;->modTime:J

    .line 528
    return-void
.end method

.method public setModTime(Ljava/util/Date;)V
    .locals 4
    .param p1, "time"    # Ljava/util/Date;

    .prologue
    .line 536
    invoke-virtual {p1}, Ljava/util/Date;->getTime()J

    move-result-wide v0

    const-wide/16 v2, 0x3e8

    div-long/2addr v0, v2

    iput-wide v0, p0, Lorg/apache/commons/compress/archivers/tar/TarArchiveEntry;->modTime:J

    .line 537
    return-void
.end method

.method public setMode(I)V
    .locals 0
    .param p1, "mode"    # I

    .prologue
    .line 403
    iput p1, p0, Lorg/apache/commons/compress/archivers/tar/TarArchiveEntry;->mode:I

    .line 404
    return-void
.end method

.method public setName(Ljava/lang/String;)V
    .locals 1
    .param p1, "name"    # Ljava/lang/String;

    .prologue
    .line 394
    const/4 v0, 0x0

    invoke-static {p1, v0}, Lorg/apache/commons/compress/archivers/tar/TarArchiveEntry;->normalizeFileName(Ljava/lang/String;Z)Ljava/lang/String;

    move-result-object v0

    iput-object v0, p0, Lorg/apache/commons/compress/archivers/tar/TarArchiveEntry;->name:Ljava/lang/String;

    .line 395
    return-void
.end method

.method public setNames(Ljava/lang/String;Ljava/lang/String;)V
    .locals 0
    .param p1, "userName"    # Ljava/lang/String;
    .param p2, "groupName"    # Ljava/lang/String;

    .prologue
    .line 516
    invoke-virtual {p0, p1}, Lorg/apache/commons/compress/archivers/tar/TarArchiveEntry;->setUserName(Ljava/lang/String;)V

    .line 517
    invoke-virtual {p0, p2}, Lorg/apache/commons/compress/archivers/tar/TarArchiveEntry;->setGroupName(Ljava/lang/String;)V

    .line 518
    return-void
.end method

.method public setSize(J)V
    .locals 3
    .param p1, "size"    # J

    .prologue
    .line 587
    const-wide/16 v0, 0x0

    cmp-long v0, p1, v0

    if-gez v0, :cond_0

    .line 588
    new-instance v0, Ljava/lang/IllegalArgumentException;

    new-instance v1, Ljava/lang/StringBuilder;

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

    const-string v2, "Size is out of range: "

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

    move-result-object v1

    invoke-virtual {v1, p1, p2}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder;

    move-result-object v1

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

    move-result-object v1

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

    throw v0

    .line 590
    :cond_0
    iput-wide p1, p0, Lorg/apache/commons/compress/archivers/tar/TarArchiveEntry;->size:J

    .line 591
    return-void
.end method

.method public setUserId(I)V
    .locals 0
    .param p1, "userId"    # I

    .prologue
    .line 441
    iput p1, p0, Lorg/apache/commons/compress/archivers/tar/TarArchiveEntry;->userId:I

    .line 442
    return-void
.end method

.method public setUserName(Ljava/lang/String;)V
    .locals 0
    .param p1, "userName"    # Ljava/lang/String;

    .prologue
    .line 477
    iput-object p1, p0, Lorg/apache/commons/compress/archivers/tar/TarArchiveEntry;->userName:Ljava/lang/String;

    .line 478
    return-void
.end method

.method public writeEntryHeader([B)V
    .locals 4
    .param p1, "outbuf"    # [B

    .prologue
    .line 816
    :try_start_0
    sget-object v2, Lorg/apache/commons/compress/archivers/tar/TarUtils;->DEFAULT_ENCODING:Lorg/apache/commons/compress/archivers/zip/ZipEncoding;

    const/4 v3, 0x0

    invoke-virtual {p0, p1, v2, v3}, Lorg/apache/commons/compress/archivers/tar/TarArchiveEntry;->writeEntryHeader([BLorg/apache/commons/compress/archivers/zip/ZipEncoding;Z)V
    :try_end_0
    .catch Ljava/io/IOException; {:try_start_0 .. :try_end_0} :catch_0

    .line 825
    :goto_0
    return-void

    .line 817
    :catch_0
    move-exception v0

    .line 819
    .local v0, "ex":Ljava/io/IOException;
    :try_start_1
    sget-object v2, Lorg/apache/commons/compress/archivers/tar/TarUtils;->FALLBACK_ENCODING:Lorg/apache/commons/compress/archivers/zip/ZipEncoding;

    const/4 v3, 0x0

    invoke-virtual {p0, p1, v2, v3}, Lorg/apache/commons/compress/archivers/tar/TarArchiveEntry;->writeEntryHeader([BLorg/apache/commons/compress/archivers/zip/ZipEncoding;Z)V
    :try_end_1
    .catch Ljava/io/IOException; {:try_start_1 .. :try_end_1} :catch_1

    goto :goto_0

    .line 820
    :catch_1
    move-exception v1

    .line 822
    .local v1, "ex2":Ljava/io/IOException;
    new-instance v2, Ljava/lang/RuntimeException;

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

    throw v2
.end method

.method public writeEntryHeader([BLorg/apache/commons/compress/archivers/zip/ZipEncoding;Z)V
    .locals 12
    .param p1, "outbuf"    # [B
    .param p2, "encoding"    # Lorg/apache/commons/compress/archivers/zip/ZipEncoding;
    .param p3, "starMode"    # Z
    .annotation system Ldalvik/annotation/Throws;
        value = {
            Ljava/io/IOException;
        }
    .end annotation

    .prologue
    .line 839
    const/4 v5, 0x0

    .line 841
    .local v5, "offset":I
    iget-object v1, p0, Lorg/apache/commons/compress/archivers/tar/TarArchiveEntry;->name:Ljava/lang/String;

    const/16 v2, 0x64

    invoke-static {v1, p1, v5, v2, p2}, Lorg/apache/commons/compress/archivers/tar/TarUtils;->formatNameBytes(Ljava/lang/String;[BIILorg/apache/commons/compress/archivers/zip/ZipEncoding;)I

    move-result v5

    .line 843
    iget v1, p0, Lorg/apache/commons/compress/archivers/tar/TarArchiveEntry;->mode:I

    int-to-long v2, v1

    const/16 v6, 0x8

    move-object v1, p0

    move-object v4, p1

    move v7, p3

    invoke-direct/range {v1 .. v7}, Lorg/apache/commons/compress/archivers/tar/TarArchiveEntry;->writeEntryHeaderField(J[BIIZ)I

    move-result v5

    .line 844
    iget v1, p0, Lorg/apache/commons/compress/archivers/tar/TarArchiveEntry;->userId:I

    int-to-long v2, v1

    const/16 v6, 0x8

    move-object v1, p0

    move-object v4, p1

    move v7, p3

    invoke-direct/range {v1 .. v7}, Lorg/apache/commons/compress/archivers/tar/TarArchiveEntry;->writeEntryHeaderField(J[BIIZ)I

    move-result v5

    .line 846
    iget v1, p0, Lorg/apache/commons/compress/archivers/tar/TarArchiveEntry;->groupId:I

    int-to-long v2, v1

    const/16 v6, 0x8

    move-object v1, p0

    move-object v4, p1

    move v7, p3

    invoke-direct/range {v1 .. v7}, Lorg/apache/commons/compress/archivers/tar/TarArchiveEntry;->writeEntryHeaderField(J[BIIZ)I

    move-result v5

    .line 848
    iget-wide v2, p0, Lorg/apache/commons/compress/archivers/tar/TarArchiveEntry;->size:J

    const/16 v6, 0xc

    move-object v1, p0

    move-object v4, p1

    move v7, p3

    invoke-direct/range {v1 .. v7}, Lorg/apache/commons/compress/archivers/tar/TarArchiveEntry;->writeEntryHeaderField(J[BIIZ)I

    move-result v5

    .line 849
    iget-wide v2, p0, Lorg/apache/commons/compress/archivers/tar/TarArchiveEntry;->modTime:J

    const/16 v6, 0xc

    move-object v1, p0

    move-object v4, p1

    move v7, p3

    invoke-direct/range {v1 .. v7}, Lorg/apache/commons/compress/archivers/tar/TarArchiveEntry;->writeEntryHeaderField(J[BIIZ)I

    move-result v5

    .line 852
    move v10, v5

    .line 854
    .local v10, "csOffset":I
    const/4 v0, 0x0

    .local v0, "c":I
    move v11, v5

    .end local v5    # "offset":I
    .local v11, "offset":I
    :goto_0
    const/16 v1, 0x8

    if-ge v0, v1, :cond_0

    .line 855
    add-int/lit8 v5, v11, 0x1

    .end local v11    # "offset":I
    .restart local v5    # "offset":I
    const/16 v1, 0x20

    aput-byte v1, p1, v11

    .line 854
    add-int/lit8 v0, v0, 0x1

    move v11, v5

    .end local v5    # "offset":I
    .restart local v11    # "offset":I
    goto :goto_0

    .line 858
    :cond_0
    add-int/lit8 v5, v11, 0x1

    .end local v11    # "offset":I
    .restart local v5    # "offset":I
    iget-byte v1, p0, Lorg/apache/commons/compress/archivers/tar/TarArchiveEntry;->linkFlag:B

    aput-byte v1, p1, v11

    .line 859
    iget-object v1, p0, Lorg/apache/commons/compress/archivers/tar/TarArchiveEntry;->linkName:Ljava/lang/String;

    const/16 v2, 0x64

    invoke-static {v1, p1, v5, v2, p2}, Lorg/apache/commons/compress/archivers/tar/TarUtils;->formatNameBytes(Ljava/lang/String;[BIILorg/apache/commons/compress/archivers/zip/ZipEncoding;)I

    move-result v5

    .line 861
    iget-object v1, p0, Lorg/apache/commons/compress/archivers/tar/TarArchiveEntry;->magic:Ljava/lang/String;

    const/4 v2, 0x6

    invoke-static {v1, p1, v5, v2}, Lorg/apache/commons/compress/archivers/tar/TarUtils;->formatNameBytes(Ljava/lang/String;[BII)I

    move-result v5

    .line 862
    iget-object v1, p0, Lorg/apache/commons/compress/archivers/tar/TarArchiveEntry;->version:Ljava/lang/String;

    const/4 v2, 0x2

    invoke-static {v1, p1, v5, v2}, Lorg/apache/commons/compress/archivers/tar/TarUtils;->formatNameBytes(Ljava/lang/String;[BII)I

    move-result v5

    .line 863
    iget-object v1, p0, Lorg/apache/commons/compress/archivers/tar/TarArchiveEntry;->userName:Ljava/lang/String;

    const/16 v2, 0x20

    invoke-static {v1, p1, v5, v2, p2}, Lorg/apache/commons/compress/archivers/tar/TarUtils;->formatNameBytes(Ljava/lang/String;[BIILorg/apache/commons/compress/archivers/zip/ZipEncoding;)I

    move-result v5

    .line 865
    iget-object v1, p0, Lorg/apache/commons/compress/archivers/tar/TarArchiveEntry;->groupName:Ljava/lang/String;

    const/16 v2, 0x20

    invoke-static {v1, p1, v5, v2, p2}, Lorg/apache/commons/compress/archivers/tar/TarUtils;->formatNameBytes(Ljava/lang/String;[BIILorg/apache/commons/compress/archivers/zip/ZipEncoding;)I

    move-result v5

    .line 867
    iget v1, p0, Lorg/apache/commons/compress/archivers/tar/TarArchiveEntry;->devMajor:I

    int-to-long v2, v1

    const/16 v6, 0x8

    move-object v1, p0

    move-object v4, p1

    move v7, p3

    invoke-direct/range {v1 .. v7}, Lorg/apache/commons/compress/archivers/tar/TarArchiveEntry;->writeEntryHeaderField(J[BIIZ)I

    move-result v5

    .line 869
    iget v1, p0, Lorg/apache/commons/compress/archivers/tar/TarArchiveEntry;->devMinor:I

    int-to-long v2, v1

    const/16 v6, 0x8

    move-object v1, p0

    move-object v4, p1

    move v7, p3

    invoke-direct/range {v1 .. v7}, Lorg/apache/commons/compress/archivers/tar/TarArchiveEntry;->writeEntryHeaderField(J[BIIZ)I

    move-result v5

    .line 872
    :goto_1
    array-length v1, p1

    if-ge v5, v1, :cond_1

    .line 873
    add-int/lit8 v11, v5, 0x1

    .end local v5    # "offset":I
    .restart local v11    # "offset":I
    const/4 v1, 0x0

    aput-byte v1, p1, v5

    move v5, v11

    .end local v11    # "offset":I
    .restart local v5    # "offset":I
    goto :goto_1

    .line 876
    :cond_1
    invoke-static {p1}, Lorg/apache/commons/compress/archivers/tar/TarUtils;->computeCheckSum([B)J

    move-result-wide v8

    .line 878
    .local v8, "chk":J
    const/16 v1, 0x8

    invoke-static {v8, v9, p1, v10, v1}, Lorg/apache/commons/compress/archivers/tar/TarUtils;->formatCheckSumOctalBytes(J[BII)I

    .line 879
    return-void
.end method


text:
#ifndef _BDROID_BUILDCFG_H
#define _BDROID_BUILDCFG_H

#define BTM_DEF_LOCAL_NAME   "Samsung Galaxy S6"

#define BLE_VND_INCLUDED         TRUE
#define BTIF_HF_WBS_PREFERRED    TRUE    /* Use WBS */
#define BTM_WBS_INCLUDED         TRUE    /* Enable WBS */

#endif

redpajama_set_name: RedPajamaGithub


text:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<title>HexTranslator (Bouncy Castle Library 1.54 API Specification)</title>
<meta name="date" content="2015-12-29">
<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">

JavaScript is disabled on your browser.

Overview

Package

Class

Tree

Deprecated

Index

Help

Bouncy Castle Cryptography Library 1.54

Prev Class

Next Class

Frames

No Frames

All Classes

Summary:

Nested |

Field |

Constr |

Method

Detail:

Field |

Constr |

Method

org.bouncycastle.util.encoders

Class HexTranslator

java.lang.Object

org.bouncycastle.util.encoders.HexTranslator

All Implemented Interfaces:

Translator

public class HexTranslator
extends java.lang.Object
implements Translator

Converters for going from hex to binary and back. Note: this class assumes ASCII processing.

Constructor Summary

Constructors

Constructor and Description

HexTranslator()

Method Summary

Methods

Modifier and Type
Method and Description

int
decode(byte[] in,
      int inOff,
      int length,
      byte[] out,
      int outOff)

int
encode(byte[] in,
      int inOff,
      int length,
      byte[] out,
      int outOff)

int
getDecodedBlockSize()

size of the output block on decoding produced by getEncodedBlockSize()
 bytes.

int
getEncodedBlockSize()

size of the output block on encoding produced by getDecodedBlockSize()
 bytes.

Methods inherited from class java.lang.Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Constructor Detail

HexTranslator

public HexTranslator()

Method Detail

getEncodedBlockSize

public int getEncodedBlockSize()

size of the output block on encoding produced by getDecodedBlockSize()
 bytes.

Specified by:

getEncodedBlockSize in interface Translator

encode

public int encode(byte[] in,
         int inOff,
         int length,
         byte[] out,
         int outOff)

Specified by:

encode in interface Translator

getDecodedBlockSize

public int getDecodedBlockSize()

size of the output block on decoding produced by getEncodedBlockSize()
 bytes.

Specified by:

getDecodedBlockSize in interface Translator

decode

public int decode(byte[] in,
         int inOff,
         int length,
         byte[] out,
         int outOff)

Specified by:

decode in interface Translator

Overview

Package

Class

Tree

Deprecated

Index

Help

Bouncy Castle Cryptography Library 1.54

Prev Class

Next Class

Frames

No Frames

All Classes

Summary:

Nested |

Field |

Constr |

Method

Detail:

Field |

Constr |

Method


text:
require_relative 'gnu_unzip'
require_relative 'gnu_zip'
require_relative 'tarfile_reader'
require_relative 'tarfile_writer'

module TGZ

  def self.of(files)
    writer = TarFile::Writer.new
    files.each do |filename, content|
      writer.write(filename, content)
    end
    Gnu.zip(writer.tar_file)
  end

  def self.files(tgz)
    unzipped = Gnu.unzip(tgz)
    reader = TarFile::Reader.new(unzipped)
    reader.files.each.with_object({}) do |(filename,content),memo|
      memo[filename] = content
    end
  end

end


text:
package org.mifos.customers.checklist.persistence;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.mifos.accounts.business.AccountStateEntity;
import org.mifos.application.NamedQueryConstants;
import org.mifos.application.master.persistence.MasterPersistence;
import org.mifos.customers.business.CustomerStatusEntity;
import org.mifos.customers.checklist.business.AccountCheckListBO;
import org.mifos.customers.checklist.business.CheckListBO;
import org.mifos.customers.checklist.business.CustomerCheckListBO;
import org.mifos.customers.checklist.util.helpers.CheckListMasterView;
import org.mifos.customers.checklist.util.helpers.CheckListStatesView;
import org.mifos.framework.exceptions.PersistenceException;

public class CheckListPersistence extends MasterPersistence {

    public CheckListPersistence() {
    }

    public List<CheckListMasterView> getCheckListMasterData(Short localeId) throws PersistenceException {
        List<CheckListMasterView> checkListMaster = new ArrayList();
        List<CheckListMasterView> masterData = new ArrayList();

        HashMap<String, Object> queryParameters = new HashMap<String, Object>();
        masterData = executeNamedQuery(NamedQueryConstants.MASTERDATA_CUSTOMER_CHECKLIST, queryParameters);
        for (CheckListMasterView checkListMasterDataView : masterData) {
            checkListMasterDataView.setIsCustomer(true);
        }
        checkListMaster.addAll(masterData);
        masterData = executeNamedQuery(NamedQueryConstants.MASTERDATA_PRODUCT_CHECKLIST, queryParameters);
        for (CheckListMasterView checkListMasterDataView : masterData) {
            checkListMasterDataView.setIsCustomer(false);
        }
        checkListMaster.addAll(masterData);
        masterData = null;
        return checkListMaster;
    }

    public List<CheckListStatesView> retrieveAllCustomerStatusList(Short levelId, Short localeId)
            throws PersistenceException {
        List<CheckListStatesView> checkListStatesView = new ArrayList<CheckListStatesView>();
        Map<String, Object> queryParameters = new HashMap<String, Object>();
        queryParameters.put("LEVEL_ID", levelId);
        List<CustomerStatusEntity> queryResult = executeNamedQuery(
                NamedQueryConstants.CHECKLIST_GET_VALID_CUSTOMER_STATES, queryParameters);
        for (CustomerStatusEntity customerStatus : queryResult) {
            checkListStatesView.add(new CheckListStatesView(customerStatus.getId(), customerStatus.getName(),
                    customerStatus.getCustomerLevel().getId()));
        }
        return checkListStatesView;
    }

    public List<CheckListStatesView> retrieveAllAccountStateList(Short prdTypeId, Short localeId)
            throws PersistenceException {
        List<CheckListStatesView> checkListStatesView = new ArrayList<CheckListStatesView>();
        HashMap<String, Object> queryParameters = new HashMap<String, Object>();
        queryParameters.put("prdTypeId", prdTypeId);
        List<AccountStateEntity> queryResult = executeNamedQuery(
                NamedQueryConstants.CHECKLIST_GET_VALID_ACCOUNT_STATES, queryParameters);
        for (AccountStateEntity accountStatus : queryResult) {
            checkListStatesView.add(new CheckListStatesView(accountStatus.getId(), accountStatus.getName(),
                    accountStatus.getPrdType().getProductTypeID()));
        }
        return checkListStatesView;
    }

    public CheckListBO getCheckList(Short checkListId) throws PersistenceException {
        return (CheckListBO) getPersistentObject(CheckListBO.class, checkListId);
    }

    public long isValidCheckListState(Short levelId, Short stateId, boolean isCustomer) throws PersistenceException {
        HashMap<String, Object> queryParameters = new HashMap<String, Object>();
        queryParameters.put("levelId", levelId);
        queryParameters.put("stateId", stateId);
        if (isCustomer) {
            return (Long) execUniqueResultNamedQuery(NamedQueryConstants.CUSTOMER_VALIDATESTATE, queryParameters);
        } else {
            return (Long) execUniqueResultNamedQuery(NamedQueryConstants.PRODUCT_VALIDATESTATE, queryParameters);
        }
    }

    public List<CustomerCheckListBO> retreiveAllCustomerCheckLists() throws PersistenceException {
        return executeNamedQuery(NamedQueryConstants.LOAD_ALL_CUSTOMER_CHECKLISTS, null);
    }

    public List<AccountCheckListBO> retreiveAllAccountCheckLists() throws PersistenceException {
        return executeNamedQuery(NamedQueryConstants.LOAD_ALL_ACCOUNT_CHECKLISTS, null);
    }
}


text:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Paths</title>
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="index.html" title="Cairo: A Vector Graphics Library">
<link rel="up" href="cairo-drawing.html" title="Drawing">
<link rel="prev" href="cairo-cairo-t.html" title="cairo_t">
<link rel="next" href="cairo-cairo-pattern-t.html" title="cairo_pattern_t">
<meta name="generator" content="GTK-Doc V1.15 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">

Cairo: A Vector Graphics Library

Top
                   |
                  Description

Paths

Paths — Creating paths and manipulating path data

Synopsis

                    cairo_path_t;
union               cairo_path_data_t;
enum                cairo_path_data_type_t;
cairo_path_t *      cairo_copy_path                     (cairo_t *cr);
cairo_path_t *      cairo_copy_path_flat                (cairo_t *cr);
void                cairo_path_destroy                  (cairo_path_t *path);
void                cairo_append_path                   (cairo_t *cr,
                                                         const cairo_path_t *path);
cairo_bool_t        cairo_has_current_point             (cairo_t *cr);
void                cairo_get_current_point             (cairo_t *cr,
                                                         double *x,
                                                         double *y);
void                cairo_new_path                      (cairo_t *cr);
void                cairo_new_sub_path                  (cairo_t *cr);
void                cairo_close_path                    (cairo_t *cr);
void                cairo_arc                           (cairo_t *cr,
                                                         double xc,
                                                         double yc,
                                                         double radius,
                                                         double angle1,
                                                         double angle2);
void                cairo_arc_negative                  (cairo_t *cr,
                                                         double xc,
                                                         double yc,
                                                         double radius,
                                                         double angle1,
                                                         double angle2);
void                cairo_curve_to                      (cairo_t *cr,
                                                         double x1,
                                                         double y1,
                                                         double x2,
                                                         double y2,
                                                         double x3,
                                                         double y3);
void                cairo_line_to                       (cairo_t *cr,
                                                         double x,
                                                         double y);
void                cairo_move_to                       (cairo_t *cr,
                                                         double x,
                                                         double y);
void                cairo_rectangle                     (cairo_t *cr,
                                                         double x,
                                                         double y,
                                                         double width,
                                                         double height);
void                cairo_glyph_path                    (cairo_t *cr,
                                                         const cairo_glyph_t *glyphs,
                                                         int num_glyphs);
void                cairo_text_path                     (cairo_t *cr,
                                                         const char *utf8);
void                cairo_rel_curve_to                  (cairo_t *cr,
                                                         double dx1,
                                                         double dy1,
                                                         double dx2,
                                                         double dy2,
                                                         double dx3,
                                                         double dy3);
void                cairo_rel_line_to                   (cairo_t *cr,
                                                         double dx,
                                                         double dy);
void                cairo_rel_move_to                   (cairo_t *cr,
                                                         double dx,
                                                         double dy);
void                cairo_path_extents                  (cairo_t *cr,
                                                         double *x1,
                                                         double *y1,
                                                         double *x2,
                                                         double *y2);

Description

Paths are the most basic drawing tools and are primarily used to implicitly
generate simple masks.

Details

cairo_path_t

typedef struct {
    cairo_status_t status;
    cairo_path_data_t *data;
    int num_data;
} cairo_path_t;

A data structure for holding a path. This data structure serves as
the return value for cairo_copy_path() and
cairo_copy_path_flat() as well the input value for
cairo_append_path().

See cairo_path_data_t for hints on how to iterate over the
actual data within the path.

The num_data member gives the number of elements in the data
array. This number is larger than the number of independent path
portions (defined in cairo_path_data_type_t), since the data
includes both headers and coordinates for each portion.

<col align="left" valign="top">

cairo_status_t status;

the current error status

cairo_path_data_t *data;

the elements in the path

int num_data;

the number of elements in the data array

union cairo_path_data_t

cairo_path_data_t is used to represent the path data inside a
cairo_path_t.

The data structure is designed to try to balance the demands of
efficiency and ease-of-use. A path is represented as an array of
cairo_path_data_t, which is a union of headers and points.

Each portion of the path is represented by one or more elements in
the array, (one header followed by 0 or more points). The length
value of the header is the number of array elements for the current
portion including the header, (ie. length == 1 + # of points), and
where the number of points for each element type is as follows:

    %CAIRO_PATH_MOVE_TO:     1 point
    %CAIRO_PATH_LINE_TO:     1 point
    %CAIRO_PATH_CURVE_TO:    3 points
    %CAIRO_PATH_CLOSE_PATH:  0 points

The semantics and ordering of the coordinate values are consistent
with cairo_move_to(), cairo_line_to(), cairo_curve_to(), and
cairo_close_path().

Here is sample code for iterating through a cairo_path_t:

     int i;
     cairo_path_t *path;
     cairo_path_data_t *data;

     path = cairo_copy_path (cr);

     for (i=0; i < path->num_data; i += path->data[i].header.length) {
         data = &path->data[i];
         switch (data->header.type) {
         case CAIRO_PATH_MOVE_TO:
             do_move_to_things (data[1].point.x, data[1].point.y);
             break;
         case CAIRO_PATH_LINE_TO:
             do_line_to_things (data[1].point.x, data[1].point.y);
             break;
         case CAIRO_PATH_CURVE_TO:
             do_curve_to_things (data[1].point.x, data[1].point.y,
                                 data[2].point.x, data[2].point.y,
                                 data[3].point.x, data[3].point.y);
             break;
         case CAIRO_PATH_CLOSE_PATH:
             do_close_path_things ();
             break;
         }
     }
     cairo_path_destroy (path);

As of cairo 1.4, cairo does not mind if there are more elements in
a portion of the path than needed.  Such elements can be used by
users of the cairo API to hold extra values in the path data
structure.  For this reason, it is recommended that applications
always use data->header.length to
iterate over the path data, instead of hardcoding the number of
elements for each element type.

enum cairo_path_data_type_t

typedef enum _cairo_path_data_type {
    CAIRO_PATH_MOVE_TO,
    CAIRO_PATH_LINE_TO,
    CAIRO_PATH_CURVE_TO,
    CAIRO_PATH_CLOSE_PATH
} cairo_path_data_type_t;

cairo_path_data_t is used to describe the type of one portion
of a path when represented as a cairo_path_t.
See cairo_path_data_t for details.

<col align="left" valign="top">

CAIRO_PATH_MOVE_TO

A move-to operation

CAIRO_PATH_LINE_TO

A line-to operation

CAIRO_PATH_CURVE_TO

A curve-to operation

CAIRO_PATH_CLOSE_PATH

A close-path operation

cairo_copy_path ()

cairo_path_t *      cairo_copy_path                     (cairo_t *cr);

Creates a copy of the current path and returns it to the user as a
cairo_path_t. See cairo_path_data_t for hints on how to iterate
over the returned data structure.

This function will always return a valid pointer, but the result
will have no data (data==NULL and
num_data==0), if either of the following
conditions hold:

If there is insufficient memory to copy the path. In this
    case path->status will be set to
    CAIRO_STATUS_NO_MEMORY.

If cr is already in an error state. In this case
   path->status will contain the same status that
   would be returned by cairo_status().

<col align="left" valign="top">

cr :

a cairo context

Returns :

 the copy of the current path. The caller owns the
returned object and should call cairo_path_destroy() when finished
with it.

cairo_copy_path_flat ()

cairo_path_t *      cairo_copy_path_flat                (cairo_t *cr);

Gets a flattened copy of the current path and returns it to the
user as a cairo_path_t. See cairo_path_data_t for hints on
how to iterate over the returned data structure.

This function is like cairo_copy_path() except that any curves
in the path will be approximated with piecewise-linear
approximations, (accurate to within the current tolerance
value). That is, the result is guaranteed to not have any elements
of type CAIRO_PATH_CURVE_TO which will instead be replaced by a
series of CAIRO_PATH_LINE_TO elements.

This function will always return a valid pointer, but the result
will have no data (data==NULL and
num_data==0), if either of the following
conditions hold:

If there is insufficient memory to copy the path. In this
    case path->status will be set to
    CAIRO_STATUS_NO_MEMORY.

If cr is already in an error state. In this case
   path->status will contain the same status that
   would be returned by cairo_status().

<col align="left" valign="top">

cr :

a cairo context

Returns :

 the copy of the current path. The caller owns the
returned object and should call cairo_path_destroy() when finished
with it.

cairo_path_destroy ()

void                cairo_path_destroy                  (cairo_path_t *path);

Immediately releases all memory associated with path. After a call
to cairo_path_destroy() the path pointer is no longer valid and
should not be used further.

Note: cairo_path_destroy() should only be called with a
pointer to a cairo_path_t returned by a cairo function. Any path
that is created manually (ie. outside of cairo) should be destroyed
manually as well.

<col align="left" valign="top">

path :

a path previously returned by either cairo_copy_path() or
cairo_copy_path_flat().

cairo_append_path ()

void                cairo_append_path                   (cairo_t *cr,
                                                         const cairo_path_t *path);

Append the path onto the current path. The path may be either the
return value from one of cairo_copy_path() or
cairo_copy_path_flat() or it may be constructed manually.  See
cairo_path_t for details on how the path data structure should be
initialized, and note that path->status must be
initialized to CAIRO_STATUS_SUCCESS.

<col align="left" valign="top">

cr :

a cairo context

path :

path to be appended

cairo_has_current_point ()

cairo_bool_t        cairo_has_current_point             (cairo_t *cr);

Returns whether a current point is defined on the current path.
See cairo_get_current_point() for details on the current point.

<col align="left" valign="top">

cr :

a cairo context

Returns :

 whether a current point is defined.

Since 1.6

cairo_get_current_point ()

void                cairo_get_current_point             (cairo_t *cr,
                                                         double *x,
                                                         double *y);

Gets the current point of the current path, which is
conceptually the final point reached by the path so far.

The current point is returned in the user-space coordinate
system. If there is no defined current point or if cr is in an
error status, x and y will both be set to 0.0. It is possible to
check this in advance with cairo_has_current_point().

Most path construction functions alter the current point. See the
following for details on how they affect the current point:
cairo_new_path(), cairo_new_sub_path(),
cairo_append_path(), cairo_close_path(),
cairo_move_to(), cairo_line_to(), cairo_curve_to(),
cairo_rel_move_to(), cairo_rel_line_to(), cairo_rel_curve_to(),
cairo_arc(), cairo_arc_negative(), cairo_rectangle(),
cairo_text_path(), cairo_glyph_path(), cairo_stroke_to_path().

Some functions use and alter the current point but do not
otherwise change current path:
cairo_show_text().

Some functions unset the current path and as a result, current point:
cairo_fill(), cairo_stroke().

<col align="left" valign="top">

cr :

a cairo context

x :

return value for X coordinate of the current point

y :

return value for Y coordinate of the current point

cairo_new_path ()

void                cairo_new_path                      (cairo_t *cr);

Clears the current path. After this call there will be no path and
no current point.

<col align="left" valign="top">

cr :

a cairo context

cairo_new_sub_path ()

void                cairo_new_sub_path                  (cairo_t *cr);

Begin a new sub-path. Note that the existing path is not
affected. After this call there will be no current point.

In many cases, this call is not needed since new sub-paths are
frequently started with cairo_move_to().

A call to cairo_new_sub_path() is particularly useful when
beginning a new sub-path with one of the cairo_arc() calls. This
makes things easier as it is no longer necessary to manually
compute the arc's initial coordinates for a call to
cairo_move_to().

<col align="left" valign="top">

cr :

a cairo context

Since 1.2

cairo_close_path ()

void                cairo_close_path                    (cairo_t *cr);

Adds a line segment to the path from the current point to the
beginning of the current sub-path, (the most recent point passed to
cairo_move_to()), and closes this sub-path. After this call the
current point will be at the joined endpoint of the sub-path.

The behavior of cairo_close_path() is distinct from simply calling
cairo_line_to() with the equivalent coordinate in the case of
stroking. When a closed sub-path is stroked, there are no caps on
the ends of the sub-path. Instead, there is a line join connecting
the final and initial segments of the sub-path.

If there is no current point before the call to cairo_close_path(),
this function will have no effect.

Note: As of cairo version 1.2.4 any call to cairo_close_path() will
place an explicit MOVE_TO element into the path immediately after
the CLOSE_PATH element, (which can be seen in cairo_copy_path() for
example). This can simplify path processing in some cases as it may
not be necessary to save the "last move_to point" during processing
as the MOVE_TO immediately after the CLOSE_PATH will provide that
point.

<col align="left" valign="top">

cr :

a cairo context

cairo_arc ()

void                cairo_arc                           (cairo_t *cr,
                                                         double xc,
                                                         double yc,
                                                         double radius,
                                                         double angle1,
                                                         double angle2);

Adds a circular arc of the given radius to the current path.  The
arc is centered at (xc, yc), begins at angle1 and proceeds in
the direction of increasing angles to end at angle2. If angle2 is
less than angle1 it will be progressively increased by 2*M_PI
until it is greater than angle1.

If there is a current point, an initial line segment will be added
to the path to connect the current point to the beginning of the
arc. If this initial line is undesired, it can be avoided by
calling cairo_new_sub_path() before calling cairo_arc().

Angles are measured in radians. An angle of 0.0 is in the direction
of the positive X axis (in user space). An angle of M_PI/2.0 radians
(90 degrees) is in the direction of the positive Y axis (in
user space). Angles increase in the direction from the positive X
axis toward the positive Y axis. So with the default transformation
matrix, angles increase in a clockwise direction.

(To convert from degrees to radians, use degrees * (M_PI /
180.).)

This function gives the arc in the direction of increasing angles;
see cairo_arc_negative() to get the arc in the direction of
decreasing angles.

The arc is circular in user space. To achieve an elliptical arc,
you can scale the current transformation matrix by different
amounts in the X and Y directions. For example, to draw an ellipse
in the box given by x, y, width, height:

cairo_save (cr);
cairo_translate (cr, x + width / 2., y + height / 2.);
cairo_scale (cr, width / 2., height / 2.);
cairo_arc (cr, 0., 0., 1., 0., 2 * M_PI);
cairo_restore (cr);

<col align="left" valign="top">

cr :

a cairo context

xc :

X position of the center of the arc

yc :

Y position of the center of the arc

radius :

the radius of the arc

angle1 :

the start angle, in radians

angle2 :

the end angle, in radians

cairo_arc_negative ()

void                cairo_arc_negative                  (cairo_t *cr,
                                                         double xc,
                                                         double yc,
                                                         double radius,
                                                         double angle1,
                                                         double angle2);

Adds a circular arc of the given radius to the current path.  The
arc is centered at (xc, yc), begins at angle1 and proceeds in
the direction of decreasing angles to end at angle2. If angle2 is
greater than angle1 it will be progressively decreased by 2*M_PI
until it is less than angle1.

See cairo_arc() for more details. This function differs only in the
direction of the arc between the two angles.

<col align="left" valign="top">

cr :

a cairo context

xc :

X position of the center of the arc

yc :

Y position of the center of the arc

radius :

the radius of the arc

angle1 :

the start angle, in radians

angle2 :

the end angle, in radians

cairo_curve_to ()

void                cairo_curve_to                      (cairo_t *cr,
                                                         double x1,
                                                         double y1,
                                                         double x2,
                                                         double y2,
                                                         double x3,
                                                         double y3);

Adds a cubic Bézier spline to the path from the current point to
position (x3, y3) in user-space coordinates, using (x1, y1) and
(x2, y2) as the control points. After this call the current point
will be (x3, y3).

If there is no current point before the call to cairo_curve_to()
this function will behave as if preceded by a call to
cairo_move_to(cr, x1, y1).

<col align="left" valign="top">

cr :

a cairo context

x1 :

the X coordinate of the first control point

y1 :

the Y coordinate of the first control point

x2 :

the X coordinate of the second control point

y2 :

the Y coordinate of the second control point

x3 :

the X coordinate of the end of the curve

y3 :

the Y coordinate of the end of the curve

cairo_line_to ()

void                cairo_line_to                       (cairo_t *cr,
                                                         double x,
                                                         double y);

Adds a line to the path from the current point to position (x, y)
in user-space coordinates. After this call the current point
will be (x, y).

If there is no current point before the call to cairo_line_to()
this function will behave as cairo_move_to(cr, x, y).

<col align="left" valign="top">

cr :

a cairo context

x :

the X coordinate of the end of the new line

y :

the Y coordinate of the end of the new line

cairo_move_to ()

void                cairo_move_to                       (cairo_t *cr,
                                                         double x,
                                                         double y);

Begin a new sub-path. After this call the current point will be (x,
y).

<col align="left" valign="top">

cr :

a cairo context

x :

the X coordinate of the new position

y :

the Y coordinate of the new position

cairo_rectangle ()

void                cairo_rectangle                     (cairo_t *cr,
                                                         double x,
                                                         double y,
                                                         double width,
                                                         double height);

Adds a closed sub-path rectangle of the given size to the current
path at position (x, y) in user-space coordinates.

This function is logically equivalent to:

cairo_move_to (cr, x, y);
cairo_rel_line_to (cr, width, 0);
cairo_rel_line_to (cr, 0, height);
cairo_rel_line_to (cr, -width, 0);
cairo_close_path (cr);

<col align="left" valign="top">

cr :

a cairo context

x :

the X coordinate of the top left corner of the rectangle

y :

the Y coordinate to the top left corner of the rectangle

width :

the width of the rectangle

height :

the height of the rectangle

cairo_glyph_path ()

void                cairo_glyph_path                    (cairo_t *cr,
                                                         const cairo_glyph_t *glyphs,
                                                         int num_glyphs);

Adds closed paths for the glyphs to the current path.  The generated
path if filled, achieves an effect similar to that of
cairo_show_glyphs().

<col align="left" valign="top">

cr :

a cairo context

glyphs :

array of glyphs to show

num_glyphs :

number of glyphs to show

cairo_text_path ()

void                cairo_text_path                     (cairo_t *cr,
                                                         const char *utf8);

Adds closed paths for text to the current path.  The generated
path if filled, achieves an effect similar to that of
cairo_show_text().

Text conversion and positioning is done similar to cairo_show_text().

Like cairo_show_text(), After this call the current point is
moved to the origin of where the next glyph would be placed in
this same progression.  That is, the current point will be at
the origin of the final glyph offset by its advance values.
This allows for chaining multiple calls to to cairo_text_path()
without having to set current point in between.

Note: The cairo_text_path() function call is part of what the cairo
designers call the "toy" text API. It is convenient for short demos
and simple programs, but it is not expected to be adequate for
serious text-using applications. See cairo_glyph_path() for the
"real" text path API in cairo.

<col align="left" valign="top">

cr :

a cairo context

utf8 :

a NUL-terminated string of text encoded in UTF-8, or NULL

cairo_rel_curve_to ()

void                cairo_rel_curve_to                  (cairo_t *cr,
                                                         double dx1,
                                                         double dy1,
                                                         double dx2,
                                                         double dy2,
                                                         double dx3,
                                                         double dy3);

Relative-coordinate version of cairo_curve_to(). All offsets are
relative to the current point. Adds a cubic Bézier spline to the
path from the current point to a point offset from the current
point by (dx3, dy3), using points offset by (dx1, dy1) and
(dx2, dy2) as the control points. After this call the current
point will be offset by (dx3, dy3).

Given a current point of (x, y), cairo_rel_curve_to(cr, dx1,
dy1, dx2, dy2, dx3, dy3) is logically equivalent to
cairo_curve_to(cr, x+dx1, y+dy1, x+dx2, y+dy2, x+dx3, y+dy3).

It is an error to call this function with no current point. Doing
so will cause cr to shutdown with a status of
CAIRO_STATUS_NO_CURRENT_POINT.

<col align="left" valign="top">

cr :

a cairo context

dx1 :

the X offset to the first control point

dy1 :

the Y offset to the first control point

dx2 :

the X offset to the second control point

dy2 :

the Y offset to the second control point

dx3 :

the X offset to the end of the curve

dy3 :

the Y offset to the end of the curve

cairo_rel_line_to ()

void                cairo_rel_line_to                   (cairo_t *cr,
                                                         double dx,
                                                         double dy);

Relative-coordinate version of cairo_line_to(). Adds a line to the
path from the current point to a point that is offset from the
current point by (dx, dy) in user space. After this call the
current point will be offset by (dx, dy).

Given a current point of (x, y), cairo_rel_line_to(cr, dx, dy)
is logically equivalent to cairo_line_to(cr, x + dx, y + dy).

It is an error to call this function with no current point. Doing
so will cause cr to shutdown with a status of
CAIRO_STATUS_NO_CURRENT_POINT.

<col align="left" valign="top">

cr :

a cairo context

dx :

the X offset to the end of the new line

dy :

the Y offset to the end of the new line

cairo_rel_move_to ()

void                cairo_rel_move_to                   (cairo_t *cr,
                                                         double dx,
                                                         double dy);

Begin a new sub-path. After this call the current point will offset
by (x, y).

Given a current point of (x, y), cairo_rel_move_to(cr, dx, dy)
is logically equivalent to cairo_move_to(cr, x + dx, y + dy).

It is an error to call this function with no current point. Doing
so will cause cr to shutdown with a status of
CAIRO_STATUS_NO_CURRENT_POINT.

<col align="left" valign="top">

cr :

a cairo context

dx :

the X offset

dy :

the Y offset

cairo_path_extents ()

void                cairo_path_extents                  (cairo_t *cr,
                                                         double *x1,
                                                         double *y1,
                                                         double *x2,
                                                         double *y2);

Computes a bounding box in user-space coordinates covering the
points on the current path. If the current path is empty, returns
an empty rectangle ((0,0), (0,0)). Stroke parameters, fill rule,
surface dimensions and clipping are not taken into account.

Contrast with cairo_fill_extents() and cairo_stroke_extents() which
return the extents of only the area that would be "inked" by
the corresponding drawing operations.

The result of cairo_path_extents() is defined as equivalent to the
limit of cairo_stroke_extents() with CAIRO_LINE_CAP_ROUND as the
line width approaches 0.0, (but never reaching the empty-rectangle
returned by cairo_stroke_extents() for a line width of 0.0).

Specifically, this means that zero-area sub-paths such as
cairo_move_to();cairo_line_to() segments, (even degenerate cases
where the coordinates to both calls are identical), will be
considered as contributing to the extents. However, a lone
cairo_move_to() will not contribute to the results of
cairo_path_extents().

<col align="left" valign="top">

cr :

a cairo context

x1 :

left of the resulting extents

y1 :

top of the resulting extents

x2 :

right of the resulting extents

y2 :

bottom of the resulting extents

Since 1.6

          Generated by GTK-Doc V1.15


text:
'use strict';

(function (window, document, $, hljs) {
  $(function () {
    // Fix for IOS :active
    document.addEventListener('touchstart', function () {});

    // Nav activation
    $('.nav-button, .nav-cover').on('click', function (ev) {
      ev.preventDefault();
      $('body').toggleClass('nav-opened');
    });

    // Social links
    var $navSocial = $('.nav-social');
    $.each(window.cyanotype.social, function(name, url) {
      var $li = $('

');
      var $a = $('');
      var $navItem = $li.append($a);
      $navSocial.append($navItem);
    });

    // Code highlighting
    hljs.initHighlightingOnLoad();
  });
}(window, document, window.jQuery, window.hljs));


text:
class CreatePublinatorSections < ActiveRecord::Migration
  def change
    create_table :publinator_sections do |t|
      t.string :name
      t.integer :parent_id
      t.boolean :layout
      t.integer :site_id
      t.string :section_slug
      t.integer :position

      t.timestamps
    end
  end
end


text:
<?php
require_once(__DIR__."/../App/Controllers/MainController.php");
MainController::Team();


text:
package io.github.hsyyid.essentialcmds.cmdexecutors;

import io.github.hsyyid.essentialcmds.internal.CommandExecutorBase;
import org.spongepowered.api.Sponge;
import org.spongepowered.api.command.CommandException;
import org.spongepowered.api.command.CommandResult;
import org.spongepowered.api.command.CommandSource;
import org.spongepowered.api.command.args.CommandContext;
import org.spongepowered.api.command.args.GenericArguments;
import org.spongepowered.api.command.spec.CommandSpec;
import org.spongepowered.api.entity.living.player.Player;
import org.spongepowered.api.text.Text;
import org.spongepowered.api.text.format.TextColors;

import javax.annotation.Nonnull;

public class HelpOpExecutor extends CommandExecutorBase
{
	public CommandResult execute(CommandSource src, CommandContext ctx) throws CommandException
	{
		String question = ctx.<String> getOne("question").get();

		if (src instanceof Player)
		{
			Player player = (Player) src;

			for(Player p : Sponge.getServer().getOnlinePlayers())
			{
				if(p.hasPermission("essentialcmds.helpop.receive"))
					p.sendMessage(Text.of(TextColors.RED, "[Help-Op]: ", TextColors.GOLD, player.getName(), TextColors.GRAY, " needs help! ", TextColors.WHITE, question));
			}
		}
		else
		{
			src.sendMessage(Text.of(TextColors.DARK_RED, "Error! ", TextColors.RED, "Must be an in-game player to use /helpop!"));
		}

		return CommandResult.success();
	}

	@Nonnull
	@Override
	public String[] getAliases() {
		return new String[] { "helpop" };
	}

	@Nonnull
	@Override
	public CommandSpec getSpec() {
		return CommandSpec.builder()
			.description(Text.of("Help-Op Command"))
			.arguments(GenericArguments.onlyOne(GenericArguments.remainingJoinedStrings(Text.of("question"))))
			.permission("essentialcmds.helpop.use")
			.executor(this)
			.build();
	}
}


text:
import { setPropertiesFromJSON } from '../../json-helper';

import Entity from '../entity/Entity';

/**
 * Generated class for shr.careplan.CareTeam.
 * @extends Entity
 */
class CareTeam extends Entity {

  /**
   * Get the entry information.
   * @returns {Entry} The shr.base.Entry
   */
  get entryInfo() {
    return this._entryInfo;
  }

  /**
   * Set the entry information.
   * @param {Entry} entryInfo - The shr.base.Entry
   */
  set entryInfo(entryInfo) {
    this._entryInfo = entryInfo;
  }

  /**
   * Get the Participant array.
   * @returns {Array<Participant>} The shr.action.Participant array
   */
  get participant() {
    return this._participant;
  }

  /**
   * Set the Participant array.
   * @param {Array<Participant>} participant - The shr.action.Participant array
   */
  set participant(participant) {
    this._participant = participant;
  }

  /**
   * Deserializes JSON data to an instance of the CareTeam class.
   * The JSON must be valid against the CareTeam JSON schema, although this is not validated by the function.
   * @param {object} json - the JSON data to deserialize
   * @returns {CareTeam} An instance of CareTeam populated with the JSON data
   */
  static fromJSON(json={}) {
    const inst = new CareTeam();
    setPropertiesFromJSON(inst, json);
    return inst;
  }
}
export default CareTeam;