KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > objectweb > celtix > tools > WSDLToSoap


1 package org.objectweb.celtix.tools;
2
3 import java.io.File JavaDoc;
4 import java.util.HashSet JavaDoc;
5 import java.util.Set JavaDoc;
6
7 import org.objectweb.celtix.common.i18n.Message;
8 import org.objectweb.celtix.tools.common.ProcessorEnvironment;
9 import org.objectweb.celtix.tools.common.ToolConstants;
10 import org.objectweb.celtix.tools.common.ToolException;
11 import org.objectweb.celtix.tools.common.toolspec.ToolRunner;
12 import org.objectweb.celtix.tools.common.toolspec.ToolSpec;
13 import org.objectweb.celtix.tools.common.toolspec.parser.BadUsageException;
14 import org.objectweb.celtix.tools.common.toolspec.parser.CommandDocument;
15 import org.objectweb.celtix.tools.common.toolspec.parser.ErrorVisitor;
16 import org.objectweb.celtix.tools.processors.wsdl2.WSDLToSoapProcessor;
17
18 public class WSDLToSoap extends AbstractCeltixToolContainer {
19
20     static final String JavaDoc TOOL_NAME = "wsdl2soap";
21     static final String JavaDoc BINDING_NAME_POSFIX = "_Binding";
22     static final String JavaDoc STYLE_DEF_VALUE = "document";
23     static final String JavaDoc USE_DEF_VALUE = "literal";
24     
25     private static String JavaDoc[] args;
26
27     public WSDLToSoap(ToolSpec toolspec) throws Exception JavaDoc {
28         super(TOOL_NAME, toolspec);
29     }
30     
31     private Set JavaDoc getArrayKeys() {
32         return new HashSet JavaDoc<String JavaDoc>();
33     }
34     
35     public void execute(boolean exitOnFinish) {
36         WSDLToSoapProcessor processor = new WSDLToSoapProcessor();
37         try {
38             super.execute(exitOnFinish);
39             if (!hasInfoOption()) {
40                 ProcessorEnvironment env = new ProcessorEnvironment();
41                 env.setParameters(getParametersMap(getArrayKeys()));
42                 if (isVerboseOn()) {
43                     env.put(ToolConstants.CFG_VERBOSE, Boolean.TRUE);
44                 }
45                 env.put(ToolConstants.CFG_CMD_ARG, args);
46
47                 validate(env);
48                 setEnvParamDefValues(env);
49                 
50                 processor.setEnvironment(env);
51                 processor.process();
52             }
53         } catch (ToolException ex) {
54             System.err.println("Error : " + ex.getMessage());
55             if (ex.getCause() instanceof BadUsageException) {
56                 getInstance().printUsageException(TOOL_NAME, (BadUsageException)ex.getCause());
57             }
58             System.err.println();
59             if (isVerboseOn()) {
60                 ex.printStackTrace();
61             }
62         } catch (Exception JavaDoc ex) {
63             System.err.println("Error : " + ex.getMessage());
64             System.err.println();
65             if (isVerboseOn()) {
66                 ex.printStackTrace();
67             }
68         }
69     }
70
71     private void setEnvParamDefValues(ProcessorEnvironment env) {
72         if (!env.optionSet(ToolConstants.CFG_BINDING)) {
73             env.put(ToolConstants.CFG_BINDING, env.get(ToolConstants.CFG_PORTTYPE) + BINDING_NAME_POSFIX);
74         }
75         if (!env.optionSet(ToolConstants.CFG_STYLE)) {
76             env.put(ToolConstants.CFG_STYLE, STYLE_DEF_VALUE);
77         }
78         if (!env.optionSet(ToolConstants.CFG_USE)) {
79             env.put(ToolConstants.CFG_USE, USE_DEF_VALUE);
80         }
81     }
82
83     private void validate(ProcessorEnvironment env) throws ToolException {
84         String JavaDoc outdir = (String JavaDoc)env.get(ToolConstants.CFG_OUTPUTDIR);
85         if (outdir != null) {
86             File JavaDoc dir = new File JavaDoc(outdir);
87             if (!dir.exists()) {
88                 Message msg = new Message("DIRECTORY_NOT_EXIST", LOG, outdir);
89                 throw new ToolException(msg);
90             }
91             if (!dir.isDirectory()) {
92                 Message msg = new Message("NOT_A_DIRECTORY", LOG, outdir);
93                 throw new ToolException(msg);
94             }
95         }
96     }
97
98     public static void main(String JavaDoc[] pargs) {
99         args = pargs;
100         try {
101             ToolRunner.runTool(WSDLToSoap.class,
102                                WSDLToSoap.class.getResourceAsStream(ToolConstants.TOOLSPECS_BASE
103                                                                     + "wsdl2soap.xml"),
104                                false,
105                                args);
106         } catch (BadUsageException ex) {
107             getInstance().printUsageException(TOOL_NAME, ex);
108         } catch (Exception JavaDoc ex) {
109             System.err.println("Error : " + ex.getMessage());
110             System.err.println();
111             ex.printStackTrace();
112         }
113     }
114
115     public void checkParams(ErrorVisitor errors) throws ToolException {
116         CommandDocument doc = super.getCommandDocument();
117
118         if (!doc.hasParameter("wsdlurl")) {
119             errors.add(new ErrorVisitor.UserError("WSDL/SCHEMA URL has to be specified"));
120         }
121         if (errors.getErrors().size() > 0) {
122             Message msg = new Message("PARAMETER_MISSING", LOG);
123             throw new ToolException(msg, new BadUsageException(getUsage(), errors));
124         }
125     }
126
127 }
128
Popular Tags