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

org.jboss.resteasy.plugins.providers.validation.ViolationsContainer Maven / Gradle / Ivy

There is a newer version: 4.0.0.Beta5
Show newest version
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
 */
public class ViolationsContainer implements Serializable
{
   private static final long serialVersionUID = -7895854137980651539L;

   private List fieldViolations       = new ArrayList();
   private List propertyViolations    = new ArrayList();
   private List classViolations       = new ArrayList();
   private List parameterViolations   = new ArrayList();
   private List returnValueViolations = new ArrayList();
   private Exception exception;
   private Object target;

   public ViolationsContainer(final Object target)
   {
      this.target = target;
   }

   public ViolationsContainer(final Set 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 set)
   {
      Iterator 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 getFieldViolations()
   {
      return fieldViolations;
   }

   public List getPropertyViolations()
   {
      return propertyViolations;
   }

   public List getClassViolations()
   {
      return classViolations;
   }

   public List getParameterViolations()
   {
      return parameterViolations;
   }

   public List 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 set)
   {
      StringBuffer sb = new StringBuffer();
      Iterator it = set.iterator();
      while (it.hasNext())
      {
         sb.append(it.next().toString()).append('\r');
      }
      return sb;
   }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy