package nl.uva.sc.parser; import nl.uva.sc.datatypes.Frequency; import nl.uva.sc.datatypes.Word; public class Token implements Comparable<Token> { private final Word mWord; private final Frequency mFrequency; public Token(final Word word, final Frequency frequency) { mWord = word; mFrequency = frequency; } public void addFrequency() { mFrequency.addFrequency(); } @Override public boolean equals(final Object o) { if (o instanceof Token) { Frequency frequency = ((Token) o).mFrequency; boolean a = (mFrequency.compareTo(frequency) == 0); Word word = ((Token) o).mWord; boolean b = mWord.equals(word); return (a && b); } return this.equals(o); } @Override public int hashCode() { return mWord.hashCode(); } @Override public int compareTo(final Token o) { Frequency frequency = o.mFrequency; return mFrequency.compareTo(frequency); } @Override public String toString() { return mWord + " - " + mFrequency; } }