40 lines
1.1 KiB
Java
40 lines
1.1 KiB
Java
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;
|
|
}
|
|
}
|
|
}
|