.class public Lorg/apache/http/message/TokenParser; .super Ljava/lang/Object; .source "TokenParser.java" # static fields .field public static final CR:C = '\r' .field public static final DQUOTE:C = '\"' .field public static final ESCAPE:C = '\\' .field public static final HT:C = '\t' .field public static final INSTANCE:Lorg/apache/http/message/TokenParser; .field public static final LF:C = '\n' .field public static final SP:C = ' ' # direct methods .method static constructor ()V .registers 1 .line 77 new-instance v0, Lorg/apache/http/message/TokenParser; invoke-direct {v0}, Lorg/apache/http/message/TokenParser;->()V sput-object v0, Lorg/apache/http/message/TokenParser;->INSTANCE:Lorg/apache/http/message/TokenParser; return-void .end method .method public constructor ()V .registers 1 .line 45 invoke-direct {p0}, Ljava/lang/Object;->()V return-void .end method .method public static varargs INIT_BITSET([I)Ljava/util/BitSet; .registers 5 .line 48 new-instance v0, Ljava/util/BitSet; invoke-direct {v0}, Ljava/util/BitSet;->()V .line 49 array-length v1, p0 const/4 v2, 0x0 :goto_7 if-ge v2, v1, :cond_11 aget v3, p0, v2 .line 50 invoke-virtual {v0, v3}, Ljava/util/BitSet;->set(I)V add-int/lit8 v2, v2, 0x1 goto :goto_7 :cond_11 return-object v0 .end method .method public static isWhitespace(C)Z .registers 2 const/16 v0, 0x20 if-eq p0, v0, :cond_13 const/16 v0, 0x9 if-eq p0, v0, :cond_13 const/16 v0, 0xd if-eq p0, v0, :cond_13 const/16 v0, 0xa if-ne p0, v0, :cond_11 goto :goto_13 :cond_11 const/4 p0, 0x0 goto :goto_14 :cond_13 :goto_13 const/4 p0, 0x1 :goto_14 return p0 .end method # virtual methods .method public copyContent(Lorg/apache/http/util/CharArrayBuffer;Lorg/apache/http/message/ParserCursor;Ljava/util/BitSet;Ljava/lang/StringBuilder;)V .registers 10 .line 180 invoke-virtual {p2}, Lorg/apache/http/message/ParserCursor;->getPos()I move-result v0 .line 181 invoke-virtual {p2}, Lorg/apache/http/message/ParserCursor;->getPos()I move-result v1 .line 182 invoke-virtual {p2}, Lorg/apache/http/message/ParserCursor;->getUpperBound()I move-result v2 :goto_c if-ge v1, v2, :cond_29 .line 184 invoke-virtual {p1, v1}, Lorg/apache/http/util/CharArrayBuffer;->charAt(I)C move-result v3 if-eqz p3, :cond_1a .line 185 invoke-virtual {p3, v3}, Ljava/util/BitSet;->get(I)Z move-result v4 if-nez v4, :cond_29 :cond_1a invoke-static {v3}, Lorg/apache/http/message/TokenParser;->isWhitespace(C)Z move-result v4 if-eqz v4, :cond_21 goto :goto_29 :cond_21 add-int/lit8 v0, v0, 0x1 .line 189 invoke-virtual {p4, v3}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder; add-int/lit8 v1, v1, 0x1 goto :goto_c .line 192 :cond_29 :goto_29 invoke-virtual {p2, v0}, Lorg/apache/http/message/ParserCursor;->updatePos(I)V return-void .end method .method public copyQuotedContent(Lorg/apache/http/util/CharArrayBuffer;Lorg/apache/http/message/ParserCursor;Ljava/lang/StringBuilder;)V .registers 13 .line 232 invoke-virtual {p2}, Lorg/apache/http/message/ParserCursor;->atEnd()Z move-result v0 if-eqz v0, :cond_7 return-void .line 235 :cond_7 invoke-virtual {p2}, Lorg/apache/http/message/ParserCursor;->getPos()I move-result v0 .line 236 invoke-virtual {p2}, Lorg/apache/http/message/ParserCursor;->getPos()I move-result v1 .line 237 invoke-virtual {p2}, Lorg/apache/http/message/ParserCursor;->getUpperBound()I move-result v2 .line 238 invoke-virtual {p1, v0}, Lorg/apache/http/util/CharArrayBuffer;->charAt(I)C move-result v3 const/16 v4, 0x22 if-eq v3, v4, :cond_1c return-void :cond_1c const/4 v3, 0x1 add-int/2addr v0, v3 add-int/2addr v1, v3 const/4 v5, 0x0 move v6, v5 :goto_21 if-ge v1, v2, :cond_50 .line 246 invoke-virtual {p1, v1}, Lorg/apache/http/util/CharArrayBuffer;->charAt(I)C move-result v7 const/16 v8, 0x5c if-eqz v6, :cond_37 if-eq v7, v4, :cond_32 if-eq v7, v8, :cond_32 .line 249 invoke-virtual {p3, v8}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder; .line 251 :cond_32 invoke-virtual {p3, v7}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder; move v6, v5 goto :goto_4b :cond_37 if-ne v7, v4, :cond_3c add-int/lit8 v0, v0, 0x1 goto :goto_50 :cond_3c if-ne v7, v8, :cond_40 move v6, v3 goto :goto_4b :cond_40 const/16 v8, 0xd if-eq v7, v8, :cond_4b const/16 v8, 0xa if-eq v7, v8, :cond_4b .line 261 invoke-virtual {p3, v7}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder; :cond_4b :goto_4b add-int/lit8 v1, v1, 0x1 add-int/lit8 v0, v0, 0x1 goto :goto_21 .line 265 :cond_50 :goto_50 invoke-virtual {p2, v0}, Lorg/apache/http/message/ParserCursor;->updatePos(I)V return-void .end method .method public copyUnquotedContent(Lorg/apache/http/util/CharArrayBuffer;Lorg/apache/http/message/ParserCursor;Ljava/util/BitSet;Ljava/lang/StringBuilder;)V .registers 10 .line 207 invoke-virtual {p2}, Lorg/apache/http/message/ParserCursor;->getPos()I move-result v0 .line 208 invoke-virtual {p2}, Lorg/apache/http/message/ParserCursor;->getPos()I move-result v1 .line 209 invoke-virtual {p2}, Lorg/apache/http/message/ParserCursor;->getUpperBound()I move-result v2 :goto_c if-ge v1, v2, :cond_2d .line 211 invoke-virtual {p1, v1}, Lorg/apache/http/util/CharArrayBuffer;->charAt(I)C move-result v3 if-eqz p3, :cond_1a .line 212 invoke-virtual {p3, v3}, Ljava/util/BitSet;->get(I)Z move-result v4 if-nez v4, :cond_2d :cond_1a invoke-static {v3}, Lorg/apache/http/message/TokenParser;->isWhitespace(C)Z move-result v4 if-nez v4, :cond_2d const/16 v4, 0x22 if-ne v3, v4, :cond_25 goto :goto_2d :cond_25 add-int/lit8 v0, v0, 0x1 .line 217 invoke-virtual {p4, v3}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder; add-int/lit8 v1, v1, 0x1 goto :goto_c .line 220 :cond_2d :goto_2d invoke-virtual {p2, v0}, Lorg/apache/http/message/ParserCursor;->updatePos(I)V return-void .end method .method public parseToken(Lorg/apache/http/util/CharArrayBuffer;Lorg/apache/http/message/ParserCursor;Ljava/util/BitSet;)Ljava/lang/String; .registers 9 .line 89 new-instance v0, Ljava/lang/StringBuilder; invoke-direct {v0}, Ljava/lang/StringBuilder;->()V const/4 v1, 0x0 :goto_6 move v2, v1 .line 91 :goto_7 invoke-virtual {p2}, Lorg/apache/http/message/ParserCursor;->atEnd()Z move-result v3 if-nez v3, :cond_3a .line 92 invoke-virtual {p2}, Lorg/apache/http/message/ParserCursor;->getPos()I move-result v3 invoke-virtual {p1, v3}, Lorg/apache/http/util/CharArrayBuffer;->charAt(I)C move-result v3 if-eqz p3, :cond_1e .line 93 invoke-virtual {p3, v3}, Ljava/util/BitSet;->get(I)Z move-result v4 if-eqz v4, :cond_1e goto :goto_3a .line 95 :cond_1e invoke-static {v3}, Lorg/apache/http/message/TokenParser;->isWhitespace(C)Z move-result v3 if-eqz v3, :cond_29 .line 96 invoke-virtual {p0, p1, p2}, Lorg/apache/http/message/TokenParser;->skipWhiteSpace(Lorg/apache/http/util/CharArrayBuffer;Lorg/apache/http/message/ParserCursor;)V const/4 v2, 0x1 goto :goto_7 :cond_29 if-eqz v2, :cond_36 .line 99 invoke-virtual {v0}, Ljava/lang/StringBuilder;->length()I move-result v2 if-lez v2, :cond_36 const/16 v2, 0x20 .line 100 invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder; .line 102 :cond_36 invoke-virtual {p0, p1, p2, p3, v0}, Lorg/apache/http/message/TokenParser;->copyContent(Lorg/apache/http/util/CharArrayBuffer;Lorg/apache/http/message/ParserCursor;Ljava/util/BitSet;Ljava/lang/StringBuilder;)V goto :goto_6 .line 106 :cond_3a :goto_3a invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object p1 return-object p1 .end method .method public parseValue(Lorg/apache/http/util/CharArrayBuffer;Lorg/apache/http/message/ParserCursor;Ljava/util/BitSet;)Ljava/lang/String; .registers 10 .line 120 new-instance v0, Ljava/lang/StringBuilder; invoke-direct {v0}, Ljava/lang/StringBuilder;->()V const/4 v1, 0x0 :goto_6 move v2, v1 .line 122 :goto_7 invoke-virtual {p2}, Lorg/apache/http/message/ParserCursor;->atEnd()Z move-result v3 if-nez v3, :cond_4d .line 123 invoke-virtual {p2}, Lorg/apache/http/message/ParserCursor;->getPos()I move-result v3 invoke-virtual {p1, v3}, Lorg/apache/http/util/CharArrayBuffer;->charAt(I)C move-result v3 if-eqz p3, :cond_1e .line 124 invoke-virtual {p3, v3}, Ljava/util/BitSet;->get(I)Z move-result v4 if-eqz v4, :cond_1e goto :goto_4d .line 126 :cond_1e invoke-static {v3}, Lorg/apache/http/message/TokenParser;->isWhitespace(C)Z move-result v4 if-eqz v4, :cond_29 .line 127 invoke-virtual {p0, p1, p2}, Lorg/apache/http/message/TokenParser;->skipWhiteSpace(Lorg/apache/http/util/CharArrayBuffer;Lorg/apache/http/message/ParserCursor;)V const/4 v2, 0x1 goto :goto_7 :cond_29 const/16 v4, 0x22 const/16 v5, 0x20 if-ne v3, v4, :cond_3e if-eqz v2, :cond_3a .line 130 invoke-virtual {v0}, Ljava/lang/StringBuilder;->length()I move-result v2 if-lez v2, :cond_3a .line 131 invoke-virtual {v0, v5}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder; .line 133 :cond_3a invoke-virtual {p0, p1, p2, v0}, Lorg/apache/http/message/TokenParser;->copyQuotedContent(Lorg/apache/http/util/CharArrayBuffer;Lorg/apache/http/message/ParserCursor;Ljava/lang/StringBuilder;)V goto :goto_6 :cond_3e if-eqz v2, :cond_49 .line 136 invoke-virtual {v0}, Ljava/lang/StringBuilder;->length()I move-result v2 if-lez v2, :cond_49 .line 137 invoke-virtual {v0, v5}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder; .line 139 :cond_49 invoke-virtual {p0, p1, p2, p3, v0}, Lorg/apache/http/message/TokenParser;->copyUnquotedContent(Lorg/apache/http/util/CharArrayBuffer;Lorg/apache/http/message/ParserCursor;Ljava/util/BitSet;Ljava/lang/StringBuilder;)V goto :goto_6 .line 143 :cond_4d :goto_4d invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object p1 return-object p1 .end method .method public skipWhiteSpace(Lorg/apache/http/util/CharArrayBuffer;Lorg/apache/http/message/ParserCursor;)V .registers 7 .line 154 invoke-virtual {p2}, Lorg/apache/http/message/ParserCursor;->getPos()I move-result v0 .line 155 invoke-virtual {p2}, Lorg/apache/http/message/ParserCursor;->getPos()I move-result v1 .line 156 invoke-virtual {p2}, Lorg/apache/http/message/ParserCursor;->getUpperBound()I move-result v2 :goto_c if-ge v1, v2, :cond_1e .line 158 invoke-virtual {p1, v1}, Lorg/apache/http/util/CharArrayBuffer;->charAt(I)C move-result v3 .line 159 invoke-static {v3}, Lorg/apache/http/message/TokenParser;->isWhitespace(C)Z move-result v3 if-nez v3, :cond_19 goto :goto_1e :cond_19 add-int/lit8 v0, v0, 0x1 add-int/lit8 v1, v1, 0x1 goto :goto_c .line 165 :cond_1e :goto_1e invoke-virtual {p2, v0}, Lorg/apache/http/message/ParserCursor;->updatePos(I)V return-void .end method