class freemarker.ext.dom.DocumentModel extends freemarker.ext.dom.NodeModel implements freemarker.template.TemplateHashModel
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: freemarker.ext.dom.DocumentModel
  super_class: freemarker.ext.dom.NodeModel
{
  private freemarker.ext.dom.ElementModel rootElement;
    descriptor: Lfreemarker/ext/dom/ElementModel;
    flags: (0x0002) ACC_PRIVATE

  void <init>(org.w3c.dom.Document);
    descriptor: (Lorg/w3c/dom/Document;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // freemarker.ext.dom.DocumentModel this
        start local 1 // org.w3c.dom.Document doc
         0: .line 40
            aload 0 /* this */
            aload 1 /* doc */
            invokespecial freemarker.ext.dom.NodeModel.<init>:(Lorg/w3c/dom/Node;)V
         1: .line 41
            return
        end local 1 // org.w3c.dom.Document doc
        end local 0 // freemarker.ext.dom.DocumentModel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lfreemarker/ext/dom/DocumentModel;
            0    2     1   doc  Lorg/w3c/dom/Document;
    MethodParameters:
      Name  Flags
      doc   

  public java.lang.String getNodeName();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // freemarker.ext.dom.DocumentModel this
         0: .line 44
            ldc "@document"
            areturn
        end local 0 // freemarker.ext.dom.DocumentModel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lfreemarker/ext/dom/DocumentModel;

  public freemarker.template.TemplateModel get(java.lang.String);
    descriptor: (Ljava/lang/String;)Lfreemarker/template/TemplateModel;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // freemarker.ext.dom.DocumentModel this
        start local 1 // java.lang.String key
         0: .line 49
            aload 1 /* key */
            ldc "*"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 2
         1: .line 50
            aload 0 /* this */
            invokevirtual freemarker.ext.dom.DocumentModel.getRootElement:()Lfreemarker/ext/dom/ElementModel;
            areturn
         2: .line 51
      StackMap locals:
      StackMap stack:
            aload 1 /* key */
            ldc "**"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 5
         3: .line 52
            aload 0 /* this */
            getfield freemarker.ext.dom.DocumentModel.node:Lorg/w3c/dom/Node;
            checkcast org.w3c.dom.Document
            ldc "*"
            invokeinterface org.w3c.dom.Document.getElementsByTagName:(Ljava/lang/String;)Lorg/w3c/dom/NodeList;
            astore 2 /* nl */
        start local 2 // org.w3c.dom.NodeList nl
         4: .line 53
            new freemarker.ext.dom.NodeListModel
            dup
            aload 2 /* nl */
            aload 0 /* this */
            invokespecial freemarker.ext.dom.NodeListModel.<init>:(Lorg/w3c/dom/NodeList;Lfreemarker/ext/dom/NodeModel;)V
            areturn
        end local 2 // org.w3c.dom.NodeList nl
         5: .line 54
      StackMap locals:
      StackMap stack:
            aload 1 /* key */
            invokestatic freemarker.ext.dom.DomStringUtil.isXMLNameLike:(Ljava/lang/String;)Z
            ifeq 10
         6: .line 55
            aload 0 /* this */
            getfield freemarker.ext.dom.DocumentModel.node:Lorg/w3c/dom/Node;
            checkcast org.w3c.dom.Document
            invokeinterface org.w3c.dom.Document.getDocumentElement:()Lorg/w3c/dom/Element;
            invokestatic freemarker.ext.dom.NodeModel.wrap:(Lorg/w3c/dom/Node;)Lfreemarker/ext/dom/NodeModel;
            checkcast freemarker.ext.dom.ElementModel
            astore 2 /* em */
        start local 2 // freemarker.ext.dom.ElementModel em
         7: .line 56
            aload 2 /* em */
            aload 1 /* key */
            invokestatic freemarker.core.Environment.getCurrentEnvironment:()Lfreemarker/core/Environment;
            invokevirtual freemarker.ext.dom.ElementModel.matchesName:(Ljava/lang/String;Lfreemarker/core/Environment;)Z
            ifeq 9
         8: .line 57
            aload 2 /* em */
            areturn
         9: .line 59
      StackMap locals: freemarker.ext.dom.ElementModel
      StackMap stack:
            new freemarker.ext.dom.NodeListModel
            dup
            aload 0 /* this */
            invokespecial freemarker.ext.dom.NodeListModel.<init>:(Lfreemarker/ext/dom/NodeModel;)V
            areturn
        end local 2 // freemarker.ext.dom.ElementModel em
        10: .line 62
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* key */
            invokespecial freemarker.ext.dom.NodeModel.get:(Ljava/lang/String;)Lfreemarker/template/TemplateModel;
            areturn
        end local 1 // java.lang.String key
        end local 0 // freemarker.ext.dom.DocumentModel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   11     0  this  Lfreemarker/ext/dom/DocumentModel;
            0   11     1   key  Ljava/lang/String;
            4    5     2    nl  Lorg/w3c/dom/NodeList;
            7   10     2    em  Lfreemarker/ext/dom/ElementModel;
    Exceptions:
      throws freemarker.template.TemplateModelException
    MethodParameters:
      Name  Flags
      key   

  freemarker.ext.dom.ElementModel getRootElement();
    descriptor: ()Lfreemarker/ext/dom/ElementModel;
    flags: (0x0000) 
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // freemarker.ext.dom.DocumentModel this
         0: .line 66
            aload 0 /* this */
            getfield freemarker.ext.dom.DocumentModel.rootElement:Lfreemarker/ext/dom/ElementModel;
            ifnonnull 2
         1: .line 67
            aload 0 /* this */
            aload 0 /* this */
            getfield freemarker.ext.dom.DocumentModel.node:Lorg/w3c/dom/Node;
            checkcast org.w3c.dom.Document
            invokeinterface org.w3c.dom.Document.getDocumentElement:()Lorg/w3c/dom/Element;
            invokestatic freemarker.ext.dom.DocumentModel.wrap:(Lorg/w3c/dom/Node;)Lfreemarker/ext/dom/NodeModel;
            checkcast freemarker.ext.dom.ElementModel
            putfield freemarker.ext.dom.DocumentModel.rootElement:Lfreemarker/ext/dom/ElementModel;
         2: .line 69
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield freemarker.ext.dom.DocumentModel.rootElement:Lfreemarker/ext/dom/ElementModel;
            areturn
        end local 0 // freemarker.ext.dom.DocumentModel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lfreemarker/ext/dom/DocumentModel;

  public boolean isEmpty();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // freemarker.ext.dom.DocumentModel this
         0: .line 73
            iconst_0
            ireturn
        end local 0 // freemarker.ext.dom.DocumentModel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lfreemarker/ext/dom/DocumentModel;
}
SourceFile: "DocumentModel.java"