クライアントのアプリに Android saripaar ライブラリを使い始めました。フィールドのカスタム検証を追加したいと考えていました。ただし、カスタム アノテーションを作成する方法はないようです。バリデーターにルールを手動で入力する必要があります。
同じカスタム注釈を作成するにはどうすればよいですか?
クライアントのアプリに Android saripaar ライブラリを使い始めました。フィールドのカスタム検証を追加したいと考えていました。ただし、カスタム アノテーションを作成する方法はないようです。バリデーターにルールを手動で入力する必要があります。
同じカスタム注釈を作成するにはどうすればよいですか?
(開示:私は著者です)
Saripaar v2では、カスタム アノテーションを定義できます。
方法は次のとおりです。
ステップ 1カスタム アノテーションを次のように定義します。RUNTIME
保持ポリシーがあり、注釈がFIELD
要素タイプを対象としている必要があることを確認してください。および属性は必須であるため、名前とタイプに注意してくださいmessage
。messageResId
@ValidateUsing(HaggleRule.class)
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.FIELD)
public @interface Haggle {
public int messageResId() default -1; // Mandatory attribute
public String message() default "Oops... too pricey"; // Mandatory attribute
public int sequence() default -1; // Mandatory attribute
public double maximumAskingPrice(); // Your attributes
}
ステップ 2AnnotationRule
クラスを拡張してルールを定義します。
public class HaggleRule extends AnnotationRule<Haggle, Double> {
protected HaggleRule(Haggle haggle) {
super(haggle);
}
@Override
public boolean isValid(Double data) {
boolean isValid = false;
double maximumAskingPrice = mRuleAnnotation.maximumAskingPrice();
// Do some clever validation....
return isValid;
}
}
ステップ 3ルールを登録します。
Validator.registerAnnotation(Haggle.class); // Your annotation class instance
そのような単純な。必要に応じてソースコードを見てください。Saripaar v2 が Maven Central で利用できるようになりました。