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