public class org.springframework.data.convert.CustomConversions
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.springframework.data.convert.CustomConversions
  super_class: java.lang.Object
{
  private static final java.lang.String READ_CONVERTER_NOT_SIMPLE;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "Registering converter from %s to %s as reading converter although it doesn't convert from a store-supported type! You might want to check your annotation setup at the converter implementation."

  private static final java.lang.String WRITE_CONVERTER_NOT_SIMPLE;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "Registering converter from %s to %s as writing converter although it doesn't convert to a store-supported type! You might want to check your annotation setup at the converter implementation."

  private static final java.lang.String NOT_A_CONVERTER;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "Converter %s is neither a Spring Converter, GenericConverter or ConverterFactory!"

  private static final java.util.List<java.lang.Object> DEFAULT_CONVERTERS;
    descriptor: Ljava/util/List;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: Ljava/util/List<Ljava/lang/Object;>;

  private final org.springframework.data.mapping.model.SimpleTypeHolder simpleTypeHolder;
    descriptor: Lorg/springframework/data/mapping/model/SimpleTypeHolder;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.util.List<java.lang.Object> converters;
    descriptor: Ljava/util/List;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/List<Ljava/lang/Object;>;

  private final java.util.Set<org.springframework.core.convert.converter.GenericConverter$ConvertiblePair> readingPairs;
    descriptor: Ljava/util/Set;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/Set<Lorg/springframework/core/convert/converter/GenericConverter$ConvertiblePair;>;

  private final java.util.Set<org.springframework.core.convert.converter.GenericConverter$ConvertiblePair> writingPairs;
    descriptor: Ljava/util/Set;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/Set<Lorg/springframework/core/convert/converter/GenericConverter$ConvertiblePair;>;

  private final java.util.Set<java.lang.Class<?>> customSimpleTypes;
    descriptor: Ljava/util/Set;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/Set<Ljava/lang/Class<*>;>;

  private final org.springframework.data.convert.CustomConversions$ConversionTargetsCache customReadTargetTypes;
    descriptor: Lorg/springframework/data/convert/CustomConversions$ConversionTargetsCache;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final org.springframework.data.convert.CustomConversions$ConversionTargetsCache customWriteTargetTypes;
    descriptor: Lorg/springframework/data/convert/CustomConversions$ConversionTargetsCache;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.util.function.Function<org.springframework.core.convert.converter.GenericConverter$ConvertiblePair, java.lang.Class<?>> getReadTarget;
    descriptor: Ljava/util/function/Function;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/function/Function<Lorg/springframework/core/convert/converter/GenericConverter$ConvertiblePair;Ljava/lang/Class<*>;>;

  private java.util.function.Function<org.springframework.core.convert.converter.GenericConverter$ConvertiblePair, java.lang.Class<?>> getWriteTarget;
    descriptor: Ljava/util/function/Function;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/function/Function<Lorg/springframework/core/convert/converter/GenericConverter$ConvertiblePair;Ljava/lang/Class<*>;>;

  private java.util.function.Function<org.springframework.core.convert.converter.GenericConverter$ConvertiblePair, java.lang.Class<?>> getRawWriteTarget;
    descriptor: Ljava/util/function/Function;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/function/Function<Lorg/springframework/core/convert/converter/GenericConverter$ConvertiblePair;Ljava/lang/Class<*>;>;

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=1, args_size=0
         0: .line 64
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 0 /* defaults */
        start local 0 // java.util.List defaults
         1: .line 66
            aload 0 /* defaults */
            invokestatic org.springframework.data.convert.JodaTimeConverters.getConvertersToRegister:()Ljava/util/Collection;
            invokeinterface java.util.List.addAll:(Ljava/util/Collection;)Z
            pop
         2: .line 67
            aload 0 /* defaults */
            invokestatic org.springframework.data.convert.Jsr310Converters.getConvertersToRegister:()Ljava/util/Collection;
            invokeinterface java.util.List.addAll:(Ljava/util/Collection;)Z
            pop
         3: .line 68
            aload 0 /* defaults */
            invokestatic org.springframework.data.convert.ThreeTenBackPortConverters.getConvertersToRegister:()Ljava/util/Collection;
            invokeinterface java.util.List.addAll:(Ljava/util/Collection;)Z
            pop
         4: .line 70
            aload 0 /* defaults */
            invokestatic java.util.Collections.unmodifiableList:(Ljava/util/List;)Ljava/util/List;
            putstatic org.springframework.data.convert.CustomConversions.DEFAULT_CONVERTERS:Ljava/util/List;
        end local 0 // java.util.List defaults
         5: .line 71
            return
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            1    5     0  defaults  Ljava/util/List<Ljava/lang/Object;>;

  public void <init>(org.springframework.data.convert.CustomConversions$StoreConversions, java.util.Collection<?>);
    descriptor: (Lorg/springframework/data/convert/CustomConversions$StoreConversions;Ljava/util/Collection;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.springframework.data.convert.CustomConversions this
         0: .line 106
            new java.lang.Error
            dup
            ldc "Unresolved compilation problems: \n\tThe method getStoreConverters() is undefined for the type CustomConversions.StoreConversions\n\tThe method getStoreTypeHolder() is undefined for the type CustomConversions.StoreConversions\n\tLOG cannot be resolved\n\tLOG cannot be resolved\n\tLOG cannot be resolved\n\tLOG cannot be resolved\n\tThe method computeIfAbsent(Class<?>, Function<? super Class<?>,? extends CustomConversions.TargetTypes>) in the type Map<Class<?>,CustomConversions.TargetTypes> is not applicable for the arguments (Class<capture#4-of ?>, TargetTypes::new)\n\tThe type CustomConversions.TargetTypes does not define TargetTypes(Class<capture#5-of ?>) that is applicable here\n\tThe blank final field sourceType may not have been initialized\n\tThe blank final field convertiblePair may not have been initialized\n\tThe blank final field storeConversions may not have been initialized\n\tThe blank final field reading may not have been initialized\n\tThe blank final field writing may not have been initialized\n\tThe constructor CustomConversions.StoreConversions(SimpleTypeHolder, Arrays.asList(converters)) is undefined\n\tThe constructor CustomConversions.StoreConversions(SimpleTypeHolder, Collection<capture#24-of ?>) is undefined\n\tThe constructor CustomConversions.ConverterRegistration(GenericConverter.ConvertiblePair, CustomConversions.StoreConversions, boolean, boolean) is undefined\n"
            invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
            athrow
        end local 0 // org.springframework.data.convert.CustomConversions this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/data/convert/CustomConversions;
    Signature: (Lorg/springframework/data/convert/CustomConversions$StoreConversions;Ljava/util/Collection<*>;)V
    MethodParameters:
                  Name  Flags
      storeConversions  
      converters        

  public org.springframework.data.mapping.model.SimpleTypeHolder getSimpleTypeHolder();
    descriptor: ()Lorg/springframework/data/mapping/model/SimpleTypeHolder;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.springframework.data.convert.CustomConversions this
         0: .line 125
            aload 0 /* this */
            getfield org.springframework.data.convert.CustomConversions.simpleTypeHolder:Lorg/springframework/data/mapping/model/SimpleTypeHolder;
            areturn
        end local 0 // org.springframework.data.convert.CustomConversions this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/data/convert/CustomConversions;

  public boolean isSimpleType(java.lang.Class<?>);
    descriptor: (Ljava/lang/Class;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.springframework.data.convert.CustomConversions this
        start local 1 // java.lang.Class type
         0: .line 138
            aload 1 /* type */
            ldc "Type must not be null!"
            invokestatic org.springframework.util.Assert.notNull:(Ljava/lang/Object;Ljava/lang/String;)V
         1: .line 140
            aload 0 /* this */
            getfield org.springframework.data.convert.CustomConversions.simpleTypeHolder:Lorg/springframework/data/mapping/model/SimpleTypeHolder;
            aload 1 /* type */
            invokevirtual org.springframework.data.mapping.model.SimpleTypeHolder.isSimpleType:(Ljava/lang/Class;)Z
            ireturn
        end local 1 // java.lang.Class type
        end local 0 // org.springframework.data.convert.CustomConversions this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/springframework/data/convert/CustomConversions;
            0    2     1  type  Ljava/lang/Class<*>;
    Signature: (Ljava/lang/Class<*>;)Z
    MethodParameters:
      Name  Flags
      type  

  public void registerConvertersIn(org.springframework.core.convert.converter.ConverterRegistry);
    descriptor: (Lorg/springframework/core/convert/converter/ConverterRegistry;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.springframework.data.convert.CustomConversions this
        start local 1 // org.springframework.core.convert.converter.ConverterRegistry conversionService
         0: .line 150
            aload 1 /* conversionService */
            ldc "ConversionService must not be null!"
            invokestatic org.springframework.util.Assert.notNull:(Ljava/lang/Object;Ljava/lang/String;)V
         1: .line 152
            aload 0 /* this */
            getfield org.springframework.data.convert.CustomConversions.converters:Ljava/util/List;
            aload 0 /* this */
            aload 1 /* conversionService */
            invokedynamic accept(Lorg/springframework/data/convert/CustomConversions;Lorg/springframework/core/convert/converter/ConverterRegistry;)Ljava/util/function/Consumer;
              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;)V
                  org/springframework/data/convert/CustomConversions.lambda$5(Lorg/springframework/core/convert/converter/ConverterRegistry;Ljava/lang/Object;)V (7)
                  (Ljava/lang/Object;)V
            invokeinterface java.util.List.forEach:(Ljava/util/function/Consumer;)V
         2: .line 153
            return
        end local 1 // org.springframework.core.convert.converter.ConverterRegistry conversionService
        end local 0 // org.springframework.data.convert.CustomConversions this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    3     0               this  Lorg/springframework/data/convert/CustomConversions;
            0    3     1  conversionService  Lorg/springframework/core/convert/converter/ConverterRegistry;
    MethodParameters:
                   Name  Flags
      conversionService  

  private void registerConverterIn(java.lang.Object, org.springframework.core.convert.converter.ConverterRegistry);
    descriptor: (Ljava/lang/Object;Lorg/springframework/core/convert/converter/ConverterRegistry;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=4, args_size=3
        start local 0 // org.springframework.data.convert.CustomConversions this
        start local 1 // java.lang.Object candidate
        start local 2 // org.springframework.core.convert.converter.ConverterRegistry conversionService
         0: .line 163
            iconst_0
            istore 3 /* added */
        start local 3 // boolean added
         1: .line 165
            aload 1 /* candidate */
            instanceof org.springframework.core.convert.converter.Converter
            ifeq 4
         2: .line 166
            aload 2 /* conversionService */
            ldc Lorg/springframework/core/convert/converter/Converter;
            aload 1 /* candidate */
            invokevirtual java.lang.Class.cast:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.springframework.core.convert.converter.Converter
            invokeinterface org.springframework.core.convert.converter.ConverterRegistry.addConverter:(Lorg/springframework/core/convert/converter/Converter;)V
         3: .line 167
            iconst_1
            istore 3 /* added */
         4: .line 170
      StackMap locals: int
      StackMap stack:
            aload 1 /* candidate */
            instanceof org.springframework.core.convert.converter.ConverterFactory
            ifeq 7
         5: .line 171
            aload 2 /* conversionService */
            ldc Lorg/springframework/core/convert/converter/ConverterFactory;
            aload 1 /* candidate */
            invokevirtual java.lang.Class.cast:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.springframework.core.convert.converter.ConverterFactory
            invokeinterface org.springframework.core.convert.converter.ConverterRegistry.addConverterFactory:(Lorg/springframework/core/convert/converter/ConverterFactory;)V
         6: .line 172
            iconst_1
            istore 3 /* added */
         7: .line 175
      StackMap locals:
      StackMap stack:
            aload 1 /* candidate */
            instanceof org.springframework.core.convert.converter.GenericConverter
            ifeq 10
         8: .line 176
            aload 2 /* conversionService */
            ldc Lorg/springframework/core/convert/converter/GenericConverter;
            aload 1 /* candidate */
            invokevirtual java.lang.Class.cast:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.springframework.core.convert.converter.GenericConverter
            invokeinterface org.springframework.core.convert.converter.ConverterRegistry.addConverter:(Lorg/springframework/core/convert/converter/GenericConverter;)V
         9: .line 177
            iconst_1
            istore 3 /* added */
        10: .line 180
      StackMap locals:
      StackMap stack:
            aload 1 /* candidate */
            instanceof org.springframework.data.convert.ConverterBuilder$ConverterAware
            ifeq 13
        11: .line 181
            ldc Lorg/springframework/data/convert/ConverterBuilder$ConverterAware;
            aload 1 /* candidate */
            invokevirtual java.lang.Class.cast:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.springframework.data.convert.ConverterBuilder$ConverterAware
            invokeinterface org.springframework.data.convert.ConverterBuilder$ConverterAware.getConverters:()Ljava/util/Set;
            aload 0 /* this */
            aload 2 /* conversionService */
            invokedynamic accept(Lorg/springframework/data/convert/CustomConversions;Lorg/springframework/core/convert/converter/ConverterRegistry;)Ljava/util/function/Consumer;
              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;)V
                  org/springframework/data/convert/CustomConversions.lambda$6(Lorg/springframework/core/convert/converter/ConverterRegistry;Lorg/springframework/core/convert/converter/GenericConverter;)V (7)
                  (Lorg/springframework/core/convert/converter/GenericConverter;)V
            invokeinterface java.util.Set.forEach:(Ljava/util/function/Consumer;)V
        12: .line 182
            iconst_1
            istore 3 /* added */
        13: .line 185
      StackMap locals:
      StackMap stack:
            iload 3 /* added */
            ifne 15
        14: .line 186
            new java.lang.IllegalArgumentException
            dup
            ldc "Converter %s is neither a Spring Converter, GenericConverter or ConverterFactory!"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* candidate */
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        15: .line 188
      StackMap locals:
      StackMap stack:
            return
        end local 3 // boolean added
        end local 2 // org.springframework.core.convert.converter.ConverterRegistry conversionService
        end local 1 // java.lang.Object candidate
        end local 0 // org.springframework.data.convert.CustomConversions this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   16     0               this  Lorg/springframework/data/convert/CustomConversions;
            0   16     1          candidate  Ljava/lang/Object;
            0   16     2  conversionService  Lorg/springframework/core/convert/converter/ConverterRegistry;
            1   16     3              added  Z
    MethodParameters:
                   Name  Flags
      candidate          
      conversionService  

  private void register(org.springframework.data.convert.CustomConversions$ConverterRegistration);
    descriptor: (Lorg/springframework/data/convert/CustomConversions$ConverterRegistration;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.springframework.data.convert.CustomConversions this
         0: .line 206
            new java.lang.Error
            dup
            ldc "Unresolved compilation problems: \n\tLOG cannot be resolved\n\tLOG cannot be resolved\n"
            invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
            athrow
        end local 0 // org.springframework.data.convert.CustomConversions this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/data/convert/CustomConversions;
    MethodParameters:
                       Name  Flags
      converterRegistration  

  private static void warnIfNotTimeType(java.lang.Class<?>, java.lang.String);
    descriptor: (Ljava/lang/Class;Ljava/lang/String;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
         0: .line 233
            new java.lang.Error
            dup
            ldc "Unresolved compilation problems: \n\tLOG cannot be resolved\n\tLOG cannot be resolved\n"
            invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
            athrow
      LocalVariableTable:
        Start  End  Slot  Name  Signature
    Signature: (Ljava/lang/Class<*>;Ljava/lang/String;)V
    MethodParameters:
      Name  Flags
      type  
      msg   

  public java.util.Optional<java.lang.Class<?>> getCustomWriteTarget(java.lang.Class<?>);
    descriptor: (Ljava/lang/Class;)Ljava/util/Optional;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // org.springframework.data.convert.CustomConversions this
        start local 1 // java.lang.Class sourceType
         0: .line 248
            aload 1 /* sourceType */
            ldc "Source type must not be null!"
            invokestatic org.springframework.util.Assert.notNull:(Ljava/lang/Object;Ljava/lang/String;)V
         1: .line 250
            aload 0 /* this */
            getfield org.springframework.data.convert.CustomConversions.customWriteTargetTypes:Lorg/springframework/data/convert/CustomConversions$ConversionTargetsCache;
            aload 1 /* sourceType */
            aload 0 /* this */
            getfield org.springframework.data.convert.CustomConversions.getRawWriteTarget:Ljava/util/function/Function;
            invokevirtual org.springframework.data.convert.CustomConversions$ConversionTargetsCache.computeIfAbsent:(Ljava/lang/Class;Ljava/util/function/Function;)Ljava/lang/Class;
            astore 2 /* target */
        start local 2 // java.lang.Class target
         2: .line 252
            ldc Ljava/lang/Void;
            aload 2 /* target */
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifne 3
            aload 2 /* target */
            ifnonnull 4
      StackMap locals: java.lang.Class
      StackMap stack:
         3: invokestatic java.util.Optional.empty:()Ljava/util/Optional;
            goto 5
      StackMap locals:
      StackMap stack:
         4: aload 2 /* target */
            invokestatic java.util.Optional.of:(Ljava/lang/Object;)Ljava/util/Optional;
      StackMap locals:
      StackMap stack: java.util.Optional
         5: areturn
        end local 2 // java.lang.Class target
        end local 1 // java.lang.Class sourceType
        end local 0 // org.springframework.data.convert.CustomConversions this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    6     0        this  Lorg/springframework/data/convert/CustomConversions;
            0    6     1  sourceType  Ljava/lang/Class<*>;
            2    6     2      target  Ljava/lang/Class<*>;
    Signature: (Ljava/lang/Class<*>;)Ljava/util/Optional<Ljava/lang/Class<*>;>;
    MethodParameters:
            Name  Flags
      sourceType  

  public java.util.Optional<java.lang.Class<?>> getCustomWriteTarget(java.lang.Class<?>, java.lang.Class<?>);
    descriptor: (Ljava/lang/Class;Ljava/lang/Class;)Ljava/util/Optional;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // org.springframework.data.convert.CustomConversions this
        start local 1 // java.lang.Class sourceType
        start local 2 // java.lang.Class requestedTargetType
         0: .line 266
            aload 1 /* sourceType */
            ldc "Source type must not be null!"
            invokestatic org.springframework.util.Assert.notNull:(Ljava/lang/Object;Ljava/lang/String;)V
         1: .line 267
            aload 2 /* requestedTargetType */
            ldc "Target type must not be null!"
            invokestatic org.springframework.util.Assert.notNull:(Ljava/lang/Object;Ljava/lang/String;)V
         2: .line 269
            aload 0 /* this */
            getfield org.springframework.data.convert.CustomConversions.customWriteTargetTypes:Lorg/springframework/data/convert/CustomConversions$ConversionTargetsCache;
            aload 1 /* sourceType */
            aload 2 /* requestedTargetType */
            aload 0 /* this */
            getfield org.springframework.data.convert.CustomConversions.getWriteTarget:Ljava/util/function/Function;
            invokevirtual org.springframework.data.convert.CustomConversions$ConversionTargetsCache.computeIfAbsent:(Ljava/lang/Class;Ljava/lang/Class;Ljava/util/function/Function;)Ljava/lang/Class;
            astore 3 /* target */
        start local 3 // java.lang.Class target
         3: .line 271
            ldc Ljava/lang/Void;
            aload 3 /* target */
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifne 4
            aload 3 /* target */
            ifnonnull 5
      StackMap locals: java.lang.Class
      StackMap stack:
         4: invokestatic java.util.Optional.empty:()Ljava/util/Optional;
            goto 6
      StackMap locals:
      StackMap stack:
         5: aload 3 /* target */
            invokestatic java.util.Optional.of:(Ljava/lang/Object;)Ljava/util/Optional;
      StackMap locals:
      StackMap stack: java.util.Optional
         6: areturn
        end local 3 // java.lang.Class target
        end local 2 // java.lang.Class requestedTargetType
        end local 1 // java.lang.Class sourceType
        end local 0 // org.springframework.data.convert.CustomConversions this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0    7     0                 this  Lorg/springframework/data/convert/CustomConversions;
            0    7     1           sourceType  Ljava/lang/Class<*>;
            0    7     2  requestedTargetType  Ljava/lang/Class<*>;
            3    7     3               target  Ljava/lang/Class<*>;
    Signature: (Ljava/lang/Class<*>;Ljava/lang/Class<*>;)Ljava/util/Optional<Ljava/lang/Class<*>;>;
    MethodParameters:
                     Name  Flags
      sourceType           
      requestedTargetType  

  public boolean hasCustomWriteTarget(java.lang.Class<?>);
    descriptor: (Ljava/lang/Class;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.springframework.data.convert.CustomConversions this
        start local 1 // java.lang.Class sourceType
         0: .line 283
            aload 1 /* sourceType */
            ldc "Source type must not be null!"
            invokestatic org.springframework.util.Assert.notNull:(Ljava/lang/Object;Ljava/lang/String;)V
         1: .line 285
            aload 0 /* this */
            aload 1 /* sourceType */
            invokevirtual org.springframework.data.convert.CustomConversions.getCustomWriteTarget:(Ljava/lang/Class;)Ljava/util/Optional;
            invokevirtual java.util.Optional.isPresent:()Z
            ireturn
        end local 1 // java.lang.Class sourceType
        end local 0 // org.springframework.data.convert.CustomConversions this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    2     0        this  Lorg/springframework/data/convert/CustomConversions;
            0    2     1  sourceType  Ljava/lang/Class<*>;
    Signature: (Ljava/lang/Class<*>;)Z
    MethodParameters:
            Name  Flags
      sourceType  

  public boolean hasCustomWriteTarget(java.lang.Class<?>, java.lang.Class<?>);
    descriptor: (Ljava/lang/Class;Ljava/lang/Class;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.springframework.data.convert.CustomConversions this
        start local 1 // java.lang.Class sourceType
        start local 2 // java.lang.Class targetType
         0: .line 298
            aload 1 /* sourceType */
            ldc "Source type must not be null!"
            invokestatic org.springframework.util.Assert.notNull:(Ljava/lang/Object;Ljava/lang/String;)V
         1: .line 299
            aload 2 /* targetType */
            ldc "Target type must not be null!"
            invokestatic org.springframework.util.Assert.notNull:(Ljava/lang/Object;Ljava/lang/String;)V
         2: .line 301
            aload 0 /* this */
            aload 1 /* sourceType */
            aload 2 /* targetType */
            invokevirtual org.springframework.data.convert.CustomConversions.getCustomWriteTarget:(Ljava/lang/Class;Ljava/lang/Class;)Ljava/util/Optional;
            invokevirtual java.util.Optional.isPresent:()Z
            ireturn
        end local 2 // java.lang.Class targetType
        end local 1 // java.lang.Class sourceType
        end local 0 // org.springframework.data.convert.CustomConversions this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    3     0        this  Lorg/springframework/data/convert/CustomConversions;
            0    3     1  sourceType  Ljava/lang/Class<*>;
            0    3     2  targetType  Ljava/lang/Class<*>;
    Signature: (Ljava/lang/Class<*>;Ljava/lang/Class<*>;)Z
    MethodParameters:
            Name  Flags
      sourceType  
      targetType  

  public boolean hasCustomReadTarget(java.lang.Class<?>, java.lang.Class<?>);
    descriptor: (Ljava/lang/Class;Ljava/lang/Class;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.springframework.data.convert.CustomConversions this
        start local 1 // java.lang.Class sourceType
        start local 2 // java.lang.Class targetType
         0: .line 313
            aload 1 /* sourceType */
            ldc "Source type must not be null!"
            invokestatic org.springframework.util.Assert.notNull:(Ljava/lang/Object;Ljava/lang/String;)V
         1: .line 314
            aload 2 /* targetType */
            ldc "Target type must not be null!"
            invokestatic org.springframework.util.Assert.notNull:(Ljava/lang/Object;Ljava/lang/String;)V
         2: .line 316
            aload 0 /* this */
            aload 1 /* sourceType */
            aload 2 /* targetType */
            invokevirtual org.springframework.data.convert.CustomConversions.getCustomReadTarget:(Ljava/lang/Class;Ljava/lang/Class;)Ljava/lang/Class;
            ifnull 3
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         3: iconst_0
            ireturn
        end local 2 // java.lang.Class targetType
        end local 1 // java.lang.Class sourceType
        end local 0 // org.springframework.data.convert.CustomConversions this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    4     0        this  Lorg/springframework/data/convert/CustomConversions;
            0    4     1  sourceType  Ljava/lang/Class<*>;
            0    4     2  targetType  Ljava/lang/Class<*>;
    Signature: (Ljava/lang/Class<*>;Ljava/lang/Class<*>;)Z
    MethodParameters:
            Name  Flags
      sourceType  
      targetType  

  private java.lang.Class<?> getCustomReadTarget(java.lang.Class<?>, java.lang.Class<?>);
    descriptor: (Ljava/lang/Class;Ljava/lang/Class;)Ljava/lang/Class;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // org.springframework.data.convert.CustomConversions this
        start local 1 // java.lang.Class sourceType
        start local 2 // java.lang.Class targetType
         0: .line 329
            aload 0 /* this */
            getfield org.springframework.data.convert.CustomConversions.customReadTargetTypes:Lorg/springframework/data/convert/CustomConversions$ConversionTargetsCache;
            aload 1 /* sourceType */
            aload 2 /* targetType */
            aload 0 /* this */
            getfield org.springframework.data.convert.CustomConversions.getReadTarget:Ljava/util/function/Function;
            invokevirtual org.springframework.data.convert.CustomConversions$ConversionTargetsCache.computeIfAbsent:(Ljava/lang/Class;Ljava/lang/Class;Ljava/util/function/Function;)Ljava/lang/Class;
            areturn
        end local 2 // java.lang.Class targetType
        end local 1 // java.lang.Class sourceType
        end local 0 // org.springframework.data.convert.CustomConversions this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0        this  Lorg/springframework/data/convert/CustomConversions;
            0    1     1  sourceType  Ljava/lang/Class<*>;
            0    1     2  targetType  Ljava/lang/Class<*>;
    Signature: (Ljava/lang/Class<*>;Ljava/lang/Class<*>;)Ljava/lang/Class<*>;
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()
    MethodParameters:
            Name  Flags
      sourceType  
      targetType  

  private java.lang.Class<?> getCustomTarget(java.lang.Class<?>, java.lang.Class<?>, java.util.Collection<org.springframework.core.convert.converter.GenericConverter$ConvertiblePair>);
    descriptor: (Ljava/lang/Class;Ljava/lang/Class;Ljava/util/Collection;)Ljava/lang/Class;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=7, args_size=4
        start local 0 // org.springframework.data.convert.CustomConversions this
        start local 1 // java.lang.Class sourceType
        start local 2 // java.lang.Class targetType
        start local 3 // java.util.Collection pairs
         0: .line 345
            aload 2 /* targetType */
            ifnull 2
            aload 3 /* pairs */
            new org.springframework.core.convert.converter.GenericConverter$ConvertiblePair
            dup
            aload 1 /* sourceType */
            aload 2 /* targetType */
            invokespecial org.springframework.core.convert.converter.GenericConverter$ConvertiblePair.<init>:(Ljava/lang/Class;Ljava/lang/Class;)V
            invokeinterface java.util.Collection.contains:(Ljava/lang/Object;)Z
            ifeq 2
         1: .line 346
            aload 2 /* targetType */
            areturn
         2: .line 349
      StackMap locals:
      StackMap stack:
            aload 3 /* pairs */
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 5
            goto 10
      StackMap locals: org.springframework.data.convert.CustomConversions java.lang.Class java.lang.Class java.util.Collection top java.util.Iterator
      StackMap stack:
         3: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.springframework.core.convert.converter.GenericConverter$ConvertiblePair
            astore 4 /* pair */
        start local 4 // org.springframework.core.convert.converter.GenericConverter$ConvertiblePair pair
         4: .line 351
            aload 4 /* pair */
            aload 1 /* sourceType */
            invokestatic org.springframework.data.convert.CustomConversions.hasAssignableSourceType:(Lorg/springframework/core/convert/converter/GenericConverter$ConvertiblePair;Ljava/lang/Class;)Z
            ifne 6
         5: .line 352
            goto 10
         6: .line 355
      StackMap locals: org.springframework.data.convert.CustomConversions java.lang.Class java.lang.Class java.util.Collection org.springframework.core.convert.converter.GenericConverter$ConvertiblePair java.util.Iterator
      StackMap stack:
            aload 4 /* pair */
            invokevirtual org.springframework.core.convert.converter.GenericConverter$ConvertiblePair.getTargetType:()Ljava/lang/Class;
            astore 6 /* candidate */
        start local 6 // java.lang.Class candidate
         7: .line 357
            aload 2 /* targetType */
            aload 6 /* candidate */
            invokestatic org.springframework.data.convert.CustomConversions.requestedTargetTypeIsAssignable:(Ljava/lang/Class;Ljava/lang/Class;)Z
            ifne 9
         8: .line 358
            goto 10
         9: .line 361
      StackMap locals: java.lang.Class
      StackMap stack:
            aload 6 /* candidate */
            areturn
        end local 6 // java.lang.Class candidate
        end local 4 // org.springframework.core.convert.converter.GenericConverter$ConvertiblePair pair
        10: .line 349
      StackMap locals: org.springframework.data.convert.CustomConversions java.lang.Class java.lang.Class java.util.Collection top java.util.Iterator
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 3
        11: .line 364
            aconst_null
            areturn
        end local 3 // java.util.Collection pairs
        end local 2 // java.lang.Class targetType
        end local 1 // java.lang.Class sourceType
        end local 0 // org.springframework.data.convert.CustomConversions this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   12     0        this  Lorg/springframework/data/convert/CustomConversions;
            0   12     1  sourceType  Ljava/lang/Class<*>;
            0   12     2  targetType  Ljava/lang/Class<*>;
            0   12     3       pairs  Ljava/util/Collection<Lorg/springframework/core/convert/converter/GenericConverter$ConvertiblePair;>;
            4   10     4        pair  Lorg/springframework/core/convert/converter/GenericConverter$ConvertiblePair;
            7   10     6   candidate  Ljava/lang/Class<*>;
    Signature: (Ljava/lang/Class<*>;Ljava/lang/Class<*>;Ljava/util/Collection<Lorg/springframework/core/convert/converter/GenericConverter$ConvertiblePair;>;)Ljava/lang/Class<*>;
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()
    RuntimeVisibleParameterAnnotations: 
      0:
      1:
        org.springframework.lang.Nullable()
      2:
    MethodParameters:
            Name  Flags
      sourceType  
      targetType  
      pairs       

  private static boolean hasAssignableSourceType(org.springframework.core.convert.converter.GenericConverter$ConvertiblePair, java.lang.Class<?>);
    descriptor: (Lorg/springframework/core/convert/converter/GenericConverter$ConvertiblePair;Ljava/lang/Class;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.springframework.core.convert.converter.GenericConverter$ConvertiblePair pair
        start local 1 // java.lang.Class sourceType
         0: .line 368
            aload 0 /* pair */
            invokevirtual org.springframework.core.convert.converter.GenericConverter$ConvertiblePair.getSourceType:()Ljava/lang/Class;
            aload 1 /* sourceType */
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ireturn
        end local 1 // java.lang.Class sourceType
        end local 0 // org.springframework.core.convert.converter.GenericConverter$ConvertiblePair pair
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0        pair  Lorg/springframework/core/convert/converter/GenericConverter$ConvertiblePair;
            0    1     1  sourceType  Ljava/lang/Class<*>;
    Signature: (Lorg/springframework/core/convert/converter/GenericConverter$ConvertiblePair;Ljava/lang/Class<*>;)Z
    MethodParameters:
            Name  Flags
      pair        
      sourceType  

  private static boolean requestedTargetTypeIsAssignable(java.lang.Class<?>, java.lang.Class<?>);
    descriptor: (Ljava/lang/Class;Ljava/lang/Class;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // java.lang.Class requestedTargetType
        start local 1 // java.lang.Class targetType
         0: .line 372
            aload 0 /* requestedTargetType */
            ifnonnull 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: aload 1 /* targetType */
            aload 0 /* requestedTargetType */
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
      StackMap locals:
      StackMap stack: int
         2: ireturn
        end local 1 // java.lang.Class targetType
        end local 0 // java.lang.Class requestedTargetType
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0    3     0  requestedTargetType  Ljava/lang/Class<*>;
            0    3     1           targetType  Ljava/lang/Class<*>;
    Signature: (Ljava/lang/Class<*>;Ljava/lang/Class<*>;)Z
    RuntimeVisibleParameterAnnotations: 
      0:
        org.springframework.lang.Nullable()
      1:
    MethodParameters:
                     Name  Flags
      requestedTargetType  
      targetType           

  private void lambda$5(org.springframework.core.convert.converter.ConverterRegistry, java.lang.Object);
    descriptor: (Lorg/springframework/core/convert/converter/ConverterRegistry;Ljava/lang/Object;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.springframework.data.convert.CustomConversions this
        start local 2 // java.lang.Object it
         0: .line 152
            aload 0 /* this */
            aload 2 /* it */
            aload 1
            invokevirtual org.springframework.data.convert.CustomConversions.registerConverterIn:(Ljava/lang/Object;Lorg/springframework/core/convert/converter/ConverterRegistry;)V
            return
        end local 2 // java.lang.Object it
        end local 0 // org.springframework.data.convert.CustomConversions this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/data/convert/CustomConversions;
            0    1     2    it  Ljava/lang/Object;

  private void lambda$6(org.springframework.core.convert.converter.ConverterRegistry, org.springframework.core.convert.converter.GenericConverter);
    descriptor: (Lorg/springframework/core/convert/converter/ConverterRegistry;Lorg/springframework/core/convert/converter/GenericConverter;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.springframework.data.convert.CustomConversions this
        start local 2 // org.springframework.core.convert.converter.GenericConverter it
         0: .line 181
            aload 0 /* this */
            aload 2 /* it */
            aload 1
            invokevirtual org.springframework.data.convert.CustomConversions.registerConverterIn:(Ljava/lang/Object;Lorg/springframework/core/convert/converter/ConverterRegistry;)V
            return
        end local 2 // org.springframework.core.convert.converter.GenericConverter it
        end local 0 // org.springframework.data.convert.CustomConversions this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/data/convert/CustomConversions;
            0    1     2    it  Lorg/springframework/core/convert/converter/GenericConverter;
}
SourceFile: "CustomConversions.java"
NestMembers:
  org.springframework.data.convert.CustomConversions$ConversionTargetsCache  org.springframework.data.convert.CustomConversions$ConversionTargetsCache$AbsentTargetTypeMarker  org.springframework.data.convert.CustomConversions$ConverterRegistration  org.springframework.data.convert.CustomConversions$StoreConversions  org.springframework.data.convert.CustomConversions$TargetTypes
InnerClasses:
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
  public final ConvertiblePair = org.springframework.core.convert.converter.GenericConverter$ConvertiblePair of org.springframework.core.convert.converter.GenericConverter
  public abstract ConverterAware = org.springframework.data.convert.ConverterBuilder$ConverterAware of org.springframework.data.convert.ConverterBuilder
  ConversionTargetsCache = org.springframework.data.convert.CustomConversions$ConversionTargetsCache of org.springframework.data.convert.CustomConversions
  ConverterRegistration = org.springframework.data.convert.CustomConversions$ConverterRegistration of org.springframework.data.convert.CustomConversions
  public StoreConversions = org.springframework.data.convert.CustomConversions$StoreConversions of org.springframework.data.convert.CustomConversions
  TargetTypes = org.springframework.data.convert.CustomConversions$TargetTypes of org.springframework.data.convert.CustomConversions