package com.tandbergtv.watchpoint.pmm.entities;

import java.util.Collection;

/**
 * Represents a collection of titles. This abstraction can be used to create playlists, pitch schedules,
 * program lists, favourites and other lists. 
 * 
 * @author Sahil Verma
 */
public interface IAssetList {
	
	/**
	 * Returns the id
	 * 
	 * @return
	 */
	Long getId();
	
	/**
	 * Returns the type
	 * 
	 * @return
	 */
	TitleListType getType();
	
	/**
	 * Returns the name
	 * 
	 * @return
	 */
	String getName();
	
	/**
	 * Returns a descriptive string for this list
	 * 
	 * @return
	 */
	String getDescription();
	
	/**
	 * Returns the titles in this list. This is an optional interface, not all implementations are
	 * required to or will support this call.
	 * 
	 * @return
	 */
	Collection<Title> getTitles();
}
