gnu.kawa.xml
Class TreeScanner
java.lang.Object
gnu.mapping.PropertySet
gnu.mapping.Procedure
gnu.mapping.ProcedureN
gnu.mapping.MethodProc
gnu.kawa.xml.TreeScanner
- All Implemented Interfaces:
- Named, java.io.Externalizable, java.io.Serializable
- Direct Known Subclasses:
- AncestorAxis, AncestorOrSelfAxis, AttributeAxis, ChildAxis, DescendantAxis, DescendantOrSelfAxis, FollowingAxis, FollowingSiblingAxis, ParentAxis, PrecedingAxis, PrecedingSiblingAxis, SelfAxis
public abstract class TreeScanner
- extends MethodProc
- implements java.io.Externalizable
Abstract class that scans part of a node tree.
Takes a node argument, and writes matching "relative" nodes
out to a PositionConsumer as a sequence of position pairs.
This is uses to implement "path expressions" as in XPath/XSLT/XQuery.
For example, the ChildAxis sub-class writes out all child nodes
of the argument that match the 'type' NodePredicate.
- See Also:
- Serialized Form
Methods inherited from class gnu.mapping.Procedure |
apply, check0, check1, check2, check3, check4, checkArgCount, checkN, getReturnType, getSetter, getSourceLocation, isSideEffectFree, match0, match1, match2, match3, match4, matchN, maxArgs, maxArgs, minArgs, minArgs, set0, set1, setN, setSetter, setSourceLocation |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
type
public NodePredicate type
getNodePredicate
public NodePredicate getNodePredicate()
scan
public abstract void scan(AbstractSequence seq,
int ipos,
PositionConsumer out)
numArgs
public int numArgs()
- Description copied from class:
Procedure
- Return
minArgs()|(maxArgs<<12)
.
We use a single virtual function to reduce the number of methods
in the system, as well as the number of virtual method table entries.
We shift by 12 so the number can normally be represented using a
sipush instruction, without requiring a constant pool entry.
- Overrides:
numArgs
in class Procedure
apply
public void apply(CallContext ctx)
throws java.lang.Throwable
- Description copied from class:
Procedure
- Call this Procedure using the explicit-CallContext-convention.
The input arguments are (by default) in stack.args;
the result is written to ctx.consumer.
- Overrides:
apply
in class Procedure
- Throws:
java.lang.Throwable
writeExternal
public void writeExternal(java.io.ObjectOutput out)
throws java.io.IOException
- Specified by:
writeExternal
in interface java.io.Externalizable
- Throws:
java.io.IOException
readExternal
public void readExternal(java.io.ObjectInput in)
throws java.io.IOException,
java.lang.ClassNotFoundException
- Specified by:
readExternal
in interface java.io.Externalizable
- Throws:
java.io.IOException
java.lang.ClassNotFoundException
getDesc
public java.lang.String getDesc()
toString
public java.lang.String toString()
- Overrides:
toString
in class Procedure