Class RoleLocator

java.lang.Object
net.sf.saxon.expr.RoleLocator
All Implemented Interfaces:
Serializable

public class RoleLocator extends Object implements Serializable
A RoleLocator identifies the role in which an expression is used, for example as the third argument of the concat() function. This information is stored in an ItemChecker or CardinalityChecker so that good diagnostics can be achieved when run-time type errors are detected.
See Also:
  • Field Details

  • Constructor Details

    • RoleLocator

      public RoleLocator(int kind, Object container, int operand, NamePool namePool)
      Create information about the role of a subexpression within its parent expression
      Parameters:
      kind - the kind of parent expression, e.g. a function call or a variable reference
      container - the name of the object in the parent expression, e.g. a function name or instruction name. May be expressed either as a String or as an Integer nameCode in the name pool.
      operand - Ordinal position of this subexpression, e.g. the position of an argument in
      namePool - The name pool. Must be supplied if the second argument is an Integer namecode. Otherwise, may be null.
  • Method Details

    • setErrorCode

      public void setErrorCode(String code)
      Set the error code to be produced if a type error is detected
      Parameters:
      code - The error code
    • getErrorCode

      public String getErrorCode()
      Get the error code to be produced if a type error is detected
      Returns:
      code The error code
    • setSourceLocator

      public void setSourceLocator(SourceLocator locator)
      Set the source location
    • getSourceLocator

      public SourceLocator getSourceLocator()
      Get the source location (if known - return null if not known)
    • getMessage

      public String getMessage()
      Construct and return the error message indicating a type error
      Returns:
      the constructed error message
    • composeErrorMessage

      public String composeErrorMessage(ItemType requiredItemType, ItemType suppliedItemType, NamePool pool)
      Construct a full error message