public boolean equals(Object obj) {

        if (obj == this) {
            return true;
        }

        if (!(obj instanceof KeyedObject)) {
            return false;
        }
        KeyedObject that = (KeyedObject) obj;
        if (!ObjectUtilities.equal(this.key, that.key)) {
            return false;
        }

        if (!ObjectUtilities.equal(this.object, that.object)) {
            return false;
        }

        return true;