diff options
Diffstat (limited to 'collaboration/GSoC-2011-Nirmal/CompositeDiagramGeneratorUsingBatik/src/main/java/org/apache/tuscany/sca/main/Main.java')
-rwxr-xr-x | collaboration/GSoC-2011-Nirmal/CompositeDiagramGeneratorUsingBatik/src/main/java/org/apache/tuscany/sca/main/Main.java | 243 |
1 files changed, 118 insertions, 125 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 ab2da110e4..64b9ccdb92 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 @@ -36,130 +36,123 @@ import org.apache.tuscany.sca.impl.layout.EntityBuilder; import org.w3c.dom.Document; public class Main { - private static String outFileDir ; //= System.getProperty("user.dir")+"/output/"; - private static boolean isHtml=false; - private static boolean isSvg=false; - - /** - * @param args - * @throws Exception - */ - 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. 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); - - 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; - } - - - - + private static String outFileDir; //= System.getProperty("user.dir")+"/output/"; + private static boolean isHtml = false; + private static boolean isSvg = false; + + /** + * @param args + * @throws Exception + */ + 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. 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); + + 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; + } } |