Examples of ValueSequence


Examples of xbird.xquery.dm.value.sequence.ValueSequence

                } else {
                    skvItor = new NestedIterator<Item>(skvItor, skv.iterator());
                }
            }
            JoinTable joinTable = _joinTable;
            final ValueSequence vs = new ValueSequence(dynEnv);
            while(skvItor.hasNext()) {
                final Comparable searchKey;
                if(searchKeyLen == 1) {
                    final Item fsv = skvItor.next();
                    searchKey = mapArgument(fsv, 0, dynEnv);
                } else {
                    final Comparable[] searchKeys = new Comparable[searchKeyLen];
                    for(int i = 0; i < searchKeyLen; i++) {
                        Item fsv = skvItor.next();
                        searchKeys[i] = mapArgument(fsv, i, dynEnv);
                    }
                    searchKey = new JoinTable.Key(searchKeys, _opr);
                }
                final IFocus<Item> jsItor = joinTable.entrySequence(searchKey, dynEnv).iterator();
                for(Item entry : jsItor) {
                    vs.addItem(entry);
                }
                jsItor.closeQuietly();
            }
            if(vs.isEmpty()) {
                return ValueSequence.EMPTY_SEQUENCE;
            }
            return vs;
        }
View Full Code Here

Examples of xbird.xquery.dm.value.sequence.ValueSequence

                    skvItor = itor;
                } else {
                    skvItor = new NestedIterator<Item>(skvItor, itor);
                }
            }
            final ValueSequence vs = new ValueSequence(dynEnv);
            while(skvItor.hasNext()) {
                final Comparable searchKey;
                if(searchKeyLen == 1) {
                    final Item fsv = skvItor.next();
                    searchKey = mapArgument(fsv, 0, dynEnv);
                } else {
                    final Comparable[] searchKeys = new Comparable[searchKeyLen];
                    for(int i = 0; i < searchKeyLen; i++) {
                        Item fsv = skvItor.next();
                        searchKeys[i] = mapArgument(fsv, i, dynEnv);
                    }
                    searchKey = new JoinTable.Key(searchKeys, _opr);
                }
                if(_joinTable == null) {
                    this._joinTable = future.get();
                }
                final IFocus<Item> js = _joinTable.entrySequence(searchKey, dynEnv).iterator();
                for(Item entry : js) {
                    vs.addItem(entry);
                }
                js.closeQuietly();
            }
            if(vs.isEmpty()) {
                return ValueSequence.EMPTY_SEQUENCE;
            }
            return vs;
        }
View Full Code Here

Examples of xbird.xquery.dm.value.sequence.ValueSequence

                final Entry entry = find(key);
                if(entry == null) {
                    return ValueSequence.EMPTY_SEQUENCE;
                }
                Item[] items = entry.getItems();
                return new ValueSequence(Arrays.asList(items), dynEnv);
            }
            assert (_orderedKey != null);
            final SortedSet<Comparable> sorted;
            if(_opr.indexOf('<') != -1) { // <
                SortedSet<Comparable> heads = _orderedKey.headSet(key); // note that headSet contains key itself.
View Full Code Here

Examples of xbird.xquery.dm.value.sequence.ValueSequence

            this._result = _value.eval(contextSeq, dynEnv);
        } else if(ENV_PATH_ELIM) {
            if(!_materialized) {
                if(!(_result instanceof Item)) {
                    Collection<Item> c = _result.materialize();
                    ValueSequence vs = new ValueSequence(new ArrayList<Item>(c), dynEnv);
                    this._result = vs;
                }
                this._materialized = true;
            }
        }
View Full Code Here

Examples of xbird.xquery.dm.value.sequence.ValueSequence

        LetVariable lv = (LetVariable) _variable;
        XQExpression letExpr = lv.getValue();
        Sequence<? extends Item> res = letExpr.eval(contextSeq, dynEnv);
        if(lv.attemptEagarEvaluation() && lv.getReferenceCount() > 1) {
            List<? extends Item> items = res.materialize(); // TODO REVIEWME weak memory utilization
            lv.allocateResult(new ValueSequence(items, dynEnv), dynEnv);
        } else {
            lv.allocateResult(res, dynEnv);
        }
        return res;
    }
View Full Code Here

Examples of xbird.xquery.dm.value.sequence.ValueSequence

        if(pos < 1) {
            pos = 1;
        }
        Item inserts = argv.getItem(2);
        if(target instanceof ValueSequence) {
            ValueSequence vs = (ValueSequence) target;
            final int last = vs.size();
            if(pos > last) {
                pos = last;
            }
            vs.addSequence(pos - 1, inserts);
            return vs;
        } else {
            return new InsertEmuration(target, inserts, pos, dynEnv);
        }
    }
View Full Code Here

Examples of xbird.xquery.dm.value.sequence.ValueSequence

            if(LOG.isDebugEnabled()) {
                LOG.debug("materialized $" + getName() + "=> \n" + _value);
            }
            Sequence<? extends Item> result = _value.eval(contextSeq, dynEnv);
            List<? extends Item> materialized = result.materialize();
            ValueSequence vs = new ValueSequence(materialized, dynEnv);
            this._result = vs;
            return vs;
        }
View Full Code Here

Examples of xbird.xquery.dm.value.sequence.ValueSequence

            if(!merge.contains(n)) {
                merge.add(n);
            }
        }
        return merge.isEmpty() ? ValueSequence.emptySequence()
                : new ValueSequence(new ArrayList<XQNode>(merge), dynEnv);
    }
View Full Code Here

Examples of xbird.xquery.dm.value.sequence.ValueSequence

        final Item secondItem = secondItor.next();
        assert (!firstItor.hasNext());
        assert (!secondItor.hasNext());
        firstItor.closeQuietly();
        secondItor.closeQuietly();
        final ValueSequence newSeq = new ValueSequence(dynEnv);
        final int from = ((XInteger) firstItem).getNumber().intValue();
        final int to = ((XInteger) secondItem).getNumber().intValue();
        for(int i = from; i <= to; i++) {
            newSeq.addItem(new XInteger(i));
        }
        return newSeq;
    }
View Full Code Here

Examples of xbird.xquery.dm.value.sequence.ValueSequence

        }
    }

    public Sequence<? extends Item> eval(Sequence<? extends Item> contextSeq, DynamicContext dynEnv)
            throws XQueryException {
        final ValueSequence argv;
        final int arity = _params.size();
        if(arity == 0) {
            argv = null;
        } else {
            argv = new ValueSequence(dynEnv);
            FunctionSignature sign = func.getFunctionSignature(arity);
            for(int i = 0; i < arity; i++) {
                XQExpression p = _params.get(i);
                Sequence seq = p.eval(contextSeq, dynEnv);
                Sequence converted = mapFunctionArgument(seq, sign.getArgumentType(i), dynEnv);
                argv.addItem(SingleCollection.wrap(converted, dynEnv));
            }
        }
        return func.eval(contextSeq, argv, dynEnv);
    }
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.