package com.vst.webapp.validators;
import com.vst.model.Diameter;
import com.vst.model.Thickness;
import com.vst.service.DiameterManager;
import com.vst.service.GostManager;
import org.springframework.validation.Errors;
import org.springframework.validation.Validator;
import java.util.List;
/**
* Created by IntelliJ IDEA.
* User: And Lilia
* Date: 13.05.2009
* Time: 18:10:29
* To change this template use File | Settings | File Templates.
*/
public class DiameterValidator implements Validator {
DiameterManager diameterManager;
GostManager gostManager;
public void setGostManager(GostManager gostManager) {
this.gostManager = gostManager;
}
public void setDiameterManager(DiameterManager diameterManager) {
this.diameterManager = diameterManager;
}
public boolean supports(Class aClass) {
return Diameter.class.isAssignableFrom(aClass);
}
public void validate(Object o, Errors errors)
{
System.out.println("VALIDATION ======================== ");
Diameter diameter=(Diameter)o;
if (diameter.getThicknessList()==null || diameter.getThicknessList().isEmpty() || diameter.getThicknessList().size()<=0 || diameter.getDiametrCount()==null || diameter.getGost().getGostId()==null || diameter.getGost().getGostId().equals(new Integer(-1)))
{
if (diameter.getThicknessList()==null || diameter.getThicknessList().isEmpty() || diameter.getThicknessList().size()<=0)
{
errors.rejectValue("thicknessList","diameter.thicknessList.error");
}
if (diameter.getDiametrCount()==null)
{
errors.rejectValue("diametrCount","diameterCount.error");
}
if (diameter.getGost().getGostId().equals(new Integer(-1)) || diameter.getGost().getGostId()==null)
{
System.out.println("GOST EXEPTION ============== ");
errors.rejectValue("gost","diameter.gost.error");
}
}
else
{
boolean ok=true;
List list=diameter.getThicknessList();
System.out.println("SIZEEE === "+list.size());
for (int i=0; i<list.size(); i++){
Thickness e=(Thickness)list.get(i);
if (e.getThicknessId().equals(null) || e.getThicknessId().equals(new Integer(-1))){
ok=false;
errors.rejectValue("thicknessList["+i+"]","thicknessCount.error") ;
}
}
if (ok)
{
diameter.setGost(gostManager.getGostById(diameter.getGost().getGostId()));
if (diameterManager.exist(diameter) && diameter.getDiametrId()==null)
{
errors.rejectValue("diametrId","diameter.error");
}
}
}
}
}