Добавление пользовательской аннотации к Android Saripaar

Я только начал использовать android saripaar library для клиентского приложения. Я хотел добавить пользовательскую проверку для поля. Однако, похоже, не существует способа создания пользовательской аннотации. Я должен вручную ввести правило в валидаторе.

Как создать пользовательскую аннотацию для того же?

Ответ 1

(Раскрытие: я автор)

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
}

Шаг 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.