dol: initial dol commit
[jump.git] / dol / src / dol / helper / flattener / XMLFlattener.java
1 /* $Id: XMLFlattener.java 1 2010-02-24 13:03:05Z haidw $ */
2 package dol.helper.flattener;
3
4 import java.io.File;
5 import java.io.FileWriter;
6
7 import org.jdom.input.DOMBuilder;
8 import org.w3c.dom.Document;
9
10 /**
11  *
12  */
13 public class XMLFlattener {
14
15   public static void main(String[] args) {
16
17     if (args.length != 2) {
18       System.out.println("Wrong number of arguments.");
19       System.out.println("Correct call:");
20       System.out.println("java XMLFlattener in.xml out.xml");
21       System.exit(-1);
22     }
23     else {
24       SaxDocumentParser sdp = new SaxDocumentParser();
25       boolean needsToBeFlattened = false;
26       needsToBeFlattened = sdp.parseDocument(args[0]);
27       if (needsToBeFlattened) {
28         // start also with DOM Parser and generate the XML-Generator
29         DomDocumentParser ddp = new DomDocumentParser();
30         Document doc = ddp.parseDocument(args[0]);
31
32         DOMBuilder db = new DOMBuilder();
33         org.jdom.Document document = db.build(doc);
34
35         String xmlns = document.getRootElement().getNamespaceURI();
36
37         String outString = "";
38
39         if (xmlns.endsWith("PROCESSNETWORK") ||
40             xmlns.endsWith("processnetwork")) {
41           PNFlattener flattener = new PNFlattener(args[1]);
42           outString = flattener.removeIterators(document);
43         }
44         else if (xmlns.endsWith("ARCHITECTURE")
45                  || xmlns.endsWith("ARCHITECTURE_OLD")
46                  || xmlns.endsWith("architecture")) {
47           ArchFlattener flattener = new ArchFlattener(args[1]);
48           outString = flattener.removeIterators(document);
49         }
50         else if (xmlns.endsWith("MAPPING")
51                  || xmlns.endsWith("MAPPING_OLD")
52                  || xmlns.endsWith("mapping")) {
53           MappingFlattener flattener = new MappingFlattener(args[1]);
54           outString = flattener.removeIterators(document);
55         }
56
57         
58         try {
59           FileWriter fw = new FileWriter(new File(args[1] + ".java"));
60           fw.write(outString);
61           fw.flush();
62           fw.close();
63         } catch (Exception ex) {
64         }
65       }
66       else {
67         System.out.println("Nothing to be done. Terminating...");
68       }
69     }
70   }
71 }