public boolean equals(Object obj) {

        if (obj == this) {
            return true;
        }
        if (!(obj instanceof KeyedValueDataset)) {
            return false;
        }
        KeyedValueDataset that = (KeyedValueDataset) obj;
        if (this.data == null) {
            if (that.getKey() != null || that.getValue() != null) {
                return false;
            }
            return true;
        }
        if (!ObjectUtilities.equal(this.data.getKey(), that.getKey())) {
            return false;
        }
        if (!ObjectUtilities.equal(this.data.getValue(), that.getValue())) {
            return false;
        }
        return true;
    }