edu.umd.cs.findbugs.model

Class ClassFeatureSet

public class ClassFeatureSet extends Object implements XMLWriteable

Features of a class which may be used to identify it if it is renamed or modified.

Author: David Hovemeyer

Field Summary
static StringCLASS_NAME_KEY
static StringCODE_LENGTH_KEY
static StringELEMENT_NAME
static doubleEXACT_CLASS_NAME_MATCH
Similarity of classes which don't have enough features to match exactly, but whose class names match exactly.
static StringFEATURE_ELEMENT_NAME
static StringFIELD_NAME_KEY
static StringMETHOD_NAME_KEY
static intMIN_CODE_LENGTH
Minimum code length required to add a CodeLength feature.
static intMIN_FEATURES
Minimum number of features which must be present in order to declare two classes similar.
static doubleMIN_MATCH
Minimum similarity required to declare two classes similar.
Constructor Summary
ClassFeatureSet()
Constructor.
Method Summary
voidaddFeature(String feature)
Iterator<String>featureIterator()
StringgetClassName()
intgetNumFeatures()
booleanhasFeature(String feature)
ClassFeatureSetinitialize(JavaClass javaClass)
Initialize from given JavaClass.
booleanisInterface()
static booleanisUnlikelyToBeRenamed(String pkg)
Return true if classes in the given package is unlikely to be renamed: e.g., because they are part of a public API.
static voidmain(String[] args)
voidsetClassName(String className)
voidsetInterface(boolean isInterface)
static doublesimilarity(ClassFeatureSet a, ClassFeatureSet b)
booleansimilarTo(ClassFeatureSet other)
static StringtransformClassName(String className)
Transform a class name by stripping its package name.
static StringtransformMethodSignature(String signature)
Transform a method signature to allow it to be compared even if any of its parameter types are moved to another package.
static StringtransformSignature(String signature)
Transform a field or method parameter signature to allow it to be compared even if it is moved to another package.
voidwriteXML(XMLOutput xmlOutput)

Field Detail

CLASS_NAME_KEY

public static final String CLASS_NAME_KEY

CODE_LENGTH_KEY

public static final String CODE_LENGTH_KEY

ELEMENT_NAME

public static final String ELEMENT_NAME

EXACT_CLASS_NAME_MATCH

public static final double EXACT_CLASS_NAME_MATCH
Similarity of classes which don't have enough features to match exactly, but whose class names match exactly.

FEATURE_ELEMENT_NAME

public static final String FEATURE_ELEMENT_NAME

FIELD_NAME_KEY

public static final String FIELD_NAME_KEY

METHOD_NAME_KEY

public static final String METHOD_NAME_KEY

MIN_CODE_LENGTH

public static final int MIN_CODE_LENGTH
Minimum code length required to add a CodeLength feature.

MIN_FEATURES

public static final int MIN_FEATURES
Minimum number of features which must be present in order to declare two classes similar.

MIN_MATCH

public static final double MIN_MATCH
Minimum similarity required to declare two classes similar.

Constructor Detail

ClassFeatureSet

public ClassFeatureSet()
Constructor. Creates an empty feature set.

Method Detail

addFeature

public void addFeature(String feature)

featureIterator

public Iterator<String> featureIterator()

getClassName

public String getClassName()

Returns: Returns the className.

getNumFeatures

public int getNumFeatures()

hasFeature

public boolean hasFeature(String feature)

initialize

public ClassFeatureSet initialize(JavaClass javaClass)
Initialize from given JavaClass.

Parameters: javaClass the JavaClass

Returns: this object

isInterface

public boolean isInterface()

Returns: Returns the isInterface.

isUnlikelyToBeRenamed

public static boolean isUnlikelyToBeRenamed(String pkg)
Return true if classes in the given package is unlikely to be renamed: e.g., because they are part of a public API.

Parameters: pkg the package name

Returns: true if classes in the package is unlikely to be renamed

main

public static void main(String[] args)

setClassName

public void setClassName(String className)

Parameters: className The className to set.

setInterface

public void setInterface(boolean isInterface)

Parameters: isInterface The isInterface to set.

similarity

public static double similarity(ClassFeatureSet a, ClassFeatureSet b)

similarTo

public boolean similarTo(ClassFeatureSet other)

transformClassName

public static String transformClassName(String className)
Transform a class name by stripping its package name.

Parameters: className a class name

Returns: the transformed class name

transformMethodSignature

public static String transformMethodSignature(String signature)
Transform a method signature to allow it to be compared even if any of its parameter types are moved to another package.

Parameters: signature a method signature

Returns: the transformed signature

transformSignature

public static String transformSignature(String signature)
Transform a field or method parameter signature to allow it to be compared even if it is moved to another package.

Parameters: signature the signature

Returns: the transformed signature

writeXML

public void writeXML(XMLOutput xmlOutput)
FindBugs™ is licenced under the LGPL. Copyright © 2006 University of Maryland.