package java.util;
/*************
* Title:
* Description:
* Copyright: Copyright (c) 2001
* Company:
* @version 1.0
*/
public abstract class AbstractMap implements Map{
protected AbstractMap()
{
}
public int size()
{
return entrySet().size();
}
public boolean isEmpty()
{
return size()==0;
}
public boolean containsValue(Object value)
{
Iterator it=entrySet().iterator();
while(it.hasNext())
{
Map.Entry v=(Map.Entry)it.next();
if(value==null)
{
if(v.getValue()==null)
return true;
}
else
{
if(value.equals(v.getValue()))
return true;
}
}
return false;
}
public boolean containsKey(Object key) throws ClassCastException,NullPointerException
{
Iterator it=entrySet().iterator();
while(it.hasNext())
{
Map.Entry v=(Map.Entry)it.next();
if(key==null)
{
if(v.getKey()==null)
return true;
}
else
{
if(key.equals(v.getKey()))
return true;
}
}
return false;
}
public Object get(Object key)throws ClassCastException,NullPointerException
{
Iterator it=entrySet().iterator();
while(it.hasNext())
{
Map.Entry v=(Map.Entry)it.next();
if(key==null)
{
if(v.getKey()==null)
return v.getValue();
}
else
{
if(key.equals(v.getKey()))
return v.getValue();
}
}
return null;
}
public Object put(Object key,Object value) throws UnsupportedOperationException
{
throw new UnsupportedOperationException();
}
public Object remove(Object key)
{
Iterator it=entrySet().iterator();
Object o=null;
while(it.hasNext())
{
Map.Entry v=(Map.Entry)it.next();
if(key==null)
{
if(v.getKey()==null)
{
o=v.getValue();
it.remove();
return o;
}
}
else
{
if(key.equals(v.getKey()))
{
o=v.getValue();
it.remove();
return o;
}
}
}
return null;
}
public void putAll(Map t)
{
Iterator it=t.entrySet().iterator();
while(it.hasNext())
{
Map.Entry v=(Map.Entry)it.next();
put(v.getKey(),v.getValue());
}
}
public void clear()
{
entrySet().clear();
}
public Set keySet()
{
throw new UnsupportedOperationException("no keySet in AbstractMap()");
}
public Collection values()
{
throw new UnsupportedOperationException("no values in AbstractMap()");
}
public abstract Set entrySet();
public boolean equals(Object o)
{
throw new UnsupportedOperationException("no equals in AbstractMap()");
}
public int hashCode()
{
throw new UnsupportedOperationException("no hashCode in AbstractMap()");
}
public String toString()
{
throw new UnsupportedOperationException("no toString in AbstractMap()");
}
}