Java tutorial
/* * This file is made available under the terms of the LGPL licence. * This licence can be retrieved from http://www.gnu.org/copyleft/lesser.html. * The source remains the property of the YAWL Foundation. The YAWL Foundation is a * collaboration of individuals and organisations who are committed to improving * workflow technology. */ import org.jdom.*; import org.jdom.input.SAXBuilder; import org.jdom.output.*; import org.apache.log4j.Logger; import java.io.*; /** * Some static utility methods for coverting JDOM Documents and Elements * to Strings and files & vice versa. * * @author Michael Adams * 04/07/2006 * * Last date: 22/06/08 */ public class JDOMUtil { private static Logger _log = Logger.getLogger("org.yawlfoundation.yawl.util.JDOMUtil"); /****************************************************************************/ public static String documentToString(Document doc) { if (doc == null) return null; XMLOutputter out = new XMLOutputter(Format.getPrettyFormat()); return out.outputString(doc); } /****************************************************************************/ public static String elementToString(Element e) { if (e == null) return null; XMLOutputter out = new XMLOutputter(Format.getPrettyFormat()); return out.outputString(e); } /****************************************************************************/ public static String elementToStringDump(Element e) { if (e == null) return null; XMLOutputter out = new XMLOutputter(Format.getCompactFormat()); return out.outputString(e); } /****************************************************************************/ public static Document stringToDocument(String s) { try { if (s == null) return null; return new SAXBuilder().build(new StringReader(s)); } catch (JDOMException jde) { _log.error("JDOMException converting to Document, String = " + s, jde); return null; } catch (IOException ioe) { _log.error("IOException converting to Document, String = " + s, ioe); return null; } } /****************************************************************************/ public static Element stringToElement(String s) { if (s == null) return null; Document doc = stringToDocument(s); return doc.getRootElement(); } /****************************************************************************/ public static Document fileToDocument(String path) { try { if (path == null) return null; return new SAXBuilder().build(new File(path)); } catch (JDOMException jde) { _log.error("JDOMException loading file into Document, filepath = " + path, jde); return null; } catch (IOException ioe) { _log.error("IOException loading file into Document, filepath = " + path, ioe); return null; } } /****************************************************************************/ /** saves a JDOM Document to a file */ public static void documentToFile(Document doc, String path) { try { FileOutputStream fos = new FileOutputStream(path); XMLOutputter xop = new XMLOutputter(Format.getPrettyFormat()); xop.output(doc, fos); fos.flush(); fos.close(); } catch (IOException ioe) { _log.error("IO Exeception in saving Document to file, filepath = " + path, ioe); } } /****************************************************************************/ public static String getDefaultValueForType(String dataType) { if (dataType == null) return "null"; else if (dataType.equalsIgnoreCase("boolean")) return "false"; else if (dataType.equalsIgnoreCase("string")) return ""; else return "0"; } /****************************************************************************/ public static String encodeEscapes(String s) { if (s == null) return s; return s.replaceAll("&", "&").replaceAll("<", "<").replaceAll(">", ">").replaceAll("\"", """) .replaceAll("'", "'"); } public static String decodeEscapes(String s) { if (s == null) return s; return s.replaceAll("&", "&").replaceAll("<", "<").replaceAll(">", ">").replaceAll(""", "\"") .replaceAll("'", "'"); } /****************************************************************************/ public static String formatXMLString(String s) { if (s == null) return null; if (s.startsWith("<?xml")) return documentToString(stringToDocument(s)); else return elementToString(stringToElement(s)); } public static String formatXMLStringAsDocument(String s) { return documentToString(stringToDocument(s)); } public static String formatXMLStringAsElement(String s) { return elementToString(stringToElement(s)); } } //ends