Package org.exist.storage.serializers

Examples of org.exist.storage.serializers.Serializer


            }

            Sequence seq = xquery.execute("/products", null, AccessContext.TEST);
            assertEquals(seq.getItemCount(), 1);

            Serializer serializer = broker.getSerializer();
            System.out.println(serializer.serialize((NodeValue) seq.itemAt(0)));

            seq = xquery.execute("//product", null, AccessContext.TEST);
            assertEquals(ITEMS_TO_APPEND + 1, seq.getItemCount());

            seq = xquery.execute("//product[price > 0.0]", null, AccessContext.TEST);
View Full Code Here


            Sequence seq = xquery.execute(query, null, AccessContext.TEST);

            seq = xquery.execute("//product[starts-with(description, 'Updated')]", null, AccessContext.TEST);
            assertEquals(seq.getItemCount(), ITEMS_TO_APPEND);

            Serializer serializer = broker.getSerializer();
            System.out.println(serializer.serialize((NodeValue) seq.itemAt(0)));

            for (int i = 1; i <= ITEMS_TO_APPEND; i++) {
                seq = xquery.execute("//product[description &= 'Description" + i + "']", null, AccessContext.TEST);
                assertEquals(1, seq.getItemCount());
                System.out.println(serializer.serialize((NodeValue) seq.itemAt(0)));
            }
            seq = xquery.execute("//product[description &= 'Updated']", null, AccessContext.TEST);
            assertEquals(seq.getItemCount(), ITEMS_TO_APPEND);

            System.out.println(serializer.serialize((NodeValue) seq.itemAt(0)));
           
            query =
              "declare option exist:output-size-limit '-1';\n" +
              "for $prod at $count in //product return\n" +
                "  update value $prod/stock/text()\n" +
                "  with (400 + $count)";
            seq = xquery.execute(query, null, AccessContext.TEST);
           
            seq = xquery.execute("//product[stock > 400]", null, AccessContext.TEST);
            assertEquals(seq.getItemCount(), ITEMS_TO_APPEND);
            seq = xquery.execute("//product[stock &= '401']", null, AccessContext.TEST);
            assertEquals(seq.getItemCount(), 1);

            System.out.println(serializer.serialize((NodeValue) seq.itemAt(0)));
           
            query =
              "declare option exist:output-size-limit '-1';\n" +
              "for $prod in //product return\n" +
                "  update value $prod/@num\n" +
                "  with xs:int($prod/@num) * 3";
            seq = xquery.execute(query, null, AccessContext.TEST);
           
            seq = xquery.execute("/products", null, AccessContext.TEST);
            assertEquals(seq.getItemCount(), 1);
           
            seq = xquery.execute("//product[@num = 3]", null, AccessContext.TEST);
            assertEquals(seq.getItemCount(), 1);
           
            System.out.println(serializer.serialize((NodeValue) seq.itemAt(0)));
           
            query =
              "declare option exist:output-size-limit '-1';\n" +
              "for $prod in //product return\n" +
                "  update value $prod/stock\n" +
View Full Code Here

            }

            Sequence seq = xquery.execute("/products", null, AccessContext.TEST);
            assertEquals(seq.getItemCount(), 1);

            Serializer serializer = broker.getSerializer();
            System.out.println(serializer.serialize((NodeValue) seq.itemAt(0)));

            seq = xquery.execute("//product", null, AccessContext.TEST);
            assertEquals(ITEMS_TO_APPEND, seq.getItemCount());

            System.out.println("testAppendCDATA: PASS");
View Full Code Here

            }
           
            String encoding = params.getProperty(OutputKeys.ENCODING, "UTF-8");
            Writer writer = new OutputStreamWriter(out, encoding);
            sax.setOutput(writer, params);
            Serializer serializer = context.getBroker().getSerializer();
            serializer.reset();
            serializer.setProperties(params);
            serializer.setSAXHandlers(sax, sax);

            sax.startDocument();
           
            while(itSequence.hasNext()) {
               NodeValue next = (NodeValue)itSequence.nextItem();
               serializer.toSAX(next)
            }
           
            sax.endDocument();
            writer.close();
        } catch(SAXException saxe) {
View Full Code Here

        try
        {
            final String encoding = outputProperties.getProperty(OutputKeys.ENCODING, "UTF-8");
            final Writer writer = new OutputStreamWriter(os, encoding);
            sax.setOutput(writer, outputProperties);
            final Serializer serializer = context.getBroker().getSerializer();
            serializer.reset();
            serializer.setProperties(outputProperties);
            serializer.setSAXHandlers(sax, sax);

            sax.startDocument();
           
            while(siNode.hasNext())
            {
             final NodeValue next = (NodeValue)siNode.nextItem();
               serializer.toSAX(next)
            }
           
            sax.endDocument();
            writer.close();
        }
View Full Code Here

           * transform:stream-transform(), it would be better to be able to share that code somehow
           */
          final SAXTransformerFactory factory = TransformerFactoryAllocator.getTransformerFactory(broker.getBrokerPool());
      final TemplatesHandler templatesHandler = factory.newTemplatesHandler();
      templatesHandler.startDocument();
      final Serializer serializer = broker.getSerializer();
      serializer.reset();
      final WSDLFilter wsdlfilter = new WSDLFilter(templatesHandler, HttpServletRequestURL);
      serializer.setSAXHandlers(wsdlfilter, null);
      serializer.toSAX(docStyleSheet);
      templatesHandler.endDocument();
     
      final TransformerHandler handler = factory.newTransformerHandler(templatesHandler.getTemplates());
     
      //set parameters, if any
View Full Code Here

        final DocumentBuilderReceiver builderReceiver = new DocumentBuilderReceiver(builder, true);
        final SAXResult result = new SAXResult(builderReceiver);
        result.setLexicalHandler(builderReceiver);    //preserve comments etc... from xslt output
        handler.setResult(result);
            final Receiver receiver = new ReceiverToSAX(handler);
            final Serializer serializer = context.getBroker().getSerializer();
            serializer.reset();
            try {
                serializer.setProperties(serializationProps);
                serializer.setReceiver(receiver, true);
                if (expandXIncludes) {
                    String xipath = serializationProps.getProperty(EXistOutputKeys.XINCLUDE_PATH);
                    if (xipath != null) {
                        final File f = new File(xipath);
                        if (!f.isAbsolute())
                            {xipath = new File(context.getModuleLoadPath(), xipath).getAbsolutePath();}
                    } else
                        {xipath = context.getModuleLoadPath();}
                    serializer.getXIncludeFilter().setModuleLoadPath(xipath);
                }
          serializer.toSAX(inputNode, 1, inputNode.getItemCount(), false, false);
        } catch (final Exception e) {
          throw new XPathException(this, "Exception while transforming node: " + e.getMessage(), e);
        }
            errorListener.checkForErrors();
        Node next = builder.getDocument().getFirstChild();
            while (next != null) {
                seq.add((NodeValue) next);
                next = next.getNextSibling();
            }
        context.popDocumentContext();
        return seq;
          }
        }
        else
        {
          //transform:stream-transform()
         
            final ResponseModule myModule = (ResponseModule)context.getModule(ResponseModule.NAMESPACE_URI);
            // response object is read from global variable $response
            final Variable respVar = myModule.resolveVariable(ResponseModule.RESPONSE_VAR);
            if(respVar == null)
                {throw new XPathException(this, "No response object found in the current XQuery context.");}
            if(respVar.getValue().getItemType() != Type.JAVA_OBJECT)
                {throw new XPathException(this, "Variable $response is not bound to an Java object.");}
            final JavaObjectValue respValue = (JavaObjectValue)
                respVar.getValue().itemAt(0);
            if (!"org.exist.http.servlets.HttpResponseWrapper".equals(respValue.getObject().getClass().getName()))
                {throw new XPathException(this, signatures[1].toString() +
                        " can only be used within the EXistServlet or XQueryServlet");}
            final ResponseWrapper response = (ResponseWrapper) respValue.getObject();
           
            //setup the response correctly
            final String mediaType = handler.getTransformer().getOutputProperty("media-type");
            final String encoding = handler.getTransformer().getOutputProperty("encoding");
            if(mediaType != null)
            {
              if(encoding == null)
              {
                response.setContentType(mediaType);
              }
              else
              {
                response.setContentType(mediaType + "; charset=" + encoding);
              }
            }
           
            //do the transformation
            try {
                final OutputStream os = new BufferedOutputStream(response.getOutputStream());
                final StreamResult result = new StreamResult(os);
                handler.setResult(result);
                final Serializer serializer = context.getBroker().getSerializer();
                serializer.reset();
                Receiver receiver = new ReceiverToSAX(handler);
                try {
                    serializer.setProperties(serializationProps);
                    if (expandXIncludes) {
                        XIncludeFilter xinclude = new XIncludeFilter(serializer, receiver);
                        String xipath = serializationProps.getProperty(EXistOutputKeys.XINCLUDE_PATH);
                        if (xipath != null) {
                            final File f = new File(xipath);
                            if (!f.isAbsolute())
                                {xipath = new File(context.getModuleLoadPath(), xipath).getAbsolutePath();}
                        } else
                            {xipath = context.getModuleLoadPath();}
                        xinclude.setModuleLoadPath(xipath);
                        receiver = xinclude;
                    }
                    serializer.setReceiver(receiver);
                    serializer.toSAX(inputNode, 1, inputNode.getItemCount(), false, false);
                } catch (final Exception e) {
                    throw new XPathException(this, "Exception while transforming node: " + e.getMessage(), e);
                }
                errorListener.checkForErrors();
                os.close();
View Full Code Here

            final TransformErrorListener errorListener = new TransformErrorListener();
            factory.setErrorListener(errorListener);
      final TemplatesHandler handler = factory.newTemplatesHandler();
      try {
        handler.startDocument();
        final Serializer serializer = context.getBroker().getSerializer();
        serializer.reset();
        serializer.setSAXHandlers(handler, null);
        serializer.toSAX(stylesheet);
        handler.endDocument();
        final Templates t = handler.getTemplates();
                errorListener.checkForErrors();
                return t;
      } catch (final Exception e) {
View Full Code Here

            sax.setOutput(writer, properties);

            final SAXResult result = new SAXResult(sax);
            handler.setResult(result);
           
            final Serializer serializer = broker.getSerializer();
            serializer.reset();
           
            Receiver receiver = new ReceiverToSAX(handler);
            try {
                XIncludeFilter xinclude = new XIncludeFilter(serializer, receiver);
                receiver = xinclude;
                String moduleLoadPath;

                final String base = (String) request.getAttribute(REQ_ATTRIBUTE_BASE);
                if (base != null) {
                    moduleLoadPath = getServletContext().getRealPath(base);
                } else if (stylesheet.startsWith("xmldb:exist://")) {
                  moduleLoadPath = XmldbURI.xmldbUriFor(stylesheet).getCollectionPath();
                } else {
                    moduleLoadPath = getCurrentDir(request).getAbsolutePath();
                }

                xinclude.setModuleLoadPath(moduleLoadPath);

                serializer.setReceiver(receiver);
                if (inputNode != null){
                    serializer.toSAX((NodeValue)inputNode);

                } else {
                    final SAXToReceiver saxreceiver = new SAXToReceiver(receiver);
                    final XMLReader reader = pool.getParserPool().borrowXMLReader();
                    reader.setContentHandler(saxreceiver);
View Full Code Here

 
  protected Sequence deepCopy(Sequence inSeq) throws XPathException {
    context.pushDocumentContext();
    final MemTreeBuilder builder = context.getDocumentBuilder();
    final DocumentBuilderReceiver receiver = new DocumentBuilderReceiver(builder);
    final Serializer serializer = context.getBroker().getSerializer();
    serializer.setReceiver(receiver);
   
    try {
      final Sequence out = new ValueSequence();
      for (final SequenceIterator i = inSeq.iterate(); i.hasNext(); ) {
        Item item = i.nextItem();
        if (item.getType() == Type.DOCUMENT) {
          if (((NodeValue)item).getImplementationType() == NodeValue.PERSISTENT_NODE) {
            final StoredNode root = (StoredNode) ((NodeProxy)item).getDocument().getDocumentElement();
            item = new NodeProxy(root.getDocument(), root.getNodeId(), root.getInternalAddress());
          } else {
            item = (Item)((NodeValue) item).getOwnerDocument().getDocumentElement();
          }
        }
        if (Type.subTypeOf(item.getType(), Type.NODE)) {
          if (((NodeValue)item).getImplementationType() == NodeValue.PERSISTENT_NODE) {
            final int last = builder.getDocument().getLastNode();
            final NodeProxy p = (NodeProxy) item;
            serializer.toReceiver(p, false, false);
                        if (p.getNodeType() == Node.ATTRIBUTE_NODE)
                            {item = builder.getDocument().getLastAttr();}
                        else
                            {item = builder.getDocument().getNode(last + 1);}
          } else {
View Full Code Here

TOP

Related Classes of org.exist.storage.serializers.Serializer

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.