@@ -0,0 +1,2137 @@
+/*%0A * Copyright (c) 2007-2012 The Broad Institute, Inc.%0A * SOFTWARE COPYRIGHT NOTICE%0A * This software and its documentation are the copyright of the Broad Institute, Inc. All rights are reserved.%0A *%0A * This software is supplied without any warranty or guaranteed support whatsoever. The Broad Institute is not responsible for its use, misuse, or functionality.%0A *%0A * This software is licensed under the terms of the GNU Lesser General Public License (LGPL),%0A * Version 2.1 which is available at http://www.opensource.org/licenses/lgpl-2.1.php.%0A */%0A%0Apackage org.broad.igv.util.collections;%0A%0Aimport java.util.HashMap;%0Aimport java.util.HashSet;%0A%0A/**%0A * Class for case-insensitive collections%0A */%0Apublic class CI%7B%0A%0A    private CI()%7B%7D;%0A%0A    private static String convertKey(String key)%7B%0A        if(key == null)%7B%0A            return null;%0A        %7D%0A        return key.toLowerCase();%0A    %7D%0A%0A    public static class CIHashSet extends HashSet%3CString%3E%7B%0A        public CIHashSet()%7B%0A            super();%0A        %7D%0A%0A        @Override%0A        public boolean add(String key)%7B%0A            return super.add(convertKey(key));%0A        %7D%0A%0A        public boolean remove(String key)%7B%0A            return super.remove(convertKey(key));%0A        %7D%0A%0A        public boolean contains(String key)%7B%0A            return super.contains(convertKey(key));%0A        %7D%0A    %7D%0A%0A    /**%0A     * A hashmap which uses strings for keys, that are%0A     * case insensitive. In practice this means all keys are%0A     * set to lowercase; the iterator will reflect that.%0A     * User: Jacob%0A     * Date: 2012-Jun-21%0A     */%0A    public static class CIHashMap%3CV%3E extends HashMap%3CString, V%3E %7B%0A%0A        public CIHashMap()%7B%0A            super();%0A        %7D%0A%0A%0A        @Override%0A        public V put(String key, V value)%7B%0A            return super.put(convertKey(key), value);%0A        %7D%0A%0A        public V remove(String key)%7B%0A            return super.remove(convertKey(key));%0A        %7D%0A%0A        public V get(String key)%7B%0A            return super.get(convertKey(key));%0A        %7D%0A%0A        public boolean containsKey(String key)%7B%0A            return super.containsKey(convertKey(key));%0A        %7D%0A%0A    %7D%0A%0A%0A%7D%0A

Add CI (case-insensitive), a class which holds a hashmap and hashset with case insensitive keys