/** * Registers new Madvoc component. */ protected void acceptMadvocComponentClass(final Class componentClass) { if (componentClass == null) { return; } if (!checkClass(componentClass)) { return; } madvocComponents.add(() -> madvocContainer.registerComponent(componentClass)); }
/** * Builds action runtime configuration on founded action class. * Action classes are annotated with {@link jodd.madvoc.meta.MadvocAction} annotation. */ @SuppressWarnings("NonConstantStringShouldBeStringBuffer") protected void acceptActionClass(final Class<?> actionClass) { if (actionClass == null) { return; } if (!checkClass(actionClass)) { return; } if (actionClass.getAnnotation(MadvocAction.class) == null) { return; } ClassDescriptor cd = ClassIntrospector.get().lookup(actionClass); MethodDescriptor[] allMethodDescriptors = cd.getAllMethodDescriptors(); for (MethodDescriptor methodDescriptor : allMethodDescriptors) { if (!methodDescriptor.isPublic()) { continue; } // just public methods final Method method = methodDescriptor.getMethod(); final boolean hasAnnotation = actionConfigManager.hasActionAnnotationOn(method); if (!hasAnnotation) { continue; } webappConfigurations.add(() -> actionsManager.registerAction(actionClass, method, null)); } }