KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > objectweb > celtix > tools > generators > java2 > WSDLGenerator


1 package org.objectweb.celtix.tools.generators.java2;
2
3 import javax.wsdl.Definition;
4 import javax.wsdl.factory.WSDLFactory;
5 import javax.wsdl.xml.WSDLWriter;
6
7 import org.objectweb.celtix.tools.common.ProcessorEnvironment;
8 import org.objectweb.celtix.tools.common.ToolConstants;
9 import org.objectweb.celtix.tools.common.ToolException;
10 import org.objectweb.celtix.tools.common.model.WSDLModel;
11
12 public class WSDLGenerator {
13     private final WSDLModel wmodel;
14
15     private final ProcessorEnvironment env;
16
17     private final Definition definition;
18
19     private WSDLFactory wsdlFactory;
20
21     private String JavaDoc wsdlFile;
22
23     private String JavaDoc portTypeName;
24
25     public WSDLGenerator(WSDLModel model, ProcessorEnvironment penv) {
26         wmodel = model;
27         env = penv;
28         definition = model.getDefinition();
29         try {
30             wsdlFactory = WSDLFactory.newInstance();
31         } catch (javax.wsdl.WSDLException e) {
32             throw new ToolException(e.getMessage(), e);
33         }
34     }
35
36     public void generate() {
37         preGenerate();
38         TypesGenerator typeGen = new TypesGenerator(wmodel , env);
39         typeGen.generate();
40         MessagePortTypeGenerator messagePortTypeGen = new MessagePortTypeGenerator(wmodel);
41         messagePortTypeGen.generate();
42         BindingGenerator bindingGen = new BindingGenerator(wmodel);
43         bindingGen.generate();
44         ServiceGenerator serviceGen = new ServiceGenerator(wmodel);
45         serviceGen.generate();
46         writeDefinition();
47
48     }
49
50     private void preGenerate() {
51         Object JavaDoc obj = env.get(ToolConstants.CFG_OUTPUTFILE);
52         wsdlFile = obj == null ? "./" + wmodel.getServiceName() + ".wsdl" : (String JavaDoc)obj;
53         obj = env.get(ToolConstants.CFG_TNS);
54         String JavaDoc targetNameSpace;
55         targetNameSpace = obj == null ? wmodel.getTargetNameSpace() : (String JavaDoc)obj;
56         wmodel.setTargetNameSpace(targetNameSpace);
57         obj = env.get(ToolConstants.CFG_PORTTYPE);
58         portTypeName = obj == null ? wmodel.getPortName() : (String JavaDoc)obj;
59         wmodel.setPortName(portTypeName);
60
61     }
62
63     private boolean writeDefinition() {
64
65         WSDLWriter writer = wsdlFactory.newWSDLWriter();
66
67         java.io.File JavaDoc file = new java.io.File JavaDoc(wsdlFile);
68         java.io.OutputStream JavaDoc outstream = null;
69         try {
70             outstream = new java.io.FileOutputStream JavaDoc(file);
71         } catch (java.io.FileNotFoundException JavaDoc e) {
72             throw new ToolException(e.getMessage(), e);
73         }
74
75         try {
76             writer.writeWSDL(this.definition, outstream);
77         } catch (javax.wsdl.WSDLException e) {
78             throw new ToolException(e.getMessage(), e);
79         }
80         return true;
81     }
82
83     
84  
85
86 }
87
Popular Tags