public class XSLFunction extends StyleElement implements StylesheetComponent
StyleElement.OnFailure
ACTION_COMPILE, ACTION_FIXUP, ACTION_OPTIMIZE, ACTION_PROCESS_ATTRIBUTES, ACTION_TYPECHECK, ACTION_VALIDATE, actionsCompleted, defaultCollationName, defaultMode, defaultXPathNamespace, expandText, extensionNamespaces, reportingCircumstances, staticContext, validationError, version, YES_NO
NODE_LETTER
Constructor and Description |
---|
XSLFunction() |
Modifier and Type | Method and Description |
---|---|
void |
checkCompatibility(Component component)
Check the compatibility of this component with another component that it is overriding
|
void |
compileDeclaration(Compilation compilation,
ComponentDeclaration decl)
Compile the function definition to create an executable representation
The compileDeclaration() method has the side-effect of binding
all references to the function to the executable representation
(a UserFunction object)
|
void |
generateByteCode(Optimizer opt)
Generate byte code if appropriate
|
UserFunction |
getActor()
Get the corresponding Procedure object that results from the compilation of this
StylesheetProcedure
|
SequenceType[] |
getArgumentTypes()
Get the argument types
|
UserFunction |
getCompiledFunction()
Get the compiled function
|
int |
getNumberOfArguments()
Get the number of arguments declared by this function (that is, its arity).
|
StructuredQName |
getObjectName()
Get a name identifying the object of the expression, for example a function name, template name,
variable name, key name, element name, etc.
|
SequenceType |
getResultType()
Get the type of value returned by this function
|
SlotManager |
getSlotManager()
Get associated stack frame details.
|
SymbolicName.F |
getSymbolicName()
Get the symbolic name of the component, that is, the combination of the component kind and
the qualified name
|
Visibility |
getVisibility()
Get the visibility of the component.
|
void |
index(ComponentDeclaration decl,
PrincipalStylesheetModule top)
Method supplied by declaration elements to add themselves to a stylesheet-level index
|
boolean |
isDeclaration()
Ask whether this node is a declaration, that is, a permitted child of xsl:stylesheet
(including xsl:include and xsl:import).
|
boolean |
isOverrideExtensionFunction()
Is override-extension-function="yes"?.
|
protected boolean |
isPermittedChild(StyleElement child)
Specify that xsl:param is a permitted child
|
protected boolean |
mayContainParam()
Determine whether this type of element is allowed to contain an xsl:param element
|
protected boolean |
mayContainSequenceConstructor()
Determine whether this type of element is allowed to contain a template-body.
|
void |
optimize(ComponentDeclaration declaration)
Optimize the stylesheet construct
|
protected void |
prepareAttributes()
Set the attribute list for the element.
|
void |
setParameterDefinitions(UserFunction fn)
Set the definitions of the parameters in the compiled function, as an array.
|
void |
validate(ComponentDeclaration decl)
Check that the stylesheet element is valid.
|
allocateLocation, arrayToSequence, bindLocalVariable, bindVariable, checkEmpty, checkTopLevel, checkUnknownAttribute, compile, compileError, compileError, compileError, compileError, compileError, compileError, compileErrorInAttribute, compileSequenceConstructor, compileSequenceConstructor, compileWarning, compileWarning, compileWarning, fixupReferences, generateId, getAttributeValue, getBaseURI, getBindingInformation, getCompilation, getConfiguration, getContainingPackage, getContainingSlotManager, getDeclaredVisibility, getDefaultCollationName, getDefaultXPathNamespace, getNamespaceResolver, getPackageData, getPrincipalStylesheetModule, getProperties, getSchemaType, getStaticContext, getStaticContext, getTypeAnnotation, getUsedPackage, getWithParamInstructions, getXslOriginal, hasImplicitBinding, invalidAttribute, isExtensionAttributeAllowed, isExtensionNamespace, isInstruction, isNo, isSchemaAware, issueWarning, issueWarning, isTopLevel, isWithinDeclaredStreamableConstruct, isYes, makeAttributeValueTemplate, makeExpression, makeExpressionVisitor, makeQName, makeRetainedStaticContext, makeSequenceType, mapToSequence, markTailCalls, mayContainFallback, postValidate, processAllAttributes, processAttributes, processBooleanAttribute, processStandardAttributes, processVersionAttribute, reportAbsence, requireXslt40, seesAvuncularVariables, setCompilation, setInstructionLocation, setObjectName, setValidationError, substituteFor, typeCheck, typeCheck, validateChildren, validateSubtree, validateValidationAttribute
addAttribute, addNamespace, addNamespace, attributes, checkNotNamespaceSensitiveElement, copy, delete, fixupInsertedNamespaces, generateId, getAllNamespaces, getAttributeValue, getColumnNumber, getDeclaredNamespaces, getLineNumber, getNodeKind, getNodeName, getRoot, getSchemaType, getSystemId, getURIForPrefix, initialise, isId, isIdref, isIdRefNode, isInScopeNamespace, isNilled, iteratePrefixes, removeAttribute, removeNamespace, removeTypeAnnotation, rename, replaceStringValue, setAttributeInfo, setAttributes, setLocation, setNamespaceMap, setNilled, setNodeName, setSystemId, setTypeAnnotation
addChild, compact, getFirstChild, getLastChild, getNthChild, getNumberOfChildren, getRawSequenceNumber, getSequenceNumber, getUnicodeStringValue, hasChildNodes, insertChildren, insertChildrenAt, iterateChildren, removeChild, replaceChildrenAt, setChildren, setRawSequenceNumber
atomize, compareOrder, effectiveBooleanValue, equals, getDisplayName, getFingerprint, getLocalPart, getNamePool, getNextInDocument, getNextSibling, getParent, getPhysicalRoot, getPrefix, getPreviousInDocument, getPreviousSibling, getRawParent, getSiblingPosition, getSuccessorElement, getTreeInfo, getURI, hasFingerprint, hashCode, head, insertSiblings, isDeleted, iterateAxis, iterateAxis, newBuilder, replace, saveLocation, setRawParent, setSiblingPosition
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
asActiveSource, children, children, deliver, getGenre, getPublicId, isSameNodeInfo, isStreamed, toShortString
getLength, getStringValue, itemAt, iterate, reduce, subsequence
asIterable, concatenate, containsNode, materialize
makeRepeatable
public UserFunction getActor()
getActor
in interface StylesheetComponent
public boolean isDeclaration()
isDeclaration
in class StyleElement
protected void prepareAttributes()
StyleElement
prepareAttributes
in class StyleElement
public StructuredQName getObjectName()
getObjectName
in class StyleElement
protected boolean mayContainSequenceConstructor()
mayContainSequenceConstructor
in class StyleElement
protected boolean mayContainParam()
StyleElement
mayContainParam
in class StyleElement
protected boolean isPermittedChild(StyleElement child)
isPermittedChild
in class StyleElement
child
- the child that may or may not be permittedpublic Visibility getVisibility()
StyleElement
StyleElement.invalidAttribute(String, String)
if the value is invalid.getVisibility
in class StyleElement
Visibility.PRIVATE
if the visibility attribute is absent.public SymbolicName.F getSymbolicName()
StylesheetComponent
getSymbolicName
in interface StylesheetComponent
public void checkCompatibility(Component component)
StylesheetComponent
checkCompatibility
in interface StylesheetComponent
component
- the overridden componentpublic boolean isOverrideExtensionFunction()
public void index(ComponentDeclaration decl, PrincipalStylesheetModule top)
StyleElement
index
in class StyleElement
decl
- the Declaration being indexed. (This corresponds to the StyleElement object
except in cases where one module is imported several times with different precedence.)top
- represents the outermost XSLStylesheet or XSLPackage elementpublic void validate(ComponentDeclaration decl) throws XPathException
StyleElement
validate
in class StyleElement
decl
- the declaration to be validatedXPathException
- if any error is found during validationpublic void compileDeclaration(Compilation compilation, ComponentDeclaration decl) throws XPathException
compileDeclaration
in class StyleElement
compilation
- the compilation episodedecl
- the containing top-level declaration, for example xsl:function or xsl:templateXPathException
- if compilation failspublic void optimize(ComponentDeclaration declaration) throws XPathException
StylesheetComponent
optimize
in interface StylesheetComponent
declaration
- the combination of the source XSLT element defining the component, and the
module in which it appearsXPathException
- if an error is found at this stage (which shouldn't really happen)public void generateByteCode(Optimizer opt) throws XPathException
generateByteCode
in interface StylesheetComponent
opt
- the optimizerXPathException
- if bytecode generation failspublic SlotManager getSlotManager()
getSlotManager
in interface StylesheetComponent
public SequenceType getResultType()
public int getNumberOfArguments()
public void setParameterDefinitions(UserFunction fn)
fn
- the compiled object representing the user-written functionpublic SequenceType[] getArgumentTypes()
public UserFunction getCompiledFunction()
Copyright (c) 2004-2022 Saxonica Limited. All rights reserved.