## org.apache.xpath.compiler
Class OpMap

    java.lang.Object
      |
      +--org.apache.xpath.compiler.OpMap

Direct Known Subclasses:
  Compiler

public class OpMap
extends java.lang.Object

This class represents the data structure basics of the XPath object.

Field Summary
`static int` `MAPINDEX_LENGTH` The length is always the opcode position + 1.

Constructor Summary
`OpMap()`

Method Summary
`void` `error(java.lang.String msg, java.lang.Object[] args)` Tell the user of an error, and probably throw an exception.
`int` `getArgLength(int opPos)` Get the length of an operation.
`int` `getArgLengthOfStep(int opPos)` Given a location step, get the length of that step.
`static int` `getFirstChildPos(int opPos)` Go to the first child of a given operation.
`static int` `getFirstChildPosOfStep(int opPos)` Get the first child position of a given location step.
`int` `getFirstPredicateOpPos(int opPos)` Given an FROM_stepType position, return the position of the first predicate, if there is one, or else this will point to the end of the FROM_stepType.
`int` `getNextOpPos(int opPos)` Given an operation position, return the end position, i.e.
`static int` `getNextOpPos(int[] opMap, int opPos)` Given an operation position, return the end position, i.e.
`int` `getNextStepPos(int opPos)` Given a location step position, return the end position, i.e.
`int` `getOp(int opPos)` Given an operation position, return the current op.
`OpMapVector` `getOpMap()` Get the opcode list that describes the XPath operations.
`java.lang.String` `getPatternString()` Return the expression as a string for diagnostics.
`java.lang.String` `getStepLocalName(int opPosOfStep)` Get the local name of the step.
`java.lang.String` `getStepNS(int opPosOfStep)` Get the namespace of the step.
`int` `getStepTestType(int opPosOfStep)` Get the test type of the step, i.e.
`java.lang.Object` `getToken(int pos)` Get the XPath as a list of tokens.
`ObjectVector` `getTokenQueue()` Get the XPath as a list of tokens.
`int` `getTokenQueueSize()` Get size of the token queue.
`void` `setOp(int opPos, int value)` Set the op at index to the given int.
`java.lang.String` `toString()` Return the expression as a string for diagnostics.

Methods inherited from class java.lang.Object
`equals, getClass, hashCode, notify, notifyAll, wait, wait, wait`

Field Detail

### MAPINDEX_LENGTH

    public static final int MAPINDEX_LENGTH

  The length is always the opcode position + 1. Length is always expressed as the opcode+length bytes, so it is always 2 or greater.

Constructor Detail

### OpMap

    public OpMap()

Method Detail

### toString

    public java.lang.String toString()

  Return the expression as a string for diagnostics.
  Returns:
    The expression string.
  Overrides:
    toString in class java.lang.Object

### getPatternString

    public java.lang.String getPatternString()

  Return the expression as a string for diagnostics.
  Returns:
    The expression string.

### getTokenQueue

    public ObjectVector getTokenQueue()

  Get the XPath as a list of tokens.
  Returns:
    ObjectVector of tokens.

### getToken

    public java.lang.Object getToken(int pos)

  Get the XPath as a list of tokens.
  Parameters:
    `pos` - index into token queue.
  Returns:
    The token, normally a string.

### getTokenQueueSize

    public int getTokenQueueSize()

  Get size of the token queue.
  Returns:
    The size of the token queue.

### getOpMap

    public OpMapVector getOpMap()

  Get the opcode list that describes the XPath operations. It contains operations codes and indexes into the m_tokenQueue. I use an array instead of a full parse tree in order to cut down on the number of objects created.
  Returns:
    An IntVector that is the opcode list that describes the XPath operations.

### getOp

    public int getOp(int opPos)

  Given an operation position, return the current op.
  Parameters:
    `opPos` - index into op map.
  Returns:
    the op that corresponds to the opPos argument.

### setOp

    public void setOp(int opPos,
                      int value)

  Set the op at index to the given int.
  Parameters:
    `opPos` - index into op map.
    `value` - Value to set

### getNextOpPos

    public int getNextOpPos(int opPos)

  Given an operation position, return the end position, i.e. the beginning of the next operation.
  Parameters:
    `opPos` - An op position of an operation for which there is a size entry following.
  Returns:
    position of next operation in m_opMap.

### getNextStepPos

    public int getNextStepPos(int opPos)

  Given a location step position, return the end position, i.e. the beginning of the next step.
  Parameters:
    `opPos` - the position of a location step.
  Returns:
    the position of the next location step.

### getNextOpPos

    public static int getNextOpPos(int[] opMap,
                                   int opPos)

  Given an operation position, return the end position, i.e. the beginning of the next operation.
  Parameters:
    `opMap` - The operations map.
    `opPos` - index to operation, for which there is a size entry following.
  Returns:
    position of next operation in m_opMap.

### getFirstPredicateOpPos

    public int getFirstPredicateOpPos(int opPos)
                               throws TransformerException

  Given an FROM_stepType position, return the position of the first predicate, if there is one, or else this will point to the end of the FROM_stepType. Example: int posOfPredicate = xpath.getNextOpPos(stepPos); boolean hasPredicates = OpCodes.OP_PREDICATE == xpath.getOp(posOfPredicate);
  Parameters:
    `opPos` - position of FROM_stepType op.
  Returns:
    position of predicate in FROM_stepType structure.

### error

    public void error(java.lang.String msg,
                      java.lang.Object[] args)
               throws TransformerException

  Tell the user of an error, and probably throw an exception.
  Parameters:
    `msg` - An error msgkey that corresponds to one of the constants found in `XPATHErrorResources`, which is a key for a format string.
    `args` - An array of arguments represented in the format string, which may be null.
  Throws:
    TransformerException - if the current ErrorListoner determines to throw an exception.

### getFirstChildPos

    public static int getFirstChildPos(int opPos)

  Go to the first child of a given operation.
  Parameters:
    `opPos` - position of operation.
  Returns:
    The position of the first child of the operation.

### getArgLength

    public int getArgLength(int opPos)

  Get the length of an operation.
  Parameters:
    `opPos` - The position of the operation in the op map.
  Returns:
    The size of the operation.

### getArgLengthOfStep

    public int getArgLengthOfStep(int opPos)

  Given a location step, get the length of that step.
  Parameters:
    `opPos` - Position of location step in op map.
  Returns:
    The length of the step.

### getFirstChildPosOfStep

    public static int getFirstChildPosOfStep(int opPos)

  Get the first child position of a given location step.
  Parameters:
    `opPos` - Position of location step in the location map.
  Returns:
    The first child position of the step.

### getStepTestType

    public int getStepTestType(int opPosOfStep)

  Get the test type of the step, i.e. NODETYPE_XXX value.
  Parameters:
    `opPosOfStep` - The position of the FROM_XXX step.
  Returns:
    NODETYPE_XXX value.

### getStepNS

    public java.lang.String getStepNS(int opPosOfStep)

  Get the namespace of the step.
  Parameters:
    `opPosOfStep` - The position of the FROM_XXX step.
  Returns:
    The step's namespace, NodeTest.WILD, or null for null namespace.

### getStepLocalName

    public java.lang.String getStepLocalName(int opPosOfStep)

  Get the local name of the step.
  Parameters:
    `opPosOfStep` - The position of the FROM_XXX step.
  Returns:
    OpCodes.EMPTY, OpCodes.ELEMWILDCARD, or the local name.

Copyright © 2006 Apache XML Project. All Rights Reserved.