public class org.apache.commons.lang.text.translate.NumericEntityUnescaper extends org.apache.commons.lang.text.translate.CharSequenceTranslator
{
private final java.util.EnumSet options;
public transient void <init>(org.apache.commons.lang.text.translate.NumericEntityUnescaper$OPTION[])
{
org.apache.commons.lang.text.translate.NumericEntityUnescaper$OPTION[] v;
org.apache.commons.lang.text.translate.NumericEntityUnescaper v;
org.apache.commons.lang.text.translate.NumericEntityUnescaper$OPTION v;
java.util.List v, v;
int v;
java.util.EnumSet v, v;
v := @this: org.apache.commons.lang.text.translate.NumericEntityUnescaper;
v := @parameter: org.apache.commons.lang.text.translate.NumericEntityUnescaper$OPTION[];
specialinvoke v.<org.apache.commons.lang.text.translate.CharSequenceTranslator: void <init>()>();
v = lengthof v;
if v <= 0 goto label;
v = staticinvoke <java.util.Arrays: java.util.List asList(java.lang.Object[])>(v);
v = staticinvoke <java.util.EnumSet: java.util.EnumSet copyOf(java.util.Collection)>(v);
v.<org.apache.commons.lang.text.translate.NumericEntityUnescaper: java.util.EnumSet options> = v;
goto label;
label:
v = <org.apache.commons.lang.text.translate.NumericEntityUnescaper$OPTION: org.apache.commons.lang.text.translate.NumericEntityUnescaper$OPTION semiColonRequired>;
v = staticinvoke <java.util.Collections: java.util.List singletonList(java.lang.Object)>(v);
v = staticinvoke <java.util.EnumSet: java.util.EnumSet copyOf(java.util.Collection)>(v);
v.<org.apache.commons.lang.text.translate.NumericEntityUnescaper: java.util.EnumSet options> = v;
label:
return;
}
public boolean isSet(org.apache.commons.lang.text.translate.NumericEntityUnescaper$OPTION)
{
org.apache.commons.lang.text.translate.NumericEntityUnescaper v;
org.apache.commons.lang.text.translate.NumericEntityUnescaper$OPTION v;
java.util.EnumSet v, v;
boolean v, v;
v := @this: org.apache.commons.lang.text.translate.NumericEntityUnescaper;
v := @parameter: org.apache.commons.lang.text.translate.NumericEntityUnescaper$OPTION;
v = v.<org.apache.commons.lang.text.translate.NumericEntityUnescaper: java.util.EnumSet options>;
if v == null goto label;
v = v.<org.apache.commons.lang.text.translate.NumericEntityUnescaper: java.util.EnumSet options>;
v = virtualinvoke v.<java.util.EnumSet: boolean contains(java.lang.Object)>(v);
if v == 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
public int translate(java.lang.CharSequence, int, java.io.Writer) throws java.io.IOException
{
boolean v, v, v, v, v, v, v;
java.lang.CharSequence v, v, v;
java.io.Writer v;
int v, v, v, v, v, v, v, v, v, v, v, v;
java.lang.String v, v;
char v, v, v, v, v, v, v, v, v, v, v, v;
java.lang.NumberFormatException v;
java.lang.IllegalArgumentException v;
org.apache.commons.lang.text.translate.NumericEntityUnescaper v;
org.apache.commons.lang.text.translate.NumericEntityUnescaper$OPTION v, v;
char[] v;
v := @this: org.apache.commons.lang.text.translate.NumericEntityUnescaper;
v := @parameter: java.lang.CharSequence;
v := @parameter: int;
v := @parameter: java.io.Writer;
v = interfaceinvoke v.<java.lang.CharSequence: int length()>();
v = interfaceinvoke v.<java.lang.CharSequence: char charAt(int)>(v);
if v != 38 goto label;
v = v - 2;
if v >= v goto label;
v = v + 1;
v = interfaceinvoke v.<java.lang.CharSequence: char charAt(int)>(v);
if v != 35 goto label;
v = v + 2;
v = 0;
v = interfaceinvoke v.<java.lang.CharSequence: char charAt(int)>(v);
if v == 120 goto label;
if v != 88 goto label;
label:
v = v + 1;
v = 1;
if v != v goto label;
return 0;
label:
v = v;
label:
if v >= v goto label;
v = interfaceinvoke v.<java.lang.CharSequence: char charAt(int)>(v);
if v < 48 goto label;
v = interfaceinvoke v.<java.lang.CharSequence: char charAt(int)>(v);
if v <= 57 goto label;
label:
v = interfaceinvoke v.<java.lang.CharSequence: char charAt(int)>(v);
if v < 97 goto label;
v = interfaceinvoke v.<java.lang.CharSequence: char charAt(int)>(v);
if v <= 102 goto label;
label:
v = interfaceinvoke v.<java.lang.CharSequence: char charAt(int)>(v);
if v < 65 goto label;
v = interfaceinvoke v.<java.lang.CharSequence: char charAt(int)>(v);
if v > 70 goto label;
label:
v = v + 1;
goto label;
label:
if v == v goto label;
v = interfaceinvoke v.<java.lang.CharSequence: char charAt(int)>(v);
if v != 59 goto label;
v = 1;
goto label;
label:
v = 0;
label:
v = v;
if v != 0 goto label;
v = <org.apache.commons.lang.text.translate.NumericEntityUnescaper$OPTION: org.apache.commons.lang.text.translate.NumericEntityUnescaper$OPTION semiColonRequired>;
v = virtualinvoke v.<org.apache.commons.lang.text.translate.NumericEntityUnescaper: boolean isSet(org.apache.commons.lang.text.translate.NumericEntityUnescaper$OPTION)>(v);
if v == 0 goto label;
return 0;
label:
v = <org.apache.commons.lang.text.translate.NumericEntityUnescaper$OPTION: org.apache.commons.lang.text.translate.NumericEntityUnescaper$OPTION errorIfNoSemiColon>;
v = virtualinvoke v.<org.apache.commons.lang.text.translate.NumericEntityUnescaper: boolean isSet(org.apache.commons.lang.text.translate.NumericEntityUnescaper$OPTION)>(v);
if v == 0 goto label;
v = new java.lang.IllegalArgumentException;
specialinvoke v.<java.lang.IllegalArgumentException: void <init>(java.lang.String)>("Semi-colon required at end of numeric entity");
throw v;
label:
if v == 0 goto label;
v = interfaceinvoke v.<java.lang.CharSequence: java.lang.CharSequence subSequence(int,int)>(v, v);
v = virtualinvoke v.<java.lang.Object: java.lang.String toString()>();
v = staticinvoke <java.lang.Integer: int parseInt(java.lang.String,int)>(v, 16);
goto label;
label:
v = interfaceinvoke v.<java.lang.CharSequence: java.lang.CharSequence subSequence(int,int)>(v, v);
v = virtualinvoke v.<java.lang.Object: java.lang.String toString()>();
v = staticinvoke <java.lang.Integer: int parseInt(java.lang.String,int)>(v, 10);
label:
goto label;
label:
v := @caughtexception;
return 0;
label:
v = (int) 65535;
if v <= v goto label;
v = staticinvoke <java.lang.Character: char[] toChars(int)>(v);
v = v[0];
virtualinvoke v.<java.io.Writer: void write(int)>(v);
v = v[1];
virtualinvoke v.<java.io.Writer: void write(int)>(v);
goto label;
label:
virtualinvoke v.<java.io.Writer: void write(int)>(v);
label:
v = 2 + v;
v = v - v;
if v == 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
v = v + v;
if v == 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
v = v + v;
return v;
label:
return 0;
catch java.lang.NumberFormatException from label to label with label;
}
}