content: package gov2.nist.javax2.sip.header;
  
  import java.util.HashMap;
  import java.lang.reflect.Field;
  import java.lang.reflect.Modifier;
  
  /**
   * @author yanick.belanger
   */
  public abstract class SIPHeaderNamesCache
  {
      private static final HashMap lowercaseMap = new HashMap();
  
      static {
          Field[] fields = SIPHeaderNames.class.getFields();
          for (int i = 0; i < fields.length; i++) {
              Field field = fields[i];
              if (field.getType().equals(String.class) && Modifier.isStatic(field.getModifiers())) {
                  try {
                      String value = (String) field.get(null);
                      String lowerCase = value.toLowerCase();
                      lowercaseMap.put(value, lowerCase);
                      lowercaseMap.put(lowerCase, lowerCase);
                  } catch (IllegalAccessException e) {
                  }
              }
          }
      }
  
      public static String toLowerCase(String headerName) {
          String lowerCase = (String) lowercaseMap.get(headerName);
          if (lowerCase == null) {
              return headerName.toLowerCase();
          }
          else {
              return lowerCase;
          }
      }
  }
  