package br.com.ilhasoft.support.validation.rule; import android.view.View; /** * Created by john-mac on 5/14/16. */ public abstract class Rule<ViewType extends View, ValueType> { protected ValueType value; protected ViewType view; protected String errorMessage; public Rule(ViewType view, ValueType value, String errorMessage) { this.view = view; this.value = value; this.errorMessage = errorMessage; } public final boolean validate() { final boolean valid = isValid(view); if (valid) { onValidationSucceeded(view); } else { onValidationFailed(view); } return valid; } protected abstract boolean isValid(ViewType view); protected void onValidationSucceeded(ViewType view) {} protected void onValidationFailed(ViewType view) {} public ViewType getView() { return view; } }