class org.springframework.web.servlet.function.RequestPredicates$PathPatternPredicate implements org.springframework.web.servlet.function.RequestPredicate, org.springframework.web.servlet.function.ChangePathPatternParserVisitor$Target
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: org.springframework.web.servlet.function.RequestPredicates$PathPatternPredicate
super_class: java.lang.Object
{
private org.springframework.web.util.pattern.PathPattern pattern;
descriptor: Lorg/springframework/web/util/pattern/PathPattern;
flags: (0x0002) ACC_PRIVATE
public void <init>(org.springframework.web.util.pattern.PathPattern);
descriptor: (Lorg/springframework/web/util/pattern/PathPattern;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 1
ldc "'pattern' must not be null"
invokestatic org.springframework.util.Assert.notNull:(Ljava/lang/Object;Ljava/lang/String;)V
2: aload 0
aload 1
putfield org.springframework.web.servlet.function.RequestPredicates$PathPatternPredicate.pattern:Lorg/springframework/web/util/pattern/PathPattern;
3: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/springframework/web/servlet/function/RequestPredicates$PathPatternPredicate;
0 4 1 pattern Lorg/springframework/web/util/pattern/PathPattern;
MethodParameters:
Name Flags
pattern
public boolean test(org.springframework.web.servlet.function.ServerRequest);
descriptor: (Lorg/springframework/web/servlet/function/ServerRequest;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=4, args_size=2
start local 0 start local 1 0: aload 1
invokeinterface org.springframework.web.servlet.function.ServerRequest.requestPath:()Lorg/springframework/http/server/RequestPath;
invokeinterface org.springframework.http.server.RequestPath.pathWithinApplication:()Lorg/springframework/http/server/PathContainer;
astore 2
start local 2 1: aload 0
getfield org.springframework.web.servlet.function.RequestPredicates$PathPatternPredicate.pattern:Lorg/springframework/web/util/pattern/PathPattern;
aload 2
invokevirtual org.springframework.web.util.pattern.PathPattern.matchAndExtract:(Lorg/springframework/http/server/PathContainer;)Lorg/springframework/web/util/pattern/PathPattern$PathMatchInfo;
astore 3
start local 3 2: ldc "Pattern"
aload 0
getfield org.springframework.web.servlet.function.RequestPredicates$PathPatternPredicate.pattern:Lorg/springframework/web/util/pattern/PathPattern;
invokevirtual org.springframework.web.util.pattern.PathPattern.getPatternString:()Ljava/lang/String;
aload 1
invokeinterface org.springframework.web.servlet.function.ServerRequest.path:()Ljava/lang/String;
aload 3
ifnull 3
iconst_1
goto 4
StackMap locals: org.springframework.web.servlet.function.RequestPredicates$PathPatternPredicate org.springframework.web.servlet.function.ServerRequest org.springframework.http.server.PathContainer org.springframework.web.util.pattern.PathPattern$PathMatchInfo
StackMap stack: java.lang.String java.lang.String java.lang.String
3: iconst_0
StackMap locals: org.springframework.web.servlet.function.RequestPredicates$PathPatternPredicate org.springframework.web.servlet.function.ServerRequest org.springframework.http.server.PathContainer org.springframework.web.util.pattern.PathPattern$PathMatchInfo
StackMap stack: java.lang.String java.lang.String java.lang.String int
4: invokestatic org.springframework.web.servlet.function.RequestPredicates.traceMatch:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;Z)V
5: aload 3
ifnull 8
6: aload 1
aload 3
invokevirtual org.springframework.web.util.pattern.PathPattern$PathMatchInfo.getUriVariables:()Ljava/util/Map;
aload 0
getfield org.springframework.web.servlet.function.RequestPredicates$PathPatternPredicate.pattern:Lorg/springframework/web/util/pattern/PathPattern;
invokestatic org.springframework.web.servlet.function.RequestPredicates$PathPatternPredicate.mergeAttributes:(Lorg/springframework/web/servlet/function/ServerRequest;Ljava/util/Map;Lorg/springframework/web/util/pattern/PathPattern;)V
7: iconst_1
ireturn
8: StackMap locals:
StackMap stack:
iconst_0
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lorg/springframework/web/servlet/function/RequestPredicates$PathPatternPredicate;
0 9 1 request Lorg/springframework/web/servlet/function/ServerRequest;
1 9 2 pathContainer Lorg/springframework/http/server/PathContainer;
2 9 3 info Lorg/springframework/web/util/pattern/PathPattern$PathMatchInfo;
MethodParameters:
Name Flags
request
private static void mergeAttributes(org.springframework.web.servlet.function.ServerRequest, java.util.Map<java.lang.String, java.lang.String>, org.springframework.web.util.pattern.PathPattern);
descriptor: (Lorg/springframework/web/servlet/function/ServerRequest;Ljava/util/Map;Lorg/springframework/web/util/pattern/PathPattern;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokeinterface org.springframework.web.servlet.function.ServerRequest.pathVariables:()Ljava/util/Map;
aload 1
invokestatic org.springframework.web.servlet.function.RequestPredicates.mergePathVariables:(Ljava/util/Map;Ljava/util/Map;)Ljava/util/Map;
astore 3
start local 3 1: aload 0
invokeinterface org.springframework.web.servlet.function.ServerRequest.attributes:()Ljava/util/Map;
getstatic org.springframework.web.servlet.function.RouterFunctions.URI_TEMPLATE_VARIABLES_ATTRIBUTE:Ljava/lang/String;
2: aload 3
invokestatic java.util.Collections.unmodifiableMap:(Ljava/util/Map;)Ljava/util/Map;
3: invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
4: aload 0
invokeinterface org.springframework.web.servlet.function.ServerRequest.attributes:()Ljava/util/Map;
getstatic org.springframework.web.servlet.function.RouterFunctions.MATCHING_PATTERN_ATTRIBUTE:Ljava/lang/String;
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.springframework.web.util.pattern.PathPattern
5: aload 2
6: invokestatic org.springframework.web.servlet.function.RequestPredicates.mergePatterns:(Lorg/springframework/web/util/pattern/PathPattern;Lorg/springframework/web/util/pattern/PathPattern;)Lorg/springframework/web/util/pattern/PathPattern;
astore 2
7: aload 0
invokeinterface org.springframework.web.servlet.function.ServerRequest.attributes:()Ljava/util/Map;
getstatic org.springframework.web.servlet.function.RouterFunctions.MATCHING_PATTERN_ATTRIBUTE:Ljava/lang/String;
aload 2
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
8: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 request Lorg/springframework/web/servlet/function/ServerRequest;
0 9 1 variables Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;
0 9 2 pattern Lorg/springframework/web/util/pattern/PathPattern;
1 9 3 pathVariables Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;
Signature: (Lorg/springframework/web/servlet/function/ServerRequest;Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;Lorg/springframework/web/util/pattern/PathPattern;)V
MethodParameters:
Name Flags
request
variables
pattern
public java.util.Optional<org.springframework.web.servlet.function.ServerRequest> nest(org.springframework.web.servlet.function.ServerRequest);
descriptor: (Lorg/springframework/web/servlet/function/ServerRequest;)Ljava/util/Optional;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield org.springframework.web.servlet.function.RequestPredicates$PathPatternPredicate.pattern:Lorg/springframework/web/util/pattern/PathPattern;
aload 1
invokeinterface org.springframework.web.servlet.function.ServerRequest.requestPath:()Lorg/springframework/http/server/RequestPath;
invokeinterface org.springframework.http.server.RequestPath.pathWithinApplication:()Lorg/springframework/http/server/PathContainer;
invokevirtual org.springframework.web.util.pattern.PathPattern.matchStartOfPath:(Lorg/springframework/http/server/PathContainer;)Lorg/springframework/web/util/pattern/PathPattern$PathRemainingMatchInfo;
invokestatic java.util.Optional.ofNullable:(Ljava/lang/Object;)Ljava/util/Optional;
1: aload 0
aload 1
invokedynamic apply(Lorg/springframework/web/servlet/function/RequestPredicates$PathPatternPredicate;Lorg/springframework/web/servlet/function/ServerRequest;)Ljava/util/function/Function;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Ljava/lang/Object;)Ljava/lang/Object;
org/springframework/web/servlet/function/RequestPredicates$PathPatternPredicate.lambda$0(Lorg/springframework/web/servlet/function/ServerRequest;Lorg/springframework/web/util/pattern/PathPattern$PathRemainingMatchInfo;)Lorg/springframework/web/servlet/function/ServerRequest; (7)
(Lorg/springframework/web/util/pattern/PathPattern$PathRemainingMatchInfo;)Lorg/springframework/web/servlet/function/ServerRequest;
invokevirtual java.util.Optional.map:(Ljava/util/function/Function;)Ljava/util/Optional;
2: areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/springframework/web/servlet/function/RequestPredicates$PathPatternPredicate;
0 3 1 request Lorg/springframework/web/servlet/function/ServerRequest;
Signature: (Lorg/springframework/web/servlet/function/ServerRequest;)Ljava/util/Optional<Lorg/springframework/web/servlet/function/ServerRequest;>;
MethodParameters:
Name Flags
request
public void accept(org.springframework.web.servlet.function.RequestPredicates$Visitor);
descriptor: (Lorg/springframework/web/servlet/function/RequestPredicates$Visitor;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 1
aload 0
getfield org.springframework.web.servlet.function.RequestPredicates$PathPatternPredicate.pattern:Lorg/springframework/web/util/pattern/PathPattern;
invokevirtual org.springframework.web.util.pattern.PathPattern.getPatternString:()Ljava/lang/String;
invokeinterface org.springframework.web.servlet.function.RequestPredicates$Visitor.path:(Ljava/lang/String;)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/springframework/web/servlet/function/RequestPredicates$PathPatternPredicate;
0 2 1 visitor Lorg/springframework/web/servlet/function/RequestPredicates$Visitor;
MethodParameters:
Name Flags
visitor
public void changeParser(org.springframework.web.util.pattern.PathPatternParser);
descriptor: (Lorg/springframework/web/util/pattern/PathPatternParser;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield org.springframework.web.servlet.function.RequestPredicates$PathPatternPredicate.pattern:Lorg/springframework/web/util/pattern/PathPattern;
invokevirtual org.springframework.web.util.pattern.PathPattern.getPatternString:()Ljava/lang/String;
astore 2
start local 2 1: aload 0
aload 1
aload 2
invokevirtual org.springframework.web.util.pattern.PathPatternParser.parse:(Ljava/lang/String;)Lorg/springframework/web/util/pattern/PathPattern;
putfield org.springframework.web.servlet.function.RequestPredicates$PathPatternPredicate.pattern:Lorg/springframework/web/util/pattern/PathPattern;
2: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/springframework/web/servlet/function/RequestPredicates$PathPatternPredicate;
0 3 1 parser Lorg/springframework/web/util/pattern/PathPatternParser;
1 3 2 patternString Ljava/lang/String;
MethodParameters:
Name Flags
parser
public java.lang.String toString();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.springframework.web.servlet.function.RequestPredicates$PathPatternPredicate.pattern:Lorg/springframework/web/util/pattern/PathPattern;
invokevirtual org.springframework.web.util.pattern.PathPattern.getPatternString:()Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/springframework/web/servlet/function/RequestPredicates$PathPatternPredicate;
private org.springframework.web.servlet.function.ServerRequest lambda$0(org.springframework.web.servlet.function.ServerRequest, org.springframework.web.util.pattern.PathPattern$PathRemainingMatchInfo);
descriptor: (Lorg/springframework/web/servlet/function/ServerRequest;Lorg/springframework/web/util/pattern/PathPattern$PathRemainingMatchInfo;)Lorg/springframework/web/servlet/function/ServerRequest;
flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
Code:
stack=5, locals=3, args_size=3
start local 0 start local 2 0: new org.springframework.web.servlet.function.RequestPredicates$SubPathServerRequestWrapper
dup
aload 1
aload 2
aload 0
getfield org.springframework.web.servlet.function.RequestPredicates$PathPatternPredicate.pattern:Lorg/springframework/web/util/pattern/PathPattern;
invokespecial org.springframework.web.servlet.function.RequestPredicates$SubPathServerRequestWrapper.<init>:(Lorg/springframework/web/servlet/function/ServerRequest;Lorg/springframework/web/util/pattern/PathPattern$PathRemainingMatchInfo;Lorg/springframework/web/util/pattern/PathPattern;)V
areturn
end local 2 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/springframework/web/servlet/function/RequestPredicates$PathPatternPredicate;
0 1 2 info Lorg/springframework/web/util/pattern/PathPattern$PathRemainingMatchInfo;
}
SourceFile: "RequestPredicates.java"
NestHost: org.springframework.web.servlet.function.RequestPredicates
InnerClasses:
public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
public abstract Target = org.springframework.web.servlet.function.ChangePathPatternParserVisitor$Target of org.springframework.web.servlet.function.ChangePathPatternParserVisitor
private PathPatternPredicate = org.springframework.web.servlet.function.RequestPredicates$PathPatternPredicate of org.springframework.web.servlet.function.RequestPredicates
private SubPathServerRequestWrapper = org.springframework.web.servlet.function.RequestPredicates$SubPathServerRequestWrapper of org.springframework.web.servlet.function.RequestPredicates
public abstract Visitor = org.springframework.web.servlet.function.RequestPredicates$Visitor of org.springframework.web.servlet.function.RequestPredicates
public PathMatchInfo = org.springframework.web.util.pattern.PathPattern$PathMatchInfo of org.springframework.web.util.pattern.PathPattern
public PathRemainingMatchInfo = org.springframework.web.util.pattern.PathPattern$PathRemainingMatchInfo of org.springframework.web.util.pattern.PathPattern