/** * Replace the arg <code>Collection</code> key value with the key/value * pairs passed in. */ private void processArg(String key, String replaceValue) { for (int i = 0; i < this.args.length; i++) { Map<String, Arg> argMap = this.args[i]; if (argMap == null) { continue; } Iterator<Arg> iter = argMap.values().iterator(); while (iter.hasNext()) { Arg arg = iter.next(); if (arg != null) { arg.setKey( ValidatorUtils.replace(arg.getKey(), key, replaceValue)); } } } }
/** * Add an <code>Arg</code> to the replacement argument list. * @since Validator 1.1 * @param arg Validation message's argument. */ public void addArg(Arg arg) { // TODO this first if check can go away after arg0, etc. are removed from dtd if (arg == null || arg.getKey() == null || arg.getKey().length() == 0) { return; } determineArgPosition(arg); ensureArgsCapacity(arg); Map<String, Arg> argMap = this.args[arg.getPosition()]; if (argMap == null) { argMap = new HashMap<String, Arg>(); this.args[arg.getPosition()] = argMap; } if (arg.getName() == null) { argMap.put(DEFAULT_ARG, arg); } else { argMap.put(arg.getName(), arg); } }
/** * test Field with only 'default' arguments, positions specified. */ public void testDefaultUsingPositions() { field.addArg(createArg("default-position-1", 1)); field.addArg(createArg("default-position-0", 0)); field.addArg(createArg("default-position-2", 2)); assertEquals("testDefaultUsingPositions(1) ", 3, field.getArgs("required").length); assertEquals("testDefaultUsingPositions(2) ", "default-position-0", field.getArg("required", 0).getKey()); assertEquals("testDefaultUsingPositions(3) ", "default-position-1", field.getArg("required", 1).getKey()); assertEquals("testDefaultUsingPositions(4) ", "default-position-2", field.getArg("required", 2).getKey()); }
/** * test Field with only 'default' arguments, no positions specified. */ public void testDefaultPositionImplied() { field.addArg(createArg("default-position-0")); field.addArg(createArg("default-position-1")); field.addArg(createArg("default-position-2")); assertEquals("testDefaultPositionImplied(1) ", 3, field.getArgs("required").length); assertEquals("testDefaultPositionImplied(2) ", "default-position-0", field.getArg("required", 0).getKey()); assertEquals("testDefaultPositionImplied(3) ", "default-position-1", field.getArg("required", 1).getKey()); assertEquals("testDefaultPositionImplied(4) ", "default-position-2", field.getArg("required", 2).getKey()); }
/** * test Field with only 'default' arguments, some position specified. */ public void testDefaultSomePositions() { field.addArg(createArg("default-position-0")); field.addArg(createArg("default-position-2", 2)); field.addArg(createArg("default-position-3")); field.addArg(createArg("default-position-1", 1)); assertEquals("testDefaultSomePositions(1) ", 4, field.getArgs("required").length); assertEquals("testDefaultSomePositions(2) ", "default-position-0", field.getArg("required", 0).getKey()); assertEquals("testDefaultSomePositions(3) ", "default-position-1", field.getArg("required", 1).getKey()); assertEquals("testDefaultSomePositions(4) ", "default-position-2", field.getArg("required", 2).getKey()); assertEquals("testDefaultSomePositions(5) ", "default-position-3", field.getArg("required", 3).getKey()); }
/** * test Field with only 'default' arguments, position specified for one argument */ public void testDefaultOnePosition() { field.addArg(createArg("default-position-0")); field.addArg(createArg("default-position-2", 2)); field.addArg(createArg("default-position-3")); assertEquals("testDefaultOnePosition(1) ", 4, field.getArgs("required").length); assertEquals("testDefaultOnePosition(2) ", "default-position-0", field.getArg("required", 0).getKey()); assertNull("testDefaultOnePosition(3) ", field.getArg("required", 1)); assertEquals("testDefaultOnePosition(4) ", "default-position-2", field.getArg("required", 2).getKey()); assertEquals("testDefaultOnePosition(5) ", "default-position-3", field.getArg("required", 3).getKey()); }
/** * test Field with a 'default' argument overriden using 'position' property */ public void testOverrideUsingPositionB() { field.addArg(createArg("required-position-3", "required", 3)); field.addArg(createArg("required-position-1", "required", 1)); field.addArg(createArg("default-position-0")); field.addArg(createArg("default-position-1")); field.addArg(createArg("default-position-2")); // use 'required' as name assertEquals("testOverrideUsingPositionB(1) ", 4, field.getArgs("required").length); assertEquals("testOverrideUsingPositionB(2) ", "default-position-0", field.getArg("required", 0).getKey()); assertEquals("testOverrideUsingPositionB(3) ", "required-position-1", field.getArg("required", 1).getKey()); assertEquals("testOverrideUsingPositionB(4) ", "default-position-2", field.getArg("required", 2).getKey()); assertEquals("testOverrideUsingPositionB(5) ", "required-position-3", field.getArg("required", 3).getKey()); // use 'mask' as name assertEquals("testOverrideUsingPositionB(6) ", 4, field.getArgs("mask").length); assertEquals("testOverrideUsingPositionB(6) ", "default-position-0", field.getArg("mask", 0).getKey()); assertEquals("testOverrideUsingPositionB(7) ", "default-position-1", field.getArg("mask", 1).getKey()); assertEquals("testOverrideUsingPositionB(8) ", "default-position-2", field.getArg("mask", 2).getKey()); assertNull("testOverrideUsingPositionB(9) ", field.getArg("mask", 3)); }
/** * test Field with a 'default' argument overriden with some positions specified */ public void testOverrideSomePosition() { field.addArg(createArg("default-position-0")); field.addArg(createArg("default-position-1")); field.addArg(createArg("default-position-2")); field.addArg(createArg("required-position-1", "required", 1)); field.addArg(createArg("required-position-2", "required")); field.addArg(createArg("mask-position-3", "mask")); // use 'required' as name assertEquals("testOverrideSomePosition(1) ", 4, field.getArgs("required").length); assertEquals("testOverrideSomePosition(2) ", "default-position-0", field.getArg("required", 0).getKey()); assertEquals("testOverrideSomePosition(3) ", "required-position-1", field.getArg("required", 1).getKey()); assertEquals("testOverrideSomePosition(4) ", "required-position-2", field.getArg("required", 2).getKey()); assertNull("testOverrideSomePosition(5) ", field.getArg("required", 3)); // use 'mask' as name assertEquals("testOverrideSomePosition(6) ", 4, field.getArgs("mask").length); assertEquals("testOverrideSomePosition(7) ", "default-position-0", field.getArg("mask", 0).getKey()); assertEquals("testOverrideSomePosition(8) ", "default-position-1", field.getArg("mask", 1).getKey()); assertEquals("testOverrideSomePosition(9) ", "default-position-2", field.getArg("mask", 2).getKey()); assertEquals("testOverrideSomePosition(10) ", "mask-position-3", field.getArg("mask", 3).getKey()); // Get Defaults assertEquals("testOverrideSomePosition(11) ", "default-position-0", field.getArg(0).getKey()); assertEquals("testOverrideSomePosition(12) ", "default-position-1", field.getArg(1).getKey()); assertEquals("testOverrideSomePosition(13) ", "default-position-2", field.getArg(2).getKey()); assertNull("testOverrideSomePosition(14) ", field.getArg(3)); }
/** * test Field with a 'default' argument overriden without positions specified. */ public void testOverridePositionImplied() { field.addArg(createArg("default-position-0")); field.addArg(createArg("required-position-1", "required")); field.addArg(createArg("required-position-2", "required")); field.addArg(createArg("mask-position-1", "mask")); // use 'required' as name assertEquals("testOverridePositionImplied(1) ", 3, field.getArgs("required").length); assertEquals("testOverridePositionImplied(2) ", "default-position-0", field.getArg("required", 0).getKey()); assertEquals("testOverridePositionImplied(3) ", "required-position-1", field.getArg("required", 1).getKey()); assertEquals("testOverridePositionImplied(4) ", "required-position-2", field.getArg("required", 2).getKey()); // use 'mask' as name assertEquals("testOverridePositionImplied(5) ", 3, field.getArgs("mask").length); assertEquals("testOverridePositionImplied(6) ", "default-position-0", field.getArg("mask", 0).getKey()); assertEquals("testOverridePositionImplied(7) ", "mask-position-1", field.getArg("mask", 1).getKey()); assertNull("testOverridePositionImplied(8) ", field.getArg("mask", 2)); // Get Defaults assertEquals("testOverridePositionImplied(9) ", "default-position-0", field.getArg(0).getKey()); assertNull("testOverridePositionImplied(10) ", field.getArg(1)); assertNull("testOverridePositionImplied(11) ", field.getArg(2)); }
/** * test Field with a 'default' argument overriden using 'position' property */ public void testOverrideUsingPositionA() { field.addArg(createArg("default-position-0")); field.addArg(createArg("default-position-1")); field.addArg(createArg("default-position-2")); field.addArg(createArg("required-position-1", "required", 1)); // use 'required' as name assertEquals("testOverrideUsingPositionA(1) ", 3, field.getArgs("required").length); assertEquals("testOverrideUsingPositionA(2) ", "required-position-1", field.getArg("required", 1).getKey()); // use 'mask' as name assertEquals("testOverrideUsingPositionA(3) ", 3, field.getArgs("mask").length); assertEquals("testOverrideUsingPositionA(4) ", "default-position-1", field.getArg("mask", 1).getKey()); // Get Default assertEquals("testOverrideUsingPositionA(5) ", "default-position-1", field.getArg(1).getKey()); }
/** * Tests if we can override a rule. We "can" override a rule if the message shown * when the firstName required test fails and the lastName test is null. */ public void testOverrideRule() throws ValidatorException { // Create bean to run test on. NameBean name = new NameBean(); name.setLastName("Smith"); // Construct validator based on the loaded resources // and the form key Validator validator = new Validator(resources, FORM_KEY2); // add the name bean to the validator as a resource // for the validations to be performed on. validator.setParameter(Validator.BEAN_PARAM, name); // Get results of the validation. ValidatorResults results = null; results = validator.validate(); assertNotNull("Results are null.", results); ValidatorResult firstNameResult = results.getValidatorResult("firstName"); ValidatorResult lastNameResult = results.getValidatorResult("lastName"); assertNotNull("First Name ValidatorResult should not be null.", firstNameResult); assertTrue("First Name ValidatorResult for the '" + ACTION +"' action should have '" + CHECK_MSG_KEY + " as a key.", firstNameResult.field.getArg(0).getKey().equals(CHECK_MSG_KEY)); assertNull("Last Name ValidatorResult should be null.", lastNameResult); }
/** * Get the message associated with the argument. If the resource flag is set * to false, use the text specified in the argument key directly. Otherwise, * create a MessageSourceResolvable with the argument key as its code. */ public static Object getMessage(Arg arg) { if (arg.isResource()) { return MessageUtils.createMessage(arg.getKey()); } else { return arg.getKey(); } }
/** * Replace the arg <code>Collection</code> key value with the key/value * pairs passed in. */ private void processArg(String key, String replaceValue) { for (int i = 0; i < this.args.length; i++) { Map argMap = this.args[i]; if (argMap == null) { continue; } Iterator iter = argMap.values().iterator(); while (iter.hasNext()) { Arg arg = (Arg) iter.next(); if (arg != null) { arg.setKey( ValidatorUtils.replace(arg.getKey(), key, replaceValue)); } } } }
/** * Replace the arg <code>Collection</code> key value with the key/value * pairs passed in. */ private void processArg(String key, String replaceValue) { for (int i = 0; i < this.args.length; i++) { Map<String, Arg> argMap = this.args[i]; if (argMap == null) { continue; } Iterator<Arg> iter = argMap.values().iterator(); while (iter.hasNext()) { Arg arg = iter.next(); if (arg != null) { arg.setKey( ValidatorUtils.replace(arg.getKey(), key, replaceValue)); } } } }
/** * Add an <code>Arg</code> to the replacement argument list. * @since Validator 1.1 * @param arg Validation message's argument. */ public void addArg(Arg arg) { // TODO this first if check can go away after arg0, etc. are removed from dtd if (arg == null || arg.getKey() == null || arg.getKey().length() == 0) { return; } determineArgPosition(arg); ensureArgsCapacity(arg); Map argMap = this.args[arg.getPosition()]; if (argMap == null) { argMap = new HashMap(); this.args[arg.getPosition()] = argMap; } if (arg.getName() == null) { argMap.put(DEFAULT_ARG, arg); } else { argMap.put(arg.getName(), arg); } }
/** * Add an <code>Arg</code> to the replacement argument list. * @since Validator 1.1 * @param arg Validation message's argument. */ public void addArg(Arg arg) { // TODO this first if check can go away after arg0, etc. are removed from dtd if (arg == null || arg.getKey() == null || arg.getKey().length() == 0) { return; } determineArgPosition(arg); ensureArgsCapacity(arg); Map<String, Arg> argMap = this.args[arg.getPosition()]; if (argMap == null) { argMap = new HashMap<String, Arg>(); this.args[arg.getPosition()] = argMap; } if (arg.getName() == null) { argMap.put(DEFAULT_ARG, arg); } else { argMap.put(arg.getName(), arg); } }
/** * Validates a password verification field which requires that the * value exactly match the String value of the bean property * referenced by property argument 1 (probably "password"). * * @param bean containing the fields to validate. * @param Field object containing the property resource info. * */ public static boolean validatePasswordVerification (Object bean, Field field){ boolean valid = false; String pwdv = ValidatorUtils.getValueAsString(bean, field.getProperty()); String pwd = ValidatorUtils.getValueAsString(bean, field.getArg(1).getKey()); // compare the pw verification field to the pw field. if ( (pwd != null && pwdv!=null) && (pwdv.compareTo(pwd)==0) ) valid = true; return valid; }
/** * Gets the message arguments based on the current <code>ValidatorAction</code> * and <code>Field</code>. * * @param actionName action name * @param messages message resources * @param locale the locale * @param field the validator field */ public static String[] getArgs(String actionName, MessageResources messages, Locale locale, Field field) { String[] argMessages = new String[4]; Arg[] args = new Arg[] { field.getArg(actionName, 0), field.getArg(actionName, 1), field.getArg(actionName, 2), field.getArg(actionName, 3) }; for (int i = 0; i < args.length; i++) { if (args[i] == null) { continue; } if (args[i].isResource()) { argMessages[i] = getMessage(messages, locale, args[i].getKey()); } else { argMessages[i] = args[i].getKey(); } } return argMessages; }
public static boolean validate(Object bean, ValidatorAction va, Field field, ActionMessages errors, HttpServletRequest request, ServletContext application) { try { DynaActionForm form = (DynaActionForm) bean; Boolean selectAllBox = (Boolean) form.get(field.getProperty()); String sProperty2 = field.getVarValue("secondProperty"); String[] multiBox = (String[]) form.get(sProperty2); if (((selectAllBox != null) && selectAllBox.booleanValue()) || (multiBox != null) && (multiBox.length > 0)) { return true; } errors.add(field.getKey(), new ActionMessage("errors.required.checkbox", field.getArg(0).getKey())); return false; } catch (Exception e) { errors.add(field.getKey(), new ActionMessage("errors.required.checkbox", field.getArg(0).getKey())); return false; } }
public static boolean validate(Object bean, ValidatorAction va, Field field, ActionMessages errors, HttpServletRequest request, ServletContext application) { try { DynaActionForm form = (DynaActionForm) bean; String sProperty = field.getProperty(); Object[] multiBox = (Object[]) form.get(sProperty); String feminin = field.getVarValue("femininProperty"); if ((multiBox != null) && (multiBox.length > 0)) { return true; } if (feminin != null && feminin.equalsIgnoreCase("true")) { errors.add(field.getKey(), new ActionError("errors.required.a.checkbox", field.getArg(0).getKey())); } else { errors.add(field.getKey(), new ActionError("errors.required.checkbox", field.getArg(0).getKey())); } return false; } catch (Exception e) { errors.add(field.getKey(), new ActionError("errors.required.undefined.checkbox", field.getArg(0).getKey())); return false; } } }