Example usage for org.apache.commons.validator Validator getParameterValue

List of usage examples for org.apache.commons.validator Validator getParameterValue

Introduction

In this page you can find the example usage for org.apache.commons.validator Validator getParameterValue.

Prototype

public Object getParameterValue(String parameterClassName) 

Source Link

Document

Returns the value of the specified parameter that will be used during the processing of validations.

Usage

From source file:org.springmodules.commons.validator.validwhen.ValidWhen.java

/**
 * Checks if the field matches the boolean expression specified in
 * <code>test</code> parameter.
 *
 * @param bean The bean validation is being performed on.
 *
 * @param va The <code>ValidatorAction</code> that is currently being
 *      performed.// ww  w.j a  v  a  2s  .c  om
 *
 * @param field The <code>Field</code> object associated with the current
 *      field being validated.
 *
 * @param errors The <code>Errors</code> object to add errors to if any
 *      validation errors occur.
 *
 * @param request Current request object.
 *
 * @return <code>true</code> if meets stated requirements,
 *      <code>false</code> otherwise.
 */
public static boolean validateValidWhen(Object bean, ValidatorAction va, Field field, Errors errors,
        Validator validator, HttpServletRequest request) {

    Object form = validator.getParameterValue(Validator.BEAN_PARAM);
    String value = null;
    boolean valid = false;
    int index = -1;

    if (field.isIndexed()) {
        String key = field.getKey();

        final int leftBracket = key.indexOf("[");
        final int rightBracket = key.indexOf("]");

        if ((leftBracket > -1) && (rightBracket > -1)) {
            index = Integer.parseInt(key.substring(leftBracket + 1, rightBracket));
        }
    }

    if (isString(bean)) {
        value = (String) bean;
    } else {
        value = ValidatorUtils.getValueAsString(bean, field.getProperty());
    }

    String test = field.getVarValue("test");
    if (test == null) {
        String msg = "ValidWhen Error 'test' parameter is missing for field ' " + field.getKey() + "'";
        errors.rejectValue(field.getKey(), msg);
        log.error(msg);
        return false;
    }

    // Create the Lexer
    ValidWhenLexer lexer = null;
    try {
        lexer = new ValidWhenLexer(new StringReader(test));
    } catch (Exception ex) {
        String msg = "ValidWhenLexer Error for field ' " + field.getKey() + "' - " + ex;
        errors.rejectValue(field.getKey(), msg);
        log.error(msg);
        log.debug(msg, ex);
        return false;
    }

    // Create the Parser
    ValidWhenParser parser = null;
    try {
        parser = new ValidWhenParser(lexer);
    } catch (Exception ex) {
        String msg = "ValidWhenParser Error for field ' " + field.getKey() + "' - " + ex;
        errors.rejectValue(field.getKey(), msg);
        log.error(msg);
        log.debug(msg, ex);
        return false;
    }

    parser.setForm(form);
    parser.setIndex(index);
    parser.setValue(value);

    try {
        parser.expression();
        valid = parser.getResult();

    } catch (Exception ex) {
        String msg = "ValidWhen Error for field ' " + field.getKey() + "' - " + ex;
        errors.rejectValue(field.getKey(), msg);
        log.error(msg);
        log.debug(msg, ex);

        return false;
    }

    if (!valid) {
        FieldChecks.rejectValue(errors, field, va);
        return false;
    }

    return true;
}

From source file:org.springmodules.validation.commons.FieldChecks.java

/**
 * Checks if the field isn't null based on the values of other fields.
 *
 * @param bean The bean validation is being performed on.
 * @param va The <code>ValidatorAction</code> that is currently being
 * performed./*from ww w. ja  va2s. c  o m*/
 * @param field The <code>Field</code> object associated with the current
 * field being validated.
 * @param errors The <code>Errors</code> object to add errors to if any
 * validation errors occur.
 * @param validator The <code>Validator</code> instance, used to access other
 * field values.
 * -param request
 * Current request object.
 * @return true if meets stated requirements, false otherwise.
 */
public static boolean validateRequiredIf(Object bean, ValidatorAction va, Field field, Errors errors,
        org.apache.commons.validator.Validator validator) {

    Object form = validator.getParameterValue(org.apache.commons.validator.Validator.BEAN_PARAM);

    boolean required = false;

    String value = FieldChecks.extractValue(bean, field);

    int i = 0;
    String fieldJoin = "AND";
    if (!GenericValidator.isBlankOrNull(field.getVarValue("fieldJoin"))) {
        fieldJoin = field.getVarValue("fieldJoin");
    }

    if (fieldJoin.equalsIgnoreCase("AND")) {
        required = true;
    }

    while (!GenericValidator.isBlankOrNull(field.getVarValue("field[" + i + "]"))) {
        String dependProp = field.getVarValue("field[" + i + "]");
        String dependTest = field.getVarValue("fieldTest[" + i + "]");
        String dependTestValue = field.getVarValue("fieldValue[" + i + "]");
        String dependIndexed = field.getVarValue("fieldIndexed[" + i + "]");

        if (dependIndexed == null) {
            dependIndexed = "false";
        }

        String dependVal = null;
        boolean thisRequired = false;
        if (field.isIndexed() && dependIndexed.equalsIgnoreCase("true")) {
            String key = field.getKey();
            if ((key.indexOf("[") > -1) && (key.indexOf("]") > -1)) {
                String ind = key.substring(0, key.indexOf(".") + 1);
                dependProp = ind + dependProp;
            }
        }

        dependVal = ValidatorUtils.getValueAsString(form, dependProp);
        if (dependTest.equals(FieldChecks.FIELD_TEST_NULL)) {
            thisRequired = (dependVal != null) && (dependVal.length() > 0);
        }

        if (dependTest.equals(FieldChecks.FIELD_TEST_NOTNULL)) {
            thisRequired = (dependVal != null) && (dependVal.length() > 0);
        }

        if (dependTest.equals(FieldChecks.FIELD_TEST_EQUAL)) {
            thisRequired = dependTestValue.equalsIgnoreCase(dependVal);
        }

        if (fieldJoin.equalsIgnoreCase("AND")) {
            required = required && thisRequired;
        } else {
            required = required || thisRequired;
        }

        i++;
    }

    if (required) {
        if (GenericValidator.isBlankOrNull(value)) {
            FieldChecks.rejectValue(errors, field, va);
            return false;
        } else {
            return true;
        }
    }
    return true;
}

From source file:org.springmodules.validation.commons.FieldChecks.java

/**
 * Checks if the field matches the boolean expression specified in
 * <code>test</code> parameter.
 *
 * @param bean The bean validation is being performed on.
 * @param va The <code>ValidatorAction</code> that is currently being
 * performed./* w w w  .j a va 2s  .c o m*/
 * @param field The <code>Field</code> object associated with the current
 * field being validated.
 * @param errors The <code>Errors</code> object to add errors to if any
 * validation errors occur.
 * @return <code>true</code> if meets stated requirements,
 *         <code>false</code> otherwise.
 */
public static boolean validateValidWhen(Object bean, ValidatorAction va, Field field, Errors errors,
        Validator validator) {

    Object form = validator.getParameterValue(Validator.BEAN_PARAM);
    String value = null;
    boolean valid = false;
    int index = -1;

    if (field.isIndexed()) {
        String key = field.getKey();

        final int leftBracket = key.indexOf("[");
        final int rightBracket = key.indexOf("]");

        if ((leftBracket > -1) && (rightBracket > -1)) {
            index = Integer.parseInt(key.substring(leftBracket + 1, rightBracket));
        }
    }

    if (isString(bean)) {
        value = (String) bean;
    } else {
        value = ValidatorUtils.getValueAsString(bean, field.getProperty());
    }

    String test = field.getVarValue("test");
    if (test == null) {
        String msg = "ValidWhen Error 'test' parameter is missing for field ' " + field.getKey() + "'";
        errors.rejectValue(field.getKey(), msg);
        log.error(msg);
        return false;
    }

    // Create the Lexer
    ValidWhenLexer lexer = null;
    try {
        lexer = new ValidWhenLexer(new StringReader(test));
    } catch (Exception ex) {
        String msg = "ValidWhenLexer Error for field ' " + field.getKey() + "' - " + ex;
        errors.rejectValue(field.getKey(), msg);
        log.error(msg);
        log.debug(msg, ex);
        return false;
    }

    // Create the Parser
    ValidWhenParser parser = null;
    try {
        parser = new ValidWhenParser(lexer);
    } catch (Exception ex) {
        String msg = "ValidWhenParser Error for field ' " + field.getKey() + "' - " + ex;
        errors.rejectValue(field.getKey(), msg);
        log.error(msg);
        log.debug(msg, ex);
        return false;
    }

    parser.setForm(form);
    parser.setIndex(index);
    parser.setValue(value);

    try {
        parser.expression();
        valid = parser.getResult();

    } catch (Exception ex) {
        String msg = "ValidWhen Error for field ' " + field.getKey() + "' - " + ex;
        errors.rejectValue(field.getKey(), msg);
        log.error(msg);
        log.debug(msg, ex);

        return false;
    }

    if (!valid) {
        rejectValue(errors, field, va);
        return false;
    }

    return true;
}

From source file:us.mn.state.health.lims.common.util.validator.ValidWhen.java

/**
 * Checks if the field matches the boolean expression specified in
 * <code>test</code> parameter.
 * /*from   w  w w. j  a va2  s . c  om*/
 * @param bean
 *            The bean validation is being performed on.
 * 
 * @param va
 *            The <code>ValidatorAction</code> that is currently being
 *            performed.
 * 
 * @param field
 *            The <code>Field</code> object associated with the current
 *            field being validated.
 * 
 * @param errors
 *            The <code>ActionMessages</code> object to add errors to if
 *            any validation errors occur.
 * 
 * @param request
 *            Current request object.
 * 
 * @return <code>true</code> if meets stated requirements,
 *         <code>false</code> otherwise.
 */
public static boolean validateValidWhen(Object bean, ValidatorAction va, Field field, ActionMessages errors,
        Validator validator, HttpServletRequest request) {

    Object form = validator.getParameterValue(Validator.BEAN_PARAM);
    String value = null;
    boolean valid = false;
    int index = -1;

    if (field.isIndexed()) {
        String key = field.getKey();

        final int leftBracket = key.indexOf("[");
        final int rightBracket = key.indexOf("]");

        if ((leftBracket > -1) && (rightBracket > -1)) {
            index = Integer.parseInt(key.substring(leftBracket + 1, rightBracket));
        }
    }

    if (isString(bean)) {
        value = (String) bean;
    } else {
        value = ValidatorUtils.getValueAsString(bean, field.getProperty());
    }

    String test = field.getVarValue("test");
    if (test == null) {
        String msg = "ValidWhen Error 'test' parameter is missing for field ' " + field.getKey() + "'";
        errors.add(field.getKey(), new ActionMessage(msg, false));
        //bugzilla 2154
        LogEvent.logError("ValidWhen", "validateValidWhen()", msg);
        return false;
    }

    // Create the Lexer
    ValidWhenLexer lexer = null;
    try {
        lexer = new ValidWhenLexer(new StringReader(test));
    } catch (Exception ex) {
        String msg = "ValidWhenLexer Error for field ' " + field.getKey() + "' - " + ex;
        errors.add(field.getKey(), new ActionMessage(msg + " - " + ex, false));
        //bugzilla 2154
        LogEvent.logError("ValidWhen", "validateValidWhen()", ex.toString());
        LogEvent.logDebug("ValidWhen", "validateValidWhen", msg);
        return false;
    }

    // Create the Parser
    ValidWhenParser parser = null;
    try {
        parser = new ValidWhenParser(lexer);
    } catch (Exception ex) {
        String msg = "ValidWhenParser Error for field ' " + field.getKey() + "' - " + ex;
        errors.add(field.getKey(), new ActionMessage(msg, false));
        //bugzilla 2154
        LogEvent.logError("ValidWhen", "validateValidWhen()", ex.toString());
        LogEvent.logDebug("ValidWhen", "validateValidWhen", msg);
        return false;
    }
    parser.setForm(form);
    parser.setIndex(index);
    parser.setValue(value);

    try {
        parser.expression();
        valid = parser.getResult();

    } catch (Exception ex) {

        // errors.add(
        // field.getKey(),
        // Resources.getActionMessage(validator, request, va, field));

        String msg = "ValidWhen Error for field ' " + field.getKey() + "' - " + ex;
        errors.add(field.getKey(), new ActionMessage(msg, false));
        //bugzilla 2154
        LogEvent.logError("ValidWhen", "validateValidWhen()", ex.toString());
        LogEvent.logDebug("ValidWhen", "validateValidWhen", msg);

        return false;
    }

    if (!valid) {
        errors.add(field.getKey(), Resources.getActionMessage(validator, request, va, field));

        return false;
    }

    return true;
}