package edu.fiu.jtlex.data;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.UnsupportedEncodingException;


/**
* The interface for the master parser to allow for different parts of
* a timeml document (Event, Timex, and Link) to be parsed for the required
* variables within their strings.
* 
* @author ceber003
*
*/
public interface ITimeMLParser {

	
	   /**
		* The parse method which will take the input stream and break it up into 
		* the different variables held within.
	 * @throws UnsupportedEncodingException 
	 * @throws FileNotFoundException 
	 * @throws IOException 
		*/		
	   public IText parse(FileInputStream timeML) throws UnsupportedEncodingException; 
		
		
	   /**
	    * A parser method which takes the string input representing an Event and parses
	    * it to get the different variables from the string. 
	    */	
	   public IEvent parseEvent(String eventString);
		

	   /**
	    * A parser method which takes the string input representing a Timex and parses
	    * it to get the different variables from the string.   
	    */	
	   public ITimex parseTimex(String timexString);
		
		
	   /**
	    * A parser method which takes the string input representing a Link and parses
	    * it to get the different variables from the string. 
	    */	
	   public ILink parseLink(String tag, String linkString);
	   
	   /**
	    * A parser method which takes the string input representing an Instance and parses
	    * it to get the Instance object. 
	    */	
	   public IInstance parseInstance(String instanceString);
	   
	   /**
	    * A parser method which takes the string input representing a Signal and parses
	    * it to get the Signal object. 
	    */	
	   public ISignal parseSignal(String signalString);
		
	   
}
