edu.umd.cs.findbugs.ba.bcp

Class Invoke

public class Invoke extends PatternElement

A PatternElement to match a method invocation. Currently, we don't allow variables in this element (for arguments and return value). This would be a good thing to add. We also don't distinguish between invokevirtual, invokeinterface, and invokespecial.

Invoke objects match by class name, method name, method signature, and mode.

Names and signatures may be matched in several ways:

  1. By an exact match. This is the default behavior.
  2. By a regular expression. If the string provided to the Invoke constructor begins with a "/" character, the rest of the string is treated as a regular expression.
  3. As a subclass match. This only applies to class name matches. If the first character of a class name string is "+", then the rest of the string is treated as the name of a base class. Any subclass or subinterface of the named type will be accepted.

The mode specifies what kind of invocations in the Invoke element matches. It is specified as the bitwise combination of the following values:

  1. INSTANCE, which matches ordinary instance method invocations
  2. STATIC, which matches static method invocations
  3. CONSTRUCTOR, which matches object constructor invocations
The special mode ORDINARY_METHOD is equivalent to INSTANCE|STATIC. The special mode ANY is equivalent to INSTANCE|STATIC|CONSTRUCTOR.

Author: David Hovemeyer

See Also: PatternElement

Field Summary
static intANY
Match both static and instance invocations.
static intCONSTRUCTOR
Match object constructor invocations.
static intINSTANCE
Match ordinary (non-constructor) instance invocations.
static intORDINARY_METHOD
Match ordinary methods (everything except constructors).
static intSTATIC
Match static invocations.
Constructor Summary
Invoke(String className, String methodName, String methodSig, int mode, RepositoryLookupFailureCallback lookupFailureCallback)
Constructor.

Field Detail

ANY

public static final int ANY
Match both static and instance invocations.

CONSTRUCTOR

public static final int CONSTRUCTOR
Match object constructor invocations.

INSTANCE

public static final int INSTANCE
Match ordinary (non-constructor) instance invocations.

ORDINARY_METHOD

public static final int ORDINARY_METHOD
Match ordinary methods (everything except constructors).

STATIC

public static final int STATIC
Match static invocations.

Constructor Detail

Invoke

public Invoke(String className, String methodName, String methodSig, int mode, RepositoryLookupFailureCallback lookupFailureCallback)
Constructor.

Parameters: className the class name of the method; may be specified exactly, as a regexp, or as a subtype match methodName the name of the method; may be specified exactly or as a regexp methodSig the signature of the method; may be specified exactly or as a regexp mode the mode of invocation

FindBugs™ is licenced under the LGPL. Copyright © 2006 University of Maryland.