public class org.yaml.snakeyaml.constructor.Constructor extends org.yaml.snakeyaml.constructor.SafeConstructor
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.yaml.snakeyaml.constructor.Constructor
  super_class: org.yaml.snakeyaml.constructor.SafeConstructor
{
  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.yaml.snakeyaml.constructor.Constructor this
         0: .line 46
            aload 0 /* this */
            ldc Ljava/lang/Object;
            invokespecial org.yaml.snakeyaml.constructor.Constructor.<init>:(Ljava/lang/Class;)V
         1: .line 47
            return
        end local 0 // org.yaml.snakeyaml.constructor.Constructor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/yaml/snakeyaml/constructor/Constructor;

  public void <init>(java.lang.Class<? extends java.lang.Object>);
    descriptor: (Ljava/lang/Class;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // org.yaml.snakeyaml.constructor.Constructor this
        start local 1 // java.lang.Class theRoot
         0: .line 56
            aload 0 /* this */
            new org.yaml.snakeyaml.TypeDescription
            dup
            aload 1 /* theRoot */
            invokestatic org.yaml.snakeyaml.constructor.Constructor.checkRoot:(Ljava/lang/Class;)Ljava/lang/Class;
            invokespecial org.yaml.snakeyaml.TypeDescription.<init>:(Ljava/lang/Class;)V
            invokespecial org.yaml.snakeyaml.constructor.Constructor.<init>:(Lorg/yaml/snakeyaml/TypeDescription;)V
         1: .line 57
            return
        end local 1 // java.lang.Class theRoot
        end local 0 // org.yaml.snakeyaml.constructor.Constructor this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lorg/yaml/snakeyaml/constructor/Constructor;
            0    2     1  theRoot  Ljava/lang/Class<+Ljava/lang/Object;>;
    Signature: (Ljava/lang/Class<+Ljava/lang/Object;>;)V
    MethodParameters:
         Name  Flags
      theRoot  

  private static java.lang.Class<? extends java.lang.Object> checkRoot(java.lang.Class<? extends java.lang.Object>);
    descriptor: (Ljava/lang/Class;)Ljava/lang/Class;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // java.lang.Class theRoot
         0: .line 63
            aload 0 /* theRoot */
            ifnonnull 2
         1: .line 64
            new java.lang.NullPointerException
            dup
            ldc "Root class must be provided."
            invokespecial java.lang.NullPointerException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 66
      StackMap locals:
      StackMap stack:
            aload 0 /* theRoot */
            areturn
        end local 0 // java.lang.Class theRoot
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0  theRoot  Ljava/lang/Class<+Ljava/lang/Object;>;
    Signature: (Ljava/lang/Class<+Ljava/lang/Object;>;)Ljava/lang/Class<+Ljava/lang/Object;>;
    MethodParameters:
         Name  Flags
      theRoot  

  public void <init>(org.yaml.snakeyaml.TypeDescription);
    descriptor: (Lorg/yaml/snakeyaml/TypeDescription;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.yaml.snakeyaml.constructor.Constructor this
        start local 1 // org.yaml.snakeyaml.TypeDescription theRoot
         0: .line 70
            aload 0 /* this */
            aload 1 /* theRoot */
            aconst_null
            invokespecial org.yaml.snakeyaml.constructor.Constructor.<init>:(Lorg/yaml/snakeyaml/TypeDescription;Ljava/util/Collection;)V
         1: .line 71
            return
        end local 1 // org.yaml.snakeyaml.TypeDescription theRoot
        end local 0 // org.yaml.snakeyaml.constructor.Constructor this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lorg/yaml/snakeyaml/constructor/Constructor;
            0    2     1  theRoot  Lorg/yaml/snakeyaml/TypeDescription;
    MethodParameters:
         Name  Flags
      theRoot  

  public void <init>(org.yaml.snakeyaml.TypeDescription, java.util.Collection<org.yaml.snakeyaml.TypeDescription>);
    descriptor: (Lorg/yaml/snakeyaml/TypeDescription;Ljava/util/Collection;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=3
        start local 0 // org.yaml.snakeyaml.constructor.Constructor this
        start local 1 // org.yaml.snakeyaml.TypeDescription theRoot
        start local 2 // java.util.Collection moreTDs
         0: .line 73
            aload 0 /* this */
            invokespecial org.yaml.snakeyaml.constructor.SafeConstructor.<init>:()V
         1: .line 74
            aload 1 /* theRoot */
            ifnonnull 3
         2: .line 75
            new java.lang.NullPointerException
            dup
            ldc "Root type must be provided."
            invokespecial java.lang.NullPointerException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 77
      StackMap locals: org.yaml.snakeyaml.constructor.Constructor org.yaml.snakeyaml.TypeDescription java.util.Collection
      StackMap stack:
            aload 0 /* this */
            getfield org.yaml.snakeyaml.constructor.Constructor.yamlConstructors:Ljava/util/Map;
            aconst_null
            new org.yaml.snakeyaml.constructor.Constructor$ConstructYamlObject
            dup
            aload 0 /* this */
            invokespecial org.yaml.snakeyaml.constructor.Constructor$ConstructYamlObject.<init>:(Lorg/yaml/snakeyaml/constructor/Constructor;)V
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         4: .line 78
            ldc Ljava/lang/Object;
            aload 1 /* theRoot */
            invokevirtual org.yaml.snakeyaml.TypeDescription.getType:()Ljava/lang/Class;
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifne 6
         5: .line 79
            aload 0 /* this */
            new org.yaml.snakeyaml.nodes.Tag
            dup
            aload 1 /* theRoot */
            invokevirtual org.yaml.snakeyaml.TypeDescription.getType:()Ljava/lang/Class;
            invokespecial org.yaml.snakeyaml.nodes.Tag.<init>:(Ljava/lang/Class;)V
            putfield org.yaml.snakeyaml.constructor.Constructor.rootTag:Lorg/yaml/snakeyaml/nodes/Tag;
         6: .line 81
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.yaml.snakeyaml.constructor.Constructor.yamlClassConstructors:Ljava/util/Map;
            getstatic org.yaml.snakeyaml.nodes.NodeId.scalar:Lorg/yaml/snakeyaml/nodes/NodeId;
            new org.yaml.snakeyaml.constructor.Constructor$ConstructScalar
            dup
            aload 0 /* this */
            invokespecial org.yaml.snakeyaml.constructor.Constructor$ConstructScalar.<init>:(Lorg/yaml/snakeyaml/constructor/Constructor;)V
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         7: .line 82
            aload 0 /* this */
            getfield org.yaml.snakeyaml.constructor.Constructor.yamlClassConstructors:Ljava/util/Map;
            getstatic org.yaml.snakeyaml.nodes.NodeId.mapping:Lorg/yaml/snakeyaml/nodes/NodeId;
            new org.yaml.snakeyaml.constructor.Constructor$ConstructMapping
            dup
            aload 0 /* this */
            invokespecial org.yaml.snakeyaml.constructor.Constructor$ConstructMapping.<init>:(Lorg/yaml/snakeyaml/constructor/Constructor;)V
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         8: .line 83
            aload 0 /* this */
            getfield org.yaml.snakeyaml.constructor.Constructor.yamlClassConstructors:Ljava/util/Map;
            getstatic org.yaml.snakeyaml.nodes.NodeId.sequence:Lorg/yaml/snakeyaml/nodes/NodeId;
            new org.yaml.snakeyaml.constructor.Constructor$ConstructSequence
            dup
            aload 0 /* this */
            invokespecial org.yaml.snakeyaml.constructor.Constructor$ConstructSequence.<init>:(Lorg/yaml/snakeyaml/constructor/Constructor;)V
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         9: .line 84
            aload 0 /* this */
            aload 1 /* theRoot */
            invokevirtual org.yaml.snakeyaml.constructor.Constructor.addTypeDescription:(Lorg/yaml/snakeyaml/TypeDescription;)Lorg/yaml/snakeyaml/TypeDescription;
            pop
        10: .line 85
            aload 2 /* moreTDs */
            ifnull 15
        11: .line 86
            aload 2 /* moreTDs */
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 4
            goto 14
      StackMap locals: org.yaml.snakeyaml.constructor.Constructor org.yaml.snakeyaml.TypeDescription java.util.Collection top java.util.Iterator
      StackMap stack:
        12: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.yaml.snakeyaml.TypeDescription
            astore 3 /* td */
        start local 3 // org.yaml.snakeyaml.TypeDescription td
        13: .line 87
            aload 0 /* this */
            aload 3 /* td */
            invokevirtual org.yaml.snakeyaml.constructor.Constructor.addTypeDescription:(Lorg/yaml/snakeyaml/TypeDescription;)Lorg/yaml/snakeyaml/TypeDescription;
            pop
        end local 3 // org.yaml.snakeyaml.TypeDescription td
        14: .line 86
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 12
        15: .line 90
      StackMap locals: org.yaml.snakeyaml.constructor.Constructor org.yaml.snakeyaml.TypeDescription java.util.Collection
      StackMap stack:
            return
        end local 2 // java.util.Collection moreTDs
        end local 1 // org.yaml.snakeyaml.TypeDescription theRoot
        end local 0 // org.yaml.snakeyaml.constructor.Constructor this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   16     0     this  Lorg/yaml/snakeyaml/constructor/Constructor;
            0   16     1  theRoot  Lorg/yaml/snakeyaml/TypeDescription;
            0   16     2  moreTDs  Ljava/util/Collection<Lorg/yaml/snakeyaml/TypeDescription;>;
           13   14     3       td  Lorg/yaml/snakeyaml/TypeDescription;
    Signature: (Lorg/yaml/snakeyaml/TypeDescription;Ljava/util/Collection<Lorg/yaml/snakeyaml/TypeDescription;>;)V
    MethodParameters:
         Name  Flags
      theRoot  
      moreTDs  

  public void <init>(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.yaml.snakeyaml.constructor.Constructor this
        start local 1 // java.lang.String theRoot
         0: .line 102
            aload 0 /* this */
            aload 1 /* theRoot */
            invokestatic org.yaml.snakeyaml.constructor.Constructor.check:(Ljava/lang/String;)Ljava/lang/String;
            invokestatic java.lang.Class.forName:(Ljava/lang/String;)Ljava/lang/Class;
            invokespecial org.yaml.snakeyaml.constructor.Constructor.<init>:(Ljava/lang/Class;)V
         1: .line 103
            return
        end local 1 // java.lang.String theRoot
        end local 0 // org.yaml.snakeyaml.constructor.Constructor this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lorg/yaml/snakeyaml/constructor/Constructor;
            0    2     1  theRoot  Ljava/lang/String;
    Exceptions:
      throws java.lang.ClassNotFoundException
    MethodParameters:
         Name  Flags
      theRoot  

  private static final java.lang.String check(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // java.lang.String s
         0: .line 106
            aload 0 /* s */
            ifnonnull 2
         1: .line 107
            new java.lang.NullPointerException
            dup
            ldc "Root type must be provided."
            invokespecial java.lang.NullPointerException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 109
      StackMap locals:
      StackMap stack:
            aload 0 /* s */
            invokevirtual java.lang.String.trim:()Ljava/lang/String;
            invokevirtual java.lang.String.length:()I
            ifne 4
         3: .line 110
            new org.yaml.snakeyaml.error.YAMLException
            dup
            ldc "Root type must be provided."
            invokespecial org.yaml.snakeyaml.error.YAMLException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 112
      StackMap locals:
      StackMap stack:
            aload 0 /* s */
            areturn
        end local 0 // java.lang.String s
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0     s  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      s     

  protected java.lang.Class<?> getClassForNode(org.yaml.snakeyaml.nodes.Node);
    descriptor: (Lorg/yaml/snakeyaml/nodes/Node;)Ljava/lang/Class;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=5, args_size=2
        start local 0 // org.yaml.snakeyaml.constructor.Constructor this
        start local 1 // org.yaml.snakeyaml.nodes.Node node
         0: .line 635
            aload 0 /* this */
            getfield org.yaml.snakeyaml.constructor.Constructor.typeTags:Ljava/util/Map;
            aload 1 /* node */
            invokevirtual org.yaml.snakeyaml.nodes.Node.getTag:()Lorg/yaml/snakeyaml/nodes/Tag;
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.Class
            astore 2 /* classForTag */
        start local 2 // java.lang.Class classForTag
         1: .line 636
            aload 2 /* classForTag */
            ifnonnull 9
         2: .line 637
            aload 1 /* node */
            invokevirtual org.yaml.snakeyaml.nodes.Node.getTag:()Lorg/yaml/snakeyaml/nodes/Tag;
            invokevirtual org.yaml.snakeyaml.nodes.Tag.getClassName:()Ljava/lang/String;
            astore 3 /* name */
        start local 3 // java.lang.String name
         3: .line 640
            aload 0 /* this */
            aload 3 /* name */
            invokevirtual org.yaml.snakeyaml.constructor.Constructor.getClassForName:(Ljava/lang/String;)Ljava/lang/Class;
            astore 4 /* cl */
        start local 4 // java.lang.Class cl
         4: .line 641
            goto 7
        end local 4 // java.lang.Class cl
      StackMap locals: org.yaml.snakeyaml.constructor.Constructor org.yaml.snakeyaml.nodes.Node java.lang.Class java.lang.String
      StackMap stack: java.lang.ClassNotFoundException
         5: pop
         6: .line 642
            new org.yaml.snakeyaml.error.YAMLException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Class not found: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* name */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial org.yaml.snakeyaml.error.YAMLException.<init>:(Ljava/lang/String;)V
            athrow
        start local 4 // java.lang.Class cl
         7: .line 644
      StackMap locals: java.lang.Class
      StackMap stack:
            aload 0 /* this */
            getfield org.yaml.snakeyaml.constructor.Constructor.typeTags:Ljava/util/Map;
            aload 1 /* node */
            invokevirtual org.yaml.snakeyaml.nodes.Node.getTag:()Lorg/yaml/snakeyaml/nodes/Tag;
            aload 4 /* cl */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         8: .line 645
            aload 4 /* cl */
            areturn
        end local 4 // java.lang.Class cl
        end local 3 // java.lang.String name
         9: .line 647
      StackMap locals:
      StackMap stack:
            aload 2 /* classForTag */
            areturn
        end local 2 // java.lang.Class classForTag
        end local 1 // org.yaml.snakeyaml.nodes.Node node
        end local 0 // org.yaml.snakeyaml.constructor.Constructor this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   10     0         this  Lorg/yaml/snakeyaml/constructor/Constructor;
            0   10     1         node  Lorg/yaml/snakeyaml/nodes/Node;
            1   10     2  classForTag  Ljava/lang/Class<+Ljava/lang/Object;>;
            3    9     3         name  Ljava/lang/String;
            4    5     4           cl  Ljava/lang/Class<*>;
            7    9     4           cl  Ljava/lang/Class<*>;
      Exception table:
        from    to  target  type
           3     4       5  Class java.lang.ClassNotFoundException
    Signature: (Lorg/yaml/snakeyaml/nodes/Node;)Ljava/lang/Class<*>;
    MethodParameters:
      Name  Flags
      node  

  protected java.lang.Class<?> getClassForName(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/Class;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.yaml.snakeyaml.constructor.Constructor this
        start local 1 // java.lang.String name
         0: .line 653
            aload 1 /* name */
            iconst_1
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            invokevirtual java.lang.Thread.getContextClassLoader:()Ljava/lang/ClassLoader;
            invokestatic java.lang.Class.forName:(Ljava/lang/String;ZLjava/lang/ClassLoader;)Ljava/lang/Class;
         1: areturn
         2: .line 654
      StackMap locals:
      StackMap stack: java.lang.ClassNotFoundException
            pop
         3: .line 655
            aload 1 /* name */
            invokestatic java.lang.Class.forName:(Ljava/lang/String;)Ljava/lang/Class;
            areturn
        end local 1 // java.lang.String name
        end local 0 // org.yaml.snakeyaml.constructor.Constructor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/yaml/snakeyaml/constructor/Constructor;
            0    4     1  name  Ljava/lang/String;
      Exception table:
        from    to  target  type
           0     1       2  Class java.lang.ClassNotFoundException
    Exceptions:
      throws java.lang.ClassNotFoundException
    Signature: (Ljava/lang/String;)Ljava/lang/Class<*>;
    MethodParameters:
      Name  Flags
      name  
}
SourceFile: "Constructor.java"
NestMembers:
  org.yaml.snakeyaml.constructor.Constructor$ConstructMapping  org.yaml.snakeyaml.constructor.Constructor$ConstructScalar  org.yaml.snakeyaml.constructor.Constructor$ConstructSequence  org.yaml.snakeyaml.constructor.Constructor$ConstructYamlObject
InnerClasses:
  protected ConstructMapping = org.yaml.snakeyaml.constructor.Constructor$ConstructMapping of org.yaml.snakeyaml.constructor.Constructor
  protected ConstructScalar = org.yaml.snakeyaml.constructor.Constructor$ConstructScalar of org.yaml.snakeyaml.constructor.Constructor
  protected ConstructSequence = org.yaml.snakeyaml.constructor.Constructor$ConstructSequence of org.yaml.snakeyaml.constructor.Constructor
  protected ConstructYamlObject = org.yaml.snakeyaml.constructor.Constructor$ConstructYamlObject of org.yaml.snakeyaml.constructor.Constructor