package mir.util;
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
import java.net.URLEncoder;
import java.util.HashMap;
import java.util.Map;
public class HTMLRoutines {
+ private HTMLRoutines() {
+ }
+
+ private static Method encodeURLMethod;
+ static {
+ try {
+ encodeURLMethod = URLEncoder.class.getMethod("encode", new Class[] {String.class});
+ }
+ catch (NoSuchMethodException e) {
+ throw new RuntimeException(e.getMessage());
+ }
+ }
+
/**
* Encodes a URL: escapes reserved URL characters like &, = into % escape
* constructions.
*/
public static String encodeURL(String aString) {
- return URLEncoder.encode(aString);
- }
-
- public static String encodeURL(String aString, String anEncoding) {
try {
- return URLEncoder.encode(aString);
+ return (String) encodeURLMethod.invoke(URLEncoder.class, new Object[] {aString});
}
- catch (Throwable t) {
- throw new RuntimeException(t.getMessage());
+ catch (IllegalAccessException e) {
+ throw new RuntimeException(e.getMessage());
+ }
+ catch (InvocationTargetException e) {
+ throw new RuntimeException(e.getMessage());
}
}
- public static String encodeHTML(String aText) {
- final char[] CHARACTERS_TO_ESCAPE = { '&', '<', '>', '"' };
- final String[] ESCAPE_CODES = { "&", "<", ">", """ };
+ public static String encodeURL(String aString, String anEncoding) {
+ return encodeURL(aString);
+ }
+ private static final char[] CHARACTERS_TO_ESCAPE = { '&', '<', '>', '"' };
+ private static final String[] ESCAPE_CODES = { "&", "<", ">", """ };
+
+ public static String encodeHTML(String aText) {
return StringRoutines.replaceStringCharacters(aText, CHARACTERS_TO_ESCAPE, ESCAPE_CODES);
}
public static String prettyEncodeHTML(String aText) throws UtilExc {
- return
- StringRoutines.performRegularExpressionReplacement(encodeHTML(aText), "\\n", "<br>\n");
+ return StringRoutines.performRegularExpressionReplacement(
+ encodeHTML(aText), "\\n", "<br>\n");
}
public static String encodeXML(String aText) {