Search in sources :

Example 1 with CommandLine

use of org.apache.xmlbeans.impl.tool.CommandLine in project intellij-community by JetBrains.

the class Xsd2InstanceUtils method generate.

public static String generate(String[] args) {
    Set flags = new HashSet();
    Set opts = new HashSet();
    flags.add("h");
    flags.add("help");
    flags.add("usage");
    flags.add("license");
    flags.add("version");
    flags.add("dl");
    flags.add("noupa");
    flags.add("nopvr");
    flags.add("partial");
    opts.add("name");
    CommandLine cl = new CommandLine(args, flags, opts);
    String[] badOpts = cl.getBadOpts();
    if (badOpts.length > 0) {
        throw new IllegalArgumentException("Unrecognized option: " + badOpts[0]);
    }
    boolean dl = (cl.getOpt("dl") != null);
    boolean nopvr = (cl.getOpt("nopvr") != null);
    boolean noupa = (cl.getOpt("noupa") != null);
    File[] schemaFiles = cl.filesEndingWith(".xsd");
    String rootName = cl.getOpt("name");
    if (rootName == null) {
        throw new IllegalArgumentException("Required option \"-name\" must be present");
    }
    // Process Schema files
    List sdocs = new ArrayList();
    for (File schemaFile : schemaFiles) {
        try {
            sdocs.add(XmlObject.Factory.parse(schemaFile, (new XmlOptions()).setLoadLineNumbers().setLoadMessageDigest()));
        } catch (Exception e) {
            throw new IllegalArgumentException("Can not load schema file: " + schemaFile + ": " + e.getLocalizedMessage());
        }
    }
    XmlObject[] schemas = (XmlObject[]) sdocs.toArray(new XmlObject[sdocs.size()]);
    SchemaTypeSystem sts = null;
    if (schemas.length > 0) {
        Collection errors = new ArrayList();
        XmlOptions compileOptions = new XmlOptions();
        if (dl)
            compileOptions.setCompileDownloadUrls();
        if (nopvr)
            compileOptions.setCompileNoPvrRule();
        if (noupa)
            compileOptions.setCompileNoUpaRule();
        try {
            sts = XmlBeans.compileXsd(schemas, XmlBeans.getBuiltinTypeSystem(), compileOptions);
        } catch (XmlException e) {
            String out = "Schema compilation errors: ";
            for (Object error : errors) out += "\n" + error;
            throw new IllegalArgumentException(out);
        }
    }
    if (sts == null) {
        throw new IllegalArgumentException("No Schemas to process.");
    }
    SchemaType[] globalElems = sts.documentTypes();
    SchemaType elem = null;
    for (SchemaType globalElem : globalElems) {
        if (rootName.equals(globalElem.getDocumentElementName().getLocalPart())) {
            elem = globalElem;
            break;
        }
    }
    if (elem == null) {
        throw new IllegalArgumentException("Could not find a global element with name \"" + rootName + "\"");
    }
    // Now generate it
    return SampleXmlUtil.createSampleForType(elem);
}
Also used : UnsupportedEncodingException(java.io.UnsupportedEncodingException) CommandLine(org.apache.xmlbeans.impl.tool.CommandLine) XmlFile(com.intellij.psi.xml.XmlFile) VirtualFile(com.intellij.openapi.vfs.VirtualFile) File(java.io.File)

Example 2 with CommandLine

use of org.apache.xmlbeans.impl.tool.CommandLine in project airavata by apache.

the class SchemaCompilerUtil method compile.

public static void compile(String[] args) {
    if (args.length == 0) {
        return;
    }
    Set flags = new HashSet();
    flags.add("h");
    flags.add("help");
    flags.add("usage");
    flags.add("license");
    flags.add("quiet");
    flags.add("verbose");
    flags.add("version");
    flags.add("dl");
    flags.add("noupa");
    flags.add("nopvr");
    flags.add("noann");
    flags.add("novdoc");
    flags.add("noext");
    flags.add("srconly");
    flags.add("debug");
    Set opts = new HashSet();
    opts.add("out");
    opts.add("name");
    opts.add("src");
    opts.add("d");
    opts.add("cp");
    opts.add("compiler");
    opts.add("javasource");
    // deprecated
    opts.add("jar");
    opts.add("ms");
    opts.add("mx");
    opts.add("repackage");
    opts.add("schemaCodePrinter");
    opts.add("extension");
    opts.add("extensionParms");
    opts.add("allowmdef");
    opts.add("catalog");
    CommandLine cl = new CommandLine(args, flags, opts);
    String[] badopts = cl.getBadOpts();
    if (badopts.length > 0) {
        for (int i = 0; i < badopts.length; i++) System.out.println("Unrecognized option: " + badopts[i]);
        return;
    }
    boolean verbose = (cl.getOpt("verbose") != null);
    boolean quiet = (cl.getOpt("quiet") != null);
    if (verbose)
        quiet = false;
    String outputfilename = cl.getOpt("out");
    String repackage = cl.getOpt("repackage");
    cl.getOpt("schemaCodePrinter");
    SchemaCodePrinter codePrinter = null;
    String name = cl.getOpt("name");
    boolean download = (cl.getOpt("dl") != null);
    boolean noUpa = (cl.getOpt("noupa") != null);
    boolean noPvr = (cl.getOpt("nopvr") != null);
    boolean noAnn = (cl.getOpt("noann") != null);
    boolean noVDoc = (cl.getOpt("novdoc") != null);
    boolean noExt = (cl.getOpt("noext") != null);
    boolean nojavac = (cl.getOpt("srconly") != null);
    boolean debug = (cl.getOpt("debug") != null);
    String allowmdef = cl.getOpt("allowmdef");
    Set mdefNamespaces = (allowmdef == null ? Collections.EMPTY_SET : new HashSet(Arrays.asList(XmlListImpl.split_list(allowmdef))));
    List extensions = new ArrayList();
    String classesdir = cl.getOpt("d");
    File classes = null;
    if (classesdir != null)
        classes = new File(classesdir);
    String srcdir = cl.getOpt("src");
    File src = null;
    if (srcdir != null)
        src = new File(srcdir);
    if (nojavac && srcdir == null && classes != null)
        src = classes;
    // create temp directory
    File tempdir = null;
    if (src == null || classes == null) {
        throw new WorkflowRuntimeException("Code gen src directory or classes directory is null");
    }
    File jarfile = null;
    if (outputfilename == null && classes == null && !nojavac)
        outputfilename = "xmltypes.jar";
    if (outputfilename != null)
        jarfile = new File(outputfilename);
    if (src == null)
        src = IOUtil.createDir(tempdir, "src");
    if (classes == null)
        classes = IOUtil.createDir(tempdir, "classes");
    File[] classpath = null;
    String cpString = cl.getOpt("cp");
    if (cpString != null) {
        String[] cpparts = cpString.split(File.pathSeparator);
        List cpList = new ArrayList();
        for (int i = 0; i < cpparts.length; i++) cpList.add(new File(cpparts[i]));
        classpath = (File[]) cpList.toArray(new File[cpList.size()]);
    } else {
        classpath = CodeGenUtil.systemClasspath();
    }
    String javasource = cl.getOpt("javasource");
    String compiler = cl.getOpt("compiler");
    String jar = cl.getOpt("jar");
    if (verbose && jar != null)
        System.out.println("The 'jar' option is no longer supported.");
    String memoryInitialSize = cl.getOpt("ms");
    String memoryMaximumSize = cl.getOpt("mx");
    File[] xsdFiles = cl.filesEndingWith(".xsd");
    File[] wsdlFiles = cl.filesEndingWith(".wsdl");
    File[] javaFiles = cl.filesEndingWith(".java");
    File[] configFiles = cl.filesEndingWith(".xsdconfig");
    URL[] urlFiles = cl.getURLs();
    if (xsdFiles.length + wsdlFiles.length + urlFiles.length == 0) {
        System.out.println("Could not find any xsd or wsdl files to process.");
        return;
    }
    File baseDir = cl.getBaseDir();
    URI baseURI = baseDir == null ? null : baseDir.toURI();
    XmlErrorPrinter err = new XmlErrorPrinter(verbose, baseURI);
    String catString = cl.getOpt("catalog");
    Parameters params = new Parameters();
    params.setBaseDir(baseDir);
    params.setXsdFiles(xsdFiles);
    params.setWsdlFiles(wsdlFiles);
    params.setJavaFiles(javaFiles);
    params.setConfigFiles(configFiles);
    params.setUrlFiles(urlFiles);
    params.setClasspath(classpath);
    params.setOutputJar(jarfile);
    params.setName(name);
    params.setSrcDir(src);
    params.setClassesDir(classes);
    params.setCompiler(compiler);
    params.setJavaSource(javasource);
    params.setMemoryInitialSize(memoryInitialSize);
    params.setMemoryMaximumSize(memoryMaximumSize);
    params.setNojavac(nojavac);
    params.setQuiet(quiet);
    params.setVerbose(verbose);
    params.setDownload(download);
    params.setNoUpa(noUpa);
    params.setNoPvr(noPvr);
    params.setNoAnn(noAnn);
    params.setNoVDoc(noVDoc);
    params.setNoExt(noExt);
    params.setDebug(debug);
    params.setErrorListener(err);
    params.setRepackage(repackage);
    params.setExtensions(extensions);
    params.setMdefNamespaces(mdefNamespaces);
    params.setCatalogFile(catString);
    params.setSchemaCodePrinter(codePrinter);
    compile(params);
}
Also used : Set(java.util.Set) HashSet(java.util.HashSet) ArrayList(java.util.ArrayList) WorkflowRuntimeException(org.apache.airavata.workflow.model.exceptions.WorkflowRuntimeException) URI(java.net.URI) URL(java.net.URL) XmlErrorPrinter(org.apache.xmlbeans.impl.common.XmlErrorPrinter) CommandLine(org.apache.xmlbeans.impl.tool.CommandLine) SchemaCodePrinter(org.apache.xmlbeans.SchemaCodePrinter) ArrayList(java.util.ArrayList) List(java.util.List) File(java.io.File) HashSet(java.util.HashSet)

Aggregations

File (java.io.File)2 CommandLine (org.apache.xmlbeans.impl.tool.CommandLine)2 VirtualFile (com.intellij.openapi.vfs.VirtualFile)1 XmlFile (com.intellij.psi.xml.XmlFile)1 UnsupportedEncodingException (java.io.UnsupportedEncodingException)1 URI (java.net.URI)1 URL (java.net.URL)1 ArrayList (java.util.ArrayList)1 HashSet (java.util.HashSet)1 List (java.util.List)1 Set (java.util.Set)1 WorkflowRuntimeException (org.apache.airavata.workflow.model.exceptions.WorkflowRuntimeException)1 SchemaCodePrinter (org.apache.xmlbeans.SchemaCodePrinter)1 XmlErrorPrinter (org.apache.xmlbeans.impl.common.XmlErrorPrinter)1