Class SystemFunction

    • Field Detail

      • operation

        protected int operation
    • Constructor Detail

      • SystemFunction

        public SystemFunction()
    • Method Detail

      • makeSystemFunction

        public static FunctionCall makeSystemFunction​(java.lang.String name,
                                                      int arity,
                                                      NamePool pool)
        Make a system function (one in the standard function namespace).
        Parameters:
        name - The local name of the function. It may also be a lexical QName for a recognized built-in function, e.g. saxon:evaluate, in which case the prefix is hard-coded.
        Returns:
        a FunctionCall that implements this function, if it exists, or null if the function is unknown.
      • setDetails

        public void setDetails​(StandardFunction.Entry entry)
        Set the details of this type of function
      • getErrorCodeForTypeErrors

        public java.lang.String getErrorCodeForTypeErrors()
        Return the error code to be used for type errors. This is overridden for functions such as exactly-one(), one-or-more(), ...
      • getRequiredType

        protected SequenceType getRequiredType​(int arg)
        Get the required type of the nth argument
      • getItemType

        public ItemType getItemType​(TypeHierarchy th)
        Determine the item type of the value returned by the function
        Parameters:
        th -
        Returns:
        a value such as Type.STRING, Type.BOOLEAN, Type.NUMBER, Type.NODE, or Type.ITEM (meaning not known at compile time)
      • computeSpecialProperties

        public int computeSpecialProperties()
        Determine the special properties of this expression. The general rule is that a system function call is non-creative if its return type is atomic, or if all its arguments are non-creative. This is overridden for the generate-id() function, which is considered creative if its operand is creative (because the result depends on the identity of the operand)
        Overrides:
        computeSpecialProperties in class ComputedExpression
      • useContextItemAsDefault

        protected final void useContextItemAsDefault()
        Set "." as the default value for the first and only argument. Called from subclasses.
      • addContextDocumentArgument

        protected final void addContextDocumentArgument​(int pos,
                                                        java.lang.String augmentedName)
                                                 throws StaticError
        Add an implicit argument referring to the context document. Called by functions such as id() and key() that take the context document as an implicit argument
        Throws:
        StaticError
      • display

        public void display​(int level,
                            java.io.PrintStream out,
                            Configuration config)
        Diagnostic print of expression structure
        Specified by:
        display in interface Expression
        Overrides:
        display in class FunctionCall
        Parameters:
        level - indentation level for this expression
        out - Output destination
      • main

        public static void main​(java.lang.String[] args)
                         throws java.lang.Exception
        The main() method of this class is not intended to be called, it merely tells the code inspection tools in IDEA that the constructors of each function class are actual entry points
        Throws:
        java.lang.Exception