    001package net.minecraft.server.management;
    002
    003import java.util.Collection;
    004import java.util.Iterator;
    005import java.util.LinkedHashMap;
    006import java.util.Map;
    007import java.util.Set;
    008import java.util.Map.Entry;
    009
    010public class LowerStringMap implements Map
    011{
    012    private final Map internalMap = new LinkedHashMap();
    013
    014    public int size()
    015    {
    016        return this.internalMap.size();
    017    }
    018
    019    public boolean isEmpty()
    020    {
    021        return this.internalMap.isEmpty();
    022    }
    023
    024    public boolean containsKey(Object par1Obj)
    025    {
    026        return this.internalMap.containsKey(par1Obj.toString().toLowerCase());
    027    }
    028
    029    public boolean containsValue(Object par1Obj)
    030    {
    031        return this.internalMap.containsKey(par1Obj);
    032    }
    033
    034    public Object get(Object par1Obj)
    035    {
    036        return this.internalMap.get(par1Obj.toString().toLowerCase());
    037    }
    038
    039    /**
    040     * a map already defines a general put
    041     */
    042    public Object putLower(String par1Str, Object par2Obj)
    043    {
    044        return this.internalMap.put(par1Str.toLowerCase(), par2Obj);
    045    }
    046
    047    public Object remove(Object par1Obj)
    048    {
    049        return this.internalMap.remove(par1Obj.toString().toLowerCase());
    050    }
    051
    052    public void putAll(Map par1Map)
    053    {
    054        Iterator iterator = par1Map.entrySet().iterator();
    055
    056        while (iterator.hasNext())
    057        {
    058            Entry entry = (Entry)iterator.next();
    059            this.putLower((String)entry.getKey(), entry.getValue());
    060        }
    061    }
    062
    063    public void clear()
    064    {
    065        this.internalMap.clear();
    066    }
    067
    068    public Set keySet()
    069    {
    070        return this.internalMap.keySet();
    071    }
    072
    073    public Collection values()
    074    {
    075        return this.internalMap.values();
    076    }
    077
    078    public Set entrySet()
    079    {
    080        return this.internalMap.entrySet();
    081    }
    082
    083    public Object put(Object par1Obj, Object par2Obj)
    084    {
    085        return this.putLower((String)par1Obj, par2Obj);
    086    }
    087}