public boolean equals(final Object object) {
      final HashKey other = (HashKey) object;

      if (this.isNull) {
        return (other.isNull);
      }

      if (this.index != other.index) {
        return false;
      }

      switch (this.type) {
        case BOOL:
          return this.bvalue == other.getBooleanValue();
        case LONG:
          return this.lvalue == other.getLongValue();
        case DOUBLE:
          return this.dvalue == other.getDoubleValue();
        case OBJECT:
          final Object otherValue = other.getObjectValue();
          return this.ovalue == null ? otherValue == null : this.ovalue.equals(otherValue);
      }
      return false;
    }