class io.ebeaninternal.server.deploy.BeanDescriptorJsonHelp<T>
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: io.ebeaninternal.server.deploy.BeanDescriptorJsonHelp
  super_class: java.lang.Object
{
  private final io.ebeaninternal.server.deploy.BeanDescriptor<T> desc;
    descriptor: Lio/ebeaninternal/server/deploy/BeanDescriptor;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Lio/ebeaninternal/server/deploy/BeanDescriptor<TT;>;

  private final io.ebeaninternal.server.deploy.InheritInfo inheritInfo;
    descriptor: Lio/ebeaninternal/server/deploy/InheritInfo;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  void <init>(io.ebeaninternal.server.deploy.BeanDescriptor<T>);
    descriptor: (Lio/ebeaninternal/server/deploy/BeanDescriptor;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // io.ebeaninternal.server.deploy.BeanDescriptorJsonHelp this
        start local 1 // io.ebeaninternal.server.deploy.BeanDescriptor desc
         0: .line 25
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 26
            aload 0 /* this */
            aload 1 /* desc */
            putfield io.ebeaninternal.server.deploy.BeanDescriptorJsonHelp.desc:Lio/ebeaninternal/server/deploy/BeanDescriptor;
         2: .line 27
            aload 0 /* this */
            aload 1 /* desc */
            getfield io.ebeaninternal.server.deploy.BeanDescriptor.inheritInfo:Lio/ebeaninternal/server/deploy/InheritInfo;
            putfield io.ebeaninternal.server.deploy.BeanDescriptorJsonHelp.inheritInfo:Lio/ebeaninternal/server/deploy/InheritInfo;
         3: .line 28
            return
        end local 1 // io.ebeaninternal.server.deploy.BeanDescriptor desc
        end local 0 // io.ebeaninternal.server.deploy.BeanDescriptorJsonHelp this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lio/ebeaninternal/server/deploy/BeanDescriptorJsonHelp<TT;>;
            0    4     1  desc  Lio/ebeaninternal/server/deploy/BeanDescriptor<TT;>;
    Signature: (Lio/ebeaninternal/server/deploy/BeanDescriptor<TT;>;)V
    MethodParameters:
      Name  Flags
      desc  

  void jsonWrite(io.ebeaninternal.api.json.SpiJsonWriter, io.ebean.bean.EntityBean, java.lang.String);
    descriptor: (Lio/ebeaninternal/api/json/SpiJsonWriter;Lio/ebean/bean/EntityBean;Ljava/lang/String;)V
    flags: (0x0000) 
    Code:
      stack=3, locals=7, args_size=4
        start local 0 // io.ebeaninternal.server.deploy.BeanDescriptorJsonHelp this
        start local 1 // io.ebeaninternal.api.json.SpiJsonWriter writeJson
        start local 2 // io.ebean.bean.EntityBean bean
        start local 3 // java.lang.String key
         0: .line 32
            aload 1 /* writeJson */
            aload 3 /* key */
            invokeinterface io.ebeaninternal.api.json.SpiJsonWriter.writeStartObject:(Ljava/lang/String;)V
         1: .line 34
            aload 0 /* this */
            getfield io.ebeaninternal.server.deploy.BeanDescriptorJsonHelp.inheritInfo:Lio/ebeaninternal/server/deploy/InheritInfo;
            ifnonnull 4
         2: .line 35
            aload 0 /* this */
            aload 1 /* writeJson */
            aload 2 /* bean */
            invokevirtual io.ebeaninternal.server.deploy.BeanDescriptorJsonHelp.jsonWriteProperties:(Lio/ebeaninternal/api/json/SpiJsonWriter;Lio/ebean/bean/EntityBean;)V
         3: .line 37
            goto 9
         4: .line 38
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.ebeaninternal.server.deploy.BeanDescriptorJsonHelp.inheritInfo:Lio/ebeaninternal/server/deploy/InheritInfo;
            aload 2 /* bean */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual io.ebeaninternal.server.deploy.InheritInfo.readType:(Ljava/lang/Class;)Lio/ebeaninternal/server/deploy/InheritInfo;
            astore 4 /* localInheritInfo */
        start local 4 // io.ebeaninternal.server.deploy.InheritInfo localInheritInfo
         5: .line 39
            aload 4 /* localInheritInfo */
            invokevirtual io.ebeaninternal.server.deploy.InheritInfo.getDiscriminatorStringValue:()Ljava/lang/String;
            astore 5 /* discValue */
        start local 5 // java.lang.String discValue
         6: .line 40
            aload 4 /* localInheritInfo */
            invokevirtual io.ebeaninternal.server.deploy.InheritInfo.getDiscriminatorColumn:()Ljava/lang/String;
            astore 6 /* discColumn */
        start local 6 // java.lang.String discColumn
         7: .line 41
            aload 1 /* writeJson */
            invokeinterface io.ebeaninternal.api.json.SpiJsonWriter.gen:()Lcom/fasterxml/jackson/core/JsonGenerator;
            aload 6 /* discColumn */
            aload 5 /* discValue */
            invokevirtual com.fasterxml.jackson.core.JsonGenerator.writeStringField:(Ljava/lang/String;Ljava/lang/String;)V
         8: .line 43
            aload 4 /* localInheritInfo */
            invokevirtual io.ebeaninternal.server.deploy.InheritInfo.desc:()Lio/ebeaninternal/server/deploy/BeanDescriptor;
            aload 1 /* writeJson */
            aload 2 /* bean */
            invokevirtual io.ebeaninternal.server.deploy.BeanDescriptor.jsonWriteProperties:(Lio/ebeaninternal/api/json/SpiJsonWriter;Lio/ebean/bean/EntityBean;)V
        end local 6 // java.lang.String discColumn
        end local 5 // java.lang.String discValue
        end local 4 // io.ebeaninternal.server.deploy.InheritInfo localInheritInfo
         9: .line 46
      StackMap locals:
      StackMap stack:
            aload 1 /* writeJson */
            invokeinterface io.ebeaninternal.api.json.SpiJsonWriter.writeEndObject:()V
        10: .line 47
            return
        end local 3 // java.lang.String key
        end local 2 // io.ebean.bean.EntityBean bean
        end local 1 // io.ebeaninternal.api.json.SpiJsonWriter writeJson
        end local 0 // io.ebeaninternal.server.deploy.BeanDescriptorJsonHelp this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   11     0              this  Lio/ebeaninternal/server/deploy/BeanDescriptorJsonHelp<TT;>;
            0   11     1         writeJson  Lio/ebeaninternal/api/json/SpiJsonWriter;
            0   11     2              bean  Lio/ebean/bean/EntityBean;
            0   11     3               key  Ljava/lang/String;
            5    9     4  localInheritInfo  Lio/ebeaninternal/server/deploy/InheritInfo;
            6    9     5         discValue  Ljava/lang/String;
            7    9     6        discColumn  Ljava/lang/String;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
           Name  Flags
      writeJson  
      bean       
      key        

  void jsonWriteProperties(io.ebeaninternal.api.json.SpiJsonWriter, io.ebean.bean.EntityBean);
    descriptor: (Lio/ebeaninternal/api/json/SpiJsonWriter;Lio/ebean/bean/EntityBean;)V
    flags: (0x0000) 
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // io.ebeaninternal.server.deploy.BeanDescriptorJsonHelp this
        start local 1 // io.ebeaninternal.api.json.SpiJsonWriter writeJson
        start local 2 // io.ebean.bean.EntityBean bean
         0: .line 50
            aload 1 /* writeJson */
            aload 0 /* this */
            getfield io.ebeaninternal.server.deploy.BeanDescriptorJsonHelp.desc:Lio/ebeaninternal/server/deploy/BeanDescriptor;
            aload 2 /* bean */
            invokeinterface io.ebeaninternal.api.json.SpiJsonWriter.writeBean:(Lio/ebeaninternal/server/deploy/BeanDescriptor;Lio/ebean/bean/EntityBean;)V
         1: .line 51
            return
        end local 2 // io.ebean.bean.EntityBean bean
        end local 1 // io.ebeaninternal.api.json.SpiJsonWriter writeJson
        end local 0 // io.ebeaninternal.server.deploy.BeanDescriptorJsonHelp this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    2     0       this  Lio/ebeaninternal/server/deploy/BeanDescriptorJsonHelp<TT;>;
            0    2     1  writeJson  Lio/ebeaninternal/api/json/SpiJsonWriter;
            0    2     2       bean  Lio/ebean/bean/EntityBean;
    MethodParameters:
           Name  Flags
      writeJson  
      bean       

  void jsonWriteDirty(io.ebeaninternal.api.json.SpiJsonWriter, io.ebean.bean.EntityBean, boolean[]);
    descriptor: (Lio/ebeaninternal/api/json/SpiJsonWriter;Lio/ebean/bean/EntityBean;[Z)V
    flags: (0x0000) 
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // io.ebeaninternal.server.deploy.BeanDescriptorJsonHelp this
        start local 1 // io.ebeaninternal.api.json.SpiJsonWriter writeJson
        start local 2 // io.ebean.bean.EntityBean bean
        start local 3 // boolean[] dirtyProps
         0: .line 54
            aload 0 /* this */
            getfield io.ebeaninternal.server.deploy.BeanDescriptorJsonHelp.inheritInfo:Lio/ebeaninternal/server/deploy/InheritInfo;
            ifnonnull 3
         1: .line 55
            aload 0 /* this */
            aload 1 /* writeJson */
            aload 2 /* bean */
            aload 3 /* dirtyProps */
            invokevirtual io.ebeaninternal.server.deploy.BeanDescriptorJsonHelp.jsonWriteDirtyProperties:(Lio/ebeaninternal/api/json/SpiJsonWriter;Lio/ebean/bean/EntityBean;[Z)V
         2: .line 56
            goto 4
         3: .line 57
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.ebeaninternal.server.deploy.BeanDescriptorJsonHelp.desc:Lio/ebeaninternal/server/deploy/BeanDescriptor;
            aload 2 /* bean */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual io.ebeaninternal.server.deploy.BeanDescriptor.descOf:(Ljava/lang/Class;)Lio/ebeaninternal/server/deploy/BeanDescriptor;
            aload 1 /* writeJson */
            aload 2 /* bean */
            aload 3 /* dirtyProps */
            invokevirtual io.ebeaninternal.server.deploy.BeanDescriptor.jsonWriteDirtyProperties:(Lio/ebeaninternal/api/json/SpiJsonWriter;Lio/ebean/bean/EntityBean;[Z)V
         4: .line 59
      StackMap locals:
      StackMap stack:
            return
        end local 3 // boolean[] dirtyProps
        end local 2 // io.ebean.bean.EntityBean bean
        end local 1 // io.ebeaninternal.api.json.SpiJsonWriter writeJson
        end local 0 // io.ebeaninternal.server.deploy.BeanDescriptorJsonHelp this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    5     0        this  Lio/ebeaninternal/server/deploy/BeanDescriptorJsonHelp<TT;>;
            0    5     1   writeJson  Lio/ebeaninternal/api/json/SpiJsonWriter;
            0    5     2        bean  Lio/ebean/bean/EntityBean;
            0    5     3  dirtyProps  [Z
    Exceptions:
      throws java.io.IOException
    MethodParameters:
            Name  Flags
      writeJson   
      bean        
      dirtyProps  

  void jsonWriteDirtyProperties(io.ebeaninternal.api.json.SpiJsonWriter, io.ebean.bean.EntityBean, boolean[]);
    descriptor: (Lio/ebeaninternal/api/json/SpiJsonWriter;Lio/ebean/bean/EntityBean;[Z)V
    flags: (0x0000) 
    Code:
      stack=3, locals=9, args_size=4
        start local 0 // io.ebeaninternal.server.deploy.BeanDescriptorJsonHelp this
        start local 1 // io.ebeaninternal.api.json.SpiJsonWriter writeJson
        start local 2 // io.ebean.bean.EntityBean bean
        start local 3 // boolean[] dirtyProps
         0: .line 63
            aload 1 /* writeJson */
            aconst_null
            invokeinterface io.ebeaninternal.api.json.SpiJsonWriter.writeStartObject:(Ljava/lang/String;)V
         1: .line 65
            aload 0 /* this */
            getfield io.ebeaninternal.server.deploy.BeanDescriptorJsonHelp.desc:Lio/ebeaninternal/server/deploy/BeanDescriptor;
            invokevirtual io.ebeaninternal.server.deploy.BeanDescriptor.propertiesNonTransient:()[Lio/ebeaninternal/server/deploy/BeanProperty;
            astore 4 /* props */
        start local 4 // io.ebeaninternal.server.deploy.BeanProperty[] props
         2: .line 66
            aload 4 /* props */
            dup
            astore 8
            arraylength
            istore 7
            iconst_0
            istore 6
            goto 7
      StackMap locals: io.ebeaninternal.server.deploy.BeanDescriptorJsonHelp io.ebeaninternal.api.json.SpiJsonWriter io.ebean.bean.EntityBean boolean[] io.ebeaninternal.server.deploy.BeanProperty[] top int int io.ebeaninternal.server.deploy.BeanProperty[]
      StackMap stack:
         3: aload 8
            iload 6
            aaload
            astore 5 /* prop */
        start local 5 // io.ebeaninternal.server.deploy.BeanProperty prop
         4: .line 67
            aload 3 /* dirtyProps */
            aload 5 /* prop */
            invokevirtual io.ebeaninternal.server.deploy.BeanProperty.getPropertyIndex:()I
            baload
            ifeq 6
         5: .line 68
            aload 5 /* prop */
            aload 1 /* writeJson */
            aload 2 /* bean */
            invokevirtual io.ebeaninternal.server.deploy.BeanProperty.jsonWrite:(Lio/ebeaninternal/api/json/SpiJsonWriter;Lio/ebean/bean/EntityBean;)V
        end local 5 // io.ebeaninternal.server.deploy.BeanProperty prop
         6: .line 66
      StackMap locals:
      StackMap stack:
            iinc 6 1
      StackMap locals:
      StackMap stack:
         7: iload 6
            iload 7
            if_icmplt 3
         8: .line 71
            aload 1 /* writeJson */
            invokeinterface io.ebeaninternal.api.json.SpiJsonWriter.writeEndObject:()V
         9: .line 72
            return
        end local 4 // io.ebeaninternal.server.deploy.BeanProperty[] props
        end local 3 // boolean[] dirtyProps
        end local 2 // io.ebean.bean.EntityBean bean
        end local 1 // io.ebeaninternal.api.json.SpiJsonWriter writeJson
        end local 0 // io.ebeaninternal.server.deploy.BeanDescriptorJsonHelp this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   10     0        this  Lio/ebeaninternal/server/deploy/BeanDescriptorJsonHelp<TT;>;
            0   10     1   writeJson  Lio/ebeaninternal/api/json/SpiJsonWriter;
            0   10     2        bean  Lio/ebean/bean/EntityBean;
            0   10     3  dirtyProps  [Z
            2   10     4       props  [Lio/ebeaninternal/server/deploy/BeanProperty;
            4    6     5        prop  Lio/ebeaninternal/server/deploy/BeanProperty;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
            Name  Flags
      writeJson   
      bean        
      dirtyProps  

  T jsonRead(io.ebeaninternal.api.json.SpiJsonReader, java.lang.String, );
    descriptor: (Lio/ebeaninternal/api/json/SpiJsonReader;Ljava/lang/String;Z)Ljava/lang/Object;
    flags: (0x0000) 
    Code:
      stack=6, locals=11, args_size=4
        start local 0 // io.ebeaninternal.server.deploy.BeanDescriptorJsonHelp this
        start local 1 // io.ebeaninternal.api.json.SpiJsonReader jsonRead
        start local 2 // java.lang.String path
        start local 3 // boolean withInheritance
         0: .line 77
            aload 1 /* jsonRead */
            invokeinterface io.ebeaninternal.api.json.SpiJsonReader.getParser:()Lcom/fasterxml/jackson/core/JsonParser;
            astore 4 /* parser */
        start local 4 // com.fasterxml.jackson.core.JsonParser parser
         1: .line 79
            aload 4 /* parser */
            invokevirtual com.fasterxml.jackson.core.JsonParser.getCurrentToken:()Lcom/fasterxml/jackson/core/JsonToken;
            getstatic com.fasterxml.jackson.core.JsonToken.START_OBJECT:Lcom/fasterxml/jackson/core/JsonToken;
            if_acmpeq 7
         2: .line 83
            aload 4 /* parser */
            invokevirtual com.fasterxml.jackson.core.JsonParser.nextToken:()Lcom/fasterxml/jackson/core/JsonToken;
            astore 5 /* token */
        start local 5 // com.fasterxml.jackson.core.JsonToken token
         3: .line 84
            getstatic com.fasterxml.jackson.core.JsonToken.VALUE_NULL:Lcom/fasterxml/jackson/core/JsonToken;
            aload 5 /* token */
            if_acmpeq 4
            getstatic com.fasterxml.jackson.core.JsonToken.END_ARRAY:Lcom/fasterxml/jackson/core/JsonToken;
            aload 5 /* token */
            if_acmpne 5
         4: .line 85
      StackMap locals: com.fasterxml.jackson.core.JsonParser com.fasterxml.jackson.core.JsonToken
      StackMap stack:
            aconst_null
            areturn
         5: .line 87
      StackMap locals:
      StackMap stack:
            getstatic com.fasterxml.jackson.core.JsonToken.START_OBJECT:Lcom/fasterxml/jackson/core/JsonToken;
            aload 5 /* token */
            if_acmpeq 7
         6: .line 88
            new com.fasterxml.jackson.core.JsonParseException
            dup
            aload 4 /* parser */
            new java.lang.StringBuilder
            dup
            ldc "Unexpected token "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 5 /* token */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " - expecting start_object"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 4 /* parser */
            invokevirtual com.fasterxml.jackson.core.JsonParser.getCurrentLocation:()Lcom/fasterxml/jackson/core/JsonLocation;
            invokespecial com.fasterxml.jackson.core.JsonParseException.<init>:(Lcom/fasterxml/jackson/core/JsonParser;Ljava/lang/String;Lcom/fasterxml/jackson/core/JsonLocation;)V
            athrow
        end local 5 // com.fasterxml.jackson.core.JsonToken token
         7: .line 92
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.ebeaninternal.server.deploy.BeanDescriptorJsonHelp.desc:Lio/ebeaninternal/server/deploy/BeanDescriptor;
            getfield io.ebeaninternal.server.deploy.BeanDescriptor.inheritInfo:Lio/ebeaninternal/server/deploy/InheritInfo;
            ifnull 8
            iload 3 /* withInheritance */
            ifne 9
         8: .line 93
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* jsonRead */
            aload 2 /* path */
            invokevirtual io.ebeaninternal.server.deploy.BeanDescriptorJsonHelp.jsonReadObject:(Lio/ebeaninternal/api/json/SpiJsonReader;Ljava/lang/String;)Ljava/lang/Object;
            areturn
         9: .line 96
      StackMap locals:
      StackMap stack:
            aload 1 /* jsonRead */
            invokeinterface io.ebeaninternal.api.json.SpiJsonReader.getObjectMapper:()Lcom/fasterxml/jackson/databind/ObjectMapper;
            aload 4 /* parser */
            invokevirtual com.fasterxml.jackson.databind.ObjectMapper.readTree:(Lcom/fasterxml/jackson/core/JsonParser;)Lcom/fasterxml/jackson/core/TreeNode;
            checkcast com.fasterxml.jackson.databind.node.ObjectNode
            astore 5 /* node */
        start local 5 // com.fasterxml.jackson.databind.node.ObjectNode node
        10: .line 97
            aload 5 /* node */
            invokevirtual com.fasterxml.jackson.databind.node.ObjectNode.isNull:()Z
            ifeq 12
        11: .line 98
            aconst_null
            areturn
        12: .line 100
      StackMap locals: com.fasterxml.jackson.databind.node.ObjectNode
      StackMap stack:
            aload 5 /* node */
            invokevirtual com.fasterxml.jackson.databind.node.ObjectNode.traverse:()Lcom/fasterxml/jackson/core/JsonParser;
            astore 6 /* newParser */
        start local 6 // com.fasterxml.jackson.core.JsonParser newParser
        13: .line 101
            aload 1 /* jsonRead */
            aload 6 /* newParser */
            iconst_0
            invokeinterface io.ebeaninternal.api.json.SpiJsonReader.forJson:(Lcom/fasterxml/jackson/core/JsonParser;Z)Lio/ebeaninternal/api/json/SpiJsonReader;
            astore 7 /* newReader */
        start local 7 // io.ebeaninternal.api.json.SpiJsonReader newReader
        14: .line 104
            aload 0 /* this */
            getfield io.ebeaninternal.server.deploy.BeanDescriptorJsonHelp.inheritInfo:Lio/ebeaninternal/server/deploy/InheritInfo;
            invokevirtual io.ebeaninternal.server.deploy.InheritInfo.getRoot:()Lio/ebeaninternal/server/deploy/InheritInfo;
            invokevirtual io.ebeaninternal.server.deploy.InheritInfo.getDiscriminatorColumn:()Ljava/lang/String;
            astore 8 /* discColumn */
        start local 8 // java.lang.String discColumn
        15: .line 105
            aload 5 /* node */
            aload 8 /* discColumn */
            invokevirtual com.fasterxml.jackson.databind.node.ObjectNode.get:(Ljava/lang/String;)Lcom/fasterxml/jackson/databind/JsonNode;
            astore 9 /* discNode */
        start local 9 // com.fasterxml.jackson.databind.JsonNode discNode
        16: .line 106
            aload 9 /* discNode */
            ifnull 17
            aload 9 /* discNode */
            invokevirtual com.fasterxml.jackson.databind.JsonNode.isNull:()Z
            ifeq 21
        17: .line 107
      StackMap locals: io.ebeaninternal.server.deploy.BeanDescriptorJsonHelp io.ebeaninternal.api.json.SpiJsonReader java.lang.String int com.fasterxml.jackson.core.JsonParser com.fasterxml.jackson.databind.node.ObjectNode com.fasterxml.jackson.core.JsonParser io.ebeaninternal.api.json.SpiJsonReader java.lang.String com.fasterxml.jackson.databind.JsonNode
      StackMap stack:
            aload 0 /* this */
            getfield io.ebeaninternal.server.deploy.BeanDescriptorJsonHelp.desc:Lio/ebeaninternal/server/deploy/BeanDescriptor;
            invokevirtual io.ebeaninternal.server.deploy.BeanDescriptor.isAbstractType:()Z
            ifne 19
        18: .line 108
            aload 0 /* this */
            getfield io.ebeaninternal.server.deploy.BeanDescriptorJsonHelp.desc:Lio/ebeaninternal/server/deploy/BeanDescriptor;
            aload 7 /* newReader */
            aload 2 /* path */
            invokevirtual io.ebeaninternal.server.deploy.BeanDescriptor.jsonReadObject:(Lio/ebeaninternal/api/json/SpiJsonReader;Ljava/lang/String;)Ljava/lang/Object;
            areturn
        19: .line 110
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            ldc "Error reading inheritance discriminator - expected ["
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 8 /* discColumn */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "] but no json key?"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 10 /* msg */
        start local 10 // java.lang.String msg
        20: .line 111
            new com.fasterxml.jackson.core.JsonParseException
            dup
            aload 6 /* newParser */
            aload 10 /* msg */
            aload 4 /* parser */
            invokevirtual com.fasterxml.jackson.core.JsonParser.getCurrentLocation:()Lcom/fasterxml/jackson/core/JsonLocation;
            invokespecial com.fasterxml.jackson.core.JsonParseException.<init>:(Lcom/fasterxml/jackson/core/JsonParser;Ljava/lang/String;Lcom/fasterxml/jackson/core/JsonLocation;)V
            athrow
        end local 10 // java.lang.String msg
        21: .line 114
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.ebeaninternal.server.deploy.BeanDescriptorJsonHelp.inheritInfo:Lio/ebeaninternal/server/deploy/InheritInfo;
            aload 9 /* discNode */
            invokevirtual com.fasterxml.jackson.databind.JsonNode.asText:()Ljava/lang/String;
            invokevirtual io.ebeaninternal.server.deploy.InheritInfo.readType:(Ljava/lang/String;)Lio/ebeaninternal/server/deploy/InheritInfo;
            invokevirtual io.ebeaninternal.server.deploy.InheritInfo.desc:()Lio/ebeaninternal/server/deploy/BeanDescriptor;
            aload 7 /* newReader */
            aload 2 /* path */
            invokevirtual io.ebeaninternal.server.deploy.BeanDescriptor.jsonReadObject:(Lio/ebeaninternal/api/json/SpiJsonReader;Ljava/lang/String;)Ljava/lang/Object;
            areturn
        end local 9 // com.fasterxml.jackson.databind.JsonNode discNode
        end local 8 // java.lang.String discColumn
        end local 7 // io.ebeaninternal.api.json.SpiJsonReader newReader
        end local 6 // com.fasterxml.jackson.core.JsonParser newParser
        end local 5 // com.fasterxml.jackson.databind.node.ObjectNode node
        end local 4 // com.fasterxml.jackson.core.JsonParser parser
        end local 3 // boolean withInheritance
        end local 2 // java.lang.String path
        end local 1 // io.ebeaninternal.api.json.SpiJsonReader jsonRead
        end local 0 // io.ebeaninternal.server.deploy.BeanDescriptorJsonHelp this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   22     0             this  Lio/ebeaninternal/server/deploy/BeanDescriptorJsonHelp<TT;>;
            0   22     1         jsonRead  Lio/ebeaninternal/api/json/SpiJsonReader;
            0   22     2             path  Ljava/lang/String;
            0   22     3  withInheritance  Z
            1   22     4           parser  Lcom/fasterxml/jackson/core/JsonParser;
            3    7     5            token  Lcom/fasterxml/jackson/core/JsonToken;
           10   22     5             node  Lcom/fasterxml/jackson/databind/node/ObjectNode;
           13   22     6        newParser  Lcom/fasterxml/jackson/core/JsonParser;
           14   22     7        newReader  Lio/ebeaninternal/api/json/SpiJsonReader;
           15   22     8       discColumn  Ljava/lang/String;
           16   22     9         discNode  Lcom/fasterxml/jackson/databind/JsonNode;
           20   21    10              msg  Ljava/lang/String;
    Exceptions:
      throws java.io.IOException
    Signature: (Lio/ebeaninternal/api/json/SpiJsonReader;Ljava/lang/String;Z)TT;
    MethodParameters:
                 Name  Flags
      jsonRead         
      path             
      withInheritance  

  private T jsonReadObject(io.ebeaninternal.api.json.SpiJsonReader, java.lang.String);
    descriptor: (Lio/ebeaninternal/api/json/SpiJsonReader;Ljava/lang/String;)Ljava/lang/Object;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // io.ebeaninternal.server.deploy.BeanDescriptorJsonHelp this
        start local 1 // io.ebeaninternal.api.json.SpiJsonReader readJson
        start local 2 // java.lang.String path
         0: .line 119
            aload 0 /* this */
            getfield io.ebeaninternal.server.deploy.BeanDescriptorJsonHelp.desc:Lio/ebeaninternal/server/deploy/BeanDescriptor;
            invokevirtual io.ebeaninternal.server.deploy.BeanDescriptor.createEntityBeanForJson:()Lio/ebean/bean/EntityBean;
            astore 3 /* bean */
        start local 3 // io.ebean.bean.EntityBean bean
         1: .line 120
            aload 0 /* this */
            aload 1 /* readJson */
            aload 3 /* bean */
            aload 2 /* path */
            invokevirtual io.ebeaninternal.server.deploy.BeanDescriptorJsonHelp.jsonReadProperties:(Lio/ebeaninternal/api/json/SpiJsonReader;Lio/ebean/bean/EntityBean;Ljava/lang/String;)Ljava/lang/Object;
            areturn
        end local 3 // io.ebean.bean.EntityBean bean
        end local 2 // java.lang.String path
        end local 1 // io.ebeaninternal.api.json.SpiJsonReader readJson
        end local 0 // io.ebeaninternal.server.deploy.BeanDescriptorJsonHelp this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Lio/ebeaninternal/server/deploy/BeanDescriptorJsonHelp<TT;>;
            0    2     1  readJson  Lio/ebeaninternal/api/json/SpiJsonReader;
            0    2     2      path  Ljava/lang/String;
            1    2     3      bean  Lio/ebean/bean/EntityBean;
    Exceptions:
      throws java.io.IOException
    Signature: (Lio/ebeaninternal/api/json/SpiJsonReader;Ljava/lang/String;)TT;
    MethodParameters:
          Name  Flags
      readJson  
      path      

  private T jsonReadProperties(io.ebeaninternal.api.json.SpiJsonReader, io.ebean.bean.EntityBean, java.lang.String);
    descriptor: (Lio/ebeaninternal/api/json/SpiJsonReader;Lio/ebean/bean/EntityBean;Ljava/lang/String;)Ljava/lang/Object;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=9, args_size=4
        start local 0 // io.ebeaninternal.server.deploy.BeanDescriptorJsonHelp this
        start local 1 // io.ebeaninternal.api.json.SpiJsonReader readJson
        start local 2 // io.ebean.bean.EntityBean bean
        start local 3 // java.lang.String path
         0: .line 126
            aload 3 /* path */
            ifnull 2
         1: .line 127
            aload 1 /* readJson */
            aload 3 /* path */
            invokeinterface io.ebeaninternal.api.json.SpiJsonReader.pushPath:(Ljava/lang/String;)V
         2: .line 131
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 4 /* unmappedProperties */
        start local 4 // java.util.Map unmappedProperties
         3: .line 134
      StackMap locals: java.util.Map
      StackMap stack:
            aload 1 /* readJson */
            invokeinterface io.ebeaninternal.api.json.SpiJsonReader.getParser:()Lcom/fasterxml/jackson/core/JsonParser;
            astore 5 /* parser */
        start local 5 // com.fasterxml.jackson.core.JsonParser parser
         4: .line 135
            aload 5 /* parser */
            invokevirtual com.fasterxml.jackson.core.JsonParser.nextToken:()Lcom/fasterxml/jackson/core/JsonToken;
            astore 6 /* event */
        start local 6 // com.fasterxml.jackson.core.JsonToken event
         5: .line 136
            getstatic com.fasterxml.jackson.core.JsonToken.FIELD_NAME:Lcom/fasterxml/jackson/core/JsonToken;
            aload 6 /* event */
            if_acmpne 15
         6: .line 137
            aload 5 /* parser */
            invokevirtual com.fasterxml.jackson.core.JsonParser.getCurrentName:()Ljava/lang/String;
            astore 7 /* key */
        start local 7 // java.lang.String key
         7: .line 138
            aload 0 /* this */
            getfield io.ebeaninternal.server.deploy.BeanDescriptorJsonHelp.desc:Lio/ebeaninternal/server/deploy/BeanDescriptor;
            aload 7 /* key */
            invokevirtual io.ebeaninternal.server.deploy.BeanDescriptor.getBeanProperty:(Ljava/lang/String;)Lio/ebeaninternal/server/deploy/BeanProperty;
            astore 8 /* p */
        start local 8 // io.ebeaninternal.server.deploy.BeanProperty p
         8: .line 139
            aload 8 /* p */
            ifnull 11
         9: .line 140
            aload 8 /* p */
            aload 1 /* readJson */
            aload 2 /* bean */
            invokevirtual io.ebeaninternal.server.deploy.BeanProperty.jsonRead:(Lio/ebeaninternal/api/json/SpiJsonReader;Lio/ebean/bean/EntityBean;)V
        10: .line 141
            goto 3
        11: .line 143
      StackMap locals: io.ebeaninternal.server.deploy.BeanDescriptorJsonHelp io.ebeaninternal.api.json.SpiJsonReader io.ebean.bean.EntityBean java.lang.String java.util.Map com.fasterxml.jackson.core.JsonParser com.fasterxml.jackson.core.JsonToken java.lang.String io.ebeaninternal.server.deploy.BeanProperty
      StackMap stack:
            aload 4 /* unmappedProperties */
            ifnonnull 13
        12: .line 144
            new java.util.LinkedHashMap
            dup
            invokespecial java.util.LinkedHashMap.<init>:()V
            astore 4 /* unmappedProperties */
        13: .line 146
      StackMap locals:
      StackMap stack:
            aload 4 /* unmappedProperties */
            aload 7 /* key */
            aload 5 /* parser */
            invokestatic io.ebean.text.json.EJson.parse:(Lcom/fasterxml/jackson/core/JsonParser;)Ljava/lang/Object;
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 8 // io.ebeaninternal.server.deploy.BeanProperty p
        end local 7 // java.lang.String key
        14: .line 149
            goto 3
      StackMap locals:
      StackMap stack:
        15: getstatic com.fasterxml.jackson.core.JsonToken.END_OBJECT:Lcom/fasterxml/jackson/core/JsonToken;
            aload 6 /* event */
            if_acmpne 17
        16: .line 150
            goto 18
        17: .line 153
      StackMap locals:
      StackMap stack:
            new java.lang.RuntimeException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Unexpected token "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 6 /* event */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " - expecting key or end_object at: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 5 /* parser */
            invokevirtual com.fasterxml.jackson.core.JsonParser.getCurrentLocation:()Lcom/fasterxml/jackson/core/JsonLocation;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
        end local 6 // com.fasterxml.jackson.core.JsonToken event
        end local 5 // com.fasterxml.jackson.core.JsonParser parser
        18: .line 158
      StackMap locals:
      StackMap stack:
            aload 4 /* unmappedProperties */
            ifnull 20
        19: .line 159
            aload 0 /* this */
            getfield io.ebeaninternal.server.deploy.BeanDescriptorJsonHelp.desc:Lio/ebeaninternal/server/deploy/BeanDescriptor;
            aload 2 /* bean */
            aload 4 /* unmappedProperties */
            invokevirtual io.ebeaninternal.server.deploy.BeanDescriptor.setUnmappedJson:(Lio/ebean/bean/EntityBean;Ljava/util/Map;)V
        20: .line 161
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 5 /* contextBean */
        start local 5 // java.lang.Object contextBean
        21: .line 162
            aload 0 /* this */
            getfield io.ebeaninternal.server.deploy.BeanDescriptorJsonHelp.desc:Lio/ebeaninternal/server/deploy/BeanDescriptor;
            aload 2 /* bean */
            invokevirtual io.ebeaninternal.server.deploy.BeanDescriptor.beanId:(Ljava/lang/Object;)Ljava/lang/Object;
            astore 6 /* id */
        start local 6 // java.lang.Object id
        22: .line 163
            aload 6 /* id */
            invokestatic io.ebeaninternal.server.persist.DmlUtil.isNullOrZero:(Ljava/lang/Object;)Z
            ifne 24
        23: .line 165
            aload 1 /* readJson */
            aload 6 /* id */
            aload 2 /* bean */
            aload 0 /* this */
            getfield io.ebeaninternal.server.deploy.BeanDescriptorJsonHelp.desc:Lio/ebeaninternal/server/deploy/BeanDescriptor;
            invokeinterface io.ebeaninternal.api.json.SpiJsonReader.persistenceContextPutIfAbsent:(Ljava/lang/Object;Lio/ebean/bean/EntityBean;Lio/ebeaninternal/server/deploy/BeanDescriptor;)Ljava/lang/Object;
            astore 5 /* contextBean */
        24: .line 167
      StackMap locals: java.lang.Object java.lang.Object
      StackMap stack:
            aload 5 /* contextBean */
            ifnonnull 26
        25: .line 168
            aload 1 /* readJson */
            aload 2 /* bean */
            aload 4 /* unmappedProperties */
            invokeinterface io.ebeaninternal.api.json.SpiJsonReader.beanVisitor:(Ljava/lang/Object;Ljava/util/Map;)V
        26: .line 170
      StackMap locals:
      StackMap stack:
            aload 3 /* path */
            ifnull 28
        27: .line 171
            aload 1 /* readJson */
            invokeinterface io.ebeaninternal.api.json.SpiJsonReader.popPath:()V
        28: .line 173
      StackMap locals:
      StackMap stack:
            aload 5 /* contextBean */
            ifnonnull 29
            aload 2 /* bean */
            goto 30
      StackMap locals:
      StackMap stack:
        29: aload 5 /* contextBean */
      StackMap locals:
      StackMap stack: java.lang.Object
        30: areturn
        end local 6 // java.lang.Object id
        end local 5 // java.lang.Object contextBean
        end local 4 // java.util.Map unmappedProperties
        end local 3 // java.lang.String path
        end local 2 // io.ebean.bean.EntityBean bean
        end local 1 // io.ebeaninternal.api.json.SpiJsonReader readJson
        end local 0 // io.ebeaninternal.server.deploy.BeanDescriptorJsonHelp this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   31     0                this  Lio/ebeaninternal/server/deploy/BeanDescriptorJsonHelp<TT;>;
            0   31     1            readJson  Lio/ebeaninternal/api/json/SpiJsonReader;
            0   31     2                bean  Lio/ebean/bean/EntityBean;
            0   31     3                path  Ljava/lang/String;
            3   31     4  unmappedProperties  Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;
            4   18     5              parser  Lcom/fasterxml/jackson/core/JsonParser;
            5   18     6               event  Lcom/fasterxml/jackson/core/JsonToken;
            7   14     7                 key  Ljava/lang/String;
            8   14     8                   p  Lio/ebeaninternal/server/deploy/BeanProperty;
           21   31     5         contextBean  Ljava/lang/Object;
           22   31     6                  id  Ljava/lang/Object;
    Exceptions:
      throws java.io.IOException
    Signature: (Lio/ebeaninternal/api/json/SpiJsonReader;Lio/ebean/bean/EntityBean;Ljava/lang/String;)TT;
    MethodParameters:
          Name  Flags
      readJson  
      bean      
      path      
}
Signature: <T:Ljava/lang/Object;>Ljava/lang/Object;
SourceFile: "BeanDescriptorJsonHelp.java"