Я просто начал использовать андроидскую сарипаарную библиотеку для приложения клиента. Я хотел добавить пользовательскую проверку для поля. Однако, похоже, не существует способа создания пользовательской аннотации. Я должен вручную ввести правило в валидаторе.
Как создать пользовательскую аннотацию для нее?
(Раскрытие информации: Я автор)
Saripaar v2 позволяет вам определять пользовательские аннотации.
Вот как вы это делаете.
Шаг 1 Определите свою пользовательскую аннотацию следующим образом. Убедитесь, что у вас есть политика хранения RUNTIME
и ваша аннотация должна быть нацелена на типы элементов FIELD
. messageResId
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 }
Шаг 2 Определите свое правило, расширив класс AnnotationRule
.
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.