
com.threatconnect.app.addons.util.config.validation.JobValidator Maven / Gradle / Ivy
package com.threatconnect.app.addons.util.config.validation;
import com.threatconnect.app.addons.util.config.install.Job;
import com.threatconnect.app.addons.util.config.install.JobParam;
/**
* @author Greg Marut
*/
public class JobValidator extends Validator
{
public final boolean allowVariables;
public JobValidator()
{
this(true);
}
public JobValidator(final boolean allowVariables)
{
this.allowVariables = allowVariables;
}
@Override
public void validate(final Job object) throws ValidationException
{
//make sure the source name is defined
if (isNullOrEmpty(object.getJobName()))
{
throwMissingFieldValidationException("jobName", object);
}
//make sure the source name is defined
if (isNullOrEmpty(object.getProgramName()))
{
throwMissingFieldValidationException("programName", object);
}
//make sure the source category is defined
if (isNullOrEmpty(object.getProgramVersion()))
{
throwMissingFieldValidationException("programVersion", object);
}
//create a new job param validator
JobParamValidator jobParamValidator = new JobParamValidator(allowVariables);
for(JobParam jobParam : object.getParams())
{
jobParamValidator.validate(jobParam);
}
}
private void throwMissingFieldValidationException(final String missingFieldName, final Job object)
throws ValidationException
{
StringBuilder sb = new StringBuilder();
sb.append("No ");
sb.append(missingFieldName);
sb.append(" is defined for job");
//try to find a value to reference when identifying the parameter
if (!isNullOrEmpty(object.getJobName()))
{
sb.append(" ");
sb.append(object.getJobName());
}
throw new ValidationException(sb.toString());
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy