package tc.oc.commons.core.reflect; import java.lang.reflect.Method; import javax.annotation.Nullable; /** * Signature of a method does not meet some requirement */ public class MethodFormException extends ElementFormException { private final Method method; public MethodFormException(Method method) { this(method, null, null); } public MethodFormException(Method method, String message) { this(method, message, null); } public MethodFormException(Method method, Throwable cause) { this(method, null, cause); } public MethodFormException(Method method, @Nullable String message, @Nullable Throwable cause) { super(makeMessage(method, message), cause); this.method = method; } private static String makeMessage(Method method, @Nullable String message) { String text = "Invalid form for method " + method.getDeclaringClass().getName() + "#" + method.getName(); if(message != null) { text += ": " + message; } return text; } public Method getMethod() { return method; } }