<?

/* XMLFile
 * 
 * This is the interface for any class that interacts with the xml file that
 * contains the election and ballot data
 */
 
interface XMLFile
{

	/* __construct($filename)
	 *
	 * This constructor takes the xml file the class will be interacting with
	 * as an argument.  
	 *
	 * In: String $filename - The name of the XML file to be looked at
	 */
	 
	public function __construct($filename);
	
	/* getElectionStartTime()
	 *
	 * This method gets the start time of the election from the XML file and
	 * returns an instance of the Date class which has the information about
	 * the start time.
	 *
	 * Return: Date - the date information for the starting time of the
	 *   election
	 */
	 
	public function getElectionStartTime();
	
	/* getElectionEndTime()
	 *
	 * This method gets the ending time of the election from the XML file and
	 * returns an instance of the Date class which has the information about
	 * the start time.
	 *
	 * Return: Date - the date information for the ending time of the
	 *   election
	 */
	 
	public function getElectionEndTime();
	
	/* getElectionID()
	 *
	 * This method gets the ID number of the election from the XML file.
	 *
	 * Return: int - the ID number for the election
	 */
	 
	public function getElectionID();
	
	/* getElectionTitle()
	 *
	 * This method gets the title of the election from the XML file.
	 *
	 * Return: String - The title of the election
	 */
	 
	public function getElectionTitle();
	
	/* getWelcomeText()
	 *
	 * This method gets the welcoming text of the election from the XML file.
	 * This text will be displayed on the welcoming page of the election.
	 *
	 * Return: String - the welcome text to be displayed on the first page the
	 *   users see after logging in.
	 */
	 
	public function getWelcomeText();
	
	/* getNumberOfQuestions()
	 *
	 * This method gets the number of questions in the election from the XML file.
	 *
	 * Return: int - the number of questions in the current election
	 */
	 
	public function getNumberOfQuestions();
	
	/* getQuestion($question_number)
	 *
	 * This method gets information about a specific question (specified by
	 * number) and returns an instance of the Question class which contains all
	 * of the information about the question.
	 *
	 * In: int $question_number - The number of the question that information
	 *     is desired about.
	 * Return: Question - an instance of the Question class which contains
	 *     information about the desired question number.
	 */
	 
	public function getQuestion($question_number);

}

?>
