net.sf.saxon.instruct
Class ProcessingInstruction
- SourceLocator, EvaluableItem, InstructionInfoProvider, SequenceIterable, Serializable, SourceLocator, TailCallReturner
public class ProcessingInstruction
An xsl:processing-instruction element in the stylesheet, or a processing-instruction
constructor in a query
checkContent , computeCardinality , computeSpecialProperties , createsNewNodes , evaluateItem , evaluateNameCode , expandChildren , getSelect , iterate , iterateSubExpressions , localTypeCheck , optimize , promoteInst , replaceSubExpression , setSelect , simplify , typeCheck |
assembleParams , assembleTunnelParams , computeCardinality , computeSpecialProperties , createsNewNodes , dynamicError , evaluateAsString , evaluateItem , getImplementationMethod , getInstructionInfo , getInstructionNameCode , getItemType , getSourceLocator , isXSLT , iterate , process , processLeavingTail , promote , promoteInst , simplify |
addToPathMap , adoptChildExpression , checkPermittedContents , computeCardinality , computeDependencies , computeSpecialProperties , computeStaticProperties , copy , display , doPromotion , dynamicError , effectiveBooleanValue , evaluateAsString , evaluateItem , explain , explain , findParentOf , getCardinality , getColumnNumber , getConstructType , getContainer , getDependencies , getExecutable , getHostLanguage , getImplementationMethod , getInstructionInfo , getIntrinsicDependencies , getItemType , getLineNumber , getLocationId , getLocationProvider , getPublicId , getSlotsUsed , getSpecialProperties , getSystemId , hasLoopingSubexpression , implementsStaticTypeCheck , iterate , iterateEvents , iterateSubExpressions , markTailFunctionCalls , optimize , process , promote , replaceSubExpression , resetLocalStaticProperties , setContainer , setFiltered , setFlattened , setLocationId , simplify , staticTypeCheck , suppressValidation , toString , typeCheck , typeError |
ProcessingInstruction
public ProcessingInstruction(Expression name)
Create an xsl:processing-instruction instruction
name
- the expression used to compute the name of the generated
processing-instruction
copy
public Expression copy()
Copy an expression. This makes a deep copy.
- copy in interface Expression
- the copy of the original expression
evaluateNameCode
public int evaluateNameCode(XPathContext context)
throws XPathException
Run-time method to compute the name of the node being constructed. This is overridden
for nodes that have a name. The default implementation returns -1, which is suitable for
unnamed nodes such as comments
- evaluateNameCode in interface SimpleNodeConstructor
context
- the XPath dynamic evaluation context
- the name pool nameCode identifying the name of the constructed node
explain
public void explain(ExpressionPresenter out)
Diagnostic print of expression structure. The abstract expression tree
is written to the supplied output destination.
- explain in interface Expression
getCardinality
public int getCardinality()
Determine the static cardinality of the expression. This establishes how many items
there will be in the result of the expression, at compile time (i.e., without
actually evaluating the result.
- getCardinality in interface Expression
- one of the values Cardinality.ONE_OR_MORE,
Cardinality.ZERO_OR_MORE, Cardinality.EXACTLY_ONE,
Cardinality.ZERO_OR_ONE, Cardinality.EMPTY. This default
implementation returns ZERO_OR_MORE (which effectively gives no
information).
getDependencies
public int getDependencies()
Determine which aspects of the context the expression depends on. The result is
a bitwise-or'ed value composed from constants such as XPathContext.VARIABLES and
XPathContext.CURRENT_NODE. The default implementation combines the intrinsic
dependencies of this expression with the dependencies of the subexpressions,
computed recursively. This is overridden for expressions such as FilterExpression
where a subexpression's dependencies are not necessarily inherited by the parent
expression.
- getDependencies in interface Expression
- a set of bit-significant flags identifying the dependencies of
the expression
getInstructionNameCode
public int getInstructionNameCode()
Get the name of this instruction for diagnostic and tracing purposes
- getInstructionNameCode in interface Instruction
- the string "xsl:processing-instruction"
getItemType
public ItemType getItemType(TypeHierarchy th)
Determine the data type of the expression, if possible. All expression return
sequences, in general; this method determines the type of the items within the
sequence, assuming that (a) this is known in advance, and (b) it is the same for
all items in the sequence.
This method should always return a result, though it may be the best approximation
that is available at the time.
- getItemType in interface Instruction
th
- the type hierarchy cache
- a value such as Type.STRING, Type.BOOLEAN, Type.NUMBER,
Type.NODE, or Type.ITEM (meaning not known at compile time)
getNameExpression
public Expression getNameExpression()
Get the expression that defines the processing instruction name
- the expression that defines the processing instruction name
iterateSubExpressions
public Iterator iterateSubExpressions()
Get the immediate sub-expressions of this expression. Default implementation
returns a zero-length array, appropriate for an expression that has no
sub-expressions.
- iterateSubExpressions in interface SimpleNodeConstructor
- an iterator containing the sub-expressions of this expression
promoteInst
protected void promoteInst(PromotionOffer offer)
throws XPathException
Offer promotion for subexpressions. The offer will be accepted if the subexpression
is not dependent on the factors (e.g. the context item) identified in the PromotionOffer.
By default the offer is not accepted - this is appropriate in the case of simple expressions
such as constant values and variable references where promotion would give no performance
advantage. This method is always called at compile time.
- promoteInst in interface SimpleNodeConstructor
offer
- details of the offer, for example the offer to move
expressions that don't depend on the context to an outer level in
the containing expression
replaceSubExpression
public boolean replaceSubExpression(Expression original,
Expression replacement)
Replace one subexpression by a replacement subexpression
- replaceSubExpression in interface SimpleNodeConstructor
original
- the original subexpressionreplacement
- the replacement subexpression
- true if the original subexpression is found