FindBugs™ 1.3.9

edu.umd.cs.findbugs.model
Class ClassFeatureSet

java.lang.Object
  extended by edu.umd.cs.findbugs.model.ClassFeatureSet
All Implemented Interfaces:
XMLWriteable

public class ClassFeatureSet
extends java.lang.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 java.lang.String CLASS_NAME_KEY
           
static java.lang.String CODE_LENGTH_KEY
           
static java.lang.String ELEMENT_NAME
           
static double EXACT_CLASS_NAME_MATCH
          Similarity of classes which don't have enough features to match exactly, but whose class names match exactly.
static java.lang.String FEATURE_ELEMENT_NAME
           
static java.lang.String FIELD_NAME_KEY
           
static java.lang.String METHOD_NAME_KEY
           
static int MIN_CODE_LENGTH
          Minimum code length required to add a CodeLength feature.
static int MIN_FEATURES
          Minimum number of features which must be present in order to declare two classes similar.
static double MIN_MATCH
          Minimum similarity required to declare two classes similar.
 
Constructor Summary
ClassFeatureSet()
          Constructor.
 
Method Summary
 void addFeature(java.lang.String feature)
           
 java.util.Iterator<java.lang.String> featureIterator()
           
 java.lang.String getClassName()
           
 int getNumFeatures()
           
 boolean hasFeature(java.lang.String feature)
           
 ClassFeatureSet initialize(org.apache.bcel.classfile.JavaClass javaClass)
          Initialize from given JavaClass.
 boolean isInterface()
           
static boolean isUnlikelyToBeRenamed(java.lang.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 void main(java.lang.String[] args)
           
 void setClassName(java.lang.String className)
           
 void setInterface(boolean isInterface)
           
static double similarity(ClassFeatureSet a, ClassFeatureSet b)
           
 boolean similarTo(ClassFeatureSet other)
           
static java.lang.String transformClassName(java.lang.String className)
          Transform a class name by stripping its package name.
static java.lang.String transformMethodSignature(java.lang.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 java.lang.String transformSignature(java.lang.String signature)
          Transform a field or method parameter signature to allow it to be compared even if it is moved to another package.
 void writeXML(XMLOutput xmlOutput)
          Write this object to given XMLOutput.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

CLASS_NAME_KEY

public static final java.lang.String CLASS_NAME_KEY
See Also:
Constant Field Values

METHOD_NAME_KEY

public static final java.lang.String METHOD_NAME_KEY
See Also:
Constant Field Values

CODE_LENGTH_KEY

public static final java.lang.String CODE_LENGTH_KEY
See Also:
Constant Field Values

FIELD_NAME_KEY

public static final java.lang.String FIELD_NAME_KEY
See Also:
Constant Field Values

MIN_CODE_LENGTH

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

See Also:
Constant Field Values

MIN_FEATURES

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

See Also:
Constant Field Values

MIN_MATCH

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

See Also:
Constant Field Values

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.

See Also:
Constant Field Values

ELEMENT_NAME

public static final java.lang.String ELEMENT_NAME
See Also:
Constant Field Values

FEATURE_ELEMENT_NAME

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

ClassFeatureSet

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

Method Detail

initialize

public ClassFeatureSet initialize(org.apache.bcel.classfile.JavaClass javaClass)
Initialize from given JavaClass.

Parameters:
javaClass - the JavaClass
Returns:
this object

getClassName

public java.lang.String getClassName()
Returns:
Returns the className.

setClassName

public void setClassName(java.lang.String className)
Parameters:
className - The className to set.

isInterface

public boolean isInterface()
Returns:
Returns the isInterface.

setInterface

public void setInterface(boolean isInterface)
Parameters:
isInterface - The isInterface to set.

getNumFeatures

public int getNumFeatures()

addFeature

public void addFeature(java.lang.String feature)

featureIterator

public java.util.Iterator<java.lang.String> featureIterator()

hasFeature

public boolean hasFeature(java.lang.String feature)

transformClassName

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

Parameters:
className - a class name
Returns:
the transformed class name

isUnlikelyToBeRenamed

public static boolean isUnlikelyToBeRenamed(java.lang.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

transformMethodSignature

public static java.lang.String transformMethodSignature(java.lang.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 java.lang.String transformSignature(java.lang.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

similarity

public static double similarity(ClassFeatureSet a,
                                ClassFeatureSet b)

similarTo

public boolean similarTo(ClassFeatureSet other)

main

public static void main(java.lang.String[] args)
                 throws java.lang.Exception
Throws:
java.lang.Exception

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

FindBugs™ 1.3.9

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