java.lang.Object
org.apache.camel.support.component.ApiMethodHelper<T>
Helper class for working with
ApiMethod
.-
Nested Class Summary
Nested Classes -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionReturns argument types and names used by all methods.filterMethods
(List<? extends ApiMethod> methods, ApiMethodHelper.MatchType matchType) Filters a list of methods to those that take the given set of arguments.filterMethods
(List<? extends ApiMethod> methods, ApiMethodHelper.MatchType matchType, Collection<String> argNames) Filters a list of methods to those that take the given set of arguments.Returns alias map.getArguments
(String name) Gets argument types and names for all overloaded methods and aliases with the given name.getCandidateMethods
(String name) Gets methods that match the given name and arguments.getCandidateMethods
(String name, Collection<String> argNames) Gets methods that match the given name and arguments.static ApiMethod
getHighestPriorityMethod
(List<? extends ApiMethod> filteredMethods) getMissingProperties
(String methodName, Set<String> argNames) Get missing properties.Returns argument names that can be set to null if not specified.Class<?>
Get the type for the given argument name.static Object
Invokes given method with argument values from given properties.
-
Constructor Details
-
ApiMethodHelper
public ApiMethodHelper(Class<T> apiMethodEnum, Map<String, String> aliases, List<String> nullableArguments) Create a helper to work with aApiMethod
, using optional method aliases.- Parameters:
apiMethodEnum
-ApiMethod
enumeration classaliases
- Aliases mapped to actual method namesnullableArguments
- names of arguments that default to null value
-
-
Method Details
-
getCandidateMethods
Gets methods that match the given name and arguments. Note that the args list is a required subset of arguments for returned methods.- Parameters:
name
- case sensitive method name or alias to lookup- Returns:
- non-null unmodifiable list of methods that take all of the given arguments, empty if there is no match
-
getCandidateMethods
Gets methods that match the given name and arguments. Note that the args list is a required subset of arguments for returned methods.- Parameters:
name
- case sensitive method name or alias to lookupargNames
- unordered required argument names- Returns:
- non-null unmodifiable list of methods that take all of the given arguments, empty if there is no match
-
filterMethods
public List<ApiMethod> filterMethods(List<? extends ApiMethod> methods, ApiMethodHelper.MatchType matchType) Filters a list of methods to those that take the given set of arguments.- Parameters:
methods
- list of methods to filtermatchType
- whether the arguments are an exact match, a subset or a super set of method args- Returns:
- methods with arguments that satisfy the match type. For SUPER_SET match, if methods with exact match are found, methods that take a subset are ignored
-
filterMethods
public List<ApiMethod> filterMethods(List<? extends ApiMethod> methods, ApiMethodHelper.MatchType matchType, Collection<String> argNames) Filters a list of methods to those that take the given set of arguments.- Parameters:
methods
- list of methods to filtermatchType
- whether the arguments are an exact match, a subset or a super set of method argsargNames
- argument names to filter the list- Returns:
- methods with arguments that satisfy the match type. For SUPER_SET match, if methods with exact match are found, methods that take a subset are ignored
-
getArguments
Gets argument types and names for all overloaded methods and aliases with the given name.- Parameters:
name
- method name, either an exact name or an alias, exact matches are checked first- Returns:
- list of arguments of the form Class type1, String name1, Class type2, String name2,...
- Throws:
IllegalArgumentException
-
getMissingProperties
Get missing properties.- Parameters:
methodName
- method nameargNames
- available arguments- Returns:
- Set of missing argument names
-
getAliases
Returns alias map.- Returns:
- alias names mapped to method names.
-
allArguments
Returns argument types and names used by all methods.- Returns:
- map with argument names as keys, and types as values
-
getNullableArguments
Returns argument names that can be set to null if not specified.- Returns:
- list of argument names
-
getType
Get the type for the given argument name.- Parameters:
argName
- argument name- Returns:
- argument type
- Throws:
IllegalArgumentException
-
getHighestPriorityMethod
-
invokeMethod
public static Object invokeMethod(Object proxy, ApiMethod method, Map<String, Object> properties) throws org.apache.camel.RuntimeCamelExceptionInvokes given method with argument values from given properties.- Parameters:
proxy
- Proxy object for invokemethod
- method to invokeproperties
- Map of arguments- Returns:
- result of method invocation
- Throws:
org.apache.camel.RuntimeCamelException
- on errors
-