All Downloads are FREE. Search and download functionalities are using the official Maven repository.

net.sf.javaprinciples.data.transformer.ValidationResult Maven / Gradle / Ivy

package net.sf.javaprinciples.data.transformer;

import java.io.Serializable;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;

/**
 * A holder of validation results.
 *
 * @author Warwick Slade
 */
public class ValidationResult implements Serializable
{
    public static final String REQUIRED = "it is missing and is a required attribute";
    private static final String FORMAT = "The field %s failed validation because %s.";

    private Map fields = new HashMap();

    public ValidationResult()
    {
    }

    public ValidationResult(String field, String reason)
    {
        fields.put(field, reason);
    }

    public boolean isValid()
    {
        return fields.isEmpty();
    }

    public Set getFields()
    {
        return fields.keySet();
    }

    public String getReason(String fieldName)
    {
        return fields.get(fieldName);
    }

    public String toString()
    {
        if (isValid())
        {
            return "";
        }

        StringBuffer buffer = new StringBuffer();

        for (String field : fields.keySet())
        {
            if (buffer.length() > 0)
            {
                buffer.append(" ");
            }
            String reason = fields.get(field);
            buffer.append(String.format(FORMAT, field, reason));
        }
        return buffer.toString();
    }

    public void add(ValidationResult e)
    {
        if (fields == null)
        {
            throw new RuntimeException("You can not modify the ReadOnly VALID Result");
        }
        fields.putAll(e.fields);
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy