class freemarker.core.BuiltInsForMultipleTypes$dateBI$DateParser implements freemarker.template.TemplateDateModel, freemarker.template.TemplateMethodModel, freemarker.template.TemplateHashModel
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: freemarker.core.BuiltInsForMultipleTypes$dateBI$DateParser
  super_class: java.lang.Object
{
  private final java.lang.String text;
    descriptor: Ljava/lang/String;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final freemarker.core.Environment env;
    descriptor: Lfreemarker/core/Environment;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final freemarker.core.TemplateDateFormat defaultFormat;
    descriptor: Lfreemarker/core/TemplateDateFormat;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private freemarker.template.TemplateDateModel cachedValue;
    descriptor: Lfreemarker/template/TemplateDateModel;
    flags: (0x0002) ACC_PRIVATE

  final freemarker.core.BuiltInsForMultipleTypes$dateBI this$1;
    descriptor: Lfreemarker/core/BuiltInsForMultipleTypes$dateBI;
    flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC

  void <init>(freemarker.core.BuiltInsForMultipleTypes$dateBI, java.lang.String, freemarker.core.Environment);
    descriptor: (Lfreemarker/core/BuiltInsForMultipleTypes$dateBI;Ljava/lang/String;Lfreemarker/core/Environment;)V
    flags: (0x0000) 
    Code:
      stack=6, locals=4, args_size=4
        start local 0 // freemarker.core.BuiltInsForMultipleTypes$dateBI$DateParser this
        start local 2 // java.lang.String text
        start local 3 // freemarker.core.Environment env
         0: .line 148
            aload 0 /* this */
            aload 1
            putfield freemarker.core.BuiltInsForMultipleTypes$dateBI$DateParser.this$1:Lfreemarker/core/BuiltInsForMultipleTypes$dateBI;
         1: .line 147
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         2: .line 149
            aload 0 /* this */
            aload 2 /* text */
            putfield freemarker.core.BuiltInsForMultipleTypes$dateBI$DateParser.text:Ljava/lang/String;
         3: .line 150
            aload 0 /* this */
            aload 3 /* env */
            putfield freemarker.core.BuiltInsForMultipleTypes$dateBI$DateParser.env:Lfreemarker/core/Environment;
         4: .line 151
            aload 0 /* this */
            aload 3 /* env */
            aload 1
            getfield freemarker.core.BuiltInsForMultipleTypes$dateBI.dateType:I
            ldc Ljava/util/Date;
            aload 1
            getfield freemarker.core.BuiltInsForMultipleTypes$dateBI.target:Lfreemarker/core/Expression;
            iconst_0
            invokevirtual freemarker.core.Environment.getTemplateDateFormat:(ILjava/lang/Class;Lfreemarker/core/Expression;Z)Lfreemarker/core/TemplateDateFormat;
            putfield freemarker.core.BuiltInsForMultipleTypes$dateBI$DateParser.defaultFormat:Lfreemarker/core/TemplateDateFormat;
         5: .line 152
            return
        end local 3 // freemarker.core.Environment env
        end local 2 // java.lang.String text
        end local 0 // freemarker.core.BuiltInsForMultipleTypes$dateBI$DateParser this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lfreemarker/core/BuiltInsForMultipleTypes$dateBI$DateParser;
            0    6     2  text  Ljava/lang/String;
            0    6     3   env  Lfreemarker/core/Environment;
    Exceptions:
      throws freemarker.template.TemplateException
    MethodParameters:
        Name  Flags
      this$0  final
      text    
      env     

  public java.lang.Object exec(java.util.List);
    descriptor: (Ljava/util/List;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // freemarker.core.BuiltInsForMultipleTypes$dateBI$DateParser this
        start local 1 // java.util.List args
         0: .line 155
            aload 0 /* this */
            getfield freemarker.core.BuiltInsForMultipleTypes$dateBI$DateParser.this$1:Lfreemarker/core/BuiltInsForMultipleTypes$dateBI;
            aload 1 /* args */
            iconst_0
            iconst_1
            invokevirtual freemarker.core.BuiltInsForMultipleTypes$dateBI.checkMethodArgCount:(Ljava/util/List;II)V
         1: .line 156
            aload 1 /* args */
            invokeinterface java.util.List.size:()I
            ifne 2
            aload 0 /* this */
            invokevirtual freemarker.core.BuiltInsForMultipleTypes$dateBI$DateParser.getAsDateModel:()Lfreemarker/template/TemplateDateModel;
            goto 3
      StackMap locals:
      StackMap stack:
         2: aload 0 /* this */
            aload 1 /* args */
            iconst_0
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast java.lang.String
            invokevirtual freemarker.core.BuiltInsForMultipleTypes$dateBI$DateParser.get:(Ljava/lang/String;)Lfreemarker/template/TemplateModel;
      StackMap locals:
      StackMap stack: freemarker.template.TemplateModel
         3: areturn
        end local 1 // java.util.List args
        end local 0 // freemarker.core.BuiltInsForMultipleTypes$dateBI$DateParser this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lfreemarker/core/BuiltInsForMultipleTypes$dateBI$DateParser;
            0    4     1  args  Ljava/util/List;
    Exceptions:
      throws freemarker.template.TemplateModelException
    MethodParameters:
      Name  Flags
      args  

  public freemarker.template.TemplateModel get(java.lang.String);
    descriptor: (Ljava/lang/String;)Lfreemarker/template/TemplateModel;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=4, args_size=2
        start local 0 // freemarker.core.BuiltInsForMultipleTypes$dateBI$DateParser this
        start local 1 // java.lang.String pattern
         0: .line 162
            aload 0 /* this */
            getfield freemarker.core.BuiltInsForMultipleTypes$dateBI$DateParser.env:Lfreemarker/core/Environment;
            aload 1 /* pattern */
            aload 0 /* this */
            getfield freemarker.core.BuiltInsForMultipleTypes$dateBI$DateParser.this$1:Lfreemarker/core/BuiltInsForMultipleTypes$dateBI;
            getfield freemarker.core.BuiltInsForMultipleTypes$dateBI.dateType:I
            ldc Ljava/util/Date;
            aload 0 /* this */
            getfield freemarker.core.BuiltInsForMultipleTypes$dateBI$DateParser.this$1:Lfreemarker/core/BuiltInsForMultipleTypes$dateBI;
            getfield freemarker.core.BuiltInsForMultipleTypes$dateBI.target:Lfreemarker/core/Expression;
            aload 0 /* this */
            getfield freemarker.core.BuiltInsForMultipleTypes$dateBI$DateParser.this$1:Lfreemarker/core/BuiltInsForMultipleTypes$dateBI;
            iconst_1
            invokevirtual freemarker.core.Environment.getTemplateDateFormat:(Ljava/lang/String;ILjava/lang/Class;Lfreemarker/core/Expression;Lfreemarker/core/Expression;Z)Lfreemarker/core/TemplateDateFormat;
            astore 2 /* format */
        start local 2 // freemarker.core.TemplateDateFormat format
         1: .line 163
            goto 4
        end local 2 // freemarker.core.TemplateDateFormat format
      StackMap locals:
      StackMap stack: freemarker.template.TemplateException
         2: astore 3 /* e */
        start local 3 // freemarker.template.TemplateException e
         3: .line 165
            ldc "Failed to get format"
            aload 3 /* e */
            invokestatic freemarker.core._CoreAPI.ensureIsTemplateModelException:(Ljava/lang/String;Lfreemarker/template/TemplateException;)Lfreemarker/template/TemplateModelException;
            athrow
        end local 3 // freemarker.template.TemplateException e
        start local 2 // freemarker.core.TemplateDateFormat format
         4: .line 167
      StackMap locals: freemarker.core.TemplateDateFormat
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            aload 2 /* format */
            invokevirtual freemarker.core.BuiltInsForMultipleTypes$dateBI$DateParser.parse:(Lfreemarker/core/TemplateDateFormat;)Ljava/lang/Object;
            invokevirtual freemarker.core.BuiltInsForMultipleTypes$dateBI$DateParser.toTemplateDateModel:(Ljava/lang/Object;)Lfreemarker/template/TemplateDateModel;
            areturn
        end local 2 // freemarker.core.TemplateDateFormat format
        end local 1 // java.lang.String pattern
        end local 0 // freemarker.core.BuiltInsForMultipleTypes$dateBI$DateParser this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    5     0     this  Lfreemarker/core/BuiltInsForMultipleTypes$dateBI$DateParser;
            0    5     1  pattern  Ljava/lang/String;
            1    2     2   format  Lfreemarker/core/TemplateDateFormat;
            4    5     2   format  Lfreemarker/core/TemplateDateFormat;
            3    4     3        e  Lfreemarker/template/TemplateException;
      Exception table:
        from    to  target  type
           0     1       2  Class freemarker.template.TemplateException
    Exceptions:
      throws freemarker.template.TemplateModelException
    MethodParameters:
         Name  Flags
      pattern  

  private freemarker.template.TemplateDateModel toTemplateDateModel(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Lfreemarker/template/TemplateDateModel;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // freemarker.core.BuiltInsForMultipleTypes$dateBI$DateParser this
        start local 1 // java.lang.Object date
         0: .line 171
            aload 1 /* date */
            instanceof java.util.Date
            ifeq 2
         1: .line 172
            new freemarker.template.SimpleDate
            dup
            aload 1 /* date */
            checkcast java.util.Date
            aload 0 /* this */
            getfield freemarker.core.BuiltInsForMultipleTypes$dateBI$DateParser.this$1:Lfreemarker/core/BuiltInsForMultipleTypes$dateBI;
            getfield freemarker.core.BuiltInsForMultipleTypes$dateBI.dateType:I
            invokespecial freemarker.template.SimpleDate.<init>:(Ljava/util/Date;I)V
            areturn
         2: .line 174
      StackMap locals:
      StackMap stack:
            aload 1 /* date */
            checkcast freemarker.template.TemplateDateModel
            astore 2 /* tm */
        start local 2 // freemarker.template.TemplateDateModel tm
         3: .line 175
            aload 2 /* tm */
            invokeinterface freemarker.template.TemplateDateModel.getDateType:()I
            aload 0 /* this */
            getfield freemarker.core.BuiltInsForMultipleTypes$dateBI$DateParser.this$1:Lfreemarker/core/BuiltInsForMultipleTypes$dateBI;
            getfield freemarker.core.BuiltInsForMultipleTypes$dateBI.dateType:I
            if_icmpeq 5
         4: .line 176
            new freemarker.core._TemplateModelException
            dup
            ldc "The result of the parsing was of the wrong date type."
            invokespecial freemarker.core._TemplateModelException.<init>:(Ljava/lang/String;)V
            athrow
         5: .line 178
      StackMap locals: freemarker.template.TemplateDateModel
      StackMap stack:
            aload 2 /* tm */
            areturn
        end local 2 // freemarker.template.TemplateDateModel tm
        end local 1 // java.lang.Object date
        end local 0 // freemarker.core.BuiltInsForMultipleTypes$dateBI$DateParser this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lfreemarker/core/BuiltInsForMultipleTypes$dateBI$DateParser;
            0    6     1  date  Ljava/lang/Object;
            3    6     2    tm  Lfreemarker/template/TemplateDateModel;
    Exceptions:
      throws freemarker.core._TemplateModelException
    MethodParameters:
      Name  Flags
      date  

  private freemarker.template.TemplateDateModel getAsDateModel();
    descriptor: ()Lfreemarker/template/TemplateDateModel;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // freemarker.core.BuiltInsForMultipleTypes$dateBI$DateParser this
         0: .line 183
            aload 0 /* this */
            getfield freemarker.core.BuiltInsForMultipleTypes$dateBI$DateParser.cachedValue:Lfreemarker/template/TemplateDateModel;
            ifnonnull 2
         1: .line 184
            aload 0 /* this */
            aload 0 /* this */
            aload 0 /* this */
            aload 0 /* this */
            getfield freemarker.core.BuiltInsForMultipleTypes$dateBI$DateParser.defaultFormat:Lfreemarker/core/TemplateDateFormat;
            invokevirtual freemarker.core.BuiltInsForMultipleTypes$dateBI$DateParser.parse:(Lfreemarker/core/TemplateDateFormat;)Ljava/lang/Object;
            invokevirtual freemarker.core.BuiltInsForMultipleTypes$dateBI$DateParser.toTemplateDateModel:(Ljava/lang/Object;)Lfreemarker/template/TemplateDateModel;
            putfield freemarker.core.BuiltInsForMultipleTypes$dateBI$DateParser.cachedValue:Lfreemarker/template/TemplateDateModel;
         2: .line 186
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield freemarker.core.BuiltInsForMultipleTypes$dateBI$DateParser.cachedValue:Lfreemarker/template/TemplateDateModel;
            areturn
        end local 0 // freemarker.core.BuiltInsForMultipleTypes$dateBI$DateParser this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lfreemarker/core/BuiltInsForMultipleTypes$dateBI$DateParser;
    Exceptions:
      throws freemarker.template.TemplateModelException

  public java.util.Date getAsDate();
    descriptor: ()Ljava/util/Date;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // freemarker.core.BuiltInsForMultipleTypes$dateBI$DateParser this
         0: .line 190
            aload 0 /* this */
            invokevirtual freemarker.core.BuiltInsForMultipleTypes$dateBI$DateParser.getAsDateModel:()Lfreemarker/template/TemplateDateModel;
            invokeinterface freemarker.template.TemplateDateModel.getAsDate:()Ljava/util/Date;
            areturn
        end local 0 // freemarker.core.BuiltInsForMultipleTypes$dateBI$DateParser this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lfreemarker/core/BuiltInsForMultipleTypes$dateBI$DateParser;
    Exceptions:
      throws freemarker.template.TemplateModelException

  public int getDateType();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // freemarker.core.BuiltInsForMultipleTypes$dateBI$DateParser this
         0: .line 194
            aload 0 /* this */
            getfield freemarker.core.BuiltInsForMultipleTypes$dateBI$DateParser.this$1:Lfreemarker/core/BuiltInsForMultipleTypes$dateBI;
            getfield freemarker.core.BuiltInsForMultipleTypes$dateBI.dateType:I
            ireturn
        end local 0 // freemarker.core.BuiltInsForMultipleTypes$dateBI$DateParser this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lfreemarker/core/BuiltInsForMultipleTypes$dateBI$DateParser;

  public boolean isEmpty();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // freemarker.core.BuiltInsForMultipleTypes$dateBI$DateParser this
         0: .line 198
            iconst_0
            ireturn
        end local 0 // freemarker.core.BuiltInsForMultipleTypes$dateBI$DateParser this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lfreemarker/core/BuiltInsForMultipleTypes$dateBI$DateParser;

  private java.lang.Object parse(freemarker.core.TemplateDateFormat);
    descriptor: (Lfreemarker/core/TemplateDateFormat;)Ljava/lang/Object;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=9, locals=3, args_size=2
        start local 0 // freemarker.core.BuiltInsForMultipleTypes$dateBI$DateParser this
        start local 1 // freemarker.core.TemplateDateFormat df
         0: .line 204
            aload 1 /* df */
            aload 0 /* this */
            getfield freemarker.core.BuiltInsForMultipleTypes$dateBI$DateParser.text:Ljava/lang/String;
            aload 0 /* this */
            getfield freemarker.core.BuiltInsForMultipleTypes$dateBI$DateParser.this$1:Lfreemarker/core/BuiltInsForMultipleTypes$dateBI;
            getfield freemarker.core.BuiltInsForMultipleTypes$dateBI.dateType:I
            invokevirtual freemarker.core.TemplateDateFormat.parse:(Ljava/lang/String;I)Ljava/lang/Object;
         1: areturn
         2: .line 205
      StackMap locals:
      StackMap stack: freemarker.core.TemplateValueFormatException
            astore 2 /* e */
        start local 2 // freemarker.core.TemplateValueFormatException e
         3: .line 206
            new freemarker.core._TemplateModelException
            dup
            aload 2 /* e */
            bipush 8
            anewarray java.lang.Object
            dup
            iconst_0
         4: .line 207
            ldc "The string doesn't match the expected date/time/date-time format. The string to parse was: "
            aastore
            dup
            iconst_1
         5: .line 208
            new freemarker.core._DelayedJQuote
            dup
            aload 0 /* this */
            getfield freemarker.core.BuiltInsForMultipleTypes$dateBI$DateParser.text:Ljava/lang/String;
            invokespecial freemarker.core._DelayedJQuote.<init>:(Ljava/lang/Object;)V
            aastore
            dup
            iconst_2
            ldc ". "
            aastore
            dup
            iconst_3
         6: .line 209
            ldc "The expected format was: "
            aastore
            dup
            iconst_4
            new freemarker.core._DelayedJQuote
            dup
            aload 1 /* df */
            invokevirtual freemarker.core.TemplateDateFormat.getDescription:()Ljava/lang/String;
            invokespecial freemarker.core._DelayedJQuote.<init>:(Ljava/lang/Object;)V
            aastore
            dup
            iconst_5
            ldc "."
            aastore
            dup
            bipush 6
         7: .line 210
            aload 2 /* e */
            invokevirtual freemarker.core.TemplateValueFormatException.getMessage:()Ljava/lang/String;
            ifnull 8
            ldc "\nThe nested reason given follows:\n"
            goto 9
      StackMap locals: freemarker.core.BuiltInsForMultipleTypes$dateBI$DateParser freemarker.core.TemplateDateFormat freemarker.core.TemplateValueFormatException
      StackMap stack: new 3 new 3 freemarker.core.TemplateValueFormatException java.lang.Object[] java.lang.Object[] int
         8: ldc ""
      StackMap locals: freemarker.core.BuiltInsForMultipleTypes$dateBI$DateParser freemarker.core.TemplateDateFormat freemarker.core.TemplateValueFormatException
      StackMap stack: new 3 new 3 freemarker.core.TemplateValueFormatException java.lang.Object[] java.lang.Object[] int java.lang.String
         9: aastore
            dup
            bipush 7
        10: .line 211
            aload 2 /* e */
            invokevirtual freemarker.core.TemplateValueFormatException.getMessage:()Ljava/lang/String;
            ifnull 11
            aload 2 /* e */
            invokevirtual freemarker.core.TemplateValueFormatException.getMessage:()Ljava/lang/String;
            goto 12
      StackMap locals: freemarker.core.BuiltInsForMultipleTypes$dateBI$DateParser freemarker.core.TemplateDateFormat freemarker.core.TemplateValueFormatException
      StackMap stack: new 3 new 3 freemarker.core.TemplateValueFormatException java.lang.Object[] java.lang.Object[] int
        11: ldc ""
        12: .line 206
      StackMap locals: freemarker.core.BuiltInsForMultipleTypes$dateBI$DateParser freemarker.core.TemplateDateFormat freemarker.core.TemplateValueFormatException
      StackMap stack: new 3 new 3 freemarker.core.TemplateValueFormatException java.lang.Object[] java.lang.Object[] int java.lang.String
            aastore
            invokespecial freemarker.core._TemplateModelException.<init>:(Ljava/lang/Throwable;[Ljava/lang/Object;)V
            athrow
        end local 2 // freemarker.core.TemplateValueFormatException e
        end local 1 // freemarker.core.TemplateDateFormat df
        end local 0 // freemarker.core.BuiltInsForMultipleTypes$dateBI$DateParser this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   13     0  this  Lfreemarker/core/BuiltInsForMultipleTypes$dateBI$DateParser;
            0   13     1    df  Lfreemarker/core/TemplateDateFormat;
            3   13     2     e  Lfreemarker/core/TemplateValueFormatException;
      Exception table:
        from    to  target  type
           0     1       2  Class freemarker.core.TemplateValueFormatException
    Exceptions:
      throws freemarker.template.TemplateModelException
    MethodParameters:
      Name  Flags
      df    
}
SourceFile: "BuiltInsForMultipleTypes.java"
NestHost: freemarker.core.BuiltInsForMultipleTypes
InnerClasses:
  dateBI = freemarker.core.BuiltInsForMultipleTypes$dateBI of freemarker.core.BuiltInsForMultipleTypes
  private DateParser = freemarker.core.BuiltInsForMultipleTypes$dateBI$DateParser of freemarker.core.BuiltInsForMultipleTypes$dateBI