|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object net.sf.saxon.expr.Expression net.sf.saxon.expr.instruct.Instruction
public abstract class Instruction
Abstract superclass for all instructions in the compiled stylesheet.
This represents a compiled instruction, and as such, the minimum information is
retained from the original stylesheet.
Note: this class implements SourceLocator: that is, it can identify where in the stylesheet
the source instruction was located.
Field Summary |
---|
Fields inherited from class net.sf.saxon.expr.Expression |
---|
EFFECTIVE_BOOLEAN_VALUE, EVALUATE_METHOD, EVENT_FEED_METHOD, ITEM_FEED_METHOD, ITERATE_METHOD, locationId, MAX_SEQUENCE_LENGTH, MAX_STRING_LENGTH, PROCESS_METHOD, PUSH_SELECTION, staticProperties, UNBOUNDED_LOWER, UNBOUNDED_UPPER, WATCH_METHOD |
Constructor Summary | |
---|---|
Instruction()
Constructor |
Method Summary | |
---|---|
static ParameterSet |
assembleParams(XPathContext context,
WithParam[] actualParams)
Assemble a ParameterSet. |
static ParameterSet |
assembleTunnelParams(XPathContext context,
WithParam[] actualParams)
Assemble a ParameterSet. |
int |
computeCardinality()
Get the cardinality of the sequence returned by evaluating this instruction |
int |
computeSpecialProperties()
Get the static properties of this expression (other than its type). |
boolean |
createsNewNodes()
Determine whether this instruction creates new nodes. |
protected static XPathException |
dynamicError(SourceLocator loc,
XPathException error,
XPathContext context)
Construct an exception with diagnostic information. |
CharSequence |
evaluateAsString(XPathContext context)
Evaluate an expression as a String. |
Item |
evaluateItem(XPathContext context)
Evaluate an expression as a single item. |
int |
getConstructType()
Get the type of this expression for use in tracing and diagnostics |
String |
getExpressionName()
Get a name identifying the kind of expression, in terms meaningful to a user. |
int |
getImplementationMethod()
An implementation of Expression must provide at least one of the methods evaluateItem(), iterate(), or process(). |
String |
getInstructionName()
Get a name identifying the kind of instruction, in terms meaningful to a user. |
int |
getInstructionNameCode()
Get the namecode of the instruction for use in diagnostics |
ItemType |
getItemType(TypeHierarchy th)
Get the item type of the items returned by evaluating this instruction |
protected SequenceIterator<? extends Item> |
getIteratorFromProcessMethod(XPathContext context)
Helper method to construct an iterator over the results of the expression when all that the expression itself offers is a process() method. |
SourceLocator |
getSourceLocator()
Get a SourceLocator identifying the location of this instruction |
boolean |
isXSLT()
Establish whether this is an XSLT instruction or an XQuery instruction (used to produce appropriate diagnostics) |
SequenceIterator<? extends Item> |
iterate(XPathContext context)
Return an Iterator to iterate over the values of a sequence. |
void |
process(XPathContext context)
Process the instruction, without returning any tail calls |
abstract TailCall |
processLeavingTail(XPathContext context)
ProcessLeavingTail: called to do the real work of this instruction. |
Expression |
promote(PromotionOffer offer,
Expression parent)
Offer promotion for this subexpression. |
protected void |
promoteInst(PromotionOffer offer)
Handle promotion offers, that is, non-local tree rewrites. |
abstract Expression |
simplify(ExpressionVisitor visitor)
Simplify an expression. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Methods inherited from interface javax.xml.transform.SourceLocator |
---|
getColumnNumber, getLineNumber, getPublicId, getSystemId |
Constructor Detail |
---|
public Instruction()
Method Detail |
---|
public int getImplementationMethod()
getImplementationMethod
in class Expression
Expression.ITERATE_METHOD
or Expression.EVALUATE_METHOD
or
Expression.PROCESS_METHOD
public int getInstructionNameCode()
public String getInstructionName()
public String getExpressionName()
getExpressionName
in class Expression
public ItemType getItemType(TypeHierarchy th)
getItemType
in class Expression
th
- the type hierarchy cache
public int computeCardinality()
computeCardinality
in class Expression
public abstract TailCall processLeavingTail(XPathContext context) throws XPathException
processLeavingTail
in interface TailCallReturner
context
- The dynamic context of the transformation, giving access to the current node,
the current variables, etc.
XPathException
- if a dynamic error occurs during the evaluation
of the instructionpublic void process(XPathContext context) throws XPathException
process
in class Expression
context
- The dynamic context, giving access to the current node,
the current variables, etc.
XPathException
- if a dynamic error occurspublic SourceLocator getSourceLocator()
protected static XPathException dynamicError(SourceLocator loc, XPathException error, XPathContext context)
loc
- the location of the errorerror
- The exception containing information about the errorcontext
- The controller of the transformation
public static ParameterSet assembleParams(XPathContext context, WithParam[] actualParams) throws XPathException
context
- the XPath dynamic contextactualParams
- the set of with-param parameters that specify tunnel="no"
XPathException
- if an error occurs evaluating one of the
parameterspublic static ParameterSet assembleTunnelParams(XPathContext context, WithParam[] actualParams) throws XPathException
context
- the XPath dynamic contextactualParams
- the set of with-param parameters that specify tunnel="yes"
XPathException
- if an error occurs evaluating one of the
tunnel parameterspublic abstract Expression simplify(ExpressionVisitor visitor) throws XPathException
simplify
in class Expression
visitor
- an expression visitor
XPathException
- if an error is discovered during expression
rewritingpublic int computeSpecialProperties()
computeSpecialProperties
in class Expression
public boolean createsNewNodes()
protected void promoteInst(PromotionOffer offer) throws XPathException
offer
- The type of rewrite being offered
XPathException
- if an error occurspublic Expression promote(PromotionOffer offer, Expression parent) throws XPathException
promote
in class Expression
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 expressionparent
- the parent of the subexpression
XPathException
- if any error is detectedpublic Item evaluateItem(XPathContext context) throws XPathException
evaluateItem
in class Expression
context
- The context in which the expression is to be evaluated
XPathException
- if any dynamic error occurs evaluating the
expressionpublic SequenceIterator<? extends Item> iterate(XPathContext context) throws XPathException
iterate
in class Expression
context
- supplies the context for evaluation
XPathException
- if any dynamic error occurs evaluating the
expressionprotected final SequenceIterator<? extends Item> getIteratorFromProcessMethod(XPathContext context) throws XPathException
context
- the dynamic evaluation context
XPathException
- if a dynamic error occurspublic final CharSequence evaluateAsString(XPathContext context) throws XPathException
evaluateAsString
in class Expression
context
- The context in which the expression is to be evaluated
XPathException
- if any dynamic error occurs evaluating the
expression
ClassCastException
- if the result type of the
expression is not xs:string?public int getConstructType()
getConstructType
in interface InstructionInfo
getConstructType
in class Expression
Location
public boolean isXSLT()
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |