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 }