クラス レベルの注釈制約を使用したいと思います。ただし、内部制約を自動的に検証することはできません。この手法に検証グループを組み込むために、一部を支援したいと思います。
@ConstraintA({
@ConstraintB(stuff),
@ConstraintB(stuff, groups=SomeGroup.class)
})
public class Form{
}
私は現在、そのように制約をトリガーしています。
if(constraint instanceof ConstraintB){
new ConstraintBValidator().isValid(target, context);
}
ただし、これは明らかにひどいものです。最終的には AnnotationInvocationHandler.invoke() メソッドを呼び出して isValid メソッドをトリガーするようにリファクタリングしますが、まだ少し先です。
私の問題は、すべての ConstraintB インスタンスが ConstraintA に渡されることです。適切なグループを持つものだけが ConstraintA に渡されることを望みます。この能力が存在するとは思えないので、どのグループがトリガーされる必要があり、どのグループがトリガーされないかをどのように識別できますか?
どのグループをトリガーするかを指定するオブジェクトがデバッグに表示されませんか?
何か案は?