package com.tandbergtv.metadatamanager.spec;

import java.util.List;
import java.util.Map;

import com.tandbergtv.metadatamanager.exception.MetadataException;

public interface IRuleManager {

	/**
	 * Saves rule set with the given name overwriting a set that already exists.
	 * 
	 * @param nameOfRuleSet
	 * @param ruleSet
	 * @return Map<String, Boolean>
	 */
	Map<String, Boolean> saveRuleSet(String nameOfRuleSet, Map<String, Boolean> ruleSet) throws MetadataException;

	/**
	 * Returns rule set for the given name.
	 * 
	 * @param nameOfRuleSet
	 * @return Map<String, Boolean>
	 */
	Map<String, Boolean> getRuleSet(String nameOfRuleSet);

	/**
	 * Returns default rule set.
	 * 
	 * @return Map<String, Boolean>
	 */
	Map<String, Boolean> getRuleSet();

	/**
	 * Returns all rule set names.
	 * 
	 * @return List<String>
	 */
	List<String> getAllRuleSets();

	/**
	 * Deletes rule set for the given name.
	 * 
	 * @param nameOfRuleSet
	 */
	void deleteRuleSet(String nameOfRuleSet);
}
