public class org.springframework.boot.jdbc.metadata.CompositeDataSourcePoolMetadataProvider implements org.springframework.boot.jdbc.metadata.DataSourcePoolMetadataProvider
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.springframework.boot.jdbc.metadata.CompositeDataSourcePoolMetadataProvider
  super_class: java.lang.Object
{
  private final java.util.List<org.springframework.boot.jdbc.metadata.DataSourcePoolMetadataProvider> providers;
    descriptor: Ljava/util/List;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/List<Lorg/springframework/boot/jdbc/metadata/DataSourcePoolMetadataProvider;>;

  public void <init>(java.util.Collection<? extends org.springframework.boot.jdbc.metadata.DataSourcePoolMetadataProvider>);
    descriptor: (Ljava/util/Collection;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // org.springframework.boot.jdbc.metadata.CompositeDataSourcePoolMetadataProvider this
        start local 1 // java.util.Collection providers
         0: .line 42
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 43
            aload 0 /* this */
            aload 1 /* providers */
            ifnull 2
            new java.util.ArrayList
            dup
            aload 1 /* providers */
            invokespecial java.util.ArrayList.<init>:(Ljava/util/Collection;)V
            invokestatic java.util.Collections.unmodifiableList:(Ljava/util/List;)Ljava/util/List;
            goto 3
         2: .line 44
      StackMap locals: org.springframework.boot.jdbc.metadata.CompositeDataSourcePoolMetadataProvider java.util.Collection
      StackMap stack: org.springframework.boot.jdbc.metadata.CompositeDataSourcePoolMetadataProvider
            invokestatic java.util.Collections.emptyList:()Ljava/util/List;
         3: .line 43
      StackMap locals: org.springframework.boot.jdbc.metadata.CompositeDataSourcePoolMetadataProvider java.util.Collection
      StackMap stack: org.springframework.boot.jdbc.metadata.CompositeDataSourcePoolMetadataProvider java.util.List
            putfield org.springframework.boot.jdbc.metadata.CompositeDataSourcePoolMetadataProvider.providers:Ljava/util/List;
         4: .line 45
            return
        end local 1 // java.util.Collection providers
        end local 0 // org.springframework.boot.jdbc.metadata.CompositeDataSourcePoolMetadataProvider this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    5     0       this  Lorg/springframework/boot/jdbc/metadata/CompositeDataSourcePoolMetadataProvider;
            0    5     1  providers  Ljava/util/Collection<+Lorg/springframework/boot/jdbc/metadata/DataSourcePoolMetadataProvider;>;
    Signature: (Ljava/util/Collection<+Lorg/springframework/boot/jdbc/metadata/DataSourcePoolMetadataProvider;>;)V
    MethodParameters:
           Name  Flags
      providers  

  public org.springframework.boot.jdbc.metadata.DataSourcePoolMetadata getDataSourcePoolMetadata(javax.sql.DataSource);
    descriptor: (Ljavax/sql/DataSource;)Lorg/springframework/boot/jdbc/metadata/DataSourcePoolMetadata;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=5, args_size=2
        start local 0 // org.springframework.boot.jdbc.metadata.CompositeDataSourcePoolMetadataProvider this
        start local 1 // javax.sql.DataSource dataSource
         0: .line 49
            aload 0 /* this */
            getfield org.springframework.boot.jdbc.metadata.CompositeDataSourcePoolMetadataProvider.providers:Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 3
            goto 5
      StackMap locals: org.springframework.boot.jdbc.metadata.CompositeDataSourcePoolMetadataProvider javax.sql.DataSource top java.util.Iterator
      StackMap stack:
         1: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.springframework.boot.jdbc.metadata.DataSourcePoolMetadataProvider
            astore 2 /* provider */
        start local 2 // org.springframework.boot.jdbc.metadata.DataSourcePoolMetadataProvider provider
         2: .line 50
            aload 2 /* provider */
            aload 1 /* dataSource */
            invokeinterface org.springframework.boot.jdbc.metadata.DataSourcePoolMetadataProvider.getDataSourcePoolMetadata:(Ljavax/sql/DataSource;)Lorg/springframework/boot/jdbc/metadata/DataSourcePoolMetadata;
            astore 4 /* metadata */
        start local 4 // org.springframework.boot.jdbc.metadata.DataSourcePoolMetadata metadata
         3: .line 51
            aload 4 /* metadata */
            ifnull 5
         4: .line 52
            aload 4 /* metadata */
            areturn
        end local 4 // org.springframework.boot.jdbc.metadata.DataSourcePoolMetadata metadata
        end local 2 // org.springframework.boot.jdbc.metadata.DataSourcePoolMetadataProvider provider
         5: .line 49
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 1
         6: .line 55
            aconst_null
            areturn
        end local 1 // javax.sql.DataSource dataSource
        end local 0 // org.springframework.boot.jdbc.metadata.CompositeDataSourcePoolMetadataProvider this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    7     0        this  Lorg/springframework/boot/jdbc/metadata/CompositeDataSourcePoolMetadataProvider;
            0    7     1  dataSource  Ljavax/sql/DataSource;
            2    5     2    provider  Lorg/springframework/boot/jdbc/metadata/DataSourcePoolMetadataProvider;
            3    5     4    metadata  Lorg/springframework/boot/jdbc/metadata/DataSourcePoolMetadata;
    MethodParameters:
            Name  Flags
      dataSource  
}
SourceFile: "CompositeDataSourcePoolMetadataProvider.java"