public Object monitorMethod(final ProceedingJoinPoint pjp) throws Throwable {
final MonitorMethod annotation = getAnnotation(pjp);
Monitor monitor = monitorRegistry.getMonitor(annotation.monitorName());
if (monitor == null) {
throw new IllegalArgumentException("The monitor named " + annotation.monitorName() + " is not defined.");
}
if (!(monitor instanceof PassiveMethodMonitor)) {
throw new IllegalArgumentException("The monitor named " + annotation.monitorName() + " is not a method monitor (passive or active).");