public interface org.springframework.web.servlet.function.RouterFunction<T extends org.springframework.web.servlet.function.ServerResponse>
  minor version: 0
  major version: 59
  flags: flags: (0x0601) ACC_PUBLIC, ACC_INTERFACE, ACC_ABSTRACT
  this_class: org.springframework.web.servlet.function.RouterFunction
  super_class: java.lang.Object
{
  public abstract java.util.Optional<org.springframework.web.servlet.function.HandlerFunction<T>> route(org.springframework.web.servlet.function.ServerRequest);
    descriptor: (Lorg/springframework/web/servlet/function/ServerRequest;)Ljava/util/Optional;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Signature: (Lorg/springframework/web/servlet/function/ServerRequest;)Ljava/util/Optional<Lorg/springframework/web/servlet/function/HandlerFunction<TT;>;>;
    MethodParameters:
         Name  Flags
      request  

  public org.springframework.web.servlet.function.RouterFunction<T> and(org.springframework.web.servlet.function.RouterFunction<T>);
    descriptor: (Lorg/springframework/web/servlet/function/RouterFunction;)Lorg/springframework/web/servlet/function/RouterFunction;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // org.springframework.web.servlet.function.RouterFunction this
        start local 1 // org.springframework.web.servlet.function.RouterFunction other
         0: .line 55
            new org.springframework.web.servlet.function.RouterFunctions$SameComposedRouterFunction
            dup
            aload 0 /* this */
            aload 1 /* other */
            invokespecial org.springframework.web.servlet.function.RouterFunctions$SameComposedRouterFunction.<init>:(Lorg/springframework/web/servlet/function/RouterFunction;Lorg/springframework/web/servlet/function/RouterFunction;)V
            areturn
        end local 1 // org.springframework.web.servlet.function.RouterFunction other
        end local 0 // org.springframework.web.servlet.function.RouterFunction this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Lorg/springframework/web/servlet/function/RouterFunction<TT;>;
            0    1     1  other  Lorg/springframework/web/servlet/function/RouterFunction<TT;>;
    Signature: (Lorg/springframework/web/servlet/function/RouterFunction<TT;>;)Lorg/springframework/web/servlet/function/RouterFunction<TT;>;
    MethodParameters:
       Name  Flags
      other  

  public org.springframework.web.servlet.function.RouterFunction<?> andOther(org.springframework.web.servlet.function.RouterFunction<?>);
    descriptor: (Lorg/springframework/web/servlet/function/RouterFunction;)Lorg/springframework/web/servlet/function/RouterFunction;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // org.springframework.web.servlet.function.RouterFunction this
        start local 1 // org.springframework.web.servlet.function.RouterFunction other
         0: .line 68
            new org.springframework.web.servlet.function.RouterFunctions$DifferentComposedRouterFunction
            dup
            aload 0 /* this */
            aload 1 /* other */
            invokespecial org.springframework.web.servlet.function.RouterFunctions$DifferentComposedRouterFunction.<init>:(Lorg/springframework/web/servlet/function/RouterFunction;Lorg/springframework/web/servlet/function/RouterFunction;)V
            areturn
        end local 1 // org.springframework.web.servlet.function.RouterFunction other
        end local 0 // org.springframework.web.servlet.function.RouterFunction this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Lorg/springframework/web/servlet/function/RouterFunction<TT;>;
            0    1     1  other  Lorg/springframework/web/servlet/function/RouterFunction<*>;
    Signature: (Lorg/springframework/web/servlet/function/RouterFunction<*>;)Lorg/springframework/web/servlet/function/RouterFunction<*>;
    MethodParameters:
       Name  Flags
      other  

  public org.springframework.web.servlet.function.RouterFunction<T> andRoute(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: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.springframework.web.servlet.function.RouterFunction this
        start local 1 // org.springframework.web.servlet.function.RequestPredicate predicate
        start local 2 // org.springframework.web.servlet.function.HandlerFunction handlerFunction
         0: .line 83
            aload 0 /* this */
            aload 1 /* predicate */
            aload 2 /* handlerFunction */
            invokestatic org.springframework.web.servlet.function.RouterFunctions.route:(Lorg/springframework/web/servlet/function/RequestPredicate;Lorg/springframework/web/servlet/function/HandlerFunction;)Lorg/springframework/web/servlet/function/RouterFunction;
            invokeinterface org.springframework.web.servlet.function.RouterFunction.and:(Lorg/springframework/web/servlet/function/RouterFunction;)Lorg/springframework/web/servlet/function/RouterFunction;
            areturn
        end local 2 // org.springframework.web.servlet.function.HandlerFunction handlerFunction
        end local 1 // org.springframework.web.servlet.function.RequestPredicate predicate
        end local 0 // org.springframework.web.servlet.function.RouterFunction this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    1     0             this  Lorg/springframework/web/servlet/function/RouterFunction<TT;>;
            0    1     1        predicate  Lorg/springframework/web/servlet/function/RequestPredicate;
            0    1     2  handlerFunction  Lorg/springframework/web/servlet/function/HandlerFunction<TT;>;
    Signature: (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 org.springframework.web.servlet.function.RouterFunction<T> andNest(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: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.springframework.web.servlet.function.RouterFunction this
        start local 1 // org.springframework.web.servlet.function.RequestPredicate predicate
        start local 2 // org.springframework.web.servlet.function.RouterFunction routerFunction
         0: .line 98
            aload 0 /* this */
            aload 1 /* predicate */
            aload 2 /* routerFunction */
            invokestatic org.springframework.web.servlet.function.RouterFunctions.nest:(Lorg/springframework/web/servlet/function/RequestPredicate;Lorg/springframework/web/servlet/function/RouterFunction;)Lorg/springframework/web/servlet/function/RouterFunction;
            invokeinterface org.springframework.web.servlet.function.RouterFunction.and:(Lorg/springframework/web/servlet/function/RouterFunction;)Lorg/springframework/web/servlet/function/RouterFunction;
            areturn
        end local 2 // org.springframework.web.servlet.function.RouterFunction routerFunction
        end local 1 // org.springframework.web.servlet.function.RequestPredicate predicate
        end local 0 // org.springframework.web.servlet.function.RouterFunction this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    1     0            this  Lorg/springframework/web/servlet/function/RouterFunction<TT;>;
            0    1     1       predicate  Lorg/springframework/web/servlet/function/RequestPredicate;
            0    1     2  routerFunction  Lorg/springframework/web/servlet/function/RouterFunction<TT;>;
    Signature: (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 <S extends org.springframework.web.servlet.function.ServerResponse> org.springframework.web.servlet.function.RouterFunction<S> filter(org.springframework.web.servlet.function.HandlerFilterFunction<T, S>);
    descriptor: (Lorg/springframework/web/servlet/function/HandlerFilterFunction;)Lorg/springframework/web/servlet/function/RouterFunction;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // org.springframework.web.servlet.function.RouterFunction this
        start local 1 // org.springframework.web.servlet.function.HandlerFilterFunction filterFunction
         0: .line 109
            new org.springframework.web.servlet.function.RouterFunctions$FilteredRouterFunction
            dup
            aload 0 /* this */
            aload 1 /* filterFunction */
            invokespecial org.springframework.web.servlet.function.RouterFunctions$FilteredRouterFunction.<init>:(Lorg/springframework/web/servlet/function/RouterFunction;Lorg/springframework/web/servlet/function/HandlerFilterFunction;)V
            areturn
        end local 1 // org.springframework.web.servlet.function.HandlerFilterFunction filterFunction
        end local 0 // org.springframework.web.servlet.function.RouterFunction this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    1     0            this  Lorg/springframework/web/servlet/function/RouterFunction<TT;>;
            0    1     1  filterFunction  Lorg/springframework/web/servlet/function/HandlerFilterFunction<TT;TS;>;
    Signature: <S::Lorg/springframework/web/servlet/function/ServerResponse;>(Lorg/springframework/web/servlet/function/HandlerFilterFunction<TT;TS;>;)Lorg/springframework/web/servlet/function/RouterFunction<TS;>;
    MethodParameters:
                Name  Flags
      filterFunction  

  public void accept(org.springframework.web.servlet.function.RouterFunctions$Visitor);
    descriptor: (Lorg/springframework/web/servlet/function/RouterFunctions$Visitor;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.springframework.web.servlet.function.RouterFunction this
        start local 1 // org.springframework.web.servlet.function.RouterFunctions$Visitor visitor
         0: .line 120
            aload 1 /* visitor */
            aload 0 /* this */
            invokeinterface org.springframework.web.servlet.function.RouterFunctions$Visitor.unknown:(Lorg/springframework/web/servlet/function/RouterFunction;)V
         1: .line 121
            return
        end local 1 // org.springframework.web.servlet.function.RouterFunctions$Visitor visitor
        end local 0 // org.springframework.web.servlet.function.RouterFunction this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lorg/springframework/web/servlet/function/RouterFunction<TT;>;
            0    2     1  visitor  Lorg/springframework/web/servlet/function/RouterFunctions$Visitor;
    MethodParameters:
         Name  Flags
      visitor  

  public org.springframework.web.servlet.function.RouterFunction<T> withAttribute(java.lang.String, );
    descriptor: (Ljava/lang/String;Ljava/lang/Object;)Lorg/springframework/web/servlet/function/RouterFunction;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // org.springframework.web.servlet.function.RouterFunction this
        start local 1 // java.lang.String name
        start local 2 // java.lang.Object value
         0: .line 131
            aload 1 /* name */
            ldc "Name must not be empty"
            invokestatic org.springframework.util.Assert.hasLength:(Ljava/lang/String;Ljava/lang/String;)V
         1: .line 132
            aload 2 /* value */
            ldc "Value must not be null"
            invokestatic org.springframework.util.Assert.notNull:(Ljava/lang/Object;Ljava/lang/String;)V
         2: .line 134
            new java.util.LinkedHashMap
            dup
            invokespecial java.util.LinkedHashMap.<init>:()V
            astore 3 /* attributes */
        start local 3 // java.util.Map attributes
         3: .line 135
            aload 3 /* attributes */
            aload 1 /* name */
            aload 2 /* value */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         4: .line 136
            new org.springframework.web.servlet.function.RouterFunctions$AttributesRouterFunction
            dup
            aload 0 /* this */
            aload 3 /* attributes */
            invokespecial org.springframework.web.servlet.function.RouterFunctions$AttributesRouterFunction.<init>:(Lorg/springframework/web/servlet/function/RouterFunction;Ljava/util/Map;)V
            areturn
        end local 3 // java.util.Map attributes
        end local 2 // java.lang.Object value
        end local 1 // java.lang.String name
        end local 0 // org.springframework.web.servlet.function.RouterFunction this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    5     0        this  Lorg/springframework/web/servlet/function/RouterFunction<TT;>;
            0    5     1        name  Ljava/lang/String;
            0    5     2       value  Ljava/lang/Object;
            3    5     3  attributes  Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;
    Signature: (Ljava/lang/String;Ljava/lang/Object;)Lorg/springframework/web/servlet/function/RouterFunction<TT;>;
    MethodParameters:
       Name  Flags
      name   
      value  

  public org.springframework.web.servlet.function.RouterFunction<T> withAttributes(java.util.function.Consumer<java.util.Map<java.lang.String, java.lang.Object>>);
    descriptor: (Ljava/util/function/Consumer;)Lorg/springframework/web/servlet/function/RouterFunction;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // org.springframework.web.servlet.function.RouterFunction this
        start local 1 // java.util.function.Consumer attributesConsumer
         0: .line 150
            aload 1 /* attributesConsumer */
            ldc "AttributesConsumer must not be null"
            invokestatic org.springframework.util.Assert.notNull:(Ljava/lang/Object;Ljava/lang/String;)V
         1: .line 152
            new java.util.LinkedHashMap
            dup
            invokespecial java.util.LinkedHashMap.<init>:()V
            astore 2 /* attributes */
        start local 2 // java.util.Map attributes
         2: .line 153
            aload 1 /* attributesConsumer */
            aload 2 /* attributes */
            invokeinterface java.util.function.Consumer.accept:(Ljava/lang/Object;)V
         3: .line 154
            new org.springframework.web.servlet.function.RouterFunctions$AttributesRouterFunction
            dup
            aload 0 /* this */
            aload 2 /* attributes */
            invokespecial org.springframework.web.servlet.function.RouterFunctions$AttributesRouterFunction.<init>:(Lorg/springframework/web/servlet/function/RouterFunction;Ljava/util/Map;)V
            areturn
        end local 2 // java.util.Map attributes
        end local 1 // java.util.function.Consumer attributesConsumer
        end local 0 // org.springframework.web.servlet.function.RouterFunction this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    4     0                this  Lorg/springframework/web/servlet/function/RouterFunction<TT;>;
            0    4     1  attributesConsumer  Ljava/util/function/Consumer<Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;>;
            2    4     2          attributes  Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;
    Signature: (Ljava/util/function/Consumer<Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;>;)Lorg/springframework/web/servlet/function/RouterFunction<TT;>;
    MethodParameters:
                    Name  Flags
      attributesConsumer  
}
Signature: <T::Lorg/springframework/web/servlet/function/ServerResponse;>Ljava/lang/Object;
SourceFile: "RouterFunction.java"
InnerClasses:
  final AttributesRouterFunction = org.springframework.web.servlet.function.RouterFunctions$AttributesRouterFunction 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
  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
    RuntimeVisibleAnnotations: 
      java.lang.FunctionalInterface()