.class public abstract Lcom/google/zxing/oned/UPCEANReader; .super Lcom/google/zxing/oned/OneDReader; .source "SourceFile" # static fields .field public static final END_PATTERN:[I .field public static final L_AND_G_PATTERNS:[[I .field public static final L_PATTERNS:[[I .field public static final MIDDLE_PATTERN:[I .field public static final START_END_PATTERN:[I # direct methods .method static constructor ()V .locals 10 const/4 v0, 0x1 filled-new-array {v0, v0, v0}, [I move-result-object v1 sput-object v1, Lcom/google/zxing/oned/UPCEANReader;->START_END_PATTERN:[I filled-new-array {v0, v0, v0, v0, v0}, [I move-result-object v1 sput-object v1, Lcom/google/zxing/oned/UPCEANReader;->MIDDLE_PATTERN:[I const/4 v1, 0x6 new-array v2, v1, [I fill-array-data v2, :array_0 sput-object v2, Lcom/google/zxing/oned/UPCEANReader;->END_PATTERN:[I const/16 v2, 0xa new-array v3, v2, [[I const/4 v4, 0x3 const/4 v5, 0x2 filled-new-array {v4, v5, v0, v0}, [I move-result-object v6 const/4 v7, 0x0 aput-object v6, v3, v7 filled-new-array {v5, v5, v5, v0}, [I move-result-object v6 aput-object v6, v3, v0 filled-new-array {v5, v0, v5, v5}, [I move-result-object v6 aput-object v6, v3, v5 const/4 v6, 0x4 filled-new-array {v0, v6, v0, v0}, [I move-result-object v8 aput-object v8, v3, v4 filled-new-array {v0, v0, v4, v5}, [I move-result-object v8 aput-object v8, v3, v6 const/4 v8, 0x5 filled-new-array {v0, v5, v4, v0}, [I move-result-object v9 aput-object v9, v3, v8 filled-new-array {v0, v0, v0, v6}, [I move-result-object v6 aput-object v6, v3, v1 const/4 v1, 0x7 filled-new-array {v0, v4, v0, v5}, [I move-result-object v6 aput-object v6, v3, v1 const/16 v1, 0x8 filled-new-array {v0, v5, v0, v4}, [I move-result-object v6 aput-object v6, v3, v1 const/16 v1, 0x9 filled-new-array {v4, v0, v0, v5}, [I move-result-object v4 aput-object v4, v3, v1 sput-object v3, Lcom/google/zxing/oned/UPCEANReader;->L_PATTERNS:[[I const/16 v1, 0x14 new-array v4, v1, [[I sput-object v4, Lcom/google/zxing/oned/UPCEANReader;->L_AND_G_PATTERNS:[[I .line 86 invoke-static {v3, v7, v4, v7, v2}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V :goto_0 if-ge v2, v1, :cond_1 sget-object v3, Lcom/google/zxing/oned/UPCEANReader;->L_PATTERNS:[[I add-int/lit8 v4, v2, -0xa .line 88 aget-object v3, v3, v4 .line 89 array-length v4, v3 new-array v4, v4, [I move v5, v7 .line 90 :goto_1 array-length v6, v3 if-ge v5, v6, :cond_0 .line 91 array-length v6, v3 sub-int/2addr v6, v5 sub-int/2addr v6, v0 aget v6, v3, v6 aput v6, v4, v5 add-int/lit8 v5, v5, 0x1 goto :goto_1 :cond_0 sget-object v3, Lcom/google/zxing/oned/UPCEANReader;->L_AND_G_PATTERNS:[[I .line 93 aput-object v4, v3, v2 add-int/lit8 v2, v2, 0x1 goto :goto_0 :cond_1 return-void nop :array_0 .array-data 4 0x1 0x1 0x1 0x1 0x1 0x1 .end array-data .end method .method public static checkStandardUPCEANChecksum(Ljava/lang/CharSequence;)Z .locals 5 .line 264 invoke-interface {p0}, Ljava/lang/CharSequence;->length()I move-result v0 const/4 v1, 0x0 if-nez v0, :cond_0 return v1 :cond_0 const/4 v2, 0x1 sub-int/2addr v0, v2 .line 268 invoke-interface {p0, v0}, Ljava/lang/CharSequence;->charAt(I)C move-result v3 const/16 v4, 0xa invoke-static {v3, v4}, Ljava/lang/Character;->digit(CI)I move-result v3 .line 269 invoke-interface {p0, v1, v0}, Ljava/lang/CharSequence;->subSequence(II)Ljava/lang/CharSequence; move-result-object p0 invoke-static {p0}, Lcom/google/zxing/oned/UPCEANReader;->getStandardUPCEANChecksum(Ljava/lang/CharSequence;)I move-result p0 if-ne p0, v3, :cond_1 return v2 :cond_1 return v1 .end method .method public static getStandardUPCEANChecksum(Ljava/lang/CharSequence;)I .locals 5 .line 273 invoke-interface {p0}, Ljava/lang/CharSequence;->length()I move-result v0 add-int/lit8 v1, v0, -0x1 const/4 v2, 0x0 :goto_0 const/16 v3, 0x9 if-ltz v1, :cond_1 .line 276 invoke-interface {p0, v1}, Ljava/lang/CharSequence;->charAt(I)C move-result v4 add-int/lit8 v4, v4, -0x30 if-ltz v4, :cond_0 if-gt v4, v3, :cond_0 add-int/2addr v2, v4 add-int/lit8 v1, v1, -0x2 goto :goto_0 .line 278 :cond_0 invoke-static {}, Lcom/google/zxing/FormatException;->getFormatInstance()Lcom/google/zxing/FormatException; move-result-object p0 throw p0 :cond_1 mul-int/lit8 v2, v2, 0x3 add-int/lit8 v0, v0, -0x2 :goto_1 if-ltz v0, :cond_3 .line 284 invoke-interface {p0, v0}, Ljava/lang/CharSequence;->charAt(I)C move-result v1 add-int/lit8 v1, v1, -0x30 if-ltz v1, :cond_2 if-gt v1, v3, :cond_2 add-int/2addr v2, v1 add-int/lit8 v0, v0, -0x2 goto :goto_1 .line 286 :cond_2 invoke-static {}, Lcom/google/zxing/FormatException;->getFormatInstance()Lcom/google/zxing/FormatException; move-result-object p0 throw p0 :cond_3 rsub-int p0, v2, 0x3e8 .line 290 rem-int/lit8 p0, p0, 0xa return p0 .end method