/*
 * Created on Jul 25, 2008 (C) Copyright TANDBERG Television Ltd.
 */

package com.tandbergtv.watchpoint.pmm.title.provider;

import java.util.Map;

/**
 * Provides information about an Instance from which external Title data can be extracted.
 * 
 * @author Vijay Silva
 */
public interface ITitleProviderInstance {

	/**
	 * Get the key for this instance. The key has form: [SystemId]-[InstanceId]
	 * 
	 * @return The key
	 */
	String getKey();

	/**
	 * Set the key for this instance. The key must be in the form [SystemId]-[InstanceId], where
	 * SystemId is the system ID of the Title Provider this instance belongs to, and InstanceId is a
	 * key for the instance that is unique for the parent Title Provider.
	 * 
	 * @param key
	 */
	void setKey(String key);

	/**
	 * Get the display name for this instance
	 * 
	 * @return The display name
	 */
	String getName();

	/**
	 * Set the display name for this instance
	 * 
	 * @param name The display name
	 */
	void setName(String name);

	/**
	 * Get the Properties for this provider which include communication information required to
	 * connect to the instance to get title information.
	 * 
	 * @return The Properties for this Provider Instance
	 */
	Map<String, String> getProperties();

	/**
	 * Set the Properties for this instance
	 * 
	 * @param properties A Map of properties
	 */
	void setProperties(Map<String, String> properties);
}
