package net.sourceforge.solexatools.validation; // -*- tab-width: 4 -*-
import net.sourceforge.seqware.common.model.SequencerRunWizardDTO;
import org.springframework.validation.Errors;
import org.springframework.validation.ValidationUtils;
/**
* <p>
* SequencerRunWizardValidator class.
* </p>
*
* @author boconnor
* @version $Id: $Id
*/
public class SequencerRunWizardValidator extends SequencerRunValidator {
/**
* <p>
* Constructor for SequencerRunWizardValidator.
* </p>
*/
public SequencerRunWizardValidator() {
super();
}
/**
* {@inheritDoc}
*
* @param clazz
* @return
*/
@Override
public boolean supports(Class clazz) {
return SequencerRunWizardDTO.class.equals(clazz);
}
/**
* {@inheritDoc}
*
* Validates the specified Object.
*
* @param obj
* @param errors
*/
@Override
public void validate(Object obj, Errors errors) {
SequencerRunWizardDTO sequencerRunWizardDTO = (SequencerRunWizardDTO) obj;
this.validateName(sequencerRunWizardDTO.getName(), errors);
ValidationUtils.rejectIfEmpty(errors, "name", "sequencerRun.required.name");
this.validateRefLane(sequencerRunWizardDTO, errors);
this.validateLaneCount(sequencerRunWizardDTO, errors);
}
/**
* <p>
* validateLaneCount.
* </p>
*
* @param sequencerRunWizardDTO
* a {@link net.sourceforge.seqware.common.model.SequencerRunWizardDTO} object.
* @param errors
* a {@link org.springframework.validation.Errors} object.
*/
public void validateLaneCount(SequencerRunWizardDTO sequencerRunWizardDTO, Errors errors) {
if (errors.getFieldError("strLaneCount") == null) {
boolean isHasError = false;
String strLaneCount = sequencerRunWizardDTO.getStrLaneCount();
if (strLaneCount != null && !strLaneCount.isEmpty()) {
Integer laneCount = null;
try {
laneCount = Integer.parseInt(strLaneCount);
} catch (Exception e) {
isHasError = true;
errors.reject("sequencerRunWizardDTO.error.type.laneCont");
}
if (!isHasError) {
if (laneCount < 1) {
isHasError = true;
errors.reject("sequencerRunWizardDTO.error.value.laneCont");
}
}
if (!isHasError) {
sequencerRunWizardDTO.setLaneCount(laneCount);
}
}
}
}
}
// ex:sw=4:ts=4: