net.sf.saxon.expr

Class RoleLocator

Implemented Interfaces:
Serializable

public class RoleLocator
extends java.lang.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.

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
VARIABLE

Constructor Summary

RoleLocator(int kind, Object container, int operand, NamePool namePool)
Create information about the role of a subexpression within its parent expression

Method Summary

String
composeErrorMessage(ItemType requiredItemType, ItemType suppliedItemType, NamePool pool)
Construct a full error message
String
composeRequiredMessage(ItemType requiredItemType, NamePool pool)
Construct the part of the message giving the required item type
String
getErrorCode()
Get the error code to be produced if a type error is detected
String
getMessage()
Construct and return the error message indicating a type error
SourceLocator
getSourceLocator()
Get the source location (if known - return null if not known)
void
setErrorCode(String code)
Set the error code to be produced if a type error is detected
void
setSourceLocator(SourceLocator locator)
Set the source location

Field Details

BINARY_EXPR

public static final int BINARY_EXPR
Field Value:
1

FUNCTION

public static final int FUNCTION
Field Value:
0

FUNCTION_RESULT

public static final int FUNCTION_RESULT
Field Value:
5

INSTRUCTION

public static final int INSTRUCTION
Field Value:
4

ORDER_BY

public static final int ORDER_BY
Field Value:
6

PARAM

public static final int PARAM
Field Value:
8

TEMPLATE_RESULT

public static final int TEMPLATE_RESULT
Field Value:
7

TYPE_OP

public static final int TYPE_OP
Field Value:
2

UNARY_EXPR

public static final int UNARY_EXPR
Field Value:
9

VARIABLE

public static final int VARIABLE
Field Value:
3

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 or as a StructuredQName
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

composeErrorMessage

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

composeRequiredMessage

public String composeRequiredMessage(ItemType requiredItemType,
                                     NamePool pool)
Construct the part of the message giving the required item type

getErrorCode

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

getMessage

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

getSourceLocator

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

setErrorCode

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

setSourceLocator

public void setSourceLocator(SourceLocator locator)
Set the source location