summaryrefslogtreecommitdiffstats
path: root/collaboration/GSoC-2011-Nirmal/CompositeDiagramGeneratorUsingBatik/src/main/java/org/apache/tuscany/sca/main/Main.java
diff options
context:
space:
mode:
Diffstat (limited to 'collaboration/GSoC-2011-Nirmal/CompositeDiagramGeneratorUsingBatik/src/main/java/org/apache/tuscany/sca/main/Main.java')
-rwxr-xr-xcollaboration/GSoC-2011-Nirmal/CompositeDiagramGeneratorUsingBatik/src/main/java/org/apache/tuscany/sca/main/Main.java144
1 files changed, 116 insertions, 28 deletions
diff --git a/collaboration/GSoC-2011-Nirmal/CompositeDiagramGeneratorUsingBatik/src/main/java/org/apache/tuscany/sca/main/Main.java b/collaboration/GSoC-2011-Nirmal/CompositeDiagramGeneratorUsingBatik/src/main/java/org/apache/tuscany/sca/main/Main.java
index 191d98b6b7..ab2da110e4 100755
--- a/collaboration/GSoC-2011-Nirmal/CompositeDiagramGeneratorUsingBatik/src/main/java/org/apache/tuscany/sca/main/Main.java
+++ b/collaboration/GSoC-2011-Nirmal/CompositeDiagramGeneratorUsingBatik/src/main/java/org/apache/tuscany/sca/main/Main.java
@@ -20,6 +20,12 @@
package org.apache.tuscany.sca.main;
import java.io.File;
+import java.io.StringWriter;
+
+import javax.xml.transform.Transformer;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.dom.DOMSource;
+import javax.xml.transform.stream.StreamResult;
import org.apache.tuscany.sca.impl.diagram.DiagramGenerator;
import org.apache.tuscany.sca.impl.html.HTMLWrapper;
@@ -30,7 +36,9 @@ import org.apache.tuscany.sca.impl.layout.EntityBuilder;
import org.w3c.dom.Document;
public class Main {
- private static final String outFileDir = System.getProperty("user.dir")+"/output/";
+ private static String outFileDir ; //= System.getProperty("user.dir")+"/output/";
+ private static boolean isHtml=false;
+ private static boolean isSvg=false;
/**
* @param args
@@ -38,40 +46,120 @@ public class Main {
*/
public static void main(String[] args) throws Exception {
-// if(args.length == 0){
-//
-// String help = "" +
-// "----------Apache Tuscany Composite Diagram Generator----------\n" +
-// "\n" +
-// "Error: You have not specified an input \"Composite XML\" file.\n" +
-// "\n" +
-// "-----------------------------Help-----------------------------\n" +
-// "You have 3 options:\n" +
-// "---1) Default: Specify \"Composite XML\" file paths separated \n" +
-// "--- by a space, with no arguments.\n" +
-// "--- Eg: java CompositeDiagramGenerator \\a\\aa\\a.composite \\b\\b\\b.composite \n" +
-// "---" +
-// "---2) SVG Only";
-// System.out.println();
-// }
-
- XMLReader reader = new XMLReader();
- Document doc =reader.parseXMLFile(System.getProperty("user.dir")+"/input/composite_with_compositeService.xml");//composite1.xml composite_with_compositeService.xml");
- EntityBuilder eb = new EntityBuilder(doc);
- CompositeEntity comp =eb.buildCompositeEntity();
+ if(args.length == 0){
- DiagramGenerator dg = new DiagramGenerator(comp);
- Document svg =dg.buildSVGDocument();
+ String help = "" +
+ "----------Apache Tuscany Composite Diagram Generator----------\n" +
+ "\n" +
+ "Error: You have not specified an input \"Composite XML\" file.\n" +
+ "\n" +
+ "-----------------------------Help-----------------------------\n" +
+ "You have 3 options:\n" +
+ "---1) Default: Specify \"Composite XML\" file paths separated \n" +
+ "--- by a space, with no arguments. This will" +
+ "--- generate SVG and HTML output.\n" +
+ "--- Eg: java -jar tuscany-composite-diagram-0.0.1.jar \n" +
+ "--- //a//aa//a.composite //b//bb//b.composite \n" +
+ "---\n" +
+ "---2) SVG Only: Specify \"Composite XML\" file paths separated\n" +
+ "--- by a space, with '-svg' argument.\n" +
+ "--- Eg: java -jar tuscany-composite-diagram-0.0.1.jar -svg\n" +
+ "--- //a//aa//a.composite //b//bb//b.composite \n" +
+ "---\n" +
+ "---3) HTML Only: Specify \"Composite XML\" file paths separated\n" +
+ "--- by a space, with '-html' argument.\n" +
+ "--- Eg: java -jar tuscany-composite-diagram-0.0.1.jar -html\n" +
+ "--- //a//aa//a.composite //b//bb//b.composite \n" +
+ "---\n";
+ System.out.println(help);
+ }
+ else{
+
+ if(args[0].equalsIgnoreCase("-svg")){
+ isSvg = true;
+ args[0] = null;
+ }
+ else if(args[0].equalsIgnoreCase("-html")){
+ isHtml = true;
+ args[0] = null;
+ }
+ else{
+ isSvg = true;
+ isHtml = true;
+ }
+
+ for(String str: args){
+
+ if(str != null){
+
+ File in = new File(str);
+ outFileDir = in.getParent()+"//";
+ XMLReader reader = new XMLReader();
+ Document doc =reader.parseXMLFile(str);//composite1.xml composite_with_compositeService.xml");
+ EntityBuilder eb = new EntityBuilder(doc);
+ CompositeEntity comp =eb.buildCompositeEntity();
+
+ DiagramGenerator dg = new DiagramGenerator(comp, isHtml);
+ Document svg =dg.buildSVGDocument();
+
+ String svgContent = extractSvg(svg);
+
+ if(isSvg){
+ writeSVG(svgContent, comp);
+ }
+
+ if(isHtml){
+ writeHTML(svgContent, comp);
+ }
+
+ }
+ }
+ }
+ }
+
+ private static void writeHTML(String svg, CompositeEntity comp) throws Exception {
+
+ File htmlFile = new File(outFileDir + comp.getName()+ comp.getFileNameSuffix()+".html");
+ HTMLWrapper html = new HTMLWrapper(svg, comp.getName(), htmlFile);
+ String content = html.buildHTML();
+
+ System.err.println("--------------HTML Output for "+comp.getName()+"--------------\n");
+ System.out.println(content);
+ System.err.println("--------------------------------------------------------------\n");
+
+ }
+
+ private static void writeSVG(String svg, CompositeEntity comp) throws Exception{
String svgFileName = comp.getName()+ comp.getFileNameSuffix()+".svg";
File svgFile = new File(outFileDir + svgFileName);
XMLWriter writer = new XMLWriter();
writer.fileWriter(svg, svgFile);
- File htmlFile = new File(outFileDir + comp.getName()+ comp.getFileNameSuffix()+".html");
- HTMLWrapper html = new HTMLWrapper(svg, comp.getName(), svgFileName, dg.getDiagramHeight(),
- dg.getDiagramWidth(), htmlFile);
- html.buildHTML();
+ System.err.println("--------------SVG Output for "+comp.getName()+"--------------\n");
+ System.out.println(svg);
+ System.err.println("-------------------------------------------------------------\n");
+ }
+
+ private static String extractSvg(Document svg) throws Exception{
+
+ // Set up the output transformer
+ TransformerFactory transfac = TransformerFactory.newInstance();
+ Transformer trans = transfac.newTransformer();
+
+ // Print the DOM node
+
+ StringWriter sw = new StringWriter();
+ StreamResult result = new StreamResult(sw);
+ DOMSource source = new DOMSource(svg);
+ trans.transform(source, result);
+ String svgString = sw.toString();
+
+ return svgString;
}
+
+
+
+
}