001package org.maltparser.parser.history;
002
003import org.maltparser.core.exception.MaltChainedException;
004import org.maltparser.parser.history.action.GuideUserAction;
005/**
006 * 
007 * @author Johan Hall
008*/
009public class HistoryListNode implements HistoryNode {
010        private HistoryNode previousNode;
011        private GuideUserAction action;
012        private int position;
013        
014        public HistoryListNode(HistoryNode _previousNode, GuideUserAction _action) {
015                this.previousNode = _previousNode;
016                this.action = _action;
017                if (previousNode != null) {
018                        this.position = previousNode.getPosition()+1;
019                } else {
020                        this.position = 1;
021                }
022        }
023        
024        public HistoryNode getPreviousNode() {
025                return previousNode;
026        }
027
028        public GuideUserAction getAction() {
029                return action;
030        }
031
032        public void setPreviousNode(HistoryNode node) {
033                this.previousNode = node;
034        }
035
036        public void setAction(GuideUserAction action) {
037                this.action = action;
038        }
039        
040        public int getPosition() {
041                return position;
042        }
043        
044        public void clear() throws MaltChainedException {
045                this.previousNode = null;
046                this.action = null;
047        }
048        
049        public String toString() {
050                final StringBuilder sb = new StringBuilder();
051                sb.append(action);
052                return sb.toString();
053        } 
054        
055}