package org.concordion.cubano.utils;

import java.util.Map;
import java.util.Properties;
import java.util.TreeMap;

/**
 * A {@link Properties} implementation that ignores the case of the properties.
 * 
 * The keys are stored untouched so that if you need the original case you can still get them 
 * using <code>Enumeration&lt;String&gt; en = (Enumeration<String>) properties.propertyNames();</code>
 *
 * @author Andrew Sumner
 */
public class CaselessProperties extends Properties {
    private static final long serialVersionUID = 4112578634029874840L;

    Map<String, String> lookup = new TreeMap<String, String>(String.CASE_INSENSITIVE_ORDER);

    @Override
    public Object put(Object key, Object value) {
        lookup.put(((String) key).toLowerCase(), (String) key);

        return super.put(key, value);
    }

    @Override
    public String getProperty(String key) {
        String realKey = lookup.get(key);

        return super.getProperty(realKey == null ? key : realKey);
    }

    @Override
    public String getProperty(String key, String defaultValue) {
        String realKey = lookup.get(key);

        return super.getProperty(realKey == null ? key : realKey, defaultValue);
    }
}

@@ -29,19 +29,17 @@
 o.utils;
-%0D%0A%0D
+%0A
 %0Aimport 
@@ -52,17 +52,16 @@
 til.Map;
-%0D
 %0Aimport 
@@ -81,17 +81,16 @@
 perties;
-%0D
 %0Aimport 
@@ -111,16 +111,13 @@
 Map;
-%0D%0A%0D
+%0A
 %0A/**
-%0D
 %0A * 
@@ -196,14 +196,12 @@
 ies.
-%0D
 %0A * 
-%0D
 %0A * 
@@ -291,17 +291,16 @@
 et them 
-%0D
 %0A * usin
@@ -398,13 +398,11 @@
 ode%3E
-%0D
 %0A *
-%0D
 %0A * 
@@ -426,14 +426,12 @@
 mner
-%0D
 %0A */
-%0D
 %0Apub
@@ -479,17 +479,16 @@
 erties %7B
-%0D
 %0A    pri
@@ -550,19 +550,17 @@
 874840L;
-%0D%0A%0D
+%0A
 %0A    Map
@@ -644,19 +644,17 @@
 _ORDER);
-%0D%0A%0D
+%0A
 %0A    @Ov
@@ -651,33 +651,32 @@
 ;%0A%0A    @Override
-%0D
 %0A    public Obje
@@ -705,25 +705,24 @@
 ect value) %7B
-%0D
 %0A        loo
@@ -747,22 +747,8 @@
 key)
-.toLowerCase()
 , (S
@@ -755,27 +755,25 @@
 tring) key);
-%0D%0A%0D
+%0A
 %0A        ret
@@ -798,26 +798,23 @@
  value);
-%0D
 %0A    %7D
-%0D%0A%0D
+%0A
 %0A    @Ov
@@ -811,33 +811,32 @@
 %7D%0A%0A    @Override
-%0D
 %0A    public Stri
@@ -863,17 +863,16 @@
 g key) %7B
-%0D
 %0A       
@@ -897,35 +897,33 @@
 lookup.get(key);
-%0D%0A%0D
+%0A
 %0A        return 
@@ -977,18 +977,15 @@
 ey);
-%0D
 %0A    %7D
-%0D%0A%0D
+%0A
 %0A   
@@ -994,17 +994,16 @@
 Override
-%0D
 %0A    pub
@@ -1059,17 +1059,16 @@
 Value) %7B
-%0D
 %0A       
@@ -1105,11 +1105,9 @@
 ey);
-%0D%0A%0D
+%0A
 %0A   
@@ -1187,16 +1187,13 @@
 ue);
-%0D
 %0A    %7D
-%0D
 %0A%7D
-%0D
 %0A

Removed redundant statement