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

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

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

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.

Другие вопросы по тегам