001/*
002 * #%L
003 * GwtBootstrap3
004 * %%
005 * Copyright (C) 2015 GwtBootstrap3
006 * %%
007 * Licensed under the Apache License, Version 2.0 (the "License");
008 * you may not use this file except in compliance with the License.
009 * You may obtain a copy of the License at
010 * 
011 *      http://www.apache.org/licenses/LICENSE-2.0
012 * 
013 * Unless required by applicable law or agreed to in writing, software
014 * distributed under the License is distributed on an "AS IS" BASIS,
015 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
016 * See the License for the specific language governing permissions and
017 * limitations under the License.
018 * #L%
019 */
020package gwt.material.design.client.base.validator;
021
022import gwt.material.design.client.base.validator.ValidationMessages.Keys;
023
024import java.util.Collection;
025
026/**
027 * Validator for blank field validation.
028 *
029 * @param <T> the generic type
030 * @author Steven Jardine
031 */
032public class BlankValidator<T> extends AbstractValidator<T> {
033
034    /**
035     * Constructor.
036     */
037    public BlankValidator() {
038        super(Keys.BLANK, new Object[0]);
039    }
040
041    /**
042     * Constructor.
043     *
044     * @param invalidMessageOverride the invalid message override
045     */
046    public BlankValidator(String invalidMessageOverride) {
047        super(invalidMessageOverride);
048    }
049
050    /**
051     * {@inheritDoc}
052     */
053    @Override
054    public int getPriority() {
055        return Priority.LOWEST;
056    }
057
058    /**
059     * {@inheritDoc}
060     */
061    @Override
062    public boolean isValid(T value) {
063        if (value instanceof Collection<?>) {
064            return ((Collection<?>) value).size() > 0;
065        }
066        return value != null && !"".equals(value.toString());
067    }
068}