public class edu.umd.cs.findbugs.ClassAnnotation extends edu.umd.cs.findbugs.PackageMemberAnnotation
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: edu.umd.cs.findbugs.ClassAnnotation
  super_class: edu.umd.cs.findbugs.PackageMemberAnnotation
{
  private static final long serialVersionUID;
    descriptor: J
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  private static final java.lang.String DEFAULT_ROLE;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "CLASS_DEFAULT"

  public static final java.lang.String SUBCLASS_ROLE;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "CLASS_SUBCLASS"

  public static final java.lang.String SUPERCLASS_ROLE;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "CLASS_SUPERCLASS"

  public static final java.lang.String RECOMMENDED_SUPERCLASS_ROLE;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "CLASS_RECOMMENDED_SUPERCLASS"

  public static final java.lang.String IMPLEMENTED_INTERFACE_ROLE;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "CLASS_IMPLEMENTED_INTERFACE"

  public static final java.lang.String INTERFACE_ROLE;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "INTERFACE_TYPE"

  public static final java.lang.String ANNOTATION_ROLE;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "CLASS_ANNOTATION"

  public static final java.lang.String TYPE_QUALIFIER_ROLE;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "CLASS_TYPE_QUALIFIER"

  private static final java.lang.String ELEMENT_NAME;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "Class"

  public void <init>(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // edu.umd.cs.findbugs.ClassAnnotation this
        start local 1 // java.lang.String className
         0: .line 66
            aload 0 /* this */
            aload 1 /* className */
            ldc "CLASS_DEFAULT"
            invokespecial edu.umd.cs.findbugs.PackageMemberAnnotation.<init>:(Ljava/lang/String;Ljava/lang/String;)V
         1: .line 67
            return
        end local 1 // java.lang.String className
        end local 0 // edu.umd.cs.findbugs.ClassAnnotation this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    2     0       this  Ledu/umd/cs/findbugs/ClassAnnotation;
            0    2     1  className  Ljava/lang/String;
    RuntimeVisibleTypeAnnotations: 
      METHOD_FORMAL_PARAMETER
        edu.umd.cs.findbugs.internalAnnotations.DottedClassName()
    RuntimeVisibleParameterAnnotations: 
      0:
        edu.umd.cs.findbugs.internalAnnotations.DottedClassName()
    MethodParameters:
           Name  Flags
      className  

  public void <init>(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // edu.umd.cs.findbugs.ClassAnnotation this
        start local 1 // java.lang.String className
        start local 2 // java.lang.String sourceFileName
         0: .line 70
            aload 0 /* this */
            aload 1 /* className */
            ldc "CLASS_DEFAULT"
            aload 2 /* sourceFileName */
            invokespecial edu.umd.cs.findbugs.PackageMemberAnnotation.<init>:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
         1: .line 71
            return
        end local 2 // java.lang.String sourceFileName
        end local 1 // java.lang.String className
        end local 0 // edu.umd.cs.findbugs.ClassAnnotation this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    2     0            this  Ledu/umd/cs/findbugs/ClassAnnotation;
            0    2     1       className  Ljava/lang/String;
            0    2     2  sourceFileName  Ljava/lang/String;
    RuntimeVisibleTypeAnnotations: 
      METHOD_FORMAL_PARAMETER
        edu.umd.cs.findbugs.internalAnnotations.DottedClassName()
    RuntimeVisibleParameterAnnotations: 
      0:
        edu.umd.cs.findbugs.internalAnnotations.DottedClassName()
      1:
    MethodParameters:
                Name  Flags
      className       
      sourceFileName  

  public boolean isSignificant();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // edu.umd.cs.findbugs.ClassAnnotation this
         0: .line 75
            ldc "CLASS_SUBCLASS"
            aload 0 /* this */
            getfield edu.umd.cs.findbugs.ClassAnnotation.description:Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 1
            iconst_0
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_1
      StackMap locals:
      StackMap stack: int
         2: ireturn
        end local 0 // edu.umd.cs.findbugs.ClassAnnotation this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Ledu/umd/cs/findbugs/ClassAnnotation;

  public static edu.umd.cs.findbugs.ClassAnnotation fromClassDescriptor(edu.umd.cs.findbugs.classfile.ClassDescriptor);
    descriptor: (Ledu/umd/cs/findbugs/classfile/ClassDescriptor;)Ledu/umd/cs/findbugs/ClassAnnotation;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // edu.umd.cs.findbugs.classfile.ClassDescriptor classDescriptor
         0: .line 86
            new edu.umd.cs.findbugs.ClassAnnotation
            dup
            aload 0 /* classDescriptor */
            invokevirtual edu.umd.cs.findbugs.classfile.ClassDescriptor.toDottedClassName:()Ljava/lang/String;
            invokespecial edu.umd.cs.findbugs.ClassAnnotation.<init>:(Ljava/lang/String;)V
            areturn
        end local 0 // edu.umd.cs.findbugs.classfile.ClassDescriptor classDescriptor
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    1     0  classDescriptor  Ledu/umd/cs/findbugs/classfile/ClassDescriptor;
    MethodParameters:
                 Name  Flags
      classDescriptor  

  public void accept(edu.umd.cs.findbugs.BugAnnotationVisitor);
    descriptor: (Ledu/umd/cs/findbugs/BugAnnotationVisitor;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // edu.umd.cs.findbugs.ClassAnnotation this
        start local 1 // edu.umd.cs.findbugs.BugAnnotationVisitor visitor
         0: .line 91
            aload 1 /* visitor */
            aload 0 /* this */
            invokeinterface edu.umd.cs.findbugs.BugAnnotationVisitor.visitClassAnnotation:(Ledu/umd/cs/findbugs/ClassAnnotation;)V
         1: .line 92
            return
        end local 1 // edu.umd.cs.findbugs.BugAnnotationVisitor visitor
        end local 0 // edu.umd.cs.findbugs.ClassAnnotation this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Ledu/umd/cs/findbugs/ClassAnnotation;
            0    2     1  visitor  Ledu/umd/cs/findbugs/BugAnnotationVisitor;
    MethodParameters:
         Name  Flags
      visitor  

  protected java.lang.String formatPackageMember(java.lang.String, edu.umd.cs.findbugs.ClassAnnotation);
    descriptor: (Ljava/lang/String;Ledu/umd/cs/findbugs/ClassAnnotation;)Ljava/lang/String;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // edu.umd.cs.findbugs.ClassAnnotation this
        start local 1 // java.lang.String key
        start local 2 // edu.umd.cs.findbugs.ClassAnnotation primaryClass
         0: .line 96
            ldc ""
            aload 1 /* key */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 1
            ldc "hash"
            aload 1 /* key */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 2
         1: .line 97
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield edu.umd.cs.findbugs.ClassAnnotation.className:Ljava/lang/String;
            areturn
         2: .line 98
      StackMap locals:
      StackMap stack:
            ldc "givenClass"
            aload 1 /* key */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 4
         3: .line 99
            aload 2 /* primaryClass */
            invokevirtual edu.umd.cs.findbugs.ClassAnnotation.getPackageName:()Ljava/lang/String;
            aload 0 /* this */
            getfield edu.umd.cs.findbugs.ClassAnnotation.className:Ljava/lang/String;
            invokestatic edu.umd.cs.findbugs.ClassAnnotation.shorten:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            areturn
         4: .line 100
      StackMap locals:
      StackMap stack:
            ldc "excludingPackage"
            aload 1 /* key */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 6
         5: .line 101
            aload 0 /* this */
            invokevirtual edu.umd.cs.findbugs.ClassAnnotation.getPackageName:()Ljava/lang/String;
            aload 0 /* this */
            getfield edu.umd.cs.findbugs.ClassAnnotation.className:Ljava/lang/String;
            invokestatic edu.umd.cs.findbugs.ClassAnnotation.shorten:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            areturn
         6: .line 102
      StackMap locals:
      StackMap stack:
            ldc "simpleClass"
            aload 1 /* key */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 7
            ldc "simpleName"
            aload 1 /* key */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 8
         7: .line 103
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield edu.umd.cs.findbugs.ClassAnnotation.className:Ljava/lang/String;
            invokestatic edu.umd.cs.findbugs.util.ClassName.extractSimpleName:(Ljava/lang/String;)Ljava/lang/String;
            areturn
         8: .line 105
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "unknown key "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* key */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        end local 2 // edu.umd.cs.findbugs.ClassAnnotation primaryClass
        end local 1 // java.lang.String key
        end local 0 // edu.umd.cs.findbugs.ClassAnnotation this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    9     0          this  Ledu/umd/cs/findbugs/ClassAnnotation;
            0    9     1           key  Ljava/lang/String;
            0    9     2  primaryClass  Ledu/umd/cs/findbugs/ClassAnnotation;
    MethodParameters:
              Name  Flags
      key           
      primaryClass  

  public int hashCode();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // edu.umd.cs.findbugs.ClassAnnotation this
         0: .line 111
            aload 0 /* this */
            getfield edu.umd.cs.findbugs.ClassAnnotation.className:Ljava/lang/String;
            invokevirtual java.lang.String.hashCode:()I
            ireturn
        end local 0 // edu.umd.cs.findbugs.ClassAnnotation this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ledu/umd/cs/findbugs/ClassAnnotation;

  public boolean equals(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // edu.umd.cs.findbugs.ClassAnnotation this
        start local 1 // java.lang.Object o
         0: .line 116
            aload 1 /* o */
            instanceof edu.umd.cs.findbugs.ClassAnnotation
            ifne 2
         1: .line 117
            iconst_0
            ireturn
         2: .line 119
      StackMap locals:
      StackMap stack:
            aload 1 /* o */
            checkcast edu.umd.cs.findbugs.ClassAnnotation
            astore 2 /* other */
        start local 2 // edu.umd.cs.findbugs.ClassAnnotation other
         3: .line 120
            aload 0 /* this */
            getfield edu.umd.cs.findbugs.ClassAnnotation.className:Ljava/lang/String;
            aload 2 /* other */
            getfield edu.umd.cs.findbugs.ClassAnnotation.className:Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ireturn
        end local 2 // edu.umd.cs.findbugs.ClassAnnotation other
        end local 1 // java.lang.Object o
        end local 0 // edu.umd.cs.findbugs.ClassAnnotation this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    4     0   this  Ledu/umd/cs/findbugs/ClassAnnotation;
            0    4     1      o  Ljava/lang/Object;
            3    4     2  other  Ledu/umd/cs/findbugs/ClassAnnotation;
    MethodParameters:
      Name  Flags
      o     

  public boolean contains(edu.umd.cs.findbugs.ClassAnnotation);
    descriptor: (Ledu/umd/cs/findbugs/ClassAnnotation;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // edu.umd.cs.findbugs.ClassAnnotation this
        start local 1 // edu.umd.cs.findbugs.ClassAnnotation other
         0: .line 124
            aload 1 /* other */
            getfield edu.umd.cs.findbugs.ClassAnnotation.className:Ljava/lang/String;
            aload 0 /* this */
            getfield edu.umd.cs.findbugs.ClassAnnotation.className:Ljava/lang/String;
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ireturn
        end local 1 // edu.umd.cs.findbugs.ClassAnnotation other
        end local 0 // edu.umd.cs.findbugs.ClassAnnotation this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Ledu/umd/cs/findbugs/ClassAnnotation;
            0    1     1  other  Ledu/umd/cs/findbugs/ClassAnnotation;
    MethodParameters:
       Name  Flags
      other  

  public edu.umd.cs.findbugs.ClassAnnotation getTopLevelClass();
    descriptor: ()Ledu/umd/cs/findbugs/ClassAnnotation;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=2, args_size=1
        start local 0 // edu.umd.cs.findbugs.ClassAnnotation this
         0: .line 128
            aload 0 /* this */
            getfield edu.umd.cs.findbugs.ClassAnnotation.className:Ljava/lang/String;
            bipush 36
            invokevirtual java.lang.String.indexOf:(I)I
            istore 1 /* firstDollar */
        start local 1 // int firstDollar
         1: .line 129
            iload 1 /* firstDollar */
            ifgt 3
         2: .line 130
            aload 0 /* this */
            areturn
         3: .line 132
      StackMap locals: int
      StackMap stack:
            new edu.umd.cs.findbugs.ClassAnnotation
            dup
            aload 0 /* this */
            getfield edu.umd.cs.findbugs.ClassAnnotation.className:Ljava/lang/String;
            iconst_0
            iload 1 /* firstDollar */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            invokespecial edu.umd.cs.findbugs.ClassAnnotation.<init>:(Ljava/lang/String;)V
            areturn
        end local 1 // int firstDollar
        end local 0 // edu.umd.cs.findbugs.ClassAnnotation this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    4     0         this  Ledu/umd/cs/findbugs/ClassAnnotation;
            1    4     1  firstDollar  I

  public int compareTo(edu.umd.cs.findbugs.BugAnnotation);
    descriptor: (Ledu/umd/cs/findbugs/BugAnnotation;)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // edu.umd.cs.findbugs.ClassAnnotation this
        start local 1 // edu.umd.cs.findbugs.BugAnnotation o
         0: .line 138
            aload 1 /* o */
            instanceof edu.umd.cs.findbugs.ClassAnnotation
            ifne 2
         1: .line 141
            aload 0 /* this */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            aload 1 /* o */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokevirtual java.lang.String.compareTo:(Ljava/lang/String;)I
            ireturn
         2: .line 143
      StackMap locals:
      StackMap stack:
            aload 1 /* o */
            checkcast edu.umd.cs.findbugs.ClassAnnotation
            astore 2 /* other */
        start local 2 // edu.umd.cs.findbugs.ClassAnnotation other
         3: .line 144
            aload 0 /* this */
            getfield edu.umd.cs.findbugs.ClassAnnotation.className:Ljava/lang/String;
            aload 2 /* other */
            getfield edu.umd.cs.findbugs.ClassAnnotation.className:Ljava/lang/String;
            invokevirtual java.lang.String.compareTo:(Ljava/lang/String;)I
            ireturn
        end local 2 // edu.umd.cs.findbugs.ClassAnnotation other
        end local 1 // edu.umd.cs.findbugs.BugAnnotation o
        end local 0 // edu.umd.cs.findbugs.ClassAnnotation this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    4     0   this  Ledu/umd/cs/findbugs/ClassAnnotation;
            0    4     1      o  Ledu/umd/cs/findbugs/BugAnnotation;
            3    4     2  other  Ledu/umd/cs/findbugs/ClassAnnotation;
    MethodParameters:
      Name  Flags
      o     

  public edu.umd.cs.findbugs.SourceLineAnnotation getSourceLines();
    descriptor: ()Ledu/umd/cs/findbugs/SourceLineAnnotation;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // edu.umd.cs.findbugs.ClassAnnotation this
         0: .line 154
            aload 0 /* this */
            getfield edu.umd.cs.findbugs.ClassAnnotation.sourceLines:Ledu/umd/cs/findbugs/SourceLineAnnotation;
            ifnonnull 2
         1: .line 155
            aload 0 /* this */
            aload 0 /* this */
            getfield edu.umd.cs.findbugs.ClassAnnotation.className:Ljava/lang/String;
            aload 0 /* this */
            getfield edu.umd.cs.findbugs.ClassAnnotation.sourceFileName:Ljava/lang/String;
            invokestatic edu.umd.cs.findbugs.ClassAnnotation.getSourceLinesForClass:(Ljava/lang/String;Ljava/lang/String;)Ledu/umd/cs/findbugs/SourceLineAnnotation;
            putfield edu.umd.cs.findbugs.ClassAnnotation.sourceLines:Ledu/umd/cs/findbugs/SourceLineAnnotation;
         2: .line 157
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield edu.umd.cs.findbugs.ClassAnnotation.sourceLines:Ledu/umd/cs/findbugs/SourceLineAnnotation;
            areturn
        end local 0 // edu.umd.cs.findbugs.ClassAnnotation this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Ledu/umd/cs/findbugs/ClassAnnotation;

  public static edu.umd.cs.findbugs.SourceLineAnnotation getSourceLinesForClass(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)Ledu/umd/cs/findbugs/SourceLineAnnotation;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=8, locals=4, args_size=2
        start local 0 // java.lang.String className
        start local 1 // java.lang.String sourceFileName
         0: .line 164
            invokestatic edu.umd.cs.findbugs.ba.AnalysisContext.currentAnalysisContext:()Ledu/umd/cs/findbugs/ba/AnalysisContext;
            astore 2 /* currentAnalysisContext */
        start local 2 // edu.umd.cs.findbugs.ba.AnalysisContext currentAnalysisContext
         1: .line 166
            aload 2 /* currentAnalysisContext */
            ifnonnull 3
         2: .line 167
            new edu.umd.cs.findbugs.SourceLineAnnotation
            dup
            aload 0 /* className */
            aload 1 /* sourceFileName */
            iconst_m1
            iconst_m1
            iconst_m1
            iconst_m1
            invokespecial edu.umd.cs.findbugs.SourceLineAnnotation.<init>:(Ljava/lang/String;Ljava/lang/String;IIII)V
            areturn
         3: .line 170
      StackMap locals: edu.umd.cs.findbugs.ba.AnalysisContext
      StackMap stack:
            aload 2 /* currentAnalysisContext */
            invokevirtual edu.umd.cs.findbugs.ba.AnalysisContext.getSourceInfoMap:()Ledu/umd/cs/findbugs/ba/SourceInfoMap;
            aload 0 /* className */
            invokevirtual edu.umd.cs.findbugs.ba.SourceInfoMap.getClassLine:(Ljava/lang/String;)Ledu/umd/cs/findbugs/ba/SourceInfoMap$SourceLineRange;
            astore 3 /* classLine */
        start local 3 // edu.umd.cs.findbugs.ba.SourceInfoMap$SourceLineRange classLine
         4: .line 172
            aload 3 /* classLine */
            ifnonnull 6
         5: .line 173
            aload 0 /* className */
            aload 1 /* sourceFileName */
            invokestatic edu.umd.cs.findbugs.SourceLineAnnotation.getSourceAnnotationForClass:(Ljava/lang/String;Ljava/lang/String;)Ledu/umd/cs/findbugs/SourceLineAnnotation;
            areturn
         6: .line 175
      StackMap locals: edu.umd.cs.findbugs.ba.SourceInfoMap$SourceLineRange
      StackMap stack:
            new edu.umd.cs.findbugs.SourceLineAnnotation
            dup
            aload 0 /* className */
            aload 1 /* sourceFileName */
            aload 3 /* classLine */
            invokevirtual edu.umd.cs.findbugs.ba.SourceInfoMap$SourceLineRange.getStart:()Ljava/lang/Integer;
            invokevirtual java.lang.Integer.intValue:()I
            aload 3 /* classLine */
            invokevirtual edu.umd.cs.findbugs.ba.SourceInfoMap$SourceLineRange.getEnd:()Ljava/lang/Integer;
            invokevirtual java.lang.Integer.intValue:()I
            iconst_m1
            iconst_m1
            invokespecial edu.umd.cs.findbugs.SourceLineAnnotation.<init>:(Ljava/lang/String;Ljava/lang/String;IIII)V
            areturn
        end local 3 // edu.umd.cs.findbugs.ba.SourceInfoMap$SourceLineRange classLine
        end local 2 // edu.umd.cs.findbugs.ba.AnalysisContext currentAnalysisContext
        end local 1 // java.lang.String sourceFileName
        end local 0 // java.lang.String className
      LocalVariableTable:
        Start  End  Slot                    Name  Signature
            0    7     0               className  Ljava/lang/String;
            0    7     1          sourceFileName  Ljava/lang/String;
            1    7     2  currentAnalysisContext  Ledu/umd/cs/findbugs/ba/AnalysisContext;
            4    7     3               classLine  Ledu/umd/cs/findbugs/ba/SourceInfoMap$SourceLineRange;
    RuntimeVisibleTypeAnnotations: 
      METHOD_FORMAL_PARAMETER
        edu.umd.cs.findbugs.internalAnnotations.DottedClassName()
    RuntimeVisibleParameterAnnotations: 
      0:
        edu.umd.cs.findbugs.internalAnnotations.DottedClassName()
      1:
    MethodParameters:
                Name  Flags
      className       
      sourceFileName  

  public void writeXML(edu.umd.cs.findbugs.xml.XMLOutput);
    descriptor: (Ledu/umd/cs/findbugs/xml/XMLOutput;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // edu.umd.cs.findbugs.ClassAnnotation this
        start local 1 // edu.umd.cs.findbugs.xml.XMLOutput xmlOutput
         0: .line 189
            aload 0 /* this */
            aload 1 /* xmlOutput */
            iconst_0
            iconst_0
            invokevirtual edu.umd.cs.findbugs.ClassAnnotation.writeXML:(Ledu/umd/cs/findbugs/xml/XMLOutput;ZZ)V
         1: .line 190
            return
        end local 1 // edu.umd.cs.findbugs.xml.XMLOutput xmlOutput
        end local 0 // edu.umd.cs.findbugs.ClassAnnotation this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    2     0       this  Ledu/umd/cs/findbugs/ClassAnnotation;
            0    2     1  xmlOutput  Ledu/umd/cs/findbugs/xml/XMLOutput;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
           Name  Flags
      xmlOutput  

  public void writeXML(edu.umd.cs.findbugs.xml.XMLOutput, boolean, boolean);
    descriptor: (Ledu/umd/cs/findbugs/xml/XMLOutput;ZZ)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=6, args_size=4
        start local 0 // edu.umd.cs.findbugs.ClassAnnotation this
        start local 1 // edu.umd.cs.findbugs.xml.XMLOutput xmlOutput
        start local 2 // boolean addMessages
        start local 3 // boolean isPrimary
         0: .line 194
            new edu.umd.cs.findbugs.xml.XMLAttributeList
            dup
            invokespecial edu.umd.cs.findbugs.xml.XMLAttributeList.<init>:()V
            ldc "classname"
            aload 0 /* this */
            invokevirtual edu.umd.cs.findbugs.ClassAnnotation.getClassName:()Ljava/lang/String;
            invokevirtual edu.umd.cs.findbugs.xml.XMLAttributeList.addAttribute:(Ljava/lang/String;Ljava/lang/String;)Ledu/umd/cs/findbugs/xml/XMLAttributeList;
            astore 4 /* attributeList */
        start local 4 // edu.umd.cs.findbugs.xml.XMLAttributeList attributeList
         1: .line 195
            iload 3 /* isPrimary */
            ifeq 3
         2: .line 196
            aload 4 /* attributeList */
            ldc "primary"
            ldc "true"
            invokevirtual edu.umd.cs.findbugs.xml.XMLAttributeList.addAttribute:(Ljava/lang/String;Ljava/lang/String;)Ledu/umd/cs/findbugs/xml/XMLAttributeList;
            pop
         3: .line 199
      StackMap locals: edu.umd.cs.findbugs.xml.XMLAttributeList
      StackMap stack:
            aload 0 /* this */
            invokevirtual edu.umd.cs.findbugs.ClassAnnotation.getDescription:()Ljava/lang/String;
            astore 5 /* role */
        start local 5 // java.lang.String role
         4: .line 200
            ldc "CLASS_DEFAULT"
            aload 5 /* role */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 6
         5: .line 201
            aload 4 /* attributeList */
            ldc "role"
            aload 5 /* role */
            invokevirtual edu.umd.cs.findbugs.xml.XMLAttributeList.addAttribute:(Ljava/lang/String;Ljava/lang/String;)Ledu/umd/cs/findbugs/xml/XMLAttributeList;
            pop
         6: .line 204
      StackMap locals: java.lang.String
      StackMap stack:
            aload 1 /* xmlOutput */
            ldc "Class"
            aload 4 /* attributeList */
            invokeinterface edu.umd.cs.findbugs.xml.XMLOutput.openTag:(Ljava/lang/String;Ledu/umd/cs/findbugs/xml/XMLAttributeList;)V
         7: .line 205
            aload 0 /* this */
            invokevirtual edu.umd.cs.findbugs.ClassAnnotation.getSourceLines:()Ledu/umd/cs/findbugs/SourceLineAnnotation;
            aload 1 /* xmlOutput */
            iload 2 /* addMessages */
            iconst_0
            invokevirtual edu.umd.cs.findbugs.SourceLineAnnotation.writeXML:(Ledu/umd/cs/findbugs/xml/XMLOutput;ZZ)V
         8: .line 206
            iload 2 /* addMessages */
            ifeq 12
         9: .line 207
            aload 1 /* xmlOutput */
            ldc "Message"
            invokeinterface edu.umd.cs.findbugs.xml.XMLOutput.openTag:(Ljava/lang/String;)V
        10: .line 208
            aload 1 /* xmlOutput */
            aload 0 /* this */
            invokevirtual edu.umd.cs.findbugs.ClassAnnotation.toString:()Ljava/lang/String;
            invokeinterface edu.umd.cs.findbugs.xml.XMLOutput.writeText:(Ljava/lang/String;)V
        11: .line 209
            aload 1 /* xmlOutput */
            ldc "Message"
            invokeinterface edu.umd.cs.findbugs.xml.XMLOutput.closeTag:(Ljava/lang/String;)V
        12: .line 211
      StackMap locals:
      StackMap stack:
            aload 1 /* xmlOutput */
            ldc "Class"
            invokeinterface edu.umd.cs.findbugs.xml.XMLOutput.closeTag:(Ljava/lang/String;)V
        13: .line 213
            return
        end local 5 // java.lang.String role
        end local 4 // edu.umd.cs.findbugs.xml.XMLAttributeList attributeList
        end local 3 // boolean isPrimary
        end local 2 // boolean addMessages
        end local 1 // edu.umd.cs.findbugs.xml.XMLOutput xmlOutput
        end local 0 // edu.umd.cs.findbugs.ClassAnnotation this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   14     0           this  Ledu/umd/cs/findbugs/ClassAnnotation;
            0   14     1      xmlOutput  Ledu/umd/cs/findbugs/xml/XMLOutput;
            0   14     2    addMessages  Z
            0   14     3      isPrimary  Z
            1   14     4  attributeList  Ledu/umd/cs/findbugs/xml/XMLAttributeList;
            4   14     5           role  Ljava/lang/String;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
             Name  Flags
      xmlOutput    
      addMessages  
      isPrimary    

  public int compareTo(java.lang.Object);
    descriptor: (Ljava/lang/Object;)I
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
         0: .line 1
            aload 0
            aload 1
            checkcast edu.umd.cs.findbugs.BugAnnotation
            invokevirtual edu.umd.cs.findbugs.ClassAnnotation.compareTo:(Ledu/umd/cs/findbugs/BugAnnotation;)I
            ireturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
}
SourceFile: "ClassAnnotation.java"
InnerClasses:
  public SourceLineRange = edu.umd.cs.findbugs.ba.SourceInfoMap$SourceLineRange of edu.umd.cs.findbugs.ba.SourceInfoMap