net.sf.saxon.query
Class GlobalVariableDefinition

java.lang.Object
  extended by net.sf.saxon.query.GlobalVariableDefinition
All Implemented Interfaces:
SourceLocator, VariableDeclaration, Declaration
Direct Known Subclasses:
UndeclaredVariable

public class GlobalVariableDefinition
extends Object
implements VariableDeclaration, Declaration

Class to hold compile-time information about an XQuery global variable or parameter


Constructor Summary
GlobalVariableDefinition()
           
 
Method Summary
 GlobalVariable compile(StaticQueryContext env, int slot)
          Create a compiled representation of this global variable
 void explain(Configuration config, PrintStream out)
          Produce diagnostic output showing the compiled and optimized expression tree for a function
 int getColumnNumber()
          Get column number
 GlobalVariable getCompiledVariable()
          Get the compiled variable if the definition has been compiled
 int getLineNumber()
          Get the line number where the declaration appears
 int getNameCode()
          Get the variable name
 String getPublicId()
          Get public identifier
 SequenceType getRequiredType()
          Get the required type of the variable
 String getSystemId()
          Get the system ID of the module containing the variable declaration
 String getVariableName()
          Get the name of the variable
 Iterator iterateReferences()
          Iterate over the references to this variable
 void registerReference(BindingReference ref)
          Register a variable reference that refers to this global variable
 void setIsParameter(boolean b)
          Indicate whether this global variable is a "parameter" (an external variable, in XQuery terminology)
 void setLineNumber(int lineNumber)
          Set the line number where the variable declaration appears in the source
 void setNameCode(int nameCode)
          Set the variable name
 void setRequiredType(SequenceType type)
          Set the required type of the variable
 void setSystemId(String systemId)
          Set the system ID of the module where the variable declaration appears
 void setValueExpression(Expression val)
          Set the expression used to define the value of the variable
 void setVariableName(String variableName)
          Set the variable name
static void typeCheck(StaticQueryContext env, GeneralVariable var)
          Type check the compiled representation of this global variable
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

GlobalVariableDefinition

public GlobalVariableDefinition()
Method Detail

setRequiredType

public void setRequiredType(SequenceType type)
Set the required type of the variable

Parameters:
type - the declared type, from the "as" clause if present

getRequiredType

public SequenceType getRequiredType()
Get the required type of the variable

Returns:
the declared type, from the "as" clause if present

setNameCode

public void setNameCode(int nameCode)
Set the variable name

Parameters:
nameCode - the variable name, expressed as a NamePool name code

getNameCode

public int getNameCode()
Get the variable name

Specified by:
getNameCode in interface VariableDeclaration
Returns:
the variable name, expressed as a NamePool name code

setLineNumber

public void setLineNumber(int lineNumber)
Set the line number where the variable declaration appears in the source

Parameters:
lineNumber - the line number

getLineNumber

public int getLineNumber()
Get the line number where the declaration appears

Specified by:
getLineNumber in interface SourceLocator

getColumnNumber

public int getColumnNumber()
Get column number

Specified by:
getColumnNumber in interface SourceLocator
Returns:
-1 always

getPublicId

public String getPublicId()
Get public identifier

Specified by:
getPublicId in interface SourceLocator
Returns:
null always

setSystemId

public void setSystemId(String systemId)
Set the system ID of the module where the variable declaration appears


getSystemId

public String getSystemId()
Get the system ID of the module containing the variable declaration

Specified by:
getSystemId in interface SourceLocator

getVariableName

public String getVariableName()
Get the name of the variable

Specified by:
getVariableName in interface VariableDeclaration
Returns:
the variable name, as a lexical QName

setVariableName

public void setVariableName(String variableName)
Set the variable name

Parameters:
variableName - the variable name, as a lexical QName

setValueExpression

public void setValueExpression(Expression val)
Set the expression used to define the value of the variable

Parameters:
val - the initializing expression

setIsParameter

public void setIsParameter(boolean b)
Indicate whether this global variable is a "parameter" (an external variable, in XQuery terminology)

Parameters:
b - true if this variable is external

registerReference

public void registerReference(BindingReference ref)
Register a variable reference that refers to this global variable

Specified by:
registerReference in interface VariableDeclaration
Parameters:
ref - the variable reference

iterateReferences

public Iterator iterateReferences()
Iterate over the references to this variable


compile

public GlobalVariable compile(StaticQueryContext env,
                              int slot)
                       throws XPathException
Create a compiled representation of this global variable

Parameters:
env - the static context for the query module
slot - the slot number allocated to this variable
Returns:
the compiled representation
Throws:
XPathException - if compile-time errors are found.

typeCheck

public static void typeCheck(StaticQueryContext env,
                             GeneralVariable var)
                      throws XPathException
Type check the compiled representation of this global variable

Parameters:
env - the static context for the query module
Throws:
XPathException - if compile-time errors are found.

getCompiledVariable

public GlobalVariable getCompiledVariable()
Get the compiled variable if the definition has been compiled


explain

public void explain(Configuration config,
                    PrintStream out)
Produce diagnostic output showing the compiled and optimized expression tree for a function

Parameters:
config - the configuration to be used


Copyright (C) Michael H. Kay. All rights reserved.