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 MethodHandleapplyToConsumerTSNodePredicatetype-
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 ObjectapplyToConsumerTS(Procedure proc, CallContext ctx)StringgetDesc()NodePredicategetNodePredicate()intnumArgs()ReturnminArgs()|(maxArgs<<12).voidreadExternal(ObjectInput in)abstract voidscan(AbstractSequence seq, int ipos, PositionConsumer out)StringtoString()voidwriteExternal(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:ProcedureReturnminArgs()|(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:
writeExternalin interfaceExternalizable- Throws:
IOException
-
readExternal
public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException
- Specified by:
readExternalin interfaceExternalizable- Throws:
IOExceptionClassNotFoundException
-
getDesc
public String getDesc()
-
-