package org.jboss.resteasy.plugins.providers.validation;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Set;
import org.jboss.resteasy.api.validation.ResteasyConstraintViolation;
Author: Ron Sigal Version: $Revision: 1.1 $
Copyright Mar 6, 2012
/**
* @author <a href="ron.sigal@jboss.com">Ron Sigal</a>
* @version $Revision: 1.1 $
*
* Copyright Mar 6, 2012
*/
public class ViolationsContainer<T> implements Serializable
{
private static final long serialVersionUID = -7895854137980651539L;
private List<ResteasyConstraintViolation> fieldViolations = new ArrayList<ResteasyConstraintViolation>();
private List<ResteasyConstraintViolation> propertyViolations = new ArrayList<ResteasyConstraintViolation>();
private List<ResteasyConstraintViolation> classViolations = new ArrayList<ResteasyConstraintViolation>();
private List<ResteasyConstraintViolation> parameterViolations = new ArrayList<ResteasyConstraintViolation>();
private List<ResteasyConstraintViolation> returnValueViolations = new ArrayList<ResteasyConstraintViolation>();
private Exception exception;
private Object target;
public ViolationsContainer(final Object target)
{
this.target = target;
}
public ViolationsContainer(final Set<ResteasyConstraintViolation> set)
{
addViolations(set);
}
public Exception getException()
{
return exception;
}
public void setException(Exception exception)
{
this.exception = exception;
}
public Object getTarget()
{
return target;
}
public void setTarget(Object target)
{
this.target = target;
}
public void addViolations(Set<? extends ResteasyConstraintViolation> set)
{
Iterator<? extends ResteasyConstraintViolation> it = set.iterator();
while (it.hasNext())
{
ResteasyConstraintViolation violation = it.next();
switch (violation.getConstraintType())
{
case FIELD:
fieldViolations.add(violation);
break;
case PROPERTY:
propertyViolations.add(violation);
break;
case CLASS:
classViolations.add(violation);
break;
case PARAMETER:
parameterViolations.add(violation);
break;
case RETURN_VALUE:
returnValueViolations.add(violation);
break;
}
}
}
public void addFieldViolation(ResteasyConstraintViolation v)
{
fieldViolations.add(v);
}
public void addPropertyViolation(ResteasyConstraintViolation v)
{
propertyViolations.add(v);
}
public void addClassViolation(ResteasyConstraintViolation v)
{
classViolations.add(v);
}
public void addParameterViolation(ResteasyConstraintViolation v)
{
parameterViolations.add(v);
}
public void addReturnValueViolation(ResteasyConstraintViolation v)
{
returnValueViolations.add(v);
}
public List<ResteasyConstraintViolation> getFieldViolations()
{
return fieldViolations;
}
public List<ResteasyConstraintViolation> getPropertyViolations()
{
return propertyViolations;
}
public List<ResteasyConstraintViolation> getClassViolations()
{
return classViolations;
}
public List<ResteasyConstraintViolation> getParameterViolations()
{
return parameterViolations;
}
public List<ResteasyConstraintViolation> getReturnValueViolations()
{
return returnValueViolations;
}
public int size()
{
return fieldViolations.size() +
propertyViolations.size() +
classViolations.size() +
parameterViolations.size() +
returnValueViolations.size();
}
public String toString()
{
StringBuffer sb = setToStringBuffer(fieldViolations);
sb.append(setToStringBuffer(propertyViolations));
sb.append(setToStringBuffer(classViolations));
sb.append(setToStringBuffer(parameterViolations));
sb.append(setToStringBuffer(returnValueViolations));
return sb.toString();
}
private StringBuffer setToStringBuffer(List<ResteasyConstraintViolation> set)
{
StringBuffer sb = new StringBuffer();
Iterator<ResteasyConstraintViolation> it = set.iterator();
while (it.hasNext())
{
sb.append(it.next().toString()).append('\r');
}
return sb;
}
}