public class MethodRankHelper
extends Object
Utility class for MissingMethodException, MissingPropertyException, etc. Contains methods for assisting in ranking and listing probable intended methods/fields when an exception is thrown.
| Modifiers | Name | Description |
|---|---|---|
static int |
DL_CASE |
Cost for case change in Damerau-Levenshtein distance calculation. |
static int |
DL_DELETE |
|
static int |
DL_SUBSTITUTION |
Cost for substitution in Damerau-Levenshtein distance calculation. |
static int |
DL_TRANSPOSITION |
Cost for transposition in Damerau-Levenshtein distance calculation. |
static int |
MAX_CONSTRUCTOR_SCORE |
Maximum score threshold for constructor ranking. |
static int |
MAX_FIELD_SCORE |
Maximum score threshold for field ranking. |
static int |
MAX_METHOD_SCORE |
Maximum score threshold for method ranking. |
static int |
MAX_RECOMENDATIONS |
Maximum number of method recommendations to suggest. |
| Type Params | Return Type | Name and description |
|---|---|---|
|
protected static Class |
boxVar(Class c)If c is a primitive class this method returns a boxed version otherwise c is returned. |
|
public static int |
damerauLevenshteinDistance(Object[] s, Object[] t)This is an implementation of DL distance between two Object arrays instead of character streams. |
|
public static int |
delDistance(CharSequence s, CharSequence t)This is a slightly modified version of the Damerau Levenshtein distance algorithm. |
|
public static String |
getConstructorSuggestionString(Class type, Object[] arguments)Returns a string detailing possible solutions to a missing constructor if no good solutions can be found an empty string is returned. |
|
public static String |
getMethodSuggestionString(String methodName, Class type, Object[] arguments)Returns a string detailing possible solutions to a missing method if no good solutions can be found an empty string is returned. |
|
public static String |
getPropertySuggestionString(String name, Class type)Returns a string detailing possible solutions to a missing field/property if no good solutions can be found an empty string is returned. |
Cost for case change in Damerau-Levenshtein distance calculation.
Cost for substitution in Damerau-Levenshtein distance calculation.
Cost for transposition in Damerau-Levenshtein distance calculation.
Maximum score threshold for constructor ranking.
Maximum score threshold for field ranking.
Maximum score threshold for method ranking.
Maximum number of method recommendations to suggest.
If c is a primitive class this method returns a boxed version otherwise c is returned. In java 1.5 this can be simplified thanks to the Type class.
This is an implementation of DL distance between two Object arrays instead of character streams. The objects are compared using their equals method. No objects may be null. This implementation is based on Chas Emerick's implementation of Levenshtein Distance for jakarta commons.
s - an Object arrayt - this array is compared to sThis is a slightly modified version of the Damerau Levenshtein distance algorithm. It has an additional test to see if a character has switched case, in the original algorithm this counts as a substitution. The "cost" for a substitution is given as 10 instead of 1 in this version, this enables transpositions and case modifications to have a lower cost than substitutions. Currently the lowercase versions of t_j and s_i isn't cached, its probable that some speed could be gained from this. This version is based on Chas Emerick's implementation of Levenshtein Distance for jakarta commons.
s - a CharSequencet - the CharSequence to be compared to sReturns a string detailing possible solutions to a missing constructor if no good solutions can be found an empty string is returned.
arguments - the arguments passed to the constructortype - the class on which the constructor is invokedReturns a string detailing possible solutions to a missing method if no good solutions can be found an empty string is returned.
methodName - the name of the method that doesn't existtype - the class on which the method is invokedarguments - the arguments passed to the methodReturns a string detailing possible solutions to a missing field/property if no good solutions can be found an empty string is returned.
name - the missing field/propertytype - the class on which the field is sought