[CCSDK-28] populated the seed code for dgbuilder
[ccsdk/distribution.git] / dgbuilder / tools / FormatXml.java
diff --git a/dgbuilder/tools/FormatXml.java b/dgbuilder/tools/FormatXml.java
new file mode 100644 (file)
index 0000000..7c6915f
--- /dev/null
@@ -0,0 +1,49 @@
+import javax.xml.transform.*;
+import javax.xml.transform.stream.*;
+import java.io.*;
+import java.util.*;
+import java.nio.file.Paths;
+import java.nio.file.Files;
+import java.nio.charset.StandardCharsets;
+import java.nio.charset.Charset;
+public class FormatXml{
+public static String formatXml(String input, int indent) {
+    try {
+        Source xmlInput = new StreamSource(new StringReader(input));
+        StringWriter stringWriter = new StringWriter();
+        StreamResult xmlOutput = new StreamResult(stringWriter);
+        TransformerFactory transformerFactory = TransformerFactory.newInstance();
+        transformerFactory.setAttribute("indent-number", indent);
+        Transformer transformer = transformerFactory.newTransformer(); 
+        transformer.setOutputProperty(OutputKeys.INDENT, "yes");
+        transformer.transform(xmlInput, xmlOutput);
+        return xmlOutput.getWriter().toString();
+    } catch (Exception e) {
+        throw new RuntimeException(e); // simple exception handling, please review it
+    }
+}
+
+public static String prettyFormat(String input) {
+    return formatXml(input, 2);
+}
+
+public static String readFile(String path, Charset encoding) 
+  throws IOException 
+{
+  byte[] encoded = Files.readAllBytes(Paths.get(path));
+  return new String(encoded, encoding);
+}
+
+public static void main(String[] args){
+try{
+       if (args != null && args.length != 1){
+               System.out.println("Usage:java FormatXml xmlStr");
+               System.exit(-1);
+       }
+       String xmlStr = readFile(args[0], StandardCharsets.UTF_8);
+       System.out.println(prettyFormat(xmlStr));
+}catch(Exception e){
+       e.printStackTrace();
+}
+}
+}