Class SystemFunction

All Implemented Interfaces:
Serializable, SourceLocator, Container, Expression, InstructionInfoProvider
Direct Known Subclasses:
Adjust, Aggregate, Available, BaseURI, BooleanFn, CodepointEqual, CollatingFunction, Collection, CompileTimeFunction, Component, Concat, Current, CurrentDateTime, CurrentGroup, DateTimeConstructor, Doc, Document, Error, EscapeURI, Evaluate, Existence, ForceCase, FormatDate, FormatNumber2, Id, Idref, InScopePrefixes, Insert, KeyFn, Lang, Last, Matches, NamePart, NamespaceForPrefix, Nilled, NormalizeSpace, NormalizeUnicode, NumberFn, Parse, Position, QNameFn, RegexGroup, Remove, Replace, ResolveQName, ResolveURI, Root, Rounding, Serialize, StringFn, StringJoin, StringLength, Subsequence, Substring, SystemProperty, Tokenize, Trace, Translate, TreatFn, Unicode, UnparsedEntity, UnparsedText

public abstract class SystemFunction extends FunctionCall
Abstract superclass for system-defined and user-defined functions
See Also:
  • Field Details

    • operation

      protected int operation
  • Constructor Details

    • SystemFunction

      public SystemFunction()
  • Method Details

    • makeSystemFunction

      public static FunctionCall makeSystemFunction(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
    • getDetails

      public StandardFunction.Entry getDetails()
      Get the details
    • checkArguments

      public void checkArguments(StaticContext env) throws XPathException
      Method called during static type checking
      Specified by:
      checkArguments in class FunctionCall
      Throws:
      XPathException
    • getErrorCodeForTypeErrors

      public 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)
    • computeCardinality

      public int computeCardinality()
      Determine the cardinality of the function.
      Specified by:
      computeCardinality in class ComputedExpression
    • 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, 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, 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
      config -
    • main

      public static void main(String[] args) throws 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:
      Exception