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

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

Introduction

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

Prototype

public String getVarValue(String mainKey) 

Source Link

Document

Retrieve a variable's value.

Usage

From source file:org.seasar.struts.validator.FieldChecks.java

/**
 * Checks if the field's length of byte is greater than or equal to the
 * minimum value. A <code>Null</code> will be considered an error.
 * /*  w w  w.  j  av  a2 s. c  o  m*/
 * @param bean
 *            The bean validation is being performed on.
 * @param validatorAction
 *            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 validator
 *            The <code>Validator</code> instance, used to access other
 *            field values.
 * @param request
 *            Current request object.
 * @return True if stated conditions met.
 */
public static boolean validateMinByteLength(Object bean, ValidatorAction validatorAction, Field field,
        ActionMessages errors, Validator validator, HttpServletRequest request) {

    String value = toString(bean, field);

    if (!GenericValidator.isBlankOrNull(value)) {
        try {
            int min = parseInt(field.getVarValue("minbytelength"));
            String charset = field.getVarValue("charset");

            if (!GenericValidator.minByteLength(value, min, charset)) {
                addError(errors, field, validator, validatorAction, request);
                return false;
            }
        } catch (Exception e) {
            addError(errors, field, validator, validatorAction, request);
            return false;
        }
    }

    return true;
}

From source file:org.seasar.struts.validator.S2FieldChecks.java

/**
 * ??????????/*  w  w  w  . j a v a  2s.c om*/
 * 
 * @param bean
 *            JavaBeans
 * @param validatorAction
 *            ?
 * @param field
 *            
 * @param errors
 *            ?
 * @param validator
 *            ?
 * @param request
 *            
 * @return ??OK????
 */
public static boolean validateMaxByteLength(Object bean, ValidatorAction validatorAction, Field field,
        ActionMessages errors, Validator validator, HttpServletRequest request) {
    String value = getValueAsString(bean, field);
    if (!GenericValidator.isBlankOrNull(value)) {
        try {
            int max = Integer.parseInt(field.getVarValue("maxbytelength"));
            String charset = field.getVarValue("charset");
            if (!S2GenericValidator.maxByteLength(value, max, charset)) {
                addError(errors, field, validator, validatorAction, request);
                return false;
            }
        } catch (Exception e) {
            addError(errors, field, validator, validatorAction, request);
            return false;
        }
    }
    return true;
}

From source file:org.seasar.struts.validator.S2FieldChecks.java

/**
 * ???????????//w  w  w  .j  a  v a  2s .  c om
 * 
 * @param bean
 *            JavaBeans
 * @param validatorAction
 *            ?
 * @param field
 *            
 * @param errors
 *            ?
 * @param validator
 *            ?
 * @param request
 *            
 * @return ??OK????
 */
public static boolean validateMinByteLength(Object bean, ValidatorAction validatorAction, Field field,
        ActionMessages errors, Validator validator, HttpServletRequest request) {
    String value = getValueAsString(bean, field);
    if (!GenericValidator.isBlankOrNull(value)) {
        try {
            int min = Integer.parseInt(field.getVarValue("minbytelength"));
            String charset = field.getVarValue("charset");
            if (!S2GenericValidator.minByteLength(value, min, charset)) {
                addError(errors, field, validator, validatorAction, request);
                return false;
            }
        } catch (Exception e) {
            addError(errors, field, validator, validatorAction, request);
            return false;
        }
    }
    return true;
}

From source file:org.seasar.struts.validator.S2FieldChecks.java

/**
 * ???????????//from   w w  w. jav a2 s  . c o m
 * 
 * @param bean
 *            JavaBeans
 * @param validatorAction
 *            ?
 * @param field
 *            
 * @param errors
 *            ?
 * @param validator
 *            ?
 * @param request
 *            
 * @return ??OK????
 */
public static boolean validateLongRange(Object bean, ValidatorAction validatorAction, Field field,
        ActionMessages errors, Validator validator, HttpServletRequest request) {
    String value = getValueAsString(bean, field);
    if (!GenericValidator.isBlankOrNull(value)) {
        try {
            long longValue = Long.parseLong(value);
            long min = Long.parseLong(field.getVarValue("min"));
            long max = Long.parseLong(field.getVarValue("max"));
            if (!GenericValidator.isInRange(longValue, min, max)) {
                addError(errors, field, validator, validatorAction, request);
                return false;
            }
        } catch (Exception e) {
            addError(errors, field, validator, validatorAction, request);
            return false;
        }
    }
    return true;
}

From source file:org.sgrp.singer.validator.ArrayFieldChecks.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   w  w  w  . j a v a2 s .  c  o  m*/
 * @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 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, ActionMessages errors,
        org.apache.commons.validator.Validator validator, HttpServletRequest request) {

    Object form = validator.getParameterValue(org.apache.commons.validator.Validator.BEAN_PARAM);
    String[] value = null;
    boolean required = false;

    if (isStringArray(bean)) {
        value = (String[]) bean;
    } else {
        value = new String[0];
    }

    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(FIELD_TEST_NULL)) {
            if ((dependVal != null) && (dependVal.length() > 0)) {
                thisRequired = false;
            } else {
                thisRequired = true;
            }
        }

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

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

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

        i++;
    }

    if (required) {

        for (i = 0; i < value.length; i++) {
            if (GenericValidator.isBlankOrNull(value[i])) {
                errors.add(field.getKey(), Resources.getActionMessage(request, va, field));

                return false;

            }
        }
    }
    return true;
}

From source file:org.sgrp.singer.validator.ArrayFieldChecks.java

/**
 * Checks for each value if it matches the regular expression in the field's mask attribute.
 *
 * @param bean The bean validation is being performed on.
 * @param va The <code>ValidatorAction</code> that is currently being
 * performed.//ww  w  . ja  v  a  2  s  .c  om
 * @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 true if field matches mask, false otherwise.
 */
public static boolean validateMask(Object bean, ValidatorAction va, Field field, ActionMessages errors,
        HttpServletRequest request) {

    String mask = field.getVarValue("mask");
    String[] value = null;
    if (isStringArray(bean)) {
        value = (String[]) bean;
    } else {
        value = new String[0];
    }

    try {
        for (int i = 0; i < value.length; i++) {
            if (!GenericValidator.isBlankOrNull(value[i]) && !GenericValidator.matchRegexp(value[i], mask)) {

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

                return false;
            }
        }
    } catch (Exception e) {
        log.error(e.getMessage(), e);
    }
    return true;
}

From source file:org.sgrp.singer.validator.ArrayFieldChecks.java

/**
 *  Checks if the field is a valid date. If the field has a datePattern variable,
 *  that will be used to format <code>java.text.SimpleDateFormat</code>. If the
 *  field has a datePatternStrict variable, that will be used to format <code>java.text.SimpleDateFormat</code>
 *  and the length will be checked so '2/12/1999' will not pass validation with
 *  the format 'MM/dd/yyyy' because the month isn't two digits. If no datePattern
 *  variable is specified, then the field gets the DateFormat.SHORT format for
 *  the locale. The setLenient method is set to <code>false</code> for all variations.
 *
 * @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./*w  w  w .ja va2  s.co  m*/
 * @param  errors   The <code>ActionMessages</code> object to add errors to if any
 *      validation errors occur.
 * @param  request  Current request object.
 * @return true if valid, false otherwise.
 */
public static Object[] validateDate(Object bean, ValidatorAction va, Field field, ActionMessages errors,
        HttpServletRequest request) {

    String[] value = null;
    if (isStringArray(bean)) {
        value = (String[]) bean;
    } else {
        value = new String[0];
    }
    Object[] result = new Object[value.length];

    String datePattern = field.getVarValue("datePattern");
    String datePatternStrict = field.getVarValue("datePatternStrict");
    Locale locale = RequestUtils.getUserLocale(request, null);

    for (int i = 0; i < value.length; i++) {
        if (GenericValidator.isBlankOrNull(value[i])) {
            result[i] = Boolean.TRUE;
        }

        try {
            if (datePattern != null && datePattern.length() > 0) {
                result[i] = GenericTypeValidator.formatDate(value[i], datePattern, false);
            } else if (datePatternStrict != null && datePatternStrict.length() > 0) {
                result[i] = GenericTypeValidator.formatDate(value[i], datePatternStrict, true);
            } else {
                result[i] = GenericTypeValidator.formatDate(value[i], locale);
            }
        } catch (Exception e) {
            log.error(e.getMessage(), e);
        }

        if (result[i] == null) {
            errors.add(field.getKey(), Resources.getActionMessage(request, va, field));
            result[i] = Boolean.FALSE;
        }
    }
    return result;
}

From source file:org.sgrp.singer.validator.ArrayFieldChecks.java

/**
 * Checks if a fields value is within a range (min &amp; max specified in the
 * vars attribute)./*from   w  w w. j av  a2s .  c  o  m*/
 *
 * @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 True if in range, false otherwise.
 */
public static boolean validateIntRange(Object bean, ValidatorAction va, Field field, ActionMessages errors,
        HttpServletRequest request) {

    String[] value = null;
    if (isStringArray(bean)) {
        value = (String[]) bean;
    } else {
        value = new String[0];
    }
    for (int i = 0; i < value.length; i++) {
        if (!GenericValidator.isBlankOrNull(value[i])) {
            try {
                int intValue = Integer.parseInt(value[i]);
                int min = Integer.parseInt(field.getVarValue("min"));
                int max = Integer.parseInt(field.getVarValue("max"));

                if (!GenericValidator.isInRange(intValue, min, max)) {
                    errors.add(field.getKey(), Resources.getActionMessage(request, va, field));

                    return false;
                }
            } catch (Exception e) {
                errors.add(field.getKey(), Resources.getActionMessage(request, va, field));
                return false;
            }
        }
    }

    return true;
}

From source file:org.sgrp.singer.validator.ArrayFieldChecks.java

/**
 *  Checks if a fields value is within a range (min &amp; max specified in the
 *  vars attribute).//  ww  w . java  2s.c o  m
 *
 * @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          True if in range, false otherwise.
 */
public static boolean validateDoubleRange(Object bean, ValidatorAction va, Field field, ActionMessages errors,
        HttpServletRequest request) {

    String[] value = null;
    if (isStringArray(bean)) {
        value = (String[]) bean;
    } else {
        value = new String[0];
    }
    for (int i = 0; i < value.length; i++) {
        if (!GenericValidator.isBlankOrNull(value[i])) {
            try {
                double doubleValue = Double.parseDouble(value[i]);
                double min = Double.parseDouble(field.getVarValue("min"));
                double max = Double.parseDouble(field.getVarValue("max"));

                if (!GenericValidator.isInRange(doubleValue, min, max)) {
                    errors.add(field.getKey(), Resources.getActionMessage(request, va, field));

                    return false;
                }
            } catch (Exception e) {
                errors.add(field.getKey(), Resources.getActionMessage(request, va, field));
                return false;
            }
        }
    }

    return true;
}

From source file:org.sgrp.singer.validator.ArrayFieldChecks.java

/**
 *  Checks if the field's length is less than or equal to the maximum value.
 *  A <code>Null</code> will be considered an error.
 *
 * @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./*from www  . j  ava 2 s . c  o m*/
 * @param  errors   The <code>ActionMessages</code> object to add errors to if any
 *      validation errors occur.
 * @param  request  Current request object.
 * @return True if stated conditions met.
 */
public static boolean validateMaxLength(Object bean, ValidatorAction va, Field field, ActionMessages errors,
        HttpServletRequest request) {

    String[] value = null;
    if (isStringArray(bean)) {
        value = (String[]) bean;
    } else {
        value = new String[0];
    }

    for (int i = 0; i < value.length; i++) {
        if (value[i] != null) {
            try {
                int max = Integer.parseInt(field.getVarValue("maxlength"));

                if (!GenericValidator.maxLength(value[i], max)) {
                    errors.add(field.getKey(), Resources.getActionMessage(request, va, field));

                    return false;
                }
            } catch (Exception e) {
                errors.add(field.getKey(), Resources.getActionMessage(request, va, field));
                return false;
            }
        }
    }
    return true;
}