Polishing

(cherry picked from commit 5e7a8b275d)
This commit is contained in:
Juergen Hoeller
2018-11-05 19:33:24 +01:00
parent 561511f66c
commit 4bd95663f9
3 changed files with 18 additions and 18 deletions

View File

@@ -47,6 +47,7 @@ import org.springframework.core.ResolvableType;
import org.springframework.core.annotation.AnnotatedElementUtils;
import org.springframework.core.annotation.AnnotationUtils;
import org.springframework.core.annotation.SynthesizingMethodParameter;
import org.springframework.lang.Nullable;
import org.springframework.objenesis.ObjenesisException;
import org.springframework.objenesis.SpringObjenesis;
import org.springframework.util.Assert;
@@ -120,6 +121,7 @@ import static java.util.stream.Collectors.*;
* </pre>
*
* @author Rossen Stoyanchev
* @since 5.0
*/
public class ResolvableMethod {
@@ -133,7 +135,7 @@ public class ResolvableMethod {
private ResolvableMethod(Method method) {
Assert.notNull(method, "method is required");
Assert.notNull(method, "Method is required");
this.method = method;
}
@@ -202,14 +204,14 @@ public class ResolvableMethod {
return new ArgResolver().annotNotPresent(annotationTypes);
}
@Override
public String toString() {
return "ResolvableMethod=" + formatMethod();
}
private String formatMethod() {
return (this.method().getName() +
return (method().getName() +
Arrays.stream(this.method.getParameters())
.map(this::formatParameter)
.collect(joining(",\n\t", "(\n\t", "\n)")));
@@ -246,7 +248,7 @@ public class ResolvableMethod {
/**
* Main entry point providing access to a {@code ResolvableMethod} builder.
* Create a {@code ResolvableMethod} builder for the given handler class.
*/
public static <T> Builder<T> on(Class<T> objectClass) {
return new Builder<>(objectClass);
@@ -262,13 +264,11 @@ public class ResolvableMethod {
private final List<Predicate<Method>> filters = new ArrayList<>(4);
private Builder(Class<?> objectClass) {
Assert.notNull(objectClass, "Class must not be null");
this.objectClass = objectClass;
}
private void addFilter(String message, Predicate<Method> filter) {
this.filters.add(new LabeledPredicate<>(message, filter));
}
@@ -277,7 +277,7 @@ public class ResolvableMethod {
* Filter on methods with the given name.
*/
public Builder<T> named(String methodName) {
addFilter("methodName=" + methodName, m -> m.getName().equals(methodName));
addFilter("methodName=" + methodName, method -> method.getName().equals(methodName));
return this;
}
@@ -384,7 +384,6 @@ public class ResolvableMethod {
return new ResolvableMethod(method);
}
// Build & resolve shortcuts...
/**
@@ -438,7 +437,6 @@ public class ResolvableMethod {
return returning(returnType).build().returnType();
}
@Override
public String toString() {
return "ResolvableMethod.Builder[\n" +
@@ -452,6 +450,7 @@ public class ResolvableMethod {
}
}
/**
* Predicate with a descriptive label.
*/
@@ -461,7 +460,6 @@ public class ResolvableMethod {
private final Predicate<T> delegate;
private LabeledPredicate(String label, Predicate<T> delegate) {
this.label = label;
this.delegate = delegate;
@@ -494,6 +492,7 @@ public class ResolvableMethod {
}
}
/**
* Resolver for method arguments.
*/
@@ -501,7 +500,6 @@ public class ResolvableMethod {
private final List<Predicate<MethodParameter>> filters = new ArrayList<>(4);
@SafeVarargs
private ArgResolver(Predicate<MethodParameter>... filter) {
this.filters.addAll(Arrays.asList(filter));
@@ -593,17 +591,18 @@ public class ResolvableMethod {
}
}
private static class MethodInvocationInterceptor
implements org.springframework.cglib.proxy.MethodInterceptor, MethodInterceptor {
private Method invokedMethod;
Method getInvokedMethod() {
return this.invokedMethod;
}
@Override
@Nullable
public Object intercept(Object object, Method method, Object[] args, MethodProxy proxy) {
if (ReflectionUtils.isObjectMethod(method)) {
return ReflectionUtils.invokeMethod(method, object, args);
@@ -615,6 +614,7 @@ public class ResolvableMethod {
}
@Override
@Nullable
public Object invoke(org.aopalliance.intercept.MethodInvocation inv) throws Throwable {
return intercept(inv.getThis(), inv.getMethod(), inv.getArguments(), null);
}