Package org.codehaus.groovy.runtime
Class MethodRankHelper
java.lang.Object
org.codehaus.groovy.runtime.MethodRankHelper
Utility class for MissingMethodException, MissingPropertyException, etc.
 Contains methods for assisting in ranking and listing probable intended
 methods/fields when an exception is thrown.
- 
Field SummaryFieldsModifier and TypeFieldDescriptionstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final int
- 
Constructor SummaryConstructors
- 
Method SummaryModifier and TypeMethodDescriptionprotected static ClassIf c is a primitive class this method returns a boxed version otherwise c is returned.static intdamerauLevenshteinDistance(Object[] s, Object[] t) This is an implementation of DL distance between two Object arrays instead of character streams.static intThis is a slightly modified version of the Damerau Levenshtein distance algorithm.static StringgetConstructorSuggestionString(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.static StringgetMethodSuggestionString(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.static StringgetPropertySuggestionString(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.
- 
Field Details- 
DL_CASEpublic static final int DL_CASE- See Also:
 
- 
DL_DELETEpublic static final int DL_DELETE- See Also:
 
- 
DL_SUBSTITUTIONpublic static final int DL_SUBSTITUTION- See Also:
 
- 
DL_TRANSPOSITIONpublic static final int DL_TRANSPOSITION- See Also:
 
- 
MAX_RECOMENDATIONSpublic static final int MAX_RECOMENDATIONS- See Also:
 
- 
MAX_METHOD_SCOREpublic static final int MAX_METHOD_SCORE- See Also:
 
- 
MAX_CONSTRUCTOR_SCOREpublic static final int MAX_CONSTRUCTOR_SCORE- See Also:
 
- 
MAX_FIELD_SCOREpublic static final int MAX_FIELD_SCORE- See Also:
 
 
- 
- 
Constructor Details- 
MethodRankHelperpublic MethodRankHelper()
 
- 
- 
Method Details- 
getMethodSuggestionStringReturns a string detailing possible solutions to a missing method if no good solutions can be found an empty string is returned.- Parameters:
- methodName- the name of the method that doesn't exist
- type- the class on which the method is invoked
- arguments- the arguments passed to the method
- Returns:
- a string with probable solutions to the exception
 
- 
getConstructorSuggestionStringReturns a string detailing possible solutions to a missing constructor if no good solutions can be found an empty string is returned.- Parameters:
- arguments- the arguments passed to the constructor
- type- the class on which the constructor is invoked
- Returns:
- a string with probable solutions to the exception
 
- 
getPropertySuggestionStringReturns a string detailing possible solutions to a missing field/property if no good solutions can be found an empty string is returned.- Parameters:
- name- the missing field/property
- type- the class on which the field is sought
- Returns:
- a string with probable solutions to the exception
 
- 
boxVarIf 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.- Parameters:
- c-
- Returns:
- a boxed version of c if c can be boxed, else c
 
- 
delDistanceThis 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.- Parameters:
- s- a CharSequence
- t- the CharSequence to be compared to s
- Returns:
- a value representing the edit distance between s and t
 
- 
damerauLevenshteinDistanceThis 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.- Parameters:
- s- an Object array
- t- this array is compared to s
- Returns:
- the edit distance between the two arrays
 
 
-