All Downloads are FREE. Search and download functionalities are using the official Maven repository.

net.sf.saxon.functions.Current Maven / Gradle / Ivy

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2018-2023 Saxonica Limited
// This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0.
// If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
// This Source Code Form is "Incompatible With Secondary Licenses", as defined by the Mozilla Public License, v. 2.0.
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

package net.sf.saxon.functions;

import net.sf.saxon.expr.XPathContext;
import net.sf.saxon.om.FunctionItem;
import net.sf.saxon.om.NamespaceUri;
import net.sf.saxon.om.Sequence;
import net.sf.saxon.om.StructuredQName;
import net.sf.saxon.trans.XPathException;

/**
 * Implement the XSLT current() function
 */

public class Current extends SystemFunction {

    /**
     * The name of the Current function
     */

    /*@NotNull*/ public static final StructuredQName FN_CURRENT =
        NamespaceUri.FN.qName("current");

    //@Override
    public FunctionItem bindContext(XPathContext context) {
//        Int64Value value;
//        try {
//            value = evaluateItem(context);
//        } catch (final XPathException e) {
//            // This happens when we do a dynamic lookup of position() or last() when there is no context item
//            SymbolicName.F name = new SymbolicName.F(getFunctionName(), getArity());
//            Callable callable = new CallableDelegate((context1, arguments) -> {
//                throw e;
//            });
//            return new CallableFunction(name, callable, getFunctionItemType());
//        }
//        ConstantFunction fn = new ConstantFunction(value);
//        fn.setDetails(getDetails());
//        fn.setRetainedStaticContext(getRetainedStaticContext());
//        return fn;
        return null;
    }

    /**
     * Evaluate the expression
     *
     * @param context   the dynamic evaluation context
     * @param arguments the values of the arguments, supplied as Sequences
     * @return the result of the evaluation, in the form of a Sequence
     * @throws net.sf.saxon.trans.XPathException
     *          if a dynamic error occurs during the evaluation of the expression
     */
    @Override
    public Sequence call(XPathContext context, Sequence[] arguments) throws XPathException {
        throw new XPathException("Dynamic evaluation of the current() function is not supported", "XTDE1360");
    }
}





© 2015 - 2025 Weber Informatics LLC | Privacy Policy