Class MethodMap
java.lang.Object
org.codehaus.plexus.interpolation.reflection.MethodMap
NOTE: This class was copied from plexus-utils, to allow this library
to stand completely self-contained.
-
Nested Class Summary
Modifier and TypeClassDescriptionstatic class
simple distinguishable exception, used when we run across ambiguous overloading -
Constructor Summary
-
Method Summary
-
Constructor Details
-
MethodMap
public MethodMap()
-
-
Method Details
-
add
Add a method to a list of methods by name. For a particular class we are keeping track of all the methods with the same name.- Parameters:
method
-Method
-
get
Return a list of methods with the same name.- Parameters:
key
- the key- Returns:
- list of methods
-
find
Find a method. Attempts to find the most specific applicable method using the algorithm described in the JLS section 15.12.2 (with the exception that it can't distinguish a primitive type argument from an object type argument, since in reflection primitive type arguments are represented by their object counterparts, so for an argument of type (say) java.lang.Integer, it will not be able to decide between a method that takes int and a method that takes java.lang.Integer as a parameter.
This turns out to be a relatively rare case where this is needed - however, functionality like this is needed.
- Parameters:
methodName
- name of methodargs
- the actual arguments with which the method is called- Returns:
- the most specific applicable method, or null if no method is applicable.
- Throws:
MethodMap.AmbiguousException
- if there is more than one maximally specific applicable method
-