Examples of ValueSequence


Examples of org.exist.xquery.value.ValueSequence

        try
        {
            tis = new TarArchiveInputStream(compressedData.getInputStream());
            TarArchiveEntry entry = null;

            Sequence results = new ValueSequence();

            while((entry = tis.getNextTarEntry()) != null)
            {
                Sequence processCompressedEntryResults = processCompressedEntry(entry.getName(), entry.isDirectory(), tis, filterParam, storeParam);

                results.addAll(processCompressedEntryResults);
            }

            return results;
        }
        catch(IOException ioe)
View Full Code Here

Examples of org.exist.xquery.value.ValueSequence

        try
        {
            zis = new ZipInputStream(compressedData.getInputStream());
            ZipEntry entry = null;

            Sequence results = new ValueSequence();

            while((entry = zis.getNextEntry()) != null)
            {
                Sequence processCompressedEntryResults;
                if (entry.getMethod() == ZipEntry.STORED) {
                }

                processCompressedEntryResults = processCompressedEntry(entry.getName(), entry.isDirectory(), zis, filterParam, storeParam);

                results.addAll(processCompressedEntryResults);

                zis.closeEntry();
            }

            return results;
View Full Code Here

Examples of org.exist.xquery.value.ValueSequence

            // order expressions for every item when it is added to the result sequence.
            if (resultSequence == null) {
                if (orderSpecs != null && !fastOrderBy) {
                    resultSequence = new OrderedValueSequence(orderSpecs, in.getItemCount());
                } else {
                    resultSequence = new ValueSequence();
                    ((ValueSequence)resultSequence).keepUnOrdered(unordered);
                }
            }
            Sequence val = null;
            int p = 1;
            final IntegerValue atVal = new IntegerValue(1);
            if(positionalVariable != null)
                {at.setValue(atVal);}
            //Type.EMPTY is *not* a subtype of other types ;
            //the tests below would fail without this prior cardinality check
            if (in.isEmpty() && sequenceType != null &&
                    !Cardinality.checkCardinality(sequenceType.getCardinality(),
                    Cardinality.EMPTY)) {
                throw new XPathException(this, ErrorCodes.XPTY0004,
                    "Invalid cardinality for variable $" + varName +
                    ". Expected " + Cardinality.getDescription(sequenceType.getCardinality()) +
                    ", got " + Cardinality.getDescription(in.getCardinality()));
            }
            // Loop through each variable binding
            p = 0;
            for (final SequenceIterator i = in.iterate(); i.hasNext(); p++) {
                context.proceed(this);
                contextItem = i.nextItem();
                context.setContextSequencePosition(p, in);
                if (positionalVariable != null)
                    {at.setValue(new IntegerValue(p + 1));}
                contextSequence = contextItem.toSequence();
                // set variable value to current item
                var.setValue(contextSequence);
                if (sequenceType == null)
                    {var.checkType();} //because it makes some conversions !
                val = contextSequence;
                // check optional where clause
                if (whereExpr != null && (!fastExec)) {
                    if (contextItem instanceof NodeProxy)
                        {((NodeProxy)contextItem).addContextNode(getExpressionId(), (NodeProxy)contextItem);}
                    final Sequence bool = applyWhereExpression(null);
                    if (contextItem instanceof NodeProxy)
                        {((NodeProxy)contextItem).clearContext(getExpressionId());}
                    // if where returned false, continue
                    if (!bool.effectiveBooleanValue())
                        {continue;}
                } else {
                    val = contextItem.toSequence();
                }
                //Reset the context position
                context.setContextSequencePosition(0, null);
                if (groupedSequence==null) {
                    if (returnExpr instanceof BindingExpression) {
                        ((BindingExpression)returnExpr).eval(null, null, resultSequence, null);
                    // otherwise call the return expression and add results to resultSequence
                    } else {
                        val = returnExpr.eval(null);
                        resultSequence.addAll(val);
                    }
                } else {
                    /* bv : special processing for groupby :
                    if returnExpr is a Binding expression, pass the groupedSequence. 
                    Else, add item to groupedSequence and don't evaluate here ! 
                     */
                    if (returnExpr instanceof BindingExpression){
                        ((BindingExpression)returnExpr).eval(null, null, resultSequence, groupedSequence);
                    } else {
                        final Sequence toGroupSequence = context.resolveVariable(groupedSequence.getToGroupVarName()).getValue();
                        groupedSequence.addAll(toGroupSequence);
                    }
                }
                // free resources
                var.destroy(context, resultSequence);
            }
        } finally {
            // restore the local variable stack
            context.popLocalVariables(mark, resultSequence);
        }
        // bv : Special processing for groupBy : one return per group in groupedSequence
        if (groupSpecs!=null) {
            mark = context.markLocalVariables(false);
            context.declareVariableBinding(var);

            // Declare positional variable if required
            LocalVariable at = null;
            if (positionalVariable != null) {
                at = new LocalVariable(QName.parse(context, positionalVariable, null));
                at.setSequenceType(POSITIONAL_VAR_TYPE);
                context.declareVariableBinding(at);
            }
            final IntegerValue atVal = new IntegerValue(1);
            if(positionalVariable != null) {
                at.setValue(atVal);
            }

            int p = 0;
            for (final Iterator<String> it = groupedSequence.iterate(); it.hasNext(); ) {
                final GroupedValueSequence currentGroup = groupedSequence.get(it.next());
                context.proceed(this);
                // set binding variable to current group
                var.setValue(currentGroup);
                var.checkType();
                //set value of grouping keys for the current group
                for (int i=0; i< groupKeyVar.length ; i ++) {
                    groupKeyVar[i].setValue(currentGroup.getGroupKey().itemAt(i).toSequence());
                }
                if (positionalVariable != null) {
                    final ValueSequence ps = new ValueSequence();
                    for (int i = 0; i < currentGroup.getItemCount(); i++) {
                        ps.add(new IntegerValue(p + i + 1));
                    }
                    at.setValue(ps);
                }
                //evaluate real return expression
                final Sequence val = groupReturnExpr.eval(null);
View Full Code Here

Examples of org.exist.xquery.value.ValueSequence

    @Override
    public Sequence eval(final Sequence[] args, final HttpRequest request) throws XPathException {
        final Sequence result;
       
        if(isCalledAs(qnParameterNames.getLocalName())) {
            result = new ValueSequence();
            for(final String parameterName : request.getParameterNames()) {
                result.add(new StringValue(parameterName));
            }
        } else if(isCalledAs(qnParameter.getLocalName())) {
            final String paramName = args[0].getStringValue();
View Full Code Here

Examples of org.exist.xquery.value.ValueSequence

  }
 
  public void setValue(Sequence val) {
    this.value = val;
        if (val instanceof NodeImpl) {
            ValueSequence newSeq = new ValueSequence(1);
            newSeq.add((Item) val);
            newSeq.setHolderVariable(this);
            this.value = newSeq;
        } else if (val instanceof ValueSequence) {
            ((ValueSequence) this.value).setHolderVariable(this);
        }
    }
View Full Code Here

Examples of org.exist.xquery.value.ValueSequence

                result = defaultValues;
            } else {
                result = Sequence.EMPTY_SEQUENCE;
            }
        } else {
            result = new ValueSequence();
            if(queryParamValues instanceof List) {
                for(final Object value : (List)queryParamValues) {
                    result.add(new StringValue(value.toString()));
                }
            } else {
View Full Code Here

Examples of org.exist.xquery.value.ValueSequence

            )
          );}
    }
   
    private Sequence convert(Sequence seq) throws XPathException {
        final ValueSequence result = new ValueSequence();
        Item item;
        for(final SequenceIterator i = seq.iterate(); i.hasNext(); ) {
            item = i.nextItem();
            result.add(item.convertTo(type.getPrimaryType()));
        }
        return result;
    }
View Full Code Here

Examples of org.exist.xquery.value.ValueSequence

            if(!(Type.subTypeOf(lval.getItemType(), Type.NODE) && Type.subTypeOf(rval.getItemType(), Type.NODE)))
                {throw new XPathException(this, ErrorCodes.XPTY0004, "union operand is not a node sequence");}           
            if (lval.isPersistentSet() && rval.isPersistentSet()) {       
                result = lval.toNodeSet().union(rval.toNodeSet());
            } else {
                ValueSequence values = new ValueSequence(true);
                values.addAll(lval);
                values.addAll(rval);
                values.sortInDocumentOrder();
                values.removeDuplicates();
                result = values;
            }
        }
       
        if (context.getProfiler().isEnabled())
View Full Code Here

Examples of org.exist.xquery.value.ValueSequence

        if (input.isEmpty())
            {return Sequence.EMPTY_SEQUENCE;}
        if (input.hasOne())
            {return input.itemAt(0).atomize();}
        Item next;
        final ValueSequence result = new ValueSequence();
        for(final SequenceIterator i = input.iterate(); i.hasNext(); ) {
            next = i.nextItem();
            result.add(next.atomize());
        }
        return result;
    }
View Full Code Here

Examples of org.exist.xquery.value.ValueSequence

    /* (non-Javadoc)
     * @see org.exist.xquery.value.Sequence#toNodeSet()
     */
    public NodeSet toNodeSet() throws XPathException {
        final ValueSequence seq = new ValueSequence();
        seq.add( this );
        return( seq.toNodeSet() );
    }
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.