public class org.apache.commons.io.FilenameUtils extends java.lang.Object
{
private static final java.lang.String[] EMPTY_STRING_ARRAY;
private static final java.lang.String EMPTY_STRING;
private static final int NOT_FOUND;
public static final char EXTENSION_SEPARATOR;
public static final java.lang.String EXTENSION_SEPARATOR_STR;
private static final char UNIX_SEPARATOR;
private static final char WINDOWS_SEPARATOR;
private static final char SYSTEM_SEPARATOR;
private static final char OTHER_SEPARATOR;
private static final java.util.regex.Pattern IPV4_PATTERN;
private static final int IPV4_MAX_OCTET_VALUE;
private static final int IPV6_MAX_HEX_GROUPS;
private static final int IPV6_MAX_HEX_DIGITS_PER_GROUP;
private static final int MAX_UNSIGNED_SHORT;
private static final int BASE_16;
private static final java.util.regex.Pattern REG_NAME_PART_PATTERN;
public void <init>()
{
org.apache.commons.io.FilenameUtils v;
v := @this: org.apache.commons.io.FilenameUtils;
specialinvoke v.<java.lang.Object: void <init>()>();
return;
}
static boolean isSystemWindows()
{
char v;
boolean v;
v = <org.apache.commons.io.FilenameUtils: char SYSTEM_SEPARATOR>;
if v != 92 goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
private static boolean isSeparator(char)
{
char v;
boolean v;
v := @parameter: char;
if v == 47 goto label;
if v != 92 goto label;
label:
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
public static java.lang.String normalize(java.lang.String)
{
char v;
java.lang.String v, v;
v := @parameter: java.lang.String;
v = <org.apache.commons.io.FilenameUtils: char SYSTEM_SEPARATOR>;
v = staticinvoke <org.apache.commons.io.FilenameUtils: java.lang.String doNormalize(java.lang.String,char,boolean)>(v, v, 1);
return v;
}
public static java.lang.String normalize(java.lang.String, boolean)
{
char v;
java.lang.String v, v;
boolean v;
v := @parameter: java.lang.String;
v := @parameter: boolean;
if v == 0 goto label;
v = 47;
goto label;
label:
v = 92;
label:
v = staticinvoke <org.apache.commons.io.FilenameUtils: java.lang.String doNormalize(java.lang.String,char,boolean)>(v, v, 1);
return v;
}
public static java.lang.String normalizeNoEndSeparator(java.lang.String)
{
char v;
java.lang.String v, v;
v := @parameter: java.lang.String;
v = <org.apache.commons.io.FilenameUtils: char SYSTEM_SEPARATOR>;
v = staticinvoke <org.apache.commons.io.FilenameUtils: java.lang.String doNormalize(java.lang.String,char,boolean)>(v, v, 0);
return v;
}
public static java.lang.String normalizeNoEndSeparator(java.lang.String, boolean)
{
char v;
java.lang.String v, v;
boolean v;
v := @parameter: java.lang.String;
v := @parameter: boolean;
if v == 0 goto label;
v = 47;
goto label;
label:
v = 92;
label:
v = staticinvoke <org.apache.commons.io.FilenameUtils: java.lang.String doNormalize(java.lang.String,char,boolean)>(v, v, 0);
return v;
}
private static java.lang.String doNormalize(java.lang.String, char, boolean)
{
boolean v, v;
int v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
java.lang.String v, v, v, v;
char v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
char[] v;
v := @parameter: java.lang.String;
v := @parameter: char;
v := @parameter: boolean;
if v != null goto label;
return null;
label:
staticinvoke <org.apache.commons.io.FilenameUtils: void requireNonNullChars(java.lang.String)>(v);
v = virtualinvoke v.<java.lang.String: int length()>();
if v != 0 goto label;
return v;
label:
v = staticinvoke <org.apache.commons.io.FilenameUtils: int getPrefixLength(java.lang.String)>(v);
if v >= 0 goto label;
return null;
label:
v = v + 2;
v = newarray (char)[v];
v = virtualinvoke v.<java.lang.String: int length()>();
virtualinvoke v.<java.lang.String: void getChars(int,int,char[],int)>(0, v, v, 0);
v = <org.apache.commons.io.FilenameUtils: char SYSTEM_SEPARATOR>;
if v != v goto label;
v = <org.apache.commons.io.FilenameUtils: char OTHER_SEPARATOR>;
goto label;
label:
v = <org.apache.commons.io.FilenameUtils: char SYSTEM_SEPARATOR>;
label:
v = v;
v = 0;
label:
v = lengthof v;
if v >= v goto label;
v = v[v];
if v != v goto label;
v[v] = v;
label:
v = v + 1;
goto label;
label:
v = 1;
v = v - 1;
v = v[v];
if v == v goto label;
v = v;
v = v + 1;
v[v] = v;
v = 0;
label:
if v == 0 goto label;
v = v;
goto label;
label:
v = 1;
label:
v = v;
label:
if v >= v goto label;
v = v[v];
if v != v goto label;
v = v - 1;
v = v[v];
if v != v goto label;
v = v - 1;
v = v - v;
staticinvoke <java.lang.System: void arraycopy(java.lang.Object,int,java.lang.Object,int,int)>(v, v, v, v, v);
v = v - 1;
v = v - 1;
label:
v = v + 1;
goto label;
label:
v = v + 1;
label:
if v >= v goto label;
v = v[v];
if v != v goto label;
v = v - 1;
v = v[v];
if v != 46 goto label;
v = v + 1;
if v == v goto label;
v = v - 2;
v = v[v];
if v != v goto label;
label:
v = v - 1;
if v != v goto label;
v = 1;
label:
v = v + 1;
v = v - 1;
v = v - v;
staticinvoke <java.lang.System: void arraycopy(java.lang.Object,int,java.lang.Object,int,int)>(v, v, v, v, v);
v = v - 2;
v = v - 1;
label:
v = v + 1;
goto label;
label:
v = v + 2;
label:
if v >= v goto label;
v = v[v];
if v != v goto label;
v = v - 1;
v = v[v];
if v != 46 goto label;
v = v - 2;
v = v[v];
if v != 46 goto label;
v = v + 2;
if v == v goto label;
v = v - 3;
v = v[v];
if v != v goto label;
label:
v = v + 2;
if v != v goto label;
return null;
label:
v = v - 1;
if v != v goto label;
v = 1;
label:
v = v - 4;
label:
if v < v goto label;
v = v[v];
if v != v goto label;
v = v + 1;
v = v + 1;
v = v - v;
staticinvoke <java.lang.System: void arraycopy(java.lang.Object,int,java.lang.Object,int,int)>(v, v, v, v, v);
v = v - v;
v = v - v;
v = v + 1;
goto label;
label:
v = v - 1;
goto label;
label:
v = v + 1;
v = v - v;
staticinvoke <java.lang.System: void arraycopy(java.lang.Object,int,java.lang.Object,int,int)>(v, v, v, v, v);
v = v + 1;
v = v - v;
v = v - v;
v = v + 1;
label:
v = v + 1;
goto label;
label:
if v > 0 goto label;
return "";
label:
if v > v goto label;
v = new java.lang.String;
specialinvoke v.<java.lang.String: void <init>(char[],int,int)>(v, 0, v);
return v;
label:
if v == 0 goto label;
if v == 0 goto label;
v = new java.lang.String;
specialinvoke v.<java.lang.String: void <init>(char[],int,int)>(v, 0, v);
return v;
label:
v = new java.lang.String;
v = v - 1;
specialinvoke v.<java.lang.String: void <init>(char[],int,int)>(v, 0, v);
return v;
}
public static java.lang.String concat(java.lang.String, java.lang.String)
{
char v;
int v, v, v;
java.lang.String v, v, v, v, v, v, v, v;
boolean v;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
v = staticinvoke <org.apache.commons.io.FilenameUtils: int getPrefixLength(java.lang.String)>(v);
if v >= 0 goto label;
return null;
label:
if v <= 0 goto label;
v = staticinvoke <org.apache.commons.io.FilenameUtils: java.lang.String normalize(java.lang.String)>(v);
return v;
label:
if v != null goto label;
return null;
label:
v = virtualinvoke v.<java.lang.String: int length()>();
if v != 0 goto label;
v = staticinvoke <org.apache.commons.io.FilenameUtils: java.lang.String normalize(java.lang.String)>(v);
return v;
label:
v = v - 1;
v = virtualinvoke v.<java.lang.String: char charAt(int)>(v);
v = staticinvoke <org.apache.commons.io.FilenameUtils: boolean isSeparator(char)>(v);
if v == 0 goto label;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,java.lang.String)>(v, v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("\u0001\u0001");
v = staticinvoke <org.apache.commons.io.FilenameUtils: java.lang.String normalize(java.lang.String)>(v);
return v;
label:
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,java.lang.String)>(v, v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("\u0001/\u0001");
v = staticinvoke <org.apache.commons.io.FilenameUtils: java.lang.String normalize(java.lang.String)>(v);
return v;
}
public static boolean directoryContains(java.lang.String, java.lang.String)
{
org.apache.commons.io.IOCase v, v;
java.lang.String v, v;
boolean v, v;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
staticinvoke <java.util.Objects: java.lang.Object requireNonNull(java.lang.Object,java.lang.String)>(v, "canonicalParent");
if v != null goto label;
return 0;
label:
v = <org.apache.commons.io.IOCase: org.apache.commons.io.IOCase SYSTEM>;
v = virtualinvoke v.<org.apache.commons.io.IOCase: boolean checkEquals(java.lang.String,java.lang.String)>(v, v);
if v == 0 goto label;
return 0;
label:
v = <org.apache.commons.io.IOCase: org.apache.commons.io.IOCase SYSTEM>;
v = virtualinvoke v.<org.apache.commons.io.IOCase: boolean checkStartsWith(java.lang.String,java.lang.String)>(v, v);
return v;
}
public static java.lang.String separatorsToUnix(java.lang.String)
{
int v, v;
java.lang.String v, v;
v := @parameter: java.lang.String;
if v == null goto label;
v = virtualinvoke v.<java.lang.String: int indexOf(int)>(92);
v = (int) -1;
if v != v goto label;
label:
return v;
label:
v = virtualinvoke v.<java.lang.String: java.lang.String replace(char,char)>(92, 47);
return v;
}
public static java.lang.String separatorsToWindows(java.lang.String)
{
int v, v;
java.lang.String v, v;
v := @parameter: java.lang.String;
if v == null goto label;
v = virtualinvoke v.<java.lang.String: int indexOf(int)>(47);
v = (int) -1;
if v != v goto label;
label:
return v;
label:
v = virtualinvoke v.<java.lang.String: java.lang.String replace(char,char)>(47, 92);
return v;
}
public static java.lang.String separatorsToSystem(java.lang.String)
{
java.lang.String v, v;
boolean v;
v := @parameter: java.lang.String;
if v != null goto label;
return null;
label:
v = staticinvoke <org.apache.commons.io.FilenameUtils: boolean isSystemWindows()>();
if v == 0 goto label;
v = staticinvoke <org.apache.commons.io.FilenameUtils: java.lang.String separatorsToWindows(java.lang.String)>(v);
goto label;
label:
v = staticinvoke <org.apache.commons.io.FilenameUtils: java.lang.String separatorsToUnix(java.lang.String)>(v);
label:
return v;
}
public static int getPrefixLength(java.lang.String)
{
byte v, v;
boolean v, v, v, v, v, v, v;
org.apache.commons.io.FileSystem v;
int v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
java.lang.String v, v;
char v, v, v, v;
v := @parameter: java.lang.String;
if v != null goto label;
v = (int) -1;
return v;
label:
v = virtualinvoke v.<java.lang.String: int length()>();
if v != 0 goto label;
return 0;
label:
v = virtualinvoke v.<java.lang.String: char charAt(int)>(0);
if v != 58 goto label;
v = (int) -1;
return v;
label:
if v != 1 goto label;
if v != 126 goto label;
return 2;
label:
v = staticinvoke <org.apache.commons.io.FilenameUtils: boolean isSeparator(char)>(v);
if v == 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
label:
if v != 126 goto label;
v = virtualinvoke v.<java.lang.String: int indexOf(int,int)>(47, 1);
v = virtualinvoke v.<java.lang.String: int indexOf(int,int)>(92, 1);
v = (int) -1;
if v != v goto label;
v = (int) -1;
if v != v goto label;
v = v + 1;
return v;
label:
v = (int) -1;
if v != v goto label;
v = v;
goto label;
label:
v = v;
label:
v = v;
v = (int) -1;
if v != v goto label;
v = v;
goto label;
label:
v = v;
label:
v = staticinvoke <java.lang.Math: int min(int,int)>(v, v);
v = v + 1;
return v;
label:
v = virtualinvoke v.<java.lang.String: char charAt(int)>(1);
if v != 58 goto label;
v = staticinvoke <java.lang.Character: char toUpperCase(char)>(v);
if v < 65 goto label;
if v > 90 goto label;
if v != 2 goto label;
v = staticinvoke <org.apache.commons.io.FileSystem: org.apache.commons.io.FileSystem getCurrent()>();
v = virtualinvoke v.<org.apache.commons.io.FileSystem: boolean supportsDriveLetter()>();
if v != 0 goto label;
return 0;
label:
if v == 2 goto label;
v = virtualinvoke v.<java.lang.String: char charAt(int)>(2);
v = staticinvoke <org.apache.commons.io.FilenameUtils: boolean isSeparator(char)>(v);
if v != 0 goto label;
label:
return 2;
label:
return 3;
label:
if v != 47 goto label;
return 1;
label:
v = (int) -1;
return v;
label:
v = staticinvoke <org.apache.commons.io.FilenameUtils: boolean isSeparator(char)>(v);
if v == 0 goto label;
v = staticinvoke <org.apache.commons.io.FilenameUtils: boolean isSeparator(char)>(v);
if v != 0 goto label;
label:
v = staticinvoke <org.apache.commons.io.FilenameUtils: boolean isSeparator(char)>(v);
if v == 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
label:
v = virtualinvoke v.<java.lang.String: int indexOf(int,int)>(47, 2);
v = virtualinvoke v.<java.lang.String: int indexOf(int,int)>(92, 2);
v = (int) -1;
if v != v goto label;
v = (int) -1;
if v == v goto label;
label:
if v == 2 goto label;
if v != 2 goto label;
label:
v = (int) -1;
return v;
label:
v = (int) -1;
if v != v goto label;
v = v;
goto label;
label:
v = v;
label:
v = v;
v = (int) -1;
if v != v goto label;
v = v;
goto label;
label:
v = v;
label:
v = staticinvoke <java.lang.Math: int min(int,int)>(v, v);
v = v + 1;
v = v - 1;
v = virtualinvoke v.<java.lang.String: java.lang.String substring(int,int)>(2, v);
v = staticinvoke <org.apache.commons.io.FilenameUtils: boolean isValidHostName(java.lang.String)>(v);
if v == 0 goto label;
v = v;
goto label;
label:
v = (int) -1;
v = v;
label:
return v;
}
public static int indexOfLastSeparator(java.lang.String)
{
int v, v, v, v;
java.lang.String v;
v := @parameter: java.lang.String;
if v != null goto label;
v = (int) -1;
return v;
label:
v = virtualinvoke v.<java.lang.String: int lastIndexOf(int)>(47);
v = virtualinvoke v.<java.lang.String: int lastIndexOf(int)>(92);
v = staticinvoke <java.lang.Math: int max(int,int)>(v, v);
return v;
}
public static int indexOfExtension(java.lang.String) throws java.lang.IllegalArgumentException
{
java.lang.IllegalArgumentException v;
int v, v, v, v, v, v, v, v;
java.lang.String v;
boolean v;
v := @parameter: java.lang.String;
if v != null goto label;
v = (int) -1;
return v;
label:
v = staticinvoke <org.apache.commons.io.FilenameUtils: boolean isSystemWindows()>();
if v == 0 goto label;
v = staticinvoke <org.apache.commons.io.FilenameUtils: int getAdsCriticalOffset(java.lang.String)>(v);
v = virtualinvoke v.<java.lang.String: int indexOf(int,int)>(58, v);
v = (int) -1;
if v == v goto label;
v = new java.lang.IllegalArgumentException;
specialinvoke v.<java.lang.IllegalArgumentException: void <init>(java.lang.String)>("NTFS ADS separator (\':\') in file name is forbidden.");
throw v;
label:
v = virtualinvoke v.<java.lang.String: int lastIndexOf(int)>(46);
v = staticinvoke <org.apache.commons.io.FilenameUtils: int indexOfLastSeparator(java.lang.String)>(v);
if v <= v goto label;
v = (int) -1;
v = v;
goto label;
label:
v = v;
label:
return v;
}
public static java.lang.String getPrefix(java.lang.String)
{
int v, v;
java.lang.String v, v, v, v;
v := @parameter: java.lang.String;
if v != null goto label;
return null;
label:
v = staticinvoke <org.apache.commons.io.FilenameUtils: int getPrefixLength(java.lang.String)>(v);
if v >= 0 goto label;
return null;
label:
v = virtualinvoke v.<java.lang.String: int length()>();
if v <= v goto label;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("\u0001/");
staticinvoke <org.apache.commons.io.FilenameUtils: void requireNonNullChars(java.lang.String)>(v);
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("\u0001/");
return v;
label:
v = virtualinvoke v.<java.lang.String: java.lang.String substring(int,int)>(0, v);
staticinvoke <org.apache.commons.io.FilenameUtils: void requireNonNullChars(java.lang.String)>(v);
return v;
}
public static java.lang.String getPath(java.lang.String)
{
java.lang.String v, v;
v := @parameter: java.lang.String;
v = staticinvoke <org.apache.commons.io.FilenameUtils: java.lang.String doGetPath(java.lang.String,int)>(v, 1);
return v;
}
public static java.lang.String getPathNoEndSeparator(java.lang.String)
{
java.lang.String v, v;
v := @parameter: java.lang.String;
v = staticinvoke <org.apache.commons.io.FilenameUtils: java.lang.String doGetPath(java.lang.String,int)>(v, 0);
return v;
}
private static java.lang.String doGetPath(java.lang.String, int)
{
int v, v, v, v, v;
java.lang.String v, v;
v := @parameter: java.lang.String;
v := @parameter: int;
if v != null goto label;
return null;
label:
v = staticinvoke <org.apache.commons.io.FilenameUtils: int getPrefixLength(java.lang.String)>(v);
if v >= 0 goto label;
return null;
label:
v = staticinvoke <org.apache.commons.io.FilenameUtils: int indexOfLastSeparator(java.lang.String)>(v);
v = v + v;
v = virtualinvoke v.<java.lang.String: int length()>();
if v >= v goto label;
if v < 0 goto label;
if v < v goto label;
label:
return "";
label:
v = virtualinvoke v.<java.lang.String: java.lang.String substring(int,int)>(v, v);
staticinvoke <org.apache.commons.io.FilenameUtils: void requireNonNullChars(java.lang.String)>(v);
return v;
}
public static java.lang.String getFullPath(java.lang.String)
{
java.lang.String v, v;
v := @parameter: java.lang.String;
v = staticinvoke <org.apache.commons.io.FilenameUtils: java.lang.String doGetFullPath(java.lang.String,boolean)>(v, 1);
return v;
}
public static java.lang.String getFullPathNoEndSeparator(java.lang.String)
{
java.lang.String v, v;
v := @parameter: java.lang.String;
v = staticinvoke <org.apache.commons.io.FilenameUtils: java.lang.String doGetFullPath(java.lang.String,boolean)>(v, 0);
return v;
}
private static java.lang.String doGetFullPath(java.lang.String, boolean)
{
int v, v, v, v;
java.lang.String v, v, v, v;
boolean v, v;
v := @parameter: java.lang.String;
v := @parameter: boolean;
if v != null goto label;
return null;
label:
v = staticinvoke <org.apache.commons.io.FilenameUtils: int getPrefixLength(java.lang.String)>(v);
if v >= 0 goto label;
return null;
label:
v = virtualinvoke v.<java.lang.String: int length()>();
if v < v goto label;
if v == 0 goto label;
v = staticinvoke <org.apache.commons.io.FilenameUtils: java.lang.String getPrefix(java.lang.String)>(v);
return v;
label:
return v;
label:
v = staticinvoke <org.apache.commons.io.FilenameUtils: int indexOfLastSeparator(java.lang.String)>(v);
if v >= 0 goto label;
v = virtualinvoke v.<java.lang.String: java.lang.String substring(int,int)>(0, v);
return v;
label:
if v == 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
v = v + v;
if v != 0 goto label;
v = v + 1;
label:
v = virtualinvoke v.<java.lang.String: java.lang.String substring(int,int)>(0, v);
return v;
}
public static java.lang.String getName(java.lang.String)
{
int v, v;
java.lang.String v, v;
v := @parameter: java.lang.String;
if v != null goto label;
return null;
label:
staticinvoke <org.apache.commons.io.FilenameUtils: void requireNonNullChars(java.lang.String)>(v);
v = staticinvoke <org.apache.commons.io.FilenameUtils: int indexOfLastSeparator(java.lang.String)>(v);
v = v + 1;
v = virtualinvoke v.<java.lang.String: java.lang.String substring(int)>(v);
return v;
}
private static void requireNonNullChars(java.lang.String)
{
int v;
java.lang.String v;
java.lang.IllegalArgumentException v;
v := @parameter: java.lang.String;
v = virtualinvoke v.<java.lang.String: int indexOf(int)>(0);
if v < 0 goto label;
v = new java.lang.IllegalArgumentException;
specialinvoke v.<java.lang.IllegalArgumentException: void <init>(java.lang.String)>("Null byte present in file/path name. There are no known legitimate use cases for such data, but several injection attacks may use it");
throw v;
label:
return;
}
public static java.lang.String getBaseName(java.lang.String)
{
java.lang.String v, v, v;
v := @parameter: java.lang.String;
v = staticinvoke <org.apache.commons.io.FilenameUtils: java.lang.String getName(java.lang.String)>(v);
v = staticinvoke <org.apache.commons.io.FilenameUtils: java.lang.String removeExtension(java.lang.String)>(v);
return v;
}
public static java.lang.String getExtension(java.lang.String) throws java.lang.IllegalArgumentException
{
int v, v, v;
java.lang.String v, v;
v := @parameter: java.lang.String;
if v != null goto label;
return null;
label:
v = staticinvoke <org.apache.commons.io.FilenameUtils: int indexOfExtension(java.lang.String)>(v);
v = (int) -1;
if v != v goto label;
return "";
label:
v = v + 1;
v = virtualinvoke v.<java.lang.String: java.lang.String substring(int)>(v);
return v;
}
private static int getAdsCriticalOffset(java.lang.String)
{
char v, v;
int v, v, v, v, v, v, v, v, v;
java.lang.String v;
v := @parameter: java.lang.String;
v = <org.apache.commons.io.FilenameUtils: char SYSTEM_SEPARATOR>;
v = virtualinvoke v.<java.lang.String: int lastIndexOf(int)>(v);
v = <org.apache.commons.io.FilenameUtils: char OTHER_SEPARATOR>;
v = virtualinvoke v.<java.lang.String: int lastIndexOf(int)>(v);
v = (int) -1;
if v != v goto label;
v = (int) -1;
if v != v goto label;
return 0;
label:
v = v + 1;
return v;
label:
v = (int) -1;
if v != v goto label;
v = v + 1;
return v;
label:
v = staticinvoke <java.lang.Math: int max(int,int)>(v, v);
v = v + 1;
return v;
}
public static java.lang.String removeExtension(java.lang.String)
{
int v, v;
java.lang.String v, v;
v := @parameter: java.lang.String;
if v != null goto label;
return null;
label:
staticinvoke <org.apache.commons.io.FilenameUtils: void requireNonNullChars(java.lang.String)>(v);
v = staticinvoke <org.apache.commons.io.FilenameUtils: int indexOfExtension(java.lang.String)>(v);
v = (int) -1;
if v != v goto label;
return v;
label:
v = virtualinvoke v.<java.lang.String: java.lang.String substring(int,int)>(0, v);
return v;
}
public static boolean equals(java.lang.String, java.lang.String)
{
org.apache.commons.io.IOCase v;
java.lang.String v, v;
boolean v;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
v = <org.apache.commons.io.IOCase: org.apache.commons.io.IOCase SENSITIVE>;
v = staticinvoke <org.apache.commons.io.FilenameUtils: boolean equals(java.lang.String,java.lang.String,boolean,org.apache.commons.io.IOCase)>(v, v, 0, v);
return v;
}
public static boolean equalsOnSystem(java.lang.String, java.lang.String)
{
org.apache.commons.io.IOCase v;
java.lang.String v, v;
boolean v;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
v = <org.apache.commons.io.IOCase: org.apache.commons.io.IOCase SYSTEM>;
v = staticinvoke <org.apache.commons.io.FilenameUtils: boolean equals(java.lang.String,java.lang.String,boolean,org.apache.commons.io.IOCase)>(v, v, 0, v);
return v;
}
public static boolean equalsNormalized(java.lang.String, java.lang.String)
{
org.apache.commons.io.IOCase v;
java.lang.String v, v;
boolean v;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
v = <org.apache.commons.io.IOCase: org.apache.commons.io.IOCase SENSITIVE>;
v = staticinvoke <org.apache.commons.io.FilenameUtils: boolean equals(java.lang.String,java.lang.String,boolean,org.apache.commons.io.IOCase)>(v, v, 1, v);
return v;
}
public static boolean equalsNormalizedOnSystem(java.lang.String, java.lang.String)
{
org.apache.commons.io.IOCase v;
java.lang.String v, v;
boolean v;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
v = <org.apache.commons.io.IOCase: org.apache.commons.io.IOCase SYSTEM>;
v = staticinvoke <org.apache.commons.io.FilenameUtils: boolean equals(java.lang.String,java.lang.String,boolean,org.apache.commons.io.IOCase)>(v, v, 1, v);
return v;
}
public static boolean equals(java.lang.String, java.lang.String, boolean, org.apache.commons.io.IOCase)
{
org.apache.commons.io.IOCase v;
java.lang.String v, v;
boolean v, v, v;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
v := @parameter: boolean;
v := @parameter: org.apache.commons.io.IOCase;
if v == null goto label;
if v != null goto label;
label:
if v != null goto label;
if v != null goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
label:
if v == 0 goto label;
v = staticinvoke <org.apache.commons.io.FilenameUtils: java.lang.String normalize(java.lang.String)>(v);
if v != null goto label;
return 0;
label:
v = staticinvoke <org.apache.commons.io.FilenameUtils: java.lang.String normalize(java.lang.String)>(v);
if v != null goto label;
return 0;
label:
if v != null goto label;
v = <org.apache.commons.io.IOCase: org.apache.commons.io.IOCase SENSITIVE>;
label:
v = virtualinvoke v.<org.apache.commons.io.IOCase: boolean checkEquals(java.lang.String,java.lang.String)>(v, v);
return v;
}
public static boolean isExtension(java.lang.String, java.lang.String)
{
int v, v;
java.lang.String v, v, v;
boolean v, v, v;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
if v != null goto label;
return 0;
label:
staticinvoke <org.apache.commons.io.FilenameUtils: void requireNonNullChars(java.lang.String)>(v);
if v == null goto label;
v = virtualinvoke v.<java.lang.String: boolean isEmpty()>();
if v == 0 goto label;
label:
v = staticinvoke <org.apache.commons.io.FilenameUtils: int indexOfExtension(java.lang.String)>(v);
v = (int) -1;
if v != v goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
label:
v = staticinvoke <org.apache.commons.io.FilenameUtils: java.lang.String getExtension(java.lang.String)>(v);
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>(v);
return v;
}
public static transient boolean isExtension(java.lang.String, java.lang.String[])
{
java.lang.String[] v;
int v, v, v, v, v;
java.lang.String v, v, v;
boolean v, v;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String[];
if v != null goto label;
return 0;
label:
staticinvoke <org.apache.commons.io.FilenameUtils: void requireNonNullChars(java.lang.String)>(v);
if v == null goto label;
v = lengthof v;
if v != 0 goto label;
label:
v = staticinvoke <org.apache.commons.io.FilenameUtils: int indexOfExtension(java.lang.String)>(v);
v = (int) -1;
if v != v goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
label:
v = staticinvoke <org.apache.commons.io.FilenameUtils: java.lang.String getExtension(java.lang.String)>(v);
v = lengthof v;
v = 0;
label:
if v >= v goto label;
v = v[v];
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>(v);
if v == 0 goto label;
return 1;
label:
v = v + 1;
goto label;
label:
return 0;
}
public static boolean isExtension(java.lang.String, java.util.Collection)
{
java.util.Iterator v;
java.util.Collection v;
int v, v;
java.lang.Object v;
java.lang.String v, v;
boolean v, v, v, v;
v := @parameter: java.lang.String;
v := @parameter: java.util.Collection;
if v != null goto label;
return 0;
label:
staticinvoke <org.apache.commons.io.FilenameUtils: void requireNonNullChars(java.lang.String)>(v);
if v == null goto label;
v = interfaceinvoke v.<java.util.Collection: boolean isEmpty()>();
if v == 0 goto label;
label:
v = staticinvoke <org.apache.commons.io.FilenameUtils: int indexOfExtension(java.lang.String)>(v);
v = (int) -1;
if v != v goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
label:
v = staticinvoke <org.apache.commons.io.FilenameUtils: java.lang.String getExtension(java.lang.String)>(v);
v = interfaceinvoke v.<java.util.Collection: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>(v);
if v == 0 goto label;
return 1;
label:
return 0;
}
public static boolean wildcardMatch(java.lang.String, java.lang.String)
{
org.apache.commons.io.IOCase v;
java.lang.String v, v;
boolean v;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
v = <org.apache.commons.io.IOCase: org.apache.commons.io.IOCase SENSITIVE>;
v = staticinvoke <org.apache.commons.io.FilenameUtils: boolean wildcardMatch(java.lang.String,java.lang.String,org.apache.commons.io.IOCase)>(v, v, v);
return v;
}
public static boolean wildcardMatchOnSystem(java.lang.String, java.lang.String)
{
org.apache.commons.io.IOCase v;
java.lang.String v, v;
boolean v;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
v = <org.apache.commons.io.IOCase: org.apache.commons.io.IOCase SYSTEM>;
v = staticinvoke <org.apache.commons.io.FilenameUtils: boolean wildcardMatch(java.lang.String,java.lang.String,org.apache.commons.io.IOCase)>(v, v, v);
return v;
}
public static boolean wildcardMatch(java.lang.String, java.lang.String, org.apache.commons.io.IOCase)
{
int[] v;
boolean v, v, v, v, v, v;
org.apache.commons.io.IOCase v;
java.lang.String[] v;
int v, v, v, v, v, v, v, v, v, v, v, v, v;
java.lang.String v, v, v, v, v, v, v, v;
java.lang.Object v;
java.util.ArrayDeque v;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
v := @parameter: org.apache.commons.io.IOCase;
if v != null goto label;
if v != null goto label;
return 1;
label:
if v == null goto label;
if v != null goto label;
label:
return 0;
label:
if v != null goto label;
v = <org.apache.commons.io.IOCase: org.apache.commons.io.IOCase SENSITIVE>;
label:
v = staticinvoke <org.apache.commons.io.FilenameUtils: java.lang.String[] splitOnTokens(java.lang.String)>(v);
v = 0;
v = 0;
v = 0;
v = new java.util.ArrayDeque;
v = lengthof v;
specialinvoke v.<java.util.ArrayDeque: void <init>(int)>(v);
label:
v = interfaceinvoke v.<java.util.Deque: boolean isEmpty()>();
if v != 0 goto label;
v = interfaceinvoke v.<java.util.Deque: java.lang.Object pop()>();
v = v[0];
v = v[1];
v = 1;
label:
v = lengthof v;
if v >= v goto label;
v = v[v];
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>("?");
if v == 0 goto label;
v = v + 1;
v = virtualinvoke v.<java.lang.String: int length()>();
if v > v goto label;
v = 0;
goto label;
label:
v = v[v];
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>("*");
if v == 0 goto label;
v = 1;
v = lengthof v;
v = v - 1;
if v != v goto label;
v = virtualinvoke v.<java.lang.String: int length()>();
goto label;
label:
if v == 0 goto label;
v = v[v];
v = virtualinvoke v.<org.apache.commons.io.IOCase: int checkIndexOf(java.lang.String,int,java.lang.String)>(v, v, v);
v = (int) -1;
if v == v goto label;
v = v + 1;
v = v[v];
v = virtualinvoke v.<org.apache.commons.io.IOCase: int checkIndexOf(java.lang.String,int,java.lang.String)>(v, v, v);
if v < 0 goto label;
v = newarray (int)[2];
v[0] = v;
v[1] = v;
interfaceinvoke v.<java.util.Deque: void push(java.lang.Object)>(v);
goto label;
label:
v = v[v];
v = virtualinvoke v.<org.apache.commons.io.IOCase: boolean checkRegionMatches(java.lang.String,int,java.lang.String)>(v, v, v);
if v == 0 goto label;
label:
v = v[v];
v = virtualinvoke v.<java.lang.String: int length()>();
v = v + v;
v = 0;
label:
v = v + 1;
goto label;
label:
v = lengthof v;
if v != v goto label;
v = virtualinvoke v.<java.lang.String: int length()>();
if v != v goto label;
return 1;
label:
v = interfaceinvoke v.<java.util.Deque: boolean isEmpty()>();
if v == 0 goto label;
return 0;
}
static java.lang.String[] splitOnTokens(java.lang.String)
{
java.lang.Object[] v;
java.lang.String[] v, v;
java.util.ArrayList v;
int v, v, v, v, v, v, v, v, v;
java.lang.String v, v, v;
char v;
char[] v;
java.lang.StringBuilder v;
v := @parameter: java.lang.String;
v = virtualinvoke v.<java.lang.String: int indexOf(int)>(63);
v = (int) -1;
if v != v goto label;
v = virtualinvoke v.<java.lang.String: int indexOf(int)>(42);
v = (int) -1;
if v != v goto label;
v = newarray (java.lang.String)[1];
v[0] = v;
return v;
label:
v = virtualinvoke v.<java.lang.String: char[] toCharArray()>();
v = new java.util.ArrayList;
specialinvoke v.<java.util.ArrayList: void <init>()>();
v = new java.lang.StringBuilder;
specialinvoke v.<java.lang.StringBuilder: void <init>()>();
v = 0;
v = lengthof v;
v = 0;
label:
if v >= v goto label;
v = v[v];
if v == 63 goto label;
if v != 42 goto label;
label:
v = virtualinvoke v.<java.lang.StringBuilder: int length()>();
if v == 0 goto label;
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.String toString()>();
virtualinvoke v.<java.util.ArrayList: boolean add(java.lang.Object)>(v);
virtualinvoke v.<java.lang.StringBuilder: void setLength(int)>(0);
label:
if v != 63 goto label;
virtualinvoke v.<java.util.ArrayList: boolean add(java.lang.Object)>("?");
goto label;
label:
if v == 42 goto label;
virtualinvoke v.<java.util.ArrayList: boolean add(java.lang.Object)>("*");
goto label;
label:
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(char)>(v);
label:
v = v;
v = v + 1;
goto label;
label:
v = virtualinvoke v.<java.lang.StringBuilder: int length()>();
if v == 0 goto label;
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.String toString()>();
virtualinvoke v.<java.util.ArrayList: boolean add(java.lang.Object)>(v);
label:
v = <org.apache.commons.io.FilenameUtils: java.lang.String[] EMPTY_STRING_ARRAY>;
v = virtualinvoke v.<java.util.ArrayList: java.lang.Object[] toArray(java.lang.Object[])>(v);
return v;
}
private static boolean isValidHostName(java.lang.String)
{
java.lang.String v;
boolean v, v, v;
v := @parameter: java.lang.String;
v = staticinvoke <org.apache.commons.io.FilenameUtils: boolean isIPv6Address(java.lang.String)>(v);
if v != 0 goto label;
v = staticinvoke <org.apache.commons.io.FilenameUtils: boolean isRFC3986HostName(java.lang.String)>(v);
if v == 0 goto label;
label:
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
private static boolean isIPv4Address(java.lang.String)
{
java.util.regex.Matcher v;
int v, v, v, v;
java.lang.String v, v;
java.util.regex.Pattern v;
boolean v, v;
v := @parameter: java.lang.String;
v = <org.apache.commons.io.FilenameUtils: java.util.regex.Pattern IPV4_PATTERN>;
v = virtualinvoke v.<java.util.regex.Pattern: java.util.regex.Matcher matcher(java.lang.CharSequence)>(v);
v = virtualinvoke v.<java.util.regex.Matcher: boolean matches()>();
if v == 0 goto label;
v = virtualinvoke v.<java.util.regex.Matcher: int groupCount()>();
if v == 4 goto label;
label:
return 0;
label:
v = 1;
label:
if v > 4 goto label;
v = virtualinvoke v.<java.util.regex.Matcher: java.lang.String group(int)>(v);
v = staticinvoke <java.lang.Integer: int parseInt(java.lang.String)>(v);
if v <= 255 goto label;
return 0;
label:
v = virtualinvoke v.<java.lang.String: int length()>();
if v <= 1 goto label;
v = virtualinvoke v.<java.lang.String: boolean startsWith(java.lang.String)>("0");
if v == 0 goto label;
return 0;
label:
v = v + 1;
goto label;
label:
return 1;
}
private static boolean isIPv6Address(java.lang.String)
{
boolean v, v, v, v, v, v, v, v, v, v, v, v;
java.util.List v;
java.lang.Object[] v;
java.lang.String[] v, v;
java.util.ArrayList v;
int v, v, v, v, v, v, v, v, v, v, v, v;
java.lang.String v, v;
java.lang.NumberFormatException v;
v := @parameter: java.lang.String;
v = virtualinvoke v.<java.lang.String: boolean contains(java.lang.CharSequence)>("::");
if v == 0 goto label;
v = virtualinvoke v.<java.lang.String: int indexOf(java.lang.String)>("::");
v = virtualinvoke v.<java.lang.String: int lastIndexOf(java.lang.String)>("::");
if v == v goto label;
return 0;
label:
v = virtualinvoke v.<java.lang.String: boolean startsWith(java.lang.String)>(":");
if v == 0 goto label;
v = virtualinvoke v.<java.lang.String: boolean startsWith(java.lang.String)>("::");
if v == 0 goto label;
label:
v = virtualinvoke v.<java.lang.String: boolean endsWith(java.lang.String)>(":");
if v == 0 goto label;
v = virtualinvoke v.<java.lang.String: boolean endsWith(java.lang.String)>("::");
if v != 0 goto label;
label:
return 0;
label:
v = virtualinvoke v.<java.lang.String: java.lang.String[] split(java.lang.String)>(":");
if v == 0 goto label;
v = new java.util.ArrayList;
v = staticinvoke <java.util.Arrays: java.util.List asList(java.lang.Object[])>(v);
specialinvoke v.<java.util.ArrayList: void <init>(java.util.Collection)>(v);
v = virtualinvoke v.<java.lang.String: boolean endsWith(java.lang.String)>("::");
if v == 0 goto label;
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>("");
goto label;
label:
v = virtualinvoke v.<java.lang.String: boolean startsWith(java.lang.String)>("::");
if v == 0 goto label;
v = interfaceinvoke v.<java.util.List: boolean isEmpty()>();
if v != 0 goto label;
interfaceinvoke v.<java.util.List: java.lang.Object remove(int)>(0);
label:
v = <org.apache.commons.io.FilenameUtils: java.lang.String[] EMPTY_STRING_ARRAY>;
v = interfaceinvoke v.<java.util.List: java.lang.Object[] toArray(java.lang.Object[])>(v);
label:
v = lengthof v;
if v <= 8 goto label;
return 0;
label:
v = 0;
v = 0;
v = 0;
label:
v = lengthof v;
if v >= v goto label;
v = v[v];
v = virtualinvoke v.<java.lang.String: boolean isEmpty()>();
if v == 0 goto label;
v = v + 1;
if v <= 1 goto label;
return 0;
label:
v = 0;
v = lengthof v;
v = v - 1;
if v != v goto label;
v = virtualinvoke v.<java.lang.String: boolean contains(java.lang.CharSequence)>(".");
if v == 0 goto label;
v = staticinvoke <org.apache.commons.io.FilenameUtils: boolean isIPv4Address(java.lang.String)>(v);
if v != 0 goto label;
return 0;
label:
v = v + 2;
goto label;
label:
v = virtualinvoke v.<java.lang.String: int length()>();
if v <= 4 goto label;
return 0;
label:
v = staticinvoke <java.lang.Integer: int parseInt(java.lang.String,int)>(v, 16);
label:
goto label;
label:
v := @caughtexception;
return 0;
label:
if v < 0 goto label;
v = (int) 65535;
if v <= v goto label;
label:
return 0;
label:
v = v + 1;
label:
v = v + 1;
goto label;
label:
if v > 8 goto label;
if v >= 8 goto label;
if v == 0 goto label;
label:
v = 1;
goto label;
label:
v = 0;
label:
return v;
catch java.lang.NumberFormatException from label to label with label;
}
private static boolean isRFC3986HostName(java.lang.String)
{
java.lang.String[] v;
java.util.regex.Matcher v;
int v, v, v, v, v;
java.lang.String v, v, v;
java.util.regex.Pattern v;
boolean v, v, v;
v := @parameter: java.lang.String;
v = (int) -1;
v = virtualinvoke v.<java.lang.String: java.lang.String[] split(java.lang.String,int)>("\\.", v);
v = 0;
label:
v = lengthof v;
if v >= v goto label;
v = v[v];
v = virtualinvoke v.<java.lang.String: boolean isEmpty()>();
if v == 0 goto label;
v = lengthof v;
v = v - 1;
if v != v goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
label:
v = <org.apache.commons.io.FilenameUtils: java.util.regex.Pattern REG_NAME_PART_PATTERN>;
v = v[v];
v = virtualinvoke v.<java.util.regex.Pattern: java.util.regex.Matcher matcher(java.lang.CharSequence)>(v);
v = virtualinvoke v.<java.util.regex.Matcher: boolean matches()>();
if v != 0 goto label;
return 0;
label:
v = v + 1;
goto label;
label:
return 1;
}
static void <clinit>()
{
char v;
java.lang.String[] v;
java.lang.String v;
java.util.regex.Pattern v, v;
boolean v;
v = newarray (java.lang.String)[0];
<org.apache.commons.io.FilenameUtils: java.lang.String[] EMPTY_STRING_ARRAY> = v;
v = staticinvoke <java.lang.Character: java.lang.String toString(char)>(46);
<org.apache.commons.io.FilenameUtils: java.lang.String EXTENSION_SEPARATOR_STR> = v;
v = <java.io.File: char separatorChar>;
<org.apache.commons.io.FilenameUtils: char SYSTEM_SEPARATOR> = v;
v = staticinvoke <org.apache.commons.io.FilenameUtils: boolean isSystemWindows()>();
if v == 0 goto label;
<org.apache.commons.io.FilenameUtils: char OTHER_SEPARATOR> = 47;
goto label;
label:
<org.apache.commons.io.FilenameUtils: char OTHER_SEPARATOR> = 92;
label:
v = staticinvoke <java.util.regex.Pattern: java.util.regex.Pattern compile(java.lang.String)>("^(\\d{1,3})\\.(\\d{1,3})\\.(\\d{1,3})\\.(\\d{1,3})$");
<org.apache.commons.io.FilenameUtils: java.util.regex.Pattern IPV4_PATTERN> = v;
v = staticinvoke <java.util.regex.Pattern: java.util.regex.Pattern compile(java.lang.String)>("^[a-zA-Z0-9][a-zA-Z0-9-]*$");
<org.apache.commons.io.FilenameUtils: java.util.regex.Pattern REG_NAME_PART_PATTERN> = v;
return;
}
}