/** * Creates new violation. * @param name violation name inside of validation context * @param validatedObject object that is validated * @param invalidValue invalid value that is cause of violation * @param check {@link Check check} that made validation. */ public Violation(final String name, final Object validatedObject, final Object invalidValue, final Check check) { this.name = name; this.validatedObject = validatedObject; this.invalidValue = invalidValue; this.check = check; this.constraint = check != null ? check.getConstraint() : null; }
/** * Performs validation of provided validation context and appends violations. */ public List<Violation> validate(final ValidationContext ctx, final Object target, final String targetName) { for (Map.Entry<String, List<Check>> entry : ctx.map.entrySet()) { String name = entry.getKey(); Object value = BeanUtil.declaredSilent.getProperty(target, name); String valueName = targetName != null ? (targetName + '.' + name) : name; // move up ValidationConstraintContext vcc = new ValidationConstraintContext(this, target, valueName); for (Check check : entry.getValue()) { String[] checkProfiles = check.getProfiles(); if (!matchProfiles(checkProfiles)) { continue; } if (check.getSeverity() < severity) { continue; } ValidationConstraint constraint = check.getConstraint(); if (!constraint.isValid(vcc, value)) { addViolation(new Violation(valueName, target, value, check)); } } } return getViolations(); }
/** * Creates new violation. * @param name violation name inside of validation context * @param validatedObject object that is validated * @param invalidValue invalid value that is cause of violation * @param check {@link Check check} that made validation. */ public Violation(String name, Object validatedObject, Object invalidValue, Check check) { this.name = name; this.validatedObject = validatedObject; this.invalidValue = invalidValue; this.check = check; this.constraint = check != null ? check.getConstraint() : null; }
/** * Performs validation of provided validation context and appends violations. */ public void validate(ValidationContext ctx, Object target, String targetName) { for (Map.Entry<String, List<Check>> entry : ctx.map.entrySet()) { String name = entry.getKey(); Object value = BeanUtil.getDeclaredPropertySilently(target, name); String valueName = targetName != null ? (targetName + '.' + name) : name; // move up ValidationConstraintContext vcc = new ValidationConstraintContext(this, target, valueName); for (Check check : entry.getValue()) { String[] checkProfiles = check.getProfiles(); if (matchProfiles(checkProfiles) == false) { continue; } if (check.getSeverity() < severity) { continue; } ValidationConstraint constraint = check.getConstraint(); if (constraint.isValid(vcc, value) == false) { addViolation(new Violation(valueName, target, value, check)); } } } }