package com.vst.webapp.validators;
import com.vst.model.CategoryParameter;
import com.vst.model.DefectCategory;
import com.vst.service.DefectCategoryManager;
import org.springframework.validation.Errors;
import org.springframework.validation.Validator;
import java.util.List;
/**
* Created by IntelliJ IDEA.
* User: ALEXEI
* Date: 05.01.2008
* Time: 0:16:07
* To change this template use File | Settings | File Templates.
*/
public class DefectCategoryValidator implements Validator {
private DefectCategoryManager defectCategoryManager;
public void setDefectCategoryManager(DefectCategoryManager defectCategoryManager) {
this.defectCategoryManager = defectCategoryManager;
}
public boolean supports(Class candidate) {
return DefectCategory.class.isAssignableFrom(candidate);
}
public void validate(Object obj, Errors errors) {
DefectCategory defectCategory = (DefectCategory) obj;
//checking if the object type is correct
if (defectCategory.getDefectType().getDefectTypeId().equals(new Long(-1))) {
errors.rejectValue("defectType", "defectCategory.noDefectType");
}
//checking if the defect varity chosen
if (defectCategory.getDefectVarity().getVarityId().equals(new Long(-1))) {
errors.rejectValue("defectVarity", "defectCategory.noDefectVarity");
}
//checking if constructiontype is chosen
if (defectCategory.getConstructionType().getConstructionTypeId().equals(new Long(-1))) {
errors.rejectValue("constructionType", "defectCategory.noConstructionType");
}
//checking if defect zone is chosen
if (defectCategory.getDefectZone().getDefectZoneId().equals(new Long(-1))) {
errors.rejectValue("defectZone", "defectCategory.noDefectZone");
}
//checking if defect category name is chosen
if (defectCategory.getDefectCategoryName().getDefectCategoryNameId().equals(new Long(-1))) {
errors.rejectValue("defectZone", "defectCategory.noDefectCategoryName");
}
List borderParameters = defectCategory.getCategoryParameters();
for (int i = 0; i < borderParameters.size(); i++) {
CategoryParameter categoryParameter = (CategoryParameter) borderParameters.get(i);
if (categoryParameter.getParameterValue()==0) {
errors.rejectValue("categoryParameters[" + i + "]", "defectCategory.noCategoryParameter");
}
}
if(!defectCategoryManager.isUniqueDefectCategory(defectCategory)){
errors.rejectValue("defectCategoryId","defectCategory.notUnique");
}
}
}