public class org.springframework.util.AntPathMatcher extends java.lang.Object implements org.springframework.util.PathMatcher
{
public static final java.lang.String DEFAULT_PATH_SEPARATOR;
private static final int CACHE_TURNOFF_THRESHOLD;
private static final java.util.regex.Pattern VARIABLE_PATTERN;
private static final char[] WILDCARD_CHARS;
private java.lang.String pathSeparator;
private org.springframework.util.AntPathMatcher$PathSeparatorPatternCache pathSeparatorPatternCache;
private boolean caseSensitive;
private boolean trimTokens;
private volatile java.lang.Boolean cachePatterns;
private final java.util.Map tokenizedPatternCache;
final java.util.Map stringMatcherCache;
public void <init>()
{
org.springframework.util.AntPathMatcher$PathSeparatorPatternCache v;
java.util.concurrent.ConcurrentHashMap v, v;
org.springframework.util.AntPathMatcher v;
v := @this: org.springframework.util.AntPathMatcher;
specialinvoke v.<java.lang.Object: void <init>()>();
v.<org.springframework.util.AntPathMatcher: boolean caseSensitive> = 1;
v.<org.springframework.util.AntPathMatcher: boolean trimTokens> = 0;
v = new java.util.concurrent.ConcurrentHashMap;
specialinvoke v.<java.util.concurrent.ConcurrentHashMap: void <init>(int)>(256);
v.<org.springframework.util.AntPathMatcher: java.util.Map tokenizedPatternCache> = v;
v = new java.util.concurrent.ConcurrentHashMap;
specialinvoke v.<java.util.concurrent.ConcurrentHashMap: void <init>(int)>(256);
v.<org.springframework.util.AntPathMatcher: java.util.Map stringMatcherCache> = v;
v.<org.springframework.util.AntPathMatcher: java.lang.String pathSeparator> = "/";
v = new org.springframework.util.AntPathMatcher$PathSeparatorPatternCache;
specialinvoke v.<org.springframework.util.AntPathMatcher$PathSeparatorPatternCache: void <init>(java.lang.String)>("/");
v.<org.springframework.util.AntPathMatcher: org.springframework.util.AntPathMatcher$PathSeparatorPatternCache pathSeparatorPatternCache> = v;
return;
}
public void <init>(java.lang.String)
{
org.springframework.util.AntPathMatcher$PathSeparatorPatternCache v;
java.util.concurrent.ConcurrentHashMap v, v;
java.lang.String v;
org.springframework.util.AntPathMatcher v;
v := @this: org.springframework.util.AntPathMatcher;
v := @parameter: java.lang.String;
specialinvoke v.<java.lang.Object: void <init>()>();
v.<org.springframework.util.AntPathMatcher: boolean caseSensitive> = 1;
v.<org.springframework.util.AntPathMatcher: boolean trimTokens> = 0;
v = new java.util.concurrent.ConcurrentHashMap;
specialinvoke v.<java.util.concurrent.ConcurrentHashMap: void <init>(int)>(256);
v.<org.springframework.util.AntPathMatcher: java.util.Map tokenizedPatternCache> = v;
v = new java.util.concurrent.ConcurrentHashMap;
specialinvoke v.<java.util.concurrent.ConcurrentHashMap: void <init>(int)>(256);
v.<org.springframework.util.AntPathMatcher: java.util.Map stringMatcherCache> = v;
staticinvoke <org.springframework.util.Assert: void notNull(java.lang.Object,java.lang.String)>(v, "\'pathSeparator\' is required");
v.<org.springframework.util.AntPathMatcher: java.lang.String pathSeparator> = v;
v = new org.springframework.util.AntPathMatcher$PathSeparatorPatternCache;
specialinvoke v.<org.springframework.util.AntPathMatcher$PathSeparatorPatternCache: void <init>(java.lang.String)>(v);
v.<org.springframework.util.AntPathMatcher: org.springframework.util.AntPathMatcher$PathSeparatorPatternCache pathSeparatorPatternCache> = v;
return;
}
public void setPathSeparator(java.lang.String)
{
org.springframework.util.AntPathMatcher$PathSeparatorPatternCache v;
java.lang.String v, v, v;
org.springframework.util.AntPathMatcher v;
v := @this: org.springframework.util.AntPathMatcher;
v := @parameter: java.lang.String;
if v == null goto label;
v = v;
goto label;
label:
v = "/";
label:
v.<org.springframework.util.AntPathMatcher: java.lang.String pathSeparator> = v;
v = new org.springframework.util.AntPathMatcher$PathSeparatorPatternCache;
v = v.<org.springframework.util.AntPathMatcher: java.lang.String pathSeparator>;
specialinvoke v.<org.springframework.util.AntPathMatcher$PathSeparatorPatternCache: void <init>(java.lang.String)>(v);
v.<org.springframework.util.AntPathMatcher: org.springframework.util.AntPathMatcher$PathSeparatorPatternCache pathSeparatorPatternCache> = v;
return;
}
public void setCaseSensitive(boolean)
{
org.springframework.util.AntPathMatcher v;
boolean v;
v := @this: org.springframework.util.AntPathMatcher;
v := @parameter: boolean;
v.<org.springframework.util.AntPathMatcher: boolean caseSensitive> = v;
return;
}
public void setTrimTokens(boolean)
{
org.springframework.util.AntPathMatcher v;
boolean v;
v := @this: org.springframework.util.AntPathMatcher;
v := @parameter: boolean;
v.<org.springframework.util.AntPathMatcher: boolean trimTokens> = v;
return;
}
public void setCachePatterns(boolean)
{
java.lang.Boolean v;
org.springframework.util.AntPathMatcher v;
boolean v;
v := @this: org.springframework.util.AntPathMatcher;
v := @parameter: boolean;
v = staticinvoke <java.lang.Boolean: java.lang.Boolean valueOf(boolean)>(v);
v.<org.springframework.util.AntPathMatcher: java.lang.Boolean cachePatterns> = v;
return;
}
private void deactivatePatternCache()
{
java.util.Map v, v;
java.lang.Boolean v;
org.springframework.util.AntPathMatcher v;
v := @this: org.springframework.util.AntPathMatcher;
v = staticinvoke <java.lang.Boolean: java.lang.Boolean valueOf(boolean)>(0);
v.<org.springframework.util.AntPathMatcher: java.lang.Boolean cachePatterns> = v;
v = v.<org.springframework.util.AntPathMatcher: java.util.Map tokenizedPatternCache>;
interfaceinvoke v.<java.util.Map: void clear()>();
v = v.<org.springframework.util.AntPathMatcher: java.util.Map stringMatcherCache>;
interfaceinvoke v.<java.util.Map: void clear()>();
return;
}
public boolean isPattern(java.lang.String)
{
int v, v, v, v;
java.lang.String v;
org.springframework.util.AntPathMatcher v;
boolean v;
v := @this: org.springframework.util.AntPathMatcher;
v := @parameter: java.lang.String;
v = virtualinvoke v.<java.lang.String: int indexOf(int)>(42);
v = (int) -1;
if v != v goto label;
v = virtualinvoke v.<java.lang.String: int indexOf(int)>(63);
v = (int) -1;
if v == v goto label;
label:
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
public boolean match(java.lang.String, java.lang.String)
{
java.lang.String v, v;
org.springframework.util.AntPathMatcher v;
boolean v;
v := @this: org.springframework.util.AntPathMatcher;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
v = virtualinvoke v.<org.springframework.util.AntPathMatcher: boolean doMatch(java.lang.String,java.lang.String,boolean,java.util.Map)>(v, v, 1, null);
return v;
}
public boolean matchStart(java.lang.String, java.lang.String)
{
java.lang.String v, v;
org.springframework.util.AntPathMatcher v;
boolean v;
v := @this: org.springframework.util.AntPathMatcher;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
v = virtualinvoke v.<org.springframework.util.AntPathMatcher: boolean doMatch(java.lang.String,java.lang.String,boolean,java.util.Map)>(v, v, 0, null);
return v;
}
protected boolean doMatch(java.lang.String, java.lang.String, boolean, java.util.Map)
{
java.util.Map v;
org.springframework.util.AntPathMatcher v;
java.lang.String v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
boolean 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;
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 := @this: org.springframework.util.AntPathMatcher;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
v := @parameter: boolean;
v := @parameter: java.util.Map;
v = v.<org.springframework.util.AntPathMatcher: java.lang.String pathSeparator>;
v = virtualinvoke v.<java.lang.String: boolean startsWith(java.lang.String)>(v);
v = v.<org.springframework.util.AntPathMatcher: java.lang.String pathSeparator>;
v = virtualinvoke v.<java.lang.String: boolean startsWith(java.lang.String)>(v);
if v == v goto label;
return 0;
label:
v = virtualinvoke v.<org.springframework.util.AntPathMatcher: java.lang.String[] tokenizePattern(java.lang.String)>(v);
if v == 0 goto label;
v = v.<org.springframework.util.AntPathMatcher: boolean caseSensitive>;
if v == 0 goto label;
v = specialinvoke v.<org.springframework.util.AntPathMatcher: boolean isPotentialMatch(java.lang.String,java.lang.String[])>(v, v);
if v != 0 goto label;
return 0;
label:
v = virtualinvoke v.<org.springframework.util.AntPathMatcher: java.lang.String[] tokenizePath(java.lang.String)>(v);
v = 0;
v = lengthof v;
v = v - 1;
v = 0;
v = lengthof v;
v = v - 1;
label:
if v > v goto label;
if v > v goto label;
v = v[v];
v = "**";
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>(v);
if v != 0 goto label;
v = v[v];
v = specialinvoke v.<org.springframework.util.AntPathMatcher: boolean matchStrings(java.lang.String,java.lang.String,java.util.Map)>(v, v, v);
if v != 0 goto label;
return 0;
label:
v = v + 1;
v = v + 1;
goto label;
label:
if v <= v goto label;
if v <= v goto label;
v = v.<org.springframework.util.AntPathMatcher: java.lang.String pathSeparator>;
v = virtualinvoke v.<java.lang.String: boolean endsWith(java.lang.String)>(v);
v = v.<org.springframework.util.AntPathMatcher: java.lang.String pathSeparator>;
v = virtualinvoke v.<java.lang.String: boolean endsWith(java.lang.String)>(v);
if v != v goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
label:
if v != 0 goto label;
return 1;
label:
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.<org.springframework.util.AntPathMatcher: java.lang.String pathSeparator>;
v = virtualinvoke v.<java.lang.String: boolean endsWith(java.lang.String)>(v);
if v == 0 goto label;
return 1;
label:
v = v;
label:
if v > v goto label;
v = v[v];
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>("**");
if v != 0 goto label;
return 0;
label:
v = v + 1;
goto label;
label:
return 1;
label:
if v <= v goto label;
return 0;
label:
if v != 0 goto label;
v = "**";
v = v[v];
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>(v);
if v == 0 goto label;
return 1;
label:
if v > v goto label;
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[v];
v = specialinvoke v.<org.springframework.util.AntPathMatcher: boolean matchStrings(java.lang.String,java.lang.String,java.util.Map)>(v, v, v);
if v != 0 goto label;
return 0;
label:
v = v - 1;
v = v - 1;
goto label;
label:
if v <= v goto label;
v = v;
label:
if v > v goto label;
v = v[v];
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>("**");
if v != 0 goto label;
return 0;
label:
v = v + 1;
goto label;
label:
return 1;
label:
if v == v goto label;
if v > v goto label;
v = (int) -1;
v = v;
v = v + 1;
label:
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;
goto label;
label:
v = v + 1;
goto label;
label:
v = v + 1;
if v != v goto label;
v = v + 1;
goto label;
label:
v = v - v;
v = v - 1;
v = v - v;
v = v + 1;
v = (int) -1;
v = v;
v = 0;
label:
v = v - v;
if v > v goto label;
v = 0;
label:
if v >= v goto label;
v = v + v;
v = v + 1;
v = v[v];
v = v + v;
v = v + v;
v = v[v];
v = specialinvoke v.<org.springframework.util.AntPathMatcher: boolean matchStrings(java.lang.String,java.lang.String,java.util.Map)>(v, v, v);
if v == 0 goto label;
v = v + 1;
goto label;
label:
v = v + v;
goto label;
label:
v = v + 1;
goto label;
label:
v = (int) -1;
if v != v goto label;
return 0;
label:
v = v;
v = v + v;
goto label;
label:
v = v;
label:
if v > v goto label;
v = v[v];
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>("**");
if v != 0 goto label;
return 0;
label:
v = v + 1;
goto label;
label:
return 1;
}
private boolean isPotentialMatch(java.lang.String, java.lang.String[])
{
java.lang.String[] v;
int v, v, v, v, v, v, v, v;
java.lang.String v, v, v;
org.springframework.util.AntPathMatcher v;
boolean v, v, v;
char v;
v := @this: org.springframework.util.AntPathMatcher;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String[];
v = v.<org.springframework.util.AntPathMatcher: boolean trimTokens>;
if v != 0 goto label;
v = 0;
v = lengthof v;
v = 0;
label:
if v >= v goto label;
v = v[v];
v = v.<org.springframework.util.AntPathMatcher: java.lang.String pathSeparator>;
v = specialinvoke v.<org.springframework.util.AntPathMatcher: int skipSeparator(java.lang.String,int,java.lang.String)>(v, v, v);
v = v + v;
v = specialinvoke v.<org.springframework.util.AntPathMatcher: int skipSegment(java.lang.String,int,java.lang.String)>(v, v, v);
v = virtualinvoke v.<java.lang.String: int length()>();
if v >= v goto label;
if v > 0 goto label;
v = virtualinvoke v.<java.lang.String: int length()>();
if v <= 0 goto label;
v = virtualinvoke v.<java.lang.String: char charAt(int)>(0);
v = specialinvoke v.<org.springframework.util.AntPathMatcher: boolean isWildcardChar(char)>(v);
if v == 0 goto label;
label:
v = 1;
goto label;
label:
v = 0;
label:
return v;
label:
v = v + v;
v = v + 1;
goto label;
label:
return 1;
}
private int skipSegment(java.lang.String, int, java.lang.String)
{
char v, v;
int v, v, v, v, v, v;
java.lang.String v, v;
org.springframework.util.AntPathMatcher v;
boolean v;
v := @this: org.springframework.util.AntPathMatcher;
v := @parameter: java.lang.String;
v := @parameter: int;
v := @parameter: java.lang.String;
v = 0;
v = 0;
label:
v = virtualinvoke v.<java.lang.String: int length()>();
if v >= v goto label;
v = virtualinvoke v.<java.lang.String: char charAt(int)>(v);
v = specialinvoke v.<org.springframework.util.AntPathMatcher: boolean isWildcardChar(char)>(v);
if v == 0 goto label;
return v;
label:
v = v + v;
v = virtualinvoke v.<java.lang.String: int length()>();
if v < v goto label;
return 0;
label:
v = virtualinvoke v.<java.lang.String: char charAt(int)>(v);
if v != v goto label;
v = v + 1;
label:
v = v + 1;
goto label;
label:
return v;
}
private int skipSeparator(java.lang.String, int, java.lang.String)
{
int v, v, v, v;
java.lang.String v, v;
org.springframework.util.AntPathMatcher v;
boolean v;
v := @this: org.springframework.util.AntPathMatcher;
v := @parameter: java.lang.String;
v := @parameter: int;
v := @parameter: java.lang.String;
v = 0;
label:
v = v + v;
v = virtualinvoke v.<java.lang.String: boolean startsWith(java.lang.String,int)>(v, v);
if v == 0 goto label;
v = virtualinvoke v.<java.lang.String: int length()>();
v = v + v;
goto label;
label:
return v;
}
private boolean isWildcardChar(char)
{
int v, v;
char[] v;
char v, v;
org.springframework.util.AntPathMatcher v;
v := @this: org.springframework.util.AntPathMatcher;
v := @parameter: char;
v = <org.springframework.util.AntPathMatcher: char[] WILDCARD_CHARS>;
v = lengthof v;
v = 0;
label:
if v >= v goto label;
v = v[v];
if v != v goto label;
return 1;
label:
v = v + 1;
goto label;
label:
return 0;
}
protected java.lang.String[] tokenizePattern(java.lang.String)
{
java.util.Map v, v, v;
int v;
java.lang.Boolean v;
java.lang.Object v;
java.lang.String v;
org.springframework.util.AntPathMatcher v;
boolean v, v;
v := @this: org.springframework.util.AntPathMatcher;
v := @parameter: java.lang.String;
v = v.<org.springframework.util.AntPathMatcher: java.lang.Boolean cachePatterns>;
if v == null goto label;
v = virtualinvoke v.<java.lang.Boolean: boolean booleanValue()>();
if v == 0 goto label;
label:
v = v.<org.springframework.util.AntPathMatcher: java.util.Map tokenizedPatternCache>;
v = interfaceinvoke v.<java.util.Map: java.lang.Object get(java.lang.Object)>(v);
label:
if v != null goto label;
v = virtualinvoke v.<org.springframework.util.AntPathMatcher: java.lang.String[] tokenizePath(java.lang.String)>(v);
if v != null goto label;
v = v.<org.springframework.util.AntPathMatcher: java.util.Map tokenizedPatternCache>;
v = interfaceinvoke v.<java.util.Map: int size()>();
if v < 65536 goto label;
specialinvoke v.<org.springframework.util.AntPathMatcher: void deactivatePatternCache()>();
return v;
label:
if v == null goto label;
v = virtualinvoke v.<java.lang.Boolean: boolean booleanValue()>();
if v == 0 goto label;
label:
v = v.<org.springframework.util.AntPathMatcher: java.util.Map tokenizedPatternCache>;
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
label:
return v;
}
protected java.lang.String[] tokenizePath(java.lang.String)
{
java.lang.String[] v;
java.lang.String v, v;
org.springframework.util.AntPathMatcher v;
boolean v;
v := @this: org.springframework.util.AntPathMatcher;
v := @parameter: java.lang.String;
v = v.<org.springframework.util.AntPathMatcher: java.lang.String pathSeparator>;
v = v.<org.springframework.util.AntPathMatcher: boolean trimTokens>;
v = staticinvoke <org.springframework.util.StringUtils: java.lang.String[] tokenizeToStringArray(java.lang.String,java.lang.String,boolean,boolean)>(v, v, v, 1);
return v;
}
private boolean matchStrings(java.lang.String, java.lang.String, java.util.Map)
{
java.util.Map v;
java.lang.String v, v;
org.springframework.util.AntPathMatcher v;
org.springframework.util.AntPathMatcher$AntPathStringMatcher v;
boolean v;
v := @this: org.springframework.util.AntPathMatcher;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
v := @parameter: java.util.Map;
v = virtualinvoke v.<org.springframework.util.AntPathMatcher: org.springframework.util.AntPathMatcher$AntPathStringMatcher getStringMatcher(java.lang.String)>(v);
v = virtualinvoke v.<org.springframework.util.AntPathMatcher$AntPathStringMatcher: boolean matchStrings(java.lang.String,java.util.Map)>(v, v);
return v;
}
protected org.springframework.util.AntPathMatcher$AntPathStringMatcher getStringMatcher(java.lang.String)
{
java.util.Map v, v, v;
int v;
java.lang.Boolean v;
java.lang.Object v;
java.lang.String v;
org.springframework.util.AntPathMatcher v;
org.springframework.util.AntPathMatcher$AntPathStringMatcher v;
boolean v, v, v;
v := @this: org.springframework.util.AntPathMatcher;
v := @parameter: java.lang.String;
v = v.<org.springframework.util.AntPathMatcher: java.lang.Boolean cachePatterns>;
if v == null goto label;
v = virtualinvoke v.<java.lang.Boolean: boolean booleanValue()>();
if v == 0 goto label;
label:
v = v.<org.springframework.util.AntPathMatcher: java.util.Map stringMatcherCache>;
v = interfaceinvoke v.<java.util.Map: java.lang.Object get(java.lang.Object)>(v);
label:
if v != null goto label;
v = new org.springframework.util.AntPathMatcher$AntPathStringMatcher;
v = v.<org.springframework.util.AntPathMatcher: boolean caseSensitive>;
specialinvoke v.<org.springframework.util.AntPathMatcher$AntPathStringMatcher: void <init>(java.lang.String,boolean)>(v, v);
v = v;
if v != null goto label;
v = v.<org.springframework.util.AntPathMatcher: java.util.Map stringMatcherCache>;
v = interfaceinvoke v.<java.util.Map: int size()>();
if v < 65536 goto label;
specialinvoke v.<org.springframework.util.AntPathMatcher: void deactivatePatternCache()>();
return v;
label:
if v == null goto label;
v = virtualinvoke v.<java.lang.Boolean: boolean booleanValue()>();
if v == 0 goto label;
label:
v = v.<org.springframework.util.AntPathMatcher: java.util.Map stringMatcherCache>;
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
label:
return v;
}
public java.lang.String extractPathWithinPattern(java.lang.String, java.lang.String)
{
java.lang.String[] v, v;
int v, v, v, v, v, v, v;
java.lang.String v, v, v, v, v, v, v, v, v;
org.springframework.util.AntPathMatcher v;
boolean v, v, v, v;
java.lang.StringBuilder v;
v := @this: org.springframework.util.AntPathMatcher;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
v = v.<org.springframework.util.AntPathMatcher: java.lang.String pathSeparator>;
v = v.<org.springframework.util.AntPathMatcher: boolean trimTokens>;
v = staticinvoke <org.springframework.util.StringUtils: java.lang.String[] tokenizeToStringArray(java.lang.String,java.lang.String,boolean,boolean)>(v, v, v, 1);
v = v.<org.springframework.util.AntPathMatcher: java.lang.String pathSeparator>;
v = v.<org.springframework.util.AntPathMatcher: boolean trimTokens>;
v = staticinvoke <org.springframework.util.StringUtils: java.lang.String[] tokenizeToStringArray(java.lang.String,java.lang.String,boolean,boolean)>(v, v, v, 1);
v = new java.lang.StringBuilder;
specialinvoke v.<java.lang.StringBuilder: void <init>()>();
v = 0;
v = 0;
label:
v = lengthof v;
if v >= v goto label;
v = v[v];
v = virtualinvoke v.<java.lang.String: int indexOf(int)>(42);
v = (int) -1;
if v > v goto label;
v = virtualinvoke v.<java.lang.String: int indexOf(int)>(63);
v = (int) -1;
if v <= v goto label;
label:
v = lengthof v;
if v >= v goto label;
if v != 0 goto label;
if v != 0 goto label;
v = v.<org.springframework.util.AntPathMatcher: java.lang.String pathSeparator>;
v = virtualinvoke v.<java.lang.String: boolean startsWith(java.lang.String)>(v);
if v != 0 goto label;
label:
v = v.<org.springframework.util.AntPathMatcher: java.lang.String pathSeparator>;
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(v);
label:
v = v[v];
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(v);
v = 1;
v = v + 1;
goto label;
label:
v = v + 1;
goto label;
label:
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.String toString()>();
return v;
}
public java.util.Map extractUriTemplateVariables(java.lang.String, java.lang.String)
{
java.util.LinkedHashMap v;
java.lang.IllegalStateException v;
java.lang.String v, v, v;
org.springframework.util.AntPathMatcher v;
boolean v;
v := @this: org.springframework.util.AntPathMatcher;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
v = new java.util.LinkedHashMap;
specialinvoke v.<java.util.LinkedHashMap: void <init>()>();
v = virtualinvoke v.<org.springframework.util.AntPathMatcher: boolean doMatch(java.lang.String,java.lang.String,boolean,java.util.Map)>(v, v, 1, v);
if v != 0 goto label;
v = new java.lang.IllegalStateException;
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[])>("Pattern \"\u0001\" is not a match for \"\u0001\"");
specialinvoke v.<java.lang.IllegalStateException: void <init>(java.lang.String)>(v);
throw v;
label:
return v;
}
public java.lang.String combine(java.lang.String, java.lang.String)
{
org.springframework.util.AntPathMatcher$PathSeparatorPatternCache v, v;
org.springframework.util.AntPathMatcher v;
boolean v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
int v, v, v, v, v, v, v, v, v, v;
java.lang.String v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
java.lang.IllegalArgumentException v;
v := @this: org.springframework.util.AntPathMatcher;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
v = staticinvoke <org.springframework.util.StringUtils: boolean hasText(java.lang.String)>(v);
if v != 0 goto label;
v = staticinvoke <org.springframework.util.StringUtils: boolean hasText(java.lang.String)>(v);
if v != 0 goto label;
return "";
label:
v = staticinvoke <org.springframework.util.StringUtils: boolean hasText(java.lang.String)>(v);
if v != 0 goto label;
return v;
label:
v = staticinvoke <org.springframework.util.StringUtils: boolean hasText(java.lang.String)>(v);
if v != 0 goto label;
return v;
label:
v = virtualinvoke v.<java.lang.String: int indexOf(int)>(123);
v = (int) -1;
if v == v goto label;
v = 1;
goto label;
label:
v = 0;
label:
v = v;
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>(v);
if v != 0 goto label;
if v != 0 goto label;
v = virtualinvoke v.<org.springframework.util.AntPathMatcher: boolean match(java.lang.String,java.lang.String)>(v, v);
if v == 0 goto label;
return v;
label:
v = v.<org.springframework.util.AntPathMatcher: org.springframework.util.AntPathMatcher$PathSeparatorPatternCache pathSeparatorPatternCache>;
v = virtualinvoke v.<org.springframework.util.AntPathMatcher$PathSeparatorPatternCache: java.lang.String getEndsOnWildCard()>();
v = virtualinvoke v.<java.lang.String: boolean endsWith(java.lang.String)>(v);
if v == 0 goto label;
v = virtualinvoke v.<java.lang.String: int length()>();
v = v - 2;
v = virtualinvoke v.<java.lang.String: java.lang.String substring(int,int)>(0, v);
v = specialinvoke v.<org.springframework.util.AntPathMatcher: java.lang.String concat(java.lang.String,java.lang.String)>(v, v);
return v;
label:
v = v.<org.springframework.util.AntPathMatcher: org.springframework.util.AntPathMatcher$PathSeparatorPatternCache pathSeparatorPatternCache>;
v = virtualinvoke v.<org.springframework.util.AntPathMatcher$PathSeparatorPatternCache: java.lang.String getEndsOnDoubleWildCard()>();
v = virtualinvoke v.<java.lang.String: boolean endsWith(java.lang.String)>(v);
if v == 0 goto label;
v = specialinvoke v.<org.springframework.util.AntPathMatcher: java.lang.String concat(java.lang.String,java.lang.String)>(v, v);
return v;
label:
v = virtualinvoke v.<java.lang.String: int indexOf(java.lang.String)>("*.");
if v != 0 goto label;
v = (int) -1;
if v == v goto label;
v = v.<org.springframework.util.AntPathMatcher: java.lang.String pathSeparator>;
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>(".");
if v == 0 goto label;
label:
v = specialinvoke v.<org.springframework.util.AntPathMatcher: java.lang.String concat(java.lang.String,java.lang.String)>(v, v);
return v;
label:
v = v + 1;
v = virtualinvoke v.<java.lang.String: java.lang.String substring(int)>(v);
v = virtualinvoke v.<java.lang.String: int indexOf(int)>(46);
v = (int) -1;
if v != v goto label;
v = v;
goto label;
label:
v = virtualinvoke v.<java.lang.String: java.lang.String substring(int,int)>(0, v);
label:
v = v;
v = (int) -1;
if v != v goto label;
v = "";
goto label;
label:
v = virtualinvoke v.<java.lang.String: java.lang.String substring(int)>(v);
label:
v = v;
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>(".*");
if v != 0 goto label;
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>("");
if v == 0 goto label;
label:
v = 1;
goto label;
label:
v = 0;
label:
v = v;
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>(".*");
if v != 0 goto label;
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>("");
if v == 0 goto label;
label:
v = 1;
goto label;
label:
v = 0;
label:
if v != 0 goto label;
if v != 0 goto label;
v = new java.lang.IllegalArgumentException;
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[])>("Cannot combine patterns: \u vs \u0001");
specialinvoke v.<java.lang.IllegalArgumentException: void <init>(java.lang.String)>(v);
throw v;
label:
if v == 0 goto label;
v = v;
goto label;
label:
v = 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");
return v;
}
private java.lang.String concat(java.lang.String, java.lang.String)
{
java.lang.String v, v, v, v, v, v, v, v, v;
org.springframework.util.AntPathMatcher v;
boolean v, v;
v := @this: org.springframework.util.AntPathMatcher;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
v = v.<org.springframework.util.AntPathMatcher: java.lang.String pathSeparator>;
v = virtualinvoke v.<java.lang.String: boolean endsWith(java.lang.String)>(v);
v = v.<org.springframework.util.AntPathMatcher: java.lang.String pathSeparator>;
v = virtualinvoke v.<java.lang.String: boolean startsWith(java.lang.String)>(v);
if v == 0 goto label;
if v == 0 goto label;
v = virtualinvoke v.<java.lang.String: java.lang.String substring(int)>(1);
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");
return v;
label:
if v != 0 goto label;
if v == 0 goto label;
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");
return v;
label:
v = v.<org.springframework.util.AntPathMatcher: java.lang.String pathSeparator>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,java.lang.String,java.lang.String)>(v, 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\u0001");
return v;
}
public java.util.Comparator getPatternComparator(java.lang.String)
{
org.springframework.util.AntPathMatcher$AntPatternComparator v;
java.lang.String v;
org.springframework.util.AntPathMatcher v;
v := @this: org.springframework.util.AntPathMatcher;
v := @parameter: java.lang.String;
v = new org.springframework.util.AntPathMatcher$AntPatternComparator;
specialinvoke v.<org.springframework.util.AntPathMatcher$AntPatternComparator: void <init>(java.lang.String)>(v);
return v;
}
static void <clinit>()
{
char[] v;
java.util.regex.Pattern v;
v = staticinvoke <java.util.regex.Pattern: java.util.regex.Pattern compile(java.lang.String)>("\\{[^/]+?\\}");
<org.springframework.util.AntPathMatcher: java.util.regex.Pattern VARIABLE_PATTERN> = v;
v = newarray (char)[3];
v[0] = 42;
v[1] = 63;
v[2] = 123;
<org.springframework.util.AntPathMatcher: char[] WILDCARD_CHARS> = v;
return;
}
}