public abstract class io.ebeaninternal.server.type.ScalarTypeBaseDate<T> extends io.ebeaninternal.server.type.ScalarTypeBase<T>
  minor version: 0
  major version: 59
  flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
  this_class: io.ebeaninternal.server.type.ScalarTypeBaseDate
  super_class: io.ebeaninternal.server.type.ScalarTypeBase
{
  protected final io.ebean.config.JsonConfig$Date mode;
    descriptor: Lio/ebean/config/JsonConfig$Date;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL

  void <init>(io.ebean.config.JsonConfig$Date, java.lang.Class<T>, boolean, );
    descriptor: (Lio/ebean/config/JsonConfig$Date;Ljava/lang/Class;ZI)V
    flags: (0x0000) 
    Code:
      stack=4, locals=5, args_size=5
        start local 0 // io.ebeaninternal.server.type.ScalarTypeBaseDate this
        start local 1 // io.ebean.config.JsonConfig$Date mode
        start local 2 // java.lang.Class type
        start local 3 // boolean jdbcNative
        start local 4 // int jdbcType
         0: .line 26
            aload 0 /* this */
            aload 2 /* type */
            iload 3 /* jdbcNative */
            iload 4 /* jdbcType */
            invokespecial io.ebeaninternal.server.type.ScalarTypeBase.<init>:(Ljava/lang/Class;ZI)V
         1: .line 27
            aload 0 /* this */
            aload 1 /* mode */
            putfield io.ebeaninternal.server.type.ScalarTypeBaseDate.mode:Lio/ebean/config/JsonConfig$Date;
         2: .line 28
            return
        end local 4 // int jdbcType
        end local 3 // boolean jdbcNative
        end local 2 // java.lang.Class type
        end local 1 // io.ebean.config.JsonConfig$Date mode
        end local 0 // io.ebeaninternal.server.type.ScalarTypeBaseDate this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    3     0        this  Lio/ebeaninternal/server/type/ScalarTypeBaseDate<TT;>;
            0    3     1        mode  Lio/ebean/config/JsonConfig$Date;
            0    3     2        type  Ljava/lang/Class<TT;>;
            0    3     3  jdbcNative  Z
            0    3     4    jdbcType  I
    Signature: (Lio/ebean/config/JsonConfig$Date;Ljava/lang/Class<TT;>;ZI)V
    MethodParameters:
            Name  Flags
      mode        
      type        
      jdbcNative  
      jdbcType    

  public abstract long convertToMillis();
    descriptor: (Ljava/lang/Object;)J
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Signature: (TT;)J
    MethodParameters:
       Name  Flags
      value  

  public abstract java.sql.Date convertToDate(T);
    descriptor: (Ljava/lang/Object;)Ljava/sql/Date;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Signature: (TT;)Ljava/sql/Date;
    MethodParameters:
      Name  Flags
      t     

  public abstract T convertFromDate(java.sql.Date);
    descriptor: (Ljava/sql/Date;)Ljava/lang/Object;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Signature: (Ljava/sql/Date;)TT;
    MethodParameters:
      Name  Flags
      ts    

  public void bind(io.ebean.core.type.DataBinder, );
    descriptor: (Lio/ebean/core/type/DataBinder;Ljava/lang/Object;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // io.ebeaninternal.server.type.ScalarTypeBaseDate this
        start local 1 // io.ebean.core.type.DataBinder binder
        start local 2 // java.lang.Object value
         0: .line 47
            aload 2 /* value */
            ifnonnull 3
         1: .line 48
            aload 1 /* binder */
            bipush 91
            invokeinterface io.ebean.core.type.DataBinder.setNull:(I)V
         2: .line 49
            goto 4
         3: .line 50
      StackMap locals:
      StackMap stack:
            aload 1 /* binder */
            aload 0 /* this */
            aload 2 /* value */
            invokevirtual io.ebeaninternal.server.type.ScalarTypeBaseDate.convertToDate:(Ljava/lang/Object;)Ljava/sql/Date;
            invokeinterface io.ebean.core.type.DataBinder.setDate:(Ljava/sql/Date;)V
         4: .line 52
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.lang.Object value
        end local 1 // io.ebean.core.type.DataBinder binder
        end local 0 // io.ebeaninternal.server.type.ScalarTypeBaseDate this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    5     0    this  Lio/ebeaninternal/server/type/ScalarTypeBaseDate<TT;>;
            0    5     1  binder  Lio/ebean/core/type/DataBinder;
            0    5     2   value  TT;
    Exceptions:
      throws java.sql.SQLException
    Signature: (Lio/ebean/core/type/DataBinder;TT;)V
    MethodParameters:
        Name  Flags
      binder  
      value   

  public T read(io.ebean.core.type.DataReader);
    descriptor: (Lio/ebean/core/type/DataReader;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // io.ebeaninternal.server.type.ScalarTypeBaseDate this
        start local 1 // io.ebean.core.type.DataReader reader
         0: .line 56
            aload 1 /* reader */
            invokeinterface io.ebean.core.type.DataReader.getDate:()Ljava/sql/Date;
            astore 2 /* ts */
        start local 2 // java.sql.Date ts
         1: .line 57
            aload 2 /* ts */
            ifnonnull 2
            aconst_null
            goto 3
      StackMap locals: java.sql.Date
      StackMap stack:
         2: aload 0 /* this */
            aload 2 /* ts */
            invokevirtual io.ebeaninternal.server.type.ScalarTypeBaseDate.convertFromDate:(Ljava/sql/Date;)Ljava/lang/Object;
      StackMap locals:
      StackMap stack: java.lang.Object
         3: areturn
        end local 2 // java.sql.Date ts
        end local 1 // io.ebean.core.type.DataReader reader
        end local 0 // io.ebeaninternal.server.type.ScalarTypeBaseDate this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    4     0    this  Lio/ebeaninternal/server/type/ScalarTypeBaseDate<TT;>;
            0    4     1  reader  Lio/ebean/core/type/DataReader;
            1    4     2      ts  Ljava/sql/Date;
    Exceptions:
      throws java.sql.SQLException
    Signature: (Lio/ebean/core/type/DataReader;)TT;
    MethodParameters:
        Name  Flags
      reader  

  public java.lang.String formatValue(T);
    descriptor: (Ljava/lang/Object;)Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=5, args_size=2
        start local 0 // io.ebeaninternal.server.type.ScalarTypeBaseDate this
        start local 1 // java.lang.Object t
         0: .line 62
            aload 0 /* this */
            aload 1 /* t */
            invokevirtual io.ebeaninternal.server.type.ScalarTypeBaseDate.convertToDate:(Ljava/lang/Object;)Ljava/sql/Date;
            astore 2 /* date */
        start local 2 // java.sql.Date date
         1: .line 64
            aload 2 /* date */
            invokevirtual java.sql.Date.getTime:()J
            lstore 3 /* epochMillis */
        start local 3 // long epochMillis
         2: .line 65
            lload 3 /* epochMillis */
            invokestatic java.lang.Long.toString:(J)Ljava/lang/String;
            areturn
        end local 3 // long epochMillis
        end local 2 // java.sql.Date date
        end local 1 // java.lang.Object t
        end local 0 // io.ebeaninternal.server.type.ScalarTypeBaseDate this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    3     0         this  Lio/ebeaninternal/server/type/ScalarTypeBaseDate<TT;>;
            0    3     1            t  TT;
            1    3     2         date  Ljava/sql/Date;
            2    3     3  epochMillis  J
    Signature: (TT;)Ljava/lang/String;
    MethodParameters:
      Name  Flags
      t     

  public T parse(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=2
        start local 0 // io.ebeaninternal.server.type.ScalarTypeBaseDate this
        start local 1 // java.lang.String value
         0: .line 71
            aload 1 /* value */
            invokestatic java.lang.Long.parseLong:(Ljava/lang/String;)J
            lstore 2 /* epochMillis */
        start local 2 // long epochMillis
         1: .line 72
            aload 0 /* this */
            new java.sql.Date
            dup
            lload 2 /* epochMillis */
            invokespecial java.sql.Date.<init>:(J)V
            invokevirtual io.ebeaninternal.server.type.ScalarTypeBaseDate.convertFromDate:(Ljava/sql/Date;)Ljava/lang/Object;
         2: areturn
        end local 2 // long epochMillis
         3: .line 73
      StackMap locals:
      StackMap stack: java.lang.NumberFormatException
            pop
         4: .line 74
            aload 1 /* value */
            invokestatic java.sql.Date.valueOf:(Ljava/lang/String;)Ljava/sql/Date;
            astore 2 /* date */
        start local 2 // java.sql.Date date
         5: .line 75
            aload 0 /* this */
            aload 2 /* date */
            invokevirtual io.ebeaninternal.server.type.ScalarTypeBaseDate.convertFromDate:(Ljava/sql/Date;)Ljava/lang/Object;
            areturn
        end local 2 // java.sql.Date date
        end local 1 // java.lang.String value
        end local 0 // io.ebeaninternal.server.type.ScalarTypeBaseDate this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    6     0         this  Lio/ebeaninternal/server/type/ScalarTypeBaseDate<TT;>;
            0    6     1        value  Ljava/lang/String;
            1    3     2  epochMillis  J
            5    6     2         date  Ljava/sql/Date;
      Exception table:
        from    to  target  type
           0     2       3  Class java.lang.NumberFormatException
    Signature: (Ljava/lang/String;)TT;
    MethodParameters:
       Name  Flags
      value  

  public T convertFromMillis();
    descriptor: (J)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=2
        start local 0 // io.ebeaninternal.server.type.ScalarTypeBaseDate this
        start local 1 // long systemTimeMillis
         0: .line 81
            new java.sql.Date
            dup
            lload 1 /* systemTimeMillis */
            invokespecial java.sql.Date.<init>:(J)V
            astore 3 /* ts */
        start local 3 // java.sql.Date ts
         1: .line 82
            aload 0 /* this */
            aload 3 /* ts */
            invokevirtual io.ebeaninternal.server.type.ScalarTypeBaseDate.convertFromDate:(Ljava/sql/Date;)Ljava/lang/Object;
            areturn
        end local 3 // java.sql.Date ts
        end local 1 // long systemTimeMillis
        end local 0 // io.ebeaninternal.server.type.ScalarTypeBaseDate this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    2     0              this  Lio/ebeaninternal/server/type/ScalarTypeBaseDate<TT;>;
            0    2     1  systemTimeMillis  J
            1    2     3                ts  Ljava/sql/Date;
    Signature: (J)TT;
    MethodParameters:
                  Name  Flags
      systemTimeMillis  

  public boolean isDateTimeCapable();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.ebeaninternal.server.type.ScalarTypeBaseDate this
         0: .line 87
            iconst_1
            ireturn
        end local 0 // io.ebeaninternal.server.type.ScalarTypeBaseDate this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/ebeaninternal/server/type/ScalarTypeBaseDate<TT;>;

  public T jsonRead(com.fasterxml.jackson.core.JsonParser);
    descriptor: (Lcom/fasterxml/jackson/core/JsonParser;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // io.ebeaninternal.server.type.ScalarTypeBaseDate this
        start local 1 // com.fasterxml.jackson.core.JsonParser parser
         0: .line 92
            getstatic com.fasterxml.jackson.core.JsonToken.VALUE_NUMBER_INT:Lcom/fasterxml/jackson/core/JsonToken;
            aload 1 /* parser */
            invokevirtual com.fasterxml.jackson.core.JsonParser.getCurrentToken:()Lcom/fasterxml/jackson/core/JsonToken;
            if_acmpne 2
         1: .line 93
            aload 0 /* this */
            aload 1 /* parser */
            invokevirtual com.fasterxml.jackson.core.JsonParser.getLongValue:()J
            invokevirtual io.ebeaninternal.server.type.ScalarTypeBaseDate.convertFromMillis:(J)Ljava/lang/Object;
            areturn
         2: .line 95
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* parser */
            invokevirtual com.fasterxml.jackson.core.JsonParser.getText:()Ljava/lang/String;
            invokestatic java.sql.Date.valueOf:(Ljava/lang/String;)Ljava/sql/Date;
            invokevirtual io.ebeaninternal.server.type.ScalarTypeBaseDate.convertFromDate:(Ljava/sql/Date;)Ljava/lang/Object;
            areturn
        end local 1 // com.fasterxml.jackson.core.JsonParser parser
        end local 0 // io.ebeaninternal.server.type.ScalarTypeBaseDate this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0    this  Lio/ebeaninternal/server/type/ScalarTypeBaseDate<TT;>;
            0    3     1  parser  Lcom/fasterxml/jackson/core/JsonParser;
    Exceptions:
      throws java.io.IOException
    Signature: (Lcom/fasterxml/jackson/core/JsonParser;)TT;
    MethodParameters:
        Name  Flags
      parser  

  public void jsonWrite(com.fasterxml.jackson.core.JsonGenerator, );
    descriptor: (Lcom/fasterxml/jackson/core/JsonGenerator;Ljava/lang/Object;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // io.ebeaninternal.server.type.ScalarTypeBaseDate this
        start local 1 // com.fasterxml.jackson.core.JsonGenerator writer
        start local 2 // java.lang.Object value
         0: .line 101
            aload 0 /* this */
            getfield io.ebeaninternal.server.type.ScalarTypeBaseDate.mode:Lio/ebean/config/JsonConfig$Date;
            getstatic io.ebean.config.JsonConfig$Date.ISO8601:Lio/ebean/config/JsonConfig$Date;
            if_acmpne 3
         1: .line 102
            aload 1 /* writer */
            aload 0 /* this */
            aload 2 /* value */
            invokevirtual io.ebeaninternal.server.type.ScalarTypeBaseDate.toIsoFormat:(Ljava/lang/Object;)Ljava/lang/String;
            invokevirtual com.fasterxml.jackson.core.JsonGenerator.writeString:(Ljava/lang/String;)V
         2: .line 103
            goto 4
         3: .line 104
      StackMap locals:
      StackMap stack:
            aload 1 /* writer */
            aload 0 /* this */
            aload 2 /* value */
            invokevirtual io.ebeaninternal.server.type.ScalarTypeBaseDate.convertToMillis:(Ljava/lang/Object;)J
            invokevirtual com.fasterxml.jackson.core.JsonGenerator.writeNumber:(J)V
         4: .line 106
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.lang.Object value
        end local 1 // com.fasterxml.jackson.core.JsonGenerator writer
        end local 0 // io.ebeaninternal.server.type.ScalarTypeBaseDate this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    5     0    this  Lio/ebeaninternal/server/type/ScalarTypeBaseDate<TT;>;
            0    5     1  writer  Lcom/fasterxml/jackson/core/JsonGenerator;
            0    5     2   value  TT;
    Exceptions:
      throws java.io.IOException
    Signature: (Lcom/fasterxml/jackson/core/JsonGenerator;TT;)V
    MethodParameters:
        Name  Flags
      writer  
      value   

  protected abstract java.lang.String toIsoFormat(T);
    descriptor: (Ljava/lang/Object;)Ljava/lang/String;
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
    Signature: (TT;)Ljava/lang/String;
    MethodParameters:
       Name  Flags
      value  

  public io.ebean.core.type.DocPropertyType getDocType();
    descriptor: ()Lio/ebean/core/type/DocPropertyType;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.ebeaninternal.server.type.ScalarTypeBaseDate this
         0: .line 115
            getstatic io.ebean.core.type.DocPropertyType.DATE:Lio/ebean/core/type/DocPropertyType;
            areturn
        end local 0 // io.ebeaninternal.server.type.ScalarTypeBaseDate this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/ebeaninternal/server/type/ScalarTypeBaseDate<TT;>;

  public T readData(java.io.DataInput);
    descriptor: (Ljava/io/DataInput;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=2
        start local 0 // io.ebeaninternal.server.type.ScalarTypeBaseDate this
        start local 1 // java.io.DataInput dataInput
         0: .line 120
            aload 1 /* dataInput */
            invokeinterface java.io.DataInput.readBoolean:()Z
            ifne 2
         1: .line 121
            aconst_null
            areturn
         2: .line 123
      StackMap locals:
      StackMap stack:
            aload 1 /* dataInput */
            invokeinterface java.io.DataInput.readLong:()J
            lstore 2 /* val */
        start local 2 // long val
         3: .line 124
            new java.sql.Date
            dup
            lload 2 /* val */
            invokespecial java.sql.Date.<init>:(J)V
            astore 4 /* date */
        start local 4 // java.sql.Date date
         4: .line 125
            aload 0 /* this */
            aload 4 /* date */
            invokevirtual io.ebeaninternal.server.type.ScalarTypeBaseDate.convertFromDate:(Ljava/sql/Date;)Ljava/lang/Object;
            areturn
        end local 4 // java.sql.Date date
        end local 2 // long val
        end local 1 // java.io.DataInput dataInput
        end local 0 // io.ebeaninternal.server.type.ScalarTypeBaseDate this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    5     0       this  Lio/ebeaninternal/server/type/ScalarTypeBaseDate<TT;>;
            0    5     1  dataInput  Ljava/io/DataInput;
            3    5     2        val  J
            4    5     4       date  Ljava/sql/Date;
    Exceptions:
      throws java.io.IOException
    Signature: (Ljava/io/DataInput;)TT;
    MethodParameters:
           Name  Flags
      dataInput  

  public void writeData(java.io.DataOutput, );
    descriptor: (Ljava/io/DataOutput;Ljava/lang/Object;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // io.ebeaninternal.server.type.ScalarTypeBaseDate this
        start local 1 // java.io.DataOutput dataOutput
        start local 2 // java.lang.Object value
         0: .line 131
            aload 2 /* value */
            ifnonnull 3
         1: .line 132
            aload 1 /* dataOutput */
            iconst_0
            invokeinterface java.io.DataOutput.writeBoolean:(Z)V
         2: .line 133
            goto 6
         3: .line 134
      StackMap locals:
      StackMap stack:
            aload 1 /* dataOutput */
            iconst_1
            invokeinterface java.io.DataOutput.writeBoolean:(Z)V
         4: .line 135
            aload 0 /* this */
            aload 2 /* value */
            invokevirtual io.ebeaninternal.server.type.ScalarTypeBaseDate.convertToDate:(Ljava/lang/Object;)Ljava/sql/Date;
            astore 3 /* date */
        start local 3 // java.sql.Date date
         5: .line 136
            aload 1 /* dataOutput */
            aload 3 /* date */
            invokevirtual java.sql.Date.getTime:()J
            invokeinterface java.io.DataOutput.writeLong:(J)V
        end local 3 // java.sql.Date date
         6: .line 138
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.lang.Object value
        end local 1 // java.io.DataOutput dataOutput
        end local 0 // io.ebeaninternal.server.type.ScalarTypeBaseDate this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    7     0        this  Lio/ebeaninternal/server/type/ScalarTypeBaseDate<TT;>;
            0    7     1  dataOutput  Ljava/io/DataOutput;
            0    7     2       value  TT;
            5    6     3        date  Ljava/sql/Date;
    Exceptions:
      throws java.io.IOException
    Signature: (Ljava/io/DataOutput;TT;)V
    MethodParameters:
            Name  Flags
      dataOutput  
      value       
}
Signature: <T:Ljava/lang/Object;>Lio/ebeaninternal/server/type/ScalarTypeBase<TT;>;
SourceFile: "ScalarTypeBaseDate.java"
InnerClasses:
  public final Date = io.ebean.config.JsonConfig$Date of io.ebean.config.JsonConfig