Annotation Type PropertyValidator


  • @Repeatable(PropertyValidators.class)
    @Retention(RUNTIME)
    @Target({FIELD,METHOD})
    @Constraint(validatedBy=PropertyValidatorValidator.class)
    public @interface PropertyValidator
    The validator execute validation logic on the value assigned to the property just before storing.

    Applies to properties.

    Example:

      @PropertyValidator(UnitPriceValidator.class)
      private BigDecimal unitPrice;
     
    PropertyValidator is also implemented as a Hibernate validation, therefore it's executed when you save using JPA or Hibernate API, with the exception of onlyOnCreate=true, in this last case the validation is only applied when you save with OpenXava (using MapFacade or standard OX actions).
    Author:
    Javier Paniza
    • Required Element Summary

      Required Elements 
      Modifier and Type Required Element Description
      java.lang.Class value
      Class with the validation logic.
    • Optional Element Summary

      Optional Elements 
      Modifier and Type Optional Element Description
      java.lang.Class<?>[] groups  
      java.lang.String message
      The message to be shown if validation fails.
      boolean onlyOnCreate
      If true the validator is executed only when creating a new object, not when an existing object is modified.
      java.lang.Class<? extends javax.validation.Payload>[] payload  
      PropertyValue[] properties
      To set values to the validator properties before executing it.
    • Element Detail

      • value

        java.lang.Class value
        Class with the validation logic.

        Must implements IPropertyValidator.

      • properties

        PropertyValue[] properties
        To set values to the validator properties before executing it.
        Default:
        {}
      • onlyOnCreate

        boolean onlyOnCreate
        If true the validator is executed only when creating a new object, not when an existing object is modified.
        Default:
        false
      • message

        java.lang.String message
        The message to be shown if validation fails.

        The validator class have to implement IWithMessage to receive this message.
        If not specified the message is not injected in the validator, in this case the validator should produce an appropriate default message.
        You can specify an id of the messages i18n file using braces:

         message="{color_not_available}"
         
        Or directly the message:
         message="That color is not available. This car can be only red or yellow"
         
        Default:
        ""
      • groups

        java.lang.Class<?>[] groups
        Default:
        {}
      • payload

        java.lang.Class<? extends javax.validation.Payload>[] payload
        Default:
        {}