package edu.fiu.jtlex.data;

import java.util.Set;

public interface INode {

	/**
	 * 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 can be categorized under three different type. Return the integer
	 * that corresponds with the type
	 * 
	 * @return type integer may return 0 or negative
	 */
	public IType getType();

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

	/**
	 * Add a link to the set of OUT links from this node.
	 * @param link: A new OUT link from this node.
	 */
	public void addOutLink(ILink link);

	/**
	 * Add a link to the set of IN links from this node.
	 * @param link
	 */
	public void addInLink(ILink link);
	
	/**
	 * 
	 * @return
	 */
	public void removeOutLink(ILink link);
	
	public void removeInLink(ILink link);
	
	public Set<ILink> getOutLinks();
	
	/**
	 * 
	 * @return
	 */
	public Set<ILink> getInLinks();

}
