001 /*
002 * $Id: MapEntry.java 3652 2011-06-02 18:17:04Z kredel $
003 */
004
005 package edu.jas.util;
006
007
008 import java.util.Map;
009
010 /**
011 * MapEntry helper class implements Map.Entry.
012 * Required until JDK 1.6 becomes every where available.
013 * @see java.util.AbstractMap.SimpleImmutableEntry in JDK 1.6.
014 * @author Heinz Kredel.
015 */
016
017 public class MapEntry<K,V> implements Map.Entry<K,V> {
018
019
020 final K key;
021
022
023 final V value;
024
025
026 /**
027 * Constructor.
028 */
029 public MapEntry(K k, V v) {
030 key = k;
031 value = v;
032 }
033
034
035 /**
036 * Get the key.
037 * @see java.util.Map.Entry#getKey()
038 */
039 public K getKey() {
040 return key;
041 }
042
043
044 /**
045 * Get the value.
046 * @see java.util.Map.Entry#getValue()
047 */
048 public V getValue() {
049 return value;
050 }
051
052
053 /**
054 * Set the value.
055 * Is not implemented.
056 * @see java.util.Map.Entry
057 */
058 public V setValue(V value) {
059 throw new UnsupportedOperationException("not implemented");
060 }
061
062
063 /**
064 * Comparison with any other object.
065 * @see java.lang.Object#equals(java.lang.Object)
066 */
067 @Override
068 @SuppressWarnings("unchecked")
069 public boolean equals(Object b) {
070 if (!(b instanceof Map.Entry)) {
071 return false;
072 }
073 Map.Entry<K,V> me = (Map.Entry<K,V>) b;
074 return key.equals(me.getKey()) && value.equals(me.getValue());
075 }
076
077
078 /**
079 * Hash code for this MapEntry.
080 * @see java.lang.Object#hashCode()
081 */
082 @Override
083 public int hashCode() {
084 return key.hashCode() * 37 + value.hashCode();
085 }
086
087 }