diff --git a/src/main/java/ru/touchin/templates/validation/ValidationState.java b/src/main/java/ru/touchin/templates/validation/ValidationState.java index 6cb01a9..eda8260 100644 --- a/src/main/java/ru/touchin/templates/validation/ValidationState.java +++ b/src/main/java/ru/touchin/templates/validation/ValidationState.java @@ -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(); + } + +} \ No newline at end of file diff --git a/src/main/java/ru/touchin/templates/validation/ViewWithError.java b/src/main/java/ru/touchin/templates/validation/ViewWithError.java index 7cc71d4..fffc1c7 100644 --- a/src/main/java/ru/touchin/templates/validation/ViewWithError.java +++ b/src/main/java/ru/touchin/templates/validation/ViewWithError.java @@ -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(); } diff --git a/src/main/java/ru/touchin/templates/validation/BooleanValidationController.java b/src/main/java/ru/touchin/templates/validation/validationcontrollers/BooleanValidationController.java similarity index 87% rename from src/main/java/ru/touchin/templates/validation/BooleanValidationController.java rename to src/main/java/ru/touchin/templates/validation/validationcontrollers/BooleanValidationController.java index 361ea12..6b9e955 100644 --- a/src/main/java/ru/touchin/templates/validation/BooleanValidationController.java +++ b/src/main/java/ru/touchin/templates/validation/validationcontrollers/BooleanValidationController.java @@ -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> { - public BooleanValidationController(@NonNull final SameTypeValidator validationWrapper) { - super(validationWrapper); + public BooleanValidationController(@NonNull final SameTypeValidator validator) { + super(validator); } @NonNull diff --git a/src/main/java/ru/touchin/templates/validation/EditTextValidationController.java b/src/main/java/ru/touchin/templates/validation/validationcontrollers/EditTextValidationController.java similarity index 94% rename from src/main/java/ru/touchin/templates/validation/EditTextValidationController.java rename to src/main/java/ru/touchin/templates/validation/validationcontrollers/EditTextValidationController.java index 9dd6703..93e0650 100644 --- a/src/main/java/ru/touchin/templates/validation/EditTextValidationController.java +++ b/src/main/java/ru/touchin/templates/validation/validationcontrollers/EditTextValidationController.java @@ -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; /** diff --git a/src/main/java/ru/touchin/templates/validation/SimpleValidationController.java b/src/main/java/ru/touchin/templates/validation/validationcontrollers/SimpleValidationController.java similarity index 84% rename from src/main/java/ru/touchin/templates/validation/SimpleValidationController.java rename to src/main/java/ru/touchin/templates/validation/validationcontrollers/SimpleValidationController.java index 1739c4a..824117e 100644 --- a/src/main/java/ru/touchin/templates/validation/SimpleValidationController.java +++ b/src/main/java/ru/touchin/templates/validation/validationcontrollers/SimpleValidationController.java @@ -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> diff --git a/src/main/java/ru/touchin/templates/validation/TwoWayValidationController.java b/src/main/java/ru/touchin/templates/validation/validationcontrollers/TwoWayValidationController.java similarity index 92% rename from src/main/java/ru/touchin/templates/validation/TwoWayValidationController.java rename to src/main/java/ru/touchin/templates/validation/validationcontrollers/TwoWayValidationController.java index 577c939..b7c17c7 100644 --- a/src/main/java/ru/touchin/templates/validation/TwoWayValidationController.java +++ b/src/main/java/ru/touchin/templates/validation/validationcontrollers/TwoWayValidationController.java @@ -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; diff --git a/src/main/java/ru/touchin/templates/validation/ValidationController.java b/src/main/java/ru/touchin/templates/validation/validationcontrollers/ValidationController.java similarity index 89% rename from src/main/java/ru/touchin/templates/validation/ValidationController.java rename to src/main/java/ru/touchin/templates/validation/validationcontrollers/ValidationController.java index 01438a6..307a119 100644 --- a/src/main/java/ru/touchin/templates/validation/ValidationController.java +++ b/src/main/java/ru/touchin/templates/validation/validationcontrollers/ValidationController.java @@ -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 diff --git a/src/main/java/ru/touchin/templates/validation/EditTextValidator.java b/src/main/java/ru/touchin/templates/validation/validators/EditTextValidator.java similarity index 96% rename from src/main/java/ru/touchin/templates/validation/EditTextValidator.java rename to src/main/java/ru/touchin/templates/validation/validators/EditTextValidator.java index 20425a8..7406077 100644 --- a/src/main/java/ru/touchin/templates/validation/EditTextValidator.java +++ b/src/main/java/ru/touchin/templates/validation/validators/EditTextValidator.java @@ -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 extends Val return showFullCheck; } - @Nullable + @NonNull public Changeable>> getFinalCheck() { return finalCheck; } - @Nullable + @NonNull public Changeable>> getPrimaryCheck() { return primaryCheck; } diff --git a/src/main/java/ru/touchin/templates/validation/SameTypeValidator.java b/src/main/java/ru/touchin/templates/validation/validators/SameTypeValidator.java similarity index 76% rename from src/main/java/ru/touchin/templates/validation/SameTypeValidator.java rename to src/main/java/ru/touchin/templates/validation/validators/SameTypeValidator.java index f2af062..bf41b0a 100644 --- a/src/main/java/ru/touchin/templates/validation/SameTypeValidator.java +++ b/src/main/java/ru/touchin/templates/validation/validators/SameTypeValidator.java @@ -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 extends Validator { @NonNull diff --git a/src/main/java/ru/touchin/templates/validation/Validator.java b/src/main/java/ru/touchin/templates/validation/validators/Validator.java similarity index 92% rename from src/main/java/ru/touchin/templates/validation/Validator.java rename to src/main/java/ru/touchin/templates/validation/validators/Validator.java index 795d1f9..348dd44 100644 --- a/src/main/java/ru/touchin/templates/validation/Validator.java +++ b/src/main/java/ru/touchin/templates/validation/validators/Validator.java @@ -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.