org.cdlib.xtf.saxonExt
Class ElementWithContent

Object
  extended by NodeImpl
      extended by ElementImpl
          extended by ElementWithAttributes
              extended by StyleElement
                  extended by ExtensionInstruction
                      extended by ElementWithContent
All Implemented Interfaces:
Source, SourceLocator, LocationProvider, SaxonLocator, Container, FingerprintedNode, Item, NodeInfo, ValueRepresentation, InstructionInfo, Locator
Direct Known Subclasses:
PipeFileElement, PipeFopElement, PipeRequestElement, SendElement

public abstract class ElementWithContent
extends ExtensionInstruction

Base class that automates much of the tedious Saxon housekeeping for an extension element that supports arbitrary content.

Author:
Martin Haye

Field Summary
protected  Map<String,Expression> attribs
           
protected  int sequence
           
 
Fields inherited from class StyleElement
defaultCollationName, defaultXPathNamespace, extensionNamespaces, REPORT_ALWAYS, REPORT_IF_INSTANTIATED, REPORT_UNLESS_FALLBACK_AVAILABLE, REPORT_UNLESS_FORWARDS_COMPATIBLE, reportingCircumstances, staticContext, validationError, version
 
Fields inherited from class ElementWithAttributes
attributeList, namespaceList
 
Fields inherited from class ElementImpl
nameCode, root
 
Fields inherited from class NodeImpl
index, NODE_LETTER, parent
 
Fields inherited from interface NodeInfo
ALL_NAMESPACES, EMPTY_NAMESPACE_LIST, IS_DTD_TYPE, IS_NILLED, LOCAL_NAMESPACES, NO_NAMESPACES
 
Fields inherited from interface ValueRepresentation
EMPTY_VALUE_ARRAY
 
Constructor Summary
ElementWithContent()
           
 
Method Summary
 void addChild(NodeImpl arg0, int arg1)
           
 void compact(int arg0)
           
protected  Expression compileContent(Executable exec)
          Call during compile() to get the content expression.
 AxisIterator enumerateChildren(NodeTest arg0)
           
 NodeInfo getFirstChild()
           
 NodeInfo getLastChild()
           
protected  NodeImpl getNthChild(int arg0)
           
protected  long getSequenceNumber()
           
 String getStringValue()
           
 CharSequence getStringValueCS()
           
 boolean hasChildNodes()
           
 boolean mayContainSequenceConstructor()
          Determine whether this type of element is allowed to contain a template-body
protected  void parseAttributes(String[] mandatoryAtts, String[] optionalAtts)
          Parse mandatory and optional attributes during prepareAttributes() call.
abstract  void prepareAttributes()
          Derived classes need to come up with their mandatory and optional attributes and call parseAttributes() above.
 void useChildrenArray(NodeImpl[] arg0)
           
 
Methods inherited from class ExtensionInstruction
isInstruction, mayContainFallback, validate
 
Methods inherited from class StyleElement
allocateLocationId, allocatePatternSlots, allocateSlots, allocateSlots, backwardsCompatibleModeIsEnabled, bindVariable, checkEmpty, checkSortComesFirst, checkTopLevel, checkUnknownAttribute, checkWithinTemplate, compile, compileError, compileError, compileError, compileSequenceConstructor, compileWarning, definesExcludedNamespace, definesExtensionElement, fallbackProcessing, fixupReferences, forwardsCompatibleModeIsEnabled, getAttributeSets, getAttributeValue, getCommonChildItemType, getConstructType, getContainingSlotManager, getContainingStylesheet, getDefaultCollationName, getDefaultXPathNamespace, getExecutable, getHostLanguage, getLastChildInstruction, getLineNumber, getLineNumber, getLocationProvider, getNamespaceResolver, getObjectFingerprint, getObjectNameCode, getPrecedence, getPreparedStylesheet, getPrincipalStylesheet, getProperties, getProperty, getReturnedItemType, getSchemaType, getStaticContext, getStylesheetFunction, getSystemId, getTargetNamePool, getTypeAnnotation, getVersion, getWithParamInstructions, isExcludedNamespace, isExplaining, isExtensionNamespace, isPermittedChild, issueWarning, issueWarning, isTopLevel, makeAttributeValueTemplate, makeExpression, makeNameCode, makeNamespaceContext, makePattern, makeSequenceType, makeSortKeys, makeTraceInstruction, markTailCalls, postValidate, processAllAttributes, processAttributes, processDefaultCollationAttribute, processDefaultXPathNamespaceAttribute, processExcludedNamespaces, processExtensionElementAttribute, processVersionAttribute, replaceSubExpression, reportAbsence, setLineNumber, setObjectNameCode, setValidationError, substituteFor, typeCheck, typeCheck, undeclaredNamespaceError, validateChildren, validateSubtree
 
Methods inherited from class ElementWithAttributes
copy, getAttributeList, getAttributeValue, getDeclaredNamespaces, getInScopeNamespaceCodes, getPrefixForURI, getURICodeForPrefix, getURIForPrefix, initialise, iteratePrefixes, sendNamespaceDeclarations, setNamespaceDeclarations
 
Methods inherited from class ElementImpl
generateId, getBaseURI, getDocumentRoot, getNameCode, getNodeKind, getRoot, getSystemId, setNameCode, setSystemId
 
Methods inherited from class NodeImpl
atomize, compareOrder, equals, getColumnNumber, getConfiguration, getDisplayName, getDocumentNumber, getFingerprint, getLocalPart, getNamePool, getNextInDocument, getNextSibling, getParent, getPrefix, getPreviousInDocument, getPreviousSibling, getPublicId, getTypeAnnotation, getTypedValue, getURI, hashCode, isSameNodeInfo, iterateAxis, iterateAxis
 
Methods inherited from class Object
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface InstructionInfo
getSystemId
 
Methods inherited from interface Locator
getColumnNumber, getPublicId
 
Methods inherited from interface SourceLocator
getColumnNumber, getPublicId
 

Field Detail

attribs

protected Map<String,Expression> attribs

sequence

protected int sequence
Constructor Detail

ElementWithContent

public ElementWithContent()
Method Detail

parseAttributes

protected void parseAttributes(String[] mandatoryAtts,
                               String[] optionalAtts)
                        throws XPathException
Parse mandatory and optional attributes during prepareAttributes() call.

Throws:
XPathException

prepareAttributes

public abstract void prepareAttributes()
                                throws XPathException
Derived classes need to come up with their mandatory and optional attributes and call parseAttributes() above.

Specified by:
prepareAttributes in class StyleElement
Throws:
XPathException

compileContent

protected Expression compileContent(Executable exec)
                             throws XPathException
Call during compile() to get the content expression.

Throws:
XPathException

mayContainSequenceConstructor

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

Overrides:
mayContainSequenceConstructor in class StyleElement

getSequenceNumber

protected final long getSequenceNumber()
Overrides:
getSequenceNumber in class NodeImpl

hasChildNodes

public final boolean hasChildNodes()
Specified by:
hasChildNodes in interface NodeInfo
Overrides:
hasChildNodes in class NodeImpl

enumerateChildren

public final AxisIterator enumerateChildren(NodeTest arg0)

getFirstChild

public final NodeInfo getFirstChild()
Overrides:
getFirstChild in class NodeImpl

getLastChild

public final NodeInfo getLastChild()
Overrides:
getLastChild in class NodeImpl

getNthChild

protected final NodeImpl getNthChild(int arg0)

getStringValue

public String getStringValue()

getStringValueCS

public CharSequence getStringValueCS()
Specified by:
getStringValueCS in interface Item
Specified by:
getStringValueCS in interface ValueRepresentation
Overrides:
getStringValueCS in class NodeImpl

useChildrenArray

public void useChildrenArray(NodeImpl[] arg0)

addChild

public void addChild(NodeImpl arg0,
                     int arg1)

compact

public void compact(int arg0)