Package xbird.xquery.dm.value

Examples of xbird.xquery.dm.value.XQNode


        @Override
        public DMNode nextSibling() {
            DMNode dmsib = super.nextSibling();
            if(dmsib == null) {
                XQNode sib = _delegate.nextSibling();
                if(sib == null) {
                    return null;
                }
                dmsib = createProxy(sib);
                setSibling(dmsib);
View Full Code Here


        @Override
        public DMNode nextSibling(NodeTest filter) {
            DMNode dmsib = super.nextSibling(filter);
            if(dmsib == null) {
                XQNode sib = _delegate.nextSibling(filter);
                if(sib == null) {
                    return null;
                }
                dmsib = createProxy(sib);
                setSibling(dmsib);
View Full Code Here

        }

        public boolean next(IFocus focus) throws XQueryException {
            Iterator<? extends XQNode> delItor = focus.getBaseFocus();
            if(delItor.hasNext()) {
                XQNode delItem = delItor.next();
                DMNode dmnode = delItem.asDMNode();
                focus.setContextItem(dmnode);
                return true;
            }
            return false;
        }
View Full Code Here

                        break outer;
                    }
                    ptr = pendings.dequeue();
                }
                DocumentTableModel dtm = ffcous.getDocumentTableModel();
                XQNode node = dtm.createNode(ptr);
                ffcous.setContextItem(node);
                return true;
            }
            final Profiler profiler = _dynEnv.getProfiler();
            final Iterator<Pair<DbCollection, String>> itor = ffcous.eachDocument();
            while(itor.hasNext()) {
                final Pair<DbCollection, String> pair = itor.next();
                final DbCollection col = pair.getFirst();
                final String docName = pair.getSecond();
                final File idxFile = getIndexFile(col, docName);
                BTreeIndexer indexer = new BTreeIndexer(idxFile);
                final IndexMatch matched;
                try {
                    matched = indexer.find(idxCond);
                } catch (DbException e) {
                    throw new XQRTException("failed to query index: " + idxFile.getAbsolutePath(), e);
                }
                // TODO REVIEWME sort really required?
                final long[] ptrs = filter(matched.getMatchedUnsorted(), docName, idxFile);
                final int matchCounts = ptrs.length;
                if(LOG.isInfoEnabled()) {
                    LOG.info("Index scan done. matched: " + matched.countMatched() + ", filtered: "
                            + matchCounts);
                }
                if(matchCounts > 0) {
                    final IDocumentTable doctbl;
                    try {
                        doctbl = DocumentTableLoader.load(col, docName, _dynEnv);
                    } catch (IOException e) {
                        throw new XQRTException("failed to load document '" + docName
                                + "' is the collection '" + col.getAbsolutePath() + '\'', e);
                    }
                    final PagingProfile profile = doctbl.getPagingProfile();
                    Strategy origStrategy = null;
                    if(profile != null) {
                        profile.setProfiler(profiler);
                        origStrategy = profile.getStrategy();
                        profile.setStrategy(Strategy.index);
                    }
                    DocumentTableModel dtm = new DocumentTableModel(doctbl, true);
                    final int last = matchCounts - 1;
                    for(int i = 0; i <= last; i++) {
                        long ptr = ptrs[i];
                        if(ptr != -1) {
                            XQNode node = dtm.createNode(ptr);
                            ffcous.setContextItem(node);
                            if(i != last) {
                                LongQueue ptrsQueue = new LongQueue(ptrs, i + 1, last);
                                ffcous.enqueue(dtm, ptrsQueue);
                            }
View Full Code Here

TOP

Related Classes of xbird.xquery.dm.value.XQNode

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.