dol: initial dol commit
[jump.git] / dol / src / dol / helper / flattener / XMLFlattener.java
diff --git a/dol/src/dol/helper/flattener/XMLFlattener.java b/dol/src/dol/helper/flattener/XMLFlattener.java
new file mode 100644 (file)
index 0000000..7aade7c
--- /dev/null
@@ -0,0 +1,71 @@
+/* $Id: XMLFlattener.java 1 2010-02-24 13:03:05Z haidw $ */
+package dol.helper.flattener;
+
+import java.io.File;
+import java.io.FileWriter;
+
+import org.jdom.input.DOMBuilder;
+import org.w3c.dom.Document;
+
+/**
+ *
+ */
+public class XMLFlattener {
+
+  public static void main(String[] args) {
+
+    if (args.length != 2) {
+      System.out.println("Wrong number of arguments.");
+      System.out.println("Correct call:");
+      System.out.println("java XMLFlattener in.xml out.xml");
+      System.exit(-1);
+    }
+    else {
+      SaxDocumentParser sdp = new SaxDocumentParser();
+      boolean needsToBeFlattened = false;
+      needsToBeFlattened = sdp.parseDocument(args[0]);
+      if (needsToBeFlattened) {
+        // start also with DOM Parser and generate the XML-Generator
+        DomDocumentParser ddp = new DomDocumentParser();
+        Document doc = ddp.parseDocument(args[0]);
+
+        DOMBuilder db = new DOMBuilder();
+        org.jdom.Document document = db.build(doc);
+
+        String xmlns = document.getRootElement().getNamespaceURI();
+
+        String outString = "";
+
+        if (xmlns.endsWith("PROCESSNETWORK") ||
+            xmlns.endsWith("processnetwork")) {
+          PNFlattener flattener = new PNFlattener(args[1]);
+          outString = flattener.removeIterators(document);
+        }
+        else if (xmlns.endsWith("ARCHITECTURE")
+                 || xmlns.endsWith("ARCHITECTURE_OLD")
+                 || xmlns.endsWith("architecture")) {
+          ArchFlattener flattener = new ArchFlattener(args[1]);
+          outString = flattener.removeIterators(document);
+        }
+        else if (xmlns.endsWith("MAPPING")
+                 || xmlns.endsWith("MAPPING_OLD")
+                 || xmlns.endsWith("mapping")) {
+          MappingFlattener flattener = new MappingFlattener(args[1]);
+          outString = flattener.removeIterators(document);
+        }
+
+        
+        try {
+          FileWriter fw = new FileWriter(new File(args[1] + ".java"));
+          fw.write(outString);
+          fw.flush();
+          fw.close();
+        } catch (Exception ex) {
+        }
+      }
+      else {
+        System.out.println("Nothing to be done. Terminating...");
+      }
+    }
+  }
+}