Package serp.bytecode

Class LocalVariableTable

  • All Implemented Interfaces:
    BCEntity, InstructionPtr, VisitAcceptor

    public class LocalVariableTable
    extends LocalTable
    Code blocks compiled from source have local variable tables mapping locals used in opcodes to their names and descriptions.
    Author:
    Abe White
    • Method Detail

      • getLocalVariables

        public LocalVariable[] getLocalVariables()
        Return all the locals of this method.
      • getLocalVariable

        public LocalVariable getLocalVariable​(int local)
        Return the local with the given locals index, or null if none.
      • getLocalVariable

        public LocalVariable getLocalVariable​(java.lang.String name)
        Return the local with the given name, or null if none. If multiple locals have the given name, which is returned is undefined.
      • getLocalVariables

        public LocalVariable[] getLocalVariables​(java.lang.String name)
        Return all locals with the given name, or empty array if none.
      • addLocalVariable

        public LocalVariable addLocalVariable​(LocalVariable local)
        Import a local from another method/class. Note that the program counter and length from the given local is copied directly, and thus will be incorrect unless this method is the same as the one the local is copied from, or the pc and length are reset.
      • addLocalVariable

        public LocalVariable addLocalVariable()
        Add a local to this table.
      • addLocalVariable

        public LocalVariable addLocalVariable​(java.lang.String name,
                                              java.lang.String type)
        Add a local to this table.
      • addLocalVariable

        public LocalVariable addLocalVariable​(java.lang.String name,
                                              java.lang.Class type)
        Add a local to this table.
      • addLocalVariable

        public LocalVariable addLocalVariable​(java.lang.String name,
                                              BCClass type)
        Add a local to this table.
      • acceptVisit

        public void acceptVisit​(BCVisitor visit)
        Description copied from interface: VisitAcceptor
        Accept a visit from a BCVisitor, calling the appropriate methods to notify the visitor that it has entered this entity, and to provide it with the proper callbacks for each sub-entity owned by this one.