Class XSLFunction

    • Constructor Detail

      • XSLFunction

        public XSLFunction()
    • Method Detail

      • registerReference

        public void registerReference​(UserFunctionCall ref)
        Method called by UserFunctionCall to register the function call for subsequent fixup.
        Parameters:
        ref - the UserFunctionCall to be registered
      • isDeclaration

        public boolean isDeclaration()
        Ask whether this node is a declaration, that is, a permitted child of xsl:stylesheet (including xsl:include and xsl:import).
        Overrides:
        isDeclaration in class StyleElement
        Returns:
        true for this element
      • prepareAttributes

        public void prepareAttributes()
                               throws XPathException
        Description copied from class: StyleElement
        Set the attribute list for the element. This is called to process the attributes (note the distinction from processAttributes in the superclass). Must be supplied in a subclass
        Specified by:
        prepareAttributes in class StyleElement
        Throws:
        XPathException - if a static error is detected
      • getObjectName

        public StructuredQName getObjectName()
        Get a name identifying the object of the expression, for example a function name, template name, variable name, key name, element name, etc. This is used only where the name is known statically. If there is no name, the value will be -1.
        Specified by:
        getObjectName in interface InstructionInfo
        Overrides:
        getObjectName in class StyleElement
        Returns:
        the name of the object declared in this element, if any
      • mayContainSequenceConstructor

        public boolean mayContainSequenceConstructor()
        Determine whether this type of element is allowed to contain a template-body.
        Overrides:
        mayContainSequenceConstructor in class StyleElement
        Returns:
        true: yes, it may contain a general template-body
      • mayContainParam

        protected boolean mayContainParam​(java.lang.String attName)
        Description copied from class: StyleElement
        Determine whether this type of element is allowed to contain an xsl:param element
        Overrides:
        mayContainParam in class StyleElement
        Parameters:
        attName - if null, the method tests whether an xsl:param child is allowed. If non-null, it tests whether an xsl:param child with the given attribute name is allowed
        Returns:
        true if this element is allowed to contain an xsl:param
      • isPermittedChild

        protected boolean isPermittedChild​(StyleElement child)
        Specify that xsl:param is a permitted child
        Overrides:
        isPermittedChild in class StyleElement
        Parameters:
        child - the child that may or may not be permitted
        Returns:
        true if the child is permitted.
      • isOverriding

        public boolean isOverriding()
        Is override="yes"?.
        Returns:
        true if override="yes" was specified, otherwise false
      • index

        protected void index​(Declaration decl,
                             PrincipalStylesheetModule top)
                      throws XPathException
        Description copied from class: StyleElement
        Method supplied by declaration elements to add themselves to a stylesheet-level index
        Overrides:
        index in class StyleElement
        Parameters:
        decl - the Declaration being indexed. (This corresponds to the StyleElement object except in cases where one module is imported several times with different precedence.)
        top - the outermost XSLStylesheet element
        Throws:
        XPathException - if any error is encountered
      • validate

        public void validate​(Declaration decl)
                      throws XPathException
        Description copied from class: StyleElement
        Check that the stylesheet element is valid. This is called once for each element, after the entire tree has been built. As well as validation, it can perform first-time initialisation. The default implementation does nothing; it is normally overriden in subclasses.
        Overrides:
        validate in class StyleElement
        Parameters:
        decl - the declaration to be validated
        Throws:
        XPathException - if any error is found during validation
      • compileDeclaration

        public void compileDeclaration​(Executable exec,
                                       Declaration decl)
                                throws XPathException
        Compile the function definition to create an executable representation The compileDeclaration() method has the side-effect of binding all references to the function to the executable representation (a UserFunction object)
        Overrides:
        compileDeclaration in class StyleElement
        Parameters:
        exec - the Executable
        decl - the containing top-level declaration, for example xsl:function or xsl:template
        Throws:
        XPathException
      • getResultType

        public SequenceType getResultType()
        Get the type of value returned by this function
        Returns:
        the declared result type, or the inferred result type if this is more precise
      • getNumberOfArguments

        public int getNumberOfArguments()
        Get the number of arguments declared by this function (that is, its arity).
        Returns:
        the arity of the function
      • setParameterDefinitions

        public void setParameterDefinitions​(UserFunction fn)
        Set the definitions of the parameters in the compiled function, as an array.
        Parameters:
        fn - the compiled object representing the user-written function
      • getCompiledFunction

        public UserFunction getCompiledFunction()
        Get the compiled function
        Returns:
        the object representing the compiled user-written function