package data; /* Created for when words are sorted by multiple keys, i.e. not just lemmas but lemmas and msd simultaneously. */ public final class MultipleHMKeys { private final String key, lemma, wordType, msd; public MultipleHMKeys(String key) { this.key = key; this.lemma = ""; this.wordType = ""; this.msd = ""; } public MultipleHMKeys(String key, String lemma, String wordType, String msd) { this.key = key; this.lemma = lemma; this.wordType = wordType; this.msd = msd; } public String getKey() { return key; } public String getLemma() { return lemma; } public String getWordType() { return wordType; } public String getMsd() { return msd; } @Override public int hashCode() { // if(key2 == null){ // return key1.hashCode(); // } else if (key3 == null){ // return key1.hashCode() ^ key2.hashCode(); // } return key.hashCode() ^ lemma.hashCode() ^ wordType.hashCode() ^ msd.hashCode(); } @Override public boolean equals(Object obj) { return (obj instanceof MultipleHMKeys) && ((MultipleHMKeys) obj).key.equals(key) && ((MultipleHMKeys) obj).lemma.equals(lemma) && ((MultipleHMKeys) obj).wordType.equals(wordType) && ((MultipleHMKeys) obj).msd.equals(msd); } }