final class com.mongodb.DBObjectCollationHelper
  minor version: 0
  major version: 59
  flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
  this_class: com.mongodb.DBObjectCollationHelper
  super_class: java.lang.Object
{
  static com.mongodb.client.model.Collation createCollationFromOptions(com.mongodb.DBObject);
    descriptor: (Lcom/mongodb/DBObject;)Lcom/mongodb/client/model/Collation;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=4, args_size=1
        start local 0 // com.mongodb.DBObject options
         0: .line 30
            aload 0 /* options */
            ldc "collation"
            invokeinterface com.mongodb.DBObject.get:(Ljava/lang/String;)Ljava/lang/Object;
            ifnonnull 2
         1: .line 31
            aconst_null
            areturn
         2: .line 32
      StackMap locals:
      StackMap stack:
            aload 0 /* options */
            ldc "collation"
            invokeinterface com.mongodb.DBObject.get:(Ljava/lang/String;)Ljava/lang/Object;
            instanceof com.mongodb.DBObject
            ifne 4
         3: .line 33
            new java.lang.IllegalArgumentException
            dup
            ldc "collation options should be a document"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 35
      StackMap locals:
      StackMap stack:
            invokestatic com.mongodb.client.model.Collation.builder:()Lcom/mongodb/client/model/Collation$Builder;
            astore 1 /* builder */
        start local 1 // com.mongodb.client.model.Collation$Builder builder
         5: .line 36
            aload 0 /* options */
            ldc "collation"
            invokeinterface com.mongodb.DBObject.get:(Ljava/lang/String;)Ljava/lang/Object;
            checkcast com.mongodb.DBObject
            astore 2 /* collation */
        start local 2 // com.mongodb.DBObject collation
         6: .line 38
            aload 2 /* collation */
            ldc "locale"
            invokeinterface com.mongodb.DBObject.get:(Ljava/lang/String;)Ljava/lang/Object;
            ifnonnull 8
         7: .line 39
            new java.lang.IllegalArgumentException
            dup
            ldc "'locale' is required when providing collation options"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         8: .line 41
      StackMap locals: com.mongodb.client.model.Collation$Builder com.mongodb.DBObject
      StackMap stack:
            aload 2 /* collation */
            ldc "locale"
            invokeinterface com.mongodb.DBObject.get:(Ljava/lang/String;)Ljava/lang/Object;
            astore 3 /* locale */
        start local 3 // java.lang.Object locale
         9: .line 42
            aload 3 /* locale */
            instanceof java.lang.String
            ifne 11
        10: .line 43
            new java.lang.IllegalArgumentException
            dup
            ldc "collation 'locale' should be a String"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        11: .line 45
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 1 /* builder */
            aload 3 /* locale */
            checkcast java.lang.String
            invokevirtual com.mongodb.client.model.Collation$Builder.locale:(Ljava/lang/String;)Lcom/mongodb/client/model/Collation$Builder;
            pop
        end local 3 // java.lang.Object locale
        12: .line 48
            aload 2 /* collation */
            ldc "caseLevel"
            invokeinterface com.mongodb.DBObject.get:(Ljava/lang/String;)Ljava/lang/Object;
            ifnull 17
        13: .line 49
            aload 2 /* collation */
            ldc "caseLevel"
            invokeinterface com.mongodb.DBObject.get:(Ljava/lang/String;)Ljava/lang/Object;
            astore 3 /* caseLevel */
        start local 3 // java.lang.Object caseLevel
        14: .line 50
            aload 3 /* caseLevel */
            instanceof java.lang.Boolean
            ifne 16
        15: .line 51
            new java.lang.IllegalArgumentException
            dup
            ldc "collation 'caseLevel' should be a Boolean"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        16: .line 53
      StackMap locals:
      StackMap stack:
            aload 1 /* builder */
            aload 3 /* caseLevel */
            checkcast java.lang.Boolean
            invokevirtual com.mongodb.client.model.Collation$Builder.caseLevel:(Ljava/lang/Boolean;)Lcom/mongodb/client/model/Collation$Builder;
            pop
        end local 3 // java.lang.Object caseLevel
        17: .line 56
      StackMap locals:
      StackMap stack:
            aload 2 /* collation */
            ldc "caseFirst"
            invokeinterface com.mongodb.DBObject.get:(Ljava/lang/String;)Ljava/lang/Object;
            ifnull 22
        18: .line 57
            aload 2 /* collation */
            ldc "caseFirst"
            invokeinterface com.mongodb.DBObject.get:(Ljava/lang/String;)Ljava/lang/Object;
            astore 3 /* caseFirst */
        start local 3 // java.lang.Object caseFirst
        19: .line 58
            aload 3 /* caseFirst */
            instanceof java.lang.String
            ifne 21
        20: .line 59
            new java.lang.IllegalArgumentException
            dup
            ldc "collation 'caseFirst' should be a String"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        21: .line 61
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 1 /* builder */
            aload 3 /* caseFirst */
            checkcast java.lang.String
            invokestatic com.mongodb.client.model.CollationCaseFirst.fromString:(Ljava/lang/String;)Lcom/mongodb/client/model/CollationCaseFirst;
            invokevirtual com.mongodb.client.model.Collation$Builder.collationCaseFirst:(Lcom/mongodb/client/model/CollationCaseFirst;)Lcom/mongodb/client/model/Collation$Builder;
            pop
        end local 3 // java.lang.Object caseFirst
        22: .line 64
      StackMap locals:
      StackMap stack:
            aload 2 /* collation */
            ldc "strength"
            invokeinterface com.mongodb.DBObject.get:(Ljava/lang/String;)Ljava/lang/Object;
            ifnull 27
        23: .line 65
            aload 2 /* collation */
            ldc "strength"
            invokeinterface com.mongodb.DBObject.get:(Ljava/lang/String;)Ljava/lang/Object;
            astore 3 /* strength */
        start local 3 // java.lang.Object strength
        24: .line 66
            aload 3 /* strength */
            instanceof java.lang.Integer
            ifne 26
        25: .line 67
            new java.lang.IllegalArgumentException
            dup
            ldc "collation 'strength' should be an Integer"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        26: .line 69
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 1 /* builder */
            aload 3 /* strength */
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            invokestatic com.mongodb.client.model.CollationStrength.fromInt:(I)Lcom/mongodb/client/model/CollationStrength;
            invokevirtual com.mongodb.client.model.Collation$Builder.collationStrength:(Lcom/mongodb/client/model/CollationStrength;)Lcom/mongodb/client/model/Collation$Builder;
            pop
        end local 3 // java.lang.Object strength
        27: .line 72
      StackMap locals:
      StackMap stack:
            aload 2 /* collation */
            ldc "numericOrdering"
            invokeinterface com.mongodb.DBObject.get:(Ljava/lang/String;)Ljava/lang/Object;
            ifnull 32
        28: .line 73
            aload 2 /* collation */
            ldc "numericOrdering"
            invokeinterface com.mongodb.DBObject.get:(Ljava/lang/String;)Ljava/lang/Object;
            astore 3 /* numericOrdering */
        start local 3 // java.lang.Object numericOrdering
        29: .line 74
            aload 3 /* numericOrdering */
            instanceof java.lang.Boolean
            ifne 31
        30: .line 75
            new java.lang.IllegalArgumentException
            dup
            ldc "collation 'numericOrdering' should be a Boolean"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        31: .line 77
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 1 /* builder */
            aload 3 /* numericOrdering */
            checkcast java.lang.Boolean
            invokevirtual com.mongodb.client.model.Collation$Builder.numericOrdering:(Ljava/lang/Boolean;)Lcom/mongodb/client/model/Collation$Builder;
            pop
        end local 3 // java.lang.Object numericOrdering
        32: .line 80
      StackMap locals:
      StackMap stack:
            aload 2 /* collation */
            ldc "alternate"
            invokeinterface com.mongodb.DBObject.get:(Ljava/lang/String;)Ljava/lang/Object;
            ifnull 37
        33: .line 81
            aload 2 /* collation */
            ldc "alternate"
            invokeinterface com.mongodb.DBObject.get:(Ljava/lang/String;)Ljava/lang/Object;
            astore 3 /* alternate */
        start local 3 // java.lang.Object alternate
        34: .line 82
            aload 3 /* alternate */
            instanceof java.lang.String
            ifne 36
        35: .line 83
            new java.lang.IllegalArgumentException
            dup
            ldc "collation 'alternate' should be a String"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        36: .line 85
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 1 /* builder */
            aload 3 /* alternate */
            checkcast java.lang.String
            invokestatic com.mongodb.client.model.CollationAlternate.fromString:(Ljava/lang/String;)Lcom/mongodb/client/model/CollationAlternate;
            invokevirtual com.mongodb.client.model.Collation$Builder.collationAlternate:(Lcom/mongodb/client/model/CollationAlternate;)Lcom/mongodb/client/model/Collation$Builder;
            pop
        end local 3 // java.lang.Object alternate
        37: .line 88
      StackMap locals:
      StackMap stack:
            aload 2 /* collation */
            ldc "maxVariable"
            invokeinterface com.mongodb.DBObject.get:(Ljava/lang/String;)Ljava/lang/Object;
            ifnull 42
        38: .line 89
            aload 2 /* collation */
            ldc "maxVariable"
            invokeinterface com.mongodb.DBObject.get:(Ljava/lang/String;)Ljava/lang/Object;
            astore 3 /* maxVariable */
        start local 3 // java.lang.Object maxVariable
        39: .line 90
            aload 3 /* maxVariable */
            instanceof java.lang.String
            ifne 41
        40: .line 91
            new java.lang.IllegalArgumentException
            dup
            ldc "collation 'maxVariable' should be a String"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        41: .line 93
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 1 /* builder */
            aload 3 /* maxVariable */
            checkcast java.lang.String
            invokestatic com.mongodb.client.model.CollationMaxVariable.fromString:(Ljava/lang/String;)Lcom/mongodb/client/model/CollationMaxVariable;
            invokevirtual com.mongodb.client.model.Collation$Builder.collationMaxVariable:(Lcom/mongodb/client/model/CollationMaxVariable;)Lcom/mongodb/client/model/Collation$Builder;
            pop
        end local 3 // java.lang.Object maxVariable
        42: .line 96
      StackMap locals:
      StackMap stack:
            aload 2 /* collation */
            ldc "normalization"
            invokeinterface com.mongodb.DBObject.get:(Ljava/lang/String;)Ljava/lang/Object;
            ifnull 47
        43: .line 97
            aload 2 /* collation */
            ldc "normalization"
            invokeinterface com.mongodb.DBObject.get:(Ljava/lang/String;)Ljava/lang/Object;
            astore 3 /* normalization */
        start local 3 // java.lang.Object normalization
        44: .line 98
            aload 3 /* normalization */
            instanceof java.lang.Boolean
            ifne 46
        45: .line 99
            new java.lang.IllegalArgumentException
            dup
            ldc "collation 'normalization' should be a Boolean"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        46: .line 101
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 1 /* builder */
            aload 3 /* normalization */
            checkcast java.lang.Boolean
            invokevirtual com.mongodb.client.model.Collation$Builder.normalization:(Ljava/lang/Boolean;)Lcom/mongodb/client/model/Collation$Builder;
            pop
        end local 3 // java.lang.Object normalization
        47: .line 104
      StackMap locals:
      StackMap stack:
            aload 2 /* collation */
            ldc "backwards"
            invokeinterface com.mongodb.DBObject.get:(Ljava/lang/String;)Ljava/lang/Object;
            ifnull 52
        48: .line 105
            aload 2 /* collation */
            ldc "backwards"
            invokeinterface com.mongodb.DBObject.get:(Ljava/lang/String;)Ljava/lang/Object;
            astore 3 /* backwards */
        start local 3 // java.lang.Object backwards
        49: .line 106
            aload 3 /* backwards */
            instanceof java.lang.Boolean
            ifne 51
        50: .line 107
            new java.lang.IllegalArgumentException
            dup
            ldc "collation 'backwards' should be a Boolean"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        51: .line 109
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 1 /* builder */
            aload 3 /* backwards */
            checkcast java.lang.Boolean
            invokevirtual com.mongodb.client.model.Collation$Builder.backwards:(Ljava/lang/Boolean;)Lcom/mongodb/client/model/Collation$Builder;
            pop
        end local 3 // java.lang.Object backwards
        52: .line 112
      StackMap locals:
      StackMap stack:
            aload 1 /* builder */
            invokevirtual com.mongodb.client.model.Collation$Builder.build:()Lcom/mongodb/client/model/Collation;
            areturn
        end local 2 // com.mongodb.DBObject collation
        end local 1 // com.mongodb.client.model.Collation$Builder builder
        end local 0 // com.mongodb.DBObject options
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   53     0          options  Lcom/mongodb/DBObject;
            5   53     1          builder  Lcom/mongodb/client/model/Collation$Builder;
            6   53     2        collation  Lcom/mongodb/DBObject;
            9   12     3           locale  Ljava/lang/Object;
           14   17     3        caseLevel  Ljava/lang/Object;
           19   22     3        caseFirst  Ljava/lang/Object;
           24   27     3         strength  Ljava/lang/Object;
           29   32     3  numericOrdering  Ljava/lang/Object;
           34   37     3        alternate  Ljava/lang/Object;
           39   42     3      maxVariable  Ljava/lang/Object;
           44   47     3    normalization  Ljava/lang/Object;
           49   52     3        backwards  Ljava/lang/Object;
    RuntimeVisibleAnnotations: 
      com.mongodb.lang.Nullable()
    MethodParameters:
         Name  Flags
      options  final

  private void <init>();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.mongodb.DBObjectCollationHelper this
         0: .line 116
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 117
            return
        end local 0 // com.mongodb.DBObjectCollationHelper this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/mongodb/DBObjectCollationHelper;
}
SourceFile: "DBObjectCollationHelper.java"
InnerClasses:
  public final Builder = com.mongodb.client.model.Collation$Builder of com.mongodb.client.model.Collation