Open Source Repository

Home /jodd/jodd-3.3.2 | Repository Home


jodd/util/KeyValue.java
// Copyright (c) 2003-2012, Jodd Team (jodd.org). All Rights Reserved.

package jodd.util;

/**
 * Simple key-value holder.
 */
public class KeyValue<K, V> {

  protected K key;
  protected V value;

  public KeyValue() {
  }

  public KeyValue(K key, V value) {
    this.key = key;
    this.value = value;
  }

  /**
   * Sets a key.
   */
  public void setKey(K key) {
    this.key = key;
  }

  /**
   * Returns a key.
   */
  public K getKey() {
    return key;
  }

  /**
   * Returns a value.
   */
  public V getValue() {
    return value;
  }

  /**
   * Sets a value.
   */
  public void setValue(V value) {
    this.value = value;
  }

  public boolean equals(Object o) {
    if (!(instanceof KeyValue)) {
      return false;
    }
    KeyValue that = (KeyValueo;

    Object k1 = getKey();
    Object k2 = that.getKey();

    if (k1 == k2 || (k1 != null && k1.equals(k2))) {
      Object v1 = getValue();
      Object v2 = that.getValue();
      if (v1 == v2 || (v1 != null && v1.equals(v2))) {
        return true;
      }
    }
    return false;
  }

  public int hashCode() {
    return (key == null : key.hashCode()) ^
        (value == null : value.hashCode());
  }

}