Class LocalVariableAnnotation

    • Field Detail

      • UNKNOWN_NAME

        public static final java.lang.String UNKNOWN_NAME
        Default value for the "unknown" local variable name
        See Also:
        Constant Field Values
      • PARAMETER_NAMED_ROLE

        public static final java.lang.String PARAMETER_NAMED_ROLE
        See Also:
        Constant Field Values
      • PARAMETER_VALUE_SOURCE_ROLE

        public static final java.lang.String PARAMETER_VALUE_SOURCE_ROLE
        See Also:
        Constant Field Values
      • PARAMETER_VALUE_SOURCE_NAMED_ROLE

        public static final java.lang.String PARAMETER_VALUE_SOURCE_NAMED_ROLE
        See Also:
        Constant Field Values
      • VALUE_DOOMED_ROLE

        public static final java.lang.String VALUE_DOOMED_ROLE
        See Also:
        Constant Field Values
      • VALUE_DOOMED_NAMED_ROLE

        public static final java.lang.String VALUE_DOOMED_NAMED_ROLE
        See Also:
        Constant Field Values
      • DID_YOU_MEAN_ROLE

        public static final java.lang.String DID_YOU_MEAN_ROLE
        See Also:
        Constant Field Values
    • Constructor Detail

      • LocalVariableAnnotation

        public LocalVariableAnnotation​(java.lang.String name,
                                       int register,
                                       int pc)
        Constructor.
        Parameters:
        name - the name of the local variable
        register - the local variable index
        pc - the bytecode offset of the instruction that mentions this local variable
      • LocalVariableAnnotation

        public LocalVariableAnnotation​(java.lang.String name,
                                       int register,
                                       int pc,
                                       int line)
        Constructor.
        Parameters:
        name - the name of the local variable
        register - the local variable index
        pc - the bytecode offset of the instruction that mentions this local variable
    • Method Detail

      • getLocalVariableAnnotation

        public static LocalVariableAnnotation getLocalVariableAnnotation​(org.apache.bcel.classfile.Method method,
                                                                         Location location,
                                                                         org.apache.bcel.generic.IndexedInstruction ins)
      • getLocalVariableAnnotation

        public static LocalVariableAnnotation getLocalVariableAnnotation​(org.apache.bcel.classfile.Method method,
                                                                         int local,
                                                                         int position1,
                                                                         int position2)
      • getParameterLocalVariableAnnotation

        public static LocalVariableAnnotation getParameterLocalVariableAnnotation​(org.apache.bcel.classfile.Method method,
                                                                                  int local)
        Get a local variable annotation describing a parameter.
        Parameters:
        method - a Method
        local - the local variable containing the parameter
        Returns:
        LocalVariableAnnotation describing the parameter
      • clone

        public java.lang.Object clone()
        Specified by:
        clone in interface BugAnnotation
        Overrides:
        clone in class java.lang.Object
      • format

        public java.lang.String format​(java.lang.String key,
                                       ClassAnnotation primaryClass)
        Description copied from interface: BugAnnotation
        Format the annotation as a String. The given key specifies additional information about how the annotation should be formatted. If the key is empty, then the "default" format will be used.
        Specified by:
        format in interface BugAnnotation
        Parameters:
        key - how the annotation should be formatted
        primaryClass - The primary class for the bug; some bug annotation format msgs are simplified in relation to that class.
      • setDescription

        public void setDescription​(java.lang.String description)
        Description copied from interface: BugAnnotation
        Set a description of this bug annotation. The description is a key for the FindBugsAnnotationDescriptions resource bundle.
        Specified by:
        setDescription in interface BugAnnotation
      • getDescription

        public java.lang.String getDescription()
        Description copied from interface: BugAnnotation
        Get a description of this bug annotation. The description is a key for the FindBugsAnnotationDescriptions resource bundle.
        Specified by:
        getDescription in interface BugAnnotation
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class java.lang.Object
      • equals

        public boolean equals​(java.lang.Object o)
        Overrides:
        equals in class java.lang.Object
      • compareTo

        public int compareTo​(BugAnnotation o)
        Specified by:
        compareTo in interface java.lang.Comparable<BugAnnotation>
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object
      • writeXML

        public void writeXML​(XMLOutput xmlOutput)
                      throws java.io.IOException
        Description copied from interface: XMLWriteable
        Write this object to given XMLOutput.
        Specified by:
        writeXML in interface XMLWriteable
        Parameters:
        xmlOutput - the XMLOutput for the document
        Throws:
        java.io.IOException
      • writeXML

        public void writeXML​(XMLOutput xmlOutput,
                             boolean addMessages,
                             boolean isPrimary)
                      throws java.io.IOException
        Specified by:
        writeXML in interface XMLWriteableWithMessages
        Throws:
        java.io.IOException
      • isNamed

        public boolean isNamed()
      • getName

        public java.lang.String getName()
        Returns:
        name of local variable
      • getPC

        public int getPC()
      • getRegister

        public int getRegister()
      • isSignificant

        public boolean isSignificant()
        Description copied from interface: BugAnnotation
        Is this annotation used to compute instance hashes or match bug instances across versions
        Specified by:
        isSignificant in interface BugAnnotation
        Returns:
        true if significant
      • findMatchingIgnoredParameter

        @CheckForNull
        public static LocalVariableAnnotation findMatchingIgnoredParameter​(ClassContext classContext,
                                                                           org.apache.bcel.classfile.Method method,
                                                                           java.lang.String name,
                                                                           java.lang.String signature)
      • findUniqueBestMatchingParameter

        @CheckForNull
        public static LocalVariableAnnotation findUniqueBestMatchingParameter​(ClassContext classContext,
                                                                              org.apache.bcel.classfile.Method method,
                                                                              java.lang.String name,
                                                                              java.lang.String signature)