Если вы хотите проверить POJO, вы можете взглянуть на Oval framework http://oval.sourceforge.net/
JSR-303 (и его реализации) также может помочь, если ваше приложение разработано на основе pojos или bean-компонентов
Вот пример пользовательской проверки в OVal:
Допустим, вам нужно проверить карту переменных в SomeValueClass и убедиться, что значение ключа 'приветствие' всегда присутствует.
public class SomeValueClass {
@FormCollection
Map variables;
public static void main(String[] args) {
SomeValueClass svc1 = new SomeValueClass();
svc1.variables = new HashMap();
svc1.variables.put("greeting", "");
Validator validator = new Validator();
List<ConstraintViolation> violations = validator.validate(svc1);
System.out.println("svc1 violations.size() = " + violations.size());
}
Аннотация @FormCollection для «Переменные карты»; пользовательский валидатор, как показано ниже:
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.FIELD, ElementType.PARAMETER, ElementType.METHOD})
@net.sf.oval.configuration.annotation.Constraint(checkWith = FormCollectionCheck.class)
public @interface FormCollection {
String message() default "Some errors in the form";
}
И класс проверки ограничений будет выглядеть так:
public class FormCollectionCheck extends AbstractAnnotationCheck<FormCollection> {
public boolean isSatisfied(Object validatedObject, Object valueToValidate, OValContext context, Validator validator) {
Map vars = (Map) valueToValidate;
return !(vars.get("greeting")==null || ((String)vars.get("greeting")).length()<=0);
}
}
Надеюсь, это поможет,
Приветствия