Class Trace

All Implemented Interfaces:
Callable, Locatable, FunctionItem, GroundedValue, Item, Sequence, Traceable

public class Trace extends SystemFunction implements Traceable
This class supports the XPath 2.0 function trace(). The value is traced to the registered output stream (defaulting to System.err), unless a TraceListener is in use, in which case the information is sent to the TraceListener
  • Constructor Details

    • Trace

      public Trace()
  • Method Details

    • getSpecialProperties

      public int getSpecialProperties(Expression[] arguments)
      Get the static properties of this expression (other than its type). The result is bit-significant. These properties are used for optimizations. In general, if property bit is set, it is true, but if it is unset, the value is unknown.
      Overrides:
      getSpecialProperties in class SystemFunction
      Parameters:
      arguments - the actual arguments
      Returns:
      the properties
    • getCardinality

      public int getCardinality(Expression[] arguments)
      Description copied from class: SystemFunction
      Get the cardinality, given knowledge of the actual arguments
      Overrides:
      getCardinality in class SystemFunction
      Parameters:
      arguments - the actual arguments supplied
      Returns:
      the most precise available cardinality that the function will return
    • notifyListener

      public void notifyListener(String label, Sequence val, XPathContext context)
    • makeFunctionCall

      public Expression makeFunctionCall(Expression... arguments)
      Description copied from class: SystemFunction
      Make an expression that either calls this function, or that is equivalent to a call on this function
      Overrides:
      makeFunctionCall in class SystemFunction
      Parameters:
      arguments - the supplied arguments to the function call
      Returns:
      either a function call on this function, or an expression that delivers the same result
    • traceItem

      public static void traceItem(Item val, String label, Logger out)
    • getLocation

      public Location getLocation()
      Description copied from interface: Locatable
      Get the location of the construct
      Specified by:
      getLocation in interface Locatable
      Returns:
      the location. If no location information is available, the method should return Loc.NONE rather than returning null. However, callers would be well advised to check for the result being null.
    • call

      public Sequence call(XPathContext context, Sequence[] arguments) throws XPathException
      Evaluate the expression
      Specified by:
      call in interface Callable
      Parameters:
      context - the dynamic evaluation context
      arguments - the values of the arguments, supplied as SequenceIterators
      Returns:
      the result of the evaluation, in the form of a SequenceIterator
      Throws:
      XPathException - if a dynamic error occurs during the evaluation of the expression
    • 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.
      Specified by:
      getObjectName in interface Traceable
      Returns:
      the QName of the object declared or manipulated by this instruction or expression
    • getStreamerName

      public String getStreamerName()
      Description copied from class: SystemFunction
      Get a name that identifies the class that can be used to evaluate this function in streaming mode, that is, supplying one item or event at a time as it is delivered by the parser. Special streaming support is generally available in Saxon-EE for all system functions that take a sequence as their argument.
      Overrides:
      getStreamerName in class SystemFunction
      Returns:
      a name that identifies a class that supports streamed evaluation of this system function, or null if no such class is available. The mapping of names to classes is defined in the Saxon-EE class StreamerMap. In non-streaming Saxon editions (HE and PE) the method always returns null.