CodaBarWriter.smali
.class public final Lcom/dcloud/zxing2/oned/CodaBarWriter;
.super Lcom/dcloud/zxing2/oned/OneDimensionalCodeWriter;
# 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 1
fill-array-data v1, :array_1c
sput-object v1, Lcom/dcloud/zxing2/oned/CodaBarWriter;->START_END_CHARS:[C
new-array v2, v0, [C
.line 2
fill-array-data v2, :array_24
sput-object v2, Lcom/dcloud/zxing2/oned/CodaBarWriter;->ALT_START_END_CHARS:[C
new-array v0, v0, [C
.line 3
fill-array-data v0, :array_2c
sput-object v0, Lcom/dcloud/zxing2/oned/CodaBarWriter;->CHARS_WHICH_ARE_TEN_LENGTH_EACH_AFTER_DECODED:[C
const/4 v0, 0x0
.line 4
aget-char v0, v1, v0
sput-char v0, Lcom/dcloud/zxing2/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 1
invoke-direct {p0}, Lcom/dcloud/zxing2/oned/OneDimensionalCodeWriter;-><init>()V
return-void
.end method
# virtual methods
.method public encode(Ljava/lang/String;)[Z
.registers 12
.line 1
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_1f
.line 3
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
sget-char v3, Lcom/dcloud/zxing2/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;
invoke-virtual {v0, v3}, 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_96
.line 6
:cond_1f
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 7
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 8
sget-object v4, Lcom/dcloud/zxing2/oned/CodaBarWriter;->START_END_CHARS:[C
invoke-static {v4, v0}, Lcom/dcloud/zxing2/oned/CodaBarReader;->arrayContains([CC)Z
move-result v5
.line 9
invoke-static {v4, v3}, Lcom/dcloud/zxing2/oned/CodaBarReader;->arrayContains([CC)Z
move-result v4
.line 10
sget-object v6, Lcom/dcloud/zxing2/oned/CodaBarWriter;->ALT_START_END_CHARS:[C
invoke-static {v6, v0}, Lcom/dcloud/zxing2/oned/CodaBarReader;->arrayContains([CC)Z
move-result v0
.line 11
invoke-static {v6, v3}, Lcom/dcloud/zxing2/oned/CodaBarReader;->arrayContains([CC)Z
move-result v3
const-string v6, "Invalid start/end guards: "
if-eqz v5, :cond_64
if-eqz v4, :cond_4f
goto :goto_96
.line 14
:cond_4f
new-instance v0, Ljava/lang/IllegalArgumentException;
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v1, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
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_64
if-eqz v0, :cond_7e
if-eqz v3, :cond_69
goto :goto_96
.line 19
:cond_69
new-instance v0, Ljava/lang/IllegalArgumentException;
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v1, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
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 v4, :cond_16b
if-nez v3, :cond_16b
.line 28
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
sget-char v3, Lcom/dcloud/zxing2/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;
invoke-virtual {v0, v3}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p1
:goto_96
const/16 v0, 0x14
move v3, v2
.line 34
:goto_99
invoke-virtual {p1}, Ljava/lang/String;->length()I
move-result v4
sub-int/2addr v4, v2
if-ge v3, v4, :cond_ef
.line 35
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_ea
invoke-virtual {p1, v3}, Ljava/lang/String;->charAt(I)C
move-result v4
const/16 v5, 0x2d
if-eq v4, v5, :cond_ea
invoke-virtual {p1, v3}, Ljava/lang/String;->charAt(I)C
move-result v4
const/16 v5, 0x24
if-ne v4, v5, :cond_bb
goto :goto_ea
.line 37
:cond_bb
sget-object v4, Lcom/dcloud/zxing2/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/dcloud/zxing2/oned/CodaBarReader;->arrayContains([CC)Z
move-result v4
if-eqz v4, :cond_ca
add-int/lit8 v0, v0, 0xa
goto :goto_ec
.line 40
:cond_ca
new-instance v0, Ljava/lang/IllegalArgumentException;
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
const-string v2, "Cannot encode : \'"
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
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_ea
:goto_ea
add-int/lit8 v0, v0, 0x9
:goto_ec
add-int/lit8 v3, v3, 0x1
goto :goto_99
.line 44
:cond_ef
invoke-virtual {p1}, Ljava/lang/String;->length()I
move-result v3
sub-int/2addr v3, v2
add-int/2addr v0, v3
.line 46
new-array v0, v0, [Z
move v3, v1
move v4, v3
.line 48
:goto_f9
invoke-virtual {p1}, Ljava/lang/String;->length()I
move-result v5
if-ge v3, v5, :cond_16a
.line 49
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_110
.line 50
invoke-virtual {p1}, Ljava/lang/String;->length()I
move-result v6
sub-int/2addr v6, v2
if-ne v3, v6, :cond_12c
:cond_110
const/16 v6, 0x2a
if-eq v5, v6, :cond_12a
const/16 v6, 0x45
if-eq v5, v6, :cond_127
const/16 v6, 0x4e
if-eq v5, v6, :cond_124
const/16 v6, 0x54
if-eq v5, v6, :cond_121
goto :goto_12c
:cond_121
const/16 v5, 0x41
goto :goto_12c
:cond_124
const/16 v5, 0x42
goto :goto_12c
:cond_127
const/16 v5, 0x44
goto :goto_12c
:cond_12a
const/16 v5, 0x43
:cond_12c
:goto_12c
move v6, v1
.line 68
:goto_12d
sget-object v7, Lcom/dcloud/zxing2/oned/CodaBarReader;->ALPHABET:[C
array-length v8, v7
if-ge v6, v8, :cond_13e
.line 70
aget-char v7, v7, v6
if-ne v5, v7, :cond_13b
.line 71
sget-object v5, Lcom/dcloud/zxing2/oned/CodaBarReader;->CHARACTER_ENCODINGS:[I
aget v5, v5, v6
goto :goto_13f
:cond_13b
add-int/lit8 v6, v6, 0x1
goto :goto_12d
:cond_13e
move v5, v1
:goto_13f
move v6, v1
move v8, v6
move v7, v2
:goto_142
const/4 v9, 0x7
if-ge v6, v9, :cond_15c
.line 79
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_156
if-ne v8, v2, :cond_153
goto :goto_156
:cond_153
add-int/lit8 v8, v8, 0x1
goto :goto_142
:cond_156
:goto_156
xor-int/lit8 v7, v7, 0x1
add-int/lit8 v6, v6, 0x1
move v8, v1
goto :goto_142
.line 89
: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 90
aput-boolean v1, v0, v4
add-int/lit8 v4, v4, 0x1
:cond_167
add-int/lit8 v3, v3, 0x1
goto :goto_f9
:cond_16a
return-object v0
.line 91
:cond_16b
new-instance v0, Ljava/lang/IllegalArgumentException;
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v1, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
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