com.icl.saxon.style
Class XSLGeneralVariable

java.lang.Object
  extended bycom.icl.saxon.om.AbstractNode
      extended bycom.icl.saxon.tree.NodeImpl
          extended bycom.icl.saxon.tree.ParentNodeImpl
              extended bycom.icl.saxon.tree.ElementImpl
                  extended bycom.icl.saxon.tree.ElementWithAttributes
                      extended bycom.icl.saxon.style.StyleElement
                          extended bycom.icl.saxon.style.XSLGeneralVariable
All Implemented Interfaces:
DOMLocator, org.w3c.dom.Element, org.xml.sax.Locator, org.w3c.dom.NamedNodeMap, org.w3c.dom.Node, NodeInfo, Source, SourceLocator
Direct Known Subclasses:
SAXONAssign, SAXONReturn, SQLColumn, XSLParam, XSLVariable, XSLWithParam

public abstract class XSLGeneralVariable
extends StyleElement

This class defines common behaviour across xsl:variable, xsl:param, and xsl:with-param


Field Summary
protected  boolean assignable
           
protected  boolean global
           
protected  Procedure procedure
           
protected  boolean redundant
           
protected  Expression select
           
protected  java.lang.String simpleText
           
protected  int variableFingerprint
           
 
Fields inherited from class com.icl.saxon.style.StyleElement
attributeSets, extensionNamespaces, REPORT_ALWAYS, REPORT_IF_INSTANTIATED, REPORT_UNLESS_FORWARDS_COMPATIBLE, reportingCircumstances, staticContext, validationError, version
 
Fields inherited from class com.icl.saxon.tree.ElementWithAttributes
attributeList, namespaceList
 
Fields inherited from class com.icl.saxon.tree.ElementImpl
nameCode, root, sequence
 
Fields inherited from class com.icl.saxon.tree.NodeImpl
emptyArray, index, parent
 
Fields inherited from class com.icl.saxon.om.AbstractNode
NODE_LETTER
 
Fields inherited from interface org.w3c.dom.Node
ATTRIBUTE_NODE, CDATA_SECTION_NODE, COMMENT_NODE, DOCUMENT_FRAGMENT_NODE, DOCUMENT_NODE, DOCUMENT_TYPE_NODE, ELEMENT_NODE, ENTITY_NODE, ENTITY_REFERENCE_NODE, NOTATION_NODE, PROCESSING_INSTRUCTION_NODE, TEXT_NODE
 
Fields inherited from interface com.icl.saxon.om.NodeInfo
ATTRIBUTE, COMMENT, ELEMENT, NAMESPACE, NODE, NONE, NUMBER_OF_TYPES, PI, ROOT, TEXT
 
Constructor Summary
XSLGeneralVariable()
           
 
Method Summary
 void checkDuplicateDeclaration()
          Check whether this declaration duplicates another one
 Procedure getOwningProcedure()
          Get the owning Procedure definition, if this is a local variable
 Procedure getProcedure()
          Get associated Procedure (for details of stack frame, if this is a global variable containing local variable declarations)
protected  Value getSelectValue(Context context)
          Get the value of the select expression if present or the content of the element otherwise
 int getVariableFingerprint()
          Get the fingerprint of the variable name
 java.lang.String getVariableName()
          Get the display name of the variable.
 boolean isAssignable()
          Test whether it is permitted to assign to the variable using the saxon:assign extension element.
 boolean isGlobal()
           
 boolean mayContainTemplateBody()
          Determine whether this type of element is allowed to contain a template-body
 void prepareAttributes()
          Set the attribute list for the element.
 void preprocess()
          Preprocess: this ensures space is available for local variables declared within this global variable
 void validate()
          Check that the element is valid.
 
Methods inherited from class com.icl.saxon.style.StyleElement
bindVariable, checkEmpty, checkNotTopLevel, checkTopLevel, checkUnknownAttribute, checkWithinTemplate, compileError, compileError, definesExcludedNamespace, definesExtensionElement, doesPostProcessing, fallbackProcessing, findAttributeSets, forwardsCompatibleModeIsEnabled, getContainingStyleSheet, getPrecedence, getPreparedStyleSheet, getPrincipalStyleSheet, getStandardNames, getStyleSheetFunction, getVariableBinding, getVariableNames, getVersion, handleSortKeys, isExcludedNamespace, isExtensionNamespace, isInstruction, isTopLevel, makeAttributeValueTemplate, makeExpression, makePattern, process, processAllAttributes, processAttributes, processAttributeSets, processChildren, processExcludedNamespaces, processExtensionElementAttribute, processVersionAttribute, reportAbsence, setValidationError, styleError, styleError, substituteFor, validateChildren, validateSubtree
 
Methods inherited from class com.icl.saxon.tree.ElementWithAttributes
addNamespaceNodes, copy, getAttribute, getAttributeList, getAttributeNode, getAttributeNodeNS, getAttributeNS, getAttributes, getAttributeValue, getAttributeValue, getAttributeValue, getLength, getNamedItem, getNamedItemNS, getNamespaceCodes, getPrefixForURI, getURICodeForPrefix, hasAttribute, hasAttributeNS, hasAttributes, initialise, item, outputNamespaceNodes, removeAttribute, removeAttributeNode, removeAttributeNS, removeNamedItem, removeNamedItemNS, setAttribute, setAttributeNode, setAttributeNodeNS, setAttributeNS, setNamedItem, setNamedItemNS, setNamespaceDeclarations
 
Methods inherited from class com.icl.saxon.tree.ElementImpl
addChild, compact, copy, copyStringValue, dropChildren, enumerateChildren, generateId, getBaseURI, getChildNodes, getDocumentRoot, getFirstChild, getLastChild, getLineNumber, getNameCode, getNodeType, getNodeValue, getNthChild, getSequenceNumber, getStringValue, getSystemId, hasChildNodes, makeNameCode, removeChild, renumberChildren, setLineNumber, setNameCode, setSystemId, useChildrenArray
 
Methods inherited from class com.icl.saxon.tree.NodeImpl
compareOrder, getDisplayName, getDocumentElement, getEnumeration, getFingerprint, getLocalName, getNamePool, getNextInDocument, getNextSibling, getOriginatingNode, getParent, getPrefix, getPreviousInDocument, getPreviousSibling, getURI, isSameNodeInfo, removeNode
 
Methods inherited from class com.icl.saxon.om.AbstractNode
appendChild, appendData, cloneNode, compareDocumentPosition, createAttribute, createAttributeNS, createCDATASection, createComment, createDocumentFragment, createElement, createElementNS, createEntityReference, createProcessingInstruction, createTextNode, deleteData, disallowUpdate, getColumnNumber, getData, getDoctype, getElementById, getElementsByTagName, getElementsByTagNameNS, getFeature, getImplementation, getName, getNamespaceURI, getNodeName, getOwnerDocument, getOwnerElement, getParentNode, getPublicId, getSchemaTypeInfo, getSpecified, getTagName, getTextContent, getUserData, getValue, getWholeText, importNode, insertBefore, insertData, isDefaultNamespace, isElementContentWhitespace, isEqualNode, isId, isSameNode, isSupported, lookupNamespaceURI, lookupPrefix, normalize, removeChild, replaceChild, replaceData, replaceWholeText, setData, setIdAttribute, setIdAttributeNode, setIdAttributeNS, setNodeValue, setPrefix, setTextContent, setUserData, setValue, splitText, substringData, supports
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.xml.sax.Locator
getColumnNumber, getLineNumber, getPublicId, getSystemId
 
Methods inherited from interface org.w3c.dom.Element
getElementsByTagName, getElementsByTagNameNS, getTagName
 
Methods inherited from interface org.w3c.dom.Node
appendChild, cloneNode, getChildNodes, getFirstChild, getLastChild, getLocalName, getNamespaceURI, getNextSibling, getNodeName, getNodeType, getNodeValue, getOwnerDocument, getParentNode, getPrefix, getPreviousSibling, hasChildNodes, insertBefore, isSupported, normalize, removeChild, replaceChild, setNodeValue, setPrefix
 

Field Detail

variableFingerprint

protected int variableFingerprint

select

protected Expression select

simpleText

protected java.lang.String simpleText

global

protected boolean global

procedure

protected Procedure procedure

assignable

protected boolean assignable

redundant

protected boolean redundant
Constructor Detail

XSLGeneralVariable

public XSLGeneralVariable()
Method Detail

mayContainTemplateBody

public boolean mayContainTemplateBody()
Determine whether this type of element is allowed to contain a template-body

Overrides:
mayContainTemplateBody in class StyleElement
Returns:
true: yes, it may contain a template-body

isGlobal

public boolean isGlobal()

isAssignable

public boolean isAssignable()
Test whether it is permitted to assign to the variable using the saxon:assign extension element. This will only be true if the extra attribute saxon:assignable="yes" is present.


getOwningProcedure

public Procedure getOwningProcedure()
                             throws TransformerConfigurationException
Get the owning Procedure definition, if this is a local variable

Throws:
TransformerConfigurationException

preprocess

public void preprocess()
                throws TransformerConfigurationException
Preprocess: this ensures space is available for local variables declared within this global variable

Overrides:
preprocess in class StyleElement
Throws:
TransformerConfigurationException

getVariableName

public java.lang.String getVariableName()
Get the display name of the variable.


getVariableFingerprint

public int getVariableFingerprint()
Get the fingerprint of the variable name


prepareAttributes

public void prepareAttributes()
                       throws TransformerConfigurationException
Description copied from class: StyleElement
Set the attribute list for the element. This is called to process the attributes (note the distinction from processAttributes in the superclass). Must be supplied in a subclass

Specified by:
prepareAttributes in class StyleElement
Throws:
TransformerConfigurationException

validate

public void validate()
              throws TransformerConfigurationException
Description copied from class: StyleElement
Check that the element is valid. This is called once for each element, after the entire tree has been built. As well as validation, it can perform first-time initialisation. The default implementation does nothing; it is normally overriden in subclasses.

Overrides:
validate in class StyleElement
Throws:
TransformerConfigurationException

checkDuplicateDeclaration

public void checkDuplicateDeclaration()
                               throws TransformerConfigurationException
Check whether this declaration duplicates another one

Throws:
TransformerConfigurationException

getSelectValue

protected Value getSelectValue(Context context)
                        throws TransformerException
Get the value of the select expression if present or the content of the element otherwise

Throws:
TransformerException

getProcedure

public Procedure getProcedure()
Get associated Procedure (for details of stack frame, if this is a global variable containing local variable declarations)