package eu.dnetlib.contract.node;

import java.util.List;

/**
 * Sequence contract definition node.
 * Encapsulates ordered list of {@link IContractDefinitionNode} elements.
 * @author mhorst
 *
 */
public interface ISEQDefinitionNode extends IContractDefinitionNode {

	/**
	 * Returns ordered sequence of {@link IContractDefinitionNode} elements.
	 * @return ordered sequence of IContractDefinitionNode elements
	 */
	public List<IContractDefinitionNode> getSequence();
	
	/**
	 * Sets ordered sequence of {@link IContractDefinitionNode} elements.
	 * @param seq
	 */
	public void setSequence(List<IContractDefinitionNode> seq);
	
	/**
	 * Appends {@link IContractDefinitionNode} node to the end of the sequence.
	 * @param node
	 */
	public void addNode(IContractDefinitionNode node);
	
}
