Package com.xmlcalabash.util

Examples of com.xmlcalabash.util.TreeWriter


        while (portIter.hasNext()) {
            ports.add(portIter.next());
        }

        for (String port : ports) {
            TreeWriter tree = new TreeWriter(runtime);

            tree.startDocument(step.getNode().getBaseURI());
            tree.addStartElement(c_param_set);
            tree.startContent();

            Iterator<QName> paramIter = getParameters(port).iterator();
            while (paramIter.hasNext()) {
                QName name = paramIter.next();

                String value = getParameter(port, name).getString();
                tree.addStartElement(c_param);
                tree.addAttribute(_name, name.getLocalName());
                if (name.getNamespaceURI() != null) {
                    tree.addAttribute(_namespace, name.getNamespaceURI());
                }
                tree.addAttribute(_value, value);
                tree.startContent();
                tree.addEndElement();
            }

            tree.addEndElement();
            tree.endDocument();

            writeTo(port,tree.getResult());
        }
    }
View Full Code Here


    protected String nextDatabaseUri() {
        return databasePath() + Long.toHexString(fuse(scramble(random.nextLong()),fuse(scramble(milliSecs),random.nextLong()))) + ".xml";
    }

    protected void dumpStatements(StmtIterator stmtIter, String graphName) {
        TreeWriter tree = null;
        long count = 0;

        tree = new TreeWriter(runtime);
        tree.startDocument(step.getNode().getBaseURI());
        tree.addStartElement(sem_triples);
        tree.startContent();

        tree.addStartElement(cx_database_uri);
        tree.startContent();
        tree.addText(nextDatabaseUri());
        tree.addEndElement();

        if (graphName != null) {
            tree.addStartElement(cx_graph_name);
            tree.startContent();
            tree.addText(graphName);
            tree.addEndElement();
        }

        while (stmtIter.hasNext()) {
            Statement stmt = stmtIter.nextStatement();

            tree.addStartElement(sem_triple);
            tree.startContent();

            subject(tree, stmt.getSubject());
            predicate(tree, stmt.getPredicate());
            object(tree, stmt.getObject());

            tree.addEndElement();

            count += 1;
            if (count >= limit) {
                tree.addEndElement();
                tree.endDocument();

                XdmNode out = tree.getResult();
                result.write(out);

                tree = new TreeWriter(runtime);
                tree.startDocument(step.getNode().getBaseURI());
                tree.addStartElement(sem_triples);
                tree.startContent();

                tree.addStartElement(cx_database_uri);
                tree.startContent();
                tree.addText(nextDatabaseUri());
                tree.addEndElement();

                if (graphName != null) {
                    tree.addStartElement(cx_graph_name);
                    tree.startContent();
                    tree.addText(graphName);
                    tree.addEndElement();
                }

                count = 0;
            }
        }

        if (count > 0) {
            tree.addEndElement();
            tree.endDocument();

            XdmNode out = tree.getResult();
            result.write(out);
        }
    }
View Full Code Here

            XdmNode node = source.read();
            count++;
            done = (limit > 0 && count == limit);
        }

        TreeWriter tree = new TreeWriter(runtime);
        tree.startDocument(step.getNode().getBaseURI());
        tree.addStartElement(c_result);
        tree.startContent();
        tree.addText("" + count);
        tree.addEndElement();
        tree.endDocument();
        result.write(tree.getResult());
    }
View Full Code Here

        globalRuntime = runtime;
    }

    @Override
    public Representation getRepresentation(org.restlet.data.Status status, Request request, Response response) {
        TreeWriter tree = new TreeWriter(globalRuntime);
        tree.startDocument(URI.create("http://example.com/"));
        tree.addStartElement(BaseResource.pr_error);
        tree.startContent();
        tree.addStartElement(BaseResource.pr_code);
        tree.startContent();
        tree.addText("" + status.getCode());
        tree.addEndElement();
        tree.addStartElement(BaseResource.pr_message);
        tree.startContent();
        tree.addText("Bad request: " + exceptionMessage(status.getThrowable()));
        tree.addEndElement();
        tree.addEndElement();
        tree.endDocument();
        return new StringRepresentation(tree.getResult().toString());
    }
View Full Code Here

        }

        cpfx = errorCode.getPrefix();
        cns = errorCode.getNamespaceURI();

        TreeWriter treeWriter = new TreeWriter(runtime);
        treeWriter.startDocument(step.getNode().getBaseURI());
        treeWriter.addStartElement(c_error);
        treeWriter.addNamespace(cpfx, cns);

        treeWriter.addAttribute(_name, step.getName());
        treeWriter.addAttribute(_type, "p:error");
        treeWriter.addAttribute(_code, errorCode.toString());
        treeWriter.startContent();
        if (doc != null) {
            treeWriter.addSubtree(doc);
        }
        treeWriter.addEndElement();
        treeWriter.endDocument();

        step.reportError(treeWriter.getResult());

        if (doc == null) {
            throw new XProcException(errorCode);
        } else {
            throw new XProcException(errorCode, doc, doc.getStringValue());
View Full Code Here

        }

        baseURI = getOption(_uri).getBaseURI().resolve(uris);

        XdmNode doc = source.read();
        tree = new TreeWriter(runtime);
        tree.startDocument(baseURI);

        for (XdmNode node : new AxisNodes(doc, Axis.CHILD)) {
            write(node,false);
        }
View Full Code Here

        RuntimeValue href = getOption(_href);
        URI uri = href.getBaseURI().resolve(href.getString());

        logger.trace(MessageFormatter.nodeMessage(step.getNode(), "Checking uri-info for " + uri));

        TreeWriter tree = new TreeWriter(runtime);
        tree.startDocument(step.getNode().getBaseURI());
        tree.addStartElement(c_uriinfo);

        if (uri.getScheme().equals("file")) {
            String fn = href.getString();
            if (fn.startsWith("file:")) {
                fn = fn.substring(5);
                if (fn.startsWith("///")) {
                    fn = fn.substring(2);
                }
            }

            File f = new File(fn);

            tree.addAttribute(_href, href.getString());
            tree.addAttribute(_exists, f.exists() ? "true" : "false");
            tree.addAttribute(_readable, f.canRead() ? "true" : "false");

            if (f.exists()) {
                tree.addAttribute(_writable, f.canWrite() ? "true" : "false");
                tree.addAttribute(_size, "" + f.length());
                tree.addAttribute(_absolute, f.isAbsolute() ? "true" : "false");
                tree.addAttribute(_directory, f.isDirectory() ? "true" : "false");
                tree.addAttribute(_hidden, f.isHidden() ? "true" : "false");
                tree.addAttribute(_file, f.isFile() ? "true" : "false");

                GregorianCalendar cal = new GregorianCalendar();
                cal.setTimeInMillis(f.lastModified());

                TimeZone tz = TimeZone.getDefault();
                long gmt = f.lastModified() - tz.getRawOffset();
                if (tz.useDaylightTime() && tz.inDaylightTime(cal.getTime())) {
                    gmt -= tz.getDSTSavings();
                }
                cal.setTimeInMillis(gmt);
                tree.addAttribute(_last_modified, String.format("%1$04d-%2$02d-%3$02dT%4$02d:%5$02d:%6$02dZ",
                        cal.get(Calendar.YEAR), cal.get(Calendar.MONTH)+1, cal.get(Calendar.DAY_OF_MONTH),
                        cal.get(Calendar.HOUR_OF_DAY), cal.get(Calendar.MINUTE), cal.get(Calendar.SECOND)));
            } else {
                String path = f.getAbsolutePath();
                int slash = path.lastIndexOf("/");
                path = path.substring(0,slash);
                File parent = new File(path);
                tree.addAttribute(_writable, parent.canWrite() ? "true" : "false");
            }

            tree.addAttribute(_absolute_path, f.getAbsolutePath());
            tree.addAttribute(_uri, f.toURI().toASCIIString());

            try {
                String cp = f.getCanonicalPath();
                tree.addAttribute(_canonical_path, cp);
            } catch (Exception e) {
                // nevermind
            }
            tree.startContent();
            tree.addEndElement();
        } else {
            // Let's try HTTP
            HttpRequest httpReq = new HttpRequest(runtime, step);
            Pipe inputPipe = new Pipe(runtime);
            Pipe outputPipe = new Pipe(runtime);
            httpReq.setInput("source", inputPipe);
            httpReq.setOutput("result", outputPipe);

            TreeWriter req = new TreeWriter(runtime);
            req.startDocument(step.getNode().getBaseURI());
            req.addStartElement(XProcConstants.c_request);
            req.addAttribute(_method, "HEAD");
            req.addAttribute(_href, uri.toASCIIString());
            req.addAttribute(_status_only, "true");
            req.addAttribute(_detailed, "true");

            for (QName name : new QName[] {_username, _password, _auth_method, _send_authorization } ) {
                RuntimeValue v = getOption(name);
                if (v != null) { req.addAttribute(name, v.getString()); }
            }
           
            req.startContent();
            req.addEndElement();
            req.endDocument();

            inputPipe.write(req.getResult());

            httpReq.run();

            XdmNode result = S9apiUtils.getDocumentElement(outputPipe.read());
            int status = Integer.parseInt(result.getAttributeValue(_status));
View Full Code Here

        Serializer serializer = makeSerializer();

        XdmNode doc = source.read();

        TreeWriter tree = new TreeWriter(runtime);
        tree.startDocument(doc.getBaseURI());
        for (XdmNode child : new AxisNodes(doc, Axis.CHILD)) {
            if (child.getNodeKind() == XdmNodeKind.COMMENT) {
                tree.addComment(child.getStringValue());
            } else if (child.getNodeKind() == XdmNodeKind.PROCESSING_INSTRUCTION) {
                tree.addPI(child.getNodeName().getLocalName(), child.getStringValue());
            } else if (child.getNodeKind() == XdmNodeKind.TEXT) {
                tree.addText(child.getStringValue());
            } else {
                tree.addStartElement(child);
                tree.addAttributes(child);
                tree.startContent();

                // Serialize the *whole* thing, then strip off the start and end tags, because
                // otherwise namespace fixup messes with the namespace bindings
                ByteArrayOutputStream outstr = new ByteArrayOutputStream();
                serializer.setOutputStream(outstr);
                S9apiUtils.serialize(runtime, child, serializer);
                String data = outstr.toString();

                data = data.replaceAll("^<.*?>",""); // Strip off the start tag...
                data = data.replaceAll("<[^<>]*?>$",""); // Strip off the end tag

                tree.addText(data);
                tree.addEndElement();
            }
        }
        tree.endDocument();

        result.write(tree.getResult());
    }
View Full Code Here

                                read = src.read(buffer, 0, bufsize);
                            }
                        }
                    });

                    TreeWriter tree = new TreeWriter(runtime);
                    tree.startDocument(step.getNode().getBaseURI());
                    tree.addStartElement(XProcConstants.c_result);
                    tree.startContent();

                    tree.addText(uri.toASCIIString());

                    tree.addEndElement();
                    tree.endDocument();

                    result.write(tree.getResult());
                }
            });
        } catch (FileNotFoundException fnfe) {
            URI uri = href.getBaseURI().resolve(href.getString());
            throw new XProcException(step.getNode(), "Cannot copy: file does not exist: " + uri.toASCIIString());
View Full Code Here

        try {
            DataStore store = runtime.getDataStore();
            store.readEntry(href.getString(), href.getBaseURI().toASCIIString(), "text/*, */*", null, new DataReader() {
                public void load(URI id, String media, InputStream content, long len)
                        throws IOException {
                    TreeWriter tree = new TreeWriter(runtime);
                    tree.startDocument(id);
                    tree.addStartElement(XProcConstants.c_result);
                    tree.startContent();

                    Reader rdr = new InputStreamReader(content);
                    BufferedReader brdr = new BufferedReader(rdr);
                    Vector<String> lines = new Vector<String> ();
                    try {
                        int count = 0;
                        String line = brdr.readLine();
                        while (line != null) {
                            count++;
                            lines.add(line);

                            if (count > maxCount) {
                                line = lines.remove(0);
                                if (!tail) {
                                    tree.addStartElement(c_line);
                                    tree.startContent();
                                    tree.addText(line);
                                    tree.addEndElement();
                                    tree.addText("\n");
                                }
                            }

                            line = brdr.readLine();
                        }
                    } finally {
                        brdr.close();
                    }

                    if (tail) {
                        for (String lline : lines) {
                            tree.addStartElement(c_line);
                            tree.startContent();
                            tree.addText(lline);
                            tree.addEndElement();
                            tree.addText("\n");
                        }
                    }

                    tree.addEndElement();
                    tree.endDocument();

                    result.write(tree.getResult());
                }
            });
        } catch (FileNotFoundException fnfe) {
            URI uri = href.getBaseURI().resolve(href.getString());
            throw new XProcException(href.getNode(), "Cannot read: file does not exist: " + uri.toASCIIString());
View Full Code Here

TOP

Related Classes of com.xmlcalabash.util.TreeWriter

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.