public class com.fasterxml.jackson.dataformat.protobuf.schemagen.MessageElementVisitor extends com.fasterxml.jackson.databind.jsonFormatVisitors.JsonObjectFormatVisitor$Base implements com.fasterxml.jackson.dataformat.protobuf.schemagen.TypeElementBuilder
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: com.fasterxml.jackson.dataformat.protobuf.schemagen.MessageElementVisitor
  super_class: com.fasterxml.jackson.databind.jsonFormatVisitors.JsonObjectFormatVisitor$Base
{
  protected com.squareup.protoparser.MessageElement$Builder _builder;
    descriptor: Lcom/squareup/protoparser/MessageElement$Builder;
    flags: (0x0004) ACC_PROTECTED

  protected com.fasterxml.jackson.dataformat.protobuf.schemagen.TagGenerator _tagGenerator;
    descriptor: Lcom/fasterxml/jackson/dataformat/protobuf/schemagen/TagGenerator;
    flags: (0x0004) ACC_PROTECTED

  protected com.fasterxml.jackson.databind.JavaType _type;
    descriptor: Lcom/fasterxml/jackson/databind/JavaType;
    flags: (0x0004) ACC_PROTECTED

  protected java.util.Set<com.fasterxml.jackson.databind.JavaType> _nestedTypes;
    descriptor: Ljava/util/Set;
    flags: (0x0004) ACC_PROTECTED
    Signature: Ljava/util/Set<Lcom/fasterxml/jackson/databind/JavaType;>;

  protected com.fasterxml.jackson.dataformat.protobuf.schemagen.DefinedTypeElementBuilders _definedTypeElementBuilders;
    descriptor: Lcom/fasterxml/jackson/dataformat/protobuf/schemagen/DefinedTypeElementBuilders;
    flags: (0x0004) ACC_PROTECTED

  public void <init>(com.fasterxml.jackson.databind.SerializerProvider, com.fasterxml.jackson.databind.JavaType, com.fasterxml.jackson.dataformat.protobuf.schemagen.DefinedTypeElementBuilders, boolean);
    descriptor: (Lcom/fasterxml/jackson/databind/SerializerProvider;Lcom/fasterxml/jackson/databind/JavaType;Lcom/fasterxml/jackson/dataformat/protobuf/schemagen/DefinedTypeElementBuilders;Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=5
        start local 0 // com.fasterxml.jackson.dataformat.protobuf.schemagen.MessageElementVisitor this
        start local 1 // com.fasterxml.jackson.databind.SerializerProvider provider
        start local 2 // com.fasterxml.jackson.databind.JavaType type
        start local 3 // com.fasterxml.jackson.dataformat.protobuf.schemagen.DefinedTypeElementBuilders definedTypeElementBuilders
        start local 4 // boolean isNested
         0: .line 34
            aload 0 /* this */
            aload 1 /* provider */
            invokespecial com.fasterxml.jackson.databind.jsonFormatVisitors.JsonObjectFormatVisitor$Base.<init>:(Lcom/fasterxml/jackson/databind/SerializerProvider;)V
         1: .line 27
            aload 0 /* this */
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            putfield com.fasterxml.jackson.dataformat.protobuf.schemagen.MessageElementVisitor._nestedTypes:Ljava/util/Set;
         2: .line 35
            aload 0 /* this */
            aload 3 /* definedTypeElementBuilders */
            putfield com.fasterxml.jackson.dataformat.protobuf.schemagen.MessageElementVisitor._definedTypeElementBuilders:Lcom/fasterxml/jackson/dataformat/protobuf/schemagen/DefinedTypeElementBuilders;
         3: .line 36
            aload 0 /* this */
            aload 2 /* type */
            putfield com.fasterxml.jackson.dataformat.protobuf.schemagen.MessageElementVisitor._type:Lcom/fasterxml/jackson/databind/JavaType;
         4: .line 37
            aload 0 /* this */
            invokestatic com.squareup.protoparser.MessageElement.builder:()Lcom/squareup/protoparser/MessageElement$Builder;
            putfield com.fasterxml.jackson.dataformat.protobuf.schemagen.MessageElementVisitor._builder:Lcom/squareup/protoparser/MessageElement$Builder;
         5: .line 38
            aload 0 /* this */
            getfield com.fasterxml.jackson.dataformat.protobuf.schemagen.MessageElementVisitor._builder:Lcom/squareup/protoparser/MessageElement$Builder;
            aload 2 /* type */
            invokevirtual com.fasterxml.jackson.databind.JavaType.getRawClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getSimpleName:()Ljava/lang/String;
            invokevirtual com.squareup.protoparser.MessageElement$Builder.name:(Ljava/lang/String;)Lcom/squareup/protoparser/MessageElement$Builder;
            pop
         6: .line 39
            aload 0 /* this */
            getfield com.fasterxml.jackson.dataformat.protobuf.schemagen.MessageElementVisitor._builder:Lcom/squareup/protoparser/MessageElement$Builder;
            new java.lang.StringBuilder
            dup
            ldc "Message for "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* type */
            invokevirtual com.fasterxml.jackson.databind.JavaType.toCanonical:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual com.squareup.protoparser.MessageElement$Builder.documentation:(Ljava/lang/String;)Lcom/squareup/protoparser/MessageElement$Builder;
            pop
         7: .line 40
            return
        end local 4 // boolean isNested
        end local 3 // com.fasterxml.jackson.dataformat.protobuf.schemagen.DefinedTypeElementBuilders definedTypeElementBuilders
        end local 2 // com.fasterxml.jackson.databind.JavaType type
        end local 1 // com.fasterxml.jackson.databind.SerializerProvider provider
        end local 0 // com.fasterxml.jackson.dataformat.protobuf.schemagen.MessageElementVisitor this
      LocalVariableTable:
        Start  End  Slot                        Name  Signature
            0    8     0                        this  Lcom/fasterxml/jackson/dataformat/protobuf/schemagen/MessageElementVisitor;
            0    8     1                    provider  Lcom/fasterxml/jackson/databind/SerializerProvider;
            0    8     2                        type  Lcom/fasterxml/jackson/databind/JavaType;
            0    8     3  definedTypeElementBuilders  Lcom/fasterxml/jackson/dataformat/protobuf/schemagen/DefinedTypeElementBuilders;
            0    8     4                    isNested  Z
    MethodParameters:
                            Name  Flags
      provider                    
      type                        
      definedTypeElementBuilders  
      isNested                    

  public com.squareup.protoparser.TypeElement build();
    descriptor: ()Lcom/squareup/protoparser/TypeElement;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.fasterxml.jackson.dataformat.protobuf.schemagen.MessageElementVisitor this
         0: .line 44
            aload 0 /* this */
            getfield com.fasterxml.jackson.dataformat.protobuf.schemagen.MessageElementVisitor._builder:Lcom/squareup/protoparser/MessageElement$Builder;
            invokevirtual com.squareup.protoparser.MessageElement$Builder.build:()Lcom/squareup/protoparser/MessageElement;
            areturn
        end local 0 // com.fasterxml.jackson.dataformat.protobuf.schemagen.MessageElementVisitor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/fasterxml/jackson/dataformat/protobuf/schemagen/MessageElementVisitor;

  public void property(com.fasterxml.jackson.databind.BeanProperty);
    descriptor: (Lcom/fasterxml/jackson/databind/BeanProperty;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // com.fasterxml.jackson.dataformat.protobuf.schemagen.MessageElementVisitor this
        start local 1 // com.fasterxml.jackson.databind.BeanProperty writer
         0: .line 49
            aload 0 /* this */
            getfield com.fasterxml.jackson.dataformat.protobuf.schemagen.MessageElementVisitor._builder:Lcom/squareup/protoparser/MessageElement$Builder;
            aload 0 /* this */
            aload 1 /* writer */
            getstatic com.squareup.protoparser.FieldElement$Label.REQUIRED:Lcom/squareup/protoparser/FieldElement$Label;
            invokevirtual com.fasterxml.jackson.dataformat.protobuf.schemagen.MessageElementVisitor.buildFieldElement:(Lcom/fasterxml/jackson/databind/BeanProperty;Lcom/squareup/protoparser/FieldElement$Label;)Lcom/squareup/protoparser/FieldElement;
            invokevirtual com.squareup.protoparser.MessageElement$Builder.addField:(Lcom/squareup/protoparser/FieldElement;)Lcom/squareup/protoparser/MessageElement$Builder;
            pop
         1: .line 50
            return
        end local 1 // com.fasterxml.jackson.databind.BeanProperty writer
        end local 0 // com.fasterxml.jackson.dataformat.protobuf.schemagen.MessageElementVisitor this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Lcom/fasterxml/jackson/dataformat/protobuf/schemagen/MessageElementVisitor;
            0    2     1  writer  Lcom/fasterxml/jackson/databind/BeanProperty;
    Exceptions:
      throws com.fasterxml.jackson.databind.JsonMappingException
    MethodParameters:
        Name  Flags
      writer  

  public void property(java.lang.String, com.fasterxml.jackson.databind.jsonFormatVisitors.JsonFormatVisitable, com.fasterxml.jackson.databind.JavaType);
    descriptor: (Ljava/lang/String;Lcom/fasterxml/jackson/databind/jsonFormatVisitors/JsonFormatVisitable;Lcom/fasterxml/jackson/databind/JavaType;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=4
        start local 0 // com.fasterxml.jackson.dataformat.protobuf.schemagen.MessageElementVisitor this
        start local 1 // java.lang.String name
        start local 2 // com.fasterxml.jackson.databind.jsonFormatVisitors.JsonFormatVisitable handler
        start local 3 // com.fasterxml.jackson.databind.JavaType propertyTypeHint
         0: .line 54
            new java.lang.UnsupportedOperationException
            dup
            invokespecial java.lang.UnsupportedOperationException.<init>:()V
            athrow
        end local 3 // com.fasterxml.jackson.databind.JavaType propertyTypeHint
        end local 2 // com.fasterxml.jackson.databind.jsonFormatVisitors.JsonFormatVisitable handler
        end local 1 // java.lang.String name
        end local 0 // com.fasterxml.jackson.dataformat.protobuf.schemagen.MessageElementVisitor this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    1     0              this  Lcom/fasterxml/jackson/dataformat/protobuf/schemagen/MessageElementVisitor;
            0    1     1              name  Ljava/lang/String;
            0    1     2           handler  Lcom/fasterxml/jackson/databind/jsonFormatVisitors/JsonFormatVisitable;
            0    1     3  propertyTypeHint  Lcom/fasterxml/jackson/databind/JavaType;
    MethodParameters:
                  Name  Flags
      name              
      handler           
      propertyTypeHint  

  public void optionalProperty(com.fasterxml.jackson.databind.BeanProperty);
    descriptor: (Lcom/fasterxml/jackson/databind/BeanProperty;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // com.fasterxml.jackson.dataformat.protobuf.schemagen.MessageElementVisitor this
        start local 1 // com.fasterxml.jackson.databind.BeanProperty writer
         0: .line 59
            aload 0 /* this */
            getfield com.fasterxml.jackson.dataformat.protobuf.schemagen.MessageElementVisitor._builder:Lcom/squareup/protoparser/MessageElement$Builder;
            aload 0 /* this */
            aload 1 /* writer */
            getstatic com.squareup.protoparser.FieldElement$Label.OPTIONAL:Lcom/squareup/protoparser/FieldElement$Label;
            invokevirtual com.fasterxml.jackson.dataformat.protobuf.schemagen.MessageElementVisitor.buildFieldElement:(Lcom/fasterxml/jackson/databind/BeanProperty;Lcom/squareup/protoparser/FieldElement$Label;)Lcom/squareup/protoparser/FieldElement;
            invokevirtual com.squareup.protoparser.MessageElement$Builder.addField:(Lcom/squareup/protoparser/FieldElement;)Lcom/squareup/protoparser/MessageElement$Builder;
            pop
         1: .line 60
            return
        end local 1 // com.fasterxml.jackson.databind.BeanProperty writer
        end local 0 // com.fasterxml.jackson.dataformat.protobuf.schemagen.MessageElementVisitor this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Lcom/fasterxml/jackson/dataformat/protobuf/schemagen/MessageElementVisitor;
            0    2     1  writer  Lcom/fasterxml/jackson/databind/BeanProperty;
    Exceptions:
      throws com.fasterxml.jackson.databind.JsonMappingException
    MethodParameters:
        Name  Flags
      writer  

  public void optionalProperty(java.lang.String, com.fasterxml.jackson.databind.jsonFormatVisitors.JsonFormatVisitable, com.fasterxml.jackson.databind.JavaType);
    descriptor: (Ljava/lang/String;Lcom/fasterxml/jackson/databind/jsonFormatVisitors/JsonFormatVisitable;Lcom/fasterxml/jackson/databind/JavaType;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=4
        start local 0 // com.fasterxml.jackson.dataformat.protobuf.schemagen.MessageElementVisitor this
        start local 1 // java.lang.String name
        start local 2 // com.fasterxml.jackson.databind.jsonFormatVisitors.JsonFormatVisitable handler
        start local 3 // com.fasterxml.jackson.databind.JavaType propertyTypeHint
         0: .line 64
            new java.lang.UnsupportedOperationException
            dup
            invokespecial java.lang.UnsupportedOperationException.<init>:()V
            athrow
        end local 3 // com.fasterxml.jackson.databind.JavaType propertyTypeHint
        end local 2 // com.fasterxml.jackson.databind.jsonFormatVisitors.JsonFormatVisitable handler
        end local 1 // java.lang.String name
        end local 0 // com.fasterxml.jackson.dataformat.protobuf.schemagen.MessageElementVisitor this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    1     0              this  Lcom/fasterxml/jackson/dataformat/protobuf/schemagen/MessageElementVisitor;
            0    1     1              name  Ljava/lang/String;
            0    1     2           handler  Lcom/fasterxml/jackson/databind/jsonFormatVisitors/JsonFormatVisitable;
            0    1     3  propertyTypeHint  Lcom/fasterxml/jackson/databind/JavaType;
    MethodParameters:
                  Name  Flags
      name              
      handler           
      propertyTypeHint  

  protected com.squareup.protoparser.FieldElement buildFieldElement(com.fasterxml.jackson.databind.BeanProperty, com.squareup.protoparser.FieldElement$Label);
    descriptor: (Lcom/fasterxml/jackson/databind/BeanProperty;Lcom/squareup/protoparser/FieldElement$Label;)Lcom/squareup/protoparser/FieldElement;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=5, args_size=3
        start local 0 // com.fasterxml.jackson.dataformat.protobuf.schemagen.MessageElementVisitor this
        start local 1 // com.fasterxml.jackson.databind.BeanProperty writer
        start local 2 // com.squareup.protoparser.FieldElement$Label label
         0: .line 69
            invokestatic com.squareup.protoparser.FieldElement.builder:()Lcom/squareup/protoparser/FieldElement$Builder;
            astore 3 /* fBuilder */
        start local 3 // com.squareup.protoparser.FieldElement$Builder fBuilder
         1: .line 71
            aload 3 /* fBuilder */
            aload 1 /* writer */
            invokeinterface com.fasterxml.jackson.databind.BeanProperty.getName:()Ljava/lang/String;
            invokevirtual com.squareup.protoparser.FieldElement$Builder.name:(Ljava/lang/String;)Lcom/squareup/protoparser/FieldElement$Builder;
            pop
         2: .line 72
            aload 3 /* fBuilder */
            aload 0 /* this */
            aload 1 /* writer */
            invokevirtual com.fasterxml.jackson.dataformat.protobuf.schemagen.MessageElementVisitor.nextTag:(Lcom/fasterxml/jackson/databind/BeanProperty;)I
            invokevirtual com.squareup.protoparser.FieldElement$Builder.tag:(I)Lcom/squareup/protoparser/FieldElement$Builder;
            pop
         3: .line 74
            aload 1 /* writer */
            invokeinterface com.fasterxml.jackson.databind.BeanProperty.getType:()Lcom/fasterxml/jackson/databind/JavaType;
            astore 4 /* type */
        start local 4 // com.fasterxml.jackson.databind.JavaType type
         4: .line 76
            aload 4 /* type */
            invokevirtual com.fasterxml.jackson.databind.JavaType.isArrayType:()Z
            ifne 5
            aload 4 /* type */
            invokevirtual com.fasterxml.jackson.databind.JavaType.isCollectionLikeType:()Z
            ifeq 12
         5: .line 77
      StackMap locals: com.squareup.protoparser.FieldElement$Builder com.fasterxml.jackson.databind.JavaType
      StackMap stack:
            aload 4 /* type */
            invokestatic com.fasterxml.jackson.dataformat.protobuf.schemagen.ProtobufSchemaHelper.isBinaryType:(Lcom/fasterxml/jackson/databind/JavaType;)Z
            ifeq 9
         6: .line 78
            aload 3 /* fBuilder */
            aload 2 /* label */
            invokevirtual com.squareup.protoparser.FieldElement$Builder.label:(Lcom/squareup/protoparser/FieldElement$Label;)Lcom/squareup/protoparser/FieldElement$Builder;
            pop
         7: .line 79
            aload 3 /* fBuilder */
            getstatic com.squareup.protoparser.DataType$ScalarType.BYTES:Lcom/squareup/protoparser/DataType$ScalarType;
            invokevirtual com.squareup.protoparser.FieldElement$Builder.type:(Lcom/squareup/protoparser/DataType;)Lcom/squareup/protoparser/FieldElement$Builder;
            pop
         8: .line 80
            goto 14
         9: .line 81
      StackMap locals:
      StackMap stack:
            aload 3 /* fBuilder */
            getstatic com.squareup.protoparser.FieldElement$Label.REPEATED:Lcom/squareup/protoparser/FieldElement$Label;
            invokevirtual com.squareup.protoparser.FieldElement$Builder.label:(Lcom/squareup/protoparser/FieldElement$Label;)Lcom/squareup/protoparser/FieldElement$Builder;
            pop
        10: .line 82
            aload 3 /* fBuilder */
            aload 0 /* this */
            aload 4 /* type */
            invokevirtual com.fasterxml.jackson.databind.JavaType.getContentType:()Lcom/fasterxml/jackson/databind/JavaType;
            invokevirtual com.fasterxml.jackson.dataformat.protobuf.schemagen.MessageElementVisitor.getDataType:(Lcom/fasterxml/jackson/databind/JavaType;)Lcom/squareup/protoparser/DataType;
            invokevirtual com.squareup.protoparser.FieldElement$Builder.type:(Lcom/squareup/protoparser/DataType;)Lcom/squareup/protoparser/FieldElement$Builder;
            pop
        11: .line 84
            goto 14
        12: .line 85
      StackMap locals:
      StackMap stack:
            aload 3 /* fBuilder */
            aload 2 /* label */
            invokevirtual com.squareup.protoparser.FieldElement$Builder.label:(Lcom/squareup/protoparser/FieldElement$Label;)Lcom/squareup/protoparser/FieldElement$Builder;
            pop
        13: .line 86
            aload 3 /* fBuilder */
            aload 0 /* this */
            aload 4 /* type */
            invokevirtual com.fasterxml.jackson.dataformat.protobuf.schemagen.MessageElementVisitor.getDataType:(Lcom/fasterxml/jackson/databind/JavaType;)Lcom/squareup/protoparser/DataType;
            invokevirtual com.squareup.protoparser.FieldElement$Builder.type:(Lcom/squareup/protoparser/DataType;)Lcom/squareup/protoparser/FieldElement$Builder;
            pop
        14: .line 88
      StackMap locals:
      StackMap stack:
            aload 3 /* fBuilder */
            invokevirtual com.squareup.protoparser.FieldElement$Builder.build:()Lcom/squareup/protoparser/FieldElement;
            areturn
        end local 4 // com.fasterxml.jackson.databind.JavaType type
        end local 3 // com.squareup.protoparser.FieldElement$Builder fBuilder
        end local 2 // com.squareup.protoparser.FieldElement$Label label
        end local 1 // com.fasterxml.jackson.databind.BeanProperty writer
        end local 0 // com.fasterxml.jackson.dataformat.protobuf.schemagen.MessageElementVisitor this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   15     0      this  Lcom/fasterxml/jackson/dataformat/protobuf/schemagen/MessageElementVisitor;
            0   15     1    writer  Lcom/fasterxml/jackson/databind/BeanProperty;
            0   15     2     label  Lcom/squareup/protoparser/FieldElement$Label;
            1   15     3  fBuilder  Lcom/squareup/protoparser/FieldElement$Builder;
            4   15     4      type  Lcom/fasterxml/jackson/databind/JavaType;
    Exceptions:
      throws com.fasterxml.jackson.databind.JsonMappingException
    MethodParameters:
        Name  Flags
      writer  
      label   

  protected int nextTag(com.fasterxml.jackson.databind.BeanProperty);
    descriptor: (Lcom/fasterxml/jackson/databind/BeanProperty;)I
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.fasterxml.jackson.dataformat.protobuf.schemagen.MessageElementVisitor this
        start local 1 // com.fasterxml.jackson.databind.BeanProperty writer
         0: .line 92
            aload 0 /* this */
            aload 1 /* writer */
            invokevirtual com.fasterxml.jackson.dataformat.protobuf.schemagen.MessageElementVisitor.getTagGenerator:(Lcom/fasterxml/jackson/databind/BeanProperty;)V
         1: .line 93
            aload 0 /* this */
            getfield com.fasterxml.jackson.dataformat.protobuf.schemagen.MessageElementVisitor._tagGenerator:Lcom/fasterxml/jackson/dataformat/protobuf/schemagen/TagGenerator;
            aload 1 /* writer */
            invokeinterface com.fasterxml.jackson.dataformat.protobuf.schemagen.TagGenerator.nextTag:(Lcom/fasterxml/jackson/databind/BeanProperty;)I
            ireturn
        end local 1 // com.fasterxml.jackson.databind.BeanProperty writer
        end local 0 // com.fasterxml.jackson.dataformat.protobuf.schemagen.MessageElementVisitor this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Lcom/fasterxml/jackson/dataformat/protobuf/schemagen/MessageElementVisitor;
            0    2     1  writer  Lcom/fasterxml/jackson/databind/BeanProperty;
    MethodParameters:
        Name  Flags
      writer  

  protected void getTagGenerator(com.fasterxml.jackson.databind.BeanProperty);
    descriptor: (Lcom/fasterxml/jackson/databind/BeanProperty;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.fasterxml.jackson.dataformat.protobuf.schemagen.MessageElementVisitor this
        start local 1 // com.fasterxml.jackson.databind.BeanProperty writer
         0: .line 97
            aload 0 /* this */
            getfield com.fasterxml.jackson.dataformat.protobuf.schemagen.MessageElementVisitor._tagGenerator:Lcom/fasterxml/jackson/dataformat/protobuf/schemagen/TagGenerator;
            ifnonnull 5
         1: .line 98
            aload 1 /* writer */
            invokestatic com.fasterxml.jackson.dataformat.protobuf.schemagen.ProtobufSchemaHelper.hasIndex:(Lcom/fasterxml/jackson/databind/BeanProperty;)Z
            ifeq 4
         2: .line 99
            aload 0 /* this */
            new com.fasterxml.jackson.dataformat.protobuf.schemagen.AnnotationBasedTagGenerator
            dup
            invokespecial com.fasterxml.jackson.dataformat.protobuf.schemagen.AnnotationBasedTagGenerator.<init>:()V
            putfield com.fasterxml.jackson.dataformat.protobuf.schemagen.MessageElementVisitor._tagGenerator:Lcom/fasterxml/jackson/dataformat/protobuf/schemagen/TagGenerator;
         3: .line 100
            goto 5
         4: .line 101
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            new com.fasterxml.jackson.dataformat.protobuf.schemagen.DefaultTagGenerator
            dup
            invokespecial com.fasterxml.jackson.dataformat.protobuf.schemagen.DefaultTagGenerator.<init>:()V
            putfield com.fasterxml.jackson.dataformat.protobuf.schemagen.MessageElementVisitor._tagGenerator:Lcom/fasterxml/jackson/dataformat/protobuf/schemagen/TagGenerator;
         5: .line 104
      StackMap locals:
      StackMap stack:
            return
        end local 1 // com.fasterxml.jackson.databind.BeanProperty writer
        end local 0 // com.fasterxml.jackson.dataformat.protobuf.schemagen.MessageElementVisitor this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    6     0    this  Lcom/fasterxml/jackson/dataformat/protobuf/schemagen/MessageElementVisitor;
            0    6     1  writer  Lcom/fasterxml/jackson/databind/BeanProperty;
    MethodParameters:
        Name  Flags
      writer  

  protected com.squareup.protoparser.DataType getDataType(com.fasterxml.jackson.databind.JavaType);
    descriptor: (Lcom/fasterxml/jackson/databind/JavaType;)Lcom/squareup/protoparser/DataType;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=4, args_size=2
        start local 0 // com.fasterxml.jackson.dataformat.protobuf.schemagen.MessageElementVisitor this
        start local 1 // com.fasterxml.jackson.databind.JavaType type
         0: .line 108
            aload 0 /* this */
            getfield com.fasterxml.jackson.dataformat.protobuf.schemagen.MessageElementVisitor._definedTypeElementBuilders:Lcom/fasterxml/jackson/dataformat/protobuf/schemagen/DefinedTypeElementBuilders;
            aload 1 /* type */
            invokevirtual com.fasterxml.jackson.dataformat.protobuf.schemagen.DefinedTypeElementBuilders.containsBuilderFor:(Lcom/fasterxml/jackson/databind/JavaType;)Z
            ifne 18
         1: .line 109
            aload 0 /* this */
            aload 1 /* type */
            invokevirtual com.fasterxml.jackson.dataformat.protobuf.schemagen.MessageElementVisitor.isNested:(Lcom/fasterxml/jackson/databind/JavaType;)Z
            ifeq 12
         2: .line 110
            aload 0 /* this */
            getfield com.fasterxml.jackson.dataformat.protobuf.schemagen.MessageElementVisitor._nestedTypes:Ljava/util/Set;
            aload 1 /* type */
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifne 18
         3: .line 111
            aload 0 /* this */
            getfield com.fasterxml.jackson.dataformat.protobuf.schemagen.MessageElementVisitor._nestedTypes:Ljava/util/Set;
            aload 1 /* type */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
         4: .line 112
            aload 0 /* this */
            aload 0 /* this */
            getfield com.fasterxml.jackson.dataformat.protobuf.schemagen.MessageElementVisitor._provider:Lcom/fasterxml/jackson/databind/SerializerProvider;
            aload 1 /* type */
         5: .line 113
            aload 0 /* this */
            getfield com.fasterxml.jackson.dataformat.protobuf.schemagen.MessageElementVisitor._definedTypeElementBuilders:Lcom/fasterxml/jackson/dataformat/protobuf/schemagen/DefinedTypeElementBuilders;
            iconst_1
         6: .line 112
            invokevirtual com.fasterxml.jackson.dataformat.protobuf.schemagen.MessageElementVisitor.acceptTypeElement:(Lcom/fasterxml/jackson/databind/SerializerProvider;Lcom/fasterxml/jackson/databind/JavaType;Lcom/fasterxml/jackson/dataformat/protobuf/schemagen/DefinedTypeElementBuilders;Z)Lcom/fasterxml/jackson/dataformat/protobuf/schemagen/ProtoBufSchemaVisitor;
            astore 2 /* builder */
        start local 2 // com.fasterxml.jackson.dataformat.protobuf.schemagen.ProtoBufSchemaVisitor builder
         7: .line 114
            aload 2 /* builder */
            invokevirtual com.fasterxml.jackson.dataformat.protobuf.schemagen.ProtoBufSchemaVisitor.getSimpleType:()Lcom/squareup/protoparser/DataType;
            astore 3 /* scalarType */
        start local 3 // com.squareup.protoparser.DataType scalarType
         8: .line 115
            aload 3 /* scalarType */
            ifnull 10
         9: .line 116
            aload 3 /* scalarType */
            areturn
        10: .line 118
      StackMap locals: com.fasterxml.jackson.dataformat.protobuf.schemagen.ProtoBufSchemaVisitor com.squareup.protoparser.DataType
      StackMap stack:
            aload 0 /* this */
            getfield com.fasterxml.jackson.dataformat.protobuf.schemagen.MessageElementVisitor._builder:Lcom/squareup/protoparser/MessageElement$Builder;
            aload 2 /* builder */
            invokevirtual com.fasterxml.jackson.dataformat.protobuf.schemagen.ProtoBufSchemaVisitor.build:()Lcom/squareup/protoparser/TypeElement;
            invokevirtual com.squareup.protoparser.MessageElement$Builder.addType:(Lcom/squareup/protoparser/TypeElement;)Lcom/squareup/protoparser/MessageElement$Builder;
            pop
        end local 3 // com.squareup.protoparser.DataType scalarType
        end local 2 // com.fasterxml.jackson.dataformat.protobuf.schemagen.ProtoBufSchemaVisitor builder
        11: .line 120
            goto 18
        12: .line 121
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield com.fasterxml.jackson.dataformat.protobuf.schemagen.MessageElementVisitor._provider:Lcom/fasterxml/jackson/databind/SerializerProvider;
            aload 1 /* type */
        13: .line 122
            aload 0 /* this */
            getfield com.fasterxml.jackson.dataformat.protobuf.schemagen.MessageElementVisitor._definedTypeElementBuilders:Lcom/fasterxml/jackson/dataformat/protobuf/schemagen/DefinedTypeElementBuilders;
            iconst_0
        14: .line 121
            invokevirtual com.fasterxml.jackson.dataformat.protobuf.schemagen.MessageElementVisitor.acceptTypeElement:(Lcom/fasterxml/jackson/databind/SerializerProvider;Lcom/fasterxml/jackson/databind/JavaType;Lcom/fasterxml/jackson/dataformat/protobuf/schemagen/DefinedTypeElementBuilders;Z)Lcom/fasterxml/jackson/dataformat/protobuf/schemagen/ProtoBufSchemaVisitor;
            astore 2 /* builder */
        start local 2 // com.fasterxml.jackson.dataformat.protobuf.schemagen.ProtoBufSchemaVisitor builder
        15: .line 123
            aload 2 /* builder */
            invokevirtual com.fasterxml.jackson.dataformat.protobuf.schemagen.ProtoBufSchemaVisitor.getSimpleType:()Lcom/squareup/protoparser/DataType;
            astore 3 /* scalarType */
        start local 3 // com.squareup.protoparser.DataType scalarType
        16: .line 124
            aload 3 /* scalarType */
            ifnull 18
        17: .line 125
            aload 3 /* scalarType */
            areturn
        end local 3 // com.squareup.protoparser.DataType scalarType
        end local 2 // com.fasterxml.jackson.dataformat.protobuf.schemagen.ProtoBufSchemaVisitor builder
        18: .line 129
      StackMap locals:
      StackMap stack:
            aload 1 /* type */
            invokevirtual com.fasterxml.jackson.databind.JavaType.getRawClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getSimpleName:()Ljava/lang/String;
            invokestatic com.squareup.protoparser.DataType$NamedType.create:(Ljava/lang/String;)Lcom/squareup/protoparser/DataType$NamedType;
            areturn
        end local 1 // com.fasterxml.jackson.databind.JavaType type
        end local 0 // com.fasterxml.jackson.dataformat.protobuf.schemagen.MessageElementVisitor this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   19     0        this  Lcom/fasterxml/jackson/dataformat/protobuf/schemagen/MessageElementVisitor;
            0   19     1        type  Lcom/fasterxml/jackson/databind/JavaType;
            7   11     2     builder  Lcom/fasterxml/jackson/dataformat/protobuf/schemagen/ProtoBufSchemaVisitor;
            8   11     3  scalarType  Lcom/squareup/protoparser/DataType;
           15   18     2     builder  Lcom/fasterxml/jackson/dataformat/protobuf/schemagen/ProtoBufSchemaVisitor;
           16   18     3  scalarType  Lcom/squareup/protoparser/DataType;
    Exceptions:
      throws com.fasterxml.jackson.databind.JsonMappingException
    MethodParameters:
      Name  Flags
      type  

  private com.fasterxml.jackson.dataformat.protobuf.schemagen.ProtoBufSchemaVisitor acceptTypeElement(com.fasterxml.jackson.databind.SerializerProvider, com.fasterxml.jackson.databind.JavaType, com.fasterxml.jackson.dataformat.protobuf.schemagen.DefinedTypeElementBuilders, boolean);
    descriptor: (Lcom/fasterxml/jackson/databind/SerializerProvider;Lcom/fasterxml/jackson/databind/JavaType;Lcom/fasterxml/jackson/dataformat/protobuf/schemagen/DefinedTypeElementBuilders;Z)Lcom/fasterxml/jackson/dataformat/protobuf/schemagen/ProtoBufSchemaVisitor;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=7, args_size=5
        start local 0 // com.fasterxml.jackson.dataformat.protobuf.schemagen.MessageElementVisitor this
        start local 1 // com.fasterxml.jackson.databind.SerializerProvider provider
        start local 2 // com.fasterxml.jackson.databind.JavaType type
        start local 3 // com.fasterxml.jackson.dataformat.protobuf.schemagen.DefinedTypeElementBuilders definedTypeElementBuilders
        start local 4 // boolean isNested
         0: .line 135
            aload 1 /* provider */
            aload 2 /* type */
            aconst_null
            invokevirtual com.fasterxml.jackson.databind.SerializerProvider.findValueSerializer:(Lcom/fasterxml/jackson/databind/JavaType;Lcom/fasterxml/jackson/databind/BeanProperty;)Lcom/fasterxml/jackson/databind/JsonSerializer;
            astore 5 /* serializer */
        start local 5 // com.fasterxml.jackson.databind.JsonSerializer serializer
         1: .line 136
            new com.fasterxml.jackson.dataformat.protobuf.schemagen.ProtoBufSchemaVisitor
            dup
            aload 1 /* provider */
            aload 3 /* definedTypeElementBuilders */
            iload 4 /* isNested */
            invokespecial com.fasterxml.jackson.dataformat.protobuf.schemagen.ProtoBufSchemaVisitor.<init>:(Lcom/fasterxml/jackson/databind/SerializerProvider;Lcom/fasterxml/jackson/dataformat/protobuf/schemagen/DefinedTypeElementBuilders;Z)V
            astore 6 /* visitor */
        start local 6 // com.fasterxml.jackson.dataformat.protobuf.schemagen.ProtoBufSchemaVisitor visitor
         2: .line 137
            aload 5 /* serializer */
            aload 6 /* visitor */
            aload 2 /* type */
            invokevirtual com.fasterxml.jackson.databind.JsonSerializer.acceptJsonFormatVisitor:(Lcom/fasterxml/jackson/databind/jsonFormatVisitors/JsonFormatVisitorWrapper;Lcom/fasterxml/jackson/databind/JavaType;)V
         3: .line 138
            aload 6 /* visitor */
            areturn
        end local 6 // com.fasterxml.jackson.dataformat.protobuf.schemagen.ProtoBufSchemaVisitor visitor
        end local 5 // com.fasterxml.jackson.databind.JsonSerializer serializer
        end local 4 // boolean isNested
        end local 3 // com.fasterxml.jackson.dataformat.protobuf.schemagen.DefinedTypeElementBuilders definedTypeElementBuilders
        end local 2 // com.fasterxml.jackson.databind.JavaType type
        end local 1 // com.fasterxml.jackson.databind.SerializerProvider provider
        end local 0 // com.fasterxml.jackson.dataformat.protobuf.schemagen.MessageElementVisitor this
      LocalVariableTable:
        Start  End  Slot                        Name  Signature
            0    4     0                        this  Lcom/fasterxml/jackson/dataformat/protobuf/schemagen/MessageElementVisitor;
            0    4     1                    provider  Lcom/fasterxml/jackson/databind/SerializerProvider;
            0    4     2                        type  Lcom/fasterxml/jackson/databind/JavaType;
            0    4     3  definedTypeElementBuilders  Lcom/fasterxml/jackson/dataformat/protobuf/schemagen/DefinedTypeElementBuilders;
            0    4     4                    isNested  Z
            1    4     5                  serializer  Lcom/fasterxml/jackson/databind/JsonSerializer<Ljava/lang/Object;>;
            2    4     6                     visitor  Lcom/fasterxml/jackson/dataformat/protobuf/schemagen/ProtoBufSchemaVisitor;
    Exceptions:
      throws com.fasterxml.jackson.databind.JsonMappingException
    MethodParameters:
                            Name  Flags
      provider                    
      type                        
      definedTypeElementBuilders  
      isNested                    

  private boolean isNested(com.fasterxml.jackson.databind.JavaType);
    descriptor: (Lcom/fasterxml/jackson/databind/JavaType;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=7, args_size=2
        start local 0 // com.fasterxml.jackson.dataformat.protobuf.schemagen.MessageElementVisitor this
        start local 1 // com.fasterxml.jackson.databind.JavaType type
         0: .line 143
            aload 1 /* type */
            invokevirtual com.fasterxml.jackson.databind.JavaType.getRawClass:()Ljava/lang/Class;
            astore 2 /* match */
        start local 2 // java.lang.Class match
         1: .line 144
            aload 0 /* this */
            getfield com.fasterxml.jackson.dataformat.protobuf.schemagen.MessageElementVisitor._type:Lcom/fasterxml/jackson/databind/JavaType;
            invokevirtual com.fasterxml.jackson.databind.JavaType.getRawClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getDeclaredClasses:()[Ljava/lang/Class;
            dup
            astore 6
            arraylength
            istore 5
            iconst_0
            istore 4
            goto 6
      StackMap locals: com.fasterxml.jackson.dataformat.protobuf.schemagen.MessageElementVisitor com.fasterxml.jackson.databind.JavaType java.lang.Class top int int java.lang.Class[]
      StackMap stack:
         2: aload 6
            iload 4
            aaload
            astore 3 /* cls */
        start local 3 // java.lang.Class cls
         3: .line 145
            aload 3 /* cls */
            aload 2 /* match */
            if_acmpne 5
         4: .line 146
            iconst_1
            ireturn
        end local 3 // java.lang.Class cls
         5: .line 144
      StackMap locals:
      StackMap stack:
            iinc 4 1
      StackMap locals:
      StackMap stack:
         6: iload 4
            iload 5
            if_icmplt 2
         7: .line 149
            iconst_0
            ireturn
        end local 2 // java.lang.Class match
        end local 1 // com.fasterxml.jackson.databind.JavaType type
        end local 0 // com.fasterxml.jackson.dataformat.protobuf.schemagen.MessageElementVisitor this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    8     0   this  Lcom/fasterxml/jackson/dataformat/protobuf/schemagen/MessageElementVisitor;
            0    8     1   type  Lcom/fasterxml/jackson/databind/JavaType;
            1    8     2  match  Ljava/lang/Class<*>;
            3    5     3    cls  Ljava/lang/Class<*>;
    MethodParameters:
      Name  Flags
      type  
}
SourceFile: "MessageElementVisitor.java"
InnerClasses:
  public Base = com.fasterxml.jackson.databind.jsonFormatVisitors.JsonObjectFormatVisitor$Base of com.fasterxml.jackson.databind.jsonFormatVisitors.JsonObjectFormatVisitor
  public final NamedType = com.squareup.protoparser.DataType$NamedType of com.squareup.protoparser.DataType
  public final ScalarType = com.squareup.protoparser.DataType$ScalarType of com.squareup.protoparser.DataType
  public final Builder = com.squareup.protoparser.FieldElement$Builder of com.squareup.protoparser.FieldElement
  public final Label = com.squareup.protoparser.FieldElement$Label of com.squareup.protoparser.FieldElement
  public final Builder = com.squareup.protoparser.MessageElement$Builder of com.squareup.protoparser.MessageElement