@Override
    public boolean equals(Object obj) {
        if (obj == null) {
            return false;
        }
        if (getClass() != obj.getClass()) {
            return false;
        }
        final WordLocation other = (WordLocation) obj;
        if ((this.word == null) ? (other.word != null) :
                !this.word.equals(other.word)) {
            return false;
        }
        if ((this.fileName == null) ? (other.fileName != null) :
                !this.fileName.equals(other.fileName)) {
            return false;
        }
        if (this.book != other.book && (this.book == null ||
                !this.book.equals(other.book))) {
            return false;
        }
        return true;
    }