org.aspectj.apache.bcel.generic
Class InstructionHandle

java.lang.Object
  extended by org.aspectj.apache.bcel.generic.InstructionHandle
All Implemented Interfaces:
java.io.Serializable
Direct Known Subclasses:
BranchHandle

public class InstructionHandle
extends java.lang.Object
implements java.io.Serializable

Instances of this class give users a handle to the instructions contained in an InstructionList. Instruction objects may be used more than once within a list, this is useful because it saves memory and may be much faster. Within an InstructionList an InstructionHandle object is wrapped around all instructions, i.e., it implements a cell in a doubly-linked list. From the outside only the next and the previous instruction (handle) are accessible. One can traverse the list via an Enumeration returned by InstructionList.elements().

See Also:
Instruction, BranchHandle, InstructionList, Serialized Form

Field Summary
protected  int pos
           
 
Constructor Summary
protected InstructionHandle(Instruction i)
           
 
Method Summary
 void addTargeter(InstructionTargeter t)
          Denote this handle is being referenced by t.
 Instruction getInstruction()
           
 InstructionHandle getNext()
           
 int getPosition()
           
 InstructionHandle getPrev()
           
 java.util.Set<InstructionTargeter> getTargeters()
           
 java.util.Set<InstructionTargeter> getTargetersCopy()
           
 boolean hasTargeters()
           
 void removeAllTargeters()
          Remove all targeters, if any.
 void removeTargeter(InstructionTargeter t)
          Denote this handle isn't referenced anymore by t.
 void setInstruction(Instruction i)
          Replace current instruction contained in this handle.
 java.lang.String toString()
           
 java.lang.String toString(boolean verbose)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

pos

protected int pos
Constructor Detail

InstructionHandle

protected InstructionHandle(Instruction i)
Method Detail

getNext

public final InstructionHandle getNext()

getPrev

public final InstructionHandle getPrev()

getInstruction

public final Instruction getInstruction()

setInstruction

public void setInstruction(Instruction i)
Replace current instruction contained in this handle. Old instruction is disposed using Instruction.dispose().


getPosition

public int getPosition()
Returns:
the position, i.e., the byte code offset of the contained instruction. This is accurate only after InstructionList.setPositions() has been called.

removeAllTargeters

public void removeAllTargeters()
Remove all targeters, if any.


removeTargeter

public void removeTargeter(InstructionTargeter t)
Denote this handle isn't referenced anymore by t.


addTargeter

public void addTargeter(InstructionTargeter t)
Denote this handle is being referenced by t.


hasTargeters

public boolean hasTargeters()

getTargeters

public java.util.Set<InstructionTargeter> getTargeters()

getTargetersCopy

public java.util.Set<InstructionTargeter> getTargetersCopy()

toString

public java.lang.String toString(boolean verbose)
Returns:
a (verbose) string representation of the contained instruction.

toString

public java.lang.String toString()
Overrides:
toString in class java.lang.Object