Fight the Future

Java言語とJVM、そしてJavaエコシステム全般にまつわること

Re:Bean Validation (JSR 303) hits proposed final draft

JSR303 Bean Validationのfinal draftが出たらしい。


バリデータ自体はこんな感じで作るみたい。

@Constraint(validatedBy = 
  { SizeValidatorForString.class, SizeValidatorForCollection.class } ) 
public @interface Size { 

  String message() default "{constraint.size}"; 
  
  Class<?>[] groups() default {}; 

  int min() default 0; 

  int max() default Integer.MAX_VALUE; 
} 

public class SizeValidatorForString implements<Size, String> { 
  
  public void initialize(Size size) {} 
  
  public boolean isValid(String value, 
             ConstraintValidatorContext context) {} 
} 

public class SizeValidatorForCollection implements<Size, Collection> { 

  public void initialize(Size size) {} 

  public boolean isValid(Collection value, 
              ConstraintValidatorContext context) {} 
}
In Relation To...  Bean Validation (JSR 303) hits proposed final draft


で、バリデーションをかけたいクラスにアノテーションをつける、と。

@Size //invalid usage of @Size Number number;
Number number;

@Pattern(regexp="[0-9]*")
String number;

@Max(500000)
BigDecimal salary;

@DecimalMax("27.5")
BigDecimal luggageWeight;
In Relation To...  Bean Validation (JSR 303) hits proposed final draft


いい感じなんじゃないでしょうか。
こういうのは標準化してもらう方がいいですね。