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

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

Introduction

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

Prototype

public String getProperty() 

Source Link

Document

Gets the property name of the field.

Usage

From source file:jp.terasoluna.fw.web.struts.form.FieldChecksEx.java

/**
 * wtB?[hoCg w`FbN?B//  w ww.  java 2  s . c  om
 * 
 * <p>
 * G?[???AG?[????A wG?[?Xg?B G?[?bZ?[WtH?[}bg?A
 * <code>validation-rules.xml</code>L?q?B<br>
 * ?AoCg5??A10 <code>true</code> p???B
 * </p>
 * <h5>validation.xmlL?q</h5>
 * <code><pre>
 * &lt;form name=&quot;/sample&quot;&gt;
 *  ?E?E?E
 *  &lt;field property=&quot;escape&quot;
 *      depends=&quot;byteRange&quot;&gt;
 *    &lt;arg0 key=&quot;sample.escape&quot;/&gt;
 *    &lt;var&gt;
 *      &lt;var-name&gt;maxByte&lt;/var-name&gt;
 *      &lt;var-value&gt;10&lt;/var-value&gt;
 *    &lt;/var&gt;
 *    &lt;var&gt;
 *      &lt;var-name&gt;minByte&lt;/var-name&gt;
 *      &lt;var-value&gt;5&lt;/var-value&gt;
 *    &lt;/var&gt;
 *    &lt;var&gt;
 *      &lt;var-name&gt;encoding&lt;/var-name&gt;
 *      &lt;var-value&gt;Windows-31J&lt;/var-value&gt;
 *    &lt;/var&gt;
 *  &lt;/field&gt;
 *  ?E?E?E
 * &lt;/form&gt;
 * </pre></code>
 * <h5>validation.xml?v&lt;var&gt;vf</h5>
 * <table border="1">
 * <tr>
 * <td><center><b><code>var-name</code></b></center></td>
 * <td><center><b><code>var-value</code></b></center></td>
 * <td><center><b>K?{?</b></center></td>
 * <td><center><b>Tv</b></center></td>
 * </tr>
 * <tr>
 * <td> maxByte </td>
 * <td>?oCg?</td>
 * <td>false</td>
 * <td>oCg??oCg?B ???int^?l?B</td>
 * </tr>
 * <tr>
 * <td> minByte </td>
 * <td>?oCg?</td>
 * <td>false</td>
 * <td>oCg???oCg?B ???0?B</td>
 * </tr>
 * <tr>
 * <td> encoding </td>
 * <td>GR?[fBO</td>
 * <td>false</td>
 * <td>oCg?gpGR?[fBO?B ???VMftHgGR?[fBOgp?B</td>
 * </tr>
 * </table>
 * 
 * @param bean
 *            ??IuWFNg
 * @param va
 *            ValidatorpValidatorAction
 * @param field
 *            tB?[hIuWFNg
 * @param errors
 *            ANVG?[
 * @param validator
 *            ValidatorCX^X
 * @param request
 *            HTTPNGXg
 * @return l? <code>true</code>
 */
public static boolean validateByteRange(Object bean, ValidatorAction va, Field field, ActionMessages errors,
        Validator validator, HttpServletRequest request) {

    // beannull?AG?[?O?o?Atruep?B
    if (bean == null) {
        log.error("bean is null.");
        return true;
    }

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

    // ?lnull?Atruep
    if (GenericValidator.isBlankOrNull(value)) {
        return true;
    }

    // GR?[fBO
    String encoding = field.getVarValue("encoding");

    // oCg
    int bytesLength = getByteLength(value, encoding);

    int min = 0;
    String minStr = field.getVarValue("minByte");
    if (!GenericValidator.isBlankOrNull(minStr)) {
        try {
            min = Integer.parseInt(minStr);
        } catch (NumberFormatException e) {
            log.error("", e);
        }
    }

    int max = Integer.MAX_VALUE;
    String maxStr = field.getVarValue("maxByte");
    if (!GenericValidator.isBlankOrNull(maxStr)) {
        try {
            max = Integer.parseInt(maxStr);
        } catch (NumberFormatException e) {
            log.error("", e);
        }
    }

    if (!GenericValidator.isInRange(bytesLength, min, max)) {
        errors.add(field.getKey(), Resources.getActionMessage(validator, request, va, field));
        return false;
    }
    return true;
}

From source file:jp.terasoluna.fw.web.struts.form.FieldChecksEx.java

/**
 * ?tB?[h`FbN?s?B/*from  w  w  w  . j av  a2s. c  o  m*/
 * 
 * ??[?s{@link MultiFieldValidator} NX Kv?BNX
 * <code>validation.xml</code> ??s?B<br>
 * G?[???AG?[????A wG?[?Xg?B ??[ftHgG?[?bZ?[W?A
 * ?bZ?[W <code>validation.xml</code> KL?q?B<br>
 * ANVtH?[valuetB?[hl?Avalue1tB?[hl??A
 * value2tB?[hl????A?A ??s?B
 * <h5>{@link MultiFieldValidator} </h5>
 * <code><pre>
 * public boolean validate(String value, String[] depends) {
 *  int value0 = Integer.parseInt(value);
 *  int value1 = Integer.parseInt(depends[0]);
 *  int value2 = Integer.parseInt(depends[1]);
 *  return (value1 &lt;= value0 &amp;&amp; value2 &gt;= value0);
 * }
 * </pre></code>
 * <h5>validation.xml?</h5>
 * <code><pre>
 * &lt;form name=&quot;/validateMultiField&quot;&gt;
 *   &lt;field property=&quot;value&quot; depends=&quot;multiField&quot;&gt;
 *     &lt;msg key=&quot;errors.multiField&quot;
 *             name=&quot;multiField&quot;/&gt;
 *     &lt;arg key=&quot;label.value&quot; position=&quot;0&quot; /&gt;
 *     &lt;arg key=&quot;label.value1&quot; position=&quot;1&quot; /&gt;
 *     &lt;arg key=&quot;label.value2&quot; position=&quot;2&quot; /&gt;
 *     &lt;var&gt;
 *       &lt;var-name&gt;fields&lt;/var-name&gt;
 *       &lt;var-value&gt;value1,value2&lt;/var-value&gt;
 *     &lt;/var&gt;
 *     &lt;var&gt;
 *       &lt;var-name&gt;multiFieldValidator&lt;/var-name&gt;
 *       &lt;var-value&gt;sample.SampleMultiFieldValidator&lt;/var-value&gt;
 *     &lt;/var&gt;
 *   &lt;/field&gt;
 * &lt;/form&gt;
 * </pre></code>
 * <h5>?bZ?[W\?[Xt@C?</h5>
 * <code>
 * errors.multiField={0}{1}{2}l?B
 * </code>
 * 
 * <h5>validation.xml?v&lt;var&gt;vf</h5>
 * <table border="1">
 * <tr>
 * <td><center><b><code>var-name</code></b></center></td>
 * <td><center><b><code>var-value</code></b></center></td>
 * <td><center><b>K?{?</b></center></td>
 * <td><center><b>Tv</b></center></td>
 * </tr>
 * <tr>
 * <td> fields </td>
 * <td>?KvtB?[h</td>
 * <td>false</td>
 * <td>?tB?[hw??tB?[hJ}? w?B</td>
 * </tr>
 * <tr>
 * <td> multiFieldValidator </td>
 * <td>{@link MultiFieldValidator} NX</td>
 * <td>false</td>
 * <td>?tB?[h`FbN?s {@link MultiFieldValidator} NX?B</td>
 * </tr>
 * </table>
 * 
 * @param bean
 *            ??IuWFNg
 * @param va
 *            ValidatorpValidatorAction
 * @param field
 *            tB?[hIuWFNg
 * @param errors
 *            ANVG?[
 * @param validator
 *            ValidatorCX^X
 * @param request
 *            HTTPNGXg
 * @return l? <code>true</code>
 */
public static boolean validateMultiField(Object bean, ValidatorAction va, Field field, ActionMessages errors,
        Validator validator, HttpServletRequest request) {

    // beannull?AG?[?O?o?Atruep?B
    if (bean == null) {
        log.error("bean is null.");
        return true;
    }

    // ??l
    String value = null;
    if (isString(bean)) {
        value = (String) bean;
    } else {
        value = ValidatorUtils.getValueAsString(bean, field.getProperty());
    }
    // tB?[hK?{`FbN?l?A
    // ?lnull???tB?[h`FbN?s?B

    // MultiFieldValidatorNX
    String multiFieldValidatorClass = field.getVarValue("multiFieldValidator");

    if (multiFieldValidatorClass == null || "".equals(multiFieldValidatorClass)) {
        log.error("var value[multiFieldValidator] is required.");
        throw new IllegalArgumentException("var value[multiFieldValidator] is required.");
    }

    MultiFieldValidator mfv = null;
    try {
        mfv = (MultiFieldValidator) ClassUtil.create(multiFieldValidatorClass);
    } catch (ClassLoadException e) {
        log.error("var value[multiFieldValidator] is invalid.", e);
        throw new IllegalArgumentException("var value[multiFieldValidator] is invalid.", e);
    } catch (ClassCastException e) {
        log.error("var value[multiFieldValidator] is invalid.", e);
        throw new IllegalArgumentException("var value[multiFieldValidator] is invalid.", e);
    }

    // ?tB?[hl
    String fields = field.getVarValue("fields");
    List<String> valueList = new ArrayList<String>();
    if (fields != null) {
        StringTokenizer st = new StringTokenizer(fields, ",");
        while (st.hasMoreTokens()) {
            String f = st.nextToken();
            f = f.trim();
            valueList.add(ValidatorUtils.getValueAsString(bean, f));
        }
    }

    if (log.isDebugEnabled()) {
        log.debug("dependent fields:" + valueList);
    }

    String[] values = new String[valueList.size()];

    valueList.toArray(values);

    boolean result = mfv.validate(value, values);

    if (!result) {
        errors.add(field.getKey(), Resources.getActionMessage(validator, request, va, field));
        return false;
    }

    return true;
}

From source file:jp.terasoluna.fw.web.struts.form.FieldChecksEx.java

/**
 * tw`FbN?B/*from  ww  w .j ava  2  s.  com*/
 * 
 * <p>
 * G?[???AG?[????A wG?[?Xg?B G?[?bZ?[WtH?[}bg?A
 * <code>validation-rules.xml</code>L?q?B<br>
 * ?At2000/01/012010/12/31 ???B
 * </p>
 * <h5>validation.xmlL?q</h5>
 * <code><pre>
 * &lt;form name=&quot;/sample&quot;&gt;
 *  ?E?E?E
 *  &lt;field property=&quot;date&quot;
 *      depends=&quot;dateRange&quot;&gt;
 *    &lt;arg key=&quot;label.date&quot; position=&quot;0&quot;/&gt;
 *    &lt;var&gt;
 *      &lt;var-name&gt;startDate&lt;/var-name&gt;
 *      &lt;var-value&gt;2000/01/01&lt;/var-value&gt;
 *    &lt;/var&gt;
 *    &lt;var&gt;
 *      &lt;var-name&gt;endDate&lt;/var-name&gt;
 *      &lt;var-value&gt;2010/12/31&lt;/var-value&gt;
 *    &lt;/var&gt;
 *    &lt;var&gt;
 *      &lt;var-name&gt;datePattern&lt;/var-name&gt;
 *      &lt;var-value&gt;yyyy/MM/dd&lt;/var-value&gt;
 *    &lt;/var&gt;
 *  &lt;/field&gt;
 *  ?E?E?E
 * &lt;/form&gt;
 * </pre></code>
 * <h5>validation.xml?v&lt;var&gt;vf</h5>
 * <table border="1">
 * <tr>
 * <td><center><b><code>var-name</code></b></center></td>
 * <td><center><b><code>var-value</code></b></center></td>
 * <td><center><b>K?{?</b></center></td>
 * <td><center><b>Tv</b></center></td>
 * </tr>
 * <tr>
 * <td> startDate </td>
 * <td>Jnt</td>
 * <td>false</td>
 * <td>tJnlt?B
 * datePatterndatePatternStrictwttH?[}bgv?B</td>
 * </tr>
 * <tr>
 * <td> endDate </td>
 * <td>?It</td>
 * <td>false</td>
 * <td>t?Ilt?B
 * datePatterndatePatternStrictwttH?[}bgv?B</td>
 * </tr>
 * <tr>
 * <td> datePattern </td>
 * <td>tp^?[</td>
 * <td>false</td>
 * <td>tp^?[?BDate^tH?[}bg?[?]?B</td>
 * </tr>
 * <tr>
 * <td> datePatternStrict </td>
 * <td>tp^?[?BDate^tH?[}bg?[?]?B</td>
 * <td>false</td>
 * <td>tp^?[`FbN?s?B tp^?[yyyy/MM/dd???A2001/1/1G?[?B
 * datePatternw???AdatePatternwtH?[}bg D??B</td>
 * </tr>
 * </table>
 * 
 * @param bean
 *            ??IuWFNg
 * @param va
 *            ValidatorpValidatorAction
 * @param field
 *            tB?[hIuWFNg
 * @param errors
 *            ANVG?[
 * @param validator
 *            ValidatorCX^X
 * @param request
 *            HTTPNGXg
 * @return l? <code>true</code>
 */
public static boolean validateDateRange(Object bean, ValidatorAction va, Field field, ActionMessages errors,
        Validator validator, HttpServletRequest request) {

    // beannull?AG?[?O?o?Atruep?B
    if (bean == null) {
        log.error("bean is null.");
        return true;
    }

    String value = null;
    if (isString(bean)) {
        value = (String) bean;
    } else {
        value = ValidatorUtils.getValueAsString(bean, field.getProperty());
    }
    // ?lnull?Atruep
    if (GenericValidator.isBlankOrNull(value)) {
        return true;
    }

    // t?`FbN
    String datePattern = field.getVarValue("datePattern");
    String datePatternStrict = field.getVarValue("datePatternStrict");
    Locale locale = RequestUtils.getUserLocale(request, null);
    Date result = null;
    try {
        if (datePattern != null && datePattern.length() > 0) {
            result = GenericTypeValidator.formatDate(value, datePattern, false);
        } else if (datePatternStrict != null && datePatternStrict.length() > 0) {
            result = GenericTypeValidator.formatDate(value, datePatternStrict, true);
        } else {
            result = GenericTypeValidator.formatDate(value, locale);
        }
    } catch (Exception e) {
        log.error(e.getMessage(), e);
    }

    if (result == null) {
        errors.add(field.getKey(), Resources.getActionMessage(validator, request, va, field));
        return false;
    }

    // t`FbN
    // Jn
    String startDateStr = field.getVarValue("startDate");
    // ?I
    String endDateStr = field.getVarValue("endDate");

    if (startDateStr == null && endDateStr == null) {
        // tw????
        return true;
    }

    // Jnt?~`FbN
    if (startDateStr != null && startDateStr.length() > 0) {
        Date startDate = null;

        if (datePattern != null && datePattern.length() > 0) {
            startDate = GenericTypeValidator.formatDate(startDateStr, datePattern, false);
        } else if (datePatternStrict != null && datePatternStrict.length() > 0) {
            startDate = GenericTypeValidator.formatDate(startDateStr, datePatternStrict, true);
        } else {
            startDate = GenericTypeValidator.formatDate(startDateStr, locale);
        }

        if (startDate == null) {
            errors.add(field.getKey(), Resources.getActionMessage(validator, request, va, field));
            return false;
        }
        if (result.before(startDate)) {
            errors.add(field.getKey(), Resources.getActionMessage(validator, request, va, field));
            return false;
        }
    }

    // ?ItO`FbN
    if (endDateStr != null && endDateStr.length() > 0) {
        Date endDate = null;

        if (datePattern != null && datePattern.length() > 0) {
            endDate = GenericTypeValidator.formatDate(endDateStr, datePattern, false);
        } else if (datePatternStrict != null && datePatternStrict.length() > 0) {
            endDate = GenericTypeValidator.formatDate(endDateStr, datePatternStrict, true);
        } else {
            endDate = GenericTypeValidator.formatDate(endDateStr, locale);
        }

        if (endDate == null) {
            errors.add(field.getKey(), Resources.getActionMessage(validator, request, va, field));
            return false;
        }
        if (result.after(endDate)) {
            errors.add(field.getKey(), Resources.getActionMessage(validator, request, va, field));
            return false;
        }
    }

    return true;
}

From source file:jp.terasoluna.fw.web.struts.form.FieldChecksEx.java

/**
 * wtB?[hv`FbN?B/*from www  .  j  a v  a2s. c  o m*/
 * 
 * <p>
 * G?[???AG?[????A wG?[?Xg?B G?[?bZ?[WtH?[}bg?A
 * <code>validation-rules.xml</code>L?q?B<br>
 * ?A5<code>true</code>p ???B
 * </p>
 * <h5>validation.xmlL?q</h5>
 * <code><pre>
 * &lt;form name=&quot;/sample&quot;&gt;
 *  ?E?E?E
 *  &lt;field property=&quot;escape&quot;
 *      depends=&quot;stringLength&quot;&gt;
 *    &lt;arg0 key=&quot;sample.escape&quot;/&gt;
 *    &lt;var&gt;
 *      &lt;var-name&gt;length&lt;/var-name&gt;
 *      &lt;var-value&gt;5&lt;/var-value&gt;
 *    &lt;/var&gt;
 *  &lt;/field&gt;
 *  ?E?E?E
 * &lt;/form&gt;
 * </pre></code>
 * <h5>validation.xml?v&lt;var&gt;vf</h5>
 * <table border="1">
 * <tr>
 * <td><center><b><code>var-name</code></b></center></td>
 * <td><center><b><code>var-value</code></b></center></td>
 * <td><center><b>K?{?</b></center></td>
 * <td><center><b>Tv</b></center></td>
 * </tr>
 * <tr>
 * <td> stringLength </td>
 * <td>?</td>
 * <td>false</td>
 * <td>w? <code>true</code> ?<code>true</code>p?B</td>
 * </tr>
 * </table>
 * 
 * @param bean
 *            ??IuWFNg
 * @param va
 *            ValidatorpValidatorAction
 * @param field
 *            tB?[hIuWFNg
 * @param errors
 *            ANVG?[
 * @param validator
 *            ValidatorCX^X
 * @param request
 *            HTTPNGXg
 * @return l? <code>true</code>
 */
public static boolean validateStringLength(Object bean, ValidatorAction va, Field field, ActionMessages errors,
        Validator validator, HttpServletRequest request) {

    // beannull?AG?[?O?o?Atruep?B
    if (bean == null) {
        log.error("bean is null.");
        return true;
    }

    // 
    String lengthStr = field.getVarValue("stringLength");
    // w??A`FbN?s
    if (lengthStr == null || "".equals(lengthStr)) {
        return true;
    }
    String value = null;
    if (isString(bean)) {
        value = (String) bean;
    } else {
        value = ValidatorUtils.getValueAsString(bean, field.getProperty());
    }
    // ?lnull?Atruep
    if (GenericValidator.isBlankOrNull(value)) {
        return true;
    }

    int checkLength = 0;
    try {
        checkLength = Integer.valueOf(lengthStr).intValue();
    } catch (NumberFormatException e) {
        // wints\??
        log.error("stringLength is not numeric(integer).", e);
        return true;
    }
    // length?Afalsep
    if (value.length() != checkLength) {
        errors.add(field.getKey(), Resources.getActionMessage(validator, request, va, field));
        return false;
    }

    return true;
}

From source file:jp.terasoluna.fw.web.struts.form.FieldChecksEx.java

/**
 * wtB?[h~? `FbN?B//from w  w  w. j av a2  s  . c o m
 * 
 * <p>
 * G?[???AG?[????A wG?[?Xg?B G?[?bZ?[WtH?[}bg?A
 * <code>validation-rules.xml</code>L?q?B<br>
 * ?A~`FbN??B
 * </p>
 * <h5>validation.xmlL?q</h5>
 * <code><pre>
 * &lt;form name=&quot;/sample&quot;&gt;
 *  ?E?E?E
 *  &lt;field property=&quot;escape&quot;
 *      depends=&quot;prohibited&quot;&gt;
 *    &lt;arg0 key=&quot;sample.escape&quot;/&gt;
 *    &lt;var&gt;
 *      &lt;var-name&gt;chars&lt;/var-name&gt;
 *      &lt;var-value&gt;!&quot;#$%&amp;'()&lt;/var-value&gt;
 *    &lt;/var&gt;
 *  &lt;/field&gt;
 *  ?E?E?E
 * &lt;/form&gt;
 * </pre></code>
 * <h5>validation.xml?v&lt;var&gt;vf</h5>
 * <table border="1">
 * <tr>
 * <td><center><b><code>var-name</code></b></center></td>
 * <td><center><b><code>var-value</code></b></center></td>
 * <td><center><b>K?{?</b></center></td>
 * <td><center><b>Tv</b></center></td>
 * </tr>
 * <tr>
 * <td> chars </td>
 * <td>~LN^</td>
 * <td>false</td>
 * <td>?A~LN^?A <code>false</code>p?B?<code>true</code></td>
 * </tr>
 * </table>
 * 
 * @param bean
 *            ??IuWFNg
 * @param va
 *            <code>Validator</code>p <code>ValidatorAction</code>
 * @param field
 *            tB?[hIuWFNg
 * @param errors
 *            ANVG?[
 * @param validator
 *            ValidatorCX^X
 * @param request
 *            HTTPNGXg
 * @return l? <code>true</code>
 */
public static boolean validateProhibited(Object bean, ValidatorAction va, Field field, ActionMessages errors,
        Validator validator, HttpServletRequest request) {

    // beannull?AG?[?O?o?Atruep?B
    if (bean == null) {
        log.error("bean is null.");
        return true;
    }

    // ~
    String prohibitedStr = field.getVarValue("chars");
    if (prohibitedStr == null || "".equals(prohibitedStr)) {
        // ~null?Atruep
        return true;
    }

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

    // ?lnull?Atruep
    if (StringUtils.isEmpty(value)) {
        return true;
    }

    char[] chars = value.toCharArray();

    // ~????A`FbN?s
    for (int i = 0; i < chars.length; i++) {
        if (prohibitedStr.indexOf(chars[i]) >= 0) {
            errors.add(field.getKey(), Resources.getActionMessage(validator, request, va, field));
            return false;
        }
    }
    return true;
}

From source file:jp.terasoluna.fw.web.struts.form.FieldChecksEx.java

/**
 * wtB?[h?l`FbN?B//from ww w . j a va  2s.c o m
 * 
 * ?Ap?A<code>BigDecimal</code> ^??
 * ??s\G?[pActionMessage???A<code>false</code> p?B
 * 
 * ???w???A?mF?s?B <code>validation.xml</code> 
 * <code>isAccordedInteger()</code>  <code>"true"</code> w??
 * ???`FbN?s?B `FbN???AG?[pActionMessage???Afalsep?B
 * 
 * ????w???A?mF?s?B
 * validation.xmlisAccordedScale"true"?? ???`FbN?s?B
 * 
 * <p>
 * G?[???AG?[????A wG?[?Xg?B G?[?bZ?[WtH?[}bg?A<code>validation-rules.xml</code>
 * L?q?B<br>
 * L?A??3?A??2?l??B
 * </p>
 * 
 * <h5>validation.xmlL?q</h5>
 * <code><pre>
 * &lt;form name=&quot;/sample&quot;&gt;
 *  ?E?E?E
 *  &lt;field property=&quot;escape&quot;
 *      depends=&quot;number&quot;&gt;
 *    &lt;arg0 key=&quot;sample.escape&quot;/&gt;
 *    &lt;var&gt;
 *      &lt;var-name&gt;integerLength&lt;/var-name&gt;
 *      &lt;var-value&gt;3&lt;/var-value&gt;
 *    &lt;/var&gt;
 *    &lt;var&gt;
 *      &lt;var-name&gt;scale&lt;/var-name&gt;
 *      &lt;var-value&gt;2&lt;/var-value&gt;
 *    &lt;/var&gt;
 *    &lt;var&gt;
 *      &lt;var-name&gt;isAccordedInteger&lt;/var-name&gt;
 *      &lt;var-value&gt;true&lt;/var-value&gt;
 *    &lt;/var&gt;
 *    &lt;var&gt;
 *      &lt;var-name&gt;isAccordedScale&lt;/var-name&gt;
 *      &lt;var-value&gt;true&lt;/var-value&gt;
 *    &lt;/var&gt;
 *  &lt;/field&gt;
 *  ?E?E?E
 * &lt;/form&gt;
 * </pre></code>
 * <h5>validation.xml?v&lt;var&gt;vf</h5>
 * <table border="1">
 * <tr>
 * <td><center><b><code>var-name</code></b></center></td>
 * <td><center><b><code>var-value</code></b></center></td>
 * <td><center><b>K?{?</b></center></td>
 * <td><center><b>Tv</b></center></td>
 * </tr>
 * <tr>
 * <td> <code>integerLength</code> </td>
 * <td> ??? </td>
 * <td> <code>false</code> </td>
 * <td>?????A<code>isAccordedInteger</code>w
 * ?Aw???s?B??A?l ??A??s?B</td>
 * </tr>
 * <tr>
 * <td> <code>scale</code> </td>
 * <td> ??? </td>
 * <td> <code>false</code> </td>
 * <td>??l???A<code>isAccordedScale</code>w
 * ?Aw???s?B??A?l ??A??s?B</td>
 * </tr>
 * <tr>
 * <td> <code>isAccordedInteger</code> </td>
 * <td> ???v`FbN </td>
 * <td> <code>false</code> </td>
 * <td> <code>true</code>w?A???v`FbN ?s?B??A<code>true</code>O?
 * ?`FbN?B</td>
 * </tr>
 * <tr>
 * <td> <code>isAccordedScale</code> </td>
 * <td> ???v`FbN </td>
 * <td> <code>false</code> </td>
 * <td> <code>true</code>w?A???v`FbN ?s?B??A<code>true</code>O?
 * ?`FbN?B</td>
 * </tr>
 * </table>
 * 
 * @param bean
 *            ??IuWFNg
 * @param va
 *            StrutspValidatorAction
 * @param field
 *            tB?[hIuWFNg
 * @param errors
 *            ActionMessages ANVG?[
 * @param validator
 *            ValidatorCX^X
 * @param request
 *            HTTPNGXg
 * @return l? <code>true</code>
 */
public static boolean validateNumber(Object bean, ValidatorAction va, Field field, ActionMessages errors,
        Validator validator, HttpServletRequest request) {

    // beannull?AG?[?O?o?Atruep?B
    if (bean == null) {
        log.error("bean is null.");
        return true;
    }
    // ???
    String integerLength = field.getVarValue("integerLength");
    // ???
    String scaleStr = field.getVarValue("scale");
    // ???v`FbN
    String isAccordedInteger = field.getVarValue("isAccordedInteger");
    // ???v`FbN
    String isAccordedScale = field.getVarValue("isAccordedScale");

    String value = null;
    if (isString(bean)) {
        value = (String) bean;
    } else {
        value = ValidatorUtils.getValueAsString(bean, field.getProperty());
    }
    // ?lnull?Atruep
    if (GenericValidator.isBlankOrNull(value)) {
        return true;
    }
    char[] chars = value.toCharArray();
    for (int i = 0; i < chars.length; i++) {
        if (!isHankaku(chars[i])) {
            errors.add(field.getKey(), Resources.getActionMessage(validator, request, va, field));
            return false;
        }
    }
    // ???w???A??`FbN?s
    if (GenericValidator.isInt(integerLength)) {
        try {
            BigDecimal bd = new BigDecimal(value);
            // ???l?o
            BigInteger bi = bd.toBigInteger().abs();
            // ???
            int length = bi.toString().length();
            // validation.xmlw?
            int checkLength = Integer.valueOf(integerLength).intValue();
            // ?I?[o?Afalsep
            if (length > checkLength) {
                errors.add(field.getKey(), Resources.getActionMessage(validator, request, va, field));
                return false;
            }
            // vw
            if (isAccordedInteger != null && "true".equals(isAccordedInteger)) {
                // ?sv?Afalsep
                if (length != checkLength) {
                    errors.add(field.getKey(), Resources.getActionMessage(validator, request, va, field));
                    return false;
                }
            }
        } catch (NumberFormatException nfe) {
            // ?l^?Afalsep
            errors.add(field.getKey(), Resources.getActionMessage(validator, request, va, field));
            return false;
        }
    }

    // ???w???A??`FbN?s
    if (GenericValidator.isInt(scaleStr)) {
        int scale = 0;
        int checkScale = 0;
        try {
            BigDecimal bd = new BigDecimal(value);
            scale = bd.scale();
            // validation.xmlw?
            checkScale = Integer.valueOf(scaleStr).intValue();
        } catch (NumberFormatException e) {
            // ?l^?Afalsep
            errors.add(field.getKey(), Resources.getActionMessage(validator, request, va, field));
            return false;
        }
        // ?I?[o?Afalsep
        if (scale > checkScale) {
            errors.add(field.getKey(), Resources.getActionMessage(validator, request, va, field));
            return false;
        }
        // vw
        if (isAccordedScale != null && "true".equals(isAccordedScale)) {
            // ?sv?Afalsep
            if (scale != checkScale) {
                errors.add(field.getKey(), Resources.getActionMessage(validator, request, va, field));
                return false;
            }
        }
    }
    return true;
}

From source file:jp.terasoluna.fw.validation.FieldChecks.java

/**
 * ???bean?Null???Null?//from   w  ww .  j  a va  2  s. c  om
 * bean?String???bean?
 * bean?Number?Boolean?Character???bean.toString()?
 * ?????bean?<code>Field</code>???
 * <code>ValidatorUtils</code>?????
 *
 * @param bean ?
 * @param field <code>Field</code>
 * @return 
 * @see ValidatorUtils#getValueAsString(Object, String)
 */
protected String extractValue(Object bean, Field field) {
    String value = null;

    if (bean == null) {
        return null;
    } else if (bean instanceof String) {
        value = (String) bean;
    } else if (bean instanceof Number || bean instanceof Boolean || bean instanceof Character) {
        value = bean.toString();
    } else {
        value = ValidatorUtils.getValueAsString(bean, field.getProperty());
    }
    return value;
}

From source file:jp.terasoluna.fw.validation.FieldChecks.java

/**
 * ????????//from   www .j  a v  a 2 s. c  o  m
 * ???????
 * ??????????errors???
 * false??
 *
 * <p>?????????????true??
 * ???
 *
 * <h5>validation.xml?</h5>
 * <code><pre>
 * &lt;form name=&quot;sample&quot;&gt;
 *  
 *  &lt;field property=&quot;arrayField&quot;
 *      depends=&quot;arrayRange&quot;&gt;
 *    &lt;arg key=&quot;sample.arrayField&quot; position="0"/&gt;
 *    &lt;var&gt;
 *      &lt;var-name&gt;minArrayLength&lt;/var-name&gt;
 *      &lt;var-value&gt;4&lt;/var-value&gt;
 *    &lt;/var&gt;
 *    &lt;var&gt;
 *      &lt;var-name&gt;maxArrayLength&lt;/var-name&gt;
 *      &lt;var-value&gt;7&lt;/var-value&gt;
 *    &lt;/var&gt;
 *  &lt;/field&gt;
 *  
 * &lt;/form&gt;
 * </pre></code>
 * <h5>validation.xml???&lt;var&gt;?</h5>
 * <table border="1">
 *  <tr>
 *   <td><center><b><code>var-name</code></b></center></td>
 *   <td><center><b><code>var-value</code></b></center></td>
 *   <td><center><b></b></center></td>
 *   <td><center><b>?</b></center></td>
 *  </tr>
 *  <tr>
 *   <td> minArrayLength </td>
 *   <td>??</td>
 *   <td>false</td>
 *   <td>?????
 *        ???????????</td>
 *  </tr>
 *  <tr>
 *   <td> maxArrayLength </td>
 *   <td>?</td>
 *   <td>false</td>
 *   <td>????
 *        ???????
 *        <code>int</code>???</td>
 *  </tr>
 * </table>
 *
 * @param bean ?JavaBean
 * @param va Validator????ValidatorAction
 * @param field 
 * @param errors 
 * @return ???? true
 * @throws ValidatorException validation??????
 * ?
 */
public boolean validateArrayRange(Object bean, ValidatorAction va, Field field, ValidationErrors errors)
        throws ValidatorException {

    // ??bean?null???ValidatorException
    if (bean == null) {
        String message = "target of validateArrayRange must be not null.";
        log.error(message);
        throw new ValidatorException(message);
    }

    try {
        Class<?> type = BeanUtil.getBeanPropertyType(bean, field.getProperty());
        if (type == null) {
            String message = "Cannot get property type[" + bean.getClass().getName() + "." + field.getProperty()
                    + "]";
            log.error(message);
            throw new ValidatorException(message);
        } else if (!type.isArray() && !Collection.class.isAssignableFrom(type)) {
            String message = "property [" + bean.getClass().getName() + "." + field.getProperty()
                    + "] must be instance of Array or Collection.";
            log.error(message);
            throw new ValidatorException(message);
        }
    } catch (PropertyAccessException e) {
        String message = "Cannot get property type[" + bean.getClass().getName() + "." + field.getProperty()
                + "]";
        log.error(message, e);
        throw new ValidatorException(message);
    }

    // 
    Object obj = null;
    try {
        obj = BeanUtil.getBeanProperty(bean, field.getProperty());
    } catch (PropertyAccessException e) {
        String message = "Cannot get property [" + bean.getClass().getName() + "." + field.getProperty() + "]";
        log.error(message, e);
        throw new ValidatorException(message);
    }

    // ????
    int min = 0;
    String minStr = field.getVarValue("minArrayLength");
    if (!GenericValidator.isBlankOrNull(minStr)) {
        try {
            min = Integer.parseInt(minStr);
        } catch (NumberFormatException e) {
            String message = "Mistake on validation definition file. " + "- minArrayLength is not number. "
                    + "You'll have to check it over. ";
            log.error(message, e);
            throw new ValidatorException(message);
        }
    }

    // ???
    int max = Integer.MAX_VALUE;
    String maxStr = field.getVarValue("maxArrayLength");
    if (!GenericValidator.isBlankOrNull(maxStr)) {
        try {
            max = Integer.parseInt(maxStr);
        } catch (NumberFormatException e) {
            String message = "Mistake on validation definition file. " + "- maxArrayLength is not number. "
                    + "You'll have to check it over. ";
            log.error(message, e);
            throw new ValidatorException(message);
        }
    }

    // 
    try {
        if (!ValidationUtil.isArrayInRange(obj, min, max)) {
            rejectValue(errors, field, va, bean);
            return false;
        }
    } catch (IllegalArgumentException e) {
        log.error(e.getMessage());
        throw new ValidatorException(e.getMessage());
    }
    return true;
}

From source file:jp.terasoluna.fw.validation.FieldChecks.java

/**
 * ???/*from  w ww. j av  a2s.c o m*/
 *
 * ?????{@link MultiFieldValidator} ???<br>
 * ??? <code>validation.xml</code> ??<br>
 * ???????????
 * ????
 * ???????????
 * ? <code>validation.xml</code> ?????<br>
 * value???value1??
 * value2????????????
 * ?
 * <h5>{@link MultiFieldValidator} ?</h5>
 * <code><pre>
 * public boolean validate(Object value, Object[] depends) {
 *     int value0 = Integer.parseInt(value);
 *     int value1 = Integer.parseInt(depends[0]);
 *     int value2 = Integer.parseInt(depends[1]);
 *     return (value1 <= value0 && value2 >= value0);
 * }
 * </pre></code>
 * <h5>validation.xml?</h5>
 * <code><pre>
 * &lt;form name=&quot;/validateMultiField&quot;&gt;
 *   &lt;field property=&quot;value&quot; depends=&quot;multiField&quot;&gt;
 *     &lt;msg key=&quot;errors.multiField&quot;
 *             name=&quot;multiField&quot;/&gt;
 *     &lt;arg key=&quot;label.value&quot; position=&quot;0&quot; /&gt;
 *     &lt;arg key=&quot;label.value1&quot; position=&quot;1&quot; /&gt;
 *     &lt;arg key=&quot;label.value2&quot; position=&quot;2&quot; /&gt;
 *     &lt;var&gt;
 *       &lt;var-name&gt;fields&lt;/var-name&gt;
 *       &lt;var-value&gt;value1,value2&lt;/var-value&gt;
 *     &lt;/var&gt;
 *     &lt;var&gt;
 *       &lt;var-name&gt;multiFieldValidator&lt;/var-name&gt;
 *       &lt;var-value&gt;sample.SampleMultiFieldValidator&lt;/var-value&gt;
 *     &lt;/var&gt;
 *   &lt;/field&gt;
 * &lt;/form&gt;
 * </pre></code>
 * <h5>?</h5>
 * <code>
 * errors.multiField={0}?{1}?{2}?????????
 * </code>
 *
 * <h5>validation.xml???&lt;var&gt;?</h5>
 * <table border="1">
 *  <tr>
 *   <td><center><b><code>var-name</code></b></center></td>
 *   <td><center><b><code>var-value</code></b></center></td>
 *   <td><center><b></b></center></td>
 *   <td><center><b>?</b></center></td>
 *  </tr>
 *  <tr>
 *   <td> fields </td>
 *   <td>??????</td>
 *   <td>false</td>
 *   <td>???????
 *   ?</td>
 *  </tr>
 *  <tr>
 *   <td> multiFieldValidator </td>
 *   <td>{@link MultiFieldValidator} ??</td>
 *   <td>true</td>
 *   <td>??? {@link MultiFieldValidator}
 *   ??</td>
 *  </tr>
 * </table>
 *
 * @param bean ?
 * @param va Validator????ValidatorAction
 * @param field 
 * @param errors 
 * @return ???? <code>true</code>
 */
public boolean validateMultiField(Object bean, ValidatorAction va, Field field, ValidationErrors errors) {

    // bean?null????true??
    if (bean == null) {
        log.error("bean is null.");
        return true;
    }

    // ??
    Object value = null;
    if (bean instanceof String) {
        value = bean;
    } else {
        try {
            value = PropertyUtils.getProperty(bean, field.getProperty());
        } catch (IllegalAccessException e) {
            log.error(e.getMessage(), e);
        } catch (InvocationTargetException e) {
            log.error(e.getMessage(), e);
        } catch (NoSuchMethodException e) {
            log.error(e.getMessage(), e);
        }
    }
    // ????????
    // ?null?????????

    // MultiFieldValidator???
    String multiFieldValidatorClass = field.getVarValue("multiFieldValidator");

    if (multiFieldValidatorClass == null || "".equals(multiFieldValidatorClass)) {
        log.error("var value[multiFieldValidator] is required.");
        throw new IllegalArgumentException("var value[multiFieldValidator] is required.");
    }

    MultiFieldValidator mfv = null;
    try {
        mfv = (MultiFieldValidator) ClassUtil.create(multiFieldValidatorClass);
    } catch (ClassLoadException e) {
        log.error("var value[multiFieldValidator] is invalid.", e);
        throw new IllegalArgumentException("var value[multiFieldValidator] is invalid.", e);
    } catch (ClassCastException e) {
        log.error("var value[multiFieldValidator] is invalid.", e);
        throw new IllegalArgumentException("var value[multiFieldValidator] is invalid.", e);
    }

    // ????
    String fields = field.getVarValue("fields");
    List<Object> valueList = new ArrayList<Object>();
    if (fields != null) {
        StringTokenizer st = new StringTokenizer(fields, ",");
        while (st.hasMoreTokens()) {
            String f = st.nextToken();
            f = f.trim();
            try {
                valueList.add(PropertyUtils.getProperty(bean, f));
            } catch (IllegalAccessException e) {
                log.error(e.getMessage(), e);
            } catch (InvocationTargetException e) {
                log.error(e.getMessage(), e);
            } catch (NoSuchMethodException e) {
                log.error(e.getMessage(), e);
            }
        }
    }

    if (log.isDebugEnabled()) {
        log.debug("dependent fields:" + valueList);
    }

    Object[] values = new Object[valueList.size()];

    valueList.toArray(values);

    boolean result = mfv.validate(value, values);

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

    return true;
}

From source file:org.agnitas.service.csv.validator.FieldsValidator.java

private static String getValueAsString(Object bean, Field field) {
    String value = null;/* w w  w  .j  av a 2  s .  c o m*/
    final String varValue = field.getVarValue("customField");
    if (Boolean.valueOf(varValue)) {
        try {
            Object property = PropertyUtils.getProperty(bean, "customFields");
            if (property instanceof Map) {
                value = ((Map<String, String>) property).get(field.getProperty());
            }
        } catch (Exception e) {
            AgnUtils.logger().warn(
                    MessageFormat.format("Failed to get bean ({0}) property ({1})as string", bean, varValue),
                    e);
        }
    } else {
        value = ValidatorUtils.getValueAsString(bean, field.getProperty());
    }
    return value;
}