Package client.net.sf.saxon.ce.om

Examples of client.net.sf.saxon.ce.om.SequenceIterator


      Xslt20ProcessorImpl.handleException(e, "setParameter");
    }
  }
 
  private ValueRepresentation getValue(Object jso) throws XPathException {
      SequenceIterator iterator = IXSLFunction.convertFromJavaScript(jso, processor.config);
      if (iterator instanceof JsArrayIterator) {
        return (ValueRepresentation)iterator;
      } else {
        return iterator.next();
      }
  }
View Full Code Here


            return false;
        }
        if (length == 0 && !Cardinality.allowsZero(cardinality)) {
            return false;
        }
        SequenceIterator iter = value.iterate();
        while (true) {
            Item item = iter.next();
            if (item == null) {
                return true;
            }
            if (!primaryType.matchesItem(item, false, config)) {
                return false;
View Full Code Here

    public void bubbleApplyTemplates(Node node, Event event)  {
      if (principleEventListener) {
        Controller.relayEvent(node, event); // make a call to this method for other instances
      }
      NodeInfo eventNode = ((HTMLDocumentWrapper)config.getHostPage()).wrap(node);
      SequenceIterator bubbleElements = eventNode.iterateAxis(Axis.ANCESTOR, NodeKindTest.ELEMENT);
      Controller controller = stylesheet.newTransformer();
      try {
          controller.importControllerSettings(localController);
        XPathContext ruleContext = controller.newXPathContext();
        Mode matchedMode = getModeFromEvent(event);
       
        if (matchedMode == null) {
          return;
        }
       
        // walk up the tree until we find an element with matching rule for the event mode

        NodeInfo element = eventNode;
          while (element != null) {
              Rule matchedRule = matchedMode.getRule(element, ruleContext);
              if (matchedRule != null && eventPropertyMatch(event, matchedRule)) {
                logger.log(Level.FINER, "Bubble Apply-Templates - Mode: " + matchedMode.getModeName().getLocalName() +
                    " Element: " + controller.getNamePool().getLocalName(element.getNameCode()));
                applyEventTemplates(matchedMode.getModeName().getClarkName(), element, event, null);
                if (matchedRule.getIxslPreventDefault()) {
                  event.preventDefault();
                }
                break;
              }
              element = (NodeInfo)bubbleElements.next();
          }
      } catch (Exception e) {
        handleException(e, "bubbleApplyTemplates");
      }
    }
View Full Code Here

                }
            }
            Item nextSource = base.next();
            if (nextSource != null) {
                // Call the supplied mapping function
                SequenceIterator obj = action.map(nextSource);

                // The result may be null (representing an empty sequence),
                //  or a SequenceIterator (any sequence)

                if (obj != null) {
View Full Code Here

    public int position() {
        return position;
    }

    public SequenceIterator getAnother() throws XPathException {
        SequenceIterator newBase = base.getAnother();
        MappingFunction newAction = action instanceof StatefulMappingFunction ?
                (MappingFunction)((StatefulMappingFunction)action).getAnother() :
                action;
        return new MappingIterator(newBase, newAction);
    }
View Full Code Here

    /**
    * Evaluate the function
    */

    public Item evaluateItem(XPathContext context) throws XPathException {
        SequenceIterator iter = argument[0].iterate(context);
        int count = 0;
        AtomicValue item = (AtomicValue) iter.next();
        if (item == null) {
            // the sequence is empty
            return null;
        }
        count++;
        if (item instanceof UntypedAtomicValue) {
            try {
                item = item.convert(BuiltInAtomicType.DOUBLE, true).asAtomic();
            } catch (XPathException e) {
                e.maybeSetLocation(getSourceLocator());
                throw e;
            }
        }
        if (item instanceof NumericValue) {
            while (true) {
                AtomicValue next = (AtomicValue) iter.next();
                if (next == null) {
                    return ArithmeticExpression.compute(item, Calculator.DIV, IntegerValue.makeIntegerValue(count), context);
                }
                count++;
                if (next instanceof UntypedAtomicValue) {
                    next = next.convert(BuiltInAtomicType.DOUBLE, true).asAtomic();
                } else if (!(next instanceof NumericValue)) {
                    badMix(context);
                }
                item = ArithmeticExpression.compute(item, Calculator.PLUS, next, context);
            }
        } else if (item instanceof DurationValue) {
            while (true) {
                AtomicValue next = (AtomicValue) iter.next();
                if (next == null) {
                    return ((DurationValue)item).multiply(1.0/count);
                }
                count++;
                if (!(next instanceof DurationValue)) {
View Full Code Here

    /**
    * Evaluate the function
    */

    public Item evaluateItem(XPathContext context) throws XPathException {
        SequenceIterator iter = argument[0].iterate(context);
        return IntegerValue.makeIntegerValue(count(iter));
    }
View Full Code Here

    /**
    * Evaluate the function to return an iteration of selected nodes.
    */

    public SequenceIterator iterate(XPathContext context) throws XPathException {
        SequenceIterator seq = argument[0].iterate(context);
        AtomicValue n0 = (AtomicValue)argument[1].evaluateItem(context);
        NumericValue n = (NumericValue)n0;
        int pos = (int)n.intValue();
        if (pos < 1) {
            return seq;
View Full Code Here

    /**
    * Evaluate the function to return an iteration of selected nodes.
    */

    public SequenceIterator iterate(XPathContext context) throws XPathException {
        SequenceIterator seq = argument[0].iterate(context);
        DoubleValue startVal = (DoubleValue)argument[1].evaluateItem(context);
        if (startVal.isNaN()) {
            return EmptyIterator.getInstance();
        }
        if (startVal.compareTo(IntegerValue.MAX_LONG) > 0) {
View Full Code Here

    public Item evaluateItem(XPathContext c) throws XPathException {

        // This rather tortuous code is designed to ensure that we don't evaluate the
        // separator argument unless there are at least two items in the sequence.

        SequenceIterator iter = argument[0].iterate(c);
        Item it = iter.next();
        if (it == null) {
            return StringValue.EMPTY_STRING;
        }

        CharSequence first = it.getStringValueCS();

        it = iter.next();
        if (it == null) {
            return StringValue.makeStringValue(first);
        }

        FastStringBuffer sb = new FastStringBuffer(FastStringBuffer.SMALL);
        sb.append(first);

        // Type checking ensures that the separator is not an empty sequence
        if (argument.length == 1) {
            sb.append(it.getStringValueCS());
            while (true) {
                it = iter.next();
                if (it == null) {
                    return StringValue.makeStringValue(sb.condense());
                }
                sb.append(it.getStringValueCS());
            }

        } else {
            CharSequence sep = argument[1].evaluateItem(c).getStringValueCS();
            sb.append(sep);
            sb.append(it.getStringValueCS());

            while (true) {
                it = iter.next();
                if (it == null) {
                    return StringValue.makeStringValue(sb.condense());
                }
                sb.append(sep);
                sb.append(it.getStringValueCS());
View Full Code Here

TOP

Related Classes of client.net.sf.saxon.ce.om.SequenceIterator

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.