Package net.sf.saxon.query
Class XQueryFunction
- java.lang.Object
-
- net.sf.saxon.query.XQueryFunction
-
- All Implemented Interfaces:
javax.xml.transform.SourceLocator,LocationProvider,SaxonLocator,Container,Declaration,InstructionInfo,org.xml.sax.Locator
public class XQueryFunction extends java.lang.Object implements InstructionInfo, Container, Declaration
-
-
Field Summary
Fields Modifier and Type Field Description (package private) java.util.Listarguments(package private) Expressionbody(package private) intcolumnNumber(package private) intlineNumber(package private) booleanmemoFunction(package private) NamespaceResolvernamespaceResolver(package private) java.util.Listreferences(package private) SequenceTyperesultType(package private) StaticContextstaticContext(package private) java.lang.StringsystemId
-
Constructor Summary
Constructors Constructor Description XQueryFunction()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidcheckReferences(StaticContext env)Type-check references to this functionUserFunctioncompile(StaticQueryContext env)voidexplain(Configuration config)Produce diagnostic output showing the compiled and optimized expression tree for a functionvoidfixupReferences(StaticContext env)Fix up references to this functionSequenceType[]getArgumentTypes()intgetColumnNumber()Return the column numberintgetConstructType()Get the type of construct.ExecutablegetExecutable()Get the Executable (representing a complete stylesheet or query) of which this Container forms partjava.lang.StringgetFunctionDisplayName(NamePool pool)intgetFunctionFingerprint()intgetHostLanguage()Get the host language (XSLT, XQuery, XPath) used to implement the code in this containerintgetLineNumber()Get the line number of the instruction in the source stylesheet module.intgetLineNumber(int locationId)Get the line number within the document or module containing a particular locationLocationProvidergetLocationProvider()Get the LocationProvider allowing location identifiers to be resolved.intgetNameCode()NamespaceResolvergetNamespaceResolver()Get the namespace context of the instruction.intgetNumberOfArguments()intgetObjectNameCode()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()java.util.IteratorgetProperties()Get an iterator over all the properties available.java.lang.ObjectgetProperty(java.lang.String name)Get the value of a particular property of the instruction.java.lang.StringgetPublicId()Return the public identifier for the current document event.SequenceTypegetResultType()StaticContextgetStaticContext()java.lang.StringgetSystemId()Get the system identifier (URI) of the source module containing the instruction.java.lang.StringgetSystemId(int locationId)Get the URI of the document or module containing a particular locationUserFunctiongetUserFunction()Get the callable compiled function contained within this XQueryFunction definition.booleanisMemoFunction()voidregisterReference(UserFunctionCall ufc)booleanreplaceSubExpression(Expression original, Expression replacement)Replace one subexpression by a replacement subexpressionvoidsetExecutable(Executable exec)voidsetMemoFunction(boolean isMemoFunction)voidsetNameCode(int nameCode)
-
-
-
Field Detail
-
arguments
java.util.List arguments
-
resultType
SequenceType resultType
-
body
Expression body
-
references
java.util.List references
-
lineNumber
int lineNumber
-
columnNumber
int columnNumber
-
systemId
java.lang.String systemId
-
memoFunction
boolean memoFunction
-
namespaceResolver
NamespaceResolver namespaceResolver
-
staticContext
StaticContext staticContext
-
-
Method Detail
-
setNameCode
public void setNameCode(int nameCode)
-
getNameCode
public int getNameCode()
-
getFunctionDisplayName
public java.lang.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:ContainerGet the Executable (representing a complete stylesheet or query) of which this Container forms part- Specified by:
getExecutablein interfaceContainer
-
getLocationProvider
public LocationProvider getLocationProvider()
Get the LocationProvider allowing location identifiers to be resolved.- Specified by:
getLocationProviderin interfaceContainer
-
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)
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 classLocation.- Specified by:
getConstructTypein interfaceInstructionInfo
-
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:
getObjectNameCodein interfaceInstructionInfo
-
getSystemId
public java.lang.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:
getSystemIdin interfaceInstructionInfo- Specified by:
getSystemIdin interfaceorg.xml.sax.Locator- Specified by:
getSystemIdin interfacejavax.xml.transform.SourceLocator
-
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:
getLineNumberin interfaceInstructionInfo- Specified by:
getLineNumberin interfaceorg.xml.sax.Locator- Specified by:
getLineNumberin interfacejavax.xml.transform.SourceLocator
-
getPublicId
public java.lang.String getPublicId()
Return the public identifier for the current document event.- Specified by:
getPublicIdin interfaceorg.xml.sax.Locator- Specified by:
getPublicIdin interfacejavax.xml.transform.SourceLocator- 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:
getColumnNumberin interfaceorg.xml.sax.Locator- Specified by:
getColumnNumberin interfacejavax.xml.transform.SourceLocator- Returns:
- The column number, or -1 if none is available.
- See Also:
getLineNumber()
-
getSystemId
public java.lang.String getSystemId(int locationId)
Description copied from interface:LocationProviderGet the URI of the document or module containing a particular location- Specified by:
getSystemIdin interfaceLocationProvider- 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:LocationProviderGet the line number within the document or module containing a particular location- Specified by:
getLineNumberin interfaceLocationProvider- 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:
getNamespaceResolverin interfaceInstructionInfo
-
getProperty
public java.lang.Object getProperty(java.lang.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:
getPropertyin interfaceInstructionInfo- 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 java.util.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:
getPropertiesin interfaceInstructionInfo
-
getHostLanguage
public int getHostLanguage()
Get the host language (XSLT, XQuery, XPath) used to implement the code in this container- Specified by:
getHostLanguagein interfaceContainer- Returns:
- typically
Configuration.XSLTorConfiguration.XQUERY
-
replaceSubExpression
public boolean replaceSubExpression(Expression original, Expression replacement)
Replace one subexpression by a replacement subexpression- Specified by:
replaceSubExpressionin interfaceContainer- Parameters:
original- the original subexpressionreplacement- the replacement subexpression- Returns:
- true if the original subexpression is found
-
-