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

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static int` | `MAPINDEX_LENGTH` The length is always the opcode position + 1.

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `OpMap()`

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `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. the beginning of the next operation.
    `static int` | `getNextOpPos(int[] opMap, int opPos)` Given an operation position, return the end position, i.e. the beginning of the next operation.
    `int` | `getNextStepPos(int opPos)` Given a location step position, return the end position, i.e. the beginning of the next step.
    `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.
      See Also:
        Constant Field Values

  - ### Constructor Detail

    - #### OpMap

          public OpMap()

  - ### Method Detail

    - #### toString

          public java.lang.String toString()

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

    - #### 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 javax.xml.transform.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.
      Throws:
        `javax.xml.transform.TransformerException`

    - #### error

          public void error(java.lang.String msg,
                            java.lang.Object[] args)
                     throws javax.xml.transform.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 © 2023 Apache XML Project. All Rights Reserved.