gnu.kawa.xml
Class TreeScanner

java.lang.Object
  extended by gnu.mapping.PropertySet
      extended by gnu.mapping.Procedure
          extended by gnu.mapping.ProcedureN
              extended by gnu.mapping.MethodProc
                  extended by 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

Field Summary
 NodePredicate type
           
 
Fields inherited from class gnu.mapping.MethodProc
argTypes, NO_MATCH, NO_MATCH_AMBIGUOUS, NO_MATCH_BAD_TYPE, NO_MATCH_TOO_FEW_ARGS, NO_MATCH_TOO_MANY_ARGS
 
Fields inherited from class gnu.mapping.ProcedureN
noArgs
 
Fields inherited from class gnu.mapping.Procedure
compilerKey, validateApplyKey
 
Fields inherited from class gnu.mapping.PropertySet
nameKey
 
Method Summary
 void apply(CallContext ctx)
          Call this Procedure using the explicit-CallContext-convention.
 java.lang.String getDesc()
           
 NodePredicate getNodePredicate()
           
 int numArgs()
          Return minArgs()|(maxArgs<<12).
 void readExternal(java.io.ObjectInput in)
           
abstract  void scan(AbstractSequence seq, int ipos, PositionConsumer out)
           
 java.lang.String toString()
           
 void writeExternal(java.io.ObjectOutput out)
           
 
Methods inherited from class gnu.mapping.MethodProc
applyN, getParameterType, isApplicable, matchFailAsException, mostSpecific, mostSpecific, numParameters, resolveParameterTypes
 
Methods inherited from class gnu.mapping.ProcedureN
apply0, apply1, apply2, apply3, apply4
 
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 gnu.mapping.PropertySet
getName, getProperty, getSymbol, removeProperty, setName, setProperty, setProperty, setSymbol
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

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
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