class com.mongodb.TaggableReadPreference$SecondaryPreferredReadPreference extends com.mongodb.TaggableReadPreference$SecondaryReadPreference
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: com.mongodb.TaggableReadPreference$SecondaryPreferredReadPreference
  super_class: com.mongodb.TaggableReadPreference$SecondaryReadPreference
{
  void <init>();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.mongodb.TaggableReadPreference$SecondaryPreferredReadPreference this
         0: .line 383
            aload 0 /* this */
            invokespecial com.mongodb.TaggableReadPreference$SecondaryReadPreference.<init>:()V
         1: .line 384
            return
        end local 0 // com.mongodb.TaggableReadPreference$SecondaryPreferredReadPreference this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/mongodb/TaggableReadPreference$SecondaryPreferredReadPreference;

  void <init>(java.util.List<com.mongodb.TagSet>, java.lang.Long, java.util.concurrent.TimeUnit);
    descriptor: (Ljava/util/List;Ljava/lang/Long;Ljava/util/concurrent/TimeUnit;)V
    flags: (0x0000) 
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // com.mongodb.TaggableReadPreference$SecondaryPreferredReadPreference this
        start local 1 // java.util.List tagSetList
        start local 2 // java.lang.Long maxStaleness
        start local 3 // java.util.concurrent.TimeUnit timeUnit
         0: .line 387
            aload 0 /* this */
            aload 1 /* tagSetList */
            aload 2 /* maxStaleness */
            aload 3 /* timeUnit */
            aconst_null
            invokespecial com.mongodb.TaggableReadPreference$SecondaryPreferredReadPreference.<init>:(Ljava/util/List;Ljava/lang/Long;Ljava/util/concurrent/TimeUnit;Lcom/mongodb/ReadPreferenceHedgeOptions;)V
         1: .line 388
            return
        end local 3 // java.util.concurrent.TimeUnit timeUnit
        end local 2 // java.lang.Long maxStaleness
        end local 1 // java.util.List tagSetList
        end local 0 // com.mongodb.TaggableReadPreference$SecondaryPreferredReadPreference this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    2     0          this  Lcom/mongodb/TaggableReadPreference$SecondaryPreferredReadPreference;
            0    2     1    tagSetList  Ljava/util/List<Lcom/mongodb/TagSet;>;
            0    2     2  maxStaleness  Ljava/lang/Long;
            0    2     3      timeUnit  Ljava/util/concurrent/TimeUnit;
    Signature: (Ljava/util/List<Lcom/mongodb/TagSet;>;Ljava/lang/Long;Ljava/util/concurrent/TimeUnit;)V
    RuntimeVisibleParameterAnnotations: 
      0:
      1:
        com.mongodb.lang.Nullable()
      2:
    MethodParameters:
              Name  Flags
      tagSetList    final
      maxStaleness  final
      timeUnit      final

  void <init>(java.util.List<com.mongodb.TagSet>, java.lang.Long, java.util.concurrent.TimeUnit, com.mongodb.ReadPreferenceHedgeOptions);
    descriptor: (Ljava/util/List;Ljava/lang/Long;Ljava/util/concurrent/TimeUnit;Lcom/mongodb/ReadPreferenceHedgeOptions;)V
    flags: (0x0000) 
    Code:
      stack=5, locals=5, args_size=5
        start local 0 // com.mongodb.TaggableReadPreference$SecondaryPreferredReadPreference this
        start local 1 // java.util.List tagSetList
        start local 2 // java.lang.Long maxStaleness
        start local 3 // java.util.concurrent.TimeUnit timeUnit
        start local 4 // com.mongodb.ReadPreferenceHedgeOptions hedgeOptions
         0: .line 392
            aload 0 /* this */
            aload 1 /* tagSetList */
            aload 2 /* maxStaleness */
            aload 3 /* timeUnit */
            aload 4 /* hedgeOptions */
            invokespecial com.mongodb.TaggableReadPreference$SecondaryReadPreference.<init>:(Ljava/util/List;Ljava/lang/Long;Ljava/util/concurrent/TimeUnit;Lcom/mongodb/ReadPreferenceHedgeOptions;)V
         1: .line 393
            return
        end local 4 // com.mongodb.ReadPreferenceHedgeOptions hedgeOptions
        end local 3 // java.util.concurrent.TimeUnit timeUnit
        end local 2 // java.lang.Long maxStaleness
        end local 1 // java.util.List tagSetList
        end local 0 // com.mongodb.TaggableReadPreference$SecondaryPreferredReadPreference this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    2     0          this  Lcom/mongodb/TaggableReadPreference$SecondaryPreferredReadPreference;
            0    2     1    tagSetList  Ljava/util/List<Lcom/mongodb/TagSet;>;
            0    2     2  maxStaleness  Ljava/lang/Long;
            0    2     3      timeUnit  Ljava/util/concurrent/TimeUnit;
            0    2     4  hedgeOptions  Lcom/mongodb/ReadPreferenceHedgeOptions;
    Signature: (Ljava/util/List<Lcom/mongodb/TagSet;>;Ljava/lang/Long;Ljava/util/concurrent/TimeUnit;Lcom/mongodb/ReadPreferenceHedgeOptions;)V
    RuntimeVisibleParameterAnnotations: 
      0:
      1:
        com.mongodb.lang.Nullable()
      2:
      3:
        com.mongodb.lang.Nullable()
    MethodParameters:
              Name  Flags
      tagSetList    final
      maxStaleness  final
      timeUnit      final
      hedgeOptions  final

  public com.mongodb.TaggableReadPreference withTagSet(com.mongodb.TagSet);
    descriptor: (Lcom/mongodb/TagSet;)Lcom/mongodb/TaggableReadPreference;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.mongodb.TaggableReadPreference$SecondaryPreferredReadPreference this
        start local 1 // com.mongodb.TagSet tagSet
         0: .line 397
            aload 0 /* this */
            aload 1 /* tagSet */
            invokestatic java.util.Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;
            invokevirtual com.mongodb.TaggableReadPreference$SecondaryPreferredReadPreference.withTagSetList:(Ljava/util/List;)Lcom/mongodb/TaggableReadPreference;
            areturn
        end local 1 // com.mongodb.TagSet tagSet
        end local 0 // com.mongodb.TaggableReadPreference$SecondaryPreferredReadPreference this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lcom/mongodb/TaggableReadPreference$SecondaryPreferredReadPreference;
            0    1     1  tagSet  Lcom/mongodb/TagSet;
    MethodParameters:
        Name  Flags
      tagSet  final

  public com.mongodb.TaggableReadPreference withTagSetList(java.util.List<com.mongodb.TagSet>);
    descriptor: (Ljava/util/List;)Lcom/mongodb/TaggableReadPreference;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=2, args_size=2
        start local 0 // com.mongodb.TaggableReadPreference$SecondaryPreferredReadPreference this
        start local 1 // java.util.List tagSetList
         0: .line 402
            ldc "tagSetList"
            aload 1 /* tagSetList */
            invokestatic com.mongodb.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 403
            new com.mongodb.TaggableReadPreference$SecondaryPreferredReadPreference
            dup
            aload 1 /* tagSetList */
            aload 0 /* this */
            getstatic java.util.concurrent.TimeUnit.MILLISECONDS:Ljava/util/concurrent/TimeUnit;
            invokevirtual com.mongodb.TaggableReadPreference$SecondaryPreferredReadPreference.getMaxStaleness:(Ljava/util/concurrent/TimeUnit;)Ljava/lang/Long;
            getstatic java.util.concurrent.TimeUnit.MILLISECONDS:Ljava/util/concurrent/TimeUnit;
            aload 0 /* this */
            invokevirtual com.mongodb.TaggableReadPreference$SecondaryPreferredReadPreference.getHedgeOptions:()Lcom/mongodb/ReadPreferenceHedgeOptions;
            invokespecial com.mongodb.TaggableReadPreference$SecondaryPreferredReadPreference.<init>:(Ljava/util/List;Ljava/lang/Long;Ljava/util/concurrent/TimeUnit;Lcom/mongodb/ReadPreferenceHedgeOptions;)V
            areturn
        end local 1 // java.util.List tagSetList
        end local 0 // com.mongodb.TaggableReadPreference$SecondaryPreferredReadPreference this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    2     0        this  Lcom/mongodb/TaggableReadPreference$SecondaryPreferredReadPreference;
            0    2     1  tagSetList  Ljava/util/List<Lcom/mongodb/TagSet;>;
    Signature: (Ljava/util/List<Lcom/mongodb/TagSet;>;)Lcom/mongodb/TaggableReadPreference;
    MethodParameters:
            Name  Flags
      tagSetList  final

  public com.mongodb.TaggableReadPreference withMaxStalenessMS(java.lang.Long, java.util.concurrent.TimeUnit);
    descriptor: (Ljava/lang/Long;Ljava/util/concurrent/TimeUnit;)Lcom/mongodb/TaggableReadPreference;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=3, args_size=3
        start local 0 // com.mongodb.TaggableReadPreference$SecondaryPreferredReadPreference this
        start local 1 // java.lang.Long maxStaleness
        start local 2 // java.util.concurrent.TimeUnit timeUnit
         0: .line 408
            ldc "maxStaleness is null or >= 0"
            aload 1 /* maxStaleness */
            ifnull 1
            aload 1 /* maxStaleness */
            invokevirtual java.lang.Long.longValue:()J
            lconst_0
            lcmp
            ifge 1
            iconst_0
            goto 2
      StackMap locals:
      StackMap stack: java.lang.String
         1: iconst_1
      StackMap locals: com.mongodb.TaggableReadPreference$SecondaryPreferredReadPreference java.lang.Long java.util.concurrent.TimeUnit
      StackMap stack: java.lang.String int
         2: invokestatic com.mongodb.assertions.Assertions.isTrueArgument:(Ljava/lang/String;Z)V
         3: .line 409
            new com.mongodb.TaggableReadPreference$SecondaryPreferredReadPreference
            dup
            aload 0 /* this */
            invokevirtual com.mongodb.TaggableReadPreference$SecondaryPreferredReadPreference.getTagSetList:()Ljava/util/List;
            aload 1 /* maxStaleness */
            aload 2 /* timeUnit */
            aload 0 /* this */
            invokevirtual com.mongodb.TaggableReadPreference$SecondaryPreferredReadPreference.getHedgeOptions:()Lcom/mongodb/ReadPreferenceHedgeOptions;
            invokespecial com.mongodb.TaggableReadPreference$SecondaryPreferredReadPreference.<init>:(Ljava/util/List;Ljava/lang/Long;Ljava/util/concurrent/TimeUnit;Lcom/mongodb/ReadPreferenceHedgeOptions;)V
            areturn
        end local 2 // java.util.concurrent.TimeUnit timeUnit
        end local 1 // java.lang.Long maxStaleness
        end local 0 // com.mongodb.TaggableReadPreference$SecondaryPreferredReadPreference this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    4     0          this  Lcom/mongodb/TaggableReadPreference$SecondaryPreferredReadPreference;
            0    4     1  maxStaleness  Ljava/lang/Long;
            0    4     2      timeUnit  Ljava/util/concurrent/TimeUnit;
    RuntimeVisibleParameterAnnotations: 
      0:
        com.mongodb.lang.Nullable()
      1:
    MethodParameters:
              Name  Flags
      maxStaleness  final
      timeUnit      final

  public com.mongodb.TaggableReadPreference withHedgeOptions(com.mongodb.ReadPreferenceHedgeOptions);
    descriptor: (Lcom/mongodb/ReadPreferenceHedgeOptions;)Lcom/mongodb/TaggableReadPreference;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=2, args_size=2
        start local 0 // com.mongodb.TaggableReadPreference$SecondaryPreferredReadPreference this
        start local 1 // com.mongodb.ReadPreferenceHedgeOptions hedgeOptions
         0: .line 414
            new com.mongodb.TaggableReadPreference$SecondaryPreferredReadPreference
            dup
            aload 0 /* this */
            invokevirtual com.mongodb.TaggableReadPreference$SecondaryPreferredReadPreference.getTagSetList:()Ljava/util/List;
            aload 0 /* this */
            getstatic java.util.concurrent.TimeUnit.MILLISECONDS:Ljava/util/concurrent/TimeUnit;
            invokevirtual com.mongodb.TaggableReadPreference$SecondaryPreferredReadPreference.getMaxStaleness:(Ljava/util/concurrent/TimeUnit;)Ljava/lang/Long;
            getstatic java.util.concurrent.TimeUnit.MILLISECONDS:Ljava/util/concurrent/TimeUnit;
            aload 1 /* hedgeOptions */
            invokespecial com.mongodb.TaggableReadPreference$SecondaryPreferredReadPreference.<init>:(Ljava/util/List;Ljava/lang/Long;Ljava/util/concurrent/TimeUnit;Lcom/mongodb/ReadPreferenceHedgeOptions;)V
            areturn
        end local 1 // com.mongodb.ReadPreferenceHedgeOptions hedgeOptions
        end local 0 // com.mongodb.TaggableReadPreference$SecondaryPreferredReadPreference this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    1     0          this  Lcom/mongodb/TaggableReadPreference$SecondaryPreferredReadPreference;
            0    1     1  hedgeOptions  Lcom/mongodb/ReadPreferenceHedgeOptions;
    MethodParameters:
              Name  Flags
      hedgeOptions  final

  public java.lang.String getName();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.mongodb.TaggableReadPreference$SecondaryPreferredReadPreference this
         0: .line 419
            ldc "secondaryPreferred"
            areturn
        end local 0 // com.mongodb.TaggableReadPreference$SecondaryPreferredReadPreference this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/mongodb/TaggableReadPreference$SecondaryPreferredReadPreference;

  protected java.util.List<com.mongodb.connection.ServerDescription> chooseForReplicaSet(com.mongodb.connection.ClusterDescription);
    descriptor: (Lcom/mongodb/connection/ClusterDescription;)Ljava/util/List;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // com.mongodb.TaggableReadPreference$SecondaryPreferredReadPreference this
        start local 1 // com.mongodb.connection.ClusterDescription clusterDescription
         0: .line 424
            aload 0 /* this */
            aload 1 /* clusterDescription */
            invokespecial com.mongodb.TaggableReadPreference$SecondaryReadPreference.chooseForReplicaSet:(Lcom/mongodb/connection/ClusterDescription;)Ljava/util/List;
            astore 2 /* selectedServers */
        start local 2 // java.util.List selectedServers
         1: .line 425
            aload 2 /* selectedServers */
            invokeinterface java.util.List.isEmpty:()Z
            ifeq 3
         2: .line 426
            aload 1 /* clusterDescription */
            invokestatic com.mongodb.internal.connection.ClusterDescriptionHelper.getPrimaries:(Lcom/mongodb/connection/ClusterDescription;)Ljava/util/List;
            astore 2 /* selectedServers */
         3: .line 428
      StackMap locals: java.util.List
      StackMap stack:
            aload 2 /* selectedServers */
            areturn
        end local 2 // java.util.List selectedServers
        end local 1 // com.mongodb.connection.ClusterDescription clusterDescription
        end local 0 // com.mongodb.TaggableReadPreference$SecondaryPreferredReadPreference this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    4     0                this  Lcom/mongodb/TaggableReadPreference$SecondaryPreferredReadPreference;
            0    4     1  clusterDescription  Lcom/mongodb/connection/ClusterDescription;
            1    4     2     selectedServers  Ljava/util/List<Lcom/mongodb/connection/ServerDescription;>;
    Signature: (Lcom/mongodb/connection/ClusterDescription;)Ljava/util/List<Lcom/mongodb/connection/ServerDescription;>;
    MethodParameters:
                    Name  Flags
      clusterDescription  final

  public com.mongodb.ReadPreference withHedgeOptions(com.mongodb.ReadPreferenceHedgeOptions);
    descriptor: (Lcom/mongodb/ReadPreferenceHedgeOptions;)Lcom/mongodb/ReadPreference;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
         0: .line 1
            aload 0
            aload 1
            invokevirtual com.mongodb.TaggableReadPreference$SecondaryPreferredReadPreference.withHedgeOptions:(Lcom/mongodb/ReadPreferenceHedgeOptions;)Lcom/mongodb/TaggableReadPreference;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public com.mongodb.ReadPreference withTagSetList(java.util.List);
    descriptor: (Ljava/util/List;)Lcom/mongodb/ReadPreference;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
         0: .line 1
            aload 0
            aload 1
            invokevirtual com.mongodb.TaggableReadPreference$SecondaryPreferredReadPreference.withTagSetList:(Ljava/util/List;)Lcom/mongodb/TaggableReadPreference;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public com.mongodb.ReadPreference withMaxStalenessMS(java.lang.Long, java.util.concurrent.TimeUnit);
    descriptor: (Ljava/lang/Long;Ljava/util/concurrent/TimeUnit;)Lcom/mongodb/ReadPreference;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=3, locals=3, args_size=3
         0: .line 1
            aload 0
            aload 1
            aload 2
            invokevirtual com.mongodb.TaggableReadPreference$SecondaryPreferredReadPreference.withMaxStalenessMS:(Ljava/lang/Long;Ljava/util/concurrent/TimeUnit;)Lcom/mongodb/TaggableReadPreference;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public com.mongodb.ReadPreference withTagSet(com.mongodb.TagSet);
    descriptor: (Lcom/mongodb/TagSet;)Lcom/mongodb/ReadPreference;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
         0: .line 1
            aload 0
            aload 1
            invokevirtual com.mongodb.TaggableReadPreference$SecondaryPreferredReadPreference.withTagSet:(Lcom/mongodb/TagSet;)Lcom/mongodb/TaggableReadPreference;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
}
SourceFile: "TaggableReadPreference.java"
NestHost: com.mongodb.TaggableReadPreference
InnerClasses:
  SecondaryPreferredReadPreference = com.mongodb.TaggableReadPreference$SecondaryPreferredReadPreference of com.mongodb.TaggableReadPreference
  SecondaryReadPreference = com.mongodb.TaggableReadPreference$SecondaryReadPreference of com.mongodb.TaggableReadPreference