boolean applyArgoController(Class<?> clazz, Pattern controllerPattern) { return ArgoController.class.isAssignableFrom(clazz) && controllerPattern.matcher(clazz.getName()).matches() && !Modifier.isInterface(clazz.getModifiers()) && !Modifier.isAbstract(clazz.getModifiers()) && Modifier.isPublic(clazz.getModifiers()); }