public enum ArgumentTypeResolver extends Enum<ArgumentTypeResolver> implements MethodDelegationBinder.AmbiguityResolver
MethodDelegationBinder.AmbiguityResolver
that resolves two conflicting bindings by considering most-specific types of target method parameters in the same manner
as the Java compiler resolves bindings of overloaded method.
This ambiguity resolver:
For example: If a source method only parameter was successfully bound one-to-one to the only parameters of the target methods
foo(Object)
and bar(String)
, this ambiguity resolver will detect that the String
type
is more specific than the Object
type and determine bar(String)
as the dominant binding.Modifier and Type | Class and Description |
---|---|
static class |
ArgumentTypeResolver.ParameterIndexToken
This token is used to mark a one-to-one binding of a source method parameter to a target method parameter.
|
protected static class |
ArgumentTypeResolver.PrimitiveTypePrecedence
A representation of the precedence of a most specific primitive type in the Java programming language.
|
MethodDelegationBinder.AmbiguityResolver.Compound, MethodDelegationBinder.AmbiguityResolver.Directional, MethodDelegationBinder.AmbiguityResolver.NoOp, MethodDelegationBinder.AmbiguityResolver.Resolution
Enum Constant and Description |
---|
INSTANCE
The singleton instance.
|
DEFAULT
Modifier and Type | Method and Description |
---|---|
MethodDelegationBinder.AmbiguityResolver.Resolution |
resolve(MethodDescription source,
MethodDelegationBinder.MethodBinding left,
MethodDelegationBinder.MethodBinding right)
Attempts to resolve to conflicting bindings.
|
static ArgumentTypeResolver |
valueOf(String name)
Returns the enum constant of this type with the specified name.
|
static ArgumentTypeResolver[] |
values()
Returns an array containing the constants of this enum type, in
the order they are declared.
|
public static final ArgumentTypeResolver INSTANCE
public static ArgumentTypeResolver[] values()
for (ArgumentTypeResolver c : ArgumentTypeResolver.values()) System.out.println(c);
public static ArgumentTypeResolver valueOf(String name)
name
- the name of the enum constant to be returned.IllegalArgumentException
- if this enum type has no constant with the specified nameNullPointerException
- if the argument is nullpublic MethodDelegationBinder.AmbiguityResolver.Resolution resolve(MethodDescription source, MethodDelegationBinder.MethodBinding left, MethodDelegationBinder.MethodBinding right)
resolve
in interface MethodDelegationBinder.AmbiguityResolver
source
- The source method that was bound to both target methods.left
- The first successful binding of the source
method.right
- The second successful binding of the source
method.MethodDelegationBinder.AmbiguityResolver.Resolution.LEFT
indicates a successful binding to the left
binding while
MethodDelegationBinder.AmbiguityResolver.Resolution.RIGHT
indicates a successful binding to the right
binding.Copyright © 2014–2023. All rights reserved.