Package org.exist.xquery.value

Examples of org.exist.xquery.value.ValueSequence


            {result = seq1;}
        else {
        int pos =
          ((DoubleValue)getArgument(1).eval(contextSequence, contextItem).convertTo(Type.DOUBLE)).getInt();
        pos--;
        result = new ValueSequence();
        if (pos <= 0) {
          result.addAll(seq2);
          result.addAll(seq1);
        } else if (pos >= seq1.getItemCount()) {
          result.addAll(seq1);
View Full Code Here


                    args[0], e);
        }
       
        if (report.isValid()) {
            if (isCalledAs("parse-xml-fragment")) {
                resultSequence = new ValueSequence();
                NodeList children = adapter.getDocument().getDocumentElement().getChildNodes();
                for (int i = 0, il = children.getLength(); i < il; i++) {
                    Node child = children.item(i);
                    resultSequence.add((NodeValue)child);
                }
View Full Code Here

     *
     * @param s a <code>String</code> value
     * @return a <code>ValueSequence</code> value
     */
    public static ValueSequence getCodePoints(final String s) {
        final ValueSequence codepoints = new ValueSequence();
        char ch;
        IntegerValue next;
        for (int i = 0; i < s.length(); i++) {
            ch = s.charAt(i);
            if (XMLChar.isSurrogate(ch)) {
                final int supp = XMLChar.supplemental(ch, s.charAt(++i));
                next = new IntegerValue(supp);
            } else {
                next = new IntegerValue((int) ch);
            }
            codepoints.add(next);
        }
        return codepoints;
    }
View Full Code Here

                    "CONTEXT ITEM", contextItem.toSequence());}
        }
        final Sequence seq = getArgument(0).eval(contextSequence, contextItem);
        final Collator collator = getCollator(contextSequence, contextItem, 2);   
        final TreeSet<AtomicValue> set = new TreeSet<AtomicValue>(new ValueComparator(collator));
        final ValueSequence result = new ValueSequence();
        Item item;
        AtomicValue value;
        boolean hasAlreadyNaN = false;
        for (final SequenceIterator i = seq.iterate(); i.hasNext();) {
            item = i.nextItem();
            value = item.atomize();
            if (!set.contains(value)) {
                if (Type.subTypeOf(value.getType(), Type.NUMBER)) {
                    if (((NumericValue)value).isNaN()) {
                        //although NaN does not equal itself, if $arg
                        //contains multiple NaN values a single NaN is returned.
                        if (!hasAlreadyNaN) {
                            set.add(value);
                            result.add(value)
                            hasAlreadyNaN = true;
                        }
                    } else {
                        set.add(value);
                        result.add(value);
                    }
                } else {
                    set.add(value);
                    result.add(value);
                }
            }
        }
        if (context.getProfiler().isEnabled())
            {context.getProfiler().end(this, "", result);}
View Full Code Here

        Sequence result;
        final Sequence seq = getArgument(0).eval(contextSequence);
    if(seq.isEmpty())
            {result = StringValue.EMPTY_STRING;}
        else {
        final ValueSequence arg = FunStringToCodepoints.getCodePoints(seq.getStringValue());
        final ValueSequence mapStr = FunStringToCodepoints.getCodePoints(getArgument(1).eval(contextSequence).getStringValue());
            final ValueSequence transStr = FunStringToCodepoints.getCodePoints(getArgument(2).eval(contextSequence).getStringValue());
        int p;
        IntegerValue ch;
        final StringBuilder buf = new StringBuilder(arg.getItemCount());
        for(int i = 0; i < arg.getItemCount(); i++) {
          ch = (IntegerValue) arg.itemAt(i);
          p = FunStringToCodepoints.indexOf(mapStr, ch);
          if(p == Constants.STRING_NOT_FOUND) {
                    buf.append(FunStringToCodepoints.codePointToString(ch));
                } else {
            if (p < transStr.getItemCount())
              {buf.append(FunStringToCodepoints.codePointToString((IntegerValue) transStr.itemAt(p)));}
          }
        }
            result = new StringValue(buf.toString());
        }
View Full Code Here

  }
 
  @Override
  public Sequence eval(Sequence[] args, Sequence contextSequence)
      throws XPathException {
        Sequence result = new ValueSequence();
        if (isCalledAs("map")) {
            final FunctionReference ref = (FunctionReference) args[0].itemAt(0);
            ref.analyze(cachedContextInfo);
            for (final SequenceIterator i = args[1].iterate(); i.hasNext(); ) {
                final Item item = i.nextItem();
                final Sequence r = ref.evalFunction(contextSequence, null, new Sequence[]{item.toSequence()});
                result.addAll(r);
            }
        } else if (isCalledAs("for-each")) {
            final FunctionReference ref = (FunctionReference) args[1].itemAt(0);
            ref.analyze(cachedContextInfo);
            for (final SequenceIterator i = args[0].iterate(); i.hasNext(); ) {
                final Item item = i.nextItem();
                final Sequence r = ref.evalFunction(contextSequence, null, new Sequence[]{item.toSequence()});
                result.addAll(r);
            }
        } else if (isCalledAs("filter")) {
            FunctionReference ref;
            Sequence seq;
            // Hack: switch parameters for backwards compatibility
            if (Type.subTypeOf(args[1].getItemType(), Type.FUNCTION_REFERENCE)) {
                ref = (FunctionReference) args[1].itemAt(0);
                seq = args[0];
            } else {
                ref = (FunctionReference) args[0].itemAt(0);
                seq = args[1];
            }

            ref.analyze(cachedContextInfo);
          for (final SequenceIterator i = seq.iterate(); i.hasNext(); ) {
            final Item item = i.nextItem();
            final Sequence r = ref.evalFunction(contextSequence, null, new Sequence[] { item.toSequence() });
            if (r.effectiveBooleanValue())
              {result.add(item);}
          }
        } else if (isCalledAs("fold-left")) {
            final FunctionReference ref = (FunctionReference) args[2].itemAt(0);
            ref.analyze(cachedContextInfo);
          Sequence zero = args[1];
          Sequence input = args[0];
          while (!input.isEmpty()) {
            final SequenceIterator i = input.iterate();
            zero = ref.evalFunction(contextSequence, null, new Sequence[] { zero, i.nextItem().toSequence() });
            ValueSequence tail = new ValueSequence();
            while (i.hasNext()) {
              tail.add(i.nextItem());
            }
            input = tail;
          }
          result = zero;
        } else if (isCalledAs("fold-right")) {
View Full Code Here

            Sequence tmp;
            if (seq instanceof NodeSet) {
                tmp = new ExtArrayNodeSet();
                ((ExtArrayNodeSet)tmp).keepUnOrdered(unordered);
            } else {
                tmp = new ValueSequence();
                ((ValueSequence)tmp).keepUnOrdered(unordered);
            }
           
            Item item;
            final SequenceIterator iterator = seq.iterate();
View Full Code Here

                else
                    {processInMem = true;}
            }

            if (processInMem)
                {result = new ValueSequence();}
            else
                {result = new ExtArrayNodeSet();}

            for(final SequenceIterator i = idrefval.iterate(); i.hasNext(); ) {
          nextId = i.nextItem().getStringValue();
View Full Code Here

    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 {
            ((org.exist.memtree.NodeImpl)item).deepCopy();
          }
        }
        out.add(item);
      }
      return out;
        } catch(final SAXException e) {
            throw new XPathException(this, e.getMessage(), e);
    } catch (final DOMException e) {
View Full Code Here

      {throw new XPathException(this, "No request object found in the current XQuery context.");}
    if (var.getValue().getItemType() != Type.JAVA_OBJECT)
      {throw new XPathException(this, "Variable $request is not bound to an Java object.");}
    final JavaObjectValue value = (JavaObjectValue) var.getValue().itemAt(0);
    if (value.getObject() instanceof RequestWrapper) {
      final ValueSequence result = new ValueSequence();
      for (final Enumeration<String> e =
        ((RequestWrapper) value.getObject()).getParameterNames();
        e.hasMoreElements();
        ) {
        final String param = e.nextElement();
        result.add(new StringValue(param));
      }
      return result;
    } else
      {throw new XPathException(this, "Variable $request is not bound to a Request object.");}
  }
View Full Code Here

TOP

Related Classes of org.exist.xquery.value.ValueSequence

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.