Package br.com.caelum.stella.validation

Source Code of br.com.caelum.stella.validation.BaseValidator

package br.com.caelum.stella.validation;

import java.util.ArrayList;
import java.util.List;

import br.com.caelum.stella.MessageProducer;
import br.com.caelum.stella.SimpleMessageProducer;
import br.com.caelum.stella.ValidationMessage;

/**
* <p>
* Esta classe serve como base para validadores utilizados no Caelum Stella
* Core. Ela é responsável por extrair {@linkplain ValidationMessage} de um
* {@link MessageProducer}.
* </p>
* <p>
* O {@link MessageProducer} pode ser passado pelo construtor. Assim, através
* dos métodos {@link #generateValidationMessages(List)} e
* {@link #assertValid(List)} as mensagens de validação são geradas.
* </p>
*
* @author leobessa
*/
public class BaseValidator {
    private final MessageProducer messageProducer;

    /**
     * Utiliza um {@linkplain SimpleMessageProducer}.
     */
    public BaseValidator() {
        this.messageProducer = new SimpleMessageProducer();
    }

    /**
     * @param messageProducer produtor das mensagens de validação.
     */
    public BaseValidator(MessageProducer messageProducer) {
        this.messageProducer = messageProducer;
    }

   
    /**
     * @param invalidValues lista de valores que descrevem erros de validação.
     * @return lista de mensagens inválidas obtida pelo produto de mensagem.
     */
    public List<ValidationMessage> generateValidationMessages(
            List<InvalidValue> invalidValues) {
        List<ValidationMessage> messages = new ArrayList<ValidationMessage>();
        for (InvalidValue invalidValue : invalidValues) {
            ValidationMessage message = messageProducer
                    .getMessage(invalidValue);
            messages.add(message);
        }
        return messages;
    }
    /**
     * @param invalidValues lista de valores que descrevem erros de validação.
     * @throws InvalidStateException caso a lista não esteja vazia.
     */
    public void assertValid(List<InvalidValue> invalidValues) {
        if (!invalidValues.isEmpty()) {
            throw new InvalidStateException(
                    generateValidationMessages(invalidValues));
        }
    }

}
TOP

Related Classes of br.com.caelum.stella.validation.BaseValidator

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.