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

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

Introduction

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

Prototype

public void setKey(String key) 

Source Link

Document

Sets a unique key for the field.

Usage

From source file:jp.terasoluna.fw.validation.springmodules.SpringValidationErrorsTest.java

/**
 * testAddErrors01() <br>//from  w w w  .  j  ava  2  s  .c om
 * <br>
 * () <br>
 * C <br>
 * <br>
 * () bean:Object<br>
 * () field:Field<br>
 * field.getKey()="key"<br>
 * field.getMsg("name")="messageKey"<br>
 * field.getArg("name", 0)="arg0"<br>
 * field.getArg("name", 1)="arg1"<br>
 * field.getArg("name", 2)="arg2"<br>
 * field.getArg("name", 3)="arg3"<br>
 * () va:ValidationAction<br>
 * va.getName()="name"<br>
 * <br>
 * () rejectValue():??????<br>
 * fieldCode="key"<br>
 * errorCode="messageKey"<br>
 * args={<br>
 * MessageSourceResolvable{<br>
 * codes[0]={"arg0"}, arguments=null, defaultMessage="arg0"}, <br>
 * MessageSourceResolvable{<br>
 * codes[1]={"arg1"}, arguments=null, defaultMessage="arg1"}, <br>
 * MessageSourceResolvable{<br>
 * codes[2]={"arg2"}, arguments=null, defaultMessage="arg2"}, <br>
 * MessageSourceResolvable{<br>
 * codes[3]={"arg3"}, arguments=null, defaultMessage="arg3"}, <br>
 * }<br>
 * <br>
 * ?not null?? <br>
 * @throws Exception ?????
 */
@Test
public void testAddErrors01() throws Exception {
    // ??
    // bean
    Object bean = new Object();
    // field
    Field field = new Field();
    // field.getKey() : "key"
    field.setKey("key");

    // field.getMsg("name")?errorCode????
    FastHashMap hMsgs = new FastHashMap();
    Msg msg = new Msg();
    msg.setKey("messageKey");
    hMsgs.put("name", msg);
    ReflectionTestUtils.setField(field, "hMsgs", hMsgs);

    // Object[] args????
    @SuppressWarnings("rawtypes")
    Map[] args = new HashMap[4];

    // args[0]
    Arg arg = new Arg();
    arg.setKey("arg0");
    Map<String, Arg> hMap01 = new HashMap<String, Arg>();
    hMap01.put("name", arg);
    args[0] = hMap01;

    // args[1]
    arg = new Arg();
    arg.setKey("arg1");
    Map<String, Arg> hMap02 = new HashMap<String, Arg>();
    hMap02.put("name", arg);
    args[1] = hMap02;

    // args[2]
    arg = new Arg();
    arg.setKey("arg2");
    Map<String, Arg> hMap03 = new HashMap<String, Arg>();
    hMap03.put("name", arg);
    args[2] = hMap03;

    // args[3]
    arg = new Arg();
    arg.setKey("arg3");
    Map<String, Arg> hMap04 = new HashMap<String, Arg>();
    hMap04.put("name", arg);
    args[3] = hMap04;

    ReflectionTestUtils.setField(field, "args", args);

    // va
    ValidatorAction va = new ValidatorAction();

    // va.getName : "name"
    va.setName("name");

    // SpringValidationErrors?
    SpringValidationErrors validation = new SpringValidationErrors();

    // Errors? : ErrorsImpl01 - rejectValue???
    ErrorsImpl01 errors = new ErrorsImpl01();
    ReflectionTestUtils.setField(validation, "errors", errors);

    // 
    validation.addError(bean, field, va);

    // 
    ErrorsImpl01 assertErrors = (ErrorsImpl01) ReflectionTestUtils.getField(validation, "errors");
    // rejectValue?
    assertTrue(assertErrors.isRejectValue);

    // field?
    assertEquals("key", assertErrors.field);

    // errorCode?
    assertEquals("messageKey", assertErrors.errorCode);

    // assertSame(args, assertErrors.errorArgs);
    // errorArgs?
    Object[] objs = assertErrors.errorArgs;
    MessageSourceResolvable msr = null;
    for (int i = 0; i < objs.length; i++) {
        msr = (MessageSourceResolvable) objs[i];

        String[] strs = msr.getCodes();
        // codes[0] : "arg" + i
        assertEquals("arg" + i, strs[0]);
        // arguments : null
        assertNull(msr.getArguments());
        // defaultMessage : "arg" + i
        assertEquals("arg" + i, msr.getDefaultMessage());
    }

    // defaultMessage?
    assertEquals("messageKey", assertErrors.defaultMessage);
}

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

/**
 * z?ERNV^tB?[hlSvf`FbN?B//from  w  w w  .  j  a  v a 2s  .  c o  m
 * <p>
 * z?ERNV^tH?[vf??A? CfbNX? <code>ActionMessage</code>?B
 * ?sTu?\bh?^?A???A?\bh vKv?B
 * Fieldproperty?JXPathIndexedBeanWrapperImpldl?]?A
 * lXgv?peB?\?B
 * </p>
 * 
 * @param bean
 *            ??IuWFNg
 * @param va
 *            Strutsp<code>ValidatorAction</code>
 * @param field
 *            tB?[hIuWFNg
 * @param errors
 *            ANVG?[
 * @param validator
 *            ValidatorCX^X
 * @param request
 *            HTTPNGXg
 * @return vfl? <code>true</code>
 */
public static boolean validateArraysIndex(@SuppressWarnings("unused") Object bean, ValidatorAction va,
        Field field, ActionMessages errors, Validator validator, HttpServletRequest request) {

    // ??
    int methodArgCount = 6;

    // z?ERNV???ifalsep???Afalse?j
    boolean totalResult = true;
    try {
        // RXgN^?NXp^?[
        Class[] paramClass = getParamClass(va);
        if (paramClass == null) {
            log.error("Can not get class pattern.");
            return true;
        }
        // paramClassvf?=0?AG?[?O?o?Atruep
        if (paramClass.length == 0) {
            log.error("Class pattern length is zero.");
            return true;
        }

        // evf??s?\bh
        Method method = getMethod(va, paramClass);
        if (method == null) {
            log.error("Can not get validateMethod.");
            return true;
        }

        // tH?[IuWFNg
        ActionForm form = getActionForm(request);
        if (form == null) {
            log.error("Can not get ActionForm.");
            return true;
        }

        // vfof?[V?[?A
        // O?svIuWFNg
        Object[] argParams = new Object[methodArgCount];
        argParams[0] = form;
        argParams[1] = va;
        argParams[3] = errors;
        argParams[4] = validator;
        argParams[5] = request;

        IndexedBeanWrapper wrapper = new JXPathIndexedBeanWrapperImpl(form);
        Map<String, Object> propertyMap = wrapper.getIndexedPropertyValues(field.getKey());

        int index = 0;

        for (String key : propertyMap.keySet()) {
            // CfbNXtv?peBtB?[h?
            Field indexedField = (Field) field.clone();
            indexedField.setIndexedListProperty(null);
            indexedField = getArrayIndexField(indexedField, index);
            indexedField.setKey(key);
            indexedField.setProperty(key);

            argParams[2] = indexedField; // tB?[h

            // `FbN?\bh?o
            Object resultObj = method.invoke(FieldChecksEx.class, argParams);
            // ?
            if (!isValid(resultObj)) {
                totalResult = false;
            }
            index++;
        }

    } catch (IllegalArgumentException e) {
        log.error("", e);
        return true;
    } catch (IllegalAccessException e) {
        log.error("", e);
        return true;
    } catch (InvocationTargetException e) {
        log.error("", e);
        return true;
    }
    return totalResult;
}

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

/**
 * ????????/*from ww  w  . ja  v  a2 s  .c  om*/
 * ??????????errors???
 * false??
 *
 * <p>??????????
 * ?????????validation.xml?
 * ??depends????Array???????
 * depends="requiredArray" "required" ?
 *
 * @param bean ?JavaBean
 * @param va Validator????ValidatorAction
 * @param field 
 * @param errors 
 * @return ????????? true
 * @throws ValidatorException validation??????
 * ???bean?null?????
 */
public boolean validateArraysIndex(Object bean, ValidatorAction va, Field field, ValidationErrors errors)
        throws ValidatorException {
    if (bean == null) {
        log.error("validation target bean is null.");
        throw new ValidatorException("validation target bean is null.");
    }

    @SuppressWarnings("rawtypes")
    Class[] paramClass = null; // ??
    Method method = null; // 
    try {
        paramClass = getParamClass(va);
        if (paramClass == null || paramClass.length == 0) {
            String message = "Mistake on validation rule file. " + "- Can not get argument class. "
                    + "You'll have to check it over. ";
            log.error(message);
            throw new ValidatorException(message);
        }

        method = getMethod(va, paramClass);
        if (method == null) {
            String message = "Mistake on validation rule file. " + "- Can not get validateMethod. "
                    + "You'll have to check it over. ";
            log.error(message);
            throw new ValidatorException(message);
        }
    } catch (RuntimeException e) {
        log.error(e.getMessage(), e);
        throw new ValidatorException(e.getMessage());
    }

    try {
        // ???????????
        Object[] argParams = new Object[paramClass.length];
        argParams[0] = bean;
        argParams[1] = va;
        argParams[3] = errors;

        // ?????
        IndexedBeanWrapper bw = getIndexedBeanWrapper(bean);
        Map<String, Object> propertyMap = bw.getIndexedPropertyValues(field.getKey());

        boolean isValid = true; // 

        for (String key : propertyMap.keySet()) {
            // ??????????
            Field indexedField = (Field) field.clone();
            indexedField.setKey(key);
            indexedField.setProperty(key);

            argParams[2] = indexedField; // 

            // ????
            boolean bool = (Boolean) method.invoke(this, argParams);
            if (!bool) {
                isValid = false;
            }
        }
        return isValid;
    } catch (InvocationTargetException e) {
        Throwable t = e.getTargetException();
        if (t instanceof ValidatorException) {
            throw (ValidatorException) t;
        }
        log.error(t.getMessage(), t);
        throw new ValidatorException(t.getMessage());
    } catch (Exception e) {
        log.error(e.getMessage(), e);
        throw new ValidatorException(e.getMessage());
    }
}