public abstract class oadd.com.google.common.escape.CharEscaper extends oadd.com.google.common.escape.Escaper
{
private static final int DEST_PAD_MULTIPLIER;
protected void <init>()
{
oadd.com.google.common.escape.CharEscaper v;
v := @this: oadd.com.google.common.escape.CharEscaper;
specialinvoke v.<oadd.com.google.common.escape.Escaper: void <init>()>();
return;
}
public java.lang.String escape(java.lang.String)
{
oadd.com.google.common.escape.CharEscaper v;
int v, v;
char[] v;
char v;
java.lang.String v, v;
v := @this: oadd.com.google.common.escape.CharEscaper;
v := @parameter: java.lang.String;
staticinvoke <oadd.com.google.common.base.Preconditions: java.lang.Object checkNotNull(java.lang.Object)>(v);
v = virtualinvoke v.<java.lang.String: int length()>();
v = 0;
label:
if v >= v goto label;
v = virtualinvoke v.<java.lang.String: char charAt(int)>(v);
v = virtualinvoke v.<oadd.com.google.common.escape.CharEscaper: char[] escape(char)>(v);
if v == null goto label;
v = virtualinvoke v.<oadd.com.google.common.escape.CharEscaper: java.lang.String escapeSlow(java.lang.String,int)>(v, v);
return v;
label:
v = v + 1;
goto label;
label:
return v;
}
protected abstract char[] escape(char);
protected final java.lang.String escapeSlow(java.lang.String, int)
{
oadd.com.google.common.escape.CharEscaper v;
int v, v, v, v, v, v, v, v, v, v, v, v, v;
java.lang.String v, v;
char v;
char[] v, v;
v := @this: oadd.com.google.common.escape.CharEscaper;
v := @parameter: java.lang.String;
v := @parameter: int;
v = virtualinvoke v.<java.lang.String: int length()>();
v = staticinvoke <oadd.com.google.common.escape.Platform: char[] charBufferFromThreadLocal()>();
v = lengthof v;
v = 0;
v = 0;
label:
if v >= v goto label;
v = virtualinvoke v.<java.lang.String: char charAt(int)>(v);
v = virtualinvoke v.<oadd.com.google.common.escape.CharEscaper: char[] escape(char)>(v);
if v == null goto label;
v = lengthof v;
v = v - v;
v = v + v;
v = v + v;
if v >= v goto label;
v = v - v;
v = 2 * v;
v = v + v;
v = staticinvoke <oadd.com.google.common.escape.CharEscaper: char[] growBuffer(char[],int,int)>(v, v, v);
label:
if v <= 0 goto label;
virtualinvoke v.<java.lang.String: void getChars(int,int,char[],int)>(v, v, v, v);
v = v + v;
label:
if v <= 0 goto label;
staticinvoke <java.lang.System: void arraycopy(java.lang.Object,int,java.lang.Object,int,int)>(v, 0, v, v, v);
v = v + v;
label:
v = v + 1;
label:
v = v + 1;
goto label;
label:
v = v - v;
if v <= 0 goto label;
v = v + v;
if v >= v goto label;
v = staticinvoke <oadd.com.google.common.escape.CharEscaper: char[] growBuffer(char[],int,int)>(v, v, v);
label:
virtualinvoke v.<java.lang.String: void getChars(int,int,char[],int)>(v, v, v, v);
v = v;
label:
v = new java.lang.String;
specialinvoke v.<java.lang.String: void <init>(char[],int,int)>(v, 0, v);
return v;
}
private static char[] growBuffer(char[], int, int)
{
int v, v;
char[] v, v;
java.lang.AssertionError v;
v := @parameter: char[];
v := @parameter: int;
v := @parameter: int;
if v >= 0 goto label;
v = new java.lang.AssertionError;
specialinvoke v.<java.lang.AssertionError: void <init>(java.lang.Object)>("Cannot increase internal buffer any further");
throw v;
label:
v = newarray (char)[v];
if v <= 0 goto label;
staticinvoke <java.lang.System: void arraycopy(java.lang.Object,int,java.lang.Object,int,int)>(v, 0, v, 0, v);
label:
return v;
}
}