Package net.sf.saxon.value

Examples of net.sf.saxon.value.AtomicValue


            SequenceIterator keys = argument[1].iterate(context);
            SequenceIterator allValues = new MappingIterator(keys, this, null, info);
            return new DocumentOrderIterator(allValues, LocalOrderComparer.getInstance());
        } else {
            AtomicValue keyValue = (AtomicValue)argument[1].evaluateItem(context);
            if (keyValue == null) {
                return EmptyIterator.getInstance();
            }
            KeyManager keyManager = controller.getKeyManager();
            return keyManager.selectByKey(fprint, doc, keyValue, context);
View Full Code Here


            }
            return (PreparedExpression)v;

        } else {
            staticContext.setFunctionLibrary(context.getController().getExecutable().getFunctionLibrary());
            AtomicValue exprSource = (AtomicValue)argument[0].evaluateItem(context);

            PreparedExpression pexpr = new PreparedExpression();

            pexpr.variables = new Variable[10];
            for (int i=1; i<10; i++) {
                pexpr.variables[i-1] = staticContext.declareVariable("p"+i, EmptySequence.getInstance());
            }
            Expression expr;
            try {
                expr = ExpressionTool.make(exprSource.getStringValue(),
                                                                  staticContext,
                                                                  0, Token.EOF, 1);
            } catch (XPathException e) {
                DynamicError err = new DynamicError("Static error in XPath expression supplied to saxon:evaluate: " +
                        e.getMessage().trim());
View Full Code Here

        if (this.value != null) {

            SequenceIterator iter = this.value.iterate(context);
            vec = new ArrayList(4);
            while (true) {
                AtomicValue val = (AtomicValue) iter.next();
                if (val == null) {
                    break;
                }
                try {
                    NumericValue num;
                    if (val instanceof NumericValue) {
                        num = (NumericValue) val;
                    } else {
                        num = NumberFn.convert(val);
                    }
                    num = num.round();
                    if (num.compareTo(IntegerValue.MAX_LONG) > 0) {
                        DynamicError e = new DynamicError("A number is too large to be formatted");
                        e.setXPathContext(context);
                        e.setErrorCode("SAXON:0000");
                        throw e;
                    }
                    if (num.compareTo(IntegerValue.MIN_LONG) < 0) {
                        DynamicError e = new DynamicError("The numbers to be formatted must be positive");
                        e.setXPathContext(context);
                        e.setErrorCode("XT0980");
                        throw e;
                    }
                    long i = ((NumericValue) num.convert(Type.INTEGER, context)).longValue();
                    if (i < 1) {
                        DynamicError e = new DynamicError("The numbers to be formatted must be positive");
                        e.setXPathContext(context);
                        e.setErrorCode("XT0980");
                        throw e;
                    }
                    vec.add(new Long(i));
                } catch (DynamicError err) {
                    vec.add(val.getStringValue());
                    recoverableError(err, context);
                }
            }

        } else {
View Full Code Here

    private static String allHexDigits = "0123456789abcdefABCDEF";

    private String asString(XPathContext context) throws XPathException {
        String s = argument[0].evaluateItem(context).getStringValue();
        AtomicValue av2 = (AtomicValue)argument[1].evaluateItem(context);
        boolean escapeReserved = ((BooleanValue)av2.getPrimitiveValue()).getBooleanValue();
        String specials;
        StringBuffer sb = new StringBuffer(s.length());
        for (int i=0; i<s.length(); i++) {
            char c = s.charAt(i);
            if ((c>='a' && c<='z') || (c>='A' && c<='Z') || (c>='0' && c<='9')) {
View Full Code Here

            // the collation was determined statically
            return collation;
        } else {
            int numargs = argument.length;
            if (numargs > arg) {
                AtomicValue av = (AtomicValue)argument[arg].evaluateItem(context);
                StringValue collationValue = (StringValue)av.getPrimitiveValue();
                String collationName = collationValue.getStringValue();
                return context.getCollation(collationName);
            } else if (useDefault) {
                Comparator collator = context.getDefaultCollation();
                return (collator==null ? CodepointCollator.getInstance() : collator);
View Full Code Here

                break;
            }
            SequenceIterator keys = keyExpression.iterate(c2);
            boolean firstKey = true;
            while (true) {
                AtomicValue key = (AtomicValue) keys.next();
                if (key==null) {
                    break;
                }
                AtomicSortComparer.ComparisonKey comparisonKey = comparer.getComparisonKey(key);
                ArrayList g = (ArrayList) index.get(comparisonKey);
View Full Code Here

        while (true) {
            Item nextCandidate = population.next();
            if (nextCandidate == null) {
                break;
            }
            AtomicValue candidateKey =
                    (AtomicValue)keyExpression.evaluateItem(keyContext);
            try {
                if (currentComparisonKey.equals(comparer.getComparisonKey(candidateKey))) {
                    currentMembers.add(nextCandidate);
                } else {
                    next = nextCandidate;
                    nextKey = candidateKey;
                    return;
                }
            } catch (ClassCastException e) {
                DynamicError err = new DynamicError("Grouping key values are of non-comparable types (" +
                        currentKey.getItemType() +
                        " and " +
                        candidateKey.getItemType() + ")");
                err.setIsTypeError(true);
                err.setXPathContext(keyContext);
                throw err;
            }
        }
View Full Code Here

            return null;
        }
        DocumentInfo doc = (DocumentInfo)arg1;

        if (isSingletonId) {
            AtomicValue arg = (AtomicValue)argument[0].evaluateItem(context);
            if (arg==null) {
                return EmptyIterator.getInstance();
            }
            String idrefs = arg.getStringValue();
            if (idrefs.indexOf(0x20)>=0 ||
                    idrefs.indexOf(0x09)>=0 ||
                    idrefs.indexOf(0x0a)>=0 ||
                    idrefs.indexOf(0x0d)>=0) {
                StringTokenIterator tokens = new StringTokenIterator(idrefs);
View Full Code Here

    * Evaluate the expression
    */

    public Item evaluateItem(XPathContext context) throws XPathException {

        AtomicValue arg0 = (AtomicValue)argument[0].evaluateItem(context);
        if (arg0==null) {
            return null;
        }
        arg0 = arg0.getPrimitiveValue();

        AtomicValue arg1 = (AtomicValue)argument[1].evaluateItem(context);
        if (arg1==null) {
            return null;
        }
        arg1 = arg1.getPrimitiveValue();

        AtomicComparer collator = getAtomicComparer(2, context);

        int result = collator.compare(arg0, arg1);
        if (result < 0) {
View Full Code Here

    /**
    * Return an iteration over the sequence
    */

    public SequenceIterator iterate(XPathContext context) throws XPathException {
        AtomicValue av1 = (AtomicValue)operand0.evaluateItem(context);
        if (av1 == null) {
            return new EmptyIterator();
        }
        NumericValue v1 = (NumericValue)av1.getPrimitiveValue();

        AtomicValue av2 = (AtomicValue)operand1.evaluateItem(context);
        if (av2 == null) {
            return new EmptyIterator();
        }
        NumericValue v2 = (NumericValue)av2.getPrimitiveValue();

        if (v1.compareTo(v2) > 0) {
            return new EmptyIterator();
        }
        return new RangeIterator(v1.longValue(), v2.longValue());
View Full Code Here

TOP

Related Classes of net.sf.saxon.value.AtomicValue

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.