001    package org.maltparser.parser.history.kbest;
002    
003    
004    /**
005     * A candidate in the k-best list. 
006     * 
007     * @author Johan Hall
008     * @since 1.1
009    */
010    public class Candidate  {
011            /**
012             * The integer representation of the predicted action
013             */
014            protected int actionCode;
015            
016            /**
017             * Constructs a candidate object
018             */
019            public Candidate() {
020                    reset();
021            }
022    
023            /**
024             * Returns an integer representation of the predicted action
025             * 
026             * @return an integer representation of the predicted action
027             */
028            public int getActionCode() {
029                    return actionCode;
030            }
031    
032            /**
033             * Sets the integer representation of the predicted action
034             * 
035             * @param actionCode an integer representation of the predicted action
036             */
037            public void setActionCode(int actionCode) {
038                    this.actionCode = actionCode;
039            }
040    
041            /**
042             * Resets the candidate object
043             */
044            public void reset() {
045                    this.actionCode = -1;
046            }
047    
048            @Override
049            public int hashCode() {
050                    return 31 * 1 + actionCode;
051            }
052    
053            @Override
054            public boolean equals(Object obj) {
055                    if (this == obj)
056                            return true;
057                    if (obj == null)
058                            return false;
059                    if (getClass() != obj.getClass())
060                            return false;
061                    return actionCode == ((Candidate)obj).actionCode;
062            }
063    
064            /* (non-Javadoc)
065             * @see java.lang.Object#toString()
066             */
067            public String toString() {
068                    return Integer.toString(actionCode);
069            }
070    }
071