updated validation

This commit is contained in:
Ilia Kurtov 2017-01-30 14:12:58 +03:00
parent b0de8da96c
commit c1849585be
5 changed files with 26 additions and 11 deletions

View File

@ -0,0 +1,12 @@
package ru.touchin.templates.validation;
import android.support.annotation.NonNull;
import java.io.Serializable;
public interface ValidationFunc<TInput, TReturn> extends Serializable {
@NonNull
TReturn call(@NonNull final TInput input);
}

View File

@ -65,8 +65,7 @@ public class ValidationState implements Serializable {
@Override
public int hashCode() {
//TODO
return super.hashCode();
return 31 * code;
}
}

View File

@ -19,6 +19,8 @@
package ru.touchin.templates.validation;
import android.support.annotation.NonNull;
/**
* Created by Ilia Kurtov on 24/01/2017.
* TODO: fill
@ -27,6 +29,6 @@ public interface ViewWithError {
void hideError();
void showError();
void showError(@NonNull final ValidationState validationState);
}

View File

@ -67,7 +67,7 @@ public abstract class TwoWayValidationController
}
protected boolean showError(@NonNull final ValidationState validationState) {
return validationState != ValidationState.VALID && validationState != ValidationState.INITIAL;
return !validationState.equals(ValidationState.VALID) && !validationState.equals(ValidationState.INITIAL);
}
}

View File

@ -29,6 +29,7 @@ import ru.touchin.roboswag.core.observables.Changeable;
import ru.touchin.roboswag.core.observables.NonNullChangeable;
import ru.touchin.roboswag.core.utils.pairs.HalfNullablePair;
import ru.touchin.templates.validation.ConversionException;
import ru.touchin.templates.validation.ValidationFunc;
import ru.touchin.templates.validation.ValidationState;
import rx.Observable;
import rx.exceptions.OnErrorThrowable;
@ -44,9 +45,9 @@ public abstract class EditTextValidator<TModel extends Serializable> extends Val
@NonNull
private final NonNullChangeable<Boolean> showFullCheck = new NonNullChangeable<>(false);
@NonNull
private final Changeable<Func1<TModel, HalfNullablePair<ValidationState, TModel>>> finalCheck = new Changeable<>(null);
private final Changeable<ValidationFunc<TModel, HalfNullablePair<ValidationState, TModel>>> finalCheck = new Changeable<>(null);
@NonNull
private final Changeable<Func1<String, HalfNullablePair<ValidationState, TModel>>> primaryCheck = new Changeable<>(null);
private final Changeable<ValidationFunc<String, HalfNullablePair<ValidationState, TModel>>> primaryCheck = new Changeable<>(null);
@NonNull
public NonNullChangeable<Boolean> getShowFullCheck() {
@ -54,19 +55,19 @@ public abstract class EditTextValidator<TModel extends Serializable> extends Val
}
@NonNull
public Changeable<Func1<TModel, HalfNullablePair<ValidationState, TModel>>> getFinalCheck() {
public Changeable<ValidationFunc<TModel, HalfNullablePair<ValidationState, TModel>>> getFinalCheck() {
return finalCheck;
}
@NonNull
public Changeable<Func1<String, HalfNullablePair<ValidationState, TModel>>> getPrimaryCheck() {
public Changeable<ValidationFunc<String, HalfNullablePair<ValidationState, TModel>>> getPrimaryCheck() {
return primaryCheck;
}
@NonNull
private HalfNullablePair<ValidationState, TModel> validateText(
@Nullable final Func1<TModel, HalfNullablePair<ValidationState, TModel>> finalCheck,
@Nullable final Func1<String, HalfNullablePair<ValidationState, TModel>> primaryCheck,
@Nullable final ValidationFunc<TModel, HalfNullablePair<ValidationState, TModel>> finalCheck,
@Nullable final ValidationFunc<String, HalfNullablePair<ValidationState, TModel>> primaryCheck,
@NonNull final String text, final boolean fullCheck)
throws ConversionException {
if (primaryCheck == null && finalCheck == null) {
@ -122,7 +123,8 @@ public abstract class EditTextValidator<TModel extends Serializable> extends Val
@NonNull
public Observable<HalfNullablePair<ValidationState, TModel>> fullValidateAndGetModel(@NonNull final String text) {
return createValidationObservable(text, true);
return createValidationObservable(text, true)
.first();
}
}