001    package net.minecraft.server.management;
002    
003    import java.util.Collection;
004    import java.util.Iterator;
005    import java.util.LinkedHashMap;
006    import java.util.Map;
007    import java.util.Set;
008    import java.util.Map.Entry;
009    
010    public 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 var2 = par1Map.entrySet().iterator();
055    
056            while (var2.hasNext())
057            {
058                Entry var3 = (Entry)var2.next();
059                this.putLower((String)var3.getKey(), var3.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    }