package net.sourceforge.cruisecontrol.dashboard.web.validator;
import net.sourceforge.cruisecontrol.dashboard.service.ConfigurationService;
import net.sourceforge.cruisecontrol.dashboard.web.command.ForceBuildCommand;
import org.springframework.validation.Errors;
import org.springframework.validation.Validator;
import java.io.File;
import java.util.Collection;
public class ForceBuildValidator implements Validator {
private final ConfigurationService configuration;
public ForceBuildValidator(ConfigurationService configuration) {
this.configuration = configuration;
}
public boolean supports(Class clazz) {
return ForceBuildCommand.class.equals(clazz);
}
public void validate(Object commandObj, Errors error) {
ForceBuildCommand command = (ForceBuildCommand) commandObj;
File project = configuration.getLogRoot(command.getProjectName());
Collection discontinuedProjects = configuration.getDiscontinuedProjects();
if (!configuration.isForceBuildEnabled() || discontinuedProjects.contains(project)) {
error.reject("project is inactive");
}
}
}