CodaBarWriter.smali
.class public final Lcom/google/zxing/oned/CodaBarWriter;
.super Lcom/google/zxing/oned/OneDimensionalCodeWriter;
.source "CodaBarWriter.java"
# static fields
.field private static final ALT_START_END_CHARS:[C
.field private static final CHARS_WHICH_ARE_TEN_LENGTH_EACH_AFTER_DECODED:[C
.field private static final DEFAULT_GUARD:C
.field private static final START_END_CHARS:[C
# direct methods
.method static constructor <clinit>()V
.registers 3
const/4 v0, 0x4
new-array v1, v0, [C
.line 26
fill-array-data v1, :array_1c
sput-object v1, Lcom/google/zxing/oned/CodaBarWriter;->START_END_CHARS:[C
new-array v2, v0, [C
.line 27
fill-array-data v2, :array_24
sput-object v2, Lcom/google/zxing/oned/CodaBarWriter;->ALT_START_END_CHARS:[C
new-array v0, v0, [C
.line 28
fill-array-data v0, :array_2c
sput-object v0, Lcom/google/zxing/oned/CodaBarWriter;->CHARS_WHICH_ARE_TEN_LENGTH_EACH_AFTER_DECODED:[C
const/4 v0, 0x0
.line 29
aget-char v0, v1, v0
sput-char v0, Lcom/google/zxing/oned/CodaBarWriter;->DEFAULT_GUARD:C
return-void
:array_1c
.array-data 2
0x41s
0x42s
0x43s
0x44s
.end array-data
:array_24
.array-data 2
0x54s
0x4es
0x2as
0x45s
.end array-data
:array_2c
.array-data 2
0x2fs
0x3as
0x2bs
0x2es
.end array-data
.end method
.method public constructor <init>()V
.registers 1
.line 24
invoke-direct {p0}, Lcom/google/zxing/oned/OneDimensionalCodeWriter;-><init>()V
return-void
.end method
# virtual methods
.method public encode(Ljava/lang/String;)[Z
.registers 12
.line 34
invoke-virtual {p1}, Ljava/lang/String;->length()I
move-result v0
const/4 v1, 0x0
const/4 v2, 0x1
const/4 v3, 0x2
if-ge v0, v3, :cond_21
.line 36
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
sget-char v3, Lcom/google/zxing/oned/CodaBarWriter;->DEFAULT_GUARD:C
invoke-virtual {v0, v3}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
invoke-virtual {v0, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
sget-char p1, Lcom/google/zxing/oned/CodaBarWriter;->DEFAULT_GUARD:C
invoke-virtual {v0, p1}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p1
goto/16 :goto_98
.line 39
:cond_21
invoke-virtual {p1, v1}, Ljava/lang/String;->charAt(I)C
move-result v0
invoke-static {v0}, Ljava/lang/Character;->toUpperCase(C)C
move-result v0
.line 40
invoke-virtual {p1}, Ljava/lang/String;->length()I
move-result v3
sub-int/2addr v3, v2
invoke-virtual {p1, v3}, Ljava/lang/String;->charAt(I)C
move-result v3
invoke-static {v3}, Ljava/lang/Character;->toUpperCase(C)C
move-result v3
.line 41
sget-object v4, Lcom/google/zxing/oned/CodaBarWriter;->START_END_CHARS:[C
invoke-static {v4, v0}, Lcom/google/zxing/oned/CodaBarReader;->arrayContains([CC)Z
move-result v4
.line 42
sget-object v5, Lcom/google/zxing/oned/CodaBarWriter;->START_END_CHARS:[C
invoke-static {v5, v3}, Lcom/google/zxing/oned/CodaBarReader;->arrayContains([CC)Z
move-result v5
.line 43
sget-object v6, Lcom/google/zxing/oned/CodaBarWriter;->ALT_START_END_CHARS:[C
invoke-static {v6, v0}, Lcom/google/zxing/oned/CodaBarReader;->arrayContains([CC)Z
move-result v0
.line 44
sget-object v6, Lcom/google/zxing/oned/CodaBarWriter;->ALT_START_END_CHARS:[C
invoke-static {v6, v3}, Lcom/google/zxing/oned/CodaBarReader;->arrayContains([CC)Z
move-result v3
const-string v6, "Invalid start/end guards: "
if-eqz v4, :cond_67
if-eqz v5, :cond_55
goto :goto_98
.line 47
:cond_55
new-instance v0, Ljava/lang/IllegalArgumentException;
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1, v6}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p1
invoke-direct {v0, p1}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V
throw v0
:cond_67
if-eqz v0, :cond_7e
if-eqz v3, :cond_6c
goto :goto_98
.line 52
:cond_6c
new-instance v0, Ljava/lang/IllegalArgumentException;
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1, v6}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p1
invoke-direct {v0, p1}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V
throw v0
:cond_7e
if-nez v5, :cond_16b
if-nez v3, :cond_16b
.line 61
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
sget-char v3, Lcom/google/zxing/oned/CodaBarWriter;->DEFAULT_GUARD:C
invoke-virtual {v0, v3}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
invoke-virtual {v0, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
sget-char p1, Lcom/google/zxing/oned/CodaBarWriter;->DEFAULT_GUARD:C
invoke-virtual {v0, p1}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p1
:goto_98
const/16 v0, 0x14
const/4 v3, 0x1
.line 67
:goto_9b
invoke-virtual {p1}, Ljava/lang/String;->length()I
move-result v4
sub-int/2addr v4, v2
if-ge v3, v4, :cond_ee
.line 68
invoke-virtual {p1, v3}, Ljava/lang/String;->charAt(I)C
move-result v4
invoke-static {v4}, Ljava/lang/Character;->isDigit(C)Z
move-result v4
if-nez v4, :cond_e9
invoke-virtual {p1, v3}, Ljava/lang/String;->charAt(I)C
move-result v4
const/16 v5, 0x2d
if-eq v4, v5, :cond_e9
invoke-virtual {p1, v3}, Ljava/lang/String;->charAt(I)C
move-result v4
const/16 v5, 0x24
if-ne v4, v5, :cond_bd
goto :goto_e9
.line 70
:cond_bd
sget-object v4, Lcom/google/zxing/oned/CodaBarWriter;->CHARS_WHICH_ARE_TEN_LENGTH_EACH_AFTER_DECODED:[C
invoke-virtual {p1, v3}, Ljava/lang/String;->charAt(I)C
move-result v5
invoke-static {v4, v5}, Lcom/google/zxing/oned/CodaBarReader;->arrayContains([CC)Z
move-result v4
if-eqz v4, :cond_cc
add-int/lit8 v0, v0, 0xa
goto :goto_eb
.line 73
:cond_cc
new-instance v0, Ljava/lang/IllegalArgumentException;
new-instance v1, Ljava/lang/StringBuilder;
const-string v2, "Cannot encode : \'"
invoke-direct {v1, v2}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
invoke-virtual {p1, v3}, Ljava/lang/String;->charAt(I)C
move-result p1
invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
const/16 p1, 0x27
invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p1
invoke-direct {v0, p1}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V
throw v0
:cond_e9
:goto_e9
add-int/lit8 v0, v0, 0x9
:goto_eb
add-int/lit8 v3, v3, 0x1
goto :goto_9b
.line 77
:cond_ee
invoke-virtual {p1}, Ljava/lang/String;->length()I
move-result v3
sub-int/2addr v3, v2
add-int/2addr v0, v3
.line 79
new-array v0, v0, [Z
const/4 v3, 0x0
const/4 v4, 0x0
.line 81
:goto_f8
invoke-virtual {p1}, Ljava/lang/String;->length()I
move-result v5
if-ge v3, v5, :cond_16a
.line 82
invoke-virtual {p1, v3}, Ljava/lang/String;->charAt(I)C
move-result v5
invoke-static {v5}, Ljava/lang/Character;->toUpperCase(C)C
move-result v5
if-eqz v3, :cond_10f
.line 83
invoke-virtual {p1}, Ljava/lang/String;->length()I
move-result v6
sub-int/2addr v6, v2
if-ne v3, v6, :cond_12b
:cond_10f
const/16 v6, 0x2a
if-eq v5, v6, :cond_129
const/16 v6, 0x45
if-eq v5, v6, :cond_126
const/16 v6, 0x4e
if-eq v5, v6, :cond_123
const/16 v6, 0x54
if-eq v5, v6, :cond_120
goto :goto_12b
:cond_120
const/16 v5, 0x41
goto :goto_12b
:cond_123
const/16 v5, 0x42
goto :goto_12b
:cond_126
const/16 v5, 0x44
goto :goto_12b
:cond_129
const/16 v5, 0x43
:cond_12b
:goto_12b
const/4 v6, 0x0
.line 101
:goto_12c
sget-object v7, Lcom/google/zxing/oned/CodaBarReader;->ALPHABET:[C
array-length v7, v7
if-ge v6, v7, :cond_13f
.line 103
sget-object v7, Lcom/google/zxing/oned/CodaBarReader;->ALPHABET:[C
aget-char v7, v7, v6
if-ne v5, v7, :cond_13c
.line 104
sget-object v5, Lcom/google/zxing/oned/CodaBarReader;->CHARACTER_ENCODINGS:[I
aget v5, v5, v6
goto :goto_140
:cond_13c
add-int/lit8 v6, v6, 0x1
goto :goto_12c
:cond_13f
const/4 v5, 0x0
:goto_140
const/4 v6, 0x0
const/4 v7, 0x1
:goto_142
const/4 v8, 0x0
:goto_143
const/4 v9, 0x7
if-ge v6, v9, :cond_15c
.line 112
aput-boolean v7, v0, v4
add-int/lit8 v4, v4, 0x1
rsub-int/lit8 v9, v6, 0x6
shr-int v9, v5, v9
and-int/2addr v9, v2
if-eqz v9, :cond_157
if-ne v8, v2, :cond_154
goto :goto_157
:cond_154
add-int/lit8 v8, v8, 0x1
goto :goto_143
:cond_157
:goto_157
xor-int/lit8 v7, v7, 0x1
add-int/lit8 v6, v6, 0x1
goto :goto_142
.line 122
:cond_15c
invoke-virtual {p1}, Ljava/lang/String;->length()I
move-result v5
sub-int/2addr v5, v2
if-ge v3, v5, :cond_167
.line 123
aput-boolean v1, v0, v4
add-int/lit8 v4, v4, 0x1
:cond_167
add-int/lit8 v3, v3, 0x1
goto :goto_f8
:cond_16a
return-object v0
.line 58
:cond_16b
new-instance v0, Ljava/lang/IllegalArgumentException;
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1, v6}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p1
invoke-direct {v0, p1}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V
throw v0
.end method