package com.tandbergtv.watchpoint.pmm.entities;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;

import com.tandbergtv.watchpoint.pmm.core.TitleValidationMessage;

/**
 * Encompasses title and any info/warn validation messages.
 */
public class SaveResult {
	private Title title;
	private List<TitleValidationMessage> validationMessages =
		new ArrayList<TitleValidationMessage>();
	private Map<String, String> actionResponseMap;
	
	public SaveResult(Title title, List<TitleValidationMessage> validationMessages) {
		setTitle(title);
		setValidationMessages(validationMessages);
	}
	
	public SaveResult(Title title, List<TitleValidationMessage> validationMessages, Map<String, String> actionResponseMap) {
		this(title, validationMessages);
		setActionResponseMap(actionResponseMap);
	}
	
	public Title getTitle() {
		return title;
	}
	
	public void setTitle(Title title) {
		this.title = title;
	}
	
	public List<TitleValidationMessage> getValidationMessages() {
		return validationMessages;
	}
	
	public void setValidationMessages(
			List<TitleValidationMessage> validationMessages) {
		if(validationMessages == null)
			throw new IllegalArgumentException("validationMessages cannot be null");
		this.validationMessages = validationMessages;
	}
	
	public void addValidationMessage(TitleValidationMessage message) {
		validationMessages.add(message);
	}
	
	/**
	 * @return the actionResponseMap
	 */
	public Map<String, String> getActionResponseMap() {
		return actionResponseMap;
	}

	/**
	 * @param actionResponseMap the actionResponseMap to set
	 */
	public void setActionResponseMap(Map<String, String> actionResponseMap) {
		this.actionResponseMap = actionResponseMap;
	}

}
