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. Also used for system-generated global variables created by the optimizer, whether in XSLT or XQuery.


Field Summary
protected  List references
           
 
Constructor Summary
GlobalVariableDefinition()
           
 
Method Summary
 GlobalVariable compile(Executable exec, int slot)
          Create a compiled representation of this global variable
 void explain(ExpressionPresenter 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
 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
 Expression getValueExpression()
          Get the expression used to initialize the value of the variable
 StructuredQName getVariableQName()
          Get the variable name
 boolean isParameter()
          Ask whether this global variable is a "parameter" (an external variable, in XQuery terminology)
 boolean isPrivate()
          Ask whether this global variable is private
 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)
          Say 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 setPrivate(boolean b)
          Say whether this global variable is a "parameter" (an external variable, in XQuery terminology)
 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 setVariableQName(StructuredQName qName)
          Set the variable name
 void typeCheck(ExpressionVisitor visitor)
          Type check the compiled representation of this global variable
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

references

protected List references
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

setVariableQName

public void setVariableQName(StructuredQName qName)
Set the variable name

Parameters:
qName - the variable name

getVariableQName

public StructuredQName getVariableQName()
Get the variable name

Specified by:
getVariableQName in interface VariableDeclaration
Returns:
the variable name

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

Parameters:
systemId - the System ID (base URI)

getSystemId

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

Specified by:
getSystemId in interface SourceLocator
Returns:
the System ID (base URI)

setValueExpression

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

Parameters:
val - the initializing expression

getValueExpression

public Expression getValueExpression()
Get the expression used to initialize the value of the variable

Returns:
the initializing expression

setIsParameter

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

Parameters:
b - true if this variable is external

isParameter

public boolean isParameter()
Ask whether this global variable is a "parameter" (an external variable, in XQuery terminology)

Returns:
true if this variable is an external variable

isPrivate

public boolean isPrivate()
Ask whether this global variable is private

Returns:
true if this variable is private

setPrivate

public void setPrivate(boolean b)
Say 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

Returns:
an iterator over the references: returns objects of class VariableReference

compile

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

Parameters:
exec - the executable
slot - the slot number allocated to this variable
Returns:
the compiled representation
Throws:
XPathException - if compile-time errors are found.

typeCheck

public void typeCheck(ExpressionVisitor visitor)
               throws XPathException
Type check the compiled representation of this global variable

Parameters:
visitor - an expression visitor
Throws:
XPathException - if compile-time errors are found.

getCompiledVariable

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

Returns:
the compiled global variable

explain

public void explain(ExpressionPresenter out)
Produce diagnostic output showing the compiled and optimized expression tree for a function

Parameters:
out - the destination to be used


Copyright (c) 2004-2011 Saxonica Limited. All rights reserved.