/*
* Created on 3.12.2003
*
* To change the template for this generated file go to
* Window - Preferences - Java - Code Generation - Code and Comments
*/
package com.idega.util.datastructures;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
import java.util.Iterator;
/**
* @author laddi
*
* To change the template for this generated type comment go to
* Window - Preferences - Java - Code Generation - Code and Comments
*/
public class MultivaluedHashMap extends HashMap {
/* (non-Javadoc)
* @see java.util.Map#containsValue(java.lang.Object)
*/
public boolean containsValue(Object value) {
Iterator iter = values().iterator();
while (iter.hasNext()) {
Collection element = (Collection) iter.next();
Iterator iterator = element.iterator();
while (iterator.hasNext()) {
Object object = iterator.next();
if (object.equals(value)) {
return true;
}
}
}
return false;
}
public Collection getCollection(Object key) {
return (Collection) super.get(key);
}
/* (non-Javadoc)
* @see java.util.Map#put(java.lang.Object, java.lang.Object)
*/
public Object put(Object key, Object value) {
Collection values = getCollection(key);
if (values == null) {
values = new ArrayList();
}
values.add(value);
return super.put(key, values);
}
public Object put(Object key, Collection collection){
Collection values = getCollection(key);
if (values == null) {
values = new ArrayList();
}
values.addAll(collection);
return super.put(key, values);
}
/* (non-Javadoc)
* @see java.util.Map#get(java.lang.Object)
*/
public Object get(Object key) {
Collection values = getCollection(key);
if (values != null) {
Iterator iter = values.iterator();
while (iter.hasNext()) {
return iter.next();
}
}
return null;
}
/**
* To bypass put method in subclasses
* @param key
* @param value
* @return
*/
// (aron 23.08.2004)
protected Object superPut(Object key, Object value){
return super.put(key,value);
}
}