Class LocalVariableInfo


  • public class LocalVariableInfo
    extends java.lang.Object
    A utility class holding the information about the name and the type of a local variable in a given slot (== index). This information often changes in course of byte code offsets.
    • Field Summary

      Fields 
      Modifier and Type Field Description
      private java.util.Hashtable<java.lang.String,​java.lang.String> names
      The names database.
      private java.util.Hashtable<java.lang.String,​Type> types
      The types database.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      private void add​(int offset, java.lang.String name, Type t)
      Adds information about name and type for a given offset.
      void add​(java.lang.String name, int startPc, int length, Type type)
      Adds some information about this local variable (slot).
      java.lang.String getName​(int offset)
      Returns the name of the local variable that uses this local variable slot at the given bytecode offset.
      Type getType​(int offset)
      Returns the type of the local variable that uses this local variable slot at the given bytecode offset.
      private void setName​(int offset, java.lang.String name)
      Adds a name of a local variable and a certain slot to our 'names' (Hashtable) database.
      private void setType​(int offset, Type t)
      Adds a type of a local variable and a certain slot to our 'types' (Hashtable) database.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • types

        private final java.util.Hashtable<java.lang.String,​Type> types
        The types database. KEY: String representing the offset integer.
      • names

        private final java.util.Hashtable<java.lang.String,​java.lang.String> names
        The names database. KEY: String representing the offset integer.
    • Constructor Detail

      • LocalVariableInfo

        public LocalVariableInfo()
    • Method Detail

      • add

        public void add​(java.lang.String name,
                        int startPc,
                        int length,
                        Type type)
                 throws LocalVariableInfoInconsistentException
        Adds some information about this local variable (slot).
        Parameters:
        name - variable name
        startPc - Range in which the variable is valid.
        length - length of ...
        type - variable type
        Throws:
        LocalVariableInfoInconsistentException - if the new information conflicts with already gathered information.
      • getName

        public java.lang.String getName​(int offset)
        Returns the name of the local variable that uses this local variable slot at the given bytecode offset. Care for legal bytecode offsets yourself, otherwise the return value might be wrong. May return 'null' if nothing is known about the type of this local variable slot at the given bytecode offset.
        Parameters:
        offset - bytecode offset.
        Returns:
        the name of the local variable that uses this local variable slot at the given bytecode offset.
      • getType

        public Type getType​(int offset)
        Returns the type of the local variable that uses this local variable slot at the given bytecode offset. Care for legal bytecode offsets yourself, otherwise the return value might be wrong. May return 'null' if nothing is known about the type of this local variable slot at the given bytecode offset.
        Parameters:
        offset - bytecode offset.
        Returns:
        the type of the local variable that uses this local variable slot at the given bytecode offset.
      • setName

        private void setName​(int offset,
                             java.lang.String name)
        Adds a name of a local variable and a certain slot to our 'names' (Hashtable) database.
      • setType

        private void setType​(int offset,
                             Type t)
        Adds a type of a local variable and a certain slot to our 'types' (Hashtable) database.