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:
CanInline, 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, CanInline

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
 
Constructor Summary
TreeScanner()
           
 
Method Summary
 void apply(CallContext ctx)
          Call this Procedure using the explicit-CallContext-convention.
 NodePredicate getNodePredicate()
           
 Expression inline(ApplyExp exp, ExpWalker walker)
          Inline an application of this Procedure and return result.
 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, getSetter, getSourceLocation, match0, match1, match2, match3, match4, matchN, maxArgs, 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
Constructor Detail

TreeScanner

public TreeScanner()
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).

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

toString

public java.lang.String toString()
Overrides:
toString in class Procedure

inline

public Expression inline(ApplyExp exp,
                         ExpWalker walker)
Description copied from interface: CanInline
Inline an application of this Procedure and return result. Can return original expression.

Specified by:
inline in interface CanInline