Package org.exist.memtree

Examples of org.exist.memtree.MemTreeBuilder


    SVNStatusClient statusClient = manager.getStatusClient();
   
    SVNWCClient wcClient = manager.getWCClient();

    MemTreeBuilder builder = context.getDocumentBuilder();
        builder.startDocument();
        builder.startElement(new QName("status", null, null), null);
   
        try {
      statusClient.doStatus(
          new Resource(uri),
          SVNRevision.HEAD,
          SVNDepth.getInfinityOrFilesDepth(true),
          true, true, false, false, 
          new AddStatusHandler(false, builder),
          null);
    } catch (SVNException e1) {
          builder.startElement(new QName("error", null, null), null);
          builder.characters(e1.getMessage());
          builder.endElement();
    }
   
        builder.endElement();
        builder.endDocument();

        return (NodeValue) builder.getDocument().getDocumentElement();
  }
View Full Code Here


        }
        if (newDocumentContext)
            context.pushDocumentContext();
        NodeImpl node;
        try {
            MemTreeBuilder builder = context.getDocumentBuilder();
            builder.setReplaceAttributeFlag(true);
            context.proceed(this, builder);
            QName qn = null;
            String name = null;
            if (qnameExpr != null) {
                Sequence nameSeq = qnameExpr.eval(contextSequence, contextItem);
                if (!nameSeq.hasOne())
                    throw new XPathException(this, "The name expression should evaluate to a single value");
                Item qnItem = nameSeq.itemAt(0);
                if (qnItem.getType() == Type.QNAME)
                    qn = ((QNameValue) qnItem).getQName();
                else
                    name = nameSeq.getStringValue();
            } else {
                name = this.name;
            }
            if (qn == null) {
                //Not in the specs but... makes sense
                if(!XMLChar.isValidName(name))
                    throw new XPathException(this, ErrorCodes.XPTY0004,
                        "'" + name + "' is not a valid attribute name");
                try {
                    qn = QName.parse(context, name, null);
                } catch (IllegalArgumentException e) {
                    throw new XPathException(this, ErrorCodes.XPTY0004,
                        "'" + name + "' is not a valid attribute name");
                }
            }
            String value = this.value;
            Sequence valueSeq = null;
            if (valueExpr != null) {
              valueSeq = valueExpr.eval(contextSequence, contextItem);
            } else {
                context.pushDocumentContext();
                valueSeq = super.eval(contextSequence, contextItem);
                context.popDocumentContext();
            }
            if (!valueSeq.isEmpty()) {
                StringBuilder buf = new StringBuilder();
                for(SequenceIterator i = valueSeq.iterate(); i.hasNext(); ) {
                    Item next = i.nextItem();
                    buf.append(next.getStringValue());
                    if(i.hasNext())
                        buf.append(' ');
                }
                value = buf.toString();
            }
            if (value == null)
                value = "";
            node = null;
            try {
                int nodeNo = builder.addAttribute(qn, value);
                node = builder.getDocument().getAttribute(nodeNo);
            } catch (DOMException e) {
                throw new XPathException(this, ErrorCodes.XQDY0025, e.getMessage());
            }
        } finally {
            if (newDocumentContext)
View Full Code Here

     * @throws  XPathException
     * @throws  IOException    
     */
    private Sequence encodeResponseAsXML(final XQueryContext context, final HttpMethod method, final int statusCode, final Map<String, Boolean> parserFeatures, final Map<String, String> parserProperties) throws XPathException, IOException {

        final MemTreeBuilder builder = context.getDocumentBuilder();

        builder.startDocument();
        builder.startElement(new QName("response", NAMESPACE_URI, PREFIX), null );
        builder.addAttribute(new QName("statusCode", null, null), String.valueOf(statusCode));

        //Add all the response headers
        builder.startElement(new QName("headers", NAMESPACE_URI, PREFIX), null);

        final NameValuePair[] headers = method.getResponseHeaders();

        for(final NameValuePair header : headers) {
            builder.startElement(new QName("header", NAMESPACE_URI, PREFIX), null);
            builder.addAttribute(new QName("name", null, null), header.getName());
            builder.addAttribute(new QName("value", null, null), header.getValue());
            builder.endElement();
        }

        builder.endElement();

        if(!(method instanceof HeadMethod || method instanceof OptionsMethod)) { // Head and Options methods never have any response body

            // Add the response body node
            builder.startElement(new QName("body", NAMESPACE_URI, PREFIX), null);

            insertResponseBody(context, method, builder, parserFeatures, parserProperties);

            builder.endElement();
        }

        builder.endElement();

        final Sequence xmlResponse = (NodeValue)builder.getDocument().getDocumentElement();
        return xmlResponse;
    }
View Full Code Here

     * @throws  IOException    
     * @throws  XPathException
     */
    private Sequence encodeErrorResponse(final XQueryContext context, final String message) throws IOException, XPathException {

        final MemTreeBuilder builder = context.getDocumentBuilder();

        builder.startDocument();
        builder.startElement(new QName("response", NAMESPACE_URI, PREFIX), null);
        builder.addAttribute(new QName("statusCode", null, null), HTTP_EXCEPTION_STATUS_CODE);

        builder.startElement(new QName("body", NAMESPACE_URI, PREFIX), null);

        builder.addAttribute(new QName("type", null, null), "text");
        builder.addAttribute(new QName("encoding", null, null), "URLEncoded");

        if(message != null) {
            builder.characters(URLEncoder.encode(message, "UTF-8"));
        }

        builder.endElement();

        builder.endElement();

        final Sequence xmlResponse = (NodeValue)builder.getDocument().getDocumentElement();
        return xmlResponse;
    }
View Full Code Here

            //we have to use CloseShieldInputStream otherwise the parser closes the stream and we cant later reread
            final InputSource src = new InputSource(new CloseShieldInputStream(is));

            reader = getBrokerPool().getParserPool().borrowXMLReader();
            final MemTreeBuilder builder = new MemTreeBuilder();
            builder.startDocument();
            final DocumentBuilderReceiver receiver = new DocumentBuilderReceiver(builder, true);
            reader.setContentHandler(receiver);
            reader.setProperty("http://xml.org/sax/properties/lexical-handler", receiver);
            reader.parse(src);
            builder.endDocument();
            final Document doc = receiver.getDocument();

            result = (DocumentImpl)doc;
        } catch(final SAXException saxe) {
            //do nothing, we will default to trying to return a string below
View Full Code Here

        String uri = args[0].getStringValue();
      
        Resource wcDir = new Resource(uri);
      try {
       
            MemTreeBuilder builder = context.getDocumentBuilder();
       
            AttributesImpl attribs = new AttributesImpl();
            attribs.addAttribute("", "uri", "uri", "CDATA", uri);
            //attribs.addAttribute("", "start", "start", "CDATA", Long.toString(startRevision));

            int nodeNr = builder.startElement(INFO_ELEMENT, attribs);
           
            wc.showInfo(wcDir, SVNRevision.WORKING, true, new InfoHandler(builder));
           
            builder.endElement();
        return builder.getDocument().getNode(nodeNr);
       
    } catch (SVNException svne) {
      throw new XPathException(this,
          "error while collecting info for the location '"
                    + uri + "'", svne);
View Full Code Here

    WorkingCopy wc = new WorkingCopy(user, password);
   
    List<SVNDirEntry> entries;
    try {
      entries = wc.list(SVNURL.parseURIEncoded(uri), SVNRevision.HEAD, SVNRevision.HEAD, false, SVNDepth.IMMEDIATES, 1);
      MemTreeBuilder builder = context.getDocumentBuilder();
      int nodeNr = builder.startElement(ENTRIES_ELEMENT, EMPTY_ATTRIBS);
     
      for (SVNDirEntry entry : entries) {
        String path = entry.getRelativePath();
        if(!path.equals("")) {
          AttributesImpl attributes = new AttributesImpl();
          if (entry.getKind() == SVNNodeKind.DIR) {
            attributes.addAttribute("", "type", "", "CDATA", "directory");
                    builder.startElement(ENTRY_ELEMENT, attributes);
                    builder.characters(entry.getName());
                    builder.endElement();
          }else if (entry.getKind() == SVNNodeKind.FILE) {
            attributes.addAttribute("", "type", "", "CDATA", "file");
                    builder.startElement(ENTRY_ELEMENT, attributes);
                    builder.characters(entry.getName());
                    builder.endElement();
          }
        }
      }
      builder.endElement();
      return builder.getDocument().getNode(nodeNr);
    } catch (SVNException e) {
            throw new XPathException(this, e.getMessage(), e);
    }
  }
View Full Code Here

                    throw new XPathException("'" + AbstractGMLJDBCIndexWorker.GML_NS + "' namespace is not defined");
                }

                context.pushDocumentContext();
                try {
                    MemTreeBuilder builder = context.getDocumentBuilder();
                    DocumentBuilderReceiver receiver = new DocumentBuilderReceiver(builder);
                    result = (NodeValue)indexWorker.streamGeometryToElement(geometry, targetSRS, receiver);
                } finally {
                    context.popDocumentContext();
                }
View Full Code Here

    if (contextItem != null)
      contextSequence = contextItem.toSequence();

    context.pushInScopeNamespaces();
   
        MemTreeBuilder builder = context.getDocumentBuilder();

        try {
//            for (Item item : contextSequence) {
            for (SequenceIterator iterInner = contextSequence.iterate(); iterInner.hasNext();) {
                Item i = iterInner.nextItem();
               
                org.w3c.dom.Node item;
                if (i instanceof NodeValue) {
                  item = ((NodeValue) i).getNode();
        } else
                  item = (org.w3c.dom.Node) i;

                //UNDERSTAND: strange place to workaround
              if (item instanceof org.w3c.dom.Document) {
            org.w3c.dom.Document document = (org.w3c.dom.Document) item;
            item = document.getDocumentElement();
          }
         
          if (item instanceof org.w3c.dom.Element) {
            QName qn;
                  if (item instanceof QNameValue) {
                      qn = ((QNameValue)item).getQName();
                  } else {
                      qn = ((QNameable)item).getQName();
                      if (qn.getPrefix() == null && context.getInScopeNamespace("") != null) {
                           qn.setNamespaceURI(context.getInScopeNamespace(""));
                      }
                  }
            int nodeNr = builder.startElement(qn, null);
           
            if (use_attribute_sets != null)
              getXSLContext().getXSLStylesheet().attributeSet(use_attribute_sets, contextSequence, i);

            super.eval(contextSequence, i);
           
                  builder.endElement();
                  NodeImpl node = builder.getDocument().getNode(nodeNr);
                  result.add(node);
          } else if (item instanceof org.w3c.dom.Text) {
            int nodeNr = builder.characters(i.getStringValue());
                  NodeImpl node = builder.getDocument().getNode(nodeNr);
                  result.add(node);
          } else {
            throw new XPathException("not supported node type "+i.getType());
          }
        }
View Full Code Here

        } finally {
            context.popDocumentContext();
        }
       
    // create the output
    MemTreeBuilder builder = context.getDocumentBuilder();
    DocumentBuilderReceiver receiver = new DocumentBuilderReceiver(builder);   
    try {
      SequenceIterator i = result.iterate();
      Item next = i.nextItem();   
      StringBuilder buf = null;
View Full Code Here

TOP

Related Classes of org.exist.memtree.MemTreeBuilder

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.