public class edu.umd.cs.findbugs.MethodAnnotation 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.MethodAnnotation
  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 boolean UGLY_METHODS;
    descriptor: Z
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

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

  private final java.lang.String methodName;
    descriptor: Ljava/lang/String;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.lang.String methodSig;
    descriptor: Ljava/lang/String;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private java.lang.String fullMethod;
    descriptor: Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE

  private final boolean isStatic;
    descriptor: Z
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  static final boolean $assertionsDisabled;
    descriptor: Z
    flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 50
            ldc Ledu/umd/cs/findbugs/MethodAnnotation;
            invokevirtual java.lang.Class.desiredAssertionStatus:()Z
            ifne 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: putstatic edu.umd.cs.findbugs.MethodAnnotation.$assertionsDisabled:Z
         3: .line 53
            ldc "ma.ugly"
            invokestatic edu.umd.cs.findbugs.SystemProperties.getBoolean:(Ljava/lang/String;)Z
            putstatic edu.umd.cs.findbugs.MethodAnnotation.UGLY_METHODS:Z
         4: .line 501
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>(java.lang.String, java.lang.String, java.lang.String, boolean);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=5
        start local 0 // edu.umd.cs.findbugs.MethodAnnotation this
        start local 1 // java.lang.String className
        start local 2 // java.lang.String methodName
        start local 3 // java.lang.String methodSig
        start local 4 // boolean isStatic
         0: .line 104
            aload 0 /* this */
            aload 1 /* className */
            ldc "METHOD_DEFAULT"
            invokespecial edu.umd.cs.findbugs.PackageMemberAnnotation.<init>:(Ljava/lang/String;Ljava/lang/String;)V
         1: .line 105
            aload 0 /* this */
            aload 2 /* methodName */
            putfield edu.umd.cs.findbugs.MethodAnnotation.methodName:Ljava/lang/String;
         2: .line 106
            aload 3 /* methodSig */
            bipush 46
            invokevirtual java.lang.String.indexOf:(I)I
            iflt 5
         3: .line 107
            getstatic edu.umd.cs.findbugs.MethodAnnotation.$assertionsDisabled:Z
            ifne 4
            new java.lang.AssertionError
            dup
            new java.lang.StringBuilder
            dup
            ldc "signatures should not be dotted: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* methodSig */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
         4: .line 108
      StackMap locals: edu.umd.cs.findbugs.MethodAnnotation java.lang.String java.lang.String java.lang.String int
      StackMap stack:
            aload 3 /* methodSig */
            bipush 46
            bipush 47
            invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
            astore 3 /* methodSig */
         5: .line 110
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 3 /* methodSig */
            putfield edu.umd.cs.findbugs.MethodAnnotation.methodSig:Ljava/lang/String;
         6: .line 111
            aload 0 /* this */
            iload 4 /* isStatic */
            putfield edu.umd.cs.findbugs.MethodAnnotation.isStatic:Z
         7: .line 112
            aload 0 /* this */
            aconst_null
            putfield edu.umd.cs.findbugs.MethodAnnotation.fullMethod:Ljava/lang/String;
         8: .line 113
            aload 0 /* this */
            aconst_null
            putfield edu.umd.cs.findbugs.MethodAnnotation.sourceLines:Ledu/umd/cs/findbugs/SourceLineAnnotation;
         9: .line 114
            return
        end local 4 // boolean isStatic
        end local 3 // java.lang.String methodSig
        end local 2 // java.lang.String methodName
        end local 1 // java.lang.String className
        end local 0 // edu.umd.cs.findbugs.MethodAnnotation this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   10     0        this  Ledu/umd/cs/findbugs/MethodAnnotation;
            0   10     1   className  Ljava/lang/String;
            0   10     2  methodName  Ljava/lang/String;
            0   10     3   methodSig  Ljava/lang/String;
            0   10     4    isStatic  Z
    RuntimeVisibleTypeAnnotations: 
      METHOD_FORMAL_PARAMETER
        edu.umd.cs.findbugs.internalAnnotations.DottedClassName()
    RuntimeVisibleParameterAnnotations: 
      0:
        edu.umd.cs.findbugs.internalAnnotations.DottedClassName()
      1:
      2:
      3:
    MethodParameters:
            Name  Flags
      className   
      methodName  
      methodSig   
      isStatic    

  public static edu.umd.cs.findbugs.MethodAnnotation fromVisitedMethod(edu.umd.cs.findbugs.visitclass.PreorderVisitor);
    descriptor: (Ledu/umd/cs/findbugs/visitclass/PreorderVisitor;)Ledu/umd/cs/findbugs/MethodAnnotation;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=4, args_size=1
        start local 0 // edu.umd.cs.findbugs.visitclass.PreorderVisitor visitor
         0: .line 124
            aload 0 /* visitor */
            invokevirtual edu.umd.cs.findbugs.visitclass.PreorderVisitor.getDottedClassName:()Ljava/lang/String;
            astore 1 /* className */
        start local 1 // java.lang.String className
         1: .line 125
            new edu.umd.cs.findbugs.MethodAnnotation
            dup
            aload 1 /* className */
            aload 0 /* visitor */
            invokevirtual edu.umd.cs.findbugs.visitclass.PreorderVisitor.getMethodName:()Ljava/lang/String;
            aload 0 /* visitor */
            invokevirtual edu.umd.cs.findbugs.visitclass.PreorderVisitor.getMethodSig:()Ljava/lang/String;
            aload 0 /* visitor */
         2: .line 126
            invokevirtual edu.umd.cs.findbugs.visitclass.PreorderVisitor.getMethod:()Lorg/apache/bcel/classfile/Method;
            invokevirtual org.apache.bcel.classfile.Method.isStatic:()Z
         3: .line 125
            invokespecial edu.umd.cs.findbugs.MethodAnnotation.<init>:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Z)V
            astore 2 /* result */
        start local 2 // edu.umd.cs.findbugs.MethodAnnotation result
         4: .line 129
            aload 0 /* visitor */
            invokestatic edu.umd.cs.findbugs.SourceLineAnnotation.fromVisitedMethod:(Ledu/umd/cs/findbugs/visitclass/PreorderVisitor;)Ledu/umd/cs/findbugs/SourceLineAnnotation;
            astore 3 /* srcLines */
        start local 3 // edu.umd.cs.findbugs.SourceLineAnnotation srcLines
         5: .line 130
            aload 2 /* result */
            aload 3 /* srcLines */
            invokevirtual edu.umd.cs.findbugs.MethodAnnotation.setSourceLines:(Ledu/umd/cs/findbugs/SourceLineAnnotation;)V
         6: .line 132
            aload 2 /* result */
            areturn
        end local 3 // edu.umd.cs.findbugs.SourceLineAnnotation srcLines
        end local 2 // edu.umd.cs.findbugs.MethodAnnotation result
        end local 1 // java.lang.String className
        end local 0 // edu.umd.cs.findbugs.visitclass.PreorderVisitor visitor
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    7     0    visitor  Ledu/umd/cs/findbugs/visitclass/PreorderVisitor;
            1    7     1  className  Ljava/lang/String;
            4    7     2     result  Ledu/umd/cs/findbugs/MethodAnnotation;
            5    7     3   srcLines  Ledu/umd/cs/findbugs/SourceLineAnnotation;
    MethodParameters:
         Name  Flags
      visitor  

  public static edu.umd.cs.findbugs.MethodAnnotation fromCalledMethod(edu.umd.cs.findbugs.visitclass.DismantleBytecode);
    descriptor: (Ledu/umd/cs/findbugs/visitclass/DismantleBytecode;)Ledu/umd/cs/findbugs/MethodAnnotation;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=8, args_size=1
        start local 0 // edu.umd.cs.findbugs.visitclass.DismantleBytecode visitor
         0: .line 144
            aload 0 /* visitor */
            invokevirtual edu.umd.cs.findbugs.visitclass.DismantleBytecode.getDottedClassConstantOperand:()Ljava/lang/String;
            astore 1 /* className */
        start local 1 // java.lang.String className
         1: .line 145
            aload 0 /* visitor */
            invokevirtual edu.umd.cs.findbugs.visitclass.DismantleBytecode.getNameConstantOperand:()Ljava/lang/String;
            astore 2 /* methodName */
        start local 2 // java.lang.String methodName
         2: .line 146
            aload 0 /* visitor */
            invokevirtual edu.umd.cs.findbugs.visitclass.DismantleBytecode.getSigConstantOperand:()Ljava/lang/String;
            astore 3 /* methodSig */
        start local 3 // java.lang.String methodSig
         3: .line 148
            aload 0 /* visitor */
            instanceof edu.umd.cs.findbugs.bcel.OpcodeStackDetector
            ifeq 11
            aload 0 /* visitor */
            invokevirtual edu.umd.cs.findbugs.visitclass.DismantleBytecode.getOpcode:()I
            sipush 184
            if_icmpeq 11
         4: .line 149
            aload 3 /* methodSig */
            invokestatic edu.umd.cs.findbugs.visitclass.PreorderVisitor.getNumberArguments:(Ljava/lang/String;)I
            istore 4 /* params */
        start local 4 // int params
         5: .line 150
            aload 0 /* visitor */
            checkcast edu.umd.cs.findbugs.bcel.OpcodeStackDetector
            astore 5 /* oVisitor */
        start local 5 // edu.umd.cs.findbugs.bcel.OpcodeStackDetector oVisitor
         6: .line 151
            aload 5 /* oVisitor */
            invokevirtual edu.umd.cs.findbugs.bcel.OpcodeStackDetector.getStack:()Ledu/umd/cs/findbugs/OpcodeStack;
            invokevirtual edu.umd.cs.findbugs.OpcodeStack.isTop:()Z
            ifne 11
            aload 5 /* oVisitor */
            invokevirtual edu.umd.cs.findbugs.bcel.OpcodeStackDetector.getStack:()Ledu/umd/cs/findbugs/OpcodeStack;
            invokevirtual edu.umd.cs.findbugs.OpcodeStack.getStackDepth:()I
            iload 4 /* params */
            if_icmple 11
         7: .line 152
            aload 5 /* oVisitor */
            invokevirtual edu.umd.cs.findbugs.bcel.OpcodeStackDetector.getStack:()Ledu/umd/cs/findbugs/OpcodeStack;
            iload 4 /* params */
            invokevirtual edu.umd.cs.findbugs.OpcodeStack.getStackItem:(I)Ledu/umd/cs/findbugs/OpcodeStack$Item;
            astore 6 /* item */
        start local 6 // edu.umd.cs.findbugs.OpcodeStack$Item item
         8: .line 153
            aload 6 /* item */
            invokevirtual edu.umd.cs.findbugs.OpcodeStack$Item.getSignature:()Ljava/lang/String;
            invokestatic edu.umd.cs.findbugs.util.ClassName.fromFieldSignature:(Ljava/lang/String;)Ljava/lang/String;
            astore 7 /* cName */
        start local 7 // java.lang.String cName
         9: .line 154
            aload 7 /* cName */
            ifnull 11
        10: .line 155
            aload 7 /* cName */
            astore 1 /* className */
        end local 7 // java.lang.String cName
        end local 6 // edu.umd.cs.findbugs.OpcodeStack$Item item
        end local 5 // edu.umd.cs.findbugs.bcel.OpcodeStackDetector oVisitor
        end local 4 // int params
        11: .line 162
      StackMap locals: java.lang.String java.lang.String java.lang.String
      StackMap stack:
            aload 1 /* className */
            aload 2 /* methodName */
            aload 3 /* methodSig */
            aload 0 /* visitor */
            invokevirtual edu.umd.cs.findbugs.visitclass.DismantleBytecode.getOpcode:()I
            sipush 184
            if_icmpne 12
            iconst_1
            goto 13
      StackMap locals: edu.umd.cs.findbugs.visitclass.DismantleBytecode java.lang.String java.lang.String java.lang.String
      StackMap stack: java.lang.String java.lang.String java.lang.String
        12: iconst_0
      StackMap locals: edu.umd.cs.findbugs.visitclass.DismantleBytecode java.lang.String java.lang.String java.lang.String
      StackMap stack: java.lang.String java.lang.String java.lang.String int
        13: invokestatic edu.umd.cs.findbugs.MethodAnnotation.fromCalledMethod:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Z)Ledu/umd/cs/findbugs/MethodAnnotation;
            areturn
        end local 3 // java.lang.String methodSig
        end local 2 // java.lang.String methodName
        end local 1 // java.lang.String className
        end local 0 // edu.umd.cs.findbugs.visitclass.DismantleBytecode visitor
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   14     0     visitor  Ledu/umd/cs/findbugs/visitclass/DismantleBytecode;
            1   14     1   className  Ljava/lang/String;
            2   14     2  methodName  Ljava/lang/String;
            3   14     3   methodSig  Ljava/lang/String;
            5   11     4      params  I
            6   11     5    oVisitor  Ledu/umd/cs/findbugs/bcel/OpcodeStackDetector;
            8   11     6        item  Ledu/umd/cs/findbugs/OpcodeStack$Item;
            9   11     7       cName  Ljava/lang/String;
    MethodParameters:
         Name  Flags
      visitor  

  public static edu.umd.cs.findbugs.MethodAnnotation fromForeignMethod(java.lang.String, java.lang.String, java.lang.String, int);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;I)Ledu/umd/cs/findbugs/MethodAnnotation;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=7, locals=6, args_size=4
        start local 0 // java.lang.String className
        start local 1 // java.lang.String methodName
        start local 2 // java.lang.String methodSig
        start local 3 // int accessFlags
         0: .line 182
            aload 0 /* className */
            invokestatic edu.umd.cs.findbugs.util.ClassName.toDottedClassName:(Ljava/lang/String;)Ljava/lang/String;
            astore 0 /* className */
         1: .line 186
            new edu.umd.cs.findbugs.MethodAnnotation
            dup
            aload 0 /* className */
            aload 1 /* methodName */
            aload 2 /* methodSig */
         2: .line 187
            iload 3 /* accessFlags */
            bipush 8
            iand
            ifeq 3
            iconst_1
            goto 4
      StackMap locals: java.lang.String java.lang.String java.lang.String int
      StackMap stack: new 1 new 1 java.lang.String java.lang.String java.lang.String
         3: iconst_0
         4: .line 186
      StackMap locals: java.lang.String java.lang.String java.lang.String int
      StackMap stack: new 1 new 1 java.lang.String java.lang.String java.lang.String int
            invokespecial edu.umd.cs.findbugs.MethodAnnotation.<init>:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Z)V
            astore 4 /* methodAnnotation */
        start local 4 // edu.umd.cs.findbugs.MethodAnnotation methodAnnotation
         5: .line 189
            aload 0 /* className */
            aload 1 /* methodName */
            aload 2 /* methodSig */
            invokestatic edu.umd.cs.findbugs.SourceLineAnnotation.getSourceAnnotationForMethod:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ledu/umd/cs/findbugs/SourceLineAnnotation;
            astore 5 /* sourceLines */
        start local 5 // edu.umd.cs.findbugs.SourceLineAnnotation sourceLines
         6: .line 191
            aload 4 /* methodAnnotation */
            aload 5 /* sourceLines */
            invokevirtual edu.umd.cs.findbugs.MethodAnnotation.setSourceLines:(Ledu/umd/cs/findbugs/SourceLineAnnotation;)V
         7: .line 193
            aload 4 /* methodAnnotation */
            areturn
        end local 5 // edu.umd.cs.findbugs.SourceLineAnnotation sourceLines
        end local 4 // edu.umd.cs.findbugs.MethodAnnotation methodAnnotation
        end local 3 // int accessFlags
        end local 2 // java.lang.String methodSig
        end local 1 // java.lang.String methodName
        end local 0 // java.lang.String className
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    8     0         className  Ljava/lang/String;
            0    8     1        methodName  Ljava/lang/String;
            0    8     2         methodSig  Ljava/lang/String;
            0    8     3       accessFlags  I
            5    8     4  methodAnnotation  Ledu/umd/cs/findbugs/MethodAnnotation;
            6    8     5       sourceLines  Ledu/umd/cs/findbugs/SourceLineAnnotation;
    RuntimeVisibleTypeAnnotations: 
      METHOD_FORMAL_PARAMETER
        edu.umd.cs.findbugs.internalAnnotations.SlashedClassName()
    RuntimeVisibleParameterAnnotations: 
      0:
        edu.umd.cs.findbugs.internalAnnotations.SlashedClassName()
      1:
      2:
      3:
    MethodParameters:
             Name  Flags
      className    
      methodName   
      methodSig    
      accessFlags  

  public static edu.umd.cs.findbugs.MethodAnnotation fromForeignMethod(java.lang.String, java.lang.String, java.lang.String, boolean);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Z)Ledu/umd/cs/findbugs/MethodAnnotation;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=6, args_size=4
        start local 0 // java.lang.String className
        start local 1 // java.lang.String methodName
        start local 2 // java.lang.String methodSig
        start local 3 // boolean isStatic
         0: .line 215
            aload 0 /* className */
            invokestatic edu.umd.cs.findbugs.util.ClassName.toDottedClassName:(Ljava/lang/String;)Ljava/lang/String;
            astore 0 /* className */
         1: .line 219
            new edu.umd.cs.findbugs.MethodAnnotation
            dup
            aload 0 /* className */
            aload 1 /* methodName */
            aload 2 /* methodSig */
            iload 3 /* isStatic */
            invokespecial edu.umd.cs.findbugs.MethodAnnotation.<init>:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Z)V
            astore 4 /* methodAnnotation */
        start local 4 // edu.umd.cs.findbugs.MethodAnnotation methodAnnotation
         2: .line 221
            invokestatic edu.umd.cs.findbugs.ba.AnalysisContext.currentAnalysisContext:()Ledu/umd/cs/findbugs/ba/AnalysisContext;
            ifnull 6
         3: .line 223
            aload 0 /* className */
            aload 1 /* methodName */
            aload 2 /* methodSig */
            invokestatic edu.umd.cs.findbugs.SourceLineAnnotation.getSourceAnnotationForMethod:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ledu/umd/cs/findbugs/SourceLineAnnotation;
         4: .line 222
            astore 5 /* sourceLines */
        start local 5 // edu.umd.cs.findbugs.SourceLineAnnotation sourceLines
         5: .line 225
            aload 4 /* methodAnnotation */
            aload 5 /* sourceLines */
            invokevirtual edu.umd.cs.findbugs.MethodAnnotation.setSourceLines:(Ledu/umd/cs/findbugs/SourceLineAnnotation;)V
        end local 5 // edu.umd.cs.findbugs.SourceLineAnnotation sourceLines
         6: .line 228
      StackMap locals: edu.umd.cs.findbugs.MethodAnnotation
      StackMap stack:
            aload 4 /* methodAnnotation */
            areturn
        end local 4 // edu.umd.cs.findbugs.MethodAnnotation methodAnnotation
        end local 3 // boolean isStatic
        end local 2 // java.lang.String methodSig
        end local 1 // java.lang.String methodName
        end local 0 // java.lang.String className
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    7     0         className  Ljava/lang/String;
            0    7     1        methodName  Ljava/lang/String;
            0    7     2         methodSig  Ljava/lang/String;
            0    7     3          isStatic  Z
            2    7     4  methodAnnotation  Ledu/umd/cs/findbugs/MethodAnnotation;
            5    6     5       sourceLines  Ledu/umd/cs/findbugs/SourceLineAnnotation;
    MethodParameters:
            Name  Flags
      className   
      methodName  
      methodSig   
      isStatic    

  public static edu.umd.cs.findbugs.MethodAnnotation fromCalledMethod(java.lang.String, java.lang.String, java.lang.String, boolean);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Z)Ledu/umd/cs/findbugs/MethodAnnotation;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=5, args_size=4
        start local 0 // java.lang.String className
        start local 1 // java.lang.String methodName
        start local 2 // java.lang.String methodSig
        start local 3 // boolean isStatic
         0: .line 248
            aload 0 /* className */
            aload 1 /* methodName */
            aload 2 /* methodSig */
            iload 3 /* isStatic */
            invokestatic edu.umd.cs.findbugs.MethodAnnotation.fromForeignMethod:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Z)Ledu/umd/cs/findbugs/MethodAnnotation;
            astore 4 /* methodAnnotation */
        start local 4 // edu.umd.cs.findbugs.MethodAnnotation methodAnnotation
         1: .line 249
            aload 4 /* methodAnnotation */
            ldc "METHOD_CALLED"
            invokevirtual edu.umd.cs.findbugs.MethodAnnotation.setDescription:(Ljava/lang/String;)V
         2: .line 250
            aload 4 /* methodAnnotation */
            areturn
        end local 4 // edu.umd.cs.findbugs.MethodAnnotation methodAnnotation
        end local 3 // boolean isStatic
        end local 2 // java.lang.String methodSig
        end local 1 // java.lang.String methodName
        end local 0 // java.lang.String className
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    3     0         className  Ljava/lang/String;
            0    3     1        methodName  Ljava/lang/String;
            0    3     2         methodSig  Ljava/lang/String;
            0    3     3          isStatic  Z
            1    3     4  methodAnnotation  Ledu/umd/cs/findbugs/MethodAnnotation;
    MethodParameters:
            Name  Flags
      className   
      methodName  
      methodSig   
      isStatic    

  public static edu.umd.cs.findbugs.MethodAnnotation fromXMethod(edu.umd.cs.findbugs.ba.XMethod);
    descriptor: (Ledu/umd/cs/findbugs/ba/XMethod;)Ledu/umd/cs/findbugs/MethodAnnotation;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // edu.umd.cs.findbugs.ba.XMethod xmethod
         0: .line 262
            aload 0 /* xmethod */
            invokeinterface edu.umd.cs.findbugs.ba.XMethod.getClassName:()Ljava/lang/String;
            aload 0 /* xmethod */
            invokeinterface edu.umd.cs.findbugs.ba.XMethod.getName:()Ljava/lang/String;
            aload 0 /* xmethod */
            invokeinterface edu.umd.cs.findbugs.ba.XMethod.getSignature:()Ljava/lang/String;
            aload 0 /* xmethod */
            invokeinterface edu.umd.cs.findbugs.ba.XMethod.isStatic:()Z
            invokestatic edu.umd.cs.findbugs.MethodAnnotation.fromForeignMethod:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Z)Ledu/umd/cs/findbugs/MethodAnnotation;
            areturn
        end local 0 // edu.umd.cs.findbugs.ba.XMethod xmethod
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0  xmethod  Ledu/umd/cs/findbugs/ba/XMethod;
    MethodParameters:
         Name  Flags
      xmethod  

  public static edu.umd.cs.findbugs.MethodAnnotation fromMethodDescriptor(edu.umd.cs.findbugs.classfile.MethodDescriptor);
    descriptor: (Ledu/umd/cs/findbugs/classfile/MethodDescriptor;)Ledu/umd/cs/findbugs/MethodAnnotation;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // edu.umd.cs.findbugs.classfile.MethodDescriptor methodDescriptor
         0: .line 273
            aload 0 /* methodDescriptor */
            invokevirtual edu.umd.cs.findbugs.classfile.MethodDescriptor.getSlashedClassName:()Ljava/lang/String;
            aload 0 /* methodDescriptor */
            invokevirtual edu.umd.cs.findbugs.classfile.MethodDescriptor.getName:()Ljava/lang/String;
         1: .line 274
            aload 0 /* methodDescriptor */
            invokevirtual edu.umd.cs.findbugs.classfile.MethodDescriptor.getSignature:()Ljava/lang/String;
            aload 0 /* methodDescriptor */
            invokevirtual edu.umd.cs.findbugs.classfile.MethodDescriptor.isStatic:()Z
         2: .line 273
            invokestatic edu.umd.cs.findbugs.MethodAnnotation.fromForeignMethod:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Z)Ledu/umd/cs/findbugs/MethodAnnotation;
            areturn
        end local 0 // edu.umd.cs.findbugs.classfile.MethodDescriptor methodDescriptor
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    3     0  methodDescriptor  Ledu/umd/cs/findbugs/classfile/MethodDescriptor;
    MethodParameters:
                  Name  Flags
      methodDescriptor  

  public java.lang.String getMethodName();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // edu.umd.cs.findbugs.MethodAnnotation this
         0: .line 281
            aload 0 /* this */
            getfield edu.umd.cs.findbugs.MethodAnnotation.methodName:Ljava/lang/String;
            areturn
        end local 0 // edu.umd.cs.findbugs.MethodAnnotation this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ledu/umd/cs/findbugs/MethodAnnotation;

  public java.lang.String getJavaSourceMethodName();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // edu.umd.cs.findbugs.MethodAnnotation this
         0: .line 286
            ldc "<clinit>"
            aload 0 /* this */
            getfield edu.umd.cs.findbugs.MethodAnnotation.methodName:Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 2
         1: .line 287
            new java.lang.StringBuilder
            dup
            ldc "<static initializer for "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            invokevirtual edu.umd.cs.findbugs.MethodAnnotation.getSimpleClassName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ">"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
         2: .line 290
      StackMap locals:
      StackMap stack:
            ldc "<init>"
            aload 0 /* this */
            getfield edu.umd.cs.findbugs.MethodAnnotation.methodName:Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 4
         3: .line 291
            aload 0 /* this */
            invokevirtual edu.umd.cs.findbugs.MethodAnnotation.getSimpleClassName:()Ljava/lang/String;
            areturn
         4: .line 293
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield edu.umd.cs.findbugs.MethodAnnotation.methodName:Ljava/lang/String;
            areturn
        end local 0 // edu.umd.cs.findbugs.MethodAnnotation this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Ledu/umd/cs/findbugs/MethodAnnotation;

  public java.lang.String getMethodSignature();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // edu.umd.cs.findbugs.MethodAnnotation this
         0: .line 300
            aload 0 /* this */
            getfield edu.umd.cs.findbugs.MethodAnnotation.methodSig:Ljava/lang/String;
            areturn
        end local 0 // edu.umd.cs.findbugs.MethodAnnotation this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ledu/umd/cs/findbugs/MethodAnnotation;

  public boolean isStatic();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // edu.umd.cs.findbugs.MethodAnnotation this
         0: .line 309
            aload 0 /* this */
            getfield edu.umd.cs.findbugs.MethodAnnotation.isStatic:Z
            ireturn
        end local 0 // edu.umd.cs.findbugs.MethodAnnotation this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ledu/umd/cs/findbugs/MethodAnnotation;

  public edu.umd.cs.findbugs.ba.XMethod toXMethod();
    descriptor: ()Ledu/umd/cs/findbugs/ba/XMethod;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // edu.umd.cs.findbugs.MethodAnnotation this
         0: .line 318
            aload 0 /* this */
            getfield edu.umd.cs.findbugs.MethodAnnotation.className:Ljava/lang/String;
            aload 0 /* this */
            getfield edu.umd.cs.findbugs.MethodAnnotation.methodName:Ljava/lang/String;
            aload 0 /* this */
            getfield edu.umd.cs.findbugs.MethodAnnotation.methodSig:Ljava/lang/String;
            aload 0 /* this */
            getfield edu.umd.cs.findbugs.MethodAnnotation.isStatic:Z
            invokestatic edu.umd.cs.findbugs.ba.XFactory.createXMethod:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Z)Ledu/umd/cs/findbugs/ba/XMethod;
            areturn
        end local 0 // edu.umd.cs.findbugs.MethodAnnotation this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ledu/umd/cs/findbugs/MethodAnnotation;

  public edu.umd.cs.findbugs.classfile.MethodDescriptor toMethodDescriptor();
    descriptor: ()Ledu/umd/cs/findbugs/classfile/MethodDescriptor;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // edu.umd.cs.findbugs.MethodAnnotation this
         0: .line 322
            invokestatic edu.umd.cs.findbugs.classfile.DescriptorFactory.instance:()Ledu/umd/cs/findbugs/classfile/DescriptorFactory;
            aload 0 /* this */
            invokevirtual edu.umd.cs.findbugs.classfile.DescriptorFactory.getMethodDescriptor:(Ledu/umd/cs/findbugs/MethodAnnotation;)Ledu/umd/cs/findbugs/classfile/MethodDescriptor;
            areturn
        end local 0 // edu.umd.cs.findbugs.MethodAnnotation this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ledu/umd/cs/findbugs/MethodAnnotation;

  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.MethodAnnotation this
        start local 1 // edu.umd.cs.findbugs.BugAnnotationVisitor visitor
         0: .line 327
            aload 1 /* visitor */
            aload 0 /* this */
            invokeinterface edu.umd.cs.findbugs.BugAnnotationVisitor.visitMethodAnnotation:(Ledu/umd/cs/findbugs/MethodAnnotation;)V
         1: .line 328
            return
        end local 1 // edu.umd.cs.findbugs.BugAnnotationVisitor visitor
        end local 0 // edu.umd.cs.findbugs.MethodAnnotation this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Ledu/umd/cs/findbugs/MethodAnnotation;
            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=7, args_size=3
        start local 0 // edu.umd.cs.findbugs.MethodAnnotation this
        start local 1 // java.lang.String key
        start local 2 // edu.umd.cs.findbugs.ClassAnnotation primaryClass
         0: .line 332
            ldc ""
            aload 1 /* key */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 4
         1: .line 333
            getstatic edu.umd.cs.findbugs.MethodAnnotation.UGLY_METHODS:Z
            ifeq 2
            aload 0 /* this */
            invokevirtual edu.umd.cs.findbugs.MethodAnnotation.getUglyMethod:()Ljava/lang/String;
            goto 3
      StackMap locals:
      StackMap stack:
         2: aload 0 /* this */
            aload 2 /* primaryClass */
            invokevirtual edu.umd.cs.findbugs.MethodAnnotation.getFullMethod:(Ledu/umd/cs/findbugs/ClassAnnotation;)Ljava/lang/String;
      StackMap locals:
      StackMap stack: java.lang.String
         3: areturn
         4: .line 334
      StackMap locals:
      StackMap stack:
            ldc "givenClass"
            aload 1 /* key */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 10
         5: .line 335
            ldc "<init>"
            aload 0 /* this */
            getfield edu.umd.cs.findbugs.MethodAnnotation.methodName:Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 7
         6: .line 336
            new java.lang.StringBuilder
            dup
            ldc "new "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* primaryClass */
            invokevirtual edu.umd.cs.findbugs.ClassAnnotation.getPackageName:()Ljava/lang/String;
            aload 0 /* this */
            getfield edu.umd.cs.findbugs.MethodAnnotation.className:Ljava/lang/String;
            invokestatic edu.umd.cs.findbugs.MethodAnnotation.shorten:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            aload 2 /* primaryClass */
            invokevirtual edu.umd.cs.findbugs.MethodAnnotation.getSignatureInClass:(Ledu/umd/cs/findbugs/ClassAnnotation;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
         7: .line 338
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield edu.umd.cs.findbugs.MethodAnnotation.className:Ljava/lang/String;
            aload 2 /* primaryClass */
            invokevirtual edu.umd.cs.findbugs.ClassAnnotation.getClassName:()Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 9
         8: .line 339
            aload 0 /* this */
            aload 2 /* primaryClass */
            invokevirtual edu.umd.cs.findbugs.MethodAnnotation.getNameInClass:(Ledu/umd/cs/findbugs/ClassAnnotation;)Ljava/lang/String;
            areturn
         9: .line 341
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            aload 2 /* primaryClass */
            invokevirtual edu.umd.cs.findbugs.ClassAnnotation.getPackageName:()Ljava/lang/String;
            aload 0 /* this */
            getfield edu.umd.cs.findbugs.MethodAnnotation.className:Ljava/lang/String;
            invokestatic edu.umd.cs.findbugs.MethodAnnotation.shorten:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            aload 2 /* primaryClass */
            invokevirtual edu.umd.cs.findbugs.MethodAnnotation.getNameInClass:(Ledu/umd/cs/findbugs/ClassAnnotation;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        10: .line 343
      StackMap locals:
      StackMap stack:
            ldc "name"
            aload 1 /* key */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 12
        11: .line 344
            aload 0 /* this */
            getfield edu.umd.cs.findbugs.MethodAnnotation.methodName:Ljava/lang/String;
            areturn
        12: .line 345
      StackMap locals:
      StackMap stack:
            ldc "nameAndSignature"
            aload 1 /* key */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 14
        13: .line 346
            aload 0 /* this */
            aload 2 /* primaryClass */
            invokevirtual edu.umd.cs.findbugs.MethodAnnotation.getNameInClass:(Ledu/umd/cs/findbugs/ClassAnnotation;)Ljava/lang/String;
            areturn
        14: .line 347
      StackMap locals:
      StackMap stack:
            ldc "shortMethod"
            aload 1 /* key */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 16
        15: .line 348
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            getfield edu.umd.cs.findbugs.MethodAnnotation.className:Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield edu.umd.cs.findbugs.MethodAnnotation.methodName:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "(...)"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        16: .line 349
      StackMap locals:
      StackMap stack:
            ldc "hash"
            aload 1 /* key */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 19
        17: .line 350
            aload 0 /* this */
            iconst_0
            iconst_1
            iconst_1
            invokevirtual edu.umd.cs.findbugs.MethodAnnotation.getNameInClass:(ZZZ)Ljava/lang/String;
            astore 3 /* tmp */
        start local 3 // java.lang.String tmp
        18: .line 352
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            getfield edu.umd.cs.findbugs.MethodAnnotation.className:Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 3 /* tmp */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 3 // java.lang.String tmp
        19: .line 353
      StackMap locals:
      StackMap stack:
            ldc "returnType"
            aload 1 /* key */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 27
        20: .line 354
            aload 0 /* this */
            getfield edu.umd.cs.findbugs.MethodAnnotation.methodSig:Ljava/lang/String;
            bipush 41
            invokevirtual java.lang.String.indexOf:(I)I
            istore 3 /* i */
        start local 3 // int i
        21: .line 355
            aload 0 /* this */
            getfield edu.umd.cs.findbugs.MethodAnnotation.methodSig:Ljava/lang/String;
            iload 3 /* i */
            iconst_1
            iadd
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            astore 4 /* returnType */
        start local 4 // java.lang.String returnType
        22: .line 356
            aload 2 /* primaryClass */
            ifnonnull 23
            ldc ""
            goto 24
      StackMap locals: int java.lang.String
      StackMap stack:
        23: aload 2 /* primaryClass */
            invokevirtual edu.umd.cs.findbugs.ClassAnnotation.getPackageName:()Ljava/lang/String;
      StackMap locals:
      StackMap stack: java.lang.String
        24: astore 5 /* pkgName */
        start local 5 // java.lang.String pkgName
        25: .line 357
            new edu.umd.cs.findbugs.ba.SignatureConverter
            dup
            aload 4 /* returnType */
            invokespecial edu.umd.cs.findbugs.ba.SignatureConverter.<init>:(Ljava/lang/String;)V
            astore 6 /* converter */
        start local 6 // edu.umd.cs.findbugs.ba.SignatureConverter converter
        26: .line 358
            aload 5 /* pkgName */
            aload 6 /* converter */
            invokevirtual edu.umd.cs.findbugs.ba.SignatureConverter.parseNext:()Ljava/lang/String;
            invokestatic edu.umd.cs.findbugs.MethodAnnotation.shorten:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            areturn
        end local 6 // edu.umd.cs.findbugs.ba.SignatureConverter converter
        end local 5 // java.lang.String pkgName
        end local 4 // java.lang.String returnType
        end local 3 // int i
        27: .line 360
      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.MethodAnnotation this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   28     0          this  Ledu/umd/cs/findbugs/MethodAnnotation;
            0   28     1           key  Ljava/lang/String;
            0   28     2  primaryClass  Ledu/umd/cs/findbugs/ClassAnnotation;
           18   19     3           tmp  Ljava/lang/String;
           21   27     3             i  I
           22   27     4    returnType  Ljava/lang/String;
           25   27     5       pkgName  Ljava/lang/String;
           26   27     6     converter  Ledu/umd/cs/findbugs/ba/SignatureConverter;
    MethodParameters:
              Name  Flags
      key           
      primaryClass  

  public java.lang.String getNameInClass(edu.umd.cs.findbugs.ClassAnnotation);
    descriptor: (Ledu/umd/cs/findbugs/ClassAnnotation;)Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // edu.umd.cs.findbugs.MethodAnnotation this
        start local 1 // edu.umd.cs.findbugs.ClassAnnotation primaryClass
         0: .line 369
            aload 0 /* this */
            iconst_1
            iconst_0
            iconst_0
            iconst_0
            invokevirtual edu.umd.cs.findbugs.MethodAnnotation.getNameInClass:(ZZZZ)Ljava/lang/String;
            areturn
        end local 1 // edu.umd.cs.findbugs.ClassAnnotation primaryClass
        end local 0 // edu.umd.cs.findbugs.MethodAnnotation this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    1     0          this  Ledu/umd/cs/findbugs/MethodAnnotation;
            0    1     1  primaryClass  Ledu/umd/cs/findbugs/ClassAnnotation;
    MethodParameters:
              Name  Flags
      primaryClass  

  public java.lang.String getSignatureInClass(edu.umd.cs.findbugs.ClassAnnotation);
    descriptor: (Ledu/umd/cs/findbugs/ClassAnnotation;)Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // edu.umd.cs.findbugs.MethodAnnotation this
        start local 1 // edu.umd.cs.findbugs.ClassAnnotation primaryClass
         0: .line 373
            aload 0 /* this */
            iconst_1
            iconst_0
            iconst_0
            iconst_1
            invokevirtual edu.umd.cs.findbugs.MethodAnnotation.getNameInClass:(ZZZZ)Ljava/lang/String;
            areturn
        end local 1 // edu.umd.cs.findbugs.ClassAnnotation primaryClass
        end local 0 // edu.umd.cs.findbugs.MethodAnnotation this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    1     0          this  Ledu/umd/cs/findbugs/MethodAnnotation;
            0    1     1  primaryClass  Ledu/umd/cs/findbugs/ClassAnnotation;
    MethodParameters:
              Name  Flags
      primaryClass  

  public java.lang.String getNameInClass(boolean, boolean, boolean);
    descriptor: (ZZZ)Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // edu.umd.cs.findbugs.MethodAnnotation this
        start local 1 // boolean shortenPackages
        start local 2 // boolean useJVMMethodName
        start local 3 // boolean hash
         0: .line 377
            aload 0 /* this */
            iload 1 /* shortenPackages */
            iload 2 /* useJVMMethodName */
            iload 3 /* hash */
            iconst_0
            invokevirtual edu.umd.cs.findbugs.MethodAnnotation.getNameInClass:(ZZZZ)Ljava/lang/String;
            areturn
        end local 3 // boolean hash
        end local 2 // boolean useJVMMethodName
        end local 1 // boolean shortenPackages
        end local 0 // edu.umd.cs.findbugs.MethodAnnotation this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    1     0              this  Ledu/umd/cs/findbugs/MethodAnnotation;
            0    1     1   shortenPackages  Z
            0    1     2  useJVMMethodName  Z
            0    1     3              hash  Z
    MethodParameters:
                  Name  Flags
      shortenPackages   
      useJVMMethodName  
      hash              

  public java.lang.String getNameInClass(boolean, boolean, boolean, boolean);
    descriptor: (ZZZZ)Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=8, args_size=5
        start local 0 // edu.umd.cs.findbugs.MethodAnnotation this
        start local 1 // boolean shortenPackages
        start local 2 // boolean useJVMMethodName
        start local 3 // boolean hash
        start local 4 // boolean omitMethodName
         0: .line 394
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 5 /* result */
        start local 5 // java.lang.StringBuilder result
         1: .line 395
            iload 4 /* omitMethodName */
            ifne 6
         2: .line 396
            iload 2 /* useJVMMethodName */
            ifeq 5
         3: .line 397
            aload 5 /* result */
            aload 0 /* this */
            invokevirtual edu.umd.cs.findbugs.MethodAnnotation.getMethodName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         4: .line 398
            goto 6
         5: .line 399
      StackMap locals: java.lang.StringBuilder
      StackMap stack:
            aload 5 /* result */
            aload 0 /* this */
            invokevirtual edu.umd.cs.findbugs.MethodAnnotation.getJavaSourceMethodName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         6: .line 402
      StackMap locals:
      StackMap stack:
            aload 5 /* result */
            bipush 40
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
         7: .line 405
            new edu.umd.cs.findbugs.ba.SignatureConverter
            dup
            aload 0 /* this */
            getfield edu.umd.cs.findbugs.MethodAnnotation.methodSig:Ljava/lang/String;
            invokespecial edu.umd.cs.findbugs.ba.SignatureConverter.<init>:(Ljava/lang/String;)V
            astore 6 /* converter */
        start local 6 // edu.umd.cs.findbugs.ba.SignatureConverter converter
         8: .line 407
            aload 6 /* converter */
            invokevirtual edu.umd.cs.findbugs.ba.SignatureConverter.getFirst:()C
            bipush 40
            if_icmpeq 10
         9: .line 408
            new java.lang.IllegalStateException
            dup
            new java.lang.StringBuilder
            dup
            ldc "bad method signature "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield edu.umd.cs.findbugs.MethodAnnotation.methodSig:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
        10: .line 410
      StackMap locals: edu.umd.cs.findbugs.ba.SignatureConverter
      StackMap stack:
            aload 6 /* converter */
            invokevirtual edu.umd.cs.findbugs.ba.SignatureConverter.skip:()V
        11: .line 412
            iconst_0
            istore 7 /* needsComma */
        start local 7 // boolean needsComma
        12: .line 413
            goto 23
        13: .line 414
      StackMap locals: int
      StackMap stack:
            iload 7 /* needsComma */
            ifeq 18
        14: .line 415
            iload 3 /* hash */
            ifeq 17
        15: .line 416
            aload 5 /* result */
            ldc ","
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        16: .line 417
            goto 18
        17: .line 418
      StackMap locals:
      StackMap stack:
            aload 5 /* result */
            ldc ", "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        18: .line 421
      StackMap locals:
      StackMap stack:
            iload 1 /* shortenPackages */
            ifeq 21
        19: .line 422
            aload 5 /* result */
            aload 6 /* converter */
            invokevirtual edu.umd.cs.findbugs.ba.SignatureConverter.parseNext:()Ljava/lang/String;
            invokestatic edu.umd.cs.findbugs.MethodAnnotation.removePackageName:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        20: .line 423
            goto 22
        21: .line 424
      StackMap locals:
      StackMap stack:
            aload 5 /* result */
            aload 6 /* converter */
            invokevirtual edu.umd.cs.findbugs.ba.SignatureConverter.parseNext:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        22: .line 426
      StackMap locals:
      StackMap stack:
            iconst_1
            istore 7 /* needsComma */
        23: .line 413
      StackMap locals:
      StackMap stack:
            aload 6 /* converter */
            invokevirtual edu.umd.cs.findbugs.ba.SignatureConverter.getFirst:()C
            bipush 41
            if_icmpne 13
        24: .line 428
            aload 6 /* converter */
            invokevirtual edu.umd.cs.findbugs.ba.SignatureConverter.skip:()V
        25: .line 430
            aload 5 /* result */
            bipush 41
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        26: .line 431
            aload 5 /* result */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 7 // boolean needsComma
        end local 6 // edu.umd.cs.findbugs.ba.SignatureConverter converter
        end local 5 // java.lang.StringBuilder result
        end local 4 // boolean omitMethodName
        end local 3 // boolean hash
        end local 2 // boolean useJVMMethodName
        end local 1 // boolean shortenPackages
        end local 0 // edu.umd.cs.findbugs.MethodAnnotation this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   27     0              this  Ledu/umd/cs/findbugs/MethodAnnotation;
            0   27     1   shortenPackages  Z
            0   27     2  useJVMMethodName  Z
            0   27     3              hash  Z
            0   27     4    omitMethodName  Z
            1   27     5            result  Ljava/lang/StringBuilder;
            8   27     6         converter  Ledu/umd/cs/findbugs/ba/SignatureConverter;
           12   27     7        needsComma  Z
    MethodParameters:
                  Name  Flags
      shortenPackages   
      useJVMMethodName  
      hash              
      omitMethodName    

  public java.lang.String getFullMethod(edu.umd.cs.findbugs.ClassAnnotation);
    descriptor: (Ledu/umd/cs/findbugs/ClassAnnotation;)Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // edu.umd.cs.findbugs.MethodAnnotation this
        start local 1 // edu.umd.cs.findbugs.ClassAnnotation primaryClass
         0: .line 439
            aload 0 /* this */
            getfield edu.umd.cs.findbugs.MethodAnnotation.fullMethod:Ljava/lang/String;
            ifnonnull 5
         1: .line 440
            ldc "<init>"
            aload 0 /* this */
            getfield edu.umd.cs.findbugs.MethodAnnotation.methodName:Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 4
         2: .line 441
            aload 0 /* this */
            new java.lang.StringBuilder
            dup
            ldc "new "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            aload 0 /* this */
            getfield edu.umd.cs.findbugs.MethodAnnotation.className:Ljava/lang/String;
            invokevirtual edu.umd.cs.findbugs.MethodAnnotation.stripJavaLang:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            aload 1 /* primaryClass */
            invokevirtual edu.umd.cs.findbugs.MethodAnnotation.getSignatureInClass:(Ledu/umd/cs/findbugs/ClassAnnotation;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            putfield edu.umd.cs.findbugs.MethodAnnotation.fullMethod:Ljava/lang/String;
         3: .line 442
            goto 5
         4: .line 443
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            aload 0 /* this */
            getfield edu.umd.cs.findbugs.MethodAnnotation.className:Ljava/lang/String;
            invokevirtual edu.umd.cs.findbugs.MethodAnnotation.stripJavaLang:(Ljava/lang/String;)Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            aload 1 /* primaryClass */
            invokevirtual edu.umd.cs.findbugs.MethodAnnotation.getNameInClass:(Ledu/umd/cs/findbugs/ClassAnnotation;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            putfield edu.umd.cs.findbugs.MethodAnnotation.fullMethod:Ljava/lang/String;
         5: .line 447
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield edu.umd.cs.findbugs.MethodAnnotation.fullMethod:Ljava/lang/String;
            areturn
        end local 1 // edu.umd.cs.findbugs.ClassAnnotation primaryClass
        end local 0 // edu.umd.cs.findbugs.MethodAnnotation this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    6     0          this  Ledu/umd/cs/findbugs/MethodAnnotation;
            0    6     1  primaryClass  Ledu/umd/cs/findbugs/ClassAnnotation;
    MethodParameters:
              Name  Flags
      primaryClass  

  public java.lang.String stripJavaLang(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // edu.umd.cs.findbugs.MethodAnnotation this
        start local 1 // java.lang.String className
         0: .line 451
            aload 1 /* className */
            ldc "java.lang."
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 2
         1: .line 452
            aload 1 /* className */
            bipush 10
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            areturn
         2: .line 454
      StackMap locals:
      StackMap stack:
            aload 1 /* className */
            areturn
        end local 1 // java.lang.String className
        end local 0 // edu.umd.cs.findbugs.MethodAnnotation this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    3     0       this  Ledu/umd/cs/findbugs/MethodAnnotation;
            0    3     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  

  private java.lang.String getUglyMethod();
    descriptor: ()Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // edu.umd.cs.findbugs.MethodAnnotation this
         0: .line 458
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            getfield edu.umd.cs.findbugs.MethodAnnotation.className:Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield edu.umd.cs.findbugs.MethodAnnotation.methodName:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " : "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield edu.umd.cs.findbugs.MethodAnnotation.methodSig:Ljava/lang/String;
            bipush 47
            bipush 46
            invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 0 // edu.umd.cs.findbugs.MethodAnnotation this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ledu/umd/cs/findbugs/MethodAnnotation;

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

  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.MethodAnnotation this
        start local 1 // java.lang.Object o
         0: .line 468
            aload 1 /* o */
            instanceof edu.umd.cs.findbugs.MethodAnnotation
            ifne 2
         1: .line 469
            iconst_0
            ireturn
         2: .line 471
      StackMap locals:
      StackMap stack:
            aload 1 /* o */
            checkcast edu.umd.cs.findbugs.MethodAnnotation
            astore 2 /* other */
        start local 2 // edu.umd.cs.findbugs.MethodAnnotation other
         3: .line 472
            aload 0 /* this */
            getfield edu.umd.cs.findbugs.MethodAnnotation.className:Ljava/lang/String;
            aload 2 /* other */
            getfield edu.umd.cs.findbugs.MethodAnnotation.className:Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 4
            aload 0 /* this */
            getfield edu.umd.cs.findbugs.MethodAnnotation.methodName:Ljava/lang/String;
            aload 2 /* other */
            getfield edu.umd.cs.findbugs.MethodAnnotation.methodName:Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 4
            aload 0 /* this */
            getfield edu.umd.cs.findbugs.MethodAnnotation.methodSig:Ljava/lang/String;
            aload 2 /* other */
            getfield edu.umd.cs.findbugs.MethodAnnotation.methodSig:Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 4
            iconst_1
            ireturn
      StackMap locals: edu.umd.cs.findbugs.MethodAnnotation
      StackMap stack:
         4: iconst_0
            ireturn
        end local 2 // edu.umd.cs.findbugs.MethodAnnotation other
        end local 1 // java.lang.Object o
        end local 0 // edu.umd.cs.findbugs.MethodAnnotation this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    5     0   this  Ledu/umd/cs/findbugs/MethodAnnotation;
            0    5     1      o  Ljava/lang/Object;
            3    5     2  other  Ledu/umd/cs/findbugs/MethodAnnotation;
    MethodParameters:
      Name  Flags
      o     

  public int compareTo(edu.umd.cs.findbugs.BugAnnotation);
    descriptor: (Ledu/umd/cs/findbugs/BugAnnotation;)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // edu.umd.cs.findbugs.MethodAnnotation this
        start local 1 // edu.umd.cs.findbugs.BugAnnotation o
         0: .line 477
            aload 1 /* o */
            instanceof edu.umd.cs.findbugs.MethodAnnotation
            ifne 2
         1: .line 480
            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 482
      StackMap locals:
      StackMap stack:
            aload 1 /* o */
            checkcast edu.umd.cs.findbugs.MethodAnnotation
            astore 2 /* other */
        start local 2 // edu.umd.cs.findbugs.MethodAnnotation other
         3: .line 484
            aload 0 /* this */
            getfield edu.umd.cs.findbugs.MethodAnnotation.className:Ljava/lang/String;
            aload 2 /* other */
            getfield edu.umd.cs.findbugs.MethodAnnotation.className:Ljava/lang/String;
            invokevirtual java.lang.String.compareTo:(Ljava/lang/String;)I
            istore 3 /* cmp */
        start local 3 // int cmp
         4: .line 485
            iload 3 /* cmp */
            ifeq 6
         5: .line 486
            iload 3 /* cmp */
            ireturn
         6: .line 488
      StackMap locals: edu.umd.cs.findbugs.MethodAnnotation int
      StackMap stack:
            aload 0 /* this */
            getfield edu.umd.cs.findbugs.MethodAnnotation.methodName:Ljava/lang/String;
            aload 2 /* other */
            getfield edu.umd.cs.findbugs.MethodAnnotation.methodName:Ljava/lang/String;
            invokevirtual java.lang.String.compareTo:(Ljava/lang/String;)I
            istore 3 /* cmp */
         7: .line 489
            iload 3 /* cmp */
            ifeq 9
         8: .line 490
            iload 3 /* cmp */
            ireturn
         9: .line 492
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield edu.umd.cs.findbugs.MethodAnnotation.methodSig:Ljava/lang/String;
            aload 2 /* other */
            getfield edu.umd.cs.findbugs.MethodAnnotation.methodSig:Ljava/lang/String;
            invokevirtual java.lang.String.compareTo:(Ljava/lang/String;)I
            ireturn
        end local 3 // int cmp
        end local 2 // edu.umd.cs.findbugs.MethodAnnotation other
        end local 1 // edu.umd.cs.findbugs.BugAnnotation o
        end local 0 // edu.umd.cs.findbugs.MethodAnnotation this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   10     0   this  Ledu/umd/cs/findbugs/MethodAnnotation;
            0   10     1      o  Ledu/umd/cs/findbugs/BugAnnotation;
            3   10     2  other  Ledu/umd/cs/findbugs/MethodAnnotation;
            4   10     3    cmp  I
    MethodParameters:
      Name  Flags
      o     

  public void writeXML(edu.umd.cs.findbugs.xml.XMLOutput);
    descriptor: (Ledu/umd/cs/findbugs/xml/XMLOutput;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=0, locals=2, args_size=2
        start local 0 // edu.umd.cs.findbugs.MethodAnnotation this
        start local 1 // edu.umd.cs.findbugs.xml.XMLOutput xmlOutput
         0: .line 505
            return
        end local 1 // edu.umd.cs.findbugs.xml.XMLOutput xmlOutput
        end local 0 // edu.umd.cs.findbugs.MethodAnnotation this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    1     0       this  Ledu/umd/cs/findbugs/MethodAnnotation;
            0    1     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=3, locals=6, args_size=4
        start local 0 // edu.umd.cs.findbugs.MethodAnnotation this
        start local 1 // edu.umd.cs.findbugs.xml.XMLOutput xmlOutput
        start local 2 // boolean addMessages
        start local 3 // boolean isPrimary
         0: .line 509
            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.MethodAnnotation.getClassName:()Ljava/lang/String;
            invokevirtual edu.umd.cs.findbugs.xml.XMLAttributeList.addAttribute:(Ljava/lang/String;Ljava/lang/String;)Ledu/umd/cs/findbugs/xml/XMLAttributeList;
         1: .line 510
            ldc "name"
            aload 0 /* this */
            invokevirtual edu.umd.cs.findbugs.MethodAnnotation.getMethodName:()Ljava/lang/String;
            invokevirtual edu.umd.cs.findbugs.xml.XMLAttributeList.addAttribute:(Ljava/lang/String;Ljava/lang/String;)Ledu/umd/cs/findbugs/xml/XMLAttributeList;
            ldc "signature"
            aload 0 /* this */
            invokevirtual edu.umd.cs.findbugs.MethodAnnotation.getMethodSignature:()Ljava/lang/String;
            invokevirtual edu.umd.cs.findbugs.xml.XMLAttributeList.addAttribute:(Ljava/lang/String;Ljava/lang/String;)Ledu/umd/cs/findbugs/xml/XMLAttributeList;
         2: .line 511
            ldc "isStatic"
            aload 0 /* this */
            invokevirtual edu.umd.cs.findbugs.MethodAnnotation.isStatic:()Z
            invokestatic java.lang.String.valueOf:(Z)Ljava/lang/String;
            invokevirtual edu.umd.cs.findbugs.xml.XMLAttributeList.addAttribute:(Ljava/lang/String;Ljava/lang/String;)Ledu/umd/cs/findbugs/xml/XMLAttributeList;
         3: .line 509
            astore 4 /* attributeList */
        start local 4 // edu.umd.cs.findbugs.xml.XMLAttributeList attributeList
         4: .line 512
            iload 3 /* isPrimary */
            ifeq 6
         5: .line 513
            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
         6: .line 516
      StackMap locals: edu.umd.cs.findbugs.xml.XMLAttributeList
      StackMap stack:
            aload 0 /* this */
            invokevirtual edu.umd.cs.findbugs.MethodAnnotation.getDescription:()Ljava/lang/String;
            astore 5 /* role */
        start local 5 // java.lang.String role
         7: .line 517
            ldc "METHOD_DEFAULT"
            aload 5 /* role */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 9
         8: .line 518
            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
         9: .line 521
      StackMap locals: java.lang.String
      StackMap stack:
            aload 0 /* this */
            getfield edu.umd.cs.findbugs.MethodAnnotation.sourceLines:Ledu/umd/cs/findbugs/SourceLineAnnotation;
            ifnonnull 12
            iload 2 /* addMessages */
            ifne 12
        10: .line 522
            aload 1 /* xmlOutput */
            ldc "Method"
            aload 4 /* attributeList */
            invokeinterface edu.umd.cs.findbugs.xml.XMLOutput.openCloseTag:(Ljava/lang/String;Ledu/umd/cs/findbugs/xml/XMLAttributeList;)V
        11: .line 523
            goto 20
        12: .line 524
      StackMap locals:
      StackMap stack:
            aload 1 /* xmlOutput */
            ldc "Method"
            aload 4 /* attributeList */
            invokeinterface edu.umd.cs.findbugs.xml.XMLOutput.openTag:(Ljava/lang/String;Ledu/umd/cs/findbugs/xml/XMLAttributeList;)V
        13: .line 525
            aload 0 /* this */
            getfield edu.umd.cs.findbugs.MethodAnnotation.sourceLines:Ledu/umd/cs/findbugs/SourceLineAnnotation;
            ifnull 15
        14: .line 526
            aload 0 /* this */
            getfield edu.umd.cs.findbugs.MethodAnnotation.sourceLines:Ledu/umd/cs/findbugs/SourceLineAnnotation;
            aload 1 /* xmlOutput */
            invokevirtual edu.umd.cs.findbugs.SourceLineAnnotation.writeXML:(Ledu/umd/cs/findbugs/xml/XMLOutput;)V
        15: .line 528
      StackMap locals:
      StackMap stack:
            iload 2 /* addMessages */
            ifeq 19
        16: .line 529
            aload 1 /* xmlOutput */
            ldc "Message"
            invokeinterface edu.umd.cs.findbugs.xml.XMLOutput.openTag:(Ljava/lang/String;)V
        17: .line 530
            aload 1 /* xmlOutput */
            aload 0 /* this */
            invokevirtual edu.umd.cs.findbugs.MethodAnnotation.toString:()Ljava/lang/String;
            invokeinterface edu.umd.cs.findbugs.xml.XMLOutput.writeText:(Ljava/lang/String;)V
        18: .line 531
            aload 1 /* xmlOutput */
            ldc "Message"
            invokeinterface edu.umd.cs.findbugs.xml.XMLOutput.closeTag:(Ljava/lang/String;)V
        19: .line 533
      StackMap locals:
      StackMap stack:
            aload 1 /* xmlOutput */
            ldc "Method"
            invokeinterface edu.umd.cs.findbugs.xml.XMLOutput.closeTag:(Ljava/lang/String;)V
        20: .line 535
      StackMap locals:
      StackMap stack:
            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.MethodAnnotation this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   21     0           this  Ledu/umd/cs/findbugs/MethodAnnotation;
            0   21     1      xmlOutput  Ledu/umd/cs/findbugs/xml/XMLOutput;
            0   21     2    addMessages  Z
            0   21     3      isPrimary  Z
            4   21     4  attributeList  Ledu/umd/cs/findbugs/xml/XMLAttributeList;
            7   21     5           role  Ljava/lang/String;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
             Name  Flags
      xmlOutput    
      addMessages  
      isPrimary    

  public boolean isSignificant();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // edu.umd.cs.findbugs.MethodAnnotation this
         0: .line 539
            aload 0 /* this */
            invokevirtual edu.umd.cs.findbugs.MethodAnnotation.getDescription:()Ljava/lang/String;
            astore 1 /* role */
        start local 1 // java.lang.String role
         1: .line 540
            ldc "METHOD_DANGEROUS_TARGET"
            aload 1 /* role */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 3
            ldc "METHOD_DANGEROUS_TARGET_ACTUAL_GUARANTEED_NULL"
            aload 1 /* role */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 3
         2: .line 541
            ldc "METHOD_SAFE_TARGET"
            aload 1 /* role */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 3
            ldc "METHOD_EQUALS_USED"
            aload 1 /* role */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 3
            ldc "METHOD_COMPUTED_IN"
            aload 1 /* role */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 4
         3: .line 542
      StackMap locals: java.lang.String
      StackMap stack:
            iconst_0
            ireturn
         4: .line 544
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 1 // java.lang.String role
        end local 0 // edu.umd.cs.findbugs.MethodAnnotation this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Ledu/umd/cs/findbugs/MethodAnnotation;
            1    5     1  role  Ljava/lang/String;

  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.MethodAnnotation.compareTo:(Ledu/umd/cs/findbugs/BugAnnotation;)I
            ireturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
}
SourceFile: "MethodAnnotation.java"
InnerClasses:
  public Item = edu.umd.cs.findbugs.OpcodeStack$Item of edu.umd.cs.findbugs.OpcodeStack