public interface org.springframework.data.util.Optionals
  minor version: 0
  major version: 59
  flags: flags: (0x0601) ACC_PUBLIC, ACC_INTERFACE, ACC_ABSTRACT
  this_class: org.springframework.data.util.Optionals
  super_class: java.lang.Object
{
  public static boolean isAnyPresent(java.util.Optional<?>[]);
    descriptor: ([Ljava/util/Optional;)Z
    flags: (0x0089) ACC_PUBLIC, ACC_STATIC, ACC_VARARGS
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.util.Optional[] optionals
         0: .line 46
            aload 0 /* optionals */
            ldc "Optionals must not be null!"
            invokestatic org.springframework.util.Assert.notNull:(Ljava/lang/Object;Ljava/lang/String;)V
         1: .line 48
            aload 0 /* optionals */
            invokestatic java.util.Arrays.stream:([Ljava/lang/Object;)Ljava/util/stream/Stream;
            invokedynamic test()Ljava/util/function/Predicate;
              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;)Z
                  java/util/Optional.isPresent()Z (5)
                  (Ljava/util/Optional;)Z
            invokeinterface java.util.stream.Stream.anyMatch:(Ljava/util/function/Predicate;)Z
            ireturn
        end local 0 // java.util.Optional[] optionals
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    2     0  optionals  [Ljava/util/Optional;
    Signature: ([Ljava/util/Optional<*>;)Z
    MethodParameters:
           Name  Flags
      optionals  

  public static <T> java.util.stream.Stream<T> toStream(java.util.Optional<? extends T>[]);
    descriptor: ([Ljava/util/Optional;)Ljava/util/stream/Stream;
    flags: (0x0089) ACC_PUBLIC, ACC_STATIC, ACC_VARARGS
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.util.Optional[] optionals
         0: .line 60
            aload 0 /* optionals */
            ldc "Optional must not be null!"
            invokestatic org.springframework.util.Assert.notNull:(Ljava/lang/Object;Ljava/lang/String;)V
         1: .line 62
            aload 0 /* optionals */
            invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
            invokeinterface java.util.List.stream:()Ljava/util/stream/Stream;
            invokedynamic apply()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/data/util/Optionals.lambda$1(Ljava/util/Optional;)Ljava/util/stream/Stream; (6 itf)
                  (Ljava/util/Optional;)Ljava/util/stream/Stream;
            invokeinterface java.util.stream.Stream.flatMap:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
            areturn
        end local 0 // java.util.Optional[] optionals
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    2     0  optionals  [Ljava/util/Optional;
    Signature: <T:Ljava/lang/Object;>([Ljava/util/Optional<+TT;>;)Ljava/util/stream/Stream<TT;>;
    RuntimeVisibleAnnotations: 
      java.lang.SafeVarargs()
    MethodParameters:
           Name  Flags
      optionals  

  public static <S, T> java.util.Optional<T> firstNonEmpty(java.lang.Iterable<S>, java.util.function.Function<S, java.util.Optional<T>>);
    descriptor: (Ljava/lang/Iterable;Ljava/util/function/Function;)Ljava/util/Optional;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // java.lang.Iterable source
        start local 1 // java.util.function.Function function
         0: .line 74
            aload 0 /* source */
            ldc "Source must not be null!"
            invokestatic org.springframework.util.Assert.notNull:(Ljava/lang/Object;Ljava/lang/String;)V
         1: .line 75
            aload 1 /* function */
            ldc "Function must not be null!"
            invokestatic org.springframework.util.Assert.notNull:(Ljava/lang/Object;Ljava/lang/String;)V
         2: .line 77
            aload 0 /* source */
            invokestatic org.springframework.data.util.Streamable.of:(Ljava/lang/Iterable;)Lorg/springframework/data/util/Streamable;
            invokeinterface org.springframework.data.util.Streamable.stream:()Ljava/util/stream/Stream;
         3: .line 78
            aload 1 /* function */
            dup
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            pop
            invokedynamic apply(Ljava/util/function/Function;)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;
                  java/util/function/Function.apply(Ljava/lang/Object;)Ljava/lang/Object; (9 itf)
                  (Ljava/lang/Object;)Ljava/util/Optional;
            invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
         4: .line 79
            invokedynamic test()Ljava/util/function/Predicate;
              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;)Z
                  java/util/Optional.isPresent()Z (5)
                  (Ljava/util/Optional;)Z
            invokeinterface java.util.stream.Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
         5: .line 80
            invokeinterface java.util.stream.Stream.findFirst:()Ljava/util/Optional;
            invokedynamic get()Ljava/util/function/Supplier;
              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;
                  java/util/Optional.empty()Ljava/util/Optional; (6)
                  ()Ljava/util/Optional;
            invokevirtual java.util.Optional.orElseGet:(Ljava/util/function/Supplier;)Ljava/lang/Object;
            checkcast java.util.Optional
         6: .line 77
            areturn
        end local 1 // java.util.function.Function function
        end local 0 // java.lang.Iterable source
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    7     0    source  Ljava/lang/Iterable<TS;>;
            0    7     1  function  Ljava/util/function/Function<TS;Ljava/util/Optional<TT;>;>;
    Signature: <S:Ljava/lang/Object;T:Ljava/lang/Object;>(Ljava/lang/Iterable<TS;>;Ljava/util/function/Function<TS;Ljava/util/Optional<TT;>;>;)Ljava/util/Optional<TT;>;
    MethodParameters:
          Name  Flags
      source    
      function  

  public static <S, T> T firstNonEmpty(java.lang.Iterable<S>, java.util.function.Function<S, T>, );
    descriptor: (Ljava/lang/Iterable;Ljava/util/function/Function;Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // java.lang.Iterable source
        start local 1 // java.util.function.Function function
        start local 2 // java.lang.Object defaultValue
         0: .line 92
            aload 0 /* source */
            ldc "Source must not be null!"
            invokestatic org.springframework.util.Assert.notNull:(Ljava/lang/Object;Ljava/lang/String;)V
         1: .line 93
            aload 1 /* function */
            ldc "Function must not be null!"
            invokestatic org.springframework.util.Assert.notNull:(Ljava/lang/Object;Ljava/lang/String;)V
         2: .line 95
            aload 0 /* source */
            invokestatic org.springframework.data.util.Streamable.of:(Ljava/lang/Iterable;)Lorg/springframework/data/util/Streamable;
            invokeinterface org.springframework.data.util.Streamable.stream:()Ljava/util/stream/Stream;
         3: .line 96
            aload 1 /* function */
            dup
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            pop
            invokedynamic apply(Ljava/util/function/Function;)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;
                  java/util/function/Function.apply(Ljava/lang/Object;)Ljava/lang/Object; (9 itf)
                  (Ljava/lang/Object;)Ljava/lang/Object;
            invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
         4: .line 97
            aload 2 /* defaultValue */
            invokedynamic test(Ljava/lang/Object;)Ljava/util/function/Predicate;
              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;)Z
                  org/springframework/data/util/Optionals.lambda$8(Ljava/lang/Object;Ljava/lang/Object;)Z (6 itf)
                  (Ljava/lang/Object;)Z
            invokeinterface java.util.stream.Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
         5: .line 98
            invokeinterface java.util.stream.Stream.findFirst:()Ljava/util/Optional;
            aload 2 /* defaultValue */
            invokevirtual java.util.Optional.orElse:(Ljava/lang/Object;)Ljava/lang/Object;
         6: .line 95
            areturn
        end local 2 // java.lang.Object defaultValue
        end local 1 // java.util.function.Function function
        end local 0 // java.lang.Iterable source
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    7     0        source  Ljava/lang/Iterable<TS;>;
            0    7     1      function  Ljava/util/function/Function<TS;TT;>;
            0    7     2  defaultValue  TT;
    Signature: <S:Ljava/lang/Object;T:Ljava/lang/Object;>(Ljava/lang/Iterable<TS;>;Ljava/util/function/Function<TS;TT;>;TT;)TT;
    MethodParameters:
              Name  Flags
      source        
      function      
      defaultValue  

  public static <T> java.util.Optional<T> firstNonEmpty(java.util.function.Supplier<java.util.Optional<T>>[]);
    descriptor: ([Ljava/util/function/Supplier;)Ljava/util/Optional;
    flags: (0x0089) ACC_PUBLIC, ACC_STATIC, ACC_VARARGS
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.util.function.Supplier[] suppliers
         0: .line 110
            aload 0 /* suppliers */
            ldc "Suppliers must not be null!"
            invokestatic org.springframework.util.Assert.notNull:(Ljava/lang/Object;Ljava/lang/String;)V
         1: .line 112
            aload 0 /* suppliers */
            invokestatic org.springframework.data.util.Streamable.of:([Ljava/lang/Object;)Lorg/springframework/data/util/Streamable;
            invokestatic org.springframework.data.util.Optionals.firstNonEmpty:(Ljava/lang/Iterable;)Ljava/util/Optional;
            areturn
        end local 0 // java.util.function.Supplier[] suppliers
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    2     0  suppliers  [Ljava/util/function/Supplier;
    Signature: <T:Ljava/lang/Object;>([Ljava/util/function/Supplier<Ljava/util/Optional<TT;>;>;)Ljava/util/Optional<TT;>;
    RuntimeVisibleAnnotations: 
      java.lang.SafeVarargs()
    MethodParameters:
           Name  Flags
      suppliers  

  public static <T> java.util.Optional<T> firstNonEmpty(java.lang.Iterable<java.util.function.Supplier<java.util.Optional<T>>>);
    descriptor: (Ljava/lang/Iterable;)Ljava/util/Optional;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.Iterable suppliers
         0: .line 123
            aload 0 /* suppliers */
            ldc "Suppliers must not be null!"
            invokestatic org.springframework.util.Assert.notNull:(Ljava/lang/Object;Ljava/lang/String;)V
         1: .line 125
            aload 0 /* suppliers */
            invokestatic org.springframework.data.util.Streamable.of:(Ljava/lang/Iterable;)Lorg/springframework/data/util/Streamable;
            invokeinterface org.springframework.data.util.Streamable.stream:()Ljava/util/stream/Stream;
         2: .line 126
            invokedynamic apply()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;
                  java/util/function/Supplier.get()Ljava/lang/Object; (9 itf)
                  (Ljava/util/function/Supplier;)Ljava/util/Optional;
            invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
         3: .line 127
            invokedynamic test()Ljava/util/function/Predicate;
              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;)Z
                  java/util/Optional.isPresent()Z (5)
                  (Ljava/util/Optional;)Z
            invokeinterface java.util.stream.Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
         4: .line 128
            invokeinterface java.util.stream.Stream.findFirst:()Ljava/util/Optional;
            invokestatic java.util.Optional.empty:()Ljava/util/Optional;
            invokevirtual java.util.Optional.orElse:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.util.Optional
         5: .line 125
            areturn
        end local 0 // java.lang.Iterable suppliers
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    6     0  suppliers  Ljava/lang/Iterable<Ljava/util/function/Supplier<Ljava/util/Optional<TT;>;>;>;
    Signature: <T:Ljava/lang/Object;>(Ljava/lang/Iterable<Ljava/util/function/Supplier<Ljava/util/Optional<TT;>;>;>;)Ljava/util/Optional<TT;>;
    MethodParameters:
           Name  Flags
      suppliers  

  public static <T> java.util.Optional<T> next(java.util.Iterator<T>);
    descriptor: (Ljava/util/Iterator;)Ljava/util/Optional;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.util.Iterator iterator
         0: .line 140
            aload 0 /* iterator */
            ldc "Iterator must not be null!"
            invokestatic org.springframework.util.Assert.notNull:(Ljava/lang/Object;Ljava/lang/String;)V
         1: .line 142
            aload 0 /* iterator */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifeq 2
            aload 0 /* iterator */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            invokestatic java.util.Optional.of:(Ljava/lang/Object;)Ljava/util/Optional;
            goto 3
      StackMap locals:
      StackMap stack:
         2: invokestatic java.util.Optional.empty:()Ljava/util/Optional;
      StackMap locals:
      StackMap stack: java.util.Optional
         3: areturn
        end local 0 // java.util.Iterator iterator
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    4     0  iterator  Ljava/util/Iterator<TT;>;
    Signature: <T:Ljava/lang/Object;>(Ljava/util/Iterator<TT;>;)Ljava/util/Optional<TT;>;
    MethodParameters:
          Name  Flags
      iterator  

  public static <T, S> java.util.Optional<org.springframework.data.util.Pair<T, S>> withBoth(java.util.Optional<T>, java.util.Optional<S>);
    descriptor: (Ljava/util/Optional;Ljava/util/Optional;)Ljava/util/Optional;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // java.util.Optional left
        start local 1 // java.util.Optional right
         0: .line 154
            aload 0 /* left */
            aload 1 /* right */
            invokedynamic apply(Ljava/util/Optional;)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/data/util/Optionals.lambda$11(Ljava/util/Optional;Ljava/lang/Object;)Ljava/util/Optional; (6 itf)
                  (Ljava/lang/Object;)Ljava/util/Optional;
            invokevirtual java.util.Optional.flatMap:(Ljava/util/function/Function;)Ljava/util/Optional;
            areturn
        end local 1 // java.util.Optional right
        end local 0 // java.util.Optional left
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   left  Ljava/util/Optional<TT;>;
            0    1     1  right  Ljava/util/Optional<TS;>;
    Signature: <T:Ljava/lang/Object;S:Ljava/lang/Object;>(Ljava/util/Optional<TT;>;Ljava/util/Optional<TS;>;)Ljava/util/Optional<Lorg/springframework/data/util/Pair<TT;TS;>;>;
    MethodParameters:
       Name  Flags
      left   
      right  

  public static <T, S> void ifAllPresent(java.util.Optional<T>, java.util.Optional<S>, java.util.function.BiConsumer<T, S>);
    descriptor: (Ljava/util/Optional;Ljava/util/Optional;Ljava/util/function/BiConsumer;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // java.util.Optional left
        start local 1 // java.util.Optional right
        start local 2 // java.util.function.BiConsumer consumer
         0: .line 166
            aload 0 /* left */
            ldc "Optional must not be null!"
            invokestatic org.springframework.util.Assert.notNull:(Ljava/lang/Object;Ljava/lang/String;)V
         1: .line 167
            aload 1 /* right */
            ldc "Optional must not be null!"
            invokestatic org.springframework.util.Assert.notNull:(Ljava/lang/Object;Ljava/lang/String;)V
         2: .line 168
            aload 2 /* consumer */
            ldc "Consumer must not be null!"
            invokestatic org.springframework.util.Assert.notNull:(Ljava/lang/Object;Ljava/lang/String;)V
         3: .line 170
            aload 0 /* left */
            aload 1 /* right */
            aload 2 /* consumer */
            invokedynamic apply(Ljava/util/function/BiConsumer;)Ljava/util/function/BiFunction;
              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;)Ljava/lang/Object;
                  org/springframework/data/util/Optionals.lambda$13(Ljava/util/function/BiConsumer;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; (6 itf)
                  (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            invokestatic org.springframework.data.util.Optionals.mapIfAllPresent:(Ljava/util/Optional;Ljava/util/Optional;Ljava/util/function/BiFunction;)Ljava/util/Optional;
            pop
         4: .line 174
            return
        end local 2 // java.util.function.BiConsumer consumer
        end local 1 // java.util.Optional right
        end local 0 // java.util.Optional left
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    5     0      left  Ljava/util/Optional<TT;>;
            0    5     1     right  Ljava/util/Optional<TS;>;
            0    5     2  consumer  Ljava/util/function/BiConsumer<TT;TS;>;
    Signature: <T:Ljava/lang/Object;S:Ljava/lang/Object;>(Ljava/util/Optional<TT;>;Ljava/util/Optional<TS;>;Ljava/util/function/BiConsumer<TT;TS;>;)V
    MethodParameters:
          Name  Flags
      left      
      right     
      consumer  

  public static <T, S, R> java.util.Optional<R> mapIfAllPresent(java.util.Optional<T>, java.util.Optional<S>, java.util.function.BiFunction<T, S, R>);
    descriptor: (Ljava/util/Optional;Ljava/util/Optional;Ljava/util/function/BiFunction;)Ljava/util/Optional;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // java.util.Optional left
        start local 1 // java.util.Optional right
        start local 2 // java.util.function.BiFunction function
         0: .line 187
            aload 0 /* left */
            ldc "Optional must not be null!"
            invokestatic org.springframework.util.Assert.notNull:(Ljava/lang/Object;Ljava/lang/String;)V
         1: .line 188
            aload 1 /* right */
            ldc "Optional must not be null!"
            invokestatic org.springframework.util.Assert.notNull:(Ljava/lang/Object;Ljava/lang/String;)V
         2: .line 189
            aload 2 /* function */
            ldc "BiFunctionmust not be null!"
            invokestatic org.springframework.util.Assert.notNull:(Ljava/lang/Object;Ljava/lang/String;)V
         3: .line 191
            aload 0 /* left */
            aload 2 /* function */
            aload 1 /* right */
            invokedynamic apply(Ljava/util/function/BiFunction;Ljava/util/Optional;)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/data/util/Optionals.lambda$14(Ljava/util/function/BiFunction;Ljava/util/Optional;Ljava/lang/Object;)Ljava/util/Optional; (6 itf)
                  (Ljava/lang/Object;)Ljava/util/Optional;
            invokevirtual java.util.Optional.flatMap:(Ljava/util/function/Function;)Ljava/util/Optional;
            areturn
        end local 2 // java.util.function.BiFunction function
        end local 1 // java.util.Optional right
        end local 0 // java.util.Optional left
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    4     0      left  Ljava/util/Optional<TT;>;
            0    4     1     right  Ljava/util/Optional<TS;>;
            0    4     2  function  Ljava/util/function/BiFunction<TT;TS;TR;>;
    Signature: <T:Ljava/lang/Object;S:Ljava/lang/Object;R:Ljava/lang/Object;>(Ljava/util/Optional<TT;>;Ljava/util/Optional<TS;>;Ljava/util/function/BiFunction<TT;TS;TR;>;)Ljava/util/Optional<TR;>;
    MethodParameters:
          Name  Flags
      left      
      right     
      function  

  public static <T> void ifPresentOrElse(java.util.Optional<T>, java.util.function.Consumer<? super T>, java.lang.Runnable);
    descriptor: (Ljava/util/Optional;Ljava/util/function/Consumer;Ljava/lang/Runnable;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // java.util.Optional optional
        start local 1 // java.util.function.Consumer consumer
        start local 2 // java.lang.Runnable runnable
         0: .line 203
            aload 0 /* optional */
            ldc "Optional must not be null!"
            invokestatic org.springframework.util.Assert.notNull:(Ljava/lang/Object;Ljava/lang/String;)V
         1: .line 204
            aload 1 /* consumer */
            ldc "Consumer must not be null!"
            invokestatic org.springframework.util.Assert.notNull:(Ljava/lang/Object;Ljava/lang/String;)V
         2: .line 205
            aload 2 /* runnable */
            ldc "Runnable must not be null!"
            invokestatic org.springframework.util.Assert.notNull:(Ljava/lang/Object;Ljava/lang/String;)V
         3: .line 207
            aload 0 /* optional */
            invokevirtual java.util.Optional.isPresent:()Z
            ifeq 6
         4: .line 208
            aload 0 /* optional */
            aload 1 /* consumer */
            invokevirtual java.util.Optional.ifPresent:(Ljava/util/function/Consumer;)V
         5: .line 209
            goto 7
         6: .line 210
      StackMap locals:
      StackMap stack:
            aload 2 /* runnable */
            invokeinterface java.lang.Runnable.run:()V
         7: .line 212
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.lang.Runnable runnable
        end local 1 // java.util.function.Consumer consumer
        end local 0 // java.util.Optional optional
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    8     0  optional  Ljava/util/Optional<TT;>;
            0    8     1  consumer  Ljava/util/function/Consumer<-TT;>;
            0    8     2  runnable  Ljava/lang/Runnable;
    Signature: <T:Ljava/lang/Object;>(Ljava/util/Optional<TT;>;Ljava/util/function/Consumer<-TT;>;Ljava/lang/Runnable;)V
    MethodParameters:
          Name  Flags
      optional  
      consumer  
      runnable  

  private static java.util.stream.Stream lambda$1(java.util.Optional);
    descriptor: (Ljava/util/Optional;)Ljava/util/stream/Stream;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.util.Optional it
         0: .line 62
            aload 0 /* it */
            invokedynamic apply()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;
                  java/util/stream/Stream.of(Ljava/lang/Object;)Ljava/util/stream/Stream; (6 itf)
                  (Ljava/lang/Object;)Ljava/util/stream/Stream;
            invokevirtual java.util.Optional.map:(Ljava/util/function/Function;)Ljava/util/Optional;
            invokedynamic get()Ljava/util/function/Supplier;
              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;
                  java/util/stream/Stream.empty()Ljava/util/stream/Stream; (6 itf)
                  ()Ljava/util/stream/Stream;
            invokevirtual java.util.Optional.orElseGet:(Ljava/util/function/Supplier;)Ljava/lang/Object;
            checkcast java.util.stream.Stream
            areturn
        end local 0 // java.util.Optional it
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0    it  Ljava/util/Optional<+TT;>;

  private static boolean lambda$8(java.lang.Object, java.lang.Object);
    descriptor: (Ljava/lang/Object;Ljava/lang/Object;)Z
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 1 // java.lang.Object it
         0: .line 97
            aload 1 /* it */
            aload 0
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifeq 1
            iconst_0
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_1
      StackMap locals:
      StackMap stack: int
         2: ireturn
        end local 1 // java.lang.Object it
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     1    it  TT;

  private static java.util.Optional lambda$11(java.util.Optional, java.lang.Object);
    descriptor: (Ljava/util/Optional;Ljava/lang/Object;)Ljava/util/Optional;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 1 // java.lang.Object l
         0: .line 154
            aload 0
            aload 1 /* l */
            invokedynamic apply(Ljava/lang/Object;)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/data/util/Optionals.lambda$12(Ljava/lang/Object;Ljava/lang/Object;)Lorg/springframework/data/util/Pair; (6 itf)
                  (Ljava/lang/Object;)Lorg/springframework/data/util/Pair;
            invokevirtual java.util.Optional.map:(Ljava/util/function/Function;)Ljava/util/Optional;
            areturn
        end local 1 // java.lang.Object l
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     1     l  TT;

  private static java.lang.Object lambda$13(java.util.function.BiConsumer, java.lang.Object, java.lang.Object);
    descriptor: (Ljava/util/function/BiConsumer;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=3, args_size=3
        start local 1 // java.lang.Object l
        start local 2 // java.lang.Object r
         0: .line 171
            aload 0
            aload 1 /* l */
            aload 2 /* r */
            invokeinterface java.util.function.BiConsumer.accept:(Ljava/lang/Object;Ljava/lang/Object;)V
         1: .line 172
            aconst_null
            areturn
        end local 2 // java.lang.Object r
        end local 1 // java.lang.Object l
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     1     l  TT;
            0    2     2     r  TS;

  private static java.util.Optional lambda$14(java.util.function.BiFunction, java.util.Optional, java.lang.Object);
    descriptor: (Ljava/util/function/BiFunction;Ljava/util/Optional;Ljava/lang/Object;)Ljava/util/Optional;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=3, args_size=3
        start local 2 // java.lang.Object l
         0: .line 191
            aload 1
            aload 0
            aload 2 /* l */
            invokedynamic apply(Ljava/util/function/BiFunction;Ljava/lang/Object;)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/data/util/Optionals.lambda$15(Ljava/util/function/BiFunction;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; (6 itf)
                  (Ljava/lang/Object;)Ljava/lang/Object;
            invokevirtual java.util.Optional.map:(Ljava/util/function/Function;)Ljava/util/Optional;
            areturn
        end local 2 // java.lang.Object l
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     2     l  TT;

  private static org.springframework.data.util.Pair lambda$12(java.lang.Object, java.lang.Object);
    descriptor: (Ljava/lang/Object;Ljava/lang/Object;)Lorg/springframework/data/util/Pair;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 1 // java.lang.Object r
         0: .line 154
            aload 0
            aload 1 /* r */
            invokestatic org.springframework.data.util.Pair.of:(Ljava/lang/Object;Ljava/lang/Object;)Lorg/springframework/data/util/Pair;
            areturn
        end local 1 // java.lang.Object r
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     1     r  TS;

  private static java.lang.Object lambda$15(java.util.function.BiFunction, java.lang.Object, java.lang.Object);
    descriptor: (Ljava/util/function/BiFunction;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=3, args_size=3
        start local 2 // java.lang.Object r
         0: .line 191
            aload 0
            aload 1
            aload 2 /* r */
            invokeinterface java.util.function.BiFunction.apply:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            areturn
        end local 2 // java.lang.Object r
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     2     r  TS;
}
SourceFile: "Optionals.java"
InnerClasses:
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles