## net.sf.saxon.expr
Class RoleLocator

    java.lang.Object
      net.sf.saxon.expr.RoleLocator

All Implemented Interfaces:
  java.io.Serializable

    public class RoleLocator

extends java.lang.Object
implements java.io.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:
  Serialized Form

Field Summary
`static int` `BINARY_EXPR`
`static int` `FUNCTION`
`static int` `FUNCTION_RESULT`
`static int` `INSTRUCTION`
`static int` `ORDER_BY`
`static int` `PARAM`
`static int` `TEMPLATE_RESULT`
`static int` `TYPE_OP`
`static int` `UNARY_EXPR`
`static int` `UPDATING_EXPR`
`static int` `VARIABLE`

Constructor Summary
`RoleLocator(int kind, java.io.Serializable operation, int operand)` Create information about the role of a subexpression within its parent expression

Method Summary
`java.lang.String` `composeErrorMessage(ItemType requiredItemType, ItemType suppliedItemType, NamePool pool)` Construct a full error message
`java.lang.String` `composeRequiredMessage(ItemType requiredItemType, NamePool pool)` Construct the part of the message giving the required item type
`java.lang.String` `getErrorCode()` Get the error code to be produced if a type error is detected
`java.lang.String` `getMessage()` Construct and return the error message indicating a type error
`void` `setErrorCode(java.lang.String code)` Set the error code to be produced if a type error is detected

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### FUNCTION

    public static final int FUNCTION

See Also:
  Constant Field Values

### BINARY_EXPR

    public static final int BINARY_EXPR

See Also:
  Constant Field Values

### TYPE_OP

    public static final int TYPE_OP

See Also:
  Constant Field Values

### VARIABLE

    public static final int VARIABLE

See Also:
  Constant Field Values

### INSTRUCTION

    public static final int INSTRUCTION

See Also:
  Constant Field Values

### FUNCTION_RESULT

    public static final int FUNCTION_RESULT

See Also:
  Constant Field Values

### ORDER_BY

    public static final int ORDER_BY

See Also:
  Constant Field Values

### TEMPLATE_RESULT

    public static final int TEMPLATE_RESULT

See Also:
  Constant Field Values

### PARAM

    public static final int PARAM

See Also:
  Constant Field Values

### UNARY_EXPR

    public static final int UNARY_EXPR

See Also:
  Constant Field Values

### UPDATING_EXPR

    public static final int UPDATING_EXPR

See Also:
  Constant Field Values

Constructor Detail

### RoleLocator

    public RoleLocator(int kind,
                       java.io.Serializable operation,
                       int operand)

  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
    `operation` - 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 a `StructuredQName`. For a string, the special format element/attribute is recognized, for example xsl:for-each/select, to identify the role of an XPath expression in a stylesheet.
    `operand` - Ordinal position of this subexpression, e.g. the position of an argument in

Method Detail

### setErrorCode

    public void setErrorCode(java.lang.String code)

  Set the error code to be produced if a type error is detected

  Parameters:
    `code` - The error code

### getErrorCode

    public java.lang.String getErrorCode()

  Get the error code to be produced if a type error is detected

  Returns:
    code The error code

### getMessage

    public java.lang.String getMessage()

  Construct and return the error message indicating a type error

  Returns:
    the constructed error message

### composeRequiredMessage

    public java.lang.String composeRequiredMessage(ItemType requiredItemType,
                                                   NamePool pool)

  Construct the part of the message giving the required item type

  Parameters:
    `requiredItemType` - the item type required by the context of a particular expression
    `pool` - the name pool
  Returns:
    a message of the form "Required item type of X is Y"

### composeErrorMessage

    public java.lang.String composeErrorMessage(ItemType requiredItemType,
                                                ItemType suppliedItemType,
                                                NamePool pool)

  Construct a full error message

  Parameters:
    `requiredItemType` - the item type required by the context of a particular expression
    `suppliedItemType` - the item type inferred by static analysis of an expression
    `pool` - the name pool
  Returns:
    a message of the form "Required item type of A is R; supplied value has item type S"

Copyright (c) Saxonica Limited. All rights reserved.