edu.umd.cs.findbugs.ba.ch

Class Subtypes

public class Subtypes extends Object

Support for class hierarchy queries.

Author: Bill Pugh David Hovemeyer

Constructor Summary
Subtypes()
Method Summary
voidaddApplicationClass(JavaClass c)
voidaddClass(JavaClass c)
voidaddNamedClass(String name)
static StringextractClassName(String originalName)
Set<JavaClass>getAllClasses()
Get set of all known classes and interfaces.
Set<JavaClass>getImmediateSubtypes(JavaClass c)
Get immediate subtypes of given class or interface.
Set<JavaClass>getTransitiveCommonSubtypes(JavaClass a, JavaClass b)
Get set of all known transitive classes and interfaces which are subtypes of both of the given classes and/or interfaces.
Set<JavaClass>getTransitiveSubtypes(JavaClass c)
Get set of all transitive subtypes of given class or interface, not including the class or interface itself.
booleanhasSubtypes(JavaClass c)
Determine if a class or interface has subtypes
booleanisApplicationClass(JavaClass javaClass)
Determine whether or not the given class is an application class.
static voidlearnFieldsAndMethods(JavaClass c)

Constructor Detail

Subtypes

public Subtypes()

Method Detail

addApplicationClass

public void addApplicationClass(JavaClass c)

addClass

public void addClass(JavaClass c)

addNamedClass

public void addNamedClass(String name)

extractClassName

public static String extractClassName(String originalName)

getAllClasses

public Set<JavaClass> getAllClasses()
Get set of all known classes and interfaces.

Returns: set of all known classes and interfaces

getImmediateSubtypes

public Set<JavaClass> getImmediateSubtypes(JavaClass c)
Get immediate subtypes of given class or interface.

Parameters: c a class or interface

Returns: set of immediate subtypes

getTransitiveCommonSubtypes

public Set<JavaClass> getTransitiveCommonSubtypes(JavaClass a, JavaClass b)
Get set of all known transitive classes and interfaces which are subtypes of both of the given classes and/or interfaces. Note that in this method, we consider a class to be a subtype of itself. Therefore, this method can be used to determine, e.g., if there are any classes implementing both of two given interfaces.

Parameters: a a class or interface b another class or interface

Returns: set of all common subtypes of a and b

getTransitiveSubtypes

public Set<JavaClass> getTransitiveSubtypes(JavaClass c)
Get set of all transitive subtypes of given class or interface, not including the class or interface itself.

Parameters: c a class or interface

Returns: set of all transitive subtypes

hasSubtypes

public boolean hasSubtypes(JavaClass c)
Determine if a class or interface has subtypes

Parameters: c a class or interface

Returns: true if c has any subtypes/interfaces

isApplicationClass

public boolean isApplicationClass(JavaClass javaClass)
Determine whether or not the given class is an application class.

Parameters: javaClass a class

Returns: true if it's an application class, false if not

learnFieldsAndMethods

public static void learnFieldsAndMethods(JavaClass c)
FindBugs™ is licenced under the LGPL. Copyright © 2006 University of Maryland.