/** * Reads action path from the action method. */ protected String[] readMethodActionPath(final String methodName, final ActionAnnotationValues annotationValues, final ActionConfig actionConfig) { // read annotation String methodActionPath = annotationValues != null ? annotationValues.value() : null; if (methodActionPath == null) { methodActionPath = methodName; } else { if (methodActionPath.equals(Action.NONE)) { return ArraysUtil.array(null, null); } } // check for defaults for (String path : actionConfig.getActionMethodNames()) { if (methodActionPath.equals(path)) { methodActionPath = null; break; } } return ArraysUtil.array(methodName, methodActionPath); }
protected ActionFilter[] parseActionFilters(final Class<?> actionClass, final Method actionMethod, final ActionConfig actionConfig) { Class<? extends ActionFilter>[] filterClasses = readActionFilters(actionMethod); if (filterClasses == null) { filterClasses = readActionFilters(actionClass); } if (filterClasses == null) { filterClasses = actionConfig.getFilters(); } return filtersManager.resolveAll(filterClasses); }
protected ActionInterceptor[] parseActionInterceptors(final Class<?> actionClass, final Method actionMethod, final ActionConfig actionConfig) { Class<? extends ActionInterceptor>[] interceptorClasses = readActionInterceptors(actionMethod); if (interceptorClasses == null) { interceptorClasses = readActionInterceptors(actionClass); } if (interceptorClasses == null) { interceptorClasses = actionConfig.getInterceptors(); } return interceptorsManager.resolveAll(interceptorClasses); }
System.out.println("-------"); for (ActionConfig ac : actions) { if (ac.isInitialized()) { System.out.print("[x] "); } else { System.out.print("[ ] "); System.out.println(ac.actionPath + " -> " + ac.getActionString());
boolean strip = cfg.getActionPathExtension() != null; // don't strip if ext == null if ((strip == true) && madvocConfig.strictExtensionStripForResultPath) { if (cfg.isPathEndsWithExtension() == false) { // don't strip if ext is not eq defined strip = false;
@Override public String toString() { return "action: " + actionPath + (actionMethod == null ? "" : '#' + actionMethod) + " --> " + getActionString(); }
/** * Parses action class and method and creates {@link ActionDefinition parsed action definition}. */ public ActionDefinition parseActionDefinition(final Class<?> actionClass, final Method actionMethod) { final ActionAnnotationValues annotationValues = detectActionAnnotationValues(actionMethod); final ActionConfig actionConfig = resolveActionConfig(annotationValues); final String[] packageActionNames = readPackageActionPath(actionClass); final String[] classActionNames = readClassActionPath(actionClass); final String[] methodActionNames = readMethodActionPath(actionMethod.getName(), annotationValues, actionConfig); final String method = readMethodHttpMethod(actionMethod); final ActionNames actionNames = new ActionNames(packageActionNames, classActionNames, methodActionNames, method); final ActionNamingStrategy namingStrategy; try { namingStrategy = ClassUtil.newInstance(actionConfig.getNamingStrategy()); contextInjectorComponent.injectContext(namingStrategy); } catch (Exception ex) { throw new MadvocException(ex); } return namingStrategy.buildActionDef(actionClass, actionMethod, actionNames); }
final Class<? extends ActionResult> defaultActionResult = actionConfig.getActionResult();
/** * Creates new instance of action configuration. */ protected ActionConfig createActionConfig( Class actionClass, Method actionClassMethod, Class<? extends ActionInterceptor>[] interceptorClasses, String actionPath, String actionMethod, String actionPathExtension) { return new ActionConfig( actionClass, actionClassMethod, interceptorClasses, actionPath, actionMethod, actionPathExtension); }
public void inject(Object target, ActionRequest actionRequest) { ActionConfig config = actionRequest.getActionConfig(); ActionConfigSet set = config.getActionConfigSet(); if (set.actionPathMacros== null) { return; } String[] actionPathChunks = actionRequest.getActionPathChunks(); for (int i = 0; i < set.actionPathMacros.length; i++) { ActionConfigSet.PathMacro macro = set.actionPathMacros[i]; int ndx = macro.ndx; String name = macro.name; String value = actionPathChunks[ndx]; int leftLen = macro.left.length(); int rightLen = macro.right.length(); if (leftLen + rightLen > 0) { // there is additional prefix and/or suffix value = value.substring(leftLen, value.length() - rightLen); } BeanUtil.setDeclaredPropertyForcedSilent(target, name, value); } } }
/** * Initializes action configuration on first use. Resolves all interceptors and injects context parameters. */ protected void initializeActionConfig(ActionConfig cfg) { Class<? extends ActionInterceptor>[] interceptorClasses = cfg.interceptorClasses; if (interceptorClasses == null) { interceptorClasses = madvocConfig.getDefaultInterceptors(); } cfg.interceptors = interceptorsManager.resolveAll(interceptorClasses); for (ActionInterceptor interceptor : cfg.interceptors) { if (interceptor.isInitialized() == false) { initializeInterceptor(interceptor); } } cfg.initialized(); }
/** * Prints out the message. User can override this method and modify the way * the message is printed. */ protected void printBefore(ActionRequest request) { StringBuilder message = new StringBuilder("----->"); message.append(request.getActionPath()).append(" [").append(request.getActionConfig().getActionString()).append(']'); out(message.toString()); }