Example usage for org.apache.commons.validator Field getDependencyList

List of usage examples for org.apache.commons.validator Field getDependencyList

Introduction

In this page you can find the example usage for org.apache.commons.validator Field getDependencyList.

Prototype

public List<String> getDependencyList() 

Source Link

Document

Gets an unmodifiable List of the dependencies in the same order they were defined in parameter passed to the setDepends() method.

Usage

From source file:net.jawr.web.resource.bundle.generator.validator.CommonsValidatorGenerator.java

@SuppressWarnings("unchecked")
private List<ValidatorAction> createActionList(ValidatorResources resources, Form form) {
    List<String> actionMethods = new ArrayList<String>();

    Iterator<Field> itFields = form.getFields().iterator();

    while (itFields.hasNext()) {
        Field field = itFields.next();

        for (Iterator<String> x = field.getDependencyList().iterator(); x.hasNext();) {
            String o = x.next();/*w  w  w  .j av  a2s . co m*/

            if ((o != null) && !actionMethods.contains(o)) {
                actionMethods.add(o);
            }
        }
    }

    List<ValidatorAction> actions = new ArrayList<ValidatorAction>();

    // Create list of ValidatorActions based on actionMethods
    Iterator<String> iterator = actionMethods.iterator();

    while (iterator.hasNext()) {
        String depends = iterator.next();
        ValidatorAction va = resources.getValidatorAction(depends);

        // throw nicer NPE for easier debugging
        if (va == null) {
            throw new NullPointerException(
                    "Depends string \"" + depends + "\" was not found in validator-rules.xml.");
        }

        if ((va.getJavascript() != null) && (va.getJavascript().length() > 0)) {
            actions.add(va);
        } else {
            iterator.remove();
        }
    }

    Collections.sort(actions, ACTION_COMPARATOR);

    return actions;
}

From source file:org.apache.struts.taglib.html.JavascriptValidatorTag.java

/**
 * Get List of actions for the given Form.
 *
 * @param resources//from  w ww.ja v  a 2s  .c  o  m
 * @param form
 * @return A sorted List of ValidatorAction objects.
 */
private List createActionList(ValidatorResources resources, Form form) {
    List actionMethods = new ArrayList();

    Iterator iterator = form.getFields().iterator();

    while (iterator.hasNext()) {
        Field field = (Field) iterator.next();

        for (Iterator x = field.getDependencyList().iterator(); x.hasNext();) {
            Object o = x.next();

            if ((o != null) && !actionMethods.contains(o)) {
                actionMethods.add(o);
            }
        }
    }

    List actions = new ArrayList();

    // Create list of ValidatorActions based on actionMethods
    iterator = actionMethods.iterator();

    while (iterator.hasNext()) {
        String depends = (String) iterator.next();
        ValidatorAction va = resources.getValidatorAction(depends);

        // throw nicer NPE for easier debugging
        if (va == null) {
            throw new NullPointerException(
                    "Depends string \"" + depends + "\" was not found in validator-rules.xml.");
        }

        if ((va.getJavascript() != null) && (va.getJavascript().length() > 0)) {
            actions.add(va);
        } else {
            iterator.remove();
        }
    }

    Collections.sort(actions, actionComparator);

    return actions;
}

From source file:org.apache.velocity.tools.struts.ValidatorTool.java

/**
 * Get List of actions for the given Form.
 *
 * @param resources the validator resources
 * @param form the form for which the actions are requested
 * @return A sorted List of ValidatorAction objects.
 *//* ww  w.  j ava 2  s  .c om*/
protected List createActionList(ValidatorResources resources, Form form) {
    List actionMethods = new ArrayList();
    // Get List of actions for this Form
    for (Iterator i = form.getFields().iterator(); i.hasNext();) {
        Field field = (Field) i.next();
        for (Iterator x = field.getDependencyList().iterator(); x.hasNext();) {
            Object o = x.next();
            if (o != null && !actionMethods.contains(o)) {
                actionMethods.add(o);
            }
        }
    }

    List actions = new ArrayList();

    // Create list of ValidatorActions based on actionMethods
    for (Iterator i = actionMethods.iterator(); i.hasNext();) {
        String depends = (String) i.next();
        ValidatorAction va = resources.getValidatorAction(depends);

        // throw nicer NPE for easier debugging
        if (va == null) {
            throw new NullPointerException(
                    "Depends string \"" + depends + "\" was not found in validator-rules.xml.");
        }

        String javascript = va.getJavascript();
        if (javascript != null && javascript.length() > 0) {
            actions.add(va);
        } else {
            i.remove();
        }
    }

    Collections.sort(actions, actionComparator);
    return actions;
}

From source file:org.springmodules.validation.commons.taglib.JavascriptValidatorTag.java

/**
 * Render the JavaScript for to perform validations based on the form name.
 *
 * @throws javax.servlet.jsp.JspException if a JSP exception has occurred
 */// ww  w. ja v  a 2  s. c  om
public int doStartTag() throws JspException {
    StringBuffer results = new StringBuffer();

    Locale locale = RequestContextUtils.getLocale((HttpServletRequest) pageContext.getRequest());

    ValidatorResources resources = getValidatorResources();

    Form form = resources.getForm(locale, formName);
    if (form != null) {
        if ("true".equalsIgnoreCase(dynamicJavascript)) {
            MessageSource messages = getMessageSource();

            List lActions = new ArrayList();
            List lActionMethods = new ArrayList();

            // Get List of actions for this Form
            for (Iterator i = form.getFields().iterator(); i.hasNext();) {
                Field field = (Field) i.next();

                for (Iterator x = field.getDependencyList().iterator(); x.hasNext();) {
                    Object o = x.next();

                    if (o != null && !lActionMethods.contains(o)) {
                        lActionMethods.add(o);
                    }
                }
            }

            // Create list of ValidatorActions based on lActionMethods
            for (Iterator i = lActionMethods.iterator(); i.hasNext();) {
                String depends = (String) i.next();
                ValidatorAction va = resources.getValidatorAction(depends);

                // throw nicer NPE for easier debugging
                if (va == null) {
                    throw new NullPointerException(
                            "Depends string \"" + depends + "\" was not found in validator-rules.xml.");
                }

                String javascript = va.getJavascript();
                if (javascript != null && javascript.length() > 0) {
                    lActions.add(va);
                } else {
                    i.remove();
                }
            }

            Collections.sort(lActions, new Comparator() {
                public int compare(Object o1, Object o2) {
                    ValidatorAction va1 = (ValidatorAction) o1;
                    ValidatorAction va2 = (ValidatorAction) o2;

                    if ((va1.getDepends() == null || va1.getDepends().length() == 0)
                            && (va2.getDepends() == null || va2.getDepends().length() == 0)) {
                        return 0;
                    } else if ((va1.getDepends() != null && va1.getDepends().length() > 0)
                            && (va2.getDepends() == null || va2.getDepends().length() == 0)) {
                        return 1;
                    } else if ((va1.getDepends() == null || va1.getDepends().length() == 0)
                            && (va2.getDepends() != null && va2.getDepends().length() > 0)) {
                        return -1;
                    } else {
                        return va1.getDependencyList().size() - va2.getDependencyList().size();
                    }
                }
            });

            String methods = null;
            for (Iterator i = lActions.iterator(); i.hasNext();) {
                ValidatorAction va = (ValidatorAction) i.next();

                if (methods == null) {
                    methods = va.getMethod() + "(form)";
                } else {
                    methods += " && " + va.getMethod() + "(form)";
                }
            }

            results.append(getJavascriptBegin(methods));

            for (Iterator i = lActions.iterator(); i.hasNext();) {
                ValidatorAction va = (ValidatorAction) i.next();
                String jscriptVar = null;
                String functionName = null;

                if (va.getJsFunctionName() != null && va.getJsFunctionName().length() > 0) {
                    functionName = va.getJsFunctionName();
                } else {
                    functionName = va.getName();
                }

                results.append("    function " + functionName + " () { \n");
                for (Iterator x = form.getFields().iterator(); x.hasNext();) {
                    Field field = (Field) x.next();

                    // Skip indexed fields for now until there is a good way to handle
                    // error messages (and the length of the list (could retrieve from scope?))
                    if (field.isIndexed() || field.getPage() != page || !field.isDependency(va.getName())) {

                        continue;
                    }

                    String message = MessageUtils.getMessage(messages, locale, va, field);

                    message = (message != null) ? message : "";

                    jscriptVar = this.getNextVar(jscriptVar);

                    results.append("     this." + jscriptVar + " = new Array(\"" + field.getKey() + "\", \""
                            + message + "\", ");

                    results.append("new Function (\"varName\", \"");

                    Map vars = field.getVars();
                    // Loop through the field's variables.
                    Iterator varsIterator = vars.keySet().iterator();
                    while (varsIterator.hasNext()) {
                        String varName = (String) varsIterator.next();
                        Var var = (Var) vars.get(varName);
                        String varValue = var.getValue();
                        String jsType = var.getJsType();

                        // skip requiredif variables field, fieldIndexed, fieldTest, fieldValue
                        if (varName.startsWith("field")) {
                            continue;
                        }

                        if (Var.JSTYPE_INT.equalsIgnoreCase(jsType)) {
                            results.append("this." + varName + "="
                                    + ValidatorUtils.replace(varValue, "\\", "\\\\") + "; ");
                        } else if (Var.JSTYPE_REGEXP.equalsIgnoreCase(jsType)) {
                            results.append("this." + varName + "=/"
                                    + ValidatorUtils.replace(varValue, "\\", "\\\\") + "/; ");
                        } else if (Var.JSTYPE_STRING.equalsIgnoreCase(jsType)) {
                            results.append("this." + varName + "='"
                                    + ValidatorUtils.replace(varValue, "\\", "\\\\") + "'; ");
                            // So everyone using the latest format doesn't need to change their xml files immediately.
                        } else if ("mask".equalsIgnoreCase(varName)) {
                            results.append("this." + varName + "=/"
                                    + ValidatorUtils.replace(varValue, "\\", "\\\\") + "/; ");
                        } else {
                            results.append("this." + varName + "='"
                                    + ValidatorUtils.replace(varValue, "\\", "\\\\") + "'; ");
                        }
                    }

                    results.append(" return this[varName];\"));\n");
                }
                results.append("    } \n\n");
            }
        } else if ("true".equalsIgnoreCase(staticJavascript)) {
            results.append(this.getStartElement());
            if ("true".equalsIgnoreCase(htmlComment)) {
                results.append(htmlBeginComment);
            }
        }
    }

    if ("true".equalsIgnoreCase(staticJavascript)) {
        results.append(getJavascriptStaticMethods(resources));
    }

    if (form != null
            && ("true".equalsIgnoreCase(dynamicJavascript) || "true".equalsIgnoreCase(staticJavascript))) {

        results.append(getJavascriptEnd());
    }

    JspWriter writer = pageContext.getOut();
    try {
        writer.print(results.toString());
    } catch (IOException e) {
        throw new JspException(e.getMessage());
    }

    return (SKIP_BODY);

}

From source file:us.mn.state.health.lims.taglib.JavascriptValidatorTag.java

/**
 * Get List of actions for the given Form.
 * @param resources/*www.  j av a  2s .com*/
 * @param form
 * @return A sorted List of ValidatorAction objects.
 */
private List createActionList(ValidatorResources resources, Form form) {

    List actionMethods = new ArrayList();

    Iterator iterator = form.getFields().iterator();
    while (iterator.hasNext()) {
        Field field = (Field) iterator.next();

        for (Iterator x = field.getDependencyList().iterator(); x.hasNext();) {
            Object o = x.next();

            if (o != null && !actionMethods.contains(o)) {
                actionMethods.add(o);
            }
        }
    }

    List actions = new ArrayList();

    // Create list of ValidatorActions based on actionMethods
    iterator = actionMethods.iterator();
    while (iterator.hasNext()) {
        String depends = (String) iterator.next();
        ValidatorAction va = resources.getValidatorAction(depends);

        // throw nicer NPE for easier debugging
        if (va == null) {
            throw new NullPointerException(
                    "Depends string \"" + depends + "\" was not found in validator-rules.xml.");
        }

        if (va.getJavascript() != null && va.getJavascript().length() > 0) {
            actions.add(va);
        } else {
            iterator.remove();
        }
    }

    Collections.sort(actions, actionComparator);

    return actions;
}