protected static boolean isMonitored(MethodNode mn) { if(ASM.isAnnotationPresent(mn, Monitored.class)) { return true; } if(ASM.isConstructor(mn) || ASM.isStaticInit(mn)) { return false; } if(Modifier.isStatic(mn.access)) { return false; } String name = mn.name; if(name.startsWith("get") && name.length() > 3 && !ASM.hasArgument(mn)) { return false; } if(name.startsWith("is") && name.length() > 2 && !ASM.hasArgument(mn)) { return false; } if(name.startsWith("set") && name.length() > 3 && ASM.getArgumentSize(mn) == 1) { return false; } return true; }