package eu.dnetlib.contract.node;


/**
 * Abstract contract definition node.
 * @author mhorst
 *
 */
public abstract class AbstractContractDefinitionNode implements IContractDefinitionNode {

	
	/**
	 * Node identifier used for report generation purpeses.
	 * Identifies node position in a contract definition graph. 
	 */
	private String nodePositionIdentifier;
	
	/**
	 * Parent {@link ISEQDefinitionNode} or {@link IRANDDefinitionNode} node of current node.
	 */
	private IContractDefinitionNode parentNode;
	
	/**
	 * Next associated {@link IContractDefinitionNode}.
	 */
	private IContractDefinitionNode nextNode;
	
	/**
	 * Previous associated {@link IContractDefinitionNode}.
	 */
	private IContractDefinitionNode prevNode;
		
	/* (non-Javadoc)
	 * @see eu.dnetlib.contract.node.IContractDefinitionNode#getNextNode()
	 */
	public IContractDefinitionNode getNextNode() {
		return this.nextNode;
	}

	/* (non-Javadoc)
	 * @see eu.dnetlib.contract.node.IContractDefinitionNode#setNextNode(eu.dnetlib.contract.node.IContractDefinitionNode)
	 */
	public void setNextNode(IContractDefinitionNode node) {
		this.nextNode = node;
	}

	/* (non-Javadoc)
	 * @see eu.dnetlib.contract.node.IContractDefinitionNode#getPrevNode()
	 */
	public IContractDefinitionNode getPrevNode() {
		return this.prevNode;
	}

	/* (non-Javadoc)
	 * @see eu.dnetlib.contract.node.IContractDefinitionNode#setPrevNode(eu.dnetlib.contract.node.IContractDefinitionNode)
	 */
	public void setPrevNode(IContractDefinitionNode node) {
		this.prevNode = node;
	}
	
	/* (non-Javadoc)
	 * @see eu.dnetlib.contract.node.IContractDefinitionNode#getParentNode()
	 */
	public IContractDefinitionNode getParentNode() {
		return parentNode;
	}

	/* (non-Javadoc)
	 * @see eu.dnetlib.contract.node.IContractDefinitionNode#setParentNode(eu.dnetlib.contract.node.IContractDefinitionNode)
	 */
	public void setParentNode(IContractDefinitionNode parentNode) {
		this.parentNode = parentNode;
	}

	/* (non-Javadoc)
	 * @see eu.dnetlib.contract.node.IContractDefinitionNode#getNodePositionIdentifier()
	 */
	public String getNodePositionIdentifier() {
		return nodePositionIdentifier;
	}

	/* (non-Javadoc)
	 * @see eu.dnetlib.contract.node.IContractDefinitionNode#setNodePositionIdentifier(java.lang.String)
	 */
	public void setNodePositionIdentifier(String nodePositionIdentifier) {
		this.nodePositionIdentifier = nodePositionIdentifier;
	}
}
