package edu.fiu.jtlex.data;

/**
 * Represents the EVENT tag.
 * 
 * @author arada002
 *
 */
public interface IEvent {

	public static final String EVENT_ID = " eid = e";
	public static final String STEM = " stem = ";
	public static final String CLASS = " class = ";

	/**
	 * An enum that represents the seven different event classes an object may
	 * belong to. Event may belong to REPORTING, PERCEPTION, ASPECTUAL, I_ACTION,
	 * I_STATE, STATE, or OCCURENCE event class.
	 */
	public static enum EventClass implements IType {
		REPORTING, PERCEPTION, ASPECTUAL, I_ACTION, I_STATE, STATE, OCCURRENCE
	}

	/**
	 * Each event has to be identified by a unique ID number. Returns the integer
	 * part of the eventId
	 * 
	 * @return eventId integer may not be 0 or negative
	 */
	public int getId();

	/**
	 * Each event has to be identified by a unique ID number. Returns the actual
	 * string found in the file
	 * 
	 * @return eventId string may not return <code>null</code>
	 */
	public String getIdStr();

	/**
	 * Returns the event class to which the object belongs
	 * 
	 * @return EventClass enum may not return <code>null</code>
	 */
	public EventClass getEventClass();

	/**
	 * Returns the stem of the event.
	 * 
	 * @return stem string; may return <code>null</code> if stem is not included in
	 *         annotation
	 */
	public String getStem();

}
