Examples of NodeProxy


Examples of org.exist.dom.NodeProxy

    public void nodes() {
        DBBroker broker = null;
        try {
            broker = pool.get(pool.getSecurityManager().getSystemSubject());
            DocumentImpl doc = (DocumentImpl) broker.getXMLResource(TEST_COLLECTION_URI.append("test.xml"));
            NodeProxy p = new NodeProxy(doc, pool.getNodeFactory().createFromString("1.1"));

            StringWriter writer = new StringWriter();
            SAXSerializer serializer = new SAXSerializer(writer, new Properties());
            Marshaller.marshall(broker, p, serializer);
            String serialized = writer.toString();
View Full Code Here

Examples of org.exist.dom.NodeProxy

    LocalCollection collection = null;
    Subject user = null;
   
    LocalXMLResource res = null;
    if (r instanceof NodeProxy) {
      NodeProxy p = (NodeProxy) r;
      res = new LocalXMLResource(user, db, collection, p);
    } else if (r instanceof Node) {
      res = new LocalXMLResource(user, db, collection, XmldbURI.EMPTY_URI);
      res.setContentAsDOM((Node)r);
    } else if (r instanceof AtomicValue) {
View Full Code Here

Examples of org.exist.dom.NodeProxy

                        last = start + next.inserted;
                    }
                }
                Difference.Insert diff;
                if (nodesA[start0].nodeType == XMLStreamReader.END_ELEMENT) {
                    diff = new Difference.Append(new NodeProxy(docA, nodesA[start0].nodeId), docB);
                    changes.add(diff);
                } else {
                    diff = (Difference.Insert) inserts.get(nodesA[start0].nodeId);
                    if (diff == null) {
                        diff = new Difference.Insert(new NodeProxy(docA, nodesA[start0].nodeId), docB);
                        inserts.put(nodesA[start0].nodeId, diff);
                    }
                }
               
                // now scan the chunk and collect the nodes
                DiffNode[] nodes = new DiffNode[last - start];
                int j = 0;
                for (int i = start; i < last; i++, j++) {
                    if (LOG.isTraceEnabled())
                        LOG.trace(Integer.toString(i) + " " + nodesB[i]);
                    nodes[j] = nodesB[i];
                }
                diff.addNodes(nodes);
            }
            if (next.deleted > 0) {
              // This is a simple test to correct an issue when two nodes of the same
              // node-name are siblings and the first is deleted. What happens is the first
              // element doesn't get it's start node deleted and the second does. So
              // the second element basically ends up with the first one's start element.
              // Which causes problems for the second element's attributes.
              DiffNode beforeElement = nodesA[start0 - 1];
              DiffNode lastElement = nodesA[lastDeleted - 1];

              if(beforeElement.qname != null
                  && lastElement.qname != null
                  && beforeElement.qname.equals(lastElement.qname)
                  && beforeElement.nodeType == XMLStreamReader.START_ELEMENT
                  && lastElement.nodeType == XMLStreamReader.START_ELEMENT) {
                start0--;
                lastDeleted--;
              }
             
              if (LOG.isTraceEnabled())
                    LOG.trace("Deleted: " + start0 + " last: " + lastDeleted);
                for (int i = start0; i < lastDeleted; i++) {
                    boolean elementDeleted = false;
                    if (nodesA[i].nodeType == XMLStreamReader.START_ELEMENT) {
                        for (int j = i; j < lastDeleted; j++) {
                            if (nodesA[j].nodeType == XMLStreamReader.END_ELEMENT &&
                                    nodesA[j].nodeId.equals(nodesA[i].nodeId)) {
                                Difference.Delete diff = new Difference.Delete(new NodeProxy(docA, nodesA[i].nodeId));
                                changes.add(diff);
                                i = j;
                                elementDeleted = true;
                                break;
                            }
                        }
                    }
                    if (!elementDeleted) {
                        Difference.Delete diff = new Difference.Delete(nodesA[i].nodeType, new NodeProxy(docA, nodesA[i].nodeId));
                        changes.add(diff);
                    }
                }
            }
            next = next.link;
View Full Code Here

Examples of org.exist.dom.NodeProxy

        }
        return changes;
    }

    protected DiffNode[] getNodes(DBBroker broker, DocumentImpl root) throws XMLStreamException, IOException {
        EmbeddedXMLStreamReader reader = broker.newXMLStreamReader(new NodeProxy(root, NodeId.DOCUMENT_NODE, root.getFirstChildAddress()), false);
        List<DiffNode> nodes = new ArrayList<DiffNode>();
        DiffNode node;
        while (reader.hasNext()) {
            int status = reader.next();
            NodeId nodeId = (NodeId) reader.getProperty(EmbeddedXMLStreamReader.PROPERTY_NODE_ID);
View Full Code Here

Examples of org.exist.dom.NodeProxy

            if (getArgumentCount() == 2) {
                NodeValue nv = (NodeValue) args[1].itemAt(0);
                if (nv.getImplementationType() == NodeValue.IN_MEMORY_NODE)
                    throw new XPathException(this, "Second argument to remove should be a persistent node, not " +
                        "an in-memory node.");
                NodeProxy proxy = (NodeProxy) nv;
                index.remove(id, proxy.getDocument());
            } else {
                index.remove(id);
            }
        } catch (EXistException e) {
            throw new XPathException(this, e.getMessage(), e);
View Full Code Here

Examples of org.exist.dom.NodeProxy

     
        NodeValue nodeValue = (NodeValue) args[0].itemAt(0);
        if (nodeValue.getImplementationType() != NodeValue.PERSISTENT_NODE) {
            return Sequence.EMPTY_SEQUENCE;
        }
        NodeProxy proxy = (NodeProxy) nodeValue;
        Match match = proxy.getMatches();
        float score = 0.0f;
        while (match != null) {
            if (match.getIndexId() == LuceneIndex.ID) {
                float currentScore = ((LuceneIndexWorker.LuceneMatch)match).getScore();
                score += currentScore;
View Full Code Here

Examples of org.exist.dom.NodeProxy

       
        for (SequenceIterator nodesIter = args[1].iterate(); nodesIter.hasNext(); ) {
            NodeValue nv = (NodeValue) nodesIter.nextItem();
            if (nv.getImplementationType() == NodeValue.IN_MEMORY_NODE)
                throw new XPathException(this, "Cannot create order-index on an in-memory node");
            NodeProxy node = (NodeProxy) nv;
            SortItem si = new SortItemImpl(node);
         
           
           
            if (LOG.isDebugEnabled() && ++c % logChunk == 0) {
View Full Code Here

Examples of org.exist.dom.NodeProxy

    @Override
    public Sequence eval(Sequence[] args, Sequence contextSequence) throws XPathException {
        if (args[1].isEmpty())
            return Sequence.EMPTY_SEQUENCE;
        String id = args[0].getStringValue();
        NodeProxy node = (NodeProxy) args[1].itemAt(0);
        SortIndexWorker index = (SortIndexWorker)
            context.getBroker().getIndexController().getWorkerByIndexId(SortIndex.ID);
        long pos = 0;
        try {
            pos = index.getIndex(id, node);
View Full Code Here

Examples of org.exist.dom.NodeProxy

                this.nodeIdValues.get(doc, ref);
                int units = ByteConversion.byteToShort(ref.bytes, ref.offset);
                NodeId nodeId = db.getNodeFactory().createFromData(units, ref.bytes, ref.offset + 2);
                //LOG.info("doc: " + docId + "; node: " + nodeId.toString() + "; units: " + units);

                NodeProxy storedNode = new NodeProxy(storedDocument, nodeId);
                if (qname != null)
                    storedNode.setNodeType(qname.getNameType() == ElementValue.ATTRIBUTE ? Node.ATTRIBUTE_NODE : Node.ELEMENT_NODE);

                LuceneMatch match = worker. new LuceneMatch(contextId, nodeId, query);
                match.setScore(score);
                storedNode.addMatch(match);
                callback.found(storedNode, score);
                //resultSet.add(storedNode, sizeHint);

            } catch (IOException e) {
                e.printStackTrace();
View Full Code Here

Examples of org.exist.dom.NodeProxy

            result = NodeSets.fmapNodes(nodes, new F<NodeProxy, NodeProxy>() {

                @Override
                public NodeProxy f(NodeProxy a) {
                    NodeProxy before = nodesContainingFirstINgrams.get(a);
                    if (before != null) {
                        return getContinuousMatches(before, a);
                    } else {
                        return null;
                    }
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. 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.