/**
 * TitleSearchForm.java
 * Created May 20, 2008
 * Copyright (c) TANDBERG Television 2007-2008
 */
package com.tandbergtv.watchpoint.pmm.web.title;


import com.tandbergtv.workflow.web.page.Field;
import com.tandbergtv.workflow.web.page.Page;

/**
 * The title search form contains information pertaining to displaying the search page
 * 
 * @author Sahil Verma
 */
public class TitleSearchForm  {

	private Field specificationField;

	private Page searchPage;

	private String scheduleId;

	private String specification;

	private TitleSearchType searchType = TitleSearchType.INTERNAL;

	/**
	 * 
	 */
	private static final long serialVersionUID = 7605460873200576786L;

	/**
	 * Creates a TitleSearchForm
	 */
	public TitleSearchForm() {
		super();
	}

	/**
	 * @return the specificationField
	 */
	public Field getSpecificationField() {
		return specificationField;
	}

	/**
	 * @param specificationField the specificationField to set
	 */
	public void setSpecificationField(Field specificationField) {
		this.specificationField = specificationField;
	}

	/**
	 * @return the searchPage
	 */
	public Page getSearchPage() {
		return this.searchPage;
	}

	/**
	 * @param searchPage the searchPage to set
	 */
	public void setSearchPage(Page searchPage) {
		this.searchPage = searchPage;
	}

	/**
	 * @return the scheduleId
	 */
	public String getScheduleId() {
		return this.scheduleId;
	}

	/**
	 * @param scheduleId the scheduleId to set
	 */
	public void setScheduleId(String scheduleId) {
		this.scheduleId = scheduleId;
	}

	/**
	 * @return The Search Type to use for Title Searches
	 */
	public TitleSearchType getSearchType() {
		return searchType;
	}

	/**
	 * The Search Type to set. If the value set is null, the default search type (Internal) is set.
	 * 
	 * @param searchType The Title Search Type
	 */
	protected void setSearchType(TitleSearchType searchType) {
		if (searchType == null)
			searchType = TitleSearchType.INTERNAL;

		this.searchType = searchType;
	}

	/**
	 * @return the specification
	 */
	public String getSpecification() {
		return specification;
	}

	/**
	 * @param specification the specification to set
	 */
	public void setSpecification(String specification) {
		this.specification = specification;
	}

	/**
	 * Get the value of the Title Search Type
	 * 
	 * @return The title search type value
	 */
	public String getTitleSearchType() {
		return this.searchType.name();
	}

	/**
	 * Set the Title Search Type using a string value. Setting the value to null or blank string
	 * will set the title search type to the default (internal).
	 * 
	 * @param searchTypeValue The value for the title search type.
	 */
	public void setTitleSearchType(String searchTypeValue) {
		TitleSearchType searchType = TitleSearchType.INTERNAL;
		if (searchTypeValue != null && searchTypeValue.trim().length() > 0)
			searchType = TitleSearchType.valueOf(searchTypeValue);

		this.setSearchType(searchType);
	}
}
