This commit is contained in:
Ilia Kurtov 2017-01-27 18:20:05 +03:00
parent c328f6f18e
commit b0de8da96c
10 changed files with 57 additions and 20 deletions

View File

@ -33,18 +33,40 @@ public class ValidationState implements Serializable {
/**
* Initial state of validation. It indicates that no validation rules applied yet.
*/
public static final ValidationState INITIAL = new ValidationState();
public static final ValidationState INITIAL = new ValidationState(-1);
/**
* Valid state.
*/
public static final ValidationState VALID = new ValidationState();
public static final ValidationState VALID = new ValidationState(-2);
/**
* Error shows when model (e.g. DateTime) is failing on conversion from raw data (e.g. from String) for validation.
*/
public static final ValidationState ERROR_CONVERSION = new ValidationState();
public static final ValidationState ERROR_CONVERSION = new ValidationState(-3);
/**
* Error shows when we don't need to show any description of error (e.g. just highlight input field with red color).
*/
public static final ValidationState ERROR_NO_DESCRIPTION = new ValidationState();
public static final ValidationState ERROR_NO_DESCRIPTION = new ValidationState(-4);
}
private final int code;
public ValidationState(final int code) {
this.code = code;
}
public int getCode() {
return code;
}
@Override
public boolean equals(final Object object) {
return this == object
|| !(object == null || getClass() != object.getClass()) && code == ((ValidationState) object).code;
}
@Override
public int hashCode() {
//TODO
return super.hashCode();
}
}

View File

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

View File

@ -17,10 +17,12 @@
*
*/
package ru.touchin.templates.validation;
package ru.touchin.templates.validation.validationcontrollers;
import android.support.annotation.NonNull;
import ru.touchin.templates.validation.ValidationState;
import ru.touchin.templates.validation.validators.SameTypeValidator;
import rx.Observable;
/**
@ -29,8 +31,8 @@ import rx.Observable;
*/
public class BooleanValidationController extends TwoWayValidationController<Boolean, Boolean, SameTypeValidator<Boolean>> {
public BooleanValidationController(@NonNull final SameTypeValidator<Boolean> validationWrapper) {
super(validationWrapper);
public BooleanValidationController(@NonNull final SameTypeValidator<Boolean> validator) {
super(validator);
}
@NonNull

View File

@ -17,7 +17,7 @@
*
*/
package ru.touchin.templates.validation;
package ru.touchin.templates.validation.validationcontrollers;
import android.support.annotation.NonNull;
import android.text.TextUtils;
@ -25,6 +25,8 @@ import android.text.TextUtils;
import java.io.Serializable;
import ru.touchin.roboswag.core.utils.pairs.NonNullPair;
import ru.touchin.templates.validation.ValidationState;
import ru.touchin.templates.validation.validators.EditTextValidator;
import rx.Observable;
/**

View File

@ -1,9 +1,11 @@
package ru.touchin.templates.validation;
package ru.touchin.templates.validation.validationcontrollers;
import android.support.annotation.NonNull;
import java.io.Serializable;
import ru.touchin.templates.validation.ValidationState;
import ru.touchin.templates.validation.validators.Validator;
import rx.Observable;
public class SimpleValidationController<TModel extends Serializable, TValidator extends Validator<TModel, TModel>>

View File

@ -17,13 +17,16 @@
*
*/
package ru.touchin.templates.validation;
package ru.touchin.templates.validation.validationcontrollers;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import java.io.Serializable;
import ru.touchin.templates.validation.ValidationState;
import ru.touchin.templates.validation.ViewWithError;
import ru.touchin.templates.validation.validators.Validator;
import rx.Observable;
import rx.android.schedulers.AndroidSchedulers;
import rx.functions.Action1;

View File

@ -17,10 +17,12 @@
*
*/
package ru.touchin.templates.validation;
package ru.touchin.templates.validation.validationcontrollers;
import android.support.annotation.NonNull;
import ru.touchin.templates.validation.validators.Validator;
/**
* Created by Ilia Kurtov on 24/01/2017.
* TODO: fill

View File

@ -17,7 +17,7 @@
*
*/
package ru.touchin.templates.validation;
package ru.touchin.templates.validation.validators;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
@ -28,6 +28,8 @@ import ru.touchin.roboswag.core.log.Lc;
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.ValidationState;
import rx.Observable;
import rx.exceptions.OnErrorThrowable;
import rx.functions.Func1;
@ -51,12 +53,12 @@ public abstract class EditTextValidator<TModel extends Serializable> extends Val
return showFullCheck;
}
@Nullable
@NonNull
public Changeable<Func1<TModel, HalfNullablePair<ValidationState, TModel>>> getFinalCheck() {
return finalCheck;
}
@Nullable
@NonNull
public Changeable<Func1<String, HalfNullablePair<ValidationState, TModel>>> getPrimaryCheck() {
return primaryCheck;
}

View File

@ -1,10 +1,12 @@
package ru.touchin.templates.validation;
package ru.touchin.templates.validation.validators;
import android.support.annotation.NonNull;
import java.io.Serializable;
import ru.touchin.templates.validation.ConversionException;
public class SameTypeValidator<TModel extends Serializable> extends Validator<TModel, TModel> {
@NonNull

View File

@ -17,7 +17,7 @@
*
*/
package ru.touchin.templates.validation;
package ru.touchin.templates.validation.validators;
import android.support.annotation.NonNull;
@ -25,6 +25,8 @@ import java.io.Serializable;
import ru.touchin.roboswag.core.observables.Changeable;
import ru.touchin.roboswag.core.observables.NonNullChangeable;
import ru.touchin.templates.validation.ConversionException;
import ru.touchin.templates.validation.ValidationState;
/**
* Created by Ilia Kurtov on 24/01/2017.