public Builder(String validatorType) { target = new ValidatorConfig(validatorType); }
public Validator getValidator(ValidatorConfig cfg) { String className = lookupRegisteredValidatorType(cfg.getType()); Validator validator; try { // instantiate the validator, and set configured parameters //todo - can this use the ThreadLocal? validator = objectFactory.buildValidator(className, cfg.getParams(), ActionContext.getContext().getContextMap()); } catch (Exception e) { final String msg = "There was a problem creating a Validator of type " + className + " : caused by " + e.getMessage(); throw new XWorkException(msg, e, cfg); } // set other configured properties validator.setMessageKey(cfg.getMessageKey()); validator.setDefaultMessage(cfg.getDefaultMessage()); validator.setMessageParameters(cfg.getMessageParams()); if (validator instanceof ShortCircuitableValidator) { ((ShortCircuitableValidator) validator).setShortCircuit(cfg.isShortCircuit()); } return validator; }
public synchronized List<Validator> getValidators(Class clazz, String context, String method) { final String validatorKey = buildValidatorKey(clazz, context); if (validatorCache.containsKey(validatorKey)) { if (reloadingConfigs) { validatorCache.put(validatorKey, buildValidatorConfigs(clazz, context, true, null)); } } else { validatorCache.put(validatorKey, buildValidatorConfigs(clazz, context, false, null)); } ValueStack stack = ActionContext.getContext().getValueStack(); // get the set of validator configs List<ValidatorConfig> cfgs = validatorCache.get(validatorKey); // create clean instances of the validators for the caller's use ArrayList<Validator> validators = new ArrayList<Validator>(cfgs.size()); for (ValidatorConfig cfg : cfgs) { if (method == null || method.equals(cfg.getParams().get("methodName"))) { Validator validator = validatorFactory.getValidator(cfg); validator.setValidatorType(cfg.getType()); validator.setValueStack(stack); validators.add(validator); } } return validators; }
public List<Validator> getValidators(Class clazz, String context, String method) { final String validatorKey = buildValidatorKey(clazz, context); final List<ValidatorConfig> cfgs; if (validatorCache.containsKey(validatorKey)) { if (reloadingConfigs) { validatorCache.put(validatorKey, buildValidatorConfigs(clazz, context, true, null)); } } else { validatorCache.put(validatorKey, buildValidatorConfigs(clazz, context, false, null)); } // get the set of validator configs cfgs = new ArrayList<ValidatorConfig>(validatorCache.get(validatorKey)); ValueStack stack = ActionContext.getContext().getValueStack(); // create clean instances of the validators for the caller's use ArrayList<Validator> validators = new ArrayList<Validator>(cfgs.size()); for (ValidatorConfig cfg : cfgs) { if (method == null || method.equals(cfg.getParams().get("methodName"))) { Validator validator = validatorFactory.getValidator( new ValidatorConfig.Builder(cfg) .removeParam("methodName") .build()); validator.setValidatorType(cfg.getType()); validator.setValueStack(stack); validators.add(validator); } } return validators; }
public Builder(ValidatorConfig config) { target = new ValidatorConfig(config); }
public ValidatorConfig build() { target.params = Collections.unmodifiableMap(target.params); ValidatorConfig result = target; target = new ValidatorConfig(target); return result; }