Package 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
,Externalizable
,Serializable
- Direct Known Subclasses:
AncestorAxis
,AncestorOrSelfAxis
,AttributeAxis
,ChildAxis
,DescendantAxis
,DescendantOrSelfAxis
,FollowingAxis
,FollowingSiblingAxis
,ParentAxis
,PrecedingAxis
,PrecedingSiblingAxis
,SelfAxis
public abstract class TreeScanner extends MethodProc implements 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
-
-
Field Summary
Fields Modifier and Type Field Description static MethodHandle
applyToConsumerTS
NodePredicate
type
-
Fields inherited from class gnu.mapping.MethodProc
applyToConsumerDefaultMP, argTypes, NO_MATCH, NO_MATCH_AMBIGUOUS, NO_MATCH_BAD_TYPE, NO_MATCH_GUARD_FALSE, NO_MATCH_TOO_FEW_ARGS, NO_MATCH_TOO_MANY_ARGS, NO_MATCH_UNUSED_KEYWORD, THROW_ON_EXCEPTION
-
Fields inherited from class gnu.mapping.ProcedureN
applyToObject, noArgs
-
Fields inherited from class gnu.mapping.Procedure
applyMethodType, applyToConsumerDefault, applyToConsumerMethod, applyToObjectDefault, applyToObjectMethod, compilerKey, compilerXKey, inlineIfConstantSymbol, validateApplyKey, validateXApplyKey
-
Fields inherited from class gnu.mapping.PropertySet
nameKey
-
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description static Object
applyToConsumerTS(Procedure proc, CallContext ctx)
String
getDesc()
NodePredicate
getNodePredicate()
int
numArgs()
ReturnminArgs()|(maxArgs<<12)
.void
readExternal(ObjectInput in)
abstract void
scan(AbstractSequence seq, int ipos, PositionConsumer out)
String
toString()
void
writeExternal(ObjectOutput out)
-
Methods inherited from class gnu.mapping.MethodProc
applyToConsumerDefaultMP, getParameterType, isApplicable, matchFailAsException, mostSpecific, numParameters, overrideEquivalent, resolveParameterTypes
-
Methods inherited from class gnu.mapping.ProcedureN
applyToObject
-
Methods inherited from class gnu.mapping.Procedure
apply0, apply1, apply2, apply3, apply4, applyL, applyN, applyToConsumerDefault, applyToObjectDefault, checkArgCount, checkBadCode, getApplyMethod, getApplyToConsumerMethod, getApplyToObjectMethod, getReturnType, getSetter, getSourceLocation, isSideEffectFree, lookupApplyHandle, maxArgs, maxArgs, minArgs, minArgs, set0, set1, setN, setSetter, setSourceLocation
-
Methods inherited from class gnu.mapping.PropertySet
getName, getProperty, getSymbol, removeProperty, setName, setProperty, setProperty, setSymbol
-
-
-
-
Field Detail
-
applyToConsumerTS
public static final MethodHandle applyToConsumerTS
-
type
public NodePredicate type
-
-
Method Detail
-
getNodePredicate
public NodePredicate getNodePredicate()
-
scan
public abstract void scan(AbstractSequence seq, int ipos, PositionConsumer out)
-
numArgs
public int numArgs()
Description copied from class:Procedure
ReturnminArgs()|(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.
-
applyToConsumerTS
public static Object applyToConsumerTS(Procedure proc, CallContext ctx) throws Throwable
- Throws:
Throwable
-
writeExternal
public void writeExternal(ObjectOutput out) throws IOException
- Specified by:
writeExternal
in interfaceExternalizable
- Throws:
IOException
-
readExternal
public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException
- Specified by:
readExternal
in interfaceExternalizable
- Throws:
IOException
ClassNotFoundException
-
getDesc
public String getDesc()
-
-