package lux.functions; import net.sf.saxon.s9api.ExtensionFunction; import net.sf.saxon.s9api.QName; import net.sf.saxon.s9api.SaxonApiException; import net.sf.saxon.s9api.SequenceType; import net.sf.saxon.s9api.XdmValue; /** * Convenience class for defining extension functions */ public abstract class Function implements ExtensionFunction { private final QName qname; private final SequenceType resultType; private final SequenceType[] argumentTypes; public Function (QName qname, SequenceType resultType, SequenceType[] argumentTypes) { this.qname = qname; this.resultType = resultType; this.argumentTypes = argumentTypes; } @Override public QName getName() { return qname; } @Override public SequenceType getResultType() { return resultType; } @Override public SequenceType[] getArgumentTypes() { return argumentTypes; } @Override public abstract XdmValue call(XdmValue[] arguments) throws SaxonApiException; } /* 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/. */