net.sf.saxon.query
Class XQueryFunction

java.lang.Object
  extended by net.sf.saxon.query.XQueryFunction
All Implemented Interfaces:
SourceLocator, LocationProvider, SaxonLocator, Container, Declaration, InstructionInfo, Locator

public class XQueryFunction
extends Object
implements InstructionInfo, Container, Declaration


Constructor Summary
XQueryFunction()
           
 
Method Summary
 void checkReferences(StaticContext env)
          Type-check references to this function
 UserFunction compile(StaticQueryContext env)
           
 void explain(Configuration config, PrintStream out)
          Produce diagnostic output showing the compiled and optimized expression tree for a function
 void fixupReferences(StaticContext env)
          Fix up references to this function
 SequenceType[] getArgumentTypes()
           
 int getColumnNumber()
          Return the column number
 int getConstructType()
          Get the type of construct.
 Executable getExecutable()
          Get the Executable (representing a complete stylesheet or query) of which this Container forms part
 String getFunctionDisplayName(NamePool pool)
           
 int getFunctionFingerprint()
           
 int getHostLanguage()
          Get the host language (XSLT, XQuery, XPath) used to implement the code in this container
 int getLineNumber()
          Get the line number of the instruction in the source stylesheet module.
 int getLineNumber(int locationId)
          Get the line number within the document or module containing a particular location
 LocationProvider getLocationProvider()
          Get the LocationProvider allowing location identifiers to be resolved.
 int getNameCode()
           
 NamespaceResolver getNamespaceResolver()
          Get the namespace context of the instruction.
 int getNumberOfArguments()
           
 int getObjectNameCode()
          Get a name identifying the object of the expression, for example a function name, template name, variable name, key name, element name, etc.
 UserFunctionParameter[] getParameterDefinitions()
           
 Iterator getProperties()
          Get an iterator over all the properties available.
 Object getProperty(String name)
          Get the value of a particular property of the instruction.
 String getPublicId()
          Return the public identifier for the current document event.
 SequenceType getResultType()
           
 StaticContext getStaticContext()
           
 String getSystemId()
          Get the system identifier (URI) of the source module containing the instruction.
 String getSystemId(int locationId)
          Get the URI of the document or module containing a particular location
 UserFunction getUserFunction()
          Get the callable compiled function contained within this XQueryFunction definition.
 boolean isMemoFunction()
           
 void registerReference(UserFunctionCall ufc)
           
 boolean replaceSubExpression(Expression original, Expression replacement)
          Replace one subexpression by a replacement subexpression
 void setExecutable(Executable exec)
           
 void setMemoFunction(boolean isMemoFunction)
           
 void setNameCode(int nameCode)
           
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

XQueryFunction

public XQueryFunction()
Method Detail

setNameCode

public void setNameCode(int nameCode)

getNameCode

public int getNameCode()

getFunctionDisplayName

public String getFunctionDisplayName(NamePool pool)

getFunctionFingerprint

public int getFunctionFingerprint()

getResultType

public SequenceType getResultType()

setExecutable

public void setExecutable(Executable exec)

getExecutable

public Executable getExecutable()
Description copied from interface: Container
Get the Executable (representing a complete stylesheet or query) of which this Container forms part

Specified by:
getExecutable in interface Container

getLocationProvider

public LocationProvider getLocationProvider()
Get the LocationProvider allowing location identifiers to be resolved.

Specified by:
getLocationProvider in interface Container

getStaticContext

public StaticContext getStaticContext()

getArgumentTypes

public SequenceType[] getArgumentTypes()

getParameterDefinitions

public UserFunctionParameter[] getParameterDefinitions()

getNumberOfArguments

public int getNumberOfArguments()

registerReference

public void registerReference(UserFunctionCall ufc)

setMemoFunction

public void setMemoFunction(boolean isMemoFunction)

isMemoFunction

public boolean isMemoFunction()

compile

public UserFunction compile(StaticQueryContext env)
                     throws StaticError
Throws:
StaticError

fixupReferences

public void fixupReferences(StaticContext env)
                     throws XPathException
Fix up references to this function

Throws:
XPathException

checkReferences

public void checkReferences(StaticContext env)
                     throws XPathException
Type-check references to this function

Throws:
XPathException

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

getUserFunction

public UserFunction getUserFunction()
Get the callable compiled function contained within this XQueryFunction definition.


getConstructType

public int getConstructType()
Get the type of construct. This will be a constant in class Location.

Specified by:
getConstructType in interface InstructionInfo

getObjectNameCode

public int getObjectNameCode()
Get a name identifying the object of the expression, for example a function name, template name, variable name, key name, element name, etc. This is used only where the name is known statically.

Specified by:
getObjectNameCode in interface InstructionInfo

getSystemId

public String getSystemId()
Get the system identifier (URI) of the source module containing the instruction. This will generally be an absolute URI. If the system identifier is not known, the method may return null. In some cases, for example where XML external entities are used, the correct system identifier is not always retained.

Specified by:
getSystemId in interface SourceLocator
Specified by:
getSystemId in interface InstructionInfo
Specified by:
getSystemId in interface Locator

getLineNumber

public int getLineNumber()
Get the line number of the instruction in the source stylesheet module. If this is not known, or if the instruction is an artificial one that does not relate to anything in the source code, the value returned may be -1.

Specified by:
getLineNumber in interface SourceLocator
Specified by:
getLineNumber in interface InstructionInfo
Specified by:
getLineNumber in interface Locator

getPublicId

public String getPublicId()
Return the public identifier for the current document event.

Specified by:
getPublicId in interface SourceLocator
Specified by:
getPublicId in interface Locator
Returns:
A string containing the public identifier, or null if none is available.
See Also:
getSystemId()

getColumnNumber

public int getColumnNumber()
Return the column number

Specified by:
getColumnNumber in interface SourceLocator
Specified by:
getColumnNumber in interface Locator
Returns:
The column number, or -1 if none is available.
See Also:
getLineNumber()

getSystemId

public String getSystemId(int locationId)
Description copied from interface: LocationProvider
Get the URI of the document or module containing a particular location

Specified by:
getSystemId in interface LocationProvider
Parameters:
locationId - identifier of the location in question (as passed down the Receiver pipeline)
Returns:
the URI of the document or module.

getLineNumber

public int getLineNumber(int locationId)
Description copied from interface: LocationProvider
Get the line number within the document or module containing a particular location

Specified by:
getLineNumber in interface LocationProvider
Parameters:
locationId - identifier of the location in question (as passed down the Receiver pipeline)
Returns:
the line number within the document or module.

getNamespaceResolver

public NamespaceResolver getNamespaceResolver()
Get the namespace context of the instruction. This will not always be available, in which case the method returns null.

Specified by:
getNamespaceResolver in interface InstructionInfo

getProperty

public Object getProperty(String name)
Get the value of a particular property of the instruction. Properties of XSLT instructions are generally known by the name of the stylesheet attribute that defines them.

Specified by:
getProperty in interface InstructionInfo
Parameters:
name - The name of the required property
Returns:
The value of the requested property, or null if the property is not available

getProperties

public Iterator getProperties()
Get an iterator over all the properties available. The values returned by the iterator will be of type String, and each string can be supplied as input to the getProperty() method to retrieve the value of the property.

Specified by:
getProperties in interface InstructionInfo

getHostLanguage

public int getHostLanguage()
Get the host language (XSLT, XQuery, XPath) used to implement the code in this container

Specified by:
getHostLanguage in interface Container
Returns:
typically Configuration.XSLT or Configuration.XQUERY

replaceSubExpression

public boolean replaceSubExpression(Expression original,
                                    Expression replacement)
Replace one subexpression by a replacement subexpression

Specified by:
replaceSubExpression in interface Container
Parameters:
original - the original subexpression
replacement - the replacement subexpression
Returns:
true if the original subexpression is found


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