package org.atlasapi.persistence.content;
import java.util.Set;
import org.atlasapi.media.entity.Content;
import org.atlasapi.media.entity.Publisher;
/**
* Remove all traces of content from a {@link Publisher} from the database
*
* @author tom
*
*/
public interface ContentPurger {
/**
* Removes all content for the specified publisher. If specified,
* equivalences to publishers are maintained in the remote item
* in the form of aliases. The method
* {@link #restoreEquivalences} can then be used to restore
* the equivalences after a re-ingest is performed.
*
* @param publisher Publisher whose content should be removed
* @param equivalencesToRetainAsAliases Publishers whose equivalences should
* be maintained by storing as aliases on
* those pieces of content
*/
void purge(Publisher publisher, Set<Publisher> equivalencesToRetainAsAliases);
/**
* Restore equivalences previously saved in the target {@link Content}
* as aliases
*
* @param publisher Publisher to scan for equivalences to restore.
*/
void restoreEquivalences(Publisher publisher);
}