public abstract class org.springframework.web.servlet.function.RouterFunctions
  minor version: 0
  major version: 59
  flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
  this_class: org.springframework.web.servlet.function.RouterFunctions
  super_class: java.lang.Object
{
  private static final org.apache.commons.logging.Log logger;
    descriptor: Lorg/apache/commons/logging/Log;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  public static final java.lang.String REQUEST_ATTRIBUTE;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  public static final java.lang.String URI_TEMPLATE_VARIABLES_ATTRIBUTE;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  public static final java.lang.String MATCHING_PATTERN_ATTRIBUTE;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=0, args_size=0
         0: .line 50
            ldc Lorg/springframework/web/servlet/function/RouterFunctions;
            invokestatic org.apache.commons.logging.LogFactory.getLog:(Ljava/lang/Class;)Lorg/apache/commons/logging/Log;
            putstatic org.springframework.web.servlet.function.RouterFunctions.logger:Lorg/apache/commons/logging/Log;
         1: .line 55
            new java.lang.StringBuilder
            dup
            ldc Lorg/springframework/web/servlet/function/RouterFunctions;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc ".request"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            putstatic org.springframework.web.servlet.function.RouterFunctions.REQUEST_ATTRIBUTE:Ljava/lang/String;
         2: .line 62
            new java.lang.StringBuilder
            dup
            ldc Lorg/springframework/web/servlet/function/RouterFunctions;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc ".uriTemplateVariables"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         3: .line 61
            putstatic org.springframework.web.servlet.function.RouterFunctions.URI_TEMPLATE_VARIABLES_ATTRIBUTE:Ljava/lang/String;
         4: .line 69
            new java.lang.StringBuilder
            dup
            ldc Lorg/springframework/web/servlet/function/RouterFunctions;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc ".matchingPattern"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         5: .line 68
            putstatic org.springframework.web.servlet.function.RouterFunctions.MATCHING_PATTERN_ATTRIBUTE:Ljava/lang/String;
         6: .line 69
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.springframework.web.servlet.function.RouterFunctions this
         0: .line 48
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // org.springframework.web.servlet.function.RouterFunctions this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/web/servlet/function/RouterFunctions;

  public static org.springframework.web.servlet.function.RouterFunctions$Builder route();
    descriptor: ()Lorg/springframework/web/servlet/function/RouterFunctions$Builder;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 77
            new org.springframework.web.servlet.function.RouterFunctionBuilder
            dup
            invokespecial org.springframework.web.servlet.function.RouterFunctionBuilder.<init>:()V
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public static <T extends org.springframework.web.servlet.function.ServerResponse> org.springframework.web.servlet.function.RouterFunction<T> route(org.springframework.web.servlet.function.RequestPredicate, org.springframework.web.servlet.function.HandlerFunction<T>);
    descriptor: (Lorg/springframework/web/servlet/function/RequestPredicate;Lorg/springframework/web/servlet/function/HandlerFunction;)Lorg/springframework/web/servlet/function/RouterFunction;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // org.springframework.web.servlet.function.RequestPredicate predicate
        start local 1 // org.springframework.web.servlet.function.HandlerFunction handlerFunction
         0: .line 98
            new org.springframework.web.servlet.function.RouterFunctions$DefaultRouterFunction
            dup
            aload 0 /* predicate */
            aload 1 /* handlerFunction */
            invokespecial org.springframework.web.servlet.function.RouterFunctions$DefaultRouterFunction.<init>:(Lorg/springframework/web/servlet/function/RequestPredicate;Lorg/springframework/web/servlet/function/HandlerFunction;)V
            areturn
        end local 1 // org.springframework.web.servlet.function.HandlerFunction handlerFunction
        end local 0 // org.springframework.web.servlet.function.RequestPredicate predicate
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    1     0        predicate  Lorg/springframework/web/servlet/function/RequestPredicate;
            0    1     1  handlerFunction  Lorg/springframework/web/servlet/function/HandlerFunction<TT;>;
    Signature: <T::Lorg/springframework/web/servlet/function/ServerResponse;>(Lorg/springframework/web/servlet/function/RequestPredicate;Lorg/springframework/web/servlet/function/HandlerFunction<TT;>;)Lorg/springframework/web/servlet/function/RouterFunction<TT;>;
    MethodParameters:
                 Name  Flags
      predicate        
      handlerFunction  

  public static <T extends org.springframework.web.servlet.function.ServerResponse> org.springframework.web.servlet.function.RouterFunction<T> nest(org.springframework.web.servlet.function.RequestPredicate, org.springframework.web.servlet.function.RouterFunction<T>);
    descriptor: (Lorg/springframework/web/servlet/function/RequestPredicate;Lorg/springframework/web/servlet/function/RouterFunction;)Lorg/springframework/web/servlet/function/RouterFunction;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // org.springframework.web.servlet.function.RequestPredicate predicate
        start local 1 // org.springframework.web.servlet.function.RouterFunction routerFunction
         0: .line 126
            new org.springframework.web.servlet.function.RouterFunctions$DefaultNestedRouterFunction
            dup
            aload 0 /* predicate */
            aload 1 /* routerFunction */
            invokespecial org.springframework.web.servlet.function.RouterFunctions$DefaultNestedRouterFunction.<init>:(Lorg/springframework/web/servlet/function/RequestPredicate;Lorg/springframework/web/servlet/function/RouterFunction;)V
            areturn
        end local 1 // org.springframework.web.servlet.function.RouterFunction routerFunction
        end local 0 // org.springframework.web.servlet.function.RequestPredicate predicate
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    1     0       predicate  Lorg/springframework/web/servlet/function/RequestPredicate;
            0    1     1  routerFunction  Lorg/springframework/web/servlet/function/RouterFunction<TT;>;
    Signature: <T::Lorg/springframework/web/servlet/function/ServerResponse;>(Lorg/springframework/web/servlet/function/RequestPredicate;Lorg/springframework/web/servlet/function/RouterFunction<TT;>;)Lorg/springframework/web/servlet/function/RouterFunction<TT;>;
    MethodParameters:
                Name  Flags
      predicate       
      routerFunction  

  public static org.springframework.web.servlet.function.RouterFunction<org.springframework.web.servlet.function.ServerResponse> resources(java.lang.String, org.springframework.core.io.Resource);
    descriptor: (Ljava/lang/String;Lorg/springframework/core/io/Resource;)Lorg/springframework/web/servlet/function/RouterFunction;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // java.lang.String pattern
        start local 1 // org.springframework.core.io.Resource location
         0: .line 142
            aload 0 /* pattern */
            aload 1 /* location */
            invokestatic org.springframework.web.servlet.function.RouterFunctions.resourceLookupFunction:(Ljava/lang/String;Lorg/springframework/core/io/Resource;)Ljava/util/function/Function;
            invokestatic org.springframework.web.servlet.function.RouterFunctions.resources:(Ljava/util/function/Function;)Lorg/springframework/web/servlet/function/RouterFunction;
            areturn
        end local 1 // org.springframework.core.io.Resource location
        end local 0 // java.lang.String pattern
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0   pattern  Ljava/lang/String;
            0    1     1  location  Lorg/springframework/core/io/Resource;
    Signature: (Ljava/lang/String;Lorg/springframework/core/io/Resource;)Lorg/springframework/web/servlet/function/RouterFunction<Lorg/springframework/web/servlet/function/ServerResponse;>;
    MethodParameters:
          Name  Flags
      pattern   
      location  

  public static java.util.function.Function<org.springframework.web.servlet.function.ServerRequest, java.util.Optional<org.springframework.core.io.Resource>> resourceLookupFunction(java.lang.String, org.springframework.core.io.Resource);
    descriptor: (Ljava/lang/String;Lorg/springframework/core/io/Resource;)Ljava/util/function/Function;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // java.lang.String pattern
        start local 1 // org.springframework.core.io.Resource location
         0: .line 161
            new org.springframework.web.servlet.function.PathResourceLookupFunction
            dup
            aload 0 /* pattern */
            aload 1 /* location */
            invokespecial org.springframework.web.servlet.function.PathResourceLookupFunction.<init>:(Ljava/lang/String;Lorg/springframework/core/io/Resource;)V
            areturn
        end local 1 // org.springframework.core.io.Resource location
        end local 0 // java.lang.String pattern
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0   pattern  Ljava/lang/String;
            0    1     1  location  Lorg/springframework/core/io/Resource;
    Signature: (Ljava/lang/String;Lorg/springframework/core/io/Resource;)Ljava/util/function/Function<Lorg/springframework/web/servlet/function/ServerRequest;Ljava/util/Optional<Lorg/springframework/core/io/Resource;>;>;
    MethodParameters:
          Name  Flags
      pattern   
      location  

  public static org.springframework.web.servlet.function.RouterFunction<org.springframework.web.servlet.function.ServerResponse> resources(java.util.function.Function<org.springframework.web.servlet.function.ServerRequest, java.util.Optional<org.springframework.core.io.Resource>>);
    descriptor: (Ljava/util/function/Function;)Lorg/springframework/web/servlet/function/RouterFunction;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // java.util.function.Function lookupFunction
         0: .line 172
            new org.springframework.web.servlet.function.RouterFunctions$ResourcesRouterFunction
            dup
            aload 0 /* lookupFunction */
            invokespecial org.springframework.web.servlet.function.RouterFunctions$ResourcesRouterFunction.<init>:(Ljava/util/function/Function;)V
            areturn
        end local 0 // java.util.function.Function lookupFunction
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    1     0  lookupFunction  Ljava/util/function/Function<Lorg/springframework/web/servlet/function/ServerRequest;Ljava/util/Optional<Lorg/springframework/core/io/Resource;>;>;
    Signature: (Ljava/util/function/Function<Lorg/springframework/web/servlet/function/ServerRequest;Ljava/util/Optional<Lorg/springframework/core/io/Resource;>;>;)Lorg/springframework/web/servlet/function/RouterFunction<Lorg/springframework/web/servlet/function/ServerResponse;>;
    MethodParameters:
                Name  Flags
      lookupFunction  

  public static <T extends org.springframework.web.servlet.function.ServerResponse> org.springframework.web.servlet.function.RouterFunction<T> changeParser(org.springframework.web.servlet.function.RouterFunction<T>, org.springframework.web.util.pattern.PathPatternParser);
    descriptor: (Lorg/springframework/web/servlet/function/RouterFunction;Lorg/springframework/web/util/pattern/PathPatternParser;)Lorg/springframework/web/servlet/function/RouterFunction;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // org.springframework.web.servlet.function.RouterFunction routerFunction
        start local 1 // org.springframework.web.util.pattern.PathPatternParser parser
         0: .line 187
            aload 0 /* routerFunction */
            ldc "RouterFunction must not be null"
            invokestatic org.springframework.util.Assert.notNull:(Ljava/lang/Object;Ljava/lang/String;)V
         1: .line 188
            aload 1 /* parser */
            ldc "Parser must not be null"
            invokestatic org.springframework.util.Assert.notNull:(Ljava/lang/Object;Ljava/lang/String;)V
         2: .line 190
            new org.springframework.web.servlet.function.ChangePathPatternParserVisitor
            dup
            aload 1 /* parser */
            invokespecial org.springframework.web.servlet.function.ChangePathPatternParserVisitor.<init>:(Lorg/springframework/web/util/pattern/PathPatternParser;)V
            astore 2 /* visitor */
        start local 2 // org.springframework.web.servlet.function.ChangePathPatternParserVisitor visitor
         3: .line 191
            aload 0 /* routerFunction */
            aload 2 /* visitor */
            invokeinterface org.springframework.web.servlet.function.RouterFunction.accept:(Lorg/springframework/web/servlet/function/RouterFunctions$Visitor;)V
         4: .line 192
            aload 0 /* routerFunction */
            areturn
        end local 2 // org.springframework.web.servlet.function.ChangePathPatternParserVisitor visitor
        end local 1 // org.springframework.web.util.pattern.PathPatternParser parser
        end local 0 // org.springframework.web.servlet.function.RouterFunction routerFunction
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    5     0  routerFunction  Lorg/springframework/web/servlet/function/RouterFunction<TT;>;
            0    5     1          parser  Lorg/springframework/web/util/pattern/PathPatternParser;
            3    5     2         visitor  Lorg/springframework/web/servlet/function/ChangePathPatternParserVisitor;
    Signature: <T::Lorg/springframework/web/servlet/function/ServerResponse;>(Lorg/springframework/web/servlet/function/RouterFunction<TT;>;Lorg/springframework/web/util/pattern/PathPatternParser;)Lorg/springframework/web/servlet/function/RouterFunction<TT;>;
    MethodParameters:
                Name  Flags
      routerFunction  
      parser          

  static org.apache.commons.logging.Log access$0();
    descriptor: ()Lorg/apache/commons/logging/Log;
    flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 50
            getstatic org.springframework.web.servlet.function.RouterFunctions.logger:Lorg/apache/commons/logging/Log;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
}
SourceFile: "RouterFunctions.java"
NestMembers:
  org.springframework.web.servlet.function.RouterFunctions$AbstractRouterFunction  org.springframework.web.servlet.function.RouterFunctions$AttributesRouterFunction  org.springframework.web.servlet.function.RouterFunctions$Builder  org.springframework.web.servlet.function.RouterFunctions$DefaultNestedRouterFunction  org.springframework.web.servlet.function.RouterFunctions$DefaultRouterFunction  org.springframework.web.servlet.function.RouterFunctions$DifferentComposedRouterFunction  org.springframework.web.servlet.function.RouterFunctions$FilteredRouterFunction  org.springframework.web.servlet.function.RouterFunctions$ResourcesRouterFunction  org.springframework.web.servlet.function.RouterFunctions$SameComposedRouterFunction  org.springframework.web.servlet.function.RouterFunctions$Visitor
InnerClasses:
  abstract AbstractRouterFunction = org.springframework.web.servlet.function.RouterFunctions$AbstractRouterFunction of org.springframework.web.servlet.function.RouterFunctions
  final AttributesRouterFunction = org.springframework.web.servlet.function.RouterFunctions$AttributesRouterFunction of org.springframework.web.servlet.function.RouterFunctions
  public abstract Builder = org.springframework.web.servlet.function.RouterFunctions$Builder of org.springframework.web.servlet.function.RouterFunctions
  private final DefaultNestedRouterFunction = org.springframework.web.servlet.function.RouterFunctions$DefaultNestedRouterFunction of org.springframework.web.servlet.function.RouterFunctions
  private final DefaultRouterFunction = org.springframework.web.servlet.function.RouterFunctions$DefaultRouterFunction of org.springframework.web.servlet.function.RouterFunctions
  final DifferentComposedRouterFunction = org.springframework.web.servlet.function.RouterFunctions$DifferentComposedRouterFunction of org.springframework.web.servlet.function.RouterFunctions
  final FilteredRouterFunction = org.springframework.web.servlet.function.RouterFunctions$FilteredRouterFunction of org.springframework.web.servlet.function.RouterFunctions
  private ResourcesRouterFunction = org.springframework.web.servlet.function.RouterFunctions$ResourcesRouterFunction of org.springframework.web.servlet.function.RouterFunctions
  final SameComposedRouterFunction = org.springframework.web.servlet.function.RouterFunctions$SameComposedRouterFunction of org.springframework.web.servlet.function.RouterFunctions
  public abstract Visitor = org.springframework.web.servlet.function.RouterFunctions$Visitor of org.springframework.web.servlet.function.RouterFunctions