public class PolymorphicDispatcher<RT>
extends java.lang.Object
Modifier and Type | Class and Description |
---|---|
static class |
PolymorphicDispatcher.DefaultErrorHandler<RT> |
static interface |
PolymorphicDispatcher.ErrorHandler<P> |
protected class |
PolymorphicDispatcher.MethodDesc |
static class |
PolymorphicDispatcher.MethodNameFilter |
static class |
PolymorphicDispatcher.NullErrorHandler<RT> |
static class |
PolymorphicDispatcher.Predicates |
static class |
PolymorphicDispatcher.WarningErrorHandler<RT> |
Constructor and Description |
---|
PolymorphicDispatcher(java.util.List<? extends java.lang.Object> targets,
com.google.common.base.Predicate<java.lang.reflect.Method> methodFilter) |
PolymorphicDispatcher(java.util.List<? extends java.lang.Object> targets,
com.google.common.base.Predicate<java.lang.reflect.Method> methodFilter,
PolymorphicDispatcher.ErrorHandler<RT> handler) |
PolymorphicDispatcher(java.lang.String methodName,
int minParams,
int maxParams,
java.util.List<? extends java.lang.Object> targets) |
PolymorphicDispatcher(java.lang.String methodName,
int minParams,
int maxParams,
java.util.List<? extends java.lang.Object> targets,
PolymorphicDispatcher.ErrorHandler<RT> handler) |
PolymorphicDispatcher(java.lang.String methodName,
java.util.List<? extends java.lang.Object> targets) |
Modifier and Type | Method and Description |
---|---|
protected int |
compare(PolymorphicDispatcher.MethodDesc o1,
PolymorphicDispatcher.MethodDesc o2) |
static <T> PolymorphicDispatcher<T> |
createForSingleTarget(com.google.common.base.Predicate<java.lang.reflect.Method> methodFilter,
java.lang.Object singleTarget) |
static <T> PolymorphicDispatcher<T> |
createForSingleTarget(java.lang.String methodName,
int min,
int max,
java.lang.Object singleTarget) |
static <T> PolymorphicDispatcher<T> |
createForSingleTarget(java.lang.String methodName,
java.lang.Object singleTarget) |
static <T> PolymorphicDispatcher<T> |
createForVarTarget(java.lang.String methodName,
java.lang.Object... targets) |
protected PolymorphicDispatcher.MethodDesc |
createMethodDesc(java.lang.Object target,
java.lang.reflect.Method method) |
protected java.lang.Class<?> |
getDefaultClass(int paramIndex) |
protected RT |
handleAmbigousMethods(java.util.List<PolymorphicDispatcher.MethodDesc> result,
java.lang.Object... params) |
protected RT |
handleNoSuchMethod(java.lang.Object... params) |
RT |
invoke(java.lang.Object... params) |
public PolymorphicDispatcher(java.lang.String methodName, java.util.List<? extends java.lang.Object> targets)
public PolymorphicDispatcher(java.lang.String methodName, int minParams, int maxParams, java.util.List<? extends java.lang.Object> targets)
public PolymorphicDispatcher(java.lang.String methodName, int minParams, int maxParams, java.util.List<? extends java.lang.Object> targets, PolymorphicDispatcher.ErrorHandler<RT> handler)
public PolymorphicDispatcher(java.util.List<? extends java.lang.Object> targets, com.google.common.base.Predicate<java.lang.reflect.Method> methodFilter)
public PolymorphicDispatcher(java.util.List<? extends java.lang.Object> targets, com.google.common.base.Predicate<java.lang.reflect.Method> methodFilter, PolymorphicDispatcher.ErrorHandler<RT> handler)
public static <T> PolymorphicDispatcher<T> createForSingleTarget(java.lang.String methodName, java.lang.Object singleTarget)
public static <T> PolymorphicDispatcher<T> createForSingleTarget(java.lang.String methodName, int min, int max, java.lang.Object singleTarget)
public static <T> PolymorphicDispatcher<T> createForSingleTarget(com.google.common.base.Predicate<java.lang.reflect.Method> methodFilter, java.lang.Object singleTarget)
public static <T> PolymorphicDispatcher<T> createForVarTarget(java.lang.String methodName, java.lang.Object... targets)
protected int compare(PolymorphicDispatcher.MethodDesc o1, PolymorphicDispatcher.MethodDesc o2)
public RT invoke(java.lang.Object... params)
protected RT handleNoSuchMethod(java.lang.Object... params)
protected RT handleAmbigousMethods(java.util.List<PolymorphicDispatcher.MethodDesc> result, java.lang.Object... params)
protected java.lang.Class<?> getDefaultClass(int paramIndex)
Void.class
protected PolymorphicDispatcher.MethodDesc createMethodDesc(java.lang.Object target, java.lang.reflect.Method method)