/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package bean303;

import java.util.Date;
import java.util.Set;
import javax.validation.ConstraintViolation;
import javax.validation.Validation;
import javax.validation.Validator;
import javax.validation.ValidatorFactory;
import javax.validation.constraints.AssertFalse;
import javax.validation.constraints.DecimalMax;
import javax.validation.constraints.Digits;
import javax.validation.constraints.Future;
import javax.validation.constraints.Max;

/**
 *
 * @author x
 */
public class AnnoBeispiele {

  @DecimalMax("42")
  private double a;
  @AssertFalse
  private Boolean b;
  @Future
  private Date c;
  @Max(45)
  private double d;
  @ModulCheck(true)
  private int e;

  public AnnoBeispiele(int e) {
    this.e = e;
  }

    public int analyse(AnnoBeispiele o, Class... cl) {
    System.out.println("Analyse von " + o);
    ValidatorFactory factory = Validation.buildDefaultValidatorFactory();
    Validator validator = factory.getValidator();
    Set<ConstraintViolation<AnnoBeispiele>> cv =
            validator.validate(o, cl);
    for (ConstraintViolation<AnnoBeispiele> c : cv) {
      System.out.println(" :: " + c.getMessage()+" : "
              +c.getInvalidValue()+" : "
              + c.getPropertyPath()+ " : "
              + c.getRootBean());
    }
    return cv.size();
  }

  public static void main(String[] s) {
    AnnoBeispiele ab = new AnnoBeispiele(42);
    ab.analyse(ab);
  }
}
