public class freemarker.template.DefaultMapAdapter extends freemarker.template.WrappingTemplateModel implements freemarker.template.TemplateHashModelEx2, freemarker.template.AdapterTemplateModel, freemarker.ext.util.WrapperTemplateModel, freemarker.template.TemplateModelWithAPISupport, java.io.Serializable
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: freemarker.template.DefaultMapAdapter
  super_class: freemarker.template.WrappingTemplateModel
{
  private final java.util.Map map;
    descriptor: Ljava/util/Map;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  public static freemarker.template.DefaultMapAdapter adapt(java.util.Map, freemarker.template.utility.ObjectWrapperWithAPISupport);
    descriptor: (Ljava/util/Map;Lfreemarker/template/utility/ObjectWrapperWithAPISupport;)Lfreemarker/template/DefaultMapAdapter;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // java.util.Map map
        start local 1 // freemarker.template.utility.ObjectWrapperWithAPISupport wrapper
         0: .line 62
            new freemarker.template.DefaultMapAdapter
            dup
            aload 0 /* map */
            aload 1 /* wrapper */
            invokespecial freemarker.template.DefaultMapAdapter.<init>:(Ljava/util/Map;Lfreemarker/template/ObjectWrapper;)V
            areturn
        end local 1 // freemarker.template.utility.ObjectWrapperWithAPISupport wrapper
        end local 0 // java.util.Map map
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0      map  Ljava/util/Map;
            0    1     1  wrapper  Lfreemarker/template/utility/ObjectWrapperWithAPISupport;
    MethodParameters:
         Name  Flags
      map      
      wrapper  

  private void <init>(java.util.Map, freemarker.template.ObjectWrapper);
    descriptor: (Ljava/util/Map;Lfreemarker/template/ObjectWrapper;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // freemarker.template.DefaultMapAdapter this
        start local 1 // java.util.Map map
        start local 2 // freemarker.template.ObjectWrapper wrapper
         0: .line 66
            aload 0 /* this */
            aload 2 /* wrapper */
            invokespecial freemarker.template.WrappingTemplateModel.<init>:(Lfreemarker/template/ObjectWrapper;)V
         1: .line 67
            aload 0 /* this */
            aload 1 /* map */
            putfield freemarker.template.DefaultMapAdapter.map:Ljava/util/Map;
         2: .line 68
            return
        end local 2 // freemarker.template.ObjectWrapper wrapper
        end local 1 // java.util.Map map
        end local 0 // freemarker.template.DefaultMapAdapter this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0     this  Lfreemarker/template/DefaultMapAdapter;
            0    3     1      map  Ljava/util/Map;
            0    3     2  wrapper  Lfreemarker/template/ObjectWrapper;
    MethodParameters:
         Name  Flags
      map      
      wrapper  

  public freemarker.template.TemplateModel get(java.lang.String);
    descriptor: (Ljava/lang/String;)Lfreemarker/template/TemplateModel;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=9, locals=5, args_size=2
        start local 0 // freemarker.template.DefaultMapAdapter this
        start local 1 // java.lang.String key
         0: .line 73
            aload 0 /* this */
            getfield freemarker.template.DefaultMapAdapter.map:Ljava/util/Map;
            aload 1 /* key */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            astore 2 /* val */
        start local 2 // java.lang.Object val
         1: .line 74
            goto 12
        end local 2 // java.lang.Object val
      StackMap locals:
      StackMap stack: java.lang.ClassCastException
         2: astore 3 /* e */
        start local 3 // java.lang.ClassCastException e
         3: .line 75
            new freemarker.core._TemplateModelException
            dup
            aload 3 /* e */
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
         4: .line 76
            ldc "ClassCastException while getting Map entry with String key "
            aastore
            dup
            iconst_1
         5: .line 77
            new freemarker.core._DelayedJQuote
            dup
            aload 1 /* key */
            invokespecial freemarker.core._DelayedJQuote.<init>:(Ljava/lang/Object;)V
         6: .line 75
            aastore
            invokespecial freemarker.core._TemplateModelException.<init>:(Ljava/lang/Throwable;[Ljava/lang/Object;)V
            athrow
        end local 3 // java.lang.ClassCastException e
         7: .line 78
      StackMap locals:
      StackMap stack: java.lang.NullPointerException
            astore 3 /* e */
        start local 3 // java.lang.NullPointerException e
         8: .line 79
            new freemarker.core._TemplateModelException
            dup
            aload 3 /* e */
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
         9: .line 80
            ldc "NullPointerException while getting Map entry with String key "
            aastore
            dup
            iconst_1
        10: .line 81
            new freemarker.core._DelayedJQuote
            dup
            aload 1 /* key */
            invokespecial freemarker.core._DelayedJQuote.<init>:(Ljava/lang/Object;)V
        11: .line 79
            aastore
            invokespecial freemarker.core._TemplateModelException.<init>:(Ljava/lang/Throwable;[Ljava/lang/Object;)V
            athrow
        end local 3 // java.lang.NullPointerException e
        start local 2 // java.lang.Object val
        12: .line 84
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 2 /* val */
            ifnonnull 36
        13: .line 87
            aload 1 /* key */
            invokevirtual java.lang.String.length:()I
            iconst_1
            if_icmpne 32
            aload 0 /* this */
            getfield freemarker.template.DefaultMapAdapter.map:Ljava/util/Map;
            instanceof java.util.SortedMap
            ifne 32
        14: .line 88
            aload 1 /* key */
            iconst_0
            invokevirtual java.lang.String.charAt:(I)C
            invokestatic java.lang.Character.valueOf:(C)Ljava/lang/Character;
            astore 3 /* charKey */
        start local 3 // java.lang.Character charKey
        15: .line 90
            aload 0 /* this */
            getfield freemarker.template.DefaultMapAdapter.map:Ljava/util/Map;
            aload 3 /* charKey */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            astore 2 /* val */
        16: .line 91
            aload 2 /* val */
            ifnonnull 36
        17: .line 92
            aload 0 /* this */
            aconst_null
            invokevirtual freemarker.template.DefaultMapAdapter.wrap:(Ljava/lang/Object;)Lfreemarker/template/TemplateModel;
            astore 4 /* wrappedNull */
        start local 4 // freemarker.template.TemplateModel wrappedNull
        18: .line 93
            aload 4 /* wrappedNull */
            ifnull 19
            aload 0 /* this */
            getfield freemarker.template.DefaultMapAdapter.map:Ljava/util/Map;
            aload 1 /* key */
            invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
            ifne 20
            aload 0 /* this */
            getfield freemarker.template.DefaultMapAdapter.map:Ljava/util/Map;
            aload 3 /* charKey */
            invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
            ifne 20
        19: .line 94
      StackMap locals: java.lang.Character freemarker.template.TemplateModel
      StackMap stack:
            aconst_null
            areturn
        20: .line 96
      StackMap locals:
      StackMap stack:
            aload 4 /* wrappedNull */
        21: areturn
        end local 4 // freemarker.template.TemplateModel wrappedNull
        22: .line 99
      StackMap locals: freemarker.template.DefaultMapAdapter java.lang.String java.lang.Object java.lang.Character
      StackMap stack: java.lang.ClassCastException
            astore 4 /* e */
        start local 4 // java.lang.ClassCastException e
        23: .line 100
            new freemarker.core._TemplateModelException
            dup
            aload 4 /* e */
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
        24: .line 101
            ldc "Class casting exception while getting Map entry with Character key "
            aastore
            dup
            iconst_1
        25: .line 102
            new freemarker.core._DelayedJQuote
            dup
            aload 3 /* charKey */
            invokespecial freemarker.core._DelayedJQuote.<init>:(Ljava/lang/Object;)V
        26: .line 100
            aastore
            invokespecial freemarker.core._TemplateModelException.<init>:(Ljava/lang/Throwable;[Ljava/lang/Object;)V
            athrow
        end local 4 // java.lang.ClassCastException e
        27: .line 103
      StackMap locals:
      StackMap stack: java.lang.NullPointerException
            astore 4 /* e */
        start local 4 // java.lang.NullPointerException e
        28: .line 104
            new freemarker.core._TemplateModelException
            dup
            aload 4 /* e */
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
        29: .line 105
            ldc "NullPointerException while getting Map entry with Character key "
            aastore
            dup
            iconst_1
        30: .line 106
            new freemarker.core._DelayedJQuote
            dup
            aload 3 /* charKey */
            invokespecial freemarker.core._DelayedJQuote.<init>:(Ljava/lang/Object;)V
        31: .line 104
            aastore
            invokespecial freemarker.core._TemplateModelException.<init>:(Ljava/lang/Throwable;[Ljava/lang/Object;)V
            athrow
        end local 4 // java.lang.NullPointerException e
        end local 3 // java.lang.Character charKey
        32: .line 109
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aconst_null
            invokevirtual freemarker.template.DefaultMapAdapter.wrap:(Ljava/lang/Object;)Lfreemarker/template/TemplateModel;
            astore 3 /* wrappedNull */
        start local 3 // freemarker.template.TemplateModel wrappedNull
        33: .line 110
            aload 3 /* wrappedNull */
            ifnull 34
            aload 0 /* this */
            getfield freemarker.template.DefaultMapAdapter.map:Ljava/util/Map;
            aload 1 /* key */
            invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
            ifne 35
        34: .line 111
      StackMap locals: freemarker.template.TemplateModel
      StackMap stack:
            aconst_null
            areturn
        35: .line 113
      StackMap locals:
      StackMap stack:
            aload 3 /* wrappedNull */
            areturn
        end local 3 // freemarker.template.TemplateModel wrappedNull
        36: .line 118
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* val */
            invokevirtual freemarker.template.DefaultMapAdapter.wrap:(Ljava/lang/Object;)Lfreemarker/template/TemplateModel;
            areturn
        end local 2 // java.lang.Object val
        end local 1 // java.lang.String key
        end local 0 // freemarker.template.DefaultMapAdapter this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   37     0         this  Lfreemarker/template/DefaultMapAdapter;
            0   37     1          key  Ljava/lang/String;
            1    2     2          val  Ljava/lang/Object;
           12   37     2          val  Ljava/lang/Object;
            3    7     3            e  Ljava/lang/ClassCastException;
            8   12     3            e  Ljava/lang/NullPointerException;
           15   32     3      charKey  Ljava/lang/Character;
           18   22     4  wrappedNull  Lfreemarker/template/TemplateModel;
           23   27     4            e  Ljava/lang/ClassCastException;
           28   32     4            e  Ljava/lang/NullPointerException;
           33   36     3  wrappedNull  Lfreemarker/template/TemplateModel;
      Exception table:
        from    to  target  type
           0     1       2  Class java.lang.ClassCastException
           0     1       7  Class java.lang.NullPointerException
          15    19      22  Class java.lang.ClassCastException
          20    21      22  Class java.lang.ClassCastException
          15    19      27  Class java.lang.NullPointerException
          20    21      27  Class java.lang.NullPointerException
    Exceptions:
      throws freemarker.template.TemplateModelException
    MethodParameters:
      Name  Flags
      key   

  public boolean isEmpty();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // freemarker.template.DefaultMapAdapter this
         0: .line 122
            aload 0 /* this */
            getfield freemarker.template.DefaultMapAdapter.map:Ljava/util/Map;
            invokeinterface java.util.Map.isEmpty:()Z
            ireturn
        end local 0 // freemarker.template.DefaultMapAdapter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lfreemarker/template/DefaultMapAdapter;

  public int size();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // freemarker.template.DefaultMapAdapter this
         0: .line 126
            aload 0 /* this */
            getfield freemarker.template.DefaultMapAdapter.map:Ljava/util/Map;
            invokeinterface java.util.Map.size:()I
            ireturn
        end local 0 // freemarker.template.DefaultMapAdapter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lfreemarker/template/DefaultMapAdapter;

  public freemarker.template.TemplateCollectionModel keys();
    descriptor: ()Lfreemarker/template/TemplateCollectionModel;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // freemarker.template.DefaultMapAdapter this
         0: .line 130
            new freemarker.template.SimpleCollection
            dup
            aload 0 /* this */
            getfield freemarker.template.DefaultMapAdapter.map:Ljava/util/Map;
            invokeinterface java.util.Map.keySet:()Ljava/util/Set;
            aload 0 /* this */
            invokevirtual freemarker.template.DefaultMapAdapter.getObjectWrapper:()Lfreemarker/template/ObjectWrapper;
            invokespecial freemarker.template.SimpleCollection.<init>:(Ljava/util/Collection;Lfreemarker/template/ObjectWrapper;)V
            areturn
        end local 0 // freemarker.template.DefaultMapAdapter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lfreemarker/template/DefaultMapAdapter;

  public freemarker.template.TemplateCollectionModel values();
    descriptor: ()Lfreemarker/template/TemplateCollectionModel;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // freemarker.template.DefaultMapAdapter this
         0: .line 134
            new freemarker.template.SimpleCollection
            dup
            aload 0 /* this */
            getfield freemarker.template.DefaultMapAdapter.map:Ljava/util/Map;
            invokeinterface java.util.Map.values:()Ljava/util/Collection;
            aload 0 /* this */
            invokevirtual freemarker.template.DefaultMapAdapter.getObjectWrapper:()Lfreemarker/template/ObjectWrapper;
            invokespecial freemarker.template.SimpleCollection.<init>:(Ljava/util/Collection;Lfreemarker/template/ObjectWrapper;)V
            areturn
        end local 0 // freemarker.template.DefaultMapAdapter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lfreemarker/template/DefaultMapAdapter;

  public freemarker.template.TemplateHashModelEx2$KeyValuePairIterator keyValuePairIterator();
    descriptor: ()Lfreemarker/template/TemplateHashModelEx2$KeyValuePairIterator;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // freemarker.template.DefaultMapAdapter this
         0: .line 138
            new freemarker.template.MapKeyValuePairIterator
            dup
            aload 0 /* this */
            getfield freemarker.template.DefaultMapAdapter.map:Ljava/util/Map;
            aload 0 /* this */
            invokevirtual freemarker.template.DefaultMapAdapter.getObjectWrapper:()Lfreemarker/template/ObjectWrapper;
            invokespecial freemarker.template.MapKeyValuePairIterator.<init>:(Ljava/util/Map;Lfreemarker/template/ObjectWrapper;)V
            areturn
        end local 0 // freemarker.template.DefaultMapAdapter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lfreemarker/template/DefaultMapAdapter;

  public java.lang.Object getAdaptedObject(java.lang.Class);
    descriptor: (Ljava/lang/Class;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // freemarker.template.DefaultMapAdapter this
        start local 1 // java.lang.Class hint
         0: .line 142
            aload 0 /* this */
            getfield freemarker.template.DefaultMapAdapter.map:Ljava/util/Map;
            areturn
        end local 1 // java.lang.Class hint
        end local 0 // freemarker.template.DefaultMapAdapter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lfreemarker/template/DefaultMapAdapter;
            0    1     1  hint  Ljava/lang/Class;
    MethodParameters:
      Name  Flags
      hint  

  public java.lang.Object getWrappedObject();
    descriptor: ()Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // freemarker.template.DefaultMapAdapter this
         0: .line 146
            aload 0 /* this */
            getfield freemarker.template.DefaultMapAdapter.map:Ljava/util/Map;
            areturn
        end local 0 // freemarker.template.DefaultMapAdapter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lfreemarker/template/DefaultMapAdapter;

  public freemarker.template.TemplateModel getAPI();
    descriptor: ()Lfreemarker/template/TemplateModel;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // freemarker.template.DefaultMapAdapter this
         0: .line 150
            aload 0 /* this */
            invokevirtual freemarker.template.DefaultMapAdapter.getObjectWrapper:()Lfreemarker/template/ObjectWrapper;
            checkcast freemarker.template.utility.ObjectWrapperWithAPISupport
            aload 0 /* this */
            getfield freemarker.template.DefaultMapAdapter.map:Ljava/util/Map;
            invokeinterface freemarker.template.utility.ObjectWrapperWithAPISupport.wrapAsAPI:(Ljava/lang/Object;)Lfreemarker/template/TemplateHashModel;
            areturn
        end local 0 // freemarker.template.DefaultMapAdapter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lfreemarker/template/DefaultMapAdapter;
    Exceptions:
      throws freemarker.template.TemplateModelException
}
SourceFile: "DefaultMapAdapter.java"
InnerClasses:
  public abstract KeyValuePairIterator = freemarker.template.TemplateHashModelEx2$KeyValuePairIterator of freemarker.template.TemplateHashModelEx2