Examples of ValueSequence


Examples of org.exist.xquery.value.ValueSequence

      validation = attr.getValue();
    }
  }
 
  public Sequence eval(Sequence contextSequence, Item contextItem) throws XPathException {
    Sequence result = new ValueSequence();
   
    if (contextItem != null)
      contextSequence = contextItem.toSequence();

    context.pushInScopeNamespaces();
   
        MemTreeBuilder builder = context.getDocumentBuilder();

        try {
//            for (Item item : contextSequence) {
            for (SequenceIterator iterInner = contextSequence.iterate(); iterInner.hasNext();) {
                Item i = iterInner.nextItem();
               
                org.w3c.dom.Node item;
                if (i instanceof NodeValue) {
                  item = ((NodeValue) i).getNode();
        } else
                  item = (org.w3c.dom.Node) i;

                //UNDERSTAND: strange place to workaround
              if (item instanceof org.w3c.dom.Document) {
            org.w3c.dom.Document document = (org.w3c.dom.Document) item;
            item = document.getDocumentElement();
          }
         
          if (item instanceof org.w3c.dom.Element) {
            QName qn;
                  if (item instanceof QNameValue) {
                      qn = ((QNameValue)item).getQName();
                  } else {
                      qn = ((QNameable)item).getQName();
                      if (qn.getPrefix() == null && context.getInScopeNamespace("") != null) {
                           qn.setNamespaceURI(context.getInScopeNamespace(""));
                      }
                  }
            int nodeNr = builder.startElement(qn, null);
           
            if (use_attribute_sets != null)
              getXSLContext().getXSLStylesheet().attributeSet(use_attribute_sets, contextSequence, i);

            super.eval(contextSequence, i);
           
                  builder.endElement();
                  NodeImpl node = builder.getDocument().getNode(nodeNr);
                  result.add(node);
          } else if (item instanceof org.w3c.dom.Text) {
            int nodeNr = builder.characters(i.getStringValue());
                  NodeImpl node = builder.getDocument().getNode(nodeNr);
                  result.add(node);
          } else {
            throw new XPathException("not supported node type "+i.getType());
          }
        }
        } finally {
View Full Code Here

Examples of org.exist.xquery.value.ValueSequence

//     
//      return sets;
//    }

    public Sequence attributeSet(String name, Sequence contextSequence, Item contextItem) throws XPathException {
      Sequence result = new ValueSequence();
     
      String[] names = name.split(" ");
     
      String n;
      for (int i = 0; i < names.length; i++) {
        n = names[i];
        if (attributeSets.containsKey(n)) {
          List<AttributeSet> list = attributeSets.get(n);
          for (AttributeSet set : list) {
            result.addAll(set.eval(null, null));
          }
        } else {
          //UNDERSTAND: error???
        }
      }
View Full Code Here

Examples of org.exist.xquery.value.ValueSequence

    }
   
    public Sequence templates(Sequence contextSequence, Item contextItem) throws XPathException {

    boolean matched = false;
    Sequence result = new ValueSequence();

    Sequence currentSequence = contextSequence;
   
    if (contextItem != null)
      currentSequence = contextItem.toSequence();
   
    int pos = context.getContextPosition();
   
//    for (Item item : currentSequence) {
    for (SequenceIterator iterInner = currentSequence.iterate(); iterInner.hasNext();) {
      Item item = iterInner.nextItem();
//      if (currentSequence == item)
//        item = null;

      //UNDERSTAND: work around
//      if (item instanceof org.w3c.dom.Document) {
//        org.w3c.dom.Document document = (org.w3c.dom.Document) item;
//        item = (Item) document.getDocumentElement();
//      }
     
      context.setContextSequencePosition(pos, currentSequence);
     
      if ((contextItem == null) && (rootTemplate != null)) {
        context.setContextSequencePosition(0, currentSequence);
        Sequence res = rootTemplate.eval(contextSequence, item);
        result.addAll(res);
        matched = true;
      }

      for (Template template : templates) {
        if (template.matched(contextSequence, item)) { //contextSequence
          matched = true;
         
          Sequence res = template.eval(contextSequence, item);
          result.addAll(res);
          if (res.getItemCount() > 0)
            break;
        }
      }
     
      //XXX: performance !?! how to get subelements sequence?? fast...
      if (!matched) {
        if (item instanceof ElementAtExist || item instanceof DocumentAtExist) {
          NodeAtExist node = (NodeAtExist) item;
         
          NodeList children = node.getChildNodes();
          for (int i=0; i<children.getLength(); i++) {
            NodeAtExist child = (NodeAtExist)children.item(i);
           
//            if (child instanceof Text) {
//                        MemTreeBuilder builder = context.getDocumentBuilder();
//                    builder.characters(item.getStringValue());
//                    result.add(item);
//            } else {
              Sequence res = templates((Sequence)node, (Item)child);
              if (res != null) {
                result.addAll(res);
                matched = true;
              }
//            }
          }
        }
View Full Code Here

Examples of org.exist.xquery.value.ValueSequence

   
    public Sequence template(QName name, Sequence contextSequence, Item contextItem) throws XPathException {
    if (!namedTemplates.containsKey(name))
      throw new XPathException("no template with given name = "+name);//TODO: error?
   
    Sequence result = new ValueSequence();

    Sequence currentSequence = contextSequence;
   
    if (contextItem != null)
      currentSequence = contextItem.toSequence();

    int pos = context.getContextPosition();

    Template template = namedTemplates.get(name);
    for (SequenceIterator iterInner = currentSequence.iterate(); iterInner.hasNext();) {
      Item item = iterInner.nextItem();  
     
      //UNDERSTAND: work around
//      if (item instanceof org.w3c.dom.Document) {
//        org.w3c.dom.Document document = (org.w3c.dom.Document) item;
//        item = (Item) document.getDocumentElement();
//      }
     
      context.setContextSequencePosition(pos, currentSequence);

      Sequence res = template.eval(contextSequence, item);
      result.addAll(res);
      if (res.getItemCount() > 0)
        break;

      pos++;
    }
View Full Code Here

Examples of org.exist.xquery.value.ValueSequence

        Item item = (Item)args[0].itemAt(0);

        if(!(item instanceof AbstractDateTimeValue))
          throw new XPathException("Function requires one of xs:dateTime, xs:date, or xs:time as first parameter.");

        ValueSequence result = new ValueSequence();
        AbstractDateTimeValue d1 = (AbstractDateTimeValue)item;
        DurationValue diff = (DurationValue)args[1].itemAt(0);
        Sequence seq = args[2].convertTo(Type.INTEGER);
        int count = ((NumericValue)seq.itemAt(0).convertTo(Type.INTEGER)).getInt();
        if (count < 0)
            count = 0;

        // loop through dates/times
        while(count-- > 0)
        {
          result.add(d1);
          d1 = (AbstractDateTimeValue)d1.plus(diff);
        }

        return result;
    }
View Full Code Here

Examples of org.exist.xquery.value.ValueSequence

  public Sequence transform(Item xmlSource) throws XPathException {
    if (compiled == null)
      throw new XPathException("Stylesheet has not been prepared.");
   
    //work around for top xpath child::
    Sequence source = new ValueSequence();

    Item xslItem = xmlSource;
    if (xmlSource instanceof Node) {
      xslItem = (Item) ((Node) xmlSource).getOwnerDocument();
    }
    source.add(xslItem);
   
    return compiled.eval(source);
  }
View Full Code Here

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

    private static final String queryFile = "C:/Users/myui/workspace/xbird-db/examples/xqueryd/xmark/local/xpathmark05.xq";

    public void testNormalSequence() throws FileNotFoundException, XQueryException {
        System.out.println(" ============ Materialized ============ ");
        final Sequence<? extends Item> result = doQuery(queryFile);
        final ValueSequence materialized = new ValueSequence(result.materialize(), null);

        StopWatch sw01 = new StopWatch("Sequence encoding time");
        byte[] encoded0 = ObjectUtils.toBytes(materialized);
        System.err.println(sw01);
View Full Code Here

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

        final ReturnType returnType = request.getReturnType();
        final Serializable ret;
        switch(returnType) {
            case SEQUENCE:
                final List<Item> materialized = result.materialize();
                ret = new ValueSequence(materialized, dynEnv);
                break;
            case MARSHALLED_SEQUENCE:
                ret = new MarshalledSequence(result, dynEnv);
                break;
            case AUTO:
View Full Code Here

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

            }
        }
        if(prefixes.isEmpty()) {
            return ValueSequence.EMPTY_SEQUENCE;
        }
        return new ValueSequence(prefixes, dynEnv);
    }
View Full Code Here

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

            return ValueSequence.EMPTY_SEQUENCE;
        }
        if(items.size() == 1) {
            return items.get(0);
        }
        return new ValueSequence(items, DynamicContext.DUMMY);
    }
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.