public class io.vertx.codetrans.expression.DataObjectModel extends io.vertx.codetrans.expression.ExpressionModel
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: io.vertx.codetrans.expression.DataObjectModel
  super_class: io.vertx.codetrans.expression.ExpressionModel
{
  final io.vertx.codetrans.expression.ExpressionModel expression;
    descriptor: Lio/vertx/codetrans/expression/ExpressionModel;
    flags: (0x0010) ACC_FINAL

  public void <init>(io.vertx.codetrans.CodeBuilder, io.vertx.codetrans.expression.ExpressionModel);
    descriptor: (Lio/vertx/codetrans/CodeBuilder;Lio/vertx/codetrans/expression/ExpressionModel;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // io.vertx.codetrans.expression.DataObjectModel this
        start local 1 // io.vertx.codetrans.CodeBuilder builder
        start local 2 // io.vertx.codetrans.expression.ExpressionModel expression
         0: .line 19
            aload 0 /* this */
            aload 1 /* builder */
            invokespecial io.vertx.codetrans.expression.ExpressionModel.<init>:(Lio/vertx/codetrans/CodeBuilder;)V
         1: .line 20
            aload 0 /* this */
            aload 2 /* expression */
            putfield io.vertx.codetrans.expression.DataObjectModel.expression:Lio/vertx/codetrans/expression/ExpressionModel;
         2: .line 21
            return
        end local 2 // io.vertx.codetrans.expression.ExpressionModel expression
        end local 1 // io.vertx.codetrans.CodeBuilder builder
        end local 0 // io.vertx.codetrans.expression.DataObjectModel this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    3     0        this  Lio/vertx/codetrans/expression/DataObjectModel;
            0    3     1     builder  Lio/vertx/codetrans/CodeBuilder;
            0    3     2  expression  Lio/vertx/codetrans/expression/ExpressionModel;
    MethodParameters:
            Name  Flags
      builder     
      expression  

  public io.vertx.codetrans.expression.ExpressionModel onMethodInvocation(io.vertx.codegen.type.TypeInfo, io.vertx.codetrans.MethodSignature, io.vertx.codegen.type.TypeInfo, java.util.List<io.vertx.codetrans.TypeArg>, java.util.List<io.vertx.codetrans.expression.ExpressionModel>, java.util.List<io.vertx.codegen.type.TypeInfo>);
    descriptor: (Lio/vertx/codegen/type/TypeInfo;Lio/vertx/codetrans/MethodSignature;Lio/vertx/codegen/type/TypeInfo;Ljava/util/List;Ljava/util/List;Ljava/util/List;)Lio/vertx/codetrans/expression/ExpressionModel;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=8, args_size=7
        start local 0 // io.vertx.codetrans.expression.DataObjectModel this
        start local 1 // io.vertx.codegen.type.TypeInfo receiverType
        start local 2 // io.vertx.codetrans.MethodSignature method
        start local 3 // io.vertx.codegen.type.TypeInfo returnType
        start local 4 // java.util.List typeArguments
        start local 5 // java.util.List argumentModels
        start local 6 // java.util.List argumentTypes
         0: .line 25
            aload 2 /* method */
            invokevirtual io.vertx.codetrans.MethodSignature.getName:()Ljava/lang/String;
            astore 7 /* methodName */
        start local 7 // java.lang.String methodName
         1: .line 26
            aload 7 /* methodName */
            invokestatic io.vertx.codetrans.expression.DataObjectLiteralModel.isSet:(Ljava/lang/String;)Z
            ifeq 3
         2: .line 27
            aload 0 /* this */
            getfield io.vertx.codetrans.expression.DataObjectModel.builder:Lio/vertx/codetrans/CodeBuilder;
            aload 0 /* this */
            aload 7 /* methodName */
            aload 5 /* argumentModels */
            invokedynamic accept(Lio/vertx/codetrans/expression/DataObjectModel;Ljava/lang/String;Ljava/util/List;)Ljava/util/function/Consumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  io/vertx/codetrans/expression/DataObjectModel.lambda$0(Ljava/lang/String;Ljava/util/List;Lio/vertx/codetrans/CodeWriter;)V (7)
                  (Lio/vertx/codetrans/CodeWriter;)V
            invokeinterface io.vertx.codetrans.CodeBuilder.render:(Ljava/util/function/Consumer;)Lio/vertx/codetrans/expression/ExpressionModel;
            areturn
         3: .line 33
      StackMap locals: java.lang.String
      StackMap stack:
            aload 7 /* methodName */
            invokestatic io.vertx.codetrans.expression.DataObjectLiteralModel.isGet:(Ljava/lang/String;)Z
            ifeq 5
         4: .line 34
            aload 0 /* this */
            getfield io.vertx.codetrans.expression.DataObjectModel.builder:Lio/vertx/codetrans/CodeBuilder;
            aload 0 /* this */
            aload 7 /* methodName */
            invokedynamic accept(Lio/vertx/codetrans/expression/DataObjectModel;Ljava/lang/String;)Ljava/util/function/Consumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  io/vertx/codetrans/expression/DataObjectModel.lambda$1(Ljava/lang/String;Lio/vertx/codetrans/CodeWriter;)V (7)
                  (Lio/vertx/codetrans/CodeWriter;)V
            invokeinterface io.vertx.codetrans.CodeBuilder.render:(Ljava/util/function/Consumer;)Lio/vertx/codetrans/expression/ExpressionModel;
            areturn
         5: .line 39
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* method */
            invokevirtual io.vertx.codetrans.expression.DataObjectModel.isToJson:(Lio/vertx/codetrans/MethodSignature;)Z
            ifeq 7
         6: .line 40
            aload 0 /* this */
            getfield io.vertx.codetrans.expression.DataObjectModel.builder:Lio/vertx/codetrans/CodeBuilder;
            aload 0 /* this */
            invokedynamic accept(Lio/vertx/codetrans/expression/DataObjectModel;)Ljava/util/function/Consumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  io/vertx/codetrans/expression/DataObjectModel.lambda$2(Lio/vertx/codetrans/CodeWriter;)V (7)
                  (Lio/vertx/codetrans/CodeWriter;)V
            invokeinterface io.vertx.codetrans.CodeBuilder.render:(Ljava/util/function/Consumer;)Lio/vertx/codetrans/expression/ExpressionModel;
            areturn
         7: .line 44
      StackMap locals:
      StackMap stack:
            new java.lang.UnsupportedOperationException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Unsupported method "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* method */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " on object model"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.UnsupportedOperationException.<init>:(Ljava/lang/String;)V
            athrow
        end local 7 // java.lang.String methodName
        end local 6 // java.util.List argumentTypes
        end local 5 // java.util.List argumentModels
        end local 4 // java.util.List typeArguments
        end local 3 // io.vertx.codegen.type.TypeInfo returnType
        end local 2 // io.vertx.codetrans.MethodSignature method
        end local 1 // io.vertx.codegen.type.TypeInfo receiverType
        end local 0 // io.vertx.codetrans.expression.DataObjectModel this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    8     0            this  Lio/vertx/codetrans/expression/DataObjectModel;
            0    8     1    receiverType  Lio/vertx/codegen/type/TypeInfo;
            0    8     2          method  Lio/vertx/codetrans/MethodSignature;
            0    8     3      returnType  Lio/vertx/codegen/type/TypeInfo;
            0    8     4   typeArguments  Ljava/util/List<Lio/vertx/codetrans/TypeArg;>;
            0    8     5  argumentModels  Ljava/util/List<Lio/vertx/codetrans/expression/ExpressionModel;>;
            0    8     6   argumentTypes  Ljava/util/List<Lio/vertx/codegen/type/TypeInfo;>;
            1    8     7      methodName  Ljava/lang/String;
    Signature: (Lio/vertx/codegen/type/TypeInfo;Lio/vertx/codetrans/MethodSignature;Lio/vertx/codegen/type/TypeInfo;Ljava/util/List<Lio/vertx/codetrans/TypeArg;>;Ljava/util/List<Lio/vertx/codetrans/expression/ExpressionModel;>;Ljava/util/List<Lio/vertx/codegen/type/TypeInfo;>;)Lio/vertx/codetrans/expression/ExpressionModel;
    MethodParameters:
                Name  Flags
      receiverType    
      method          
      returnType      
      typeArguments   
      argumentModels  
      argumentTypes   

  private boolean isToJson(io.vertx.codetrans.MethodSignature);
    descriptor: (Lio/vertx/codetrans/MethodSignature;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // io.vertx.codetrans.expression.DataObjectModel this
        start local 1 // io.vertx.codetrans.MethodSignature method
         0: .line 48
            ldc "toJson"
            aload 1 /* method */
            invokevirtual io.vertx.codetrans.MethodSignature.getName:()Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 4
         1: .line 49
            aload 1 /* method */
            invokevirtual io.vertx.codetrans.MethodSignature.getReturnType:()Lio/vertx/codegen/type/TypeInfo;
            invokevirtual io.vertx.codegen.type.TypeInfo.getKind:()Lio/vertx/codegen/type/ClassKind;
            getfield io.vertx.codegen.type.ClassKind.json:Z
            ifeq 4
         2: .line 50
            aload 1 /* method */
            invokevirtual io.vertx.codetrans.MethodSignature.getParameterTypes:()Ljava/util/List;
            invokeinterface java.util.List.isEmpty:()Z
            ifeq 4
         3: .line 48
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         4: iconst_0
            ireturn
        end local 1 // io.vertx.codetrans.MethodSignature method
        end local 0 // io.vertx.codetrans.expression.DataObjectModel this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    5     0    this  Lio/vertx/codetrans/expression/DataObjectModel;
            0    5     1  method  Lio/vertx/codetrans/MethodSignature;
    MethodParameters:
        Name  Flags
      method  

  public void render(io.vertx.codetrans.CodeWriter);
    descriptor: (Lio/vertx/codetrans/CodeWriter;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // io.vertx.codetrans.expression.DataObjectModel this
        start local 1 // io.vertx.codetrans.CodeWriter writer
         0: .line 55
            aload 0 /* this */
            getfield io.vertx.codetrans.expression.DataObjectModel.expression:Lio/vertx/codetrans/expression/ExpressionModel;
            aload 1 /* writer */
            invokevirtual io.vertx.codetrans.expression.ExpressionModel.render:(Lio/vertx/codetrans/CodeWriter;)V
         1: .line 56
            return
        end local 1 // io.vertx.codetrans.CodeWriter writer
        end local 0 // io.vertx.codetrans.expression.DataObjectModel this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Lio/vertx/codetrans/expression/DataObjectModel;
            0    2     1  writer  Lio/vertx/codetrans/CodeWriter;
    MethodParameters:
        Name  Flags
      writer  

  private void lambda$0(java.lang.String, java.util.List, io.vertx.codetrans.CodeWriter);
    descriptor: (Ljava/lang/String;Ljava/util/List;Lio/vertx/codetrans/CodeWriter;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // io.vertx.codetrans.expression.DataObjectModel this
        start local 3 // io.vertx.codetrans.CodeWriter writer
         0: .line 28
            aload 3 /* writer */
            aload 0 /* this */
            getfield io.vertx.codetrans.expression.DataObjectModel.expression:Lio/vertx/codetrans/expression/ExpressionModel;
         1: .line 29
            aload 1
            invokestatic io.vertx.codetrans.expression.DataObjectLiteralModel.unwrapSet:(Ljava/lang/String;)Ljava/lang/String;
         2: .line 30
            aload 2
            iconst_0
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast io.vertx.codetrans.expression.ExpressionModel
            invokevirtual io.vertx.codetrans.expression.ExpressionModel.toDataObjectValue:()Lio/vertx/codetrans/expression/ExpressionModel;
         3: .line 28
            invokevirtual io.vertx.codetrans.CodeWriter.renderDataObjectAssign:(Lio/vertx/codetrans/expression/ExpressionModel;Ljava/lang/String;Lio/vertx/codetrans/expression/ExpressionModel;)V
         4: .line 31
            return
        end local 3 // io.vertx.codetrans.CodeWriter writer
        end local 0 // io.vertx.codetrans.expression.DataObjectModel this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    5     0    this  Lio/vertx/codetrans/expression/DataObjectModel;
            0    5     3  writer  Lio/vertx/codetrans/CodeWriter;

  private void lambda$1(java.lang.String, io.vertx.codetrans.CodeWriter);
    descriptor: (Ljava/lang/String;Lio/vertx/codetrans/CodeWriter;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // io.vertx.codetrans.expression.DataObjectModel this
        start local 2 // io.vertx.codetrans.CodeWriter writer
         0: .line 35
            aload 2 /* writer */
            aload 0 /* this */
            getfield io.vertx.codetrans.expression.DataObjectModel.expression:Lio/vertx/codetrans/expression/ExpressionModel;
         1: .line 36
            aload 1
            invokestatic io.vertx.codetrans.expression.DataObjectLiteralModel.unwrapSet:(Ljava/lang/String;)Ljava/lang/String;
         2: .line 35
            invokevirtual io.vertx.codetrans.CodeWriter.renderDataObjectMemberSelect:(Lio/vertx/codetrans/expression/ExpressionModel;Ljava/lang/String;)V
         3: .line 37
            return
        end local 2 // io.vertx.codetrans.CodeWriter writer
        end local 0 // io.vertx.codetrans.expression.DataObjectModel this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    4     0    this  Lio/vertx/codetrans/expression/DataObjectModel;
            0    4     2  writer  Lio/vertx/codetrans/CodeWriter;

  private void lambda$2(io.vertx.codetrans.CodeWriter);
    descriptor: (Lio/vertx/codetrans/CodeWriter;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // io.vertx.codetrans.expression.DataObjectModel this
        start local 1 // io.vertx.codetrans.CodeWriter writer
         0: .line 41
            aload 1 /* writer */
            aload 0 /* this */
            getfield io.vertx.codetrans.expression.DataObjectModel.expression:Lio/vertx/codetrans/expression/ExpressionModel;
            checkcast io.vertx.codetrans.expression.IdentifierModel
            invokevirtual io.vertx.codetrans.CodeWriter.renderDataObjectToJson:(Lio/vertx/codetrans/expression/IdentifierModel;)V
         1: .line 42
            return
        end local 1 // io.vertx.codetrans.CodeWriter writer
        end local 0 // io.vertx.codetrans.expression.DataObjectModel this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Lio/vertx/codetrans/expression/DataObjectModel;
            0    2     1  writer  Lio/vertx/codetrans/CodeWriter;
}
SourceFile: "DataObjectModel.java"
InnerClasses:
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles