Class 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 Description
      static int MAPINDEX_LENGTH
      The length is always the opcode position + 1.
    • Constructor Summary

      Constructors 
      Constructor Description
      OpMap()  
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method 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.