001 package org.gwtbootstrap3.client.ui.form.validator;
002
003 /*
004 * #%L
005 * GwtBootstrap3
006 * %%
007 * Copyright (C) 2015 GwtBootstrap3
008 * %%
009 * Licensed under the Apache License, Version 2.0 (the "License");
010 * you may not use this file except in compliance with the License.
011 * You may obtain a copy of the License at
012 *
013 * http://www.apache.org/licenses/LICENSE-2.0
014 *
015 * Unless required by applicable law or agreed to in writing, software
016 * distributed under the License is distributed on an "AS IS" BASIS,
017 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
018 * See the License for the specific language governing permissions and
019 * limitations under the License.
020 * #L%
021 */
022
023 /**
024 * Should use when implementing classes with {@link Validator}s.
025 *
026 * @param <T> the generic type
027 * @author Steven Jardine
028 */
029 public interface HasValidators<T> {
030
031 /**
032 * Adds the validator.
033 *
034 * @param validator the validator
035 */
036 void addValidator(Validator<T> validator);
037
038 /**
039 * Gets the validate on blur.
040 *
041 * @return the validate on blur
042 */
043 boolean getValidateOnBlur();
044
045 /**
046 * Reset the form element to blank and clear error messages.
047 */
048 void reset();
049
050 /**
051 * Sets the validate on blur.
052 *
053 * @param validateOnBlur the new validate on blur
054 */
055 void setValidateOnBlur(boolean validateOnBlur);
056
057 /**
058 * The validators used to validate this object.
059 *
060 * @param validators the new validators
061 */
062 void setValidators(Validator<T>... validators);
063
064 /**
065 * Validate the field's value using the supplied validators.
066 *
067 * @return true, if valid
068 */
069 boolean validate();
070
071 /**
072 * Validate the field's value using the supplied validators.
073 *
074 * @param show the error to the user.
075 * @return true, if valid
076 */
077 boolean validate(boolean show);
078
079 }