package de.tu_dresden.lat.proofs.interfaces;

import java.io.IOException;
import java.util.Collection;

import de.tu_dresden.lat.proofs.data.FormattingException;

/**
 * Interface for writing proofs into files and strings.
 */
public interface IProofWriter {

	/**
	 * writes the proof into a file with the given prefix. The ending of the file is
	 * chosen by the implementation, as each implementation might generate files
	 * from a different type (.json, .txt, .graphml, xml, etc.)
	 *
	 */
	void writeToFile(IProof proof, String prefix) throws IOException, FormattingException;

	void writeToFile(Collection<IProof> proofs, String prefix) throws IOException, FormattingException;

	String toString(IProof proof) throws FormattingException;
}
