1 package org.objectweb.celtix.tools; 2 3 import java.io.File ; 4 import java.util.HashSet ; 5 import java.util.Set ; 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.xsd2.XSDToWSDLProcessor; 17 18 19 public class XSDToWSDL extends AbstractCeltixToolContainer { 20 21 static final String TOOL_NAME = "xsd2wsdl"; 22 23 private static String [] args; 24 25 public XSDToWSDL(ToolSpec toolspec) throws Exception { 26 super(TOOL_NAME, toolspec); 27 } 28 29 private Set getArrayKeys() { 30 return new HashSet <String >(); 31 } 32 33 public void execute(boolean exitOnFinish) { 34 XSDToWSDLProcessor processor = new XSDToWSDLProcessor(); 35 try { 36 super.execute(exitOnFinish); 37 if (!hasInfoOption()) { 38 ProcessorEnvironment env = new ProcessorEnvironment(); 39 env.setParameters(getParametersMap(getArrayKeys())); 40 if (isVerboseOn()) { 41 env.put(ToolConstants.CFG_VERBOSE, Boolean.TRUE); 42 } 43 env.put(ToolConstants.CFG_CMD_ARG, args); 44 validate(env); 45 processor.setEnvironment(env); 46 processor.process(); 47 } 48 } catch (ToolException ex) { 49 System.err.println("Error : " + ex.getMessage()); 50 if (ex.getCause() instanceof BadUsageException) { 51 getInstance().printUsageException(TOOL_NAME, (BadUsageException)ex.getCause()); 52 } 53 System.err.println(); 54 if (isVerboseOn()) { 55 ex.printStackTrace(); 56 } 57 } catch (Exception ex) { 58 System.err.println("Error : " + ex.getMessage()); 59 System.err.println(); 60 if (isVerboseOn()) { 61 ex.printStackTrace(); 62 } 63 } 64 } 65 66 67 private void validate(ProcessorEnvironment env) throws ToolException { 68 String outdir = (String )env.get(ToolConstants.CFG_OUTPUTDIR); 69 if (outdir != null) { 70 File dir = new File (outdir); 71 if (!dir.exists()) { 72 Message msg = new Message("DIRECTORY_NOT_EXIST", LOG, outdir); 73 throw new ToolException(msg); 74 } 75 if (!dir.isDirectory()) { 76 Message msg = new Message("NOT_A_DIRECTORY", LOG, outdir); 77 throw new ToolException(msg); 78 } 79 } 80 } 81 82 public static void main(String [] pargs) { 83 args = pargs; 84 try { 85 ToolRunner.runTool(XSDToWSDL.class, XSDToWSDL.class 86 .getResourceAsStream(ToolConstants.TOOLSPECS_BASE + "xsd2wsdl.xml"), false, args); 87 } catch (BadUsageException ex) { 88 getInstance().printUsageException(TOOL_NAME, ex); 89 } catch (Exception ex) { 90 System.err.println("Error : " + ex.getMessage()); 91 System.err.println(); 92 ex.printStackTrace(); 93 } 94 } 95 96 public void checkParams(ErrorVisitor errors) throws ToolException { 97 CommandDocument doc = super.getCommandDocument(); 98 99 if (!doc.hasParameter("xsdurl")) { 100 errors.add(new ErrorVisitor.UserError("XSD URL has to be specified")); 101 } 102 if (errors.getErrors().size() > 0) { 103 Message msg = new Message("PARAMETER_MISSING", LOG); 104 throw new ToolException(msg, new BadUsageException(getUsage(), errors)); 105 } 106 } 107 108 } 109 | Popular Tags |