public abstract class com.google.protobuf.Extension<ContainingType extends com.google.protobuf.MessageLite, Type> extends com.google.protobuf.ExtensionLite<ContainingType, Type>
  minor version: 0
  major version: 59
  flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
  this_class: com.google.protobuf.Extension
  super_class: com.google.protobuf.ExtensionLite
{
  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.google.protobuf.Extension this
         0: .line 39
            aload 0 /* this */
            invokespecial com.google.protobuf.ExtensionLite.<init>:()V
            return
        end local 0 // com.google.protobuf.Extension this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/google/protobuf/Extension<TContainingType;TType;>;

  public abstract com.google.protobuf.Message getMessageDefaultInstance();
    descriptor: ()Lcom/google/protobuf/Message;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  public abstract com.google.protobuf.Descriptors$FieldDescriptor getDescriptor();
    descriptor: ()Lcom/google/protobuf/Descriptors$FieldDescriptor;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  final boolean isLite();
    descriptor: ()Z
    flags: (0x0010) ACC_FINAL
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.google.protobuf.Extension this
         0: .line 53
            iconst_0
            ireturn
        end local 0 // com.google.protobuf.Extension this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/google/protobuf/Extension<TContainingType;TType;>;

  protected abstract com.google.protobuf.Extension$ExtensionType getExtensionType();
    descriptor: ()Lcom/google/protobuf/Extension$ExtensionType;
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
    Signature: ()Lcom/google/protobuf/Extension$ExtensionType;

  public com.google.protobuf.Extension$MessageType getMessageType();
    descriptor: ()Lcom/google/protobuf/Extension$MessageType;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.google.protobuf.Extension this
         0: .line 78
            getstatic com.google.protobuf.Extension$MessageType.PROTO2:Lcom/google/protobuf/Extension$MessageType;
            areturn
        end local 0 // com.google.protobuf.Extension this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/google/protobuf/Extension<TContainingType;TType;>;
    Signature: ()Lcom/google/protobuf/Extension$MessageType;

  protected abstract java.lang.Object fromReflectionType(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
    MethodParameters:
       Name  Flags
      value  

  protected abstract java.lang.Object singularFromReflectionType(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
    MethodParameters:
       Name  Flags
      value  

  protected abstract java.lang.Object toReflectionType(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
    MethodParameters:
       Name  Flags
      value  

  protected abstract java.lang.Object singularToReflectionType(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
    MethodParameters:
       Name  Flags
      value  

  public com.google.protobuf.MessageLite getMessageDefaultInstance();
    descriptor: ()Lcom/google/protobuf/MessageLite;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
         0: .line 1
            aload 0
            invokevirtual com.google.protobuf.Extension.getMessageDefaultInstance:()Lcom/google/protobuf/Message;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
}
Signature: <ContainingType::Lcom/google/protobuf/MessageLite;Type:Ljava/lang/Object;>Lcom/google/protobuf/ExtensionLite<TContainingType;TType;>;
SourceFile: "Extension.java"
NestMembers:
  com.google.protobuf.Extension$ExtensionType  com.google.protobuf.Extension$MessageType
InnerClasses:
  public final FieldDescriptor = com.google.protobuf.Descriptors$FieldDescriptor of com.google.protobuf.Descriptors
  protected final ExtensionType = com.google.protobuf.Extension$ExtensionType of com.google.protobuf.Extension
  public final MessageType = com.google.protobuf.Extension$MessageType of com.google.protobuf.Extension