/*
 * Created on Aug 18, 2008 (C) Copyright TANDBERG Television Ltd.
 */

package com.tandbergtv.watchpoint.pmm.title.validation;

import com.tandbergtv.watchpoint.pmm.entities.Title;
import com.tandbergtv.watchpoint.pmm.util.validation.ValidationException;
import com.tandbergtv.workflow.core.service.Service;

/**
 * Validates the Title based on the specification provided for the title.
 * 
 * @author Vijay Silva
 */
public interface ITitleValidationService extends Service {

	/**
	 * Validates the Title ensuring that the state of the title obeys all the validation rules
	 * required before the Title can be persisted to the PMM Title repository. The title being
	 * validated must be the root title, and the validation will validate the entire title and its
	 * children.
	 * 
	 * @param title The root title to validate. Cannot validate a child title.
	 * @throws ValidationException thrown in case the validation fails.
	 */
	public void validateTitle(Title title) throws ValidationException;
}
