// Copyright (C) 2003-2009 by Object Mentor, Inc. All rights reserved.
// Released under the terms of the CPL Common Public License version 1.0.
package fitnesse.wikitext;
import java.io.PrintWriter;
import java.io.StringWriter;
public class Utils {
private static final String[] specialHtmlChars = new String[]{"&", "<", ">"};
private static final String[] specialHtmlEscapes = new String[]{"&", "<", ">"};
private static final String[] specialWikiChars = new String[]{"!", "|", "$"};
private static final String[] specialWikiEscapes = new String[]{"&bang;", "&bar;", "$"};
public static String escapeHTML(String value) {
return replaceStrings(value, specialHtmlChars, specialHtmlEscapes);
}
private static String replaceStrings(String value, String[] originalStrings, String[] replacementStrings) {
String result = value;
for (int i = 0; i < originalStrings.length; i++)
if (result.contains(originalStrings[i]))
result = result.replace(originalStrings[i], replacementStrings[i]);
return result;
}
public static String unescapeHTML(String value) {
return replaceStrings(value, specialHtmlEscapes, specialHtmlChars);
}
public static String unescapeWiki(String value) {
return replaceStrings(value, specialWikiEscapes, specialWikiChars);
}
public static String escapeWiki(String value) {
return replaceStrings(value, specialWikiChars, specialWikiEscapes);
}
public static String getStackTrace(Throwable e) {
StringWriter stringWriter = new StringWriter();
PrintWriter pw = new PrintWriter(stringWriter);
e.printStackTrace(pw);
return stringWriter.toString();
}
}