All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.threatconnect.app.addons.util.config.validation.JobValidator Maven / Gradle / Ivy

The newest version!
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