class javax.validation.Validation$ProviderSpecificBootstrapImpl<T extends javax.validation.Configuration<T>, U extends javax.validation.spi.ValidationProvider<T>> implements javax.validation.bootstrap.ProviderSpecificBootstrap<T>
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: javax.validation.Validation$ProviderSpecificBootstrapImpl
  super_class: java.lang.Object
{
  private final java.lang.Class<U> validationProviderClass;
    descriptor: Ljava/lang/Class;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/lang/Class<TU;>;

  private javax.validation.ValidationProviderResolver resolver;
    descriptor: Ljavax/validation/ValidationProviderResolver;
    flags: (0x0002) ACC_PRIVATE

  public void <init>(java.lang.Class<U>);
    descriptor: (Ljava/lang/Class;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // javax.validation.Validation$ProviderSpecificBootstrapImpl this
        start local 1 // java.lang.Class validationProviderClass
         0: .line 176
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 177
            aload 0 /* this */
            aload 1 /* validationProviderClass */
            putfield javax.validation.Validation$ProviderSpecificBootstrapImpl.validationProviderClass:Ljava/lang/Class;
         2: .line 178
            return
        end local 1 // java.lang.Class validationProviderClass
        end local 0 // javax.validation.Validation$ProviderSpecificBootstrapImpl this
      LocalVariableTable:
        Start  End  Slot                     Name  Signature
            0    3     0                     this  Ljavax/validation/Validation$ProviderSpecificBootstrapImpl<TT;TU;>;
            0    3     1  validationProviderClass  Ljava/lang/Class<TU;>;
    Signature: (Ljava/lang/Class<TU;>;)V
    MethodParameters:
                         Name  Flags
      validationProviderClass  

  public javax.validation.bootstrap.ProviderSpecificBootstrap<T> providerResolver(javax.validation.ValidationProviderResolver);
    descriptor: (Ljavax/validation/ValidationProviderResolver;)Ljavax/validation/bootstrap/ProviderSpecificBootstrap;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // javax.validation.Validation$ProviderSpecificBootstrapImpl this
        start local 1 // javax.validation.ValidationProviderResolver resolver
         0: .line 190
            aload 0 /* this */
            aload 1 /* resolver */
            putfield javax.validation.Validation$ProviderSpecificBootstrapImpl.resolver:Ljavax/validation/ValidationProviderResolver;
         1: .line 191
            aload 0 /* this */
            areturn
        end local 1 // javax.validation.ValidationProviderResolver resolver
        end local 0 // javax.validation.Validation$ProviderSpecificBootstrapImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Ljavax/validation/Validation$ProviderSpecificBootstrapImpl<TT;TU;>;
            0    2     1  resolver  Ljavax/validation/ValidationProviderResolver;
    Signature: (Ljavax/validation/ValidationProviderResolver;)Ljavax/validation/bootstrap/ProviderSpecificBootstrap<TT;>;
    MethodParameters:
          Name  Flags
      resolver  

  public T configure();
    descriptor: ()Ljavax/validation/Configuration;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=6, args_size=1
        start local 0 // javax.validation.Validation$ProviderSpecificBootstrapImpl this
         0: .line 203
            aload 0 /* this */
            getfield javax.validation.Validation$ProviderSpecificBootstrapImpl.validationProviderClass:Ljava/lang/Class;
            ifnonnull 4
         1: .line 204
            new javax.validation.ValidationException
            dup
         2: .line 205
            ldc "builder is mandatory. Use Validation.byDefaultProvider() to use the generic provider discovery mechanism"
         3: .line 204
            invokespecial javax.validation.ValidationException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 209
      StackMap locals:
      StackMap stack:
            new javax.validation.Validation$GenericBootstrapImpl
            dup
            invokespecial javax.validation.Validation$GenericBootstrapImpl.<init>:()V
            astore 1 /* state */
        start local 1 // javax.validation.Validation$GenericBootstrapImpl state
         5: .line 212
            aload 0 /* this */
            getfield javax.validation.Validation$ProviderSpecificBootstrapImpl.resolver:Ljavax/validation/ValidationProviderResolver;
            ifnonnull 8
         6: .line 213
            aload 0 /* this */
            aload 0 /* this */
            getfield javax.validation.Validation$ProviderSpecificBootstrapImpl.validationProviderClass:Ljava/lang/Class;
            invokestatic javax.validation.Validation$NewProviderInstance.action:(Ljava/lang/Class;)Ljavax/validation/Validation$NewProviderInstance;
            invokevirtual javax.validation.Validation$ProviderSpecificBootstrapImpl.run:(Ljava/security/PrivilegedAction;)Ljava/lang/Object;
            checkcast javax.validation.spi.ValidationProvider
            astore 2 /* provider */
        start local 2 // javax.validation.spi.ValidationProvider provider
         7: .line 214
            aload 2 /* provider */
            aload 1 /* state */
            invokeinterface javax.validation.spi.ValidationProvider.createSpecializedConfiguration:(Ljavax/validation/spi/BootstrapState;)Ljavax/validation/Configuration;
            areturn
        end local 2 // javax.validation.spi.ValidationProvider provider
         8: .line 218
      StackMap locals: javax.validation.Validation$GenericBootstrapImpl
      StackMap stack:
            aload 1 /* state */
            aload 0 /* this */
            getfield javax.validation.Validation$ProviderSpecificBootstrapImpl.resolver:Ljavax/validation/ValidationProviderResolver;
            invokevirtual javax.validation.Validation$GenericBootstrapImpl.providerResolver:(Ljavax/validation/ValidationProviderResolver;)Ljavax/validation/bootstrap/GenericBootstrap;
            pop
         9: .line 223
            aload 0 /* this */
            getfield javax.validation.Validation$ProviderSpecificBootstrapImpl.resolver:Ljavax/validation/ValidationProviderResolver;
            invokeinterface javax.validation.ValidationProviderResolver.getValidationProviders:()Ljava/util/List;
            astore 2 /* resolvers */
        start local 2 // java.util.List resolvers
        10: .line 224
            goto 13
        end local 2 // java.util.List resolvers
        11: .line 225
      StackMap locals:
      StackMap stack: java.lang.RuntimeException
            astore 3 /* re */
        start local 3 // java.lang.RuntimeException re
        12: .line 226
            new javax.validation.ValidationException
            dup
            ldc "Unable to get available provider resolvers."
            aload 3 /* re */
            invokespecial javax.validation.ValidationException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 3 // java.lang.RuntimeException re
        start local 2 // java.util.List resolvers
        13: .line 229
      StackMap locals: java.util.List
      StackMap stack:
            aload 2 /* resolvers */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 4
            goto 18
      StackMap locals: javax.validation.Validation$ProviderSpecificBootstrapImpl javax.validation.Validation$GenericBootstrapImpl java.util.List top java.util.Iterator
      StackMap stack:
        14: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast javax.validation.spi.ValidationProvider
            astore 3 /* provider */
        start local 3 // javax.validation.spi.ValidationProvider provider
        15: .line 230
            aload 0 /* this */
            getfield javax.validation.Validation$ProviderSpecificBootstrapImpl.validationProviderClass:Ljava/lang/Class;
            aload 3 /* provider */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ifeq 18
        16: .line 231
            aload 0 /* this */
            getfield javax.validation.Validation$ProviderSpecificBootstrapImpl.validationProviderClass:Ljava/lang/Class;
            aload 3 /* provider */
            invokevirtual java.lang.Class.cast:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast javax.validation.spi.ValidationProvider
            astore 5 /* specificProvider */
        start local 5 // javax.validation.spi.ValidationProvider specificProvider
        17: .line 232
            aload 5 /* specificProvider */
            aload 1 /* state */
            invokeinterface javax.validation.spi.ValidationProvider.createSpecializedConfiguration:(Ljavax/validation/spi/BootstrapState;)Ljavax/validation/Configuration;
            areturn
        end local 5 // javax.validation.spi.ValidationProvider specificProvider
        end local 3 // javax.validation.spi.ValidationProvider provider
        18: .line 229
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 14
        19: .line 236
            new javax.validation.ValidationException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Unable to find provider: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield javax.validation.Validation$ProviderSpecificBootstrapImpl.validationProviderClass:Ljava/lang/Class;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial javax.validation.ValidationException.<init>:(Ljava/lang/String;)V
            athrow
        end local 2 // java.util.List resolvers
        end local 1 // javax.validation.Validation$GenericBootstrapImpl state
        end local 0 // javax.validation.Validation$ProviderSpecificBootstrapImpl this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   20     0              this  Ljavax/validation/Validation$ProviderSpecificBootstrapImpl<TT;TU;>;
            5   20     1             state  Ljavax/validation/Validation$GenericBootstrapImpl;
            7    8     2          provider  TU;
           10   11     2         resolvers  Ljava/util/List<Ljavax/validation/spi/ValidationProvider<*>;>;
           13   20     2         resolvers  Ljava/util/List<Ljavax/validation/spi/ValidationProvider<*>;>;
           12   13     3                re  Ljava/lang/RuntimeException;
           15   18     3          provider  Ljavax/validation/spi/ValidationProvider<*>;
           17   18     5  specificProvider  Ljavax/validation/spi/ValidationProvider<TT;>;
      Exception table:
        from    to  target  type
           9    10      11  Class java.lang.RuntimeException
    Signature: ()TT;

  private <P> P run(java.security.PrivilegedAction<P>);
    descriptor: (Ljava/security/PrivilegedAction;)Ljava/lang/Object;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // javax.validation.Validation$ProviderSpecificBootstrapImpl this
        start local 1 // java.security.PrivilegedAction action
         0: .line 240
            invokestatic java.lang.System.getSecurityManager:()Ljava/lang/SecurityManager;
            ifnull 1
            aload 1 /* action */
            invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;)Ljava/lang/Object;
            goto 2
      StackMap locals:
      StackMap stack:
         1: aload 1 /* action */
            invokeinterface java.security.PrivilegedAction.run:()Ljava/lang/Object;
      StackMap locals:
      StackMap stack: java.lang.Object
         2: areturn
        end local 1 // java.security.PrivilegedAction action
        end local 0 // javax.validation.Validation$ProviderSpecificBootstrapImpl this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0    this  Ljavax/validation/Validation$ProviderSpecificBootstrapImpl<TT;TU;>;
            0    3     1  action  Ljava/security/PrivilegedAction<TP;>;
    Signature: <P:Ljava/lang/Object;>(Ljava/security/PrivilegedAction<TP;>;)TP;
    MethodParameters:
        Name  Flags
      action  
}
Signature: <T::Ljavax/validation/Configuration<TT;>;U::Ljavax/validation/spi/ValidationProvider<TT;>;>Ljava/lang/Object;Ljavax/validation/bootstrap/ProviderSpecificBootstrap<TT;>;
SourceFile: "Validation.java"
NestHost: javax.validation.Validation
InnerClasses:
  private GenericBootstrapImpl = javax.validation.Validation$GenericBootstrapImpl of javax.validation.Validation
  private NewProviderInstance = javax.validation.Validation$NewProviderInstance of javax.validation.Validation
  private ProviderSpecificBootstrapImpl = javax.validation.Validation$ProviderSpecificBootstrapImpl of javax.validation.Validation