org.apache.xpath.axes
Class WalkerFactory

java.lang.Object
  |
  +--org.apache.xpath.axes.WalkerFactory

public class WalkerFactory
extends java.lang.Object

This class is both a factory for XPath location path expressions, which are built from the opcode map output, and an analysis engine for the location path expressions in order to provide optimization hints.


Field Summary
static int BIT_ANCESTOR
          Bit is on if any of the walkers contain an ancestor step.
static int BIT_ANCESTOR_OR_SELF
          Bit is on if any of the walkers contain an ancestor-or-self step.
static int BIT_ANY_DESCENDANT_FROM_ROOT
          Found "//foo" pattern
static int BIT_ATTRIBUTE
          Bit is on if any of the walkers contain an attribute step.
static int BIT_BACKWARDS_SELF
          Bit is on if any of the walkers can go backwards in document order from the context node.
static int BIT_CHILD
          Bit is on if any of the walkers contain a child step.
static int BIT_DESCENDANT
          Bit is on if any of the walkers contain a descendant step.
static int BIT_DESCENDANT_OR_SELF
          Bit is on if any of the walkers contain a descendant-or-self step.
static int BIT_FILTER
          Bit is on if any of the walkers contain a filter (i.e.
static int BIT_FOLLOWING
          Bit is on if any of the walkers contain a following step.
static int BIT_FOLLOWING_SIBLING
          Bit is on if any of the walkers contain a following-sibiling step.
static int BIT_MATCH_PATTERN
          Bit is on if the expression is a match pattern.
static int BIT_NAMESPACE
          Bit is on if any of the walkers contain a namespace step.
static int BIT_NODETEST_ANY
          Bit is on if any of the walkers contain an node() test.
static int BIT_PARENT
          Bit is on if any of the walkers contain a parent step.
static int BIT_PRECEDING
          Bit is on if any of the walkers contain a preceding step.
static int BIT_PRECEDING_SIBLING
          Bit is on if any of the walkers contain a preceding-sibling step.
static int BIT_PREDICATE
          Bit is on if the expression contains a top-level predicate.
static int BIT_ROOT
          Bit is on if any of the walkers contain a root step.
static int BIT_SELF
          Bit is on if any of the walkers contain a self step.
static int BITMASK_TRAVERSES_OUTSIDE_SUBTREE
          If any of these bits are on, the expression may likely traverse outside the given subtree.
static int BITS_COUNT
          First 8 bits are the number of top-level location steps.
static int BITS_RESERVED
          4 bits are reserved for future use.
 
Constructor Summary
WalkerFactory()
           
 
Method Summary
static LocPathIterator newLocPathIterator(Compiler compiler, int opPos)
          Create a new LocPathIterator iterator.
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

BITS_COUNT

public static final int BITS_COUNT
First 8 bits are the number of top-level location steps. Hopefully there will never be more that 255 location steps!!!

BITS_RESERVED

public static final int BITS_RESERVED
4 bits are reserved for future use.

BIT_PREDICATE

public static final int BIT_PREDICATE
Bit is on if the expression contains a top-level predicate.

BIT_ANCESTOR

public static final int BIT_ANCESTOR
Bit is on if any of the walkers contain an ancestor step.

BIT_ANCESTOR_OR_SELF

public static final int BIT_ANCESTOR_OR_SELF
Bit is on if any of the walkers contain an ancestor-or-self step.

BIT_ATTRIBUTE

public static final int BIT_ATTRIBUTE
Bit is on if any of the walkers contain an attribute step.

BIT_CHILD

public static final int BIT_CHILD
Bit is on if any of the walkers contain a child step.

BIT_DESCENDANT

public static final int BIT_DESCENDANT
Bit is on if any of the walkers contain a descendant step.

BIT_DESCENDANT_OR_SELF

public static final int BIT_DESCENDANT_OR_SELF
Bit is on if any of the walkers contain a descendant-or-self step.

BIT_FOLLOWING

public static final int BIT_FOLLOWING
Bit is on if any of the walkers contain a following step.

BIT_FOLLOWING_SIBLING

public static final int BIT_FOLLOWING_SIBLING
Bit is on if any of the walkers contain a following-sibiling step.

BIT_NAMESPACE

public static final int BIT_NAMESPACE
Bit is on if any of the walkers contain a namespace step.

BIT_PARENT

public static final int BIT_PARENT
Bit is on if any of the walkers contain a parent step.

BIT_PRECEDING

public static final int BIT_PRECEDING
Bit is on if any of the walkers contain a preceding step.

BIT_PRECEDING_SIBLING

public static final int BIT_PRECEDING_SIBLING
Bit is on if any of the walkers contain a preceding-sibling step.

BIT_SELF

public static final int BIT_SELF
Bit is on if any of the walkers contain a self step.

BIT_FILTER

public static final int BIT_FILTER
Bit is on if any of the walkers contain a filter (i.e. id(), extension function, etc.) step.

BIT_ROOT

public static final int BIT_ROOT
Bit is on if any of the walkers contain a root step.

BITMASK_TRAVERSES_OUTSIDE_SUBTREE

public static final int BITMASK_TRAVERSES_OUTSIDE_SUBTREE
If any of these bits are on, the expression may likely traverse outside the given subtree.

BIT_BACKWARDS_SELF

public static final int BIT_BACKWARDS_SELF
Bit is on if any of the walkers can go backwards in document order from the context node.

BIT_ANY_DESCENDANT_FROM_ROOT

public static final int BIT_ANY_DESCENDANT_FROM_ROOT
Found "//foo" pattern

BIT_NODETEST_ANY

public static final int BIT_NODETEST_ANY
Bit is on if any of the walkers contain an node() test. This is really only useful if the count is 1.

BIT_MATCH_PATTERN

public static final int BIT_MATCH_PATTERN
Bit is on if the expression is a match pattern.
Constructor Detail

WalkerFactory

public WalkerFactory()
Method Detail

newLocPathIterator

public static LocPathIterator newLocPathIterator(Compiler compiler,
                                                 int opPos)
                                          throws TransformerException
Create a new LocPathIterator iterator. The exact type of iterator returned is based on an analysis of the XPath operations.
Parameters:
compiler - non-null reference to compiler object that has processed the XPath operations into an opcode map.
opPos - The position of the operation code for this itterator.
Returns:
non-null reference to a LocPathIterator or derivative.
Throws:
TransformerException -  


Copyright � 2000 Apache XML Project. All Rights Reserved.