| package gov.nist.javax.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; |
| } |
| } |
| } |