TextFormatEscaper.smali
.class final Lcom/google/protobuf/TextFormatEscaper;
.super Ljava/lang/Object;
.source "TextFormatEscaper.java"
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Lcom/google/protobuf/TextFormatEscaper$ByteSequence;
}
.end annotation
# direct methods
.method private constructor <init>()V
.registers 1
.prologue
.line 37
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
.method static escapeBytes(Lcom/google/protobuf/ByteString;)Ljava/lang/String;
.registers 2
.prologue
.line 94
new-instance v0, Lcom/google/protobuf/TextFormatEscaper$1;
invoke-direct {v0, p0}, Lcom/google/protobuf/TextFormatEscaper$1;-><init>(Lcom/google/protobuf/ByteString;)V
invoke-static {v0}, Lcom/google/protobuf/TextFormatEscaper;->escapeBytes(Lcom/google/protobuf/TextFormatEscaper$ByteSequence;)Ljava/lang/String;
move-result-object v0
return-object v0
.end method
.method static escapeBytes(Lcom/google/protobuf/TextFormatEscaper$ByteSequence;)Ljava/lang/String;
.registers 5
.prologue
.line 53
new-instance v1, Ljava/lang/StringBuilder;
invoke-interface {p0}, Lcom/google/protobuf/TextFormatEscaper$ByteSequence;->size()I
move-result v0
invoke-direct {v1, v0}, Ljava/lang/StringBuilder;-><init>(I)V
.line 54
const/4 v0, 0x0
:goto_a
invoke-interface {p0}, Lcom/google/protobuf/TextFormatEscaper$ByteSequence;->size()I
move-result v2
if-ge v0, v2, :cond_84
.line 55
invoke-interface {p0, v0}, Lcom/google/protobuf/TextFormatEscaper$ByteSequence;->byteAt(I)B
move-result v2
.line 56
sparse-switch v2, :sswitch_data_8a
.line 71
const/16 v3, 0x20
if-lt v2, v3, :cond_62
const/16 v3, 0x7e
if-gt v2, v3, :cond_62
.line 72
int-to-char v2, v2
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
.line 54
:goto_23
add-int/lit8 v0, v0, 0x1
goto :goto_a
.line 58
:sswitch_26
const-string v2, "\\a"
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
goto :goto_23
.line 59
:sswitch_2c
const-string v2, "\\b"
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
goto :goto_23
.line 60
:sswitch_32
const-string v2, "\\f"
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
goto :goto_23
.line 61
:sswitch_38
const-string v2, "\\n"
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
goto :goto_23
.line 62
:sswitch_3e
const-string v2, "\\r"
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
goto :goto_23
.line 63
:sswitch_44
const-string v2, "\\t"
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
goto :goto_23
.line 64
:sswitch_4a
const-string v2, "\\v"
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
goto :goto_23
.line 65
:sswitch_50
const-string v2, "\\\\"
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
goto :goto_23
.line 66
:sswitch_56
const-string v2, "\\\'"
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
goto :goto_23
.line 67
:sswitch_5c
const-string v2, "\\\""
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
goto :goto_23
.line 74
:cond_62
const/16 v3, 0x5c
invoke-virtual {v1, v3}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
.line 75
ushr-int/lit8 v3, v2, 0x6
and-int/lit8 v3, v3, 0x3
add-int/lit8 v3, v3, 0x30
int-to-char v3, v3
invoke-virtual {v1, v3}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
.line 76
ushr-int/lit8 v3, v2, 0x3
and-int/lit8 v3, v3, 0x7
add-int/lit8 v3, v3, 0x30
int-to-char v3, v3
invoke-virtual {v1, v3}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
.line 77
and-int/lit8 v2, v2, 0x7
add-int/lit8 v2, v2, 0x30
int-to-char v2, v2
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
goto :goto_23
.line 82
:cond_84
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
return-object v0
.line 56
nop
:sswitch_data_8a
.sparse-switch
0x7 -> :sswitch_26
0x8 -> :sswitch_2c
0x9 -> :sswitch_44
0xa -> :sswitch_38
0xb -> :sswitch_4a
0xc -> :sswitch_32
0xd -> :sswitch_3e
0x22 -> :sswitch_5c
0x27 -> :sswitch_56
0x5c -> :sswitch_50
.end sparse-switch
.end method
.method static escapeBytes([B)Ljava/lang/String;
.registers 2
.prologue
.line 110
new-instance v0, Lcom/google/protobuf/TextFormatEscaper$2;
invoke-direct {v0, p0}, Lcom/google/protobuf/TextFormatEscaper$2;-><init>([B)V
invoke-static {v0}, Lcom/google/protobuf/TextFormatEscaper;->escapeBytes(Lcom/google/protobuf/TextFormatEscaper$ByteSequence;)Ljava/lang/String;
move-result-object v0
return-object v0
.end method
.method static escapeDoubleQuotesAndBackslashes(Ljava/lang/String;)Ljava/lang/String;
.registers 4
.prologue
.line 135
const-string v0, "\\"
const-string v1, "\\\\"
invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
move-result-object v0
const-string v1, "\""
const-string v2, "\\\""
invoke-virtual {v0, v1, v2}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
move-result-object v0
return-object v0
.end method
.method static escapeText(Ljava/lang/String;)Ljava/lang/String;
.registers 2
.prologue
.line 128
invoke-static {p0}, Lcom/google/protobuf/ByteString;->copyFromUtf8(Ljava/lang/String;)Lcom/google/protobuf/ByteString;
move-result-object v0
invoke-static {v0}, Lcom/google/protobuf/TextFormatEscaper;->escapeBytes(Lcom/google/protobuf/ByteString;)Ljava/lang/String;
move-result-object v0
return-object v0
.end method